<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4053486063052531067</id><updated>2012-02-08T21:39:57.614-08:00</updated><title type='text'>Open Source Technology</title><subtitle type='html'>Open Source technology makes business sense. Besides being free and of very high quality, it is often more powerful than most commercially available products. 
This blog is for complete web development using open source technologies like PHP, MySQL, Apache, Linux ( LAMP ), CSS, HTML, WEB2.0, AJAX, XML, Javascript frameworks, browser compatibility etc..</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://ashko.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://ashko.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>ÅšhΘκ  Šμ∂απi</name><uri>http://www.blogger.com/profile/17739127081189346556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>99</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4053486063052531067.post-1583449792651469077</id><published>2010-07-12T08:15:00.000-07:00</published><updated>2010-07-12T08:19:05.204-07:00</updated><title type='text'>50 Hottest online jobs</title><content type='html'>No. 1: Geolocation  &lt;br /&gt;&lt;br /&gt; Geolocation grabbed the number one spot this quarter as the location wars heated up. While Foursquare and Twitter battled it out, freelance workers reaped the benefits seeing a whopping 909% increase in geolocation jobs online.&lt;br /&gt;&lt;br /&gt;No. 2: HTML5   &lt;br /&gt;&lt;br /&gt; 26% of all web video is available using HTML5 (The Register) and this number is only going to increase as Steve Jobs famously gave Flash the cold shoulder with the release of the iPad and new iPhone. This endorsement gave HTML5 the shot in the arm it needed and lead to a massive 721% boost in HTML5 jobs.&lt;br /&gt;&lt;br /&gt;No. 3 Amazon Web Services   &lt;br /&gt;&lt;br /&gt; Amazon Web Services came in as the number three fastest mover in the last quarter, denoting the continued popularity of cloud computing. Up 446% from the previous quarter, anything related to hosting services over the Internet has seen an impressive increase.&lt;br /&gt;&lt;br /&gt;No. 4: Mobile apps  &lt;br /&gt;&lt;br /&gt; The global appetite for apps continued unabated as mobile phone jobs rose steadily, up 282% from Q2. Having an app has become an essential tool for any business and SMEs are increasingly looking to online labor to get their apps build more cost effectively.&lt;br /&gt;&lt;br /&gt;No. 5: Salesforce.com; Growth: 250% &lt;br /&gt;&lt;br /&gt;    No. 6: Amazon Kindle; Growth: 216% &lt;br /&gt;&lt;br /&gt;    No. 7: Audit; Growth: 208%    &lt;br /&gt;&lt;br /&gt;  No. 8: iPad; Growth: 191%    &lt;br /&gt;&lt;br /&gt;  No. 9: Google Buzz; Growth: 126%    &lt;br /&gt;&lt;br /&gt;  No. 10: Transcription; Growth: 124%&lt;br /&gt;&lt;br /&gt;No. 11: Brochure Design;  Growth: 108%   &lt;br /&gt;&lt;br /&gt;  No. 12: Genealogy; Growth: 100% &lt;br /&gt;&lt;br /&gt;  No. 13: Cryptography; Growth: 100% &lt;br /&gt;&lt;br /&gt;  No. 14: Google Analytics; Growth: 95%   &lt;br /&gt;&lt;br /&gt;  No. 15: CAD/CAM; Growth: 79% &lt;br /&gt;&lt;br /&gt;No. 16: Education and Tutoring; Growth: 78% &lt;br /&gt;&lt;br /&gt;    No. 17: Google Adsense; Growth: 75%   &lt;br /&gt;&lt;br /&gt;  No. 18: Manufacturing; Growth: 69% &lt;br /&gt;&lt;br /&gt;    No. 19: Photoshop Design; Growth: 66%   &lt;br /&gt;&lt;br /&gt;  No. 20: Testing /Q&amp;A; Growth: 64% &lt;br /&gt;&lt;br /&gt;No. 21: Manufacturing Design; Growth: 62%   &lt;br /&gt;&lt;br /&gt;  No. 22: Expression Engine; Growth: 61% &lt;br /&gt;&lt;br /&gt;    No. 23: 3D Rendering; Growth: 58%   &lt;br /&gt;&lt;br /&gt;  No. 24: AutoCAD; Growth: 57%   &lt;br /&gt;&lt;br /&gt;  No. 25: Supplier Sourcing; Growth: 56% &lt;br /&gt;&lt;br /&gt;No. 26: Desktop Support; Growth: 51%   &lt;br /&gt;&lt;br /&gt;  No. 27: Photography; Growth: 50%   &lt;br /&gt;&lt;br /&gt;  No. 28: SAP; Growth: 50%   &lt;br /&gt;&lt;br /&gt;  No. 29: Statistics; Growth: 50% &lt;br /&gt;&lt;br /&gt;  No. 30: Voice Talent; Growth: 48% &lt;br /&gt;&lt;br /&gt;&lt;div style="float: left; width: 310px; font-size: 24px; line-height: 27px;"&gt;No. 31: Facebook; Growth: 47% &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;    No. 32: Blackberry; Growth: 47%   &lt;br /&gt;&lt;br /&gt;  No. 33: Civil Engineering; Growth: 44%    No. 34: Solidworks; Growth: 44%   &lt;br /&gt;&lt;br /&gt;  No. 35: Asterisk PBX; Growth: 44%&lt;br /&gt;&lt;br /&gt;&lt;div style="float: left; width: 310px;"&gt;No. 36: MySQL; Growth: 44%  &lt;br /&gt;&lt;/div&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;No. 37: Biotechnology; Growth: 43%&lt;br /&gt;&lt;br /&gt;   No. 38: Cocoa; Growth: 42%  &lt;br /&gt;&lt;br /&gt; No. 39: Concept Design; Growth: 42%  &lt;br /&gt;&lt;br /&gt; No. 40: Fiction; Growth: 41%&lt;br /&gt;&lt;br /&gt;No. 41: Internet Marketing; Growth: 41%&lt;br /&gt;&lt;br /&gt; No. 42: Academic Writing; Growth: 39%  &lt;br /&gt;&lt;br /&gt; No. 43: UML Design; Growth: 38%  &lt;br /&gt;&lt;br /&gt; No. 44: Android; Growth: 37%  &lt;br /&gt;&lt;br /&gt; No. 45: Erlang; Growth: 36%&lt;br /&gt;&lt;br /&gt;No. 46: Engineering; Growth: 35%  &lt;br /&gt;&lt;br /&gt; No. 47: Home Design; Growth: 35%  &lt;br /&gt;&lt;br /&gt; No. 48: Structural Engineering; Growth: 30%  &lt;br /&gt;&lt;br /&gt; No. 49: C# Programming; Growth: 30%  &lt;br /&gt;&lt;br /&gt; No. 50: Technical Writing; Growth: 30%&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4053486063052531067-1583449792651469077?l=ashko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ashko.blogspot.com/feeds/1583449792651469077/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4053486063052531067&amp;postID=1583449792651469077' title='42 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/1583449792651469077'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/1583449792651469077'/><link rel='alternate' type='text/html' href='http://ashko.blogspot.com/2010/07/50-hottest-online-jobs.html' title='50 Hottest online jobs'/><author><name>ÅšhΘκ  Šμ∂απi</name><uri>http://www.blogger.com/profile/17739127081189346556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>42</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4053486063052531067.post-7836450242068613988</id><published>2009-06-16T09:31:00.000-07:00</published><updated>2009-06-16T09:33:34.008-07:00</updated><title type='text'>List of Best Open Source Software</title><content type='html'>&lt;p&gt;The promise of open source software is best quality, flexibility and reliability. This is the best open source software in the world.&lt;/p&gt; &lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://www.mozilla.com/en-US/firefox/"&gt;&lt;br /&gt;Firefox&lt;/a&gt; delivers helpful new features to make your online experience more productive. Chose from over a thousand useful add-ons to personalize and make it your own.&lt;/p&gt; &lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://www.getmiro.com/"&gt;&lt;br /&gt;Miro&lt;/a&gt; - free, open source internet tv and video player. Miro gives you access to more free HD content than any other video player.&lt;/p&gt; &lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://www.pidgin.im/pidgin/home/"&gt;&lt;br /&gt;Pidgin&lt;/a&gt; - is a multi-protocol Instant Messaging client that allows you to use all of your IM accounts at once: AIM, Bonjour, Gadu-Gadu, Google Talk, Groupwise, ICQ, IRC, MSN, QQ, SILC, SIMPLE, Sametime, XMPP, Yahoo!, Zephyr&lt;/p&gt; &lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3d3dy5mZWVkcmVhZGVyLmNvbS8="&gt;&lt;br /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;FeedReader - is a news aggregation solution that provides robust, state-of-the-art features in an intuitive, user-friendly environment. FeedBurner offers advanced, cutting-edge capabilities, including the most comprehensive podcasting support available today, as well as unique smart feed technology that puts the information you need right at your fingertips.&lt;/p&gt; &lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://azureus.sourceforge.net/"&gt;&lt;br /&gt;Azureus &lt;/a&gt;- implements the BitTorrent protocol using java and comes bundled with many features : Multiple torrent downloads, Upload and download speed limiting, both globally and per torrent, Advanced seeding rules, Adjustable disk cache, Only uses one port for all the torrents, UPnP sets the forward on your router and more…&lt;/p&gt; &lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://filezilla.sourceforge.net/"&gt;&lt;br /&gt;FileZilla&lt;/a&gt; - is a fast and reliable FTP client and server with lots of useful features and an intuitive interface.&lt;/p&gt; &lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://www.openoffice.org/"&gt;&lt;br /&gt;OpenOffice&lt;/a&gt; - is a multi platform and multi lingual office suite and an open-source project. Compatible with all other major office suites, the product is free to download, use, and distribute&lt;/p&gt; &lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://www.mozilla.com/en-US/thunderbird/"&gt;&lt;br /&gt;Thunderbird&lt;/a&gt; help you better manage your unruly inbox, scales to the most sophisticated organizational needs while making it easy to find what you need.&lt;/p&gt; &lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://www.getpaint.net/"&gt;&lt;br /&gt;Pant.Net&lt;/a&gt; - is free image editing and photo manipulation software for computers that run Windows. It features an intuitive and innovative user interface with support for layers, unlimited undo, special effects, and a wide variety of useful and powerful tools&lt;/p&gt; &lt;p&gt;&lt;span id="more-72"&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;Address Book&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3d3dy5jb3J2YWxpcy5uZXQvYWRkcmVzcy8="&gt;Corvalis&lt;/a&gt; - is a free, open source address management system .Export to/import from other popular e-mail programs such as Outlook and free e-mail service. Improved search features and group management .&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3J1YnJpY2EuYmVybGlvcy5kZS8="&gt;Rubrica &lt;/a&gt;- is an address book manager for the GNOME Environment. It allows you to add personal data (name, surname, address, etc.), web links, irc and email addresses, telephone numbers, job information (company where contact works, company infos, contact’s assigment, etc.) and notes.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Audio Tools&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL21lZGlhY29kZXIuc291cmNlZm9yZ2UubmV0Lw=="&gt;MediaCoder&lt;/a&gt; - is a free universal batch media transcoder, which nicely integrates most popular audio/video codecs and tools into an all-in-one solution. It converts file formats, giving you a great deal of control over the output. It can also save you plenty of hard disk space by shrinking media files. There are also lots of extensions you can download that expand the programs’ capabilities, such as make it easy to transcode files for specific media players.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL2F1ZGFjaXR5LnNvdXJjZWZvcmdlLm5ldC8="&gt;Audacity&lt;/a&gt; - is a free, easy-to-use audio editor and recorder for Windows, Mac OS X, GNU/Linux, and other operating systems. It allows users to record live audio, convert tapes and records to digital formats, or mix pre-existing digital audio tracks. Supported formats include Ogg Vorbis, MP3, and WAV sound files. Operating system: Windows, Linux/Unix, OS X, Classic Mac.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL2hhbmRicmFrZS5tMGsub3JnLw=="&gt;HandBrake&lt;/a&gt; - is an open-source, GPL-licensed, multiplatform, multithreaded DVD to MPEG-4 converter, available for MacOS X, Linux and Windows. It grabs video from a variety of sources, including a DVD and a DVD image, and grabs audio from sources as well, including MPEG audio tracks. You’ll then be able to output a digital file in a variety of formats, including MPEG-4, AVI, OGM for video, or AAC, MP3, and Ogg Vorbis for audio.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL2xhbWUuc291cmNlZm9yZ2UubmV0Lw=="&gt;LAME&lt;/a&gt; -is one of the best MP3 encoders in the world, producing excellent quality MP3s. It is used by many CD rippers, combopacks and so on and its popularity is increasing almost daily. Also, in great quality DivX &lt;img src="http://lifehacker.biz/wp-includes/images/smilies/icon_wink.gif" alt=";-)" class="wp-smiley" /&gt; encoding, people tend to use LAME over other MP3 encoders.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL2FjM2ZpbHRlci5uZXQv"&gt;AC3Filter&lt;/a&gt; - is an open source AC3 decoding filter that allows you to watch videos with AC3-encoded surround audio. After you install the filter, all video players, including Microsoft’s Windows Media Player, that use DirectShow, should be able to play AC3 audio correctly. Filter also supports ProLogicII audio as well.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL21wM2dhaW4uc291cmNlZm9yZ2UubmV0Lw=="&gt;MP3Gain&lt;/a&gt; -analyzes and adjusts mp3 files so that they have the same volume. It does not just do peak normalization, as many normalizers do. Instead, it does some statistical analysis to determine how loud the file actually sounds to the human ear. With MP3Gain you can adjust your songs per file, which makes them all play at the same loudness (radio gain), or per album, which keeps the volume differences within an album but makes the albums play at similar loudness.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3d3dy5uYW5vby5vcmcvbW9vc2ljLw=="&gt;Moosic&lt;/a&gt; - is a music player for Unix systems. It focuses on convenient and powerful playlist management. The key feature of this music player is its playlist management/queuing abilities. By default, Moosic supports MP3, Ogg, MIDI, MOD, and WAV files, but it can be configured to support other file formats as well. Operating system: Unix.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3N0cmVhbXJpcHBlci5zb3VyY2Vmb3JnZS5uZXQv"&gt;StreamRipper&lt;/a&gt; - allows you to record and save Shoutcast streams and other Internet audio. Its key feature is the ability to find silences and mark them as possible points of track separation. Operating system: Windows, Linux/Unix.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL2Vhc3l0YWcuc291cmNlZm9yZ2UubmV0Lw=="&gt;EasyTAG &lt;/a&gt;- is a utility for viewing and editing tags for MP3, MP2, MP4/AAC, FLAC, Ogg Vorbis, MusePack, Monkey’s Audio and WavPack files. Its simple and nice GTK+ interface makes tagging easier under GNU/Linux or Windows.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Bulletin Board&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3d3dy5waHBiYi5jb20v"&gt;phpBB&lt;/a&gt; -is a high powered, fully scalable, and highly customizable open-source bulletin board package. phpBB has a user-friendly interface, simple and straightforward administration panel, and helpful FAQ. Based on the powerful PHP server language and your choice of MySQL, MS-SQL, PostgreSQL or Access/ODBC database servers, phpBB is the ideal free community solution for all web sites. Features include: Unlimited forums and posts; Multiple language interface; Private or public forums; Powerful search utility; Private messaging system; Templates.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Databases&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3d3dy5maXJlYmlyZHNxbC5vcmcv"&gt;Firebird&lt;/a&gt; -is a relational database offering many ANSI SQL standard features that runs on Linux, Windows, and a variety of Unix platforms.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3d3dy5wb3N0Z3Jlc3FsLm9yZy8="&gt;PostgreSQL&lt;/a&gt; -is an advanced PostgreSQL-based search engine that provides online indexing of data and relevance ranking for database searching. Close integration with database allows use of metadata to restrict search results. Operating system: Windows, Linux/Unix, OS X, Solaris.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Content Managers&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3d3dy5qb29tbGEub3JnLw=="&gt;Joomla!&lt;/a&gt; - is one of the most powerful Open Source Content Management Systems on the planet. It is used all over the world for everything from simple websites to complex corporate applications. Joomla is easy to install, simple to manage, and reliable.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL2RydXBhbC5vcmcv"&gt;Drupal&lt;/a&gt; - an open source content management platform. Equipped with a powerful blend of features, Drupal supports a variety of websites ranging from personal weblogs to large community-driven websites.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3dvcmRwcmVzcy5vcmcv"&gt;Wordpress&lt;/a&gt; - is a state-of-the-art semantic personal publishing platform with a focus on aesthetics, web standards, and usability.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3Bsb25lLm9yZy8="&gt;Plone&lt;/a&gt; - Content Management System built on top of the open source application server Zope and the accompanying Content Management Framework&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3d3dy54b29wcy5vcmcv"&gt;XOOPS&lt;/a&gt; -is an extensible, OO (Object Oriented), easy to use dynamic web content management system written in PHP. XOOPS is the ideal tool for developing small to large dynamic community websites, intra company portals, corporate portals, weblogs and much more. Read the All about XOOPS page for more details.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3d3dy5vcGVuY21zLm9yZy8="&gt;Opencms&lt;/a&gt; - is a professional, easy to use website content management system. It is based on Java and XML technology. It can be deployed in an open source environment (e.g. Linux, Apache, Tomcat, MySQL) as well as on commercial components (e.g. Windows NT, IIS, BEA Weblogic, Oracle).&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3d3dy53ZWJndWkub3JnLw=="&gt;WebGUI&lt;/a&gt; - is a web application framework and web content management system that puts the publishing power in the hands of the people who create the content, rather than the IT staff. Join the thousands of businesses, universities, and schools that have found out just how easy web can be.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3BocG51a2Uub3JnLw=="&gt;PHP-Nuke&lt;/a&gt; -is a powerful Open Source portal application. It can be used as a weblog or as a CMS. PhpNuke allows webmasters and editors to easily post new content and comment existing articles. PHPNuke is much for game clan and guild sites. It is free software, released under the GNU License.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Developer Tools&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3d3dy5waHBteWFkbWluLm5ldC8="&gt;phpMyAdmin&lt;/a&gt; - handles the administration of MySQL over the Web. phpMyAdmin performs many database administration tasks like running SQL statements, adding and dropping databases, and adding, editing or deleting tables or fields. Operating system: OS Independent.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3d3dy5ibG9vZHNoZWQubmV0L2Rldi9kZXZjcHAuaHRtbA=="&gt;Dev-C++&lt;/a&gt; gives you a full-featured Integrated Development Environment (IDE) for the C/C++ programming language. It uses Mingw port of GCC (GNU Compiler Collection) as it’s compiler. Dev-C++ can also be used in combination with Cygwin or any other GCC based compiler.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3d3dy5lYXN5cGhwLm9yZy8="&gt;EasyPHP&lt;/a&gt; - is a complete software package allowing to use all the power and the flexibility that offers the dynamic language PHP and the efficient use of databases under Windows. Package includes an Apache server, a MySQL database, a fully PHP execution, as well as easy development tools for your web site or your applications.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3d3dy5hcGFjaGVmcmllbmRzLm9yZy9lbi94YW1wcC5odG1s"&gt;XAMPP&lt;/a&gt; - is an easy to install Apache distribution containing MySQL, PHP and Perl. XAMPP is really very easy to install and to use - just download, extract and start. Operating system:Windows, Linux, OS/X, Solaris.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL25vdGVwYWQtcGx1cy5zb3VyY2Vmb3JnZS5uZXQv"&gt;Notepad++&lt;/a&gt; is a free source code editor which supports several programming languages running under the M$ Windows environment. Notepad++ is designed to be a freeware replacement for Notepad. Supported languages : C, C++,Java, C#, XML, HTML, PHP, Javascript, RC resource file, make file, ASCII art file(extension .nfo, doxygen, ini file, batch file, ASP, VB/VBS source files, SQL, Objective-C, CSS, Pascal, Perl, Python and Lua.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3d3dy5qZWRpdC5vcmcv"&gt;jEdit &lt;/a&gt;- is a text editor written in Java. It supports auto indent and syntax highlighting for 130 different coding languages, as well as dozens of independently developed plug-ins and macros that make programming easier. Operating system: OS Independent.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3RvcnRvaXNlc3ZuLnRpZ3Jpcy5vcmcv"&gt;TortoiseSVN&lt;/a&gt; - is a really easy to use Revision control / version control / source control software for Windows. It works directly from Windows Explorer and you can use it with virtually anydevelopment tools. Operating system: Windows.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3d3dy5kb3RuZXRudWtlLmNvbS8="&gt;DotNetNuke&lt;/a&gt; - is a powerful open source framework that creates and deploys robust modules on the ASP.NET platform. Written by its core team of developers, this book will provide youwith the tools and insight you’ll need to install, configure, and develop your own stunning&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3d3dy5hcHBzZXJ2bmV0d29yay5jb20v"&gt;AppServ &lt;/a&gt;- is an Apache/PHP/MySQL distribution designed to be completely installed and configured in less than one minute. While it works on Windows, the developers recommend Linux for Web ordatabase servers that will be used heavily. Operating system: Windows, Linux/Unix.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3d3dy5pY3NoYXJwY29kZS5uZXQvT3BlblNvdXJjZS9TRC8="&gt;SharpDevelop&lt;/a&gt; -is a free IDE for C#, VB.NET and Boo projects on Microsoft’s. It includes a forms designer, code completer, an integrated debugger, and many other features. Operating system: Windows.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3d3dy53eHdpZGdldHMub3JnLw=="&gt;wxWidgets&lt;/a&gt; - lets developers create applications for Win32, Mac OS X, GTK+, X11, Motif, WinCE, and more using one codebase. It can be used from languages such as C++, Python, Perl, and C#/.NET.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3d3dy5oaWJlcm5hdGUub3JnLw=="&gt;Hibernate&lt;/a&gt; - is a powerful, high-performance object/relational persistence and query service. Hibernate allows you to express queries in its own portable SQL extension (HQL), as well as in native SQL, or with an object-oriented Criteria and Example API.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3d3dy51bHRpbWF0ZXBwLm9yZy8="&gt;Ultimate++&lt;/a&gt; is a C++ cross-platform rapid application development suite focused on programmers productivity. It includes a set of libraries (GUI, SQL, etc..), and an integrated development environment.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3d3dy5kZXNrd2ViLm9yZy9kb2t1LnBocA=="&gt;DeskWeb&lt;/a&gt; - applies the iconography and usability of a common Windows desktop system to Web applications. It is familiar and user-friendly and lets users easily learn how-to exploit all of the software’s features. It can be used in various ways, such as a content management system, a company groupware, a wiki, or more. Operating system: OS Independent.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3ppbGUuc291cmNlZm9yZ2UubmV0Lw=="&gt;Zile&lt;/a&gt; - is a small Emacs clone. Zile is a customizable, self-documenting real-time open-source display editor. Zile was written to be as similar as possible to Emacs; every Emacs user should feel at home. Operating system: Linux/Unix.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3d3dy53YW1wc2VydmVyLmNvbS9lbi9pbmRleC5waHA="&gt;WAMP5&lt;/a&gt; - installs automatically Apache, PHP, MySQL, PHPmyadmin and SQLite manager on any Windows system. It was created in order to make it easy to use the latest version of PHP?PHP5Operating system: Windows.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL21pa3RleC5vcmcv"&gt;MiKTeX&lt;/a&gt; - is an up-to-date TeX implementation for the Windows operating system. It is a typesetting program with a complete set of fonts, utilities, and macros.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3RlYS1lZGl0b3Iuc291cmNlZm9yZ2UubmV0Lw=="&gt;TEA&lt;/a&gt; - is a GTK+-based text editor that supports a number of different coding languages, but it is especially helpful for writing HTML. It?s very small but includes a file manager, spellchecker, search function, and more. Operating system: Linux/Unix, OS X, Solaris.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3d3dy5qdXMudWlvLm5vL3Npc3Uv"&gt;SiSU &lt;/a&gt;-is an information structuring, transforming, publishing and search framework. Supported formats include plain-text, HTML, XHTML, XML, ODF, LaTeX, and PDF. Operating system: Linux/Unix.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3d3dy5wZGZmb3JnZS5vcmcvcHJvZHVjdHMvcGRmY3JlYXRvcg=="&gt;PDFCreator&lt;/a&gt; -is a free tool to create PDF files from nearly any Windows application. It allows users to create PDF files from any printable Windows document. As an added bonus, it can also create PNG, JPG, TIFF, BMP, PCX, PS, or EPS files. Operating system: Windows.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3d3dy5naG9zdHNjcmlwdC5jb20vYXdraQ=="&gt;Ghostscript &lt;/a&gt;-allows users to convert, view, and print PostScript and PDF files. Different versions of the software are available either as open-source or as commercial distributions. Operating system: Windows, Linux/Unix, OS X, Classic Mac.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Emulators&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL2Rvc2JveC5zb3VyY2Vmb3JnZS5uZXQv"&gt;DOSBox&lt;/a&gt; - isa long gone from Windows–the command prompt inside Windows isn’t truly DOS anymore. Many old games simply won’t run from the Windows command prompt. They need true blue DOS. You can get the free DOSBox, which does a great job of emulating it. Install and run the program, then run any DOS game–or DOS application, for that matter–inside it. When you run DOSBox, it automatically sets any sound-system related variables, so that your sound system will work properly with your old games.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3d3dy56c25lcy5jb20v"&gt;ZNES&lt;/a&gt; - is a Super Nintendo emulator programmed by zsKnight and _Demo_. It lets you play your Super Nintendo games on your PC. Some games work better than others, and it?s very much a workin progress. Operating system: Windows, Linux, FreeBSD, and DOS.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3d3dy5lbXVsZS5jb20v"&gt;eMule&lt;/a&gt; -is one of the biggest and most reliable peer-to-peer file sharing clients around the world. Many developers contribute to the project, so the network gets more and more efficient withevery new version. Operating system: Windows.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL2FyZXNnYWxheHkuc291cmNlZm9yZ2UubmV0Lw=="&gt;Ares&lt;/a&gt; - is a P2P file-sharing program. It’s easier to figure out how to search for files and download them, and it also will download files using BitTorrent, which is probably the most popular file-sharing protocol today. Also useful is that the program includes a built-in media player, as well as chat capabilities and a built-in Web browser.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3d3dy53aW5laHEub3JnLw=="&gt;Wine&lt;/a&gt; - is an Open Source implementation of the Windows API on top of X, OpenGL, and Unix. It lets you run Windows programs on x86-based Unix systems. Operating system: Linux/Unix, OS X, Solaris.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;P2P&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3d3dy5iaXR0b3JyZW50LmNvbS8="&gt;BitTorrent&lt;/a&gt; - is the global standard for delivering high-quality files over the Internet. BitTorrent enables you to publish your own content. If you are a filmmaker, musician, or even a comedian, it?s the perfect place to showcase your work to worldwide audience. Operating system: Windows, Linux/Unix.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL2RjcGx1c3BsdXMuc291cmNlZm9yZ2UubmV0Lw=="&gt;DC++&lt;/a&gt; is an open source client for Windows for the Direct Connect network. Direct Connect allows you to share files over the Internet without restrictions or limits. The client is completely free of advertisements and has a nice, easy to use interface. Firewall and router support is integrated and it is easy and convenient to use functionality like multi-hub connections, auto-connections and resuming of downloads.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL2tyeXB0LmR5bmRucy5vcmc6ODEvdG9ycmVudC8="&gt;BBurst!&lt;/a&gt; - is the BitTorrent client that uses less memory and other resources than the original client. Key features include a torrents manager and super-seeding mode. Operating system: Windows.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL2J0cGx1c3BsdXMuc291cmNlZm9yZ2UubmV0Lw=="&gt;BT++&lt;/a&gt; is an improved client for the BitTorrent peer-to-peer file distribution solution. It is written, like the official BitTorrent client, in Python and wxPython for maximum cross-platform compatibility. It should work on any platform that wxPython is available for.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3d3dy5zaGFyZWF6YS5jb20v"&gt;Shareaza P2P&lt;/a&gt; - is known by its support for numerous P2P networks, including Gnutella2, Gnutella1, eDonkey2000/eMule, and BitTorrent. And its “Collections” feature allows users to preview albumcovers, song lists, and descriptions from a single screen. Operating system: Windows.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3Bpbmdwb25nLWFiYy5zb3VyY2Vmb3JnZS5uZXQv"&gt;ABC &lt;/a&gt;- is an improved client for the Bittorrent peer-to-peer file distribution solution. ABC is based on BitTornado which extended from from Original Bittorrent Core System , coded by Bram Cohen. It offers some unique customization options. With this app, you can customize which information is displayed, prioritize the queuing system, and download multiple files simultaneously in the same window. Operating system: Windows.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3d3dy5yZXZjb25uZWN0LmNvbS8="&gt;RevConnect&lt;/a&gt; - is a file sharing program based on DC++. It is fully compatible with the Direct Connect network. RevConnect is an free open-source, ad and spyware-free client, written in C++ for the Direct Connect protocol that allows you to share files over the internet with other users. Operating system: Windows.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;File Transfer&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3dpbnNjcC5uZXQv"&gt;WinSCP&lt;/a&gt; - allows users to transfer files securely via FTP and SFTP. It incorporates Secure Shell (SSH) technology. Operating system: Windows.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL2N1cmwuaGF4eC5zZS8="&gt;cURL&lt;/a&gt; - is a command line tool for transferring files with URL syntax, supporting FTP, FTPS, HTTP, HTTPS, SCP, SFTP,TFTP, TELNET, DICT, FILE and LDAP. curl supports SSL certificates, HTTP POST,HTTP PUT, FTP uploading, HTTP form based upload, proxies, cookies, user+password authentication (Basic, Digest, NTLM, Negotiate, Kerberos…), file transfer resume, proxy tunneling and a busload of other useful tricks. Operating system: Windows, Linux/Unix, OS X, Solaris&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Games &lt;/strong&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3d3dy5zY3VtbXZtLm9yZy8="&gt;ScummVM &lt;/a&gt;- allows you to port many classic point-and-click adventure games to nearly any platform you like. Supported games include Simon the Sorcerer 1 and 2, Flight of the Amazon Queen, Beneath A Steel Sky, Day of the Tentacle, Broken Sword 1 and Broken Sword 2, Monkey Island, Samand Max, and dozens of others. Operating system: OS Portable.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3d3dy5zdGVwbWFuaWEuY29tLw=="&gt;StepMania&lt;/a&gt; - can be played using the keyboard or a sensor-laden “dance pad”. StepMania has game modes similar to Konami’s Dance Dance Revolution and Andamiro’s Pump It Up, Amuseworld’sEZ2Dancer, and Konami’s Para Para Paradise. Operating system: Windows, Linux/Unix, OS X, Xbox.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Mobility Tools&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3d3dy5iaXRwaW0ub3JnLw=="&gt;BitPim &lt;/a&gt;- is a program that allows you to view and manipulate data on many CDMA phones from LG, Samsung, Sanyo and other manufacturers. This includes the Phone Book, Calendar, WallPapers, RingTones(functionality varies by phone) and the File system for most Qualcomm CDMA chipset based phones. Operating system: Windows, Linux/Unix, OS X.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3BvcnRhYmxlYXBwcy5jb20v"&gt;PortableApps&lt;/a&gt; - aims to make all of your applications portable. It makes it easy to transfer software and data from your PC to a USB flash drive, iPod, portable hard drive, or other device. Operating system: Windows.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Photo Tools &lt;/strong&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL2dhbGxlcnkubWVuYWx0by5jb20v"&gt;Gallery &lt;/a&gt;- is an open source project with the goal to develop and support leading photo sharing web application solutions. It allow some basic photo manipulation, such as resizing, rotating, and altering image quality, but does not include advanced photo editing. Operating system: OS Independent.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL2NvcHBlcm1pbmUtZ2FsbGVyeS5uZXQv"&gt;Coppermine Photo Gallery&lt;/a&gt; - is a multi-purpose fully-featured and integrated web picture gallery script written in PHP using GD or ImageMagick as image library with a MySQL backend. It offersa huge lineup of features including multiple languages, e-card creation, thumbnails, and many more. In order to use it, you need a Web server running Apache, PHP, MySQL, and either GD or ImageMagick. Operating system: OS Independent.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Instant Messaging&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3d3dy5hbXNuLXByb2plY3QubmV0Lw=="&gt;aMSN&lt;/a&gt; - is an open source MSN Messenger clone. It allows you to communicate with users on multiple networks. a MSN also allows you to display pictures and emoticons and add skins to yourchat window. Operating system: Windows, Linux/Unix, OS X.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3d3dy5taXJhbmRhLWltLm9yZy8="&gt;Miranda&lt;/a&gt; - is a small, fast and easy instant messenger with support for multiple protocols. Miranda IM is designed to be resource efficient and easy to use while still providing many features including support for AIM, Jabber, ICQ, IRC, MSN, Yahoo, and more. Operating system: Windows.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3BpZGdpbi5pbS9waWRnaW4vaG9tZS8="&gt;Pidgin&lt;/a&gt; - is a multi-platform instant messaging client that allows you to connect with all your buddies from a single messenger, even if they are using different networks. It supports MSN, AIM, ICQ, Yahoo, IRC, GroupWise, QQ, SILC, SIMPLE, Same time and XMPP. You can login to multiple messenger accounts at one, allowing you to chat with your buddies onYahoo, ICQ and MSN (for example) at the same time.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Security &lt;/strong&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3Bob2VuaXhsYWJzLm9yZy9wZzIv"&gt;PeerGuardian &lt;/a&gt;- protects your privacy while you?re using P2P file sharing networks. It supports multiple lists, list editing, automatic updates, and IPv4 blocking. Operating system: Windows, Linux, OS X.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3d3dy5oZWlkaS5pZS9lcmFzZXIv"&gt;Eraser&lt;/a&gt; - is an advanced security tool (for Windows), which allows you to completely remove sensitive data from your hard drive by overwriting it several times with carefully selected patterns. Works with Windows 95, 98, ME, NT, 2000, XP, Windows 2003 Server and DOS.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3d3dy5jbGFtd2luLmNvbS8="&gt;ClamWin Free Antivirus&lt;/a&gt; - is a Free Antivirus for Microsoft Windows 98/Me/2000/XP and 2003. With Clam Win you can scan individual files manually or you can use the Microsoft Outlook add-in to find and remove infected attachments automatically.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL2lwY29wLm9yZy8="&gt;IPCop Firewall&lt;/a&gt; - provides a good option for home users and small offices. It?s stable, secure, and easy to configure and maintain. Operating system: Linux.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Remote Desktop&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3d3dy51dm5jLmNvbS8="&gt;UltraVNC&lt;/a&gt;- is a powerful, easy to use and free software that can display the screen of another computer (via internet or network) on your own screen. The program allows you to use your mouse and keyboard to control the other PC remotely. Key features app include File Transfer, Video Driver, optional Encryption Plugins, MS Logon, Text Chat, Viewer Toolbar, and others. Although it?s designed primarily for Windows, the Embedded Java Viewer allows you to transfer files to and from other operating systems as well. Operating system: Windows.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3d3dy50aWdodHZuYy5jb20v"&gt;TightVNC&lt;/a&gt; - is a free remote control software package derived from the popular VNC software. With TightVNC, you can see the desktop of a remote machine and control it with your local mouse and keyboard, just like you would do it sitting in the front of that computer. TightVNC offers additional features like file transfers, video mirror drive support, scaling of the remote desktop, support for two passwords, and more.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;System Administration Tools &lt;/strong&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3d3dy53ZWJtaW4uY29tLw=="&gt;Webmin&lt;/a&gt; - is a web-based interface for system administration for Unix. Using any modern web browser, you can setup user accounts, Apache, DNS, file sharing and much more. Webmin removes the need to manually edit Unix configuration files like /etc/passwd, and lets you manage system from the console or remotely.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3d3dy53aXJlc2hhcmsub3JnLw=="&gt;Wireshark &lt;/a&gt;- is the world’s foremost network protocol analyzer. It supports hundreds of different protocols, multiple platforms, and can analyze VoIP traffic. Operating system: Windows, Linux/Unix, OS X, Solaris, All BSD Platforms.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL2luc2VjdXJlLm9yZy9ubWFwLw=="&gt;Nmap&lt;/a&gt; -is a free open source utility for network exploration or security auditing. It was designed to rapidly scan large networks, although it works fine against single hosts. Nmap uses raw IPpackets in novel ways to determine what hosts are available on the network, what services (application name and version) those hosts are offering, what operating systems (and OS versions) they are running, what type of packet filters/firewalls are in use, and dozens of other characteristics.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3d3dy50cnVlY3J5cHQub3JnLw=="&gt;TrueCrypt&lt;/a&gt; - is an open-source disk encryption software for Windows Vista/XP/2000 and Linux. It is a software system for establishing and maintaining anon-the-fly-encrypted volume (data storage device). On-the-fly encryption means that data are automatically encrypted or decrypted right before they are loaded or saved, without any user intervention.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL2dscGktcHJvamVjdC5vcmcv"&gt;GLPI&lt;/a&gt; - is the Information Resource-Manager with an additional Administration- Interface. You can use it to build up a database with an inventory for your company (computer, software, printers…) Operating system: OS Independent.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3d3dy5jbGFtd2luLmNvbS8="&gt;ClameWin&lt;/a&gt; - is a Free Antivirus for Microsoft Windows 98/Me/2000/XP and 2003. ClamWin Free Antivirus comes with an easy installer and open source code. You may download and use it absolutely freeof charge&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Video/Multi-Media Tools &lt;/strong&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3d3dy52aXJ0dWFsZHViLm9yZy8="&gt;VirtualDub&lt;/a&gt; -is a video capture/processing utility for 32-bit Windows platforms (95/98/ME/NT4/2000/XP).It?s useful for basic trimming and cleaning up footage, and also has batchprocessing capabilities.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL21lZGlhY29kZXIuc291cmNlZm9yZ2UubmV0Lw=="&gt;MediaCoder&lt;/a&gt; - is a free universal batch media trans coder, which integrates most popular audio/video codecs and tools into an all-in-one solution.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3d3dy5jb2RlY3MuY29tL2Rvd25sb2FkL0ZGRFNob3cuaHRt"&gt;FFDShow&lt;/a&gt; - is a DirectShow decoding filter for decompressing DivX, XviD, H.264, FLV1, WMV,MPEG-1 and MPEG-2, MPEG-4 movies.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3hpbmVocS5kZS8="&gt;Xine&lt;/a&gt; - is a free multimedia player. It playsback CDs, DVDs, and VCDs. It also decodes multimedia files like AVI, MOV, WMV, and MP3 from local disk drives, and displays multimedia streamed over the Internet.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL21wbGF5ZXJvc3guc291cmNlZm9yZ2UubmV0Lw=="&gt;MPlayer OS X&lt;/a&gt; - is binary distribution of MPlayer (The Movie Player for Linux) and comes with native GUIin MacOSX. After installation you can simply (by Drag&amp;amp;Drop) play almost all3ivx, DivX 3,4,5 and other codecs files in the window or full screen mode. Rendering of very nice antialiased text-based subtitles is also supported.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL2J0d2luY2FwLnNvdXJjZWZvcmdlLm5ldC8="&gt;WDM&lt;/a&gt; - is a Video Capture driver for Bt848, Bt849, Bt878 and Bt879 based video capture boards. It tries to take the most of the hardware, using all the features the chipset has to offer. It is also implemented as a WDM driver, so the same driver works under Win2000,Win98SE, WinXP and WinMe without modifications.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3d3dy50ZWFtLW1lZGlhcG9ydGFsLmNvbS8="&gt;MediaPortal&lt;/a&gt; - is an Open Source application ideal for turning your PC / TV into a very advanced Media Center. Media Portal allows you to listen to your favorite music &amp;amp; radio, watch and storeyour videos and DVDs, view, schedule and record live TV as a digital video recorder and much much more.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL2xpdmVzLnNvdXJjZWZvcmdlLm5ldC8="&gt;LiVES&lt;/a&gt; - is a very flexible tool which can be used by both VJ’s and video editors - mix and switch clips from the keyboard, trim and edit your clips, and bring them together using the multi track timeline.&lt;/li&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3d3dy52aWRlb2xhbi5vcmcvdmxjLw=="&gt;VLC Media Player&lt;/a&gt; - is a highly portable multimedia player for various audio and video formats (MPEG-1, MPEG-2,MPEG-4, DivX, mp3, ogg, …) as well as DVDs, VCDs, and various streaming protocols.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Wikis&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3d3dy5tZWRpYXdpa2kub3JnL3dpa2kvTWVkaWFXaWtp"&gt;MediaWiki &lt;/a&gt;- is a free software wiki package originally written for Wikipedia. It allows collaborative editing on documents within a familiar interface. It was designed to be run on a large server farm and requires Apache, PHP, and MySQL.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Window Manager&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://lifehacker.biz/wp-sys/aHR0cDovL3d3dy5mbHV4Ym94Lm9yZy8="&gt;Fluxbox &lt;/a&gt;- is based on and very similar to the Black box window manager. However, it adds several new features, including configurable window tabs, icon bar, wheel scroll changes workspace, configurable titlebar, kde support, and others.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4053486063052531067-7836450242068613988?l=ashko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ashko.blogspot.com/feeds/7836450242068613988/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4053486063052531067&amp;postID=7836450242068613988' title='66 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/7836450242068613988'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/7836450242068613988'/><link rel='alternate' type='text/html' href='http://ashko.blogspot.com/2009/06/list-of-best-open-source-software.html' title='List of Best Open Source Software'/><author><name>ÅšhΘκ  Šμ∂απi</name><uri>http://www.blogger.com/profile/17739127081189346556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>66</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4053486063052531067.post-4099320769356188582</id><published>2009-03-26T05:54:00.000-07:00</published><updated>2009-03-26T05:55:55.442-07:00</updated><title type='text'>IE8 vs Chrome vs Firefox3 vs Safari4</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The web browser battle is going fiercer. The recent updation to all the popular browsers has taken the battle to next frontier. From Microsoft IE to Mozilla Firefox to Google Chrome to Apple Safari, all have upped the ante adding a variety of new elements, security updates and a host of next-gen navigational features. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So here's a compare meter that evaluates the latest version of Internet Explorer, Firefox, Google Chrome and Apple Safari on various parameters. Read on...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Speed&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;IE8:&lt;/span&gt; Microsoft claims that the new browser is faster in almost every respect. It loads faster, switches pages faster, and renders complex graphics and videos faster than previous versions. The company released a report, titled Measuring Browser Performance: Understanding issues in benchmarking and performance analysis, which shows IE 8 faster than Firefox 3.05 and Google's Chrome browser. Microsoft spelled out how it tests browsers in-house, and stressed that it doesn't buy the idea that benchmarks -- such as those that score JavaScript performance -- accurately compare the players. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Firefox 3: &lt;/span&gt;Firefox claims that improvements to the JavaScript engine as well as profile guided optimisation have enhanced the performance of Firefox 3.0. Firefox 3.0 enables web applications like Google Mail and Zoho Office to run twice as fast compared to Firefox 2. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Safari 4:&lt;/span&gt; Apple claims Safari 4 to be the world's fastest Web browser. According to the company, Safari 4’s Nitro JavaScript engine makes it up to 30 times faster than Internet Explorer 7, Firefox 3, and Google Chrome. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Chrome:&lt;/span&gt; Google recently released the first major update to its Chrome browser aimed at the general public since Google entered the browser business six months ago. According to Google, the new Chrome beta loads certain types of Web pages 25 per cent to 35 per cent faster than the current version of the browser.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Security&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;IE8:&lt;/span&gt; IE8 beefs up protection against malware and known phishing scam sites. It comes with built-in technology to protect against another kind of threat, "cross-site scripting," in which hackers insert code into legitimate Web pages that compromise peoples' computers without them knowing it. IE 8 disables the bad scripts but in most cases allows others needed for a Web page to run as usual. IE 8 also prevents another kind of attack called "clickjacking," where a Web surfer might think he is clicking on a legitimate button when in fact he is activating an invisible, malicious action. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Firefox 3: &lt;/span&gt;This too adds several new security features. An important addition is One-click site info where the users can click the site favicon in the location bar to see who owns the site and to check if their connection is protected from eavesdropping. The identity verification is prominently displayed in the new version. The new version also has enhanced malware protection which warns users when they enter a site which can install viruses, spyware, trojans or other malware. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Safari 4:&lt;/span&gt; There are no new security features in Safari 4 beta. However, the browser has all the security features from the previous version, these include phishing and malware protection, anti-virus integration, cookie blocking, parental controls and option to customize offline database storage size. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Chrome:&lt;/span&gt; For safe browsing experience, Chrome regularly keeps on downloading a list of harmful sites. This is the Internet search giant's attempt to fight malware and phishing attacks. Google also promises that whatever will run in a tab will be filtered so that it doesn't affect user’s machine.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Navigation&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;IE8:&lt;/span&gt; Microsoft browser introduces Tab Groups, which makes tabbed browsing easier. When one tab is opened from another, the new tab is placed next to the originating tab and colour coded, so that users can quickly see which tabs have related content. Also, the new Address Bar of IE8 automatically recalls sites users visited based on their entry. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Firefox 3&lt;/span&gt;: The new version promises more organised and clutter-free experience. An information bar replaces the old password dialogue so that users can now save passwords after a successful login. The revised Download Manager makes it easier to locate downloaded files, and users can search the name of the website where the file came from. The new version makes it possible to install extensions from third-party sites in fewer clicks. Another feature that adds volume to the new version is Full page zoom. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Safari 4:&lt;/span&gt; The browser features a new preview for favorite websites and new tabs. Called Top Sites, the new feature lets users preview a listing of favorite websites without navigating to a new screen. It also presents 24 thumbnails on a single page for better viewing. The feature supports grid-style snap-and-place which is fully customisable. Safari 4 also offers enhanced keyboard navigation options.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Chrome:&lt;/span&gt; Instead of traditional tabs like those seen in Firefox or Internet Explorer, Chrome puts the tab buttons on the upper side of the window, not below the address bar. Web programmes can be launched in their own dedicated windows. The browser has an address bar `omnibox' with auto-completion features. It offers search suggestions, top pages that a user visited and pages he didn’t visit but are popular.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Key feature additions&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;IE8:&lt;/span&gt; IE8 packs a new feature called Accelerators which allows users to highlight text on a website and choose from a variety of functions, including search engines, language translation or map displays. Another time-saving feature of IE 8 is called Web Slices, which is designed to allow you to subscribe to frequently-updated portions, or "slices," of certain websites. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Firefox 3:&lt;/span&gt; The new version promises secured data protection. User's bookmarks, history, cookies, and preferences will now be stored in a secure database format which will prevent data loss even if their system crashes. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Safari 4:&lt;/span&gt; Apple Safari 4 debuts a new feature called "Cover Flow" which provides easy reviewing of site history and bookmarked websites. Similar to Top Sites, it presents previews on what the pages looked like when a user visited them. The Web browser is using advanced caching to display the websites exactly the way they were shown during visits. Apple has also added a new "Full History Search" for Top Sites and Cover Flow in Safari 4. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Chrome:&lt;/span&gt; As a default homepage, the browser offers a Seed Dial feature. This gives users a view of their most visited Web pages in 9 screenshot thumbnails. Also, the browser supports multi-tasking. Just like in a typical operating system each application is given its own memory and its own copy of global data structures. Applications will launch in their own windows so that if one should hang or crash it won’t affect the others. This will also prevent the whole browser from crashing.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Bookmarking&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;IE8:&lt;/span&gt; IE now offers a better place to keep track of top favorites. Users can save Favorites, RSS Feeds, and Web Slices to the Favorites bar that appears across the top of the browser, quickly navigating to the sites and content they want. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Firefox 3.0: &lt;/span&gt;Users can add bookmarks from the location bar with a single click. A dropdown box lets users name it, choose a folder to put it in as well as add a tag to categorise it. There is also a Smart Bookmarks Folder from where users can access recently-bookmarked and tagged pages, as well as most-frequently visited pages. Another feature called Places Organiser will help users view, organise and search through all bookmarks, tags, and browsing history with multiple views and smart folders to store frequent searches. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Safari 4:&lt;/span&gt; Safari has Auto-Click bookmarks feature that lets users automatically open the bookmarks inside a bookmark folder, each in a separate tab. It also provides an iTunes-style interface where users can view, create, and organise their bookmarks. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Chrome: &lt;/span&gt;To add a bookmark in Chrome just click the star icon at the left edge of the address bar and its done. Google Chrome also has a bookmark manager (Ctrl+Shift+B) to better organise bookmarks and folders. To create a Bookmark folder: In the folder list on the left, right-click the location where you want the new folder to reside and select Add folder. Use the search box at the top to locate a bookmark within the manager.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Private browsing&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;IE8: &lt;/span&gt;Microsoft has added some new privacy features, including a mode for Web browsing that doesn't remember what sites were visited nor stores small data files called cookies. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Chrome:&lt;/span&gt; Google's Chrome calls this Incognito mode. This mode lets users create an "incognito" window where "nothing that occurs in that window is ever logged onto your computer." This is a read-only feature with access to one's bookmarks or favorite sites. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Firefox 3:&lt;/span&gt; In Firefox, you can achieve something close to Incognito mode by choosing to clear private date from the Edit - Preferences - Privacy dialogue box. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Safari 4:&lt;/span&gt; The browser too offers Private Browsing mode. So, when you surf the web on a shared or public PC, Safari can protect your personal information. Safari doesn’t save or cache any personal information you enter or pages you visit.&lt;/div&gt;&lt;div&gt;|  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4053486063052531067-4099320769356188582?l=ashko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ashko.blogspot.com/feeds/4099320769356188582/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4053486063052531067&amp;postID=4099320769356188582' title='81 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/4099320769356188582'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/4099320769356188582'/><link rel='alternate' type='text/html' href='http://ashko.blogspot.com/2009/03/ie8-vs-chrome-vs-firefox3-vs-safari4.html' title='IE8 vs Chrome vs Firefox3 vs Safari4'/><author><name>ÅšhΘκ  Šμ∂απi</name><uri>http://www.blogger.com/profile/17739127081189346556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>81</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4053486063052531067.post-3944483641775552098</id><published>2009-03-24T02:39:00.001-07:00</published><updated>2009-03-24T02:39:52.181-07:00</updated><title type='text'>5 problems in Internet Explorer 8 !!!!!!</title><content type='html'>&lt;div&gt;The latest version of Microsoft browser Internet Explorer 8 has received mixed response from users and analysts. The browser which is getting high marks for a host of navigational and security features, is also being criticised for not being fast enough. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As of last Friday, web reports stated that IE8 only accounted for about one and a half per cent of all internet traffic. Here's are some of the gripes users have with the new Microsoft browser.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Compatibility issues&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Internet Explorer 8 suffers from compatibility problems with Web standards such as CSS, HTML4 and XHTML, according to the results of The Web Standards Project's Acid Test 3. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The Acid 3 test for compatibility ensures that the browser works well with technologies such as CSS, HTML4 and XHTML. However, the test reveals that IE8 falls far short of scores delivered by other new browser software from Google and Mozilla. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This failure could especially be a huge stumbling block for developers as they rely on these standards to make sure their work can run across many different browsers and on different OSes. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Microsoft had earlier warned that IE8's default support for some new Internet standards may cause problems with their sites. Explorer 8 includes a tool called Compatibility View that lets users view sites built for previous editions of the browser.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Still slow !!! :(&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;Microsoft Corp is boasting about the performance speed of the IE8, but the new browser remains the slowest of the top five on the market. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;According to JavaScript rendering tests run by Computerworld, the final version of IE8 is only slightly faster than the browser's Release Candidate 1, which Microsoft released in January. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;According to the test findings (which appeared in Computerworld) Google Inc's Chrome led all browsers in the SunSpider tests, making it more than four times faster than IE8. Second was Mozilla Corp's Firefox 3.0.7, followed by Apple Inc's Safari 3.2.2 for Windows and Opera Software's Opera 9.63. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Firefox proved to be 59 per cent faster than IE8, while Safari was 47 per cent faster. Opera, the slowest non-Microsoft production browser, was still 38 per cent faster than IE8. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Walt Mossberg, the personal-technology columnist for The Wall Street Journal, criticised IE 8's performance in an All Things Digital post, "Microsoft claims IE 8 is very fast, but in my tests, speed and performance were its worst attributes. Using two computers, one running Windows XP and one running Windows Vista, I timed the loading of a half-dozen popular Web sites, plus two folders containing numerous news and sports sites. I repeated the test in IE 8, and in Firefox, Safari 4, and Chrome. In every case, IE 8 loaded the pages and folders more slowly than most of the other browsers, and in most cases, it came in dead last." &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Incidentally, Microsoft said that its own speed tests prove Internet Explorer 8 (IE8) to be faster than both Firefox and Chrome.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Hacked! uuuh !&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;IE8 beefs up protection against malware and known phishing scam sites. However, the new browser suffered its first hack just days after its official launch (along with Safari and Firefox browsers). &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;At a security conference last week in Canada, a hacker exploited a security hole in Microsoft's new Internet Explorer 8 in under two hours, taking control of a Sony laptop running an internal build of Windows 7. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The 25-year-old German researcher won $5,000 and a Sony laptop in the annual contest PWN2OWN that invites hackers to worm their way into popular browsers and operating systems for prize money. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Later, Microsoft confirmed for TippingPoint's Digital Vaccine Laboratories that the IE8 vulnerability was genuine. It is still unknown whether the vulnerability exists only on Windows 7.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;No final support for Windows 7 !! so bad :(&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Microsoft is currently not offering the final version of Internet Explorer 8 on Windows 7. For those using Windows 7 Beta will have to stick with IE8 Release Candidate 1 for now. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Microsoft has not confirmed when the final version of IE8 will be available for Windows 7, but it is expected in the next public release for Windows 7. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Also, IE8 can only be downloaded from www.microsoft.com/ie8 or Microsoft's Download Center. Microsoft has not specified when it will push IE8 through the Windows Update service.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Clickjacking good, but not enough!&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;According to Microsoft, IE 8 helps web designers prevent "clickjacking," where a Web surfer might think they're clicking on a legitimate button when in fact they're activating an invisible, malicious action. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;However, many experts believe that Microsoft's latest technology to protect Internet Explorer users from clickjacking will not fix the problem. According to them, it won't be a panacea cure-all, but it may help. Researches believe that the problem is so vast that Microsoft's approach, which works only when developers add special tags to their pages that prevent their own Web buttons from being misused, may end up giving IE users a false sense of security. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Microsoft released the technology as part of an early test version of its Internet Explorer 8 browser, saying that the company had developed "consumer-ready" protection for an attack. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Clickjacking enables an attacker to force a user click on an invisible link, obviously without his knowledge or consent. Once a user clicks the link unknowingly, the hacker takes over the control.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4053486063052531067-3944483641775552098?l=ashko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ashko.blogspot.com/feeds/3944483641775552098/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4053486063052531067&amp;postID=3944483641775552098' title='60 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/3944483641775552098'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/3944483641775552098'/><link rel='alternate' type='text/html' href='http://ashko.blogspot.com/2009/03/5-problems-in-internet-explorer-8.html' title='5 problems in Internet Explorer 8 !!!!!!'/><author><name>ÅšhΘκ  Šμ∂απi</name><uri>http://www.blogger.com/profile/17739127081189346556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>60</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4053486063052531067.post-2517061421691611993</id><published>2009-02-18T23:36:00.000-08:00</published><updated>2009-02-18T23:37:39.041-08:00</updated><title type='text'>What is Web Services?</title><content type='html'>&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); font-family: 'Lucida Grande'; font-size: 12px; line-height: 18px; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; min-height: 8pt; height: auto !important; "&gt;&lt;strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;Definition&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; min-height: 8pt; height: auto !important; "&gt;There are two ways the term Web services can be used. One refers to standards-based software accessible over the Web. That is the definition  used by Amazon and others who offer Web services online to businesses for a fee.  These Web services often rely on HTTP and are referred to as RESTful Web services. RESTful Web services do not use XML or SOAP.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; min-height: 8pt; height: auto !important; "&gt; &lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; min-height: 8pt; height: auto !important; "&gt;But Web services can also be used in a slightly different way, and it is this definition that is most common when you talk about using Web services in enterprises to support, for instance, a service-oriented  architecture. In this case, the &lt;a class="jive-link-external-small external" href="http://www.w3.org/TR/ws-gloss/" target="_blank" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: none; color: rgb(0, 0, 153); cursor: pointer; "&gt;W3C's definition&lt;/a&gt; might be more helpful: “A Web service is a software system  designed to support interoperable machine-to-machine interaction over a  network. It has an interface described in a machine-processable format  (specifically WSDL). Other systems interact with the Web service in a manner  prescribed by its description using SOAP-messages, typically conveyed using  HTTP with an XML serialization in conjunction with other Web-related  standards.”&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; min-height: 8pt; height: auto !important; "&gt; &lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; min-height: 8pt; height: auto !important; "&gt;&lt;strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;Business applications&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; min-height: 8pt; height: auto !important; "&gt;There are a number of business uses for Web services. One of  the most obvious business uses is the ability to subscribe to Web services online or even offer your own Web services to clients or business partners via the Internet. Web services can be combined to provide new software and  services, as well.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; min-height: 8pt; height: auto !important; "&gt; &lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; min-height: 8pt; height: auto !important; "&gt;Web services can also be used for application integration, linking applications, &lt;a class="jive-link-external-small external" href="http://www.wisegeek.com/what-are-web-services.htm" target="_blank" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: none; color: rgb(0, 0, 153); cursor: pointer; "&gt;according to WiseGeek.com.&lt;/a&gt; Since Web services can use HTTP and so work through the  firewall, which means you don't have to deal with special security protocols. It should be noted, however, that Web services can also use File Transfer Protocol (FTP), and Simple Mail Transfer Protocol (SMTP) and Extensible  Messaging and Presence Protocol (XMPP) for exchanging data.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; min-height: 8pt; height: auto !important; "&gt; &lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; min-height: 8pt; height: auto !important; "&gt;Web services can also form the foundation for service-oriented architecture or a Web-oriented architecture.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; min-height: 8pt; height: auto !important; "&gt; &lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; min-height: 8pt; height: auto !important; "&gt;&lt;strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;Deployment Concerns&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; min-height: 8pt; height: auto !important; "&gt;One issue to consider is whether you'll use a SOAP-based  approach or a RESTful approach to Web services. Much has been written about the pros and cons of each. Here are a few notes on the pros and cons of each.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; min-height: 8pt; height: auto !important; "&gt; &lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; min-height: 8pt; height: auto !important; "&gt;SOAP – SOAP-based Web services are supported by software vendors in SOAP WS toolkits, which makes it easy for enterprises to deploy on  SOAP. RESTful critics claim that changes to the SOAP stack could cause problems  with the service. Critics also say the use of XML as a messaging tool could create unnecessary overhead and slow down the service.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; min-height: 8pt; height: auto !important; "&gt; &lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; min-height: 8pt; height: auto !important; "&gt;REST – RESTful Web services are supposed to be easier and leaner than SOAP-based Web services.  &lt;a class="jive-link-external-small external" href="http://www.oreillynet.com/pub/wlg/3005" target="_blank" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: none; color: rgb(0, 0, 153); cursor: pointer; "&gt;Amazon.com&lt;/a&gt; claims 80 to 85  percent of its Web services clients use REST. The main problem with REST is it's not supported by major vendors or their software development tools. Others  point out REST is so easy to build, you don't need a toolkit.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; min-height: 8pt; height: auto !important; "&gt; &lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; min-height: 8pt; height: auto !important; "&gt;Dion Hinchcliffe &lt;a class="jive-link-external-small external" href="http://hinchcliffe.org/archive/2005/02/12/171.aspx" target="_blank" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: none; color: rgb(0, 0, 153); cursor: pointer; "&gt;wrote an overview of the REST&lt;/a&gt; versus SOAP debate in 2005 that's still useful today.&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4053486063052531067-2517061421691611993?l=ashko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ashko.blogspot.com/feeds/2517061421691611993/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4053486063052531067&amp;postID=2517061421691611993' title='27 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/2517061421691611993'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/2517061421691611993'/><link rel='alternate' type='text/html' href='http://ashko.blogspot.com/2009/02/what-is-web-services.html' title='What is Web Services?'/><author><name>ÅšhΘκ  Šμ∂απi</name><uri>http://www.blogger.com/profile/17739127081189346556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>27</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4053486063052531067.post-1902664849565416781</id><published>2008-08-06T03:22:00.000-07:00</published><updated>2008-11-11T20:25:33.317-08:00</updated><title type='text'>SOAP with PHP :  Create Web Service using SOAP by Example</title><content type='html'>&lt;span class="txtplain1"&gt;SOAP is a wonderful technology that can help you in developing great applications. In this tutorial, we will investigate the use of SOAP in PHP.&lt;p&gt;Unless you have been living in a cave somewhere without Internet access for the last few years, you have undoubtedly heard of XML, SOAP and Multi-Tiered Application Programming. If you are like many programmers, including myself, you were quite taken aback by these ideas and technologies. You may have gone so far as to simply dismiss them as irrelevant to your skill set. It's time to wake up and realize they're here to stay... and for good reason!&lt;/p&gt;&lt;p&gt;XML and SOAP, and in turn Multi-Tiered Programming, are technologies that can take you from being a run of the mill code hacker to a professional application developer that actually builds cool things that work and which other people can work on. These technologies enable you to build applications that separate data from presentation, keep things organized and enable your application to scale as your needs and user base increases.&lt;/p&gt;&lt;p&gt;If you believe like I do that the Internet is the ultimate building ground of our future, then you have to see that the 'hackish' method in which most applications for the web are built and designed is pitiful. I know that I am quite guilty of it, myself. Many times I get an itch and I just scratch it without thinking of what the future holds or the maintainability of my application. Sure the job gets done; the itch has gone away momentarily. But when the itch comes back six months down the road and I have to add or modify features, I am utterly disappointed in myself over the sorry shape of my code.&lt;/p&gt;&lt;p&gt;You may be asking, how can XML and SOAP help me to avoid poor application design? Well, by themselves they won't help at all. First and foremost you must get yourself into the mind set that it needs to take place. XML and SOAP are just two tools that will allow you to accomplish your goal.&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;&lt;span class="txtplain1"&gt;&lt;span class="contentpagetitle"&gt;&lt;h1 class="contentpagetitle"&gt;&lt;b&gt;Define Our Goal&lt;/b&gt;&lt;/h1&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Today we will build a Web Service using SOAP. In doing so, I hope that you will become familiar with the technology so that you can start incorporating it into your future applications.&lt;/p&gt;&lt;/span&gt;&lt;span class="txtplain1"&gt;&lt;p&gt;Before we get too much further along, let's make sure we are all on the same footing regarding the basic terminology that we will deal with in this tutorial.&lt;/p&gt;&lt;list&gt;&lt;li&gt;&lt;b&gt;XML&lt;/b&gt;: "XML is the Extensible Markup Language. It is designed to improve the functionality of the Web by providing more flexible and adaptable information identification." (&lt;a rel="nofollow" target="_blank" href="http://www.ucc.ie/xml/#acro"&gt;http://www.ucc.ie/xml/#acro&lt;/a&gt;)%br%%br%In other words, XML is a method for describing your data. For the purpose of this tutorial, we will not be directly manipulating any XML. Instead, we will examine the XML resulting from our scripts. The libraries and protocols we will use through this tutorial will handle the XML manipulation for us.%br%%br%&lt;/li&gt;&lt;li&gt;&lt;b&gt;SOAP&lt;/b&gt;: Simple Object Access Protocol. "SOAP is a lightweight protocol for exchange of information in a decentralized, distributed environment. It is an XML based protocol that consists of three parts: an envelope that defines a framework for describing what is in a message and how to process it, a set of encoding rules for expressing instances of application-defined datatypes, and a convention for representing remote procedure calls and responses." (&lt;a rel="nofollow" target="_blank" href="http://www.w3.org/TR/2000/NOTE-SOAP-20000508/"&gt;http://www.w3.org/TR/2000/NOTE-SOAP-20000508/&lt;/a&gt;) is what you are here for. We will develop both a client and a server for our SOAP service. In this tutorial, we will be using the NuSOAP library. (&lt;a rel="nofollow" target="_blank" href="http://dietrich.ganx4.com/nusoap/index.php"&gt;http://dietrich.ganx4.com/nusoap/index.php&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;&lt;b&gt;WSDL&lt;/b&gt;: "WSDL is an XML format for describing network services as a set of endpoints operating on messages containing either document-oriented or procedure-oriented information." (&lt;a rel="nofollow" target="_blank" href="http://www.w3.org/TR/wsdl"&gt;http://www.w3.org/TR/wsdl&lt;/a&gt;) with XML, we will not be directly any WSDL documents. The wonderful NuSOAP library will generate WSDL documents for us. What you need to know about WSDL is that it is a document that describes a Web Service. It can tell a client how to interact with the Web Service and what interfaces that Web Service provides.&lt;/li&gt;&lt;/list&gt;&lt;list&gt;&lt;li&gt;&lt;b&gt;Client&lt;/b&gt;: We will define a Client as a script that uses a Web Service.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Server&lt;/b&gt;: Conversely, a Server will be defined as a script that provides a Web Service.&lt;/li&gt;&lt;/list&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="txtplain1"&gt;&lt;p&gt;Today we are going to build a Web Service that will return a stock price given a particular stock symbol. This is a classic example of where Web Services are of great use.&lt;/p&gt;&lt;p&gt;You may be building an application that needs the data and could very easily just pull the data directly from your data source. Building a Web Service for it, however, allows you to give other applications easy access the same data in the future. It also separates the data extraction from the data source from the application itself. Say you were storing the data in a MySQL database but later decided to move it to a SQLite database... in this scenario your application wouldn't know the difference. Its calls to the Web Service remain unchanged.&lt;/p&gt;&lt;p&gt;To provide a stock quote service you will have to have the stock prices and symbols stored in some fashion or another. This tutorial is not going to concentrate on the storage mechanism or how to obtain the prices. I will simply provide you will a table schema and some sample data to work with.&lt;/p&gt;&lt;table  style="background-color: rgb(222, 223, 181);font-size:9px;" border="1" cellpadding="0" cellspacing="0" width="100%"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;CREATE TABLE `stockprices` (&lt;br /&gt;`stock_id` INT UNSIGNED NOT NULL AUTO_INCREMENT ,&lt;br /&gt;`stock_symbol` CHAR( 3 ) NOT NULL ,&lt;br /&gt;`stock_price` DECIMAL(8,2) NOT NULL ,&lt;br /&gt;PRIMARY KEY ( `stock_id` )&lt;br /&gt;);&lt;br /&gt;INSERT INTO `stockprices` VALUES (1, 'ABC', '75.00');&lt;br /&gt;INSERT INTO `stockprices` VALUES (2, 'DEF', '45.00');&lt;br /&gt;INSERT INTO `stockprices` VALUES (3, 'GHI', '12.00');&lt;br /&gt;INSERT INTO `stockprices` VALUES (4, 'JKL', '34.00');&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/span&gt;&lt;span class="txtplain1"&gt;&lt;span class="contentpagetitle"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="txtplain1"&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;&lt;span class="txtplain1"&gt;&lt;span class="contentpagetitle"&gt;&lt;h1 class="contentpagetitle"&gt;&lt;b&gt;Create a SOAP server&lt;/b&gt;&lt;/h1&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;span class="txtplain1"&gt;&lt;p&gt;The first thing we need to do is to create the SOAP server. This is the script that will fetch the data from the database and then deliver it to the Client. One wonderful thing about the NuSOAP library is that this same Server script will also create a WSDL document for us.&lt;/p&gt;&lt;p&gt;The first step is to create a function that will fetch the data we want. Create this function just as you would any other. It is just straight up PHP. The one trick is to name the function something sensible, as this will be the name that is used when the Client contacts the Server.&lt;/p&gt;&lt;table  style="background-color: rgb(222, 223, 181);font-size:9px;" border="1" cellpadding="0" cellspacing="0" width="100%"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;function &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;getStockQuote&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$symbol&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) {&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;mysql_connect&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;'server'&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;'user'&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;'pass'&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;mysql_select_db&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;'test'&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$query &lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;= &lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"SELECT stock_price FROM stockprices "&lt;br /&gt;       &lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;. &lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"WHERE stock_symbol = '$symbol'"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$result &lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;= &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;mysql_query&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$query&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$row &lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;= &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;mysql_fetch_assoc&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$result&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;return &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$row&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;'stock_price'&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;];&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;?&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;Now, it is time to turn this function into a Web Service. Basically, all we have to do is include the NuSOAP library, instantiate the soap_server class and then register the function with the server. Let's go through it step by step, after which I will present the completed script.&lt;/p&gt;&lt;p&gt;The first thing necessary is to simply include the NuSOAP library.&lt;/p&gt;&lt;table  style="background-color: rgb(222, 223, 181);font-size:9px;" border="1" cellpadding="0" cellspacing="0" width="100%"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;require('nusoap.php');&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;Next, instantiate an instance of the soap_server class.&lt;/p&gt;&lt;table  style="background-color: rgb(222, 223, 181);font-size:9px;" border="1" cellpadding="0" cellspacing="0" width="100%"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;$server = new soap_server();&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;The next line is used to tell NuSOAP information for the WSDL document it is going to create for us. Specifically we specify the name of the server and the namespace, in that order.&lt;/p&gt;&lt;table  style="background-color: rgb(222, 223, 181);font-size:9px;" border="1" cellpadding="0" cellspacing="0" width="100%"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;$server-&gt;configureWSDL('stockserver', 'urn:stockquote');&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;Now, we register the function we created with the SOAP server. We pass several different parameters to the register method. &lt;/p&gt;&lt;p&gt;The first is the name of the function we are registering. &lt;/p&gt;&lt;p&gt;The next parameter specifies the input parameters to the function we are registering. Notice that it is an array. The keys of the array represent the names of the input parameters, while the value specifies the type of the input parameter. One thing that pure PHP programmers might find odd is that I had to specify what types my input and return parameters are with the designations of xsd:string and xsd:decimal. It is required that you describe your data properly. You are not dealing with a loosely typed language here.&lt;/p&gt;&lt;p&gt;The third parameter to the register method specifies the return type of the registered function. As shown below, it is fashioned in the same way as the last parameter, as an array. &lt;/p&gt;&lt;p&gt;The next two parameters specify the namespace we are operating in, and the SOAPAction. For more information on the SOAPAction see &lt;a rel="nofollow" target="_blank" href="http://www.oreillynet.com/pub/wlg/2331"&gt;http://www.oreillynet.com/pub/wlg/2331&lt;/a&gt;.&lt;/p&gt;&lt;table  style="background-color: rgb(222, 223, 181);font-size:9px;" border="1" cellpadding="0" cellspacing="0" width="100%"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;$server-&gt;register("getStockQuote",&lt;br /&gt;            array('symbol' =&gt; 'xsd:string'),&lt;br /&gt;            array('return' =&gt; 'xsd:decimal'),&lt;br /&gt;            'urn:stockquote',&lt;br /&gt;            'urn:stockquote#getStockQuote');&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;Now, we finally finish it off with two more lines of code. The first simply checks if $HTTP_RAW_POST_DATA is initialized. If it is not, it initializes it with an empty string. The next line actually calls the service. The web request is passed to the service from the $HTTP_RAW_POST_DATA variable and all the magic behind the scenes takes place.&lt;/p&gt;&lt;table  style="background-color: rgb(222, 223, 181);font-size:9px;" border="1" cellpadding="0" cellspacing="0" width="100%"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA)&lt;br /&gt;                  ? $HTTP_RAW_POST_DATA : '';&lt;br /&gt;$server-&gt;service($HTTP_RAW_POST_DATA);&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;Here is the completed server script which I have saved in a file named stockserver.php.&lt;/p&gt;&lt;table  style="background-color: rgb(222, 223, 181);font-size:9px;" border="1" cellpadding="0" cellspacing="0" width="100%"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;function &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;getStockQuote&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$symbol&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) {&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;mysql_connect&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;'server'&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;'user'&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;'pass'&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;mysql_select_db&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;'test'&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$query &lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;= &lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"SELECT stock_price FROM stockprices "&lt;br /&gt;       &lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;. &lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"WHERE stock_symbol = '$symbol'"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$result &lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;= &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;mysql_query&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$query&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$row &lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;= &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;mysql_fetch_assoc&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$result&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;return &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$row&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;'stock_price'&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;];&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;require(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;'nusoap.php'&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$server &lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;= new &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;soap_server&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;();&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$server&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;-&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;configureWSDL&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;'stockserver'&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;, &lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;'urn:stockquote'&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$server&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;-&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;register&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"getStockQuote"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;br /&gt;            array(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;'symbol' &lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;=&gt; &lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;'xsd:string'&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;),&lt;br /&gt;            array(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;'return' &lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;=&gt; &lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;'xsd:decimal'&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;),&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;'urn:stockquote'&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;'urn:stockquote#getStockQuote'&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$HTTP_RAW_POST_DATA &lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;= isset(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$HTTP_RAW_POST_DATA&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;)&lt;br /&gt;                  ? &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$HTTP_RAW_POST_DATA &lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;: &lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;''&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$server&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;-&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;service&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$HTTP_RAW_POST_DATA&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;?&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;h1 class="contentpagetitle"&gt;&lt;span style="font-size:100%;"&gt;&lt;b&gt;&lt;b&gt;The WSDL Document&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h1&gt;&lt;span class="txtplain1"&gt;&lt;/span&gt;&lt;span class="txtplain1"&gt;&lt;p&gt;At this point you have a fully functioning SOAP Server. Clients can connect to it and request data. If you haven't done so already, bring up the script in your browser and see what you get. You should get a page giving you a link to the WSDL document for the Server. Click on it and you should see the resulting WSDL document. Surprise, surprise, it is in XML! If you read over this document, you will see that it describes what happens for a request and as a response for your particular SOAP Service.&lt;/p&gt;&lt;p&gt;Note that while it is possible to create a SOAP Server without having it create the WSDL file, I recommend creating the WSDL document anyway. It is simple enough, so why not?&lt;/p&gt;&lt;/span&gt;&lt;span class="txtplain1"&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;&lt;span class="txtplain1"&gt;&lt;span class="contentpagetitle"&gt;&lt;h1 class="contentpagetitle"&gt;&lt;b&gt;Creating a SOAP Client&lt;/b&gt;&lt;/h1&gt;&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;br /&gt;&lt;p&gt;Creating a SOAP Client to access our Server with is just as simple as creating the Server was. Understand though that the Client does not necessarily need to be a PHP Client. The SOAP Server we just created can be connected to by any type of Client, whether that be Java, C#, C++, etc.&lt;/p&gt;&lt;p&gt;To create the SOAP Client, all we need to do are three things. &lt;/p&gt;&lt;p&gt;First, include the NuSOAP library. This is done just as it was for the Server.&lt;/p&gt;&lt;table  style="background-color: rgb(222, 223, 181);font-size:9px;" border="1" cellpadding="0" cellspacing="0" width="100%"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;require_once('nusoap.php');&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;Secondly, we need to instantiate the soapclient class. We pass in the URL of the SOAP Server we are dealing with.&lt;/p&gt;&lt;table  style="background-color: rgb(222, 223, 181);font-size:9px;" border="1" cellpadding="0" cellspacing="0" width="100%"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;$c = new soapclient('http://localhost/stockserver.php');&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;Last make a call to the Web Service. The one caveat is that the parameters to the Web Service must be encapsulated in an array in which the keys are the names defined for the service. You will see that I have an array key named 'symbol' because that is the name of the input parameter of my function. If you remember how we specified the input parameters when we registered the function with the server, you will see that this is very similar.&lt;/p&gt;&lt;table  style="background-color: rgb(222, 223, 181);font-size:9px;" border="1" cellpadding="0" cellspacing="0" width="100%"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;$stockprice = $c-&gt;call('getStockQuote',&lt;br /&gt;          array('symbol' =&gt; 'ABC'));&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;Now, here is the completed Client script, which I have saved in a file named stockclient.php.&lt;/p&gt;&lt;table  style="background-color: rgb(222, 223, 181);font-size:9px;" border="1" cellpadding="0" cellspacing="0" width="100%"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;require_once(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;'nusoap.php'&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$c &lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;= new &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;soapclient&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;'http://localhost/stockserver.php'&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$stockprice &lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;= &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$c&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;-&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;call&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;'getStockQuote'&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;br /&gt;          array(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;'symbol' &lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;=&gt; &lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;'ABC'&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;));&lt;br /&gt;&lt;br /&gt;echo &lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"The stock price for 'ABC' is $stockprice."&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;?&gt;&lt;br /&gt;&lt;/span&gt;?&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;Creating a SOAP Client to access our Server with is just as simple as creating the Server was. Understand though that the Client does not necessarily need to be a PHP Client. The SOAP Server we just created can be connected to by any type of Client, whether that be Java, C#, C++, etc.&lt;/p&gt;&lt;p&gt;To create the SOAP Client, all we need to do are three things. &lt;/p&gt;&lt;p&gt;First, include the NuSOAP library. This is done just as it was for the Server.&lt;/p&gt;&lt;table  style="background-color: rgb(222, 223, 181);font-size:9px;" border="1" cellpadding="0" cellspacing="0" width="100%"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;require_once('nusoap.php');&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;Secondly, we need to instantiate the soapclient class. We pass in the URL of the SOAP Server we are dealing with.&lt;/p&gt;&lt;table  style="background-color: rgb(222, 223, 181);font-size:9px;" border="1" cellpadding="0" cellspacing="0" width="100%"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;$c = new soapclient('http://localhost/stockserver.php');&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;Last make a call to the Web Service. The one caveat is that the parameters to the Web Service must be encapsulated in an array in which the keys are the names defined for the service. You will see that I have an array key named 'symbol' because that is the name of the input parameter of my function. If you remember how we specified the input parameters when we registered the function with the server, you will see that this is very similar.&lt;/p&gt;&lt;table  style="background-color: rgb(222, 223, 181);font-size:9px;" border="1" cellpadding="0" cellspacing="0" width="100%"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;$stockprice = $c-&gt;call('getStockQuote',&lt;br /&gt;          array('symbol' =&gt; 'ABC'));&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;Now, here is the completed Client script, which I have saved in a file named stockclient.php.&lt;/p&gt;&lt;table  style="background-color: rgb(222, 223, 181);font-size:9px;" border="1" cellpadding="0" cellspacing="0" width="100%"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;require_once(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;'nusoap.php'&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$c &lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;= new &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;soapclient&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;'http://localhost/stockserver.php'&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$stockprice &lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;= &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$c&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;-&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;call&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;'getStockQuote'&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;br /&gt;          array(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;'symbol' &lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;=&gt; &lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;'ABC'&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;));&lt;br /&gt;&lt;br /&gt;echo &lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"The stock price for 'ABC' is $stockprice."&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;?&gt;&lt;br /&gt;&lt;/span&gt;?&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;span class="txtplain1"&gt;There it is. It really is that simple.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="txtplain1"&gt;&lt;span class="contentpagetitle"&gt;&lt;/span&gt;&lt;/span&gt;&lt;h1 class="contentpagetitle"&gt;&lt;span style="font-size:100%;"&gt;&lt;b&gt;&lt;b&gt;Conclusion&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h1&gt;&lt;span class="txtplain1"&gt;&lt;p&gt;Hopefully after reading through this tutorial you have an understanding of how simple it is to create a SOAP Server and Client with NuSOAP. It simply astonished me how utterly simple it was after I actually took a look at it! Before I ever laid eyes on it I had dreams of a complex system that would take months to utilize. Luckily, NuSOAP came along and made that task simpler than anyone could ever ask for.&lt;/p&gt;&lt;p&gt;As you can see, SOAP is a wonderful tool for separating your application into smaller more manageable pieces. Do realize that SOAP isn't the cure all for everything. Its overuse is just as bad as any other poor design. The key to a good application design is patience and planning. Sit down, take out the old pencil and paper and write things down. Understand what you are really getting yourself into and ask lots of 'What If' questions. Think about the future of the application and ask yourself about the different ways it may be used in the future. The number one pitfall of application design is painting yourself into a corner. If you just thought about it ahead of time you could have started at the other side of the room.&lt;/p&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="txtplain1"&gt;&lt;p&gt;&lt;span class="txtplain1"&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4053486063052531067-1902664849565416781?l=ashko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ashko.blogspot.com/feeds/1902664849565416781/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4053486063052531067&amp;postID=1902664849565416781' title='36 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/1902664849565416781'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/1902664849565416781'/><link rel='alternate' type='text/html' href='http://ashko.blogspot.com/2008/08/soap-with-php-create-webssrvie-using.html' title='SOAP with PHP :  Create Web Service using SOAP by Example'/><author><name>ÅšhΘκ  Šμ∂απi</name><uri>http://www.blogger.com/profile/17739127081189346556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>36</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4053486063052531067.post-3247090515116027999</id><published>2008-08-05T23:23:00.000-07:00</published><updated>2008-08-05T23:27:19.177-07:00</updated><title type='text'>AdSense Secret - How to choose the best keywords for adSense</title><content type='html'>Ever wondered how to select the best keywords for your Adsense websites? Your focus is earning money as well as attracting organic traffic towards your website. Here is what you need to know while choosing a keyword, a scientific study that maps the ideal keywords for your next upcoming adsense website.&lt;br /&gt;&lt;br /&gt;We shall first study how to choose keywords that lead to more Adsense money.  &lt;h2&gt;CPC - Advantages and Drawbacks&lt;/h2&gt;  &lt;h2&gt;What does CPC indicate?&lt;/h2&gt;When we think of high paying keywords, the first thing that pops up in our mind is CPC. CPC (Cost Per Click) is the maximum amount of money an advertiser is willing to pay for a click. Higher the CPC of a particular keyword, more will be the payouts you can expect by targeting that keyword in your AdSense websites. You can get the most accurate CPC from the source itself - Google.&lt;br /&gt;&lt;br /&gt;However, CPC is not the only factor that tells the profitability of a keyword.  There are many other factors that you should consider.  &lt;h2&gt;Drawbacks of CPC&lt;/h2&gt; - What if there are no advertisers bidding on a keyword having high CPC? Obviously, it means no  one is going to pay you that high for a click.&lt;br /&gt;- What if the traffic on the keyword is technical enough and does not click on ads (banner blindness)?&lt;br /&gt;- What if Google gets loads of traffic on that keyword, enough to fulfill the desires of high paying advertisers? In this case,  Google will only throw remaining peanuts towards you. &lt;br /&gt;&lt;br /&gt;Obviously, Google will like to keep all the high paying ads within its own pages. So you see, CPC just shows you a small part of the entire picture. We shall explore the rest part of the picture... &lt;h2&gt;Number of Sponsors - The Most Important Figure&lt;/h2&gt;Keywords with high CPC do not always come with high number of advertisers. There are many keywords in Google's Adwords system that have a high price, but almost no or very less number of advertisers. Now, if you build a web page or website around a keyword on which no one is bidding, Google will try to fill the ad blocks with ads of the related keywords rather than the high paying keyword you were initially targeting. There is no guarantee that ads of the related keywords will be good converters. Therefore, there is every likelihood that your clicks will be passed through SmartPricing Filter, eventually resulting in lesser payouts.&lt;br /&gt;&lt;br /&gt;Hence, it is important to see the number of sponsors bidding on the keyword in question. If there are more the advertisers, there will be more competition among them to get the top position. This means that there will be more revenue per click that they are willing to share with you. In other words, more sponsors mean more people fighting against one another other to pay you more Adsense money. &lt;h2&gt;Number of clicks on an Ad&lt;/h2&gt;It refers to the number of clicks an advertiser gets when his ad appears on the top. If the number of clicks and number of advertisers is less, just ignore those keywords, no matter what their CPC is. However, if the clicks per month are lower than expected, but the number of advertisers is a good one - it's the right choice for you. Such keywords are called "Niche AdSense' keywords." Here the word 'niche' is used in commercial context. This means that Google is not able to generate traffic on such keyword ads. This makes it difficult for it to exhaust the advertising budgets of the advertisers. Therefore, in order to meet its targets, Google happily shares high paying ads with you, resulting in more payouts. Try to find such "Niche AdSense' keywords."&lt;br /&gt;&lt;br /&gt;Coming to Higher number of clicks - It indicates: &lt;br /&gt;&lt;br /&gt;Either the traffic segment is ignorant about the online advertising concepts, and click on these ads unknowingly.  This means you will experience higher CTR on your ads when placed at appropriate place. You  don't have to put in much efforts to fight banner blindness. &lt;br /&gt;&lt;br /&gt;Or, the traffic is highly commercial and willing to purchase the advertised product over internet.  This means that there are very little chances of your facing the SmartPricing phenomenon. &lt;br /&gt;&lt;br /&gt;Number of clicks along with the other stats like Number of sponsors and CPC, can enable you to make more wise decisions while choosing keywords for your AdSense content. &lt;h2&gt;Bidding Quality&lt;/h2&gt;It's important to see the pattern in which people are bidding on a keyword. Suppose there are 400 advertisers bidding on a keyword. The top 20 of these are paying something like $15 per click, while the rest of them pay somewhere between $2 and $0.05. Now you might have found some decent tools that give you the average of top 3 or top 5 positions which is good, but not good enough. The point is that although the  top 20 advertisers are paying higher, but the rest 380 advertisers are paying quite low. There is a high probability of your getting the ads of those 380 sponsors. Therefore, the average of the top 20 advertises can be really misleading. The solution to this problem is discussed in the later part of this page.&lt;br /&gt;&lt;br /&gt;We have enough Adsense money now. Let's build some traffic on your website.  &lt;h2&gt;Traffic Building for AdSense:&lt;/h2&gt; &lt;h2&gt;Choosing Niche Keywords&lt;/h2&gt;Niche keywords are the keywords that are highly searched by the web surfers, and are rarely used by your competitors. Less competition means more traffic to your website. Targeting ten niche keywords is easier and more fruitful that targeting a highly competitive keyword. Traffic from niche keywords when directed to a relevant page increases your CTR and conversion ratio. &lt;h2&gt;Determining Competition&lt;/h2&gt;People generally take the number of results returned by search engines as the number of pages competing on a keyword. But it is wrong. The Search Engine Results get irrelevant after 10 - 15 pages. Irrelevancy further increases with the depth. The pages that have the keyword dumped in a corner are not competing against you, but search engines will still list them. In fact they have to.&lt;p&gt;It is assumed that if a webmaster is targeting a web page with a particular keyword, the keyword is used in the title as well as in the anchor text linking to that webpage. Such a page is listed higher by the search engines as it is dedicated to what you searched for. So how to filter out the most relevant results? Check it out! &lt;/p&gt;  &lt;h2&gt;Inanchor intitle and Its Precision - The Solution&lt;/h2&gt; In Google, you can easily determine the EXACT number of pages that are competing against you. You can  precisely list out the pages that are using a particular keyword in their page titles or  in the anchor texts linking to them. &lt;br /&gt;&lt;br /&gt;The query can be applied as follows: intitle:keyword inanchor:keyword. &lt;br /&gt;&lt;br /&gt;For example, if the keyword is "hair treatment", the formula will be used in the following manner: intitle:hair inanchor: hair intitle: treatment inanchor: treatment. This figure gives you the exact number of pages that are ACTUALLY Targeting with these keywords, and not those that have just created a page or a small paragraph on the same topic. Google emphasizes on Anchors and Page titles. That's the reason, it supports such a search query.&lt;br /&gt;&lt;br /&gt;We shall now discuss some other traditional ways to determine competition.  &lt;h2&gt;R/S Ratio&lt;/h2&gt; Here, R refers the number of competitor websites for a particular keyword as per the search result of  the search engine. And S refers the number of searchers using that keyword while searching their queries. This means  that for better results, you have to choose the keywords with lower R/S ratio. &lt;br /&gt; &lt;p&gt;R/S ratio becomes polluted when someone uses the number of results as the number of competing websites. As explained above, counting the number of results as the number of competing pages is the biggest mistake one can make while choosing a keyword. However, the figure becomes quite useful when inanchor intitle is used to create R/S. &lt;/p&gt;  &lt;h2&gt;KEI Analysis&lt;/h2&gt; KEI (Keyword Effectiveness Index) is a formula for measuring the effectiveness of  a keyword. The formula was devised by Sumantra Roy. However, this figure also depends upon  the number of searches and competition, but with a difference. This formula  analyzes the number of searches and competition in such a way that if the searches increase, KEI increases; and if  the competition increases, KEI decreases. Higher the KEI, more profitable will  be the keyword. However, it becomes polluted when the number of search results are used as  the number of competitors.  &lt;h2&gt;Determining Traffic&lt;/h2&gt;Determining traffic for a keyword is quite important before targeting it. Along with the competition stats, it lets you make out the niches present in any industry. Besides, it lets you predict (to some extent) how much traffic you can expect if you promote a website around a particular keyword. There are two known sources for determining traffic. Overture Keyword Suggestion Tool (now a part of Yahoo Search Engine) and WordTracker. When talking about accuracy, Wordtracker monitors the queries on some meta search engines that actually render it inaccurate . Reason? There is no known stat about how much of the community you are targeting is searching on those meta search engines. However, it's a good tool to make out the niches.&lt;br /&gt;&lt;br /&gt;In my opinion, Yahoo owned Overture gives you more accurate stats than Wordtracker. This is for the reason that Overture is a PPC engine. It can show you how many people are searching for a particular term on its vast network. A network which is bigger than any Meta Search Engine. Still, it is not that accurate, but at least better than Wordtracker. The tools that are predicting Google Searches for you are just doing guess work. No one knows the algorithm they use.  &lt;h2&gt;Summing It Up&lt;/h2&gt; Profitability of a keyword depends more on the number of sponsors than CPC. Number of clicks and  bidding quality can't be determined by just monitoring the first 3 or 8 places.  It can be rightly assessed by taking out the average of all the 400 sponsors  bidding on a keyword. Sounds very tiring for keyword research, right?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4053486063052531067-3247090515116027999?l=ashko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ashko.blogspot.com/feeds/3247090515116027999/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4053486063052531067&amp;postID=3247090515116027999' title='21 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/3247090515116027999'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/3247090515116027999'/><link rel='alternate' type='text/html' href='http://ashko.blogspot.com/2008/08/adsense-secret-how-to-choose-best.html' title='AdSense Secret - How to choose the best keywords for adSense'/><author><name>ÅšhΘκ  Šμ∂απi</name><uri>http://www.blogger.com/profile/17739127081189346556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>21</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4053486063052531067.post-3133017082199469791</id><published>2008-07-23T01:04:00.001-07:00</published><updated>2008-07-23T01:07:10.799-07:00</updated><title type='text'>20 ways to Secure your Apache Configuration</title><content type='html'>&lt;p&gt;Here are 20 things you can do to make your apache configuration more secure.&lt;/p&gt; &lt;p&gt;Disclaimer: The thing about security is that there are no guarantees or absolutes. These suggestions should make your server a bit tighter, but don't think your server is necessarily secure after following these suggestions.&lt;/p&gt; &lt;p&gt;Additionally some of these suggestions may decrease performance, or cause problems due to your environment. It is up to you to determine if any of the changes I suggest are not compatible with your requirements. In other words proceed at your own risk.&lt;/p&gt; &lt;h3&gt;First, make sure you've installed latest security patches&lt;/h3&gt; &lt;p&gt;There is no sense in putting locks on the windows, if your door is wide open. As such, if you're not patched up there isn't really much point in continuing any longer on this list. Go ahead and bookmark this page so you can come back later, and patch your server.&lt;/p&gt; &lt;h3&gt;Hide the Apache Version number, and other sensitive information.&lt;/h3&gt; &lt;p&gt;By default many Apache installations tell the world what version of Apache you're running, what operating system/version you're running, and even what Apache Modules are installed on the server. Attackers can use this information to their advantage when performing an attack. It also sends the message that you have left most defaults alone.&lt;/p&gt; &lt;p&gt;There are two directives that you need to add, or edit in your &lt;code&gt;httpd.conf&lt;/code&gt; file:&lt;/p&gt; &lt;pre&gt;ServerSignature Off&lt;br /&gt;ServerTokens Prod&lt;br /&gt;&lt;/pre&gt;  &lt;p&gt;The &lt;code&gt;ServerSignature&lt;/code&gt; appears on the bottom of pages generated by apache such as 404 pages, directory listings, etc. &lt;/p&gt; &lt;p&gt;The &lt;code&gt;ServerTokens&lt;/code&gt; directive is used to determine what Apache will put in the &lt;code&gt;Server&lt;/code&gt; HTTP response header. By setting it to &lt;code&gt;Prod&lt;/code&gt; it sets the HTTP response header as follows:&lt;/p&gt; &lt;pre&gt;Server: Apache&lt;/pre&gt; &lt;p&gt;If you're super paranoid you could change this to something other than "Apache" by editing the source code, or by using mod_security (see below).&lt;/p&gt; &lt;h3&gt;Make sure apache is running under its own user account and group&lt;/h3&gt; &lt;p&gt;Several apache installations have it run as the user &lt;code&gt;nobody&lt;/code&gt;. So suppose both Apache, and your mail server were running as &lt;code&gt;nobody&lt;/code&gt; an attack through Apache may allow the mail server to also be compromised, and vise versa.&lt;/p&gt; &lt;pre&gt;User apache&lt;br /&gt;Group apache&lt;br /&gt;&lt;/pre&gt; &lt;h3&gt;Ensure that files outside the web root are not served&lt;/h3&gt; &lt;p&gt;We don't want apache to be able to access any files out side of its web root. So assuming all your web sites are placed under one directory (we will call this &lt;code&gt;/web&lt;/code&gt;), you would set it up as follows:&lt;/p&gt; &lt;pre&gt;&lt;directory&gt;&lt;br /&gt;Order Deny,Allow&lt;br /&gt;Deny from all&lt;br /&gt;Options None&lt;br /&gt;AllowOverride None&lt;br /&gt;&lt;/directory&gt;&lt;br /&gt;&lt;directory&gt;&lt;br /&gt;Order Allow,Deny&lt;br /&gt;Allow from all&lt;br /&gt;&lt;/directory&gt;&lt;br /&gt;&lt;/pre&gt; &lt;blockquote&gt;Note that because we set &lt;code&gt;Options None&lt;/code&gt; and &lt;code&gt;AllowOverride None&lt;/code&gt; this will turn off all options and overrides for the server. You now have to add them explicitly for each directory that requires an Option or Override.&lt;/blockquote&gt; &lt;h3&gt;Turn off directory browsing&lt;/h3&gt; &lt;p&gt;You can do this with an &lt;code&gt;Options&lt;/code&gt; directive inside a &lt;code&gt;Directory&lt;/code&gt; tag. Set &lt;code&gt;Options&lt;/code&gt; to either &lt;code&gt;None&lt;/code&gt; or &lt;code&gt;-Indexes&lt;/code&gt;&lt;/p&gt; &lt;pre&gt;Options -Indexes&lt;/pre&gt; &lt;h3&gt;Turn off server side includes&lt;/h3&gt; &lt;p&gt;This is also done with the &lt;code&gt;Options&lt;/code&gt; directive inside a &lt;code&gt;Directory&lt;/code&gt; tag. Set &lt;code&gt;Options&lt;/code&gt; to either &lt;code&gt;None&lt;/code&gt; or &lt;code&gt;-Includes&lt;/code&gt;&lt;/p&gt; &lt;pre&gt;Options -Includes&lt;/pre&gt; &lt;h3&gt;Turn off CGI execution&lt;/h3&gt; &lt;p&gt;If you're not using CGI turn it off with the &lt;code&gt;Options&lt;/code&gt; directive inside a &lt;code&gt;Directory&lt;/code&gt; tag. Set &lt;code&gt;Options&lt;/code&gt; to either &lt;code&gt;None&lt;/code&gt; or &lt;code&gt;-ExecCGI&lt;/code&gt;&lt;/p&gt; &lt;pre&gt;Options -ExecCGI&lt;/pre&gt; &lt;h3&gt;Don't allow apache to follow symbolic links&lt;/h3&gt; &lt;p&gt;This can again can be done using the &lt;code&gt;Options&lt;/code&gt; directive inside a &lt;code&gt;Directory&lt;/code&gt; tag. Set &lt;code&gt;Options&lt;/code&gt; to either &lt;code&gt;None&lt;/code&gt; or &lt;code&gt;-FollowSymLinks&lt;/code&gt;&lt;/p&gt; &lt;pre&gt;Options -FollowSymLinks&lt;/pre&gt; &lt;h3&gt;Turning off multiple Options&lt;/h3&gt; &lt;p&gt;If you want to turn off all &lt;code&gt;Options&lt;/code&gt; simply use:&lt;/p&gt; &lt;pre&gt;Options None&lt;/pre&gt; &lt;p&gt;If you only want to turn off some separate each option with a space in your &lt;code&gt;Options&lt;/code&gt; directive:&lt;/p&gt; &lt;pre&gt;Options -ExecCGI -FollowSymLinks -Indexes&lt;/pre&gt;  &lt;h3&gt;Turn off support for .htaccess files&lt;/h3&gt; &lt;p&gt;This is done in a &lt;code&gt;Directory&lt;/code&gt; tag but with the &lt;code&gt;AllowOverride&lt;/code&gt; directive. Set it to &lt;code&gt;None&lt;/code&gt;.&lt;/p&gt; &lt;pre&gt;AllowOverride None&lt;/pre&gt; &lt;p&gt;If you require Overrides ensure that they cannot be downloaded, and/or change the name to something other than &lt;code&gt;.htaccess&lt;/code&gt;. For example we could change it to &lt;code&gt;.httpdoverride&lt;/code&gt;, and block all files that start with &lt;code&gt;.ht&lt;/code&gt; from being downloaded as follows:&lt;/p&gt; &lt;pre&gt;AccessFileName .httpdoverride&lt;br /&gt;&lt;files&gt;&lt;br /&gt;  Order allow,deny&lt;br /&gt;  Deny from all&lt;br /&gt;  Satisfy All&lt;br /&gt;&lt;/files&gt;&lt;br /&gt;&lt;/pre&gt; &lt;h3&gt;Run mod_security&lt;/h3&gt; &lt;p&gt;&lt;a href="http://www.modsecurity.org/"&gt;mod_security&lt;/a&gt; is a super handy Apache module written by Ivan Ristic, the author of &lt;a href="http://www.dealazon.com/product/0596007248"&gt;Apache Security&lt;/a&gt; from O'Reilly press.&lt;/p&gt; &lt;p&gt;You can do the following with mod_security:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;Simple filtering&lt;/li&gt;&lt;li&gt;Regular Expression based filtering&lt;/li&gt;&lt;li&gt;URL Encoding Validation&lt;/li&gt;&lt;li&gt;Unicode Encoding Validation&lt;/li&gt;&lt;li&gt;Auditing&lt;/li&gt;&lt;li&gt;Null byte attack prevention&lt;/li&gt;&lt;li&gt;Upload memory limits&lt;/li&gt;&lt;li&gt;Server identity masking&lt;/li&gt;&lt;li&gt;Built in Chroot support&lt;/li&gt;&lt;li&gt;And more&lt;/li&gt;&lt;/ul&gt; &lt;h3&gt;Disable any unnecessary modules&lt;/h3&gt; &lt;p&gt;Apache typically comes with several modules installed. Go through the apache &lt;a href="http://httpd.apache.org/docs/2.0/mod/"&gt;module documentation&lt;/a&gt; and learn what each module you have enabled actually does. Many times you will find that you don't need to have the said module enabled.&lt;/p&gt; &lt;p&gt;Look for lines in your &lt;code&gt;httpd.conf&lt;/code&gt; that contain &lt;code&gt;LoadModule&lt;/code&gt;. To disable the module you can typically just add a &lt;code&gt;#&lt;/code&gt; at the beginning of the line. To search for modules run:&lt;/p&gt; &lt;pre&gt;grep LoadModule httpd.conf&lt;/pre&gt; &lt;p&gt;Here are some modules that are typically enabled but often not needed: &lt;code&gt;mod_imap&lt;/code&gt;, &lt;code&gt;mod_include&lt;/code&gt;, &lt;code&gt;mod_info&lt;/code&gt;, &lt;code&gt;mod_userdir&lt;/code&gt;, &lt;code&gt;mod_status&lt;/code&gt;, &lt;code&gt;mod_cgi&lt;/code&gt;, &lt;code&gt;mod_autoindex&lt;/code&gt;.  &lt;/p&gt;&lt;h3&gt;Make sure only root has read access to apache's config and binaries&lt;/h3&gt; &lt;p&gt;This can be done assuming your apache installation is located at &lt;code&gt;/usr/local/apache&lt;/code&gt; as follows:&lt;/p&gt; &lt;pre&gt;chown -R root:root /usr/local/apache&lt;br /&gt;chmod -R o-rwx /usr/local/apache&lt;br /&gt;&lt;/pre&gt;  &lt;h3&gt;Lower the Timeout value&lt;/h3&gt; &lt;p&gt;By default the &lt;code&gt;Timeout&lt;/code&gt; directive is set to 300 seconds. You can decrease help mitigate the potential effects of a denial of service attack.&lt;/p&gt; &lt;pre&gt;Timeout 45&lt;/pre&gt; &lt;h3&gt;Limiting large requests&lt;/h3&gt; &lt;p&gt;Apache has several directives that allow you to limit the size of a request, this can also be useful for mitigating the effects of a denial of service attack.&lt;/p&gt; &lt;p&gt;A good place to start is the &lt;code&gt;LimitRequestBody&lt;/code&gt; directive. This directive is set to unlimited by default. If you are allowing file uploads of no larger than 1MB, you could set this setting to something like: &lt;/p&gt;&lt;pre&gt;LimitRequestBody 1048576&lt;/pre&gt; &lt;p&gt;If you're not allowing file uploads you can set it even smaller.&lt;/p&gt; &lt;p&gt;Some other directives to look at are &lt;code&gt;LimitRequestFields&lt;/code&gt;, &lt;code&gt;LimitRequestFieldSize&lt;/code&gt; and &lt;code&gt;LimitRequestLine&lt;/code&gt;. These directives are set to a reasonable defaults for most servers, but you may want to tweak them to best fit your needs. See the &lt;a href="http://httpd.apache.org/docs/2.0/mod/core.html"&gt;documentation&lt;/a&gt; for more info.&lt;/p&gt; &lt;h3&gt;Limiting the size of an XML Body&lt;/h3&gt; &lt;p&gt;If you're running &lt;code&gt;mod_dav&lt;/code&gt; (typically used with subversion) then you may want to limit the max size of an XML request body. The &lt;code&gt;LimitXMLRequestBody&lt;/code&gt; directive is only available on Apache 2, and its default value is 1 million bytes (approx 1mb). Many tutorials will have you set this value to 0 which means files of any size may be uploaded, which may be necessary if you're using WebDAV to upload large files, but if you're simply using it for source control, you can probably get away with setting an upper bound, such as 10mb:&lt;/p&gt; &lt;pre&gt;LimitXMLRequestBody 10485760&lt;/pre&gt; &lt;h3&gt;Limiting Concurrency&lt;/h3&gt; &lt;p&gt;Apache has several configuration settings that can be used to adjust handling of concurrent requests. The &lt;code&gt;MaxClients&lt;/code&gt; is the maximum number of child processes that will be created to serve requests. This may be set too high if your server doesn't have enough memory to handle a large number of concurrent requests.&lt;/p&gt; &lt;p&gt;Other directives such as &lt;code&gt;MaxSpareServers&lt;/code&gt;, &lt;code&gt;MaxRequestsPerChild&lt;/code&gt;, and  on Apache2 &lt;code&gt;ThreadsPerChild&lt;/code&gt;, &lt;code&gt;ServerLimit&lt;/code&gt;, and &lt;code&gt;MaxSpareThreads&lt;/code&gt; are important to adjust to match your operating system, and hardware.&lt;/p&gt;  &lt;h3&gt;Restricting Access by IP&lt;/h3&gt; &lt;p&gt;If you have a resource that should only by accessed by a certain network, or IP address you can enforce this in your apache configuration. For instance if you want to restrict access to your intranet to allow only the 176.16 network:&lt;/p&gt; &lt;pre&gt;&lt;directory&gt;&lt;br /&gt;Order Deny,Allow&lt;br /&gt;Deny from all&lt;br /&gt;Allow from 176.16.0.0/16&lt;br /&gt;&lt;/directory&gt; &lt;/pre&gt; &lt;p&gt;Or by IP:&lt;/p&gt; &lt;pre&gt;Order Deny,Allow&lt;br /&gt;Deny from all&lt;br /&gt;Allow from 127.0.0.1&lt;br /&gt;&lt;/pre&gt;  &lt;h3&gt;Adjusting KeepAlive settings&lt;/h3&gt; &lt;p&gt;According to the Apache documentation using HTTP Keep Alive's can improve client performance by as much as 50%, so be careful before changing these settings, you will be trading performance for a slight denial of service mitigation.&lt;/p&gt; &lt;p&gt;KeepAlive's are turned on by default and you should leave them on, but you may consider changing the &lt;code&gt;MaxKeepAliveRequests&lt;/code&gt; which defaults to &lt;code&gt;100&lt;/code&gt;, and the &lt;code&gt;KeepAliveTimeout&lt;/code&gt; which defaults to &lt;code&gt;15&lt;/code&gt;. Analyze your log files to determine the appropriate values.&lt;/p&gt; &lt;h3&gt;Run Apache in a Chroot environment&lt;/h3&gt; &lt;p&gt;&lt;code&gt;chroot&lt;/code&gt; allows you to run a program in its own isolated &lt;em&gt;jail&lt;/em&gt;. This prevents a break in on one service from being able to effect anything else on the server.&lt;/p&gt; &lt;p&gt;It can be fairly tricky to &lt;a href="http://penguin.triumf.ca/chroot.html"&gt;set this up using &lt;code&gt;chroot&lt;/code&gt;&lt;/a&gt; due to library dependencies. I mentioned above that the &lt;code&gt;mod_security&lt;/code&gt; module has built in chroot support. It makes the process as simple as adding a &lt;code&gt;mod_security&lt;/code&gt; directive to your configuration:&lt;/p&gt; &lt;pre&gt;SecChrootDir /chroot/apache&lt;/pre&gt; &lt;p&gt;There are however some caveats however, so check out the &lt;a href="http://www.modsecurity.org/documentation/modsecurity-apache-manual-1.9.html#N1082B"&gt;docs&lt;/a&gt; for more info.&lt;/p&gt;  &lt;h4&gt;Acknowledgments&lt;/h4&gt; &lt;p&gt;I have found the book &lt;a href="http://www.dealazon.com/product/0596007248" title="Apache Security"&gt;Apache Security&lt;/a&gt; to be a highly valuable resource for securing an apache web server. Some of the suggestions listed above were inspired by this book.&lt;/p&gt; &lt;h4&gt;Suggestions&lt;/h4&gt; &lt;p&gt;Please post any suggestions, caveats, or corrections in the comments and I will update the post if necessary.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4053486063052531067-3133017082199469791?l=ashko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ashko.blogspot.com/feeds/3133017082199469791/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4053486063052531067&amp;postID=3133017082199469791' title='14 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/3133017082199469791'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/3133017082199469791'/><link rel='alternate' type='text/html' href='http://ashko.blogspot.com/2008/07/20-ways-to-secure-your-apache.html' title='20 ways to Secure your Apache Configuration'/><author><name>ÅšhΘκ  Šμ∂απi</name><uri>http://www.blogger.com/profile/17739127081189346556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>14</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4053486063052531067.post-1806886986818045709</id><published>2008-07-22T06:58:00.000-07:00</published><updated>2008-07-22T07:04:28.072-07:00</updated><title type='text'>Some basic Unix/Linux network commands for Troubleshoot</title><content type='html'>&lt;span&gt;Troubleshooting or just need a quick refresher on some basic and advanced Unix Linux network related commands?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ifconfig             &lt;/span&gt;- configure a network interface (setup)&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;route                 &lt;/span&gt;- show / manipulate the IP routing table&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ping, ping6&lt;/span&gt;     -  send ICMP ECHO_REQUEST to network hosts&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;netstat&lt;/span&gt;&lt;/span&gt;          &lt;span&gt;    - Print network connections, routing tables, interface statistics, masquerade         connections, and multicast memberships&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;span style="font-weight: bold;"&gt;tcpdump&lt;/span&gt;         - dump traffic on a network&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;tcpslice&lt;/span&gt; - extract pieces of and/or glue together tcpdump files&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;traceroute&lt;/span&gt;     - print the route packets trace to network host&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;tracepath, tracepath6 &lt;/span&gt;- traces path to a network host discovering MTU along this path&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;iwconfig             &lt;/span&gt;- configure a wireless network interface&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;iwlist&lt;/span&gt;                - Get more detailed wireless information from a wireless interface&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;wpa_supplicant        &lt;/span&gt;- Wi-Fi Protected Access client and IEEE 802.1X supplicant&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;wpa_supplicant.conf [wpa_supplicant] &lt;/span&gt;- configuration file for wpa_supplicant&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ipcalc&lt;/span&gt;                - perform simple manipulation of IP addresses&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;nc&lt;/span&gt; - arbitrary TCP and UDP connections and listens&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;snort&lt;/span&gt;        - open source network intrusion detection system&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ettercap  &lt;/span&gt;- A multipurpose sniffer/content filter for man in the middle attacks&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ethereal&lt;/span&gt; - Interactively dump and analyze network traffic&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4053486063052531067-1806886986818045709?l=ashko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ashko.blogspot.com/feeds/1806886986818045709/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4053486063052531067&amp;postID=1806886986818045709' title='23 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/1806886986818045709'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/1806886986818045709'/><link rel='alternate' type='text/html' href='http://ashko.blogspot.com/2008/07/some-basic-unixlinux-network-commands.html' title='Some basic Unix/Linux network commands for Troubleshoot'/><author><name>ÅšhΘκ  Šμ∂απi</name><uri>http://www.blogger.com/profile/17739127081189346556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>23</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4053486063052531067.post-3294419247075642601</id><published>2008-07-14T04:54:00.000-07:00</published><updated>2008-07-14T04:58:38.458-07:00</updated><title type='text'>Text Browsers for Linux</title><content type='html'>&lt;a href="http://linux.die.net/man/5/elinkskeys"&gt;elinkskeys&lt;/a&gt;&lt;br /&gt;&lt;a href="http://linux.die.net/man/1/links"&gt;links&lt;/a&gt;&lt;br /&gt;&lt;a href="http://linux.die.net/man/1/lynx"&gt;lynx&lt;/a&gt;&lt;br /&gt;&lt;a href="http://linux.die.net/man/1/w3m"&gt;w3m &lt;/a&gt;&lt;br /&gt;&lt;a href="http://linux.die.net/man/1/wget"&gt;wget&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4053486063052531067-3294419247075642601?l=ashko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ashko.blogspot.com/feeds/3294419247075642601/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4053486063052531067&amp;postID=3294419247075642601' title='16 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/3294419247075642601'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/3294419247075642601'/><link rel='alternate' type='text/html' href='http://ashko.blogspot.com/2008/07/text-browsers-for-linux.html' title='Text Browsers for Linux'/><author><name>ÅšhΘκ  Šμ∂απi</name><uri>http://www.blogger.com/profile/17739127081189346556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>16</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4053486063052531067.post-1593287307413220450</id><published>2008-07-02T04:57:00.000-07:00</published><updated>2008-07-02T05:12:02.075-07:00</updated><title type='text'>New things in HTML5</title><content type='html'>Please note that still HTML 5 in under draft mode. there are certainly many things changed when it come to live. but myself also waiting for this new kind html. I have list down some of the features which I read through w3c and different searches.&lt;br /&gt;&lt;br /&gt;I hope browser will also be ready for it.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Html5 is created in such a way that it will be backward compatibility.&lt;br /&gt;it will have html + xml as their base.&lt;br /&gt;in html4 we are writting &amp;lt;html&amp;gt;&lt;br /&gt;but as per rule html 5 should be written as follows.&lt;br /&gt;&lt;br /&gt;  &amp;lt;?xml version=”1.0″?&amp;gt;&lt;br /&gt;  &amp;lt;html xmlns=”http://www.w3.org/1999/xhtml”&amp;gt;&lt;br /&gt;&lt;br /&gt;  * meta elements are replaced.&amp;lt;meta http-equiv=”content-type” content=”text/html; charset=urf-8″&amp;gt;&lt;br /&gt;    &amp;lt;meta charset=”utf-8″&amp;gt;&lt;br /&gt;&lt;br /&gt;in html5 their no necessary to use doctype. as everything is going to handle with xml.&lt;br /&gt;&lt;br /&gt;Following are the new elements are added in html5&lt;br /&gt;&lt;br /&gt;1.sections. - generic document or application sections.&lt;br /&gt;2.article - this represent independant piece of contents.&lt;br /&gt;3.aside - piece of content which is only sightly related to whole document.&lt;br /&gt;4.header - header of the section.&lt;br /&gt;5.footer - footer of the section&lt;br /&gt;6.nav - represent a section of the document for navigation.&lt;br /&gt;7.dialog - used for conversation&lt;br /&gt;8.figure - its kind of embed function used for video or graphics&lt;br /&gt;9.audio video these are elements used for showing audio / video.&lt;br /&gt;10.embed&lt;br /&gt;11. m - represent marked text&lt;br /&gt;12. meter - used disk usage.&lt;br /&gt;13. time - represent time of the page.&lt;br /&gt;14. convas - is used to create dynamic bitmap images on the fly.&lt;br /&gt;15. command - used to invoke commands which user will invoke.&lt;br /&gt;16. datagrid - represent an interactive representational of tree list.&lt;br /&gt;17. details - this will shows additional informtion&lt;br /&gt;18. datalist to used to represent to make comboboxes see the following example.&lt;br /&gt;&amp;lt;input list=”browser”&amp;gt;&lt;br /&gt;&amp;lt;datalist id=”browser”&amp;gt;&lt;br /&gt;&amp;lt;option value=”1″&amp;gt;1&amp;lt;/option&amp;gt;&lt;br /&gt;&amp;lt;option value=”2″&amp;gt;2&amp;lt;option&amp;gt;&lt;br /&gt;&amp;lt;/datalist&amp;gt;&lt;br /&gt;19. datatemplate, rule, nest - used for templating mechanism.&lt;br /&gt;20. event-source - is used to to catch server sent events.&lt;br /&gt;21. output - it is used for some sort of scripting calculation.&lt;br /&gt;22. input type has following new values.&lt;br /&gt;datetime&lt;br /&gt;datetime-local&lt;br /&gt;date&lt;br /&gt;month&lt;br /&gt;week&lt;br /&gt;time&lt;br /&gt;number&lt;br /&gt;range&lt;br /&gt;email&lt;br /&gt;url&lt;br /&gt;&lt;br /&gt;&lt;p&gt;New attributes&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;1.a , area now have  &lt;strong&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;media &lt;/span&gt;&lt;/strong&gt;attribute&lt;br /&gt;2. a, area now have &lt;strong&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;ping&lt;/span&gt;&lt;/strong&gt; attribute used to know which link it has been clicked from. it will be space seperated url.&lt;br /&gt;3. area will have &lt;strong&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;hreflang&lt;/span&gt;&lt;/strong&gt; and &lt;span style="color: rgb(0, 128, 0);"&gt;&lt;strong&gt;rel&lt;/strong&gt;&lt;/span&gt; attribute&lt;br /&gt;4. base element now can have &lt;strong&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;target&lt;/span&gt;&lt;/strong&gt; so that for tag their is no need to provide target. but still a still have target as its not yet deprecated.&lt;br /&gt;5. &lt;strong&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;autofocus&lt;/span&gt;&lt;/strong&gt; for input element.except for input type hidden&lt;br /&gt;6. now every input,select,textarea,button,ouput will have form element to control the multiple forms.&lt;br /&gt;7. input,form,button will have &lt;strong&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;replace&lt;/span&gt;&lt;/strong&gt; attribute used at the time of submitting form.&lt;br /&gt;8. &lt;strong&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;required&lt;/span&gt;&lt;/strong&gt; attribute is added for making mandetory fields.&lt;br /&gt;9. input and textarea will have inputmode which is used to know which input interface is requied.&lt;br /&gt;10. now fieldset will not have  &lt;strong&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;disabled&lt;/span&gt;&lt;/strong&gt; attribute which is not their in 4&lt;br /&gt;11. input have new attributes &lt;strong&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;autocomplete , min, max, pattern, step, list&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;12. input , button have new attribute &lt;strong&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;template&lt;/span&gt;&lt;/strong&gt; which used to for repeation of template.&lt;br /&gt;13. menu elements have three new attribute type,label, and autosubmit.&lt;br /&gt;14. style element has now &lt;strong&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;scoped&lt;/span&gt;&lt;/strong&gt; attribute which used for specific scope of the element tree(node)&lt;br /&gt;15. script elements have &lt;strong&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;async&lt;/span&gt;&lt;/strong&gt; used for loding the script and execuation of it.&lt;br /&gt;16. html will not have &lt;strong&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;manifest&lt;/span&gt;&lt;/strong&gt; which specified browser to used cached elements for offlien browsing.&lt;/p&gt; &lt;p&gt;Following are new attributes for all&lt;br /&gt;* contenteditable&lt;br /&gt;* contextmenu&lt;br /&gt;* draggable&lt;br /&gt;* irrelevant which indicates that an element is not yet or is no longer their.&lt;/p&gt; &lt;p&gt;there are many attributes which is now useless in html 5.&lt;br /&gt;In addition, HTML 5 has none of the presentational attributes that were in HTML 4 as they are better handled by CSS:&lt;/p&gt; &lt;p&gt;* align attribute on caption, iframe, img, input, object, legend, table, hr, div, h1, h2, h3, h4, h5, h6, p, col, colgroup, tbody, td, tfoot, th, thead, tr and body.&lt;br /&gt;* alink, link, text and vlink attributes on body.&lt;br /&gt;* background attribute on body.&lt;br /&gt;* bgcolor attribute on table, tr, td, th and body.&lt;br /&gt;* border attribute on table, img and object.&lt;br /&gt;* cellpadding and cellspacing attributes on table.&lt;br /&gt;* char and charoff attributes on col, colgroup, tbody, td, tfoot, th, thead and tr.&lt;br /&gt;* clear attribute on br.&lt;br /&gt;* compact attribute on dl, menu, ol and ul.&lt;br /&gt;* frame attribute on table.&lt;br /&gt;* frameborder attribute on iframe.&lt;br /&gt;* height attribute on iframe, td and th.&lt;br /&gt;* hspace and vspace attributes on img and object.&lt;br /&gt;* marginheight and marginwidth attributes on iframe.&lt;br /&gt;* noshade attribute on hr.&lt;br /&gt;* nowrap attribute on td and th.&lt;br /&gt;* rules attribute on table.&lt;br /&gt;* scrolling attribute on iframe.&lt;br /&gt;* size attribute on hr, input and select.&lt;br /&gt;* style attribute on all elements with the exception of font.&lt;br /&gt;* type attribute on li, ol and ul.&lt;br /&gt;* valign attribute on col, colgroup, tbody, td, tfoot, th, thead and tr.&lt;br /&gt;* width attribute on hr, table, td, th, col, colgroup, iframe and pre.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4053486063052531067-1593287307413220450?l=ashko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ashko.blogspot.com/feeds/1593287307413220450/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4053486063052531067&amp;postID=1593287307413220450' title='17 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/1593287307413220450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/1593287307413220450'/><link rel='alternate' type='text/html' href='http://ashko.blogspot.com/2008/07/new-things-in-html5.html' title='New things in HTML5'/><author><name>ÅšhΘκ  Šμ∂απi</name><uri>http://www.blogger.com/profile/17739127081189346556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>17</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4053486063052531067.post-7775110631315562096</id><published>2008-06-19T09:02:00.000-07:00</published><updated>2008-06-19T09:21:58.318-07:00</updated><title type='text'>2008-2009 Web Trends - WEB 3.0</title><content type='html'>&lt;div class="asset-content"&gt;  &lt;div class="asset-body"&gt;  &lt;p&gt;What then can we expect from the next 10 or so years on the Web? As NatC commented in this week's poll, the biggest impact of the Web in 10 years time won't necessarily be via a computer screen - "your online activity will be mixed with your presence, travels, objects you buy or act with." Also a lot of crossover will occur among the 10 trends below (and more) and there will be Web technologies that become enormously popular that we can't predict now.&lt;/p&gt;&lt;p&gt;We're well into the current era of the Web, commonly referred to as Web 2.0. Features of this phase of the Web include search, social networks, online media (music, video, etc), content aggregation and syndication (RSS), mashups (APIs), and much more. Currently the Web is still mostly accessed via a PC, but we're starting to see more Web excitement from mobile devices (e.g. iPhone) and television sets (e.g. XBox Live 360).&lt;/p&gt; &lt;p&gt;Bearing all that in mind,  here are 10 Web trends to look out for over the next 10 years...&lt;/p&gt; &lt;h2&gt;1. Semantic Web&lt;/h2&gt; &lt;p&gt;&lt;img src="http://farm4.static.flickr.com/3174/2592372705_dcb21b0487_m.jpg" align="right" hspace="5" vspace="5" /&gt;Sir Tim Berners-Lee's vision for a Semantic Web has been The Next Big Thing for a long time now. Indeed it's become almost mythical, like Moby Dick. In a nutshell, the Semantic Web is about machines talking to machines. It's about making the Web more 'intelligent', or as Berners-Lee himself &lt;a href="http://en.wikipedia.org/wiki/Tim_Berners_Lee#Weaving_the_Web"&gt;described it&lt;/a&gt;: computers "analyzing all the data on the Web ‚Äì the content, links, and transactions between people and computers." At other times, Berners-Lee has described it as "the application of weblike design to data" - for example designing for re-use of information.&lt;/p&gt; &lt;p&gt;As Alex Iskold wrote in The Road to the Semantic Web, the core idea of the Semantic Web is to create the meta data describing data, which will enable computers to process the meaning of things. Once computers are equipped with semantics, they will be capable of solving complex semantical optimization problems.&lt;/p&gt; &lt;/div&gt;   &lt;div id="more" class="asset-more"&gt; &lt;p&gt;So when will the Semantic Web arrive? The building blocks are here already: RDF, OWL, microformats are a few of them. But as Alex noted in his post, it will take some time to annotate the world's information and then to capture personal information in the right way. Some companies, such as Hakia and Powerset and Alex's own AdaptiveBlue, are actively trying to implement the Semantic Web. So we are getting close, but we are probably a few years off still before the big promise of the Semantic Web is fulfilled.&lt;/p&gt; &lt;p&gt;Semantic Web pic &lt;a href="http://www.flickr.com/photos/dullhunk/303503677/"&gt;by dullhunk&lt;/a&gt;&lt;/p&gt; &lt;h2&gt;2. Artificial Intelligence&lt;/h2&gt; &lt;p&gt;Possibly the ultimate Next Big Thing in the history of computing, AI has been the dream of computer scientists since 1950 - when Alan Turing introduced &lt;a href="http://en.wikipedia.org/wiki/Turing_test"&gt;the Turing test&lt;/a&gt; to test a machine's capability to participate in human-like conversation. In the context of the Web, AI means making &lt;strong&gt;intelligent machines&lt;/strong&gt;. In that sense, it has some things in common with the Semantic Web vision.&lt;/p&gt; &lt;p&gt;&lt;img src="http://farm4.static.flickr.com/3243/2592373701_1d2dafb088_m.jpg" align="left" border="0" height="46" hspace="5" vspace="5" width="254" /&gt;We've only begun to scratch the surface of AI on the Web. Amazon.com has attempted to introduce aspects of AI with &lt;a href="http://www.mturk.com/"&gt;Mechanical   Turk&lt;/a&gt;, their task management service. It enables computer programs to   co-ordinate the use of human intelligence to perform tasks which computers are   unable to do. Since its launch on 2 November 2005, Mechanical Turk has gradually built up a   following - there is a forum for "Turkers" called &lt;a href="http://turkers.proboards80.com/"&gt;Turker     Nation&lt;/a&gt;, which appears to have light-to-medium level patronage. However we reported in January that Mturk isn't being used as much as the initial   hype period in Nov-Dec 05.&lt;/p&gt; &lt;p&gt;&lt;img src="http://farm4.static.flickr.com/3090/2593212464_7b1683d5c5_m.jpg" align="right" border="0" height="47" hspace="5" vspace="5" width="197" /&gt;Nevertheless, AI has a lot of promise on the Web. AI techniques are being used in "search 2.0" companies like Hakia and Powerset. Numenta is an exciting new company by tech legend Jeff Hawkins, which is attempting to build a new, brain-like computing paradigm - with neural networks and cellular automata. In english this means that Numenta is trying to enable computers to tackle problems that come easy to us humans, like recognizing faces or seeing patterns in music. But since computers are much faster than humans when it comes to computation, we hope that new frontiers will be broken - enabling us to solve the problems that were unreachable before.&lt;/p&gt; &lt;h2&gt;3. Virtual Worlds&lt;/h2&gt; &lt;p&gt;Second Life gets a lot of mainstream media attention as a future Web system. But at a recent Supernova panel that Sean Ammirati attended, the discussion touched on many other virtual world opportunities. The following graphic summarizes it well:&lt;/p&gt; &lt;p&gt;&lt;img src="http://farm4.static.flickr.com/3114/2592374087_d0f1d862dc_m.jpg" /&gt;&lt;/p&gt; &lt;p&gt;Looking at Korea as an example, as the 'young generation' grows up and infrastructure is built out, virtual worlds will become a vibrant market all over the world over the next 10 years. &lt;/p&gt; &lt;p&gt;It's not just about digital life, but also making our real life more digital. As Alex Iskold explained, on one hand we have the rapid rise of Second Life and other virtual worlds. On the other we are beginning to annotate our planet with digital information, via technologies like Google Earth.&lt;/p&gt; &lt;h2&gt;4. Mobile&lt;/h2&gt; &lt;p&gt;&lt;img src="http://farm4.static.flickr.com/3093/2592373109_3f6ef2fe35_m.jpg" align="left" hspace="5" vspace="5" width="150" /&gt;Mobile Web is another Next Big Thing on slow boil. It's already big in parts of Asia and Europe, and it received a kick in the US market this year with the release of Apple's iPhone. This is just the beginning. In 10 years time there will be many more location-aware services available via mobile devices; such as getting personalized shopping offers as you walk through your local mall, or getting map directions while driving your car, or hooking up with your friends on a Friday night. Look for the big Internet companies like Yahoo and Google to become key mobile portals, alongside the mobile operators.&lt;/p&gt; &lt;p&gt;Companies like Nokia, Sony-Ericsson, Palm, Blackberry and Microsoft have been active in the Mobile Web for years now, but one of the main issues with Mobile Web has always been usability. The iPhone has a revolutionary UI that makes it easier for users to browse the Web, using zooming, pinching and other methods. Also, as Alex Iskold noted, the iPhone is a strategy that may expand Apple's sphere of influence, from web browsing to social networking and even possibly search.&lt;/p&gt; &lt;p&gt;So even despite the iPhone hype, in the US at least (and probably other countries when it arrives) the iPhone will probably be seen in 10 years time as the breakthrough Mobile Web device.&lt;/p&gt; &lt;h2&gt;5. Attention Economy&lt;/h2&gt; &lt;p&gt;The Attention Economy is a marketplace where consumers agree to receive services in exchange for their attention. Examples include personalized news, personalized search, alerts and recommendations to buy. The Attention Economy is about the consumer having choice - they get to choose where their attention is 'spent'. Another key ingredient in the attention game is relevancy. As long as the consumer sees relevant content, he/she is going to stick around - and that creates more opportunities to sell.&lt;/p&gt; &lt;p&gt;Expect to see this concept become more important to the Web's economy over the next decade. We're already seeing it with the likes of Amazon and Netflix, but there is a lot more opportunity yet to explore from startups.&lt;/p&gt; &lt;p&gt;&lt;img src="http://farm4.static.flickr.com/3283/2592373319_2f7a570e25_m.jpg" /&gt;&lt;br /&gt;&lt;em&gt;Image from The Attention Economy: An Overview, by Alex Iskold&lt;/em&gt;&lt;/p&gt; &lt;h2&gt;6. Web Sites as Web Services&lt;/h2&gt; &lt;p&gt;Alex Iskold wrote in March that as more and more of the Web is becoming remixable, the entire system is turning into both a platform and the database. Major web sites are going to be transformed into web services - and will effectively expose their information to the world. Such transformations are never smooth - e.g. scalability is a big issue and legal aspects are never simple. But, said Alex, it is not a question of if web sites become web services, but when and how. &lt;/p&gt; &lt;p&gt;The transformation will happen in one of two ways. Some web sites will follow the example of Amazon, del.icio.us and Flickr and will offer their information via a REST API. Others will try to keep their information proprietary, but it will be opened via mashups created using services like Dapper, Teqlo and Yahoo! Pipes. The net effect will be that unstructured information will give way to structured information - paving the road to more intelligent computing. &lt;/p&gt; &lt;p&gt;Note that we can also see this trend play out currently with widgets and especially Facebook in 2007. Perhaps in 10 years time the web services landscape will be much more open, because the 'walled garden' problem is still with us in 2007.&lt;/p&gt; &lt;p&gt;&lt;img src="http://farm4.static.flickr.com/3151/2593211524_1a0401fa93_m.jpg" /&gt;&lt;br /&gt;&lt;em&gt;Image from Web 3.0: When Web Sites Become Web Services, by Alex Iskold&lt;/em&gt;&lt;/p&gt; &lt;h2&gt;7. Online Video / Internet TV&lt;/h2&gt; &lt;p&gt;&lt;img src="http://farm4.static.flickr.com/3228/2592374295_e5e7485795_m.jpg" align="right" border="0" height="96" hspace="5" vspace="5" width="100" /&gt;This is a trend that has already exploded on the Web - but you still get the sense there's a lot more to come yet. In October 2006 Google acquired the hottest online video property on the planet, YouTube. Later on that same month, news came out that the founders of Kazaa and Skype were building an Internet TV service, nicknamed The Venice Project (later named Joost). In 2007, YouTube continues to dominate. Meanwhile Internet TV services are slowly getting off the ground.&lt;/p&gt; &lt;p&gt;Our network blog &lt;a href="http://last100.com/"&gt;last100&lt;/a&gt; has an excellent overview of the current Internet TV landscape, with &lt;a href="http://www.last100.com/2007/07/24/8-internet-tv-apps-in-8-weeks/"&gt;reviews of 8 Internet TV apps&lt;/a&gt;. Read/WriteWeb's Josh Catone also reviewed 3 of them - Joost, Babelgum, Zattoo.&lt;/p&gt; &lt;p&gt;It's fair to say that in 10 years time, Internet TV will be totally different to what it is today. Higher quality pictures, more powerful streaming, personalization, sharing, and much more - it's all coming over the next decade. Perhaps the big question is: how will the current mainstream TV networks (NBC, CNN, etc) adapt?&lt;/p&gt; &lt;p&gt;&lt;img src="http://farm4.static.flickr.com/3201/2592374649_e34a49b302_m.jpg" /&gt;&lt;br /&gt;&lt;em&gt;Zattoo, from Internet Killed The Television Star: Reviews of Joost, Babelgum, Zattoo, and More, by Josh Catone&lt;/em&gt;&lt;/p&gt; &lt;h2&gt;8. Rich Internet Apps&lt;/h2&gt; &lt;p&gt;&lt;img src="http://farm4.static.flickr.com/3051/2592421199_068aa03a0a_m.jpg" align="right" hspace="5" vspace="5" /&gt;As the current trend of hybrid web/desktop apps continues, expect to see RIA (rich internet apps) continue to increase in use and functionality. Adobe's AIR platform (Adobe Integrated Runtime) is one of the leaders, along with Microsoft with its Windows Presentation Foundation. Also in the mix is Laszlo with its open source OpenLaszlo platform and there are several other startups offering RIA platforms. Let's not forget also that Ajax is generally considered to be an RIA - it remains to be seen though how long Ajax lasts, or whether there will be a '2.0'.&lt;/p&gt; &lt;p&gt;As Ryan Stewart wrote for Read/WriteWeb back in April 2006 (well before he joined Adobe), "Rich Internet Apps allow sophisticated effects and transitions that are important in keeping the user engaged. This means developers will be able to take the amazing changes in the Web for granted and start focusing on a flawless experience for the users. It is going to be an exciting time for anyone involved in building the new Web, because the interfaces are finally catching up with the content."&lt;/p&gt; &lt;p&gt;The past year has proven Ryan right, with Adobe and Microsoft duking it out with RIA technologies. And there's a lot more innovation to happen yet, so in 10 years time I can't wait to see what the lay of the RIA land is!&lt;/p&gt; &lt;h2&gt;9. International Web&lt;/h2&gt; &lt;p&gt;&lt;img src="http://farm4.static.flickr.com/3239/2592374429_4f85cb2e3e_m.jpg" align="left" hspace="5" vspace="5" /&gt;As of 2007, the US is still the major market in the Web. But in 10 years time, things might be very different. China is often touted as a growth market, but other countries with big populations will also grow - India and African nations for example.&lt;/p&gt; &lt;p&gt;For most web 2.0 apps and websites (R/WW included), the US market makes up over 50% of their users. Indeed, comScore reported in November 2006 that 3/4 of traffic to top websites is international. comScore said that 14 of the top 25 US Web properties now attract more visitors from outside the US than from within. That includes the top 5 US properties - Yahoo! Sites, Time Warner Network, Microsoft, Google Sites, and eBay.&lt;/p&gt; &lt;p&gt;However, it is still early days and the revenues are not big in international markets at this point. In 10 years time, revenue will probably be flowing from the International Web.&lt;/p&gt; &lt;h2&gt;10. Personalization&lt;/h2&gt; &lt;p&gt;&lt;img src="http://farm4.static.flickr.com/3011/2592373541_5079ab875e_m.jpg" align="right" hspace="5" vspace="5" /&gt;Personalization has been a strong theme in 2007, particularly with Google. Indeed Read/WriteWeb did a feature week on Personalizing Google. But you can see this trend play out among a lot of web 2.0 startups and companies - from last.fm to MyStrands to Yahoo homepage and more. &lt;/p&gt; &lt;p&gt;What can we expect over the next decade? Recently we asked Sep Kamvar, Lead Software Engineer for Personalization at Google, whether there will be a 'Personal PageRank' system in the future. He replied:&lt;/p&gt; &lt;blockquote&gt;   &lt;p&gt;"We have various levels of personalization. For those who are signed up for Web History, we have the deepest personalization, but even for those who are not signed up for Web History, we personalize your results based on what country you are searching from. As we move forward, personalization will continue to be a gradient; the more you share with Google, the more tailored your results will be."&lt;/p&gt; &lt;/blockquote&gt;   &lt;p&gt;If nothing else, it'll be fascinating to track how Google uses personalization over the coming years - and how it deals with the privacy issues.&lt;/p&gt;   &lt;h2&gt;Conclusion&lt;/h2&gt;   &lt;p&gt;We've covered a lot of ground in this post, so tell us know what you think of our predictions. What other Web trends do you forsee over the next decade?&lt;/p&gt; &lt;/div&gt;   &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4053486063052531067-7775110631315562096?l=ashko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ashko.blogspot.com/feeds/7775110631315562096/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4053486063052531067&amp;postID=7775110631315562096' title='137 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/7775110631315562096'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/7775110631315562096'/><link rel='alternate' type='text/html' href='http://ashko.blogspot.com/2008/06/2008-2009-web-trends-web-30.html' title='2008-2009 Web Trends - WEB 3.0'/><author><name>ÅšhΘκ  Šμ∂απi</name><uri>http://www.blogger.com/profile/17739127081189346556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm4.static.flickr.com/3174/2592372705_dcb21b0487_t.jpg' height='72' width='72'/><thr:total>137</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4053486063052531067.post-7260213315303488213</id><published>2008-06-19T03:44:00.000-07:00</published><updated>2008-06-19T04:11:24.566-07:00</updated><title type='text'>Do Trace - Debug ( Profiling ) of PHP script by xdebug &amp; kcachegrind</title><content type='html'>&lt;div class="post-body entry-content"&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 102);font-size:180%;" &gt;Step 1 : Install XDebug&lt;/span&gt;&lt;br /&gt;&lt;p&gt;xdebug is an open source debugger available for PHP. xdebug can be used to display more information in error traces. It can also be used to collect detailed code coverage &amp;amp; profiling information.&lt;/p&gt;&lt;h4&gt;Installation&lt;/h4&gt;&lt;p&gt;You need to install following packages to prepare environment for installation of pecl module xdebug.&lt;/p&gt;&lt;pre style="color: rgb(102, 0, 0);" class="snippet"&gt;&lt;span style="font-size:130%;"&gt;sudo apt-get -y install php-pear php5-dev build-essential&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;Now we install xdebug using pecl.&lt;/p&gt;&lt;pre style="color: rgb(102, 0, 0);" class="snippet"&gt;&lt;span style="font-size:130%;"&gt;sudo pecl install xdebug&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;Above command will download, compile &amp;amp; install xdebug on your system.&lt;/p&gt;&lt;h4&gt;Configuration&lt;/h4&gt;&lt;p&gt;Open &lt;span style="font-weight: bold;"&gt;usr/local/lib/php.ini&lt;/span&gt; and append following line.&lt;/p&gt;&lt;pre style="color: rgb(102, 0, 0);" class="snippet"&gt;&lt;span style="font-size:130%;"&gt;zend_extension=/usr/lib/php5/20060613/xdebug.so&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;Be careful about that number part in the path as it could be different for you. Now restart apache by issuing following command.&lt;/p&gt;&lt;pre style="color: rgb(102, 0, 0);" class="snippet"&gt;&lt;span style="font-size:130%;"&gt;sudo apache2ctl restart&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;Now try to view the output of your &lt;span style="font-weight: bold;"&gt;phpinfo()&lt;/span&gt; function. If you find xdebug word in that then it means you have successfully installed xdebug.&lt;/p&gt;&lt;h4&gt;Stacktrace&lt;/h4&gt;&lt;p&gt;&lt;span style="font-weight: bold;"&gt;xdebug.collect_params&lt;/span&gt; accepts values from 1 to 4. Where 1 refers to less verbosity &amp;amp; 4 refers to maximum verbosity while displaying stack traces. The easiest way of setting this option is using function &lt;span style="font-weight: bold;"&gt;ini_set&lt;/span&gt; in PHP.&lt;/p&gt;&lt;pre class="snippet"&gt;ini_set("xdebug.collect_params", &lt;verbosity&gt;)&lt;/pre&gt;&lt;p&gt;Get to know more &lt;a target="_blank" href="http://xdebug.org/docs/stack_trace"&gt;stack trace options of xdebug&lt;/a&gt;.&lt;/p&gt;&lt;h4&gt;var_dump&lt;/h4&gt;&lt;p&gt;Once after installing xdebug when ever you call var_dump you are actually calling xdebug version of var_dump instead of built in one. By default xdebug version of var_dump gives you friendly info on the variables you are trying to inspect.&lt;/p&gt;&lt;p&gt;See more options on controlling display of &lt;a target="_blank" href="http://xdebug.org/docs/display"&gt;var_dump information&lt;/a&gt;.&lt;/p&gt;&lt;h4&gt;Debugging&lt;/h4&gt;&lt;p&gt;xdebug uses DBGp protocol to communicate with external debuggers. Vim already has a plugin to do that. So you can debug php scripts from within vim.&lt;/p&gt;&lt;p&gt;Download &lt;a target="_blank" href="http://www.vim.org/scripts/script.php?script_id=1152"&gt;php debugger plugin&lt;/a&gt; for vim.&lt;/p&gt; &lt;div id="related"&gt; &lt;/div&gt;   &lt;/div&gt;    &lt;a name="comments"&gt;&lt;/a&gt; &lt;h4 style="color: rgb(0, 0, 102); font-weight: normal;"&gt;&lt;span style="font-size:180%;"&gt;Step 2: Enable Proiling&lt;/span&gt;&lt;/h4&gt;&lt;p&gt;You need to add following line to &lt;span style="font-weight: bold;"&gt;/usr/local/lib/php.ini&lt;/span&gt; to enable profiling of php scripts.&lt;br /&gt;&lt;/p&gt;&lt;pre style="color: rgb(102, 0, 0);" class="snippet"&gt;&lt;span style="font-size:130%;"&gt;xdebug.profiler_enable=1&lt;/span&gt;&lt;/pre&gt;Now restart the apache server by issuing following command.&lt;pre style="color: rgb(102, 0, 0);" class="snippet"&gt;&lt;span style="font-size:130%;"&gt;sudo apache2ctl restart&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;When ever you access a php page through apache, xdebug will create a file something like &lt;span style="font-weight: bold;"&gt;cachegrind.out.15093&lt;/span&gt;. xdebug by default uses &lt;span style="font-weight: bold;"&gt;/tmp&lt;/span&gt; directory to dump files which contain profiling information. You can change this target directory by using xdebug option &lt;span style="font-weight: bold;"&gt;xdebug.profiler_output_dir&lt;/span&gt; and you can change result file name by using the option &lt;span style="font-weight: bold;"&gt;xdebug.profiler_output_name&lt;/span&gt;.&lt;/p&gt;&lt;p&gt;See more &lt;a target="_blank" href="http://xdebug.org/docs/all_settings#profiler_append"&gt;xdebug profiling options&lt;/a&gt;.&lt;/p&gt;Some times you don't want to profile all requests. xdebug provides a selective mechanism to trigger profiling of specific requests. In order to enable this option you have to add following configuration option to &lt;span style="font-weight: bold;"&gt;php.ini&lt;/span&gt;.&lt;pre class="snippet"&gt;xdebug.profiler_enable_trigger=On&lt;/pre&gt;&lt;p&gt;Now you can trigger profiling of specific requests by adding &lt;span style="font-weight: bold;"&gt;XDEBUG_PROFILE&lt;/span&gt; to the query part of the GET request.&lt;/p&gt;&lt;h4&gt;Analyzing Profiling results&lt;/h4&gt;&lt;p&gt;We need to use kcachegrind to analyse profile file results. We can install &lt;a target="_blank" href="apt:kcachegrind"&gt;kcachegrind&lt;/a&gt; by issuing following command.&lt;/p&gt;&lt;pre style="color: rgb(102, 0, 0);" class="snippet"&gt;&lt;span style="font-size:130%;"&gt;sudo apt-get -y install kcachegrind&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;Now open your profle result file in kcachegrind and you can visuall inspect which part of your script is eating cpu resources. Callmap &amp;amp; Callgrap provide easy to understand visualizations to find bottlenecks in your script.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4053486063052531067-7260213315303488213?l=ashko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ashko.blogspot.com/feeds/7260213315303488213/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4053486063052531067&amp;postID=7260213315303488213' title='27 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/7260213315303488213'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/7260213315303488213'/><link rel='alternate' type='text/html' href='http://ashko.blogspot.com/2008/06/do-trace-debug-profiling-of-php-script.html' title='Do Trace - Debug ( Profiling ) of PHP script by xdebug &amp; kcachegrind'/><author><name>ÅšhΘκ  Šμ∂απi</name><uri>http://www.blogger.com/profile/17739127081189346556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>27</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4053486063052531067.post-6610003591131921732</id><published>2008-05-27T23:16:00.000-07:00</published><updated>2008-05-27T23:30:02.023-07:00</updated><title type='text'>What is new in Firefox 3</title><content type='html'>&lt;span style="font-size:100%;"&gt;&lt;br /&gt;The closest rival to Microsoft's Internet Explorer is ready to get an upgrade. Browser developer Mozilla has announced June release for its popular browser, Firefox.&lt;br /&gt;&lt;br /&gt;Firefox 3 promises to add several new features that will enhance the users browsing experience as well as make it for secure. In fact, Mozilla claims that Firefox 3.0 will run twice as fast as the previous version while using less memory.&lt;br /&gt;&lt;br /&gt;So, here's a peak into all the added features users will find in Firefox 3.0.&lt;br /&gt;&lt;br /&gt;Firefox 3 adds several new features that will make it more secure against online frauds, forgeries, viruses and Trojan.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1.Security&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;An important addition is One-click site info where the users can click the site favicon in the location bar to see who owns the site and to check if their connection is protected from eavesdropping.&lt;br /&gt;&lt;br /&gt;Also, the Identity verification is prominently displayed in the new version. When a site uses Extended Validation (EV) SSL certificates, the site favicon button will turn green and show the name of the company users are connected to.&lt;br /&gt;&lt;br /&gt;The new version has enhanced malware protection which warns users when they enter a site which can install viruses, spyware, trojans or other malware.&lt;br /&gt;&lt;br /&gt;Version 3 also lets users to access Web Forgery Protection page that displays the content suspected of web forgeries.&lt;br /&gt;&lt;br /&gt;Also, the new version promises secured data protection. User's bookmarks, history, cookies, and preferences will now be stored in a transactionally secure database format which will prevent data loss even if their system crashes.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2.Improved Javascript Engine&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;According to Firefox team, improvements to the JavaScript engine as well as profile guided optimization has enhanced the performance of Firefox 3.0.&lt;br /&gt;&lt;br /&gt;The new Firefox 3.0 will enable web applications like Google Mail and Zoho Office to run twice as fast compared to Firefox 2. Also, SunSpider test from Apple shows improvements over previous releases.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;3.Performance&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Firefox 3 endeavours to reduce the amount of memory used over a Web browsing session.&lt;br /&gt;&lt;br /&gt;Memory cycles are broken and collected by an automated cycle collector, a new memory allocator has been added to reduce fragmentation, a large number of leaks have been fixed, and caching strategies have been tuned.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;4.Add-ons&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Also, the new version of Firefox automatically checks new add-ons and plugins and will disable older, insecure versions.&lt;br /&gt;&lt;br /&gt;The new version promises to make users browsing experience more organised and clutter-free.&lt;br /&gt;&lt;br /&gt;An information bar replaces the old password dialogue so that users can now save passwords after a successful login. The add-ons whitelist has been removed making it possible to install extensions from third-party sites in fewer clicks.&lt;br /&gt;&lt;br /&gt;The revised Download Manager will make it easier to locate downloaded files, and users can search the name of the website where the file came from. Also, the users will be able to resume downloads after restarting the browser or resetting their network connection.&lt;br /&gt;&lt;br /&gt;Simplifying add-on installation, the new version will make it possible to install extensions from third-party sites in fewer clicks.&lt;br /&gt;&lt;br /&gt;Also, in case a user wants to install Firefox add-ons, the new Add-ons Manager will also display a list of recommended add-ons and downloads from the Firefox website.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;5.Zoom&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Another feature that adds volume to the new version is Full page zoom. This functionality will let users zoom in and out of entire pages, scaling the layout, text and images, or optionally only the text size. Users settings will be remembered whenever they return to the site.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;6.Activity&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Another new feature, called activities, allows users to highlight text on a page, click on it, then instantly send it to another site, like a mapping, e-mail or blogging service.The new version promises to make users browsing experience more organised and clutter-free.&lt;br /&gt;&lt;br /&gt;Multiple text selections can be made with Ctrl/Cmd; double-click drag selects in "word-by-word" mode; triple-clicking selects a paragraph.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;7.Bookmark&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Next time a user wants to add a bookmark the new Firefox will make the task easier for him. He will be able to add bookmarks from the location bar with a single click. A dropdown box will let him name it, choose a folder to put it in as well as add a tag to categorise it.&lt;br /&gt;&lt;br /&gt;There will also be a Smart Bookmarks Folder from where he can access his recently-bookmarked and tagged pages, as well as his most-frequently visited pages.&lt;br /&gt;&lt;br /&gt;Another feature called Places Organiser will help the user view, organise and search through all his bookmarks, tags, and browsing history with multiple views and smart folders to store his frequent searches.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;8.New Developer Tools&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Firefox 3.0 has several developer tools too. Like there are new tools for graphics and font handling.&lt;br /&gt;&lt;br /&gt;New graphics and text rendering architectures in Gecko 1.9 provides rendering improvements in CSS, SVG as well as improved display of fonts with ligatures and complex scripts.&lt;br /&gt;&lt;br /&gt;Regarding colour management, Firefox 3.0 will be able to adjust images with embedded color profiles. There's also offline support option that aims to enable web applications to provide offline functionality.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4053486063052531067-6610003591131921732?l=ashko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ashko.blogspot.com/feeds/6610003591131921732/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4053486063052531067&amp;postID=6610003591131921732' title='19 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/6610003591131921732'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/6610003591131921732'/><link rel='alternate' type='text/html' href='http://ashko.blogspot.com/2008/05/what-is-new-in-firefox-3.html' title='What is new in Firefox 3'/><author><name>ÅšhΘκ  Šμ∂απi</name><uri>http://www.blogger.com/profile/17739127081189346556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>19</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4053486063052531067.post-3896251345002215538</id><published>2008-05-27T01:01:00.000-07:00</published><updated>2008-05-27T01:23:31.683-07:00</updated><title type='text'>Just simple css code of 7 lines for Rounded corner : without any images</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Css Code:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;.rtop, .rbottom{display:block; }&lt;br /&gt;.rtop *, .rbottom *{display: block; height: 1px; overflow: hidden}&lt;br /&gt;.r1{margin: 0 5px; background:#9BD1FA;}&lt;br /&gt;.r2{margin: 0 3px; background:#9BD1FA;}&lt;br /&gt;.r3{margin: 0 2px; background:#9BD1FA;}&lt;br /&gt;.r4{margin: 0 1px; height: 2px; background:#9BD1FA;}&lt;br /&gt;.contain{background:#9BD1FA;text-align:center;}&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;HTML Code:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;div id="container" style="width:100px;"&amp;gt;&lt;br /&gt;&amp;lt;b class="rtop"&amp;gt;&lt;br /&gt;&amp;lt;b class="r1"&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;&amp;lt;b class="r2"&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;&amp;lt;b class="r3"&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;&amp;lt;b class="r4"&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;&amp;lt;/b&amp;gt;&lt;br /&gt;&amp;lt;div class="contain"&amp;gt;Ashok Sudani&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;b class="rbottom"&amp;gt;&lt;br /&gt;&amp;lt;b class="r4"&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;&amp;lt;b class="r3"&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;&amp;lt;b class="r2"&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;&amp;lt;b class="r1"&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;&amp;lt;/b&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;For Example:&lt;/b&gt;&lt;br/&gt;&lt;br /&gt;&lt;style type="text/css"&gt;.rtop,.rbottom{display:block; }.rtop *, .rbottom *{display: block; height: 1px; overflow: hidden}.r1{margin: 0 5px; background:#9BD1FA;}.r2{margin: 0 3px; background:#9BD1FA;}.r3{margin: 0 2px; background:#9BD1FA;}.r4{margin: 0 1px; height: 2px; background:#9BD1FA;}.contain{background:#9BD1FA;text-align:center;height:20px;}&lt;/style&gt;&lt;div id="container" style="width: 120px;"&gt;&lt;b class="rtop"&gt;&lt;b class="r1"&gt;&lt;/b&gt; &lt;b class="r2"&gt;&lt;/b&gt; &lt;b class="r3"&gt;&lt;/b&gt; &lt;b class="r4"&gt;&lt;/b&gt;&lt;/b&gt;&lt;div class="contain"&gt;Ashok Sudani&lt;/div&gt;&lt;b class="rbottom"&gt;&lt;b class="r4"&gt;&lt;/b&gt; &lt;b class="r3"&gt;&lt;/b&gt; &lt;b class="r2"&gt;&lt;/b&gt; &lt;b class="r1"&gt;&lt;/b&gt;&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4053486063052531067-3896251345002215538?l=ashko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ashko.blogspot.com/feeds/3896251345002215538/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4053486063052531067&amp;postID=3896251345002215538' title='331 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/3896251345002215538'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/3896251345002215538'/><link rel='alternate' type='text/html' href='http://ashko.blogspot.com/2008/05/just-simple-css-code-of-7-lines-for.html' title='Just simple css code of 7 lines for Rounded corner : without any images'/><author><name>ÅšhΘκ  Šμ∂απi</name><uri>http://www.blogger.com/profile/17739127081189346556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>331</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4053486063052531067.post-6215977836974724163</id><published>2008-05-26T23:58:00.000-07:00</published><updated>2008-05-27T00:05:13.575-07:00</updated><title type='text'>Javascript in 600 Seconds</title><content type='html'>&lt;h2&gt;Breakdown...&lt;/h2&gt;  &lt;h3&gt;Basic Types&lt;/h3&gt;  &lt;pre&gt;var intValue = 1;&lt;br /&gt;var floatValue = 3.0;&lt;br /&gt;var stringValue = "This is a string\n";&lt;br /&gt;var sqString = 'This is also a string';&lt;br /&gt;&lt;/pre&gt;  &lt;p&gt;Javascript is a dynamically typed language.  Variables are declared with the keyword &lt;tt&gt;var&lt;/tt&gt;.  Common simple types are supported.&lt;/p&gt;  &lt;h3&gt;Arrays&lt;/h3&gt;  &lt;pre&gt;var emptyList = [];&lt;br /&gt;var homogenousList = [1, 2, 3];&lt;br /&gt;var heterogenousList = ["one", 2, 3.0];&lt;br /&gt;&lt;/pre&gt;  &lt;p&gt;Javascript has built-in collection objects.  The Array object is a dynamically typed sequence of Javascript values.  They are  created with the bracket notation &lt;tt&gt;[]&lt;/tt&gt; or with the &lt;tt&gt;new&lt;/tt&gt; operator on the &lt;tt&gt;Array&lt;/tt&gt; object (e.g.  &lt;tt&gt;new Array(5)&lt;/tt&gt;).&lt;/p&gt;  &lt;h3&gt;Property Maps&lt;/h3&gt;  &lt;pre&gt;var emptyMap = {};&lt;br /&gt;var homogenousMap = {"one": 1, "two": 2, "three": 3};&lt;br /&gt;var heterogenousMap = {"one": 1,&lt;br /&gt;                      "two": "two",&lt;br /&gt;                      "three": 3.0};&lt;br /&gt;&lt;/pre&gt;  &lt;p&gt;Along with &lt;tt&gt;Array&lt;/tt&gt;s are the &lt;tt&gt;Object&lt;/tt&gt; objects. They act as property maps with strings serving as keys to dynamically typed data.&lt;/p&gt;  &lt;h4&gt;Access&lt;/h4&gt;  &lt;pre&gt;// Dot notation property access&lt;br /&gt;window.alert("Homogenous map property \"one\" "&lt;br /&gt;            + &lt;span style="color:blue;"&gt;homogenousMap.one&lt;/span&gt;);&lt;br /&gt;// Subscript notation property access&lt;br /&gt;window.alert("Homogenous map property \"two\" "&lt;br /&gt;            + &lt;span style="color:blue;"&gt;homogenousMap["two"]&lt;/span&gt;);&lt;br /&gt;&lt;/pre&gt;  &lt;h4&gt;Assignment&lt;/h4&gt;  &lt;pre&gt;homogenousMap["one"] = 10;&lt;br /&gt;homogenousMap.two = 20;&lt;br /&gt;&lt;/pre&gt;  &lt;h4&gt;Removal&lt;/h4&gt;  &lt;pre&gt;delete homogenousMap["one"];&lt;br /&gt;delete homogenousMap.two;&lt;br /&gt;&lt;/pre&gt;  &lt;h4&gt;Iteration&lt;/h4&gt;  &lt;pre&gt;for (var &lt;span style="color:green;"&gt;key&lt;/span&gt; in &lt;span style="color:blue;"&gt;heterogenousMap&lt;/span&gt;) {&lt;br /&gt;   window.alert("Heterogenous map property \""&lt;br /&gt;                + &lt;span style="color:green;"&gt;key&lt;/span&gt;&lt;br /&gt;                + "\" = "&lt;br /&gt;                + &lt;span style="color:blue;"&gt;heterogenousMap[&lt;span style="color:green;"&gt;key&lt;/span&gt;]&lt;/span&gt;);&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;  &lt;h3&gt;Functions&lt;/h3&gt;  &lt;pre&gt;var callable = function (message) { // &lt;-- notice assignment&lt;br /&gt;   window.alert("Callable called with message = "&lt;br /&gt;                + message);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;function createClosure(initial) {&lt;br /&gt;   var res = function () {&lt;br /&gt;       initial = initial + 1;&lt;br /&gt;       window.alert("Closure with modified state "&lt;br /&gt;                    + initial);&lt;br /&gt;   }&lt;br /&gt;   return res;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function callCallable(f, x) {&lt;br /&gt;   f(x);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function composeCallables(f, g, x) {&lt;br /&gt;   f(g(x));&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;  &lt;p&gt;Functions are first-class objects.  That means that they can be created dynamically, stored, passed and returned  just like any other value.&lt;/p&gt;  &lt;h3&gt;Objects&lt;/h3&gt;  &lt;pre&gt;function MyObject(name, value) {&lt;br /&gt;   this.name = name;&lt;br /&gt;   this.value = value;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;  &lt;p&gt;Javascript supports prototype based object orientation. Not a class type but an object constructor is created for new objects with particular properties.  In the example above the &lt;tt&gt;this&lt;/tt&gt; keyword used to  reference the ''current instance'' of the object. The &lt;tt&gt;this&lt;/tt&gt; object is essentially a property map with members accessed (and initialized) in this  example with the dot notation.&lt;/p&gt;  &lt;p&gt;The object constructor, &lt;tt&gt;MyObject&lt;/tt&gt;, is an object constructor not in how it's defined, which looks like any other Javascript function, but in  how it's ''invoked''.&lt;/p&gt;  &lt;pre&gt;    var my = new MyObject("foo", 5);&lt;br /&gt;&lt;/pre&gt;  &lt;p&gt;The &lt;tt&gt;new&lt;/tt&gt; operator before the function  invokes the function with a newly construced object as &lt;tt&gt;this&lt;/tt&gt; and returns that the initialized object.&lt;/p&gt;  &lt;h4&gt;Object Prototype&lt;/h4&gt;  &lt;p&gt;Part of what makes a language object oriented is that data not only has properties but also ''behaviors''. Also known as: member functions; methods; and object  messages. To implement a member function in Javascript one would be tempted to write something like what's below based on the member initialization exampled above.&lt;/p&gt;    &lt;pre&gt;&lt;span style="color:red;"&gt;function BadObject(data) {&lt;br /&gt;   this.data = data&lt;br /&gt;   this.memberFunction = function () {&lt;br /&gt;       // ...functions on data...&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;  &lt;p&gt; While the code above will work without error, it does create a new closure for each member function for each new instance of the object.  What's really required is a class level function that works on instance data. But remember, Javascript objects aren't class based but prototype based.  So how do we implement "class" level member functions? (&lt;a class="internal new" href="http://javascript.infogami.com/#Member_Function_Implementation"&gt;Skip to Implementation&lt;/a&gt;) Better yet, how do we implement "class" level members functions in general?&lt;/p&gt;  &lt;p&gt;Enter the &lt;tt&gt;prototype&lt;/tt&gt; member.&lt;/p&gt;  &lt;p&gt;The internal object member, &lt;tt&gt;prototype&lt;/tt&gt;, has  language defined significance in that it is used for  resolving property names if the property isn't found in the current property map.  It's considered internal because, while the instance's &lt;tt&gt;prototype&lt;/tt&gt; member is ''inherited'' from the ''constructor's'' &lt;tt&gt;prototype&lt;/tt&gt; member, it cannot be accessed directly from the object instance itself.  The defined &lt;tt&gt;prototype&lt;/tt&gt; member  is a property map itself which holds members for property  name resolution. Consider the example below:&lt;/p&gt;  &lt;pre&gt; var parentPropertyMap = {&lt;span style="color:red;"&gt;"bar"&lt;/span&gt;: &lt;span style="color:red;"&gt;"I'm the bar"&lt;/span&gt;};&lt;br /&gt;&lt;br /&gt;&lt;span style="color:grey;"&gt;// Define the constructor with inheritable properties&lt;/span&gt;&lt;br /&gt;function ChildObject(foo) {&lt;br /&gt;    this.&lt;span style="color:blue;"&gt;foo&lt;/span&gt; = foo;&lt;br /&gt;}&lt;br /&gt;ChildObject.prototype = parentPropertyMap;&lt;br /&gt;&lt;br /&gt;childPropertyMap1 = new ChildObject(&lt;span style="color:blue;"&gt;"I'm the foo1"&lt;/span&gt;);&lt;br /&gt;childPropertyMap2 = new ChildObject(&lt;span style="color:blue;"&gt;"I'm the foo2"&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;&lt;span style="color:grey;"&gt;// Prints "childPropertyMap1.foo = I'm the foo1"&lt;/span&gt;&lt;br /&gt;window.alert("childPropertyMap1.foo = "&lt;br /&gt;  + childPropertyMap1.&lt;span style="color:blue;"&gt;foo&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;&lt;span style="color:grey;"&gt;// Prints "childPropertyMap2.foo = I'm the foo2"&lt;/span&gt;&lt;br /&gt;window.alert("childPropertyMap2.foo = "&lt;br /&gt;  + childPropertyMap2.&lt;span style="color:blue;"&gt;foo&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;&lt;span style="color:grey;"&gt;// Prints "childPropertyMap1.bar = I'm the bar"&lt;/span&gt;&lt;br /&gt;window.alert("childPropertyMap1.bar = "&lt;br /&gt;  + childPropertyMap1.&lt;span style="color:red;"&gt;bar&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;&lt;span style="color:grey;"&gt;// Prints "childPropertyMap2.bar = I'm the bar"&lt;/span&gt;&lt;br /&gt;window.alert("childPropertyMap2.bar = "&lt;br /&gt;  + childPropertyMap2.&lt;span style="color:red;"&gt;bar&lt;/span&gt;);&lt;br /&gt;&lt;/pre&gt;  &lt;p&gt;The member &lt;tt&gt;foo&lt;/tt&gt; is an instance member added to the instance's property map during construction:&lt;/p&gt;  &lt;pre&gt; function ChildObject(foo) {&lt;br /&gt;    &lt;span style="color:blue;"&gt;this.foo = foo;&lt;/span&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;  &lt;p&gt;while &lt;tt&gt;bar&lt;/tt&gt; is in the constructor's &lt;tt&gt;prototype&lt;/tt&gt;:&lt;/p&gt;  &lt;pre&gt; var parentPropertyMap = {"bar": "I'm the bar"};&lt;br /&gt;...&lt;br /&gt;ChildObject.prototype = parentPropertyMap;&lt;br /&gt;&lt;/pre&gt;  &lt;p&gt;which is ''inherited'' during the &lt;tt&gt;new&lt;/tt&gt; operation:&lt;/p&gt;  &lt;pre&gt; childPropertyMap1 = new ChildObject("I'm the foo1");&lt;br /&gt;childPropertyMap2 = new ChildObject("I'm the foo2");&lt;br /&gt;&lt;/pre&gt;  &lt;p&gt;In other words, the member, &lt;tt&gt;bar&lt;/tt&gt;, is shared across  all instances of &lt;tt&gt;ChildObject&lt;/tt&gt;.&lt;/p&gt;  &lt;p&gt;Therefore, by implementing the &lt;tt&gt;prototype&lt;/tt&gt; member of the  constructor function, we can think of the constructor function itself as the "class" object.  Complete with static class  functions:&lt;/p&gt;  &lt;pre&gt; function ClassObject() {}&lt;br /&gt;ClassObject.staticClassFunction = function(x) {&lt;br /&gt;    return x * 2;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;  &lt;p&gt;static class variables:&lt;/p&gt;  &lt;pre&gt; function ClassObject() {}&lt;br /&gt;ClassObject.staticClassVariable = 5;&lt;br /&gt;&lt;/pre&gt;  &lt;p&gt;shared member variables:&lt;/p&gt;  &lt;pre&gt; function ClassObject() {}&lt;br /&gt;ClassObject.prototype.sharedMember = 5;&lt;br /&gt;&lt;/pre&gt;  &lt;p&gt;and of course, shared member functions:&lt;/p&gt;  &lt;pre&gt; function ClassObject(x) {&lt;br /&gt;    this.x = x;&lt;br /&gt;}&lt;br /&gt;ClassObject.prototype.memberFunction = function(x) {&lt;br /&gt;    return x * this.x;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;  &lt;h4&gt;Member Function Implementation&lt;/h4&gt;  &lt;pre&gt;function Message(message) {&lt;br /&gt;   this.message = message;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Message.prototype.show = function() {&lt;br /&gt;   window.alert("Message.show() with message = "&lt;br /&gt;                + this.message);&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;  &lt;p&gt;&lt;br /&gt;&lt;/p&gt;  &lt;h2&gt;Example Code&lt;/h2&gt;  &lt;pre&gt;//////////////////////////////////////&lt;br /&gt;// Basic Types&lt;br /&gt;var intValue = 1;&lt;br /&gt;var floatValue = 3.0;&lt;br /&gt;var stringValue = "This is a string\n";&lt;br /&gt;&lt;br /&gt;///////////////////////////////////////&lt;br /&gt;// Array&lt;br /&gt;var emptyList = [];&lt;br /&gt;var homogenousList = [1, 2, 3];&lt;br /&gt;var heterogenousList = ["one", 2, 3.0];&lt;br /&gt;&lt;br /&gt;///////////////////////////////////////&lt;br /&gt;// Property Map&lt;br /&gt;//&lt;br /&gt;var emptyMap = {};&lt;br /&gt;var homogenousMap = {"one": 1, "two": 2, "three": 3};&lt;br /&gt;var heterogenousMap = {"one": 1,&lt;br /&gt;                      "two": "two",&lt;br /&gt;                      "three": 3.0};&lt;br /&gt;&lt;br /&gt;///////////////////////////////////////&lt;br /&gt;// Functions as values&lt;br /&gt;//&lt;br /&gt;var callable = function (message) { // &lt;-- notice assignment&lt;br /&gt;   window.alert("Callable called with message = "&lt;br /&gt;                + message);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function createClosure(initial) {&lt;br /&gt;   var res = function () {&lt;br /&gt;       initial = initial + 1;&lt;br /&gt;       window.alert("Closure with modified state "&lt;br /&gt;                    + initial);&lt;br /&gt;   }&lt;br /&gt;   return res;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;///////////////////////////////////////&lt;br /&gt;// Functions as arguments&lt;br /&gt;//&lt;br /&gt;function callCallable(f, x) {&lt;br /&gt;   f(x);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function composeCallables(f, g, x) {&lt;br /&gt;   f(g(x));&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;///////////////////////////////////////&lt;br /&gt;// Objects&lt;br /&gt;//&lt;br /&gt;function MyObject(name, value) {&lt;br /&gt;   this.name = name;&lt;br /&gt;   this.value = value;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;///////////////////////////////////////&lt;br /&gt;// Objects with Member Functions&lt;br /&gt;//&lt;br /&gt;function Message(message) {&lt;br /&gt;   this.message = message;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Message.prototype.show = function() {&lt;br /&gt;   window.alert("Message.show() with message = "&lt;br /&gt;                + this.message);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;///////////////////////////////////////&lt;br /&gt;// Demo Utilities&lt;br /&gt;//&lt;br /&gt;function quote(message) {&lt;br /&gt;   return "\"" + message + "\"";&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;///////////////////////////////////////&lt;br /&gt;// HTML Invoked demonstration&lt;br /&gt;//&lt;br /&gt;//&lt;br /&gt;function main() {&lt;br /&gt;   window.alert("Integer = " + intValue);&lt;br /&gt;   window.alert("Float = " + floatValue);&lt;br /&gt;   window.alert("String = " + stringValue);&lt;br /&gt;&lt;br /&gt;   for (var item in emptyList) {&lt;br /&gt;       window.alert("Empty list item = " + item);&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   // Script style index iteration&lt;br /&gt;   for (var i in homogenousList) {&lt;br /&gt;       window.alert("Homogenous list item = "&lt;br /&gt;                    + homogenousList[i]);&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   // C style index iteration&lt;br /&gt;   for (var i=0; i &lt; heterogenousList.length; ++i) {&lt;br /&gt;       window.alert("Heterogenous list item = "&lt;br /&gt;                    + heterogenousList[i]);&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   // Dot notation property access&lt;br /&gt;   window.alert("Homogenous map property \"one\" "&lt;br /&gt;                + homogenousMap.one);&lt;br /&gt;   // Subscript notation property access&lt;br /&gt;   window.alert("Homogenous map property \"two\" "&lt;br /&gt;                + homogenousMap["two"]);&lt;br /&gt;&lt;br /&gt;   for (var key in heterogenousMap) {&lt;br /&gt;       window.alert("Heterogenous map property \""&lt;br /&gt;                    + key&lt;br /&gt;                    + "\" = "&lt;br /&gt;                    + heterogenousMap[key]);&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   callable("(Function value invoked)");&lt;br /&gt;   closure();&lt;br /&gt;   closure();&lt;br /&gt;&lt;br /&gt;   callCallable(closure);&lt;br /&gt;   composeCallables(callable, quote, "My Message");&lt;br /&gt;&lt;br /&gt;   var my = new MyObject("foo", 5);&lt;br /&gt;   window.alert("MyObject my.name = " + my.name);&lt;br /&gt;   window.alert("MyObject my[\"value\"] = " + my["value"]);&lt;br /&gt;&lt;br /&gt;   var msg = new Message("bar");&lt;br /&gt;   for (var key in Message.prototype) {&lt;br /&gt;       window.alert("Message prototype member \""&lt;br /&gt;                    + key&lt;br /&gt;                    + "\" = "&lt;br /&gt;                    + Message.prototype[key]);&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   window.alert("Message msg.message = " + msg.message);&lt;br /&gt;   msg.show();&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4053486063052531067-6215977836974724163?l=ashko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ashko.blogspot.com/feeds/6215977836974724163/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4053486063052531067&amp;postID=6215977836974724163' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/6215977836974724163'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/6215977836974724163'/><link rel='alternate' type='text/html' href='http://ashko.blogspot.com/2008/05/javascript-in-600-seconds.html' title='Javascript in 600 Seconds'/><author><name>ÅšhΘκ  Šμ∂απi</name><uri>http://www.blogger.com/profile/17739127081189346556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4053486063052531067.post-2743334434477283301</id><published>2008-05-23T05:00:00.000-07:00</published><updated>2008-05-23T05:07:53.203-07:00</updated><title type='text'>40 Unique Resources for JavaScript Coders</title><content type='html'>&lt;p&gt;Are you an advanced JavaScript coder looking for more sites to sharpen your coding prowess? Maybe you’re a web designer wanting to double as a developer (or at least know enough to add a bit of rich content into your designs). Either way, if you’re looking for more information on the &lt;strong&gt;topic of JavaScript&lt;/strong&gt;, the following resources are worth a gander.&lt;/p&gt; &lt;p&gt;&lt;span id="more-138"&gt;&lt;/span&gt;&lt;/p&gt; &lt;h3&gt;Reference,  Resources, &amp;amp; Tutorials &lt;/h3&gt; &lt;h4 class="clear"&gt;&lt;img class="floatLeft" src="http://sixrevisions.com/images/46_excellent_resources_javascript_coders/01_dev_guru.jpg" alt="DevGuru" /&gt;&lt;a href="http://www.devguru.com/technologies/javascript/index.asp" title="DevGuru - JavaScript Quick Reference"&gt;DevGuru - JavaScript Quick Reference&lt;/a&gt;&lt;/h4&gt; &lt;p&gt;DevGuru provides an extensive list of JavaScript syntax, alphabetized similar to a glossary for easy scanning and searching.&lt;/p&gt; &lt;h4 class="clear"&gt;&lt;img class="floatLeft" src="http://sixrevisions.com/images/46_excellent_resources_javascript_coders/05_tech_javascript_cheatsheet.jpg" alt="TechCheatSheets.com - Javascript Cheat Sheets" /&gt;&lt;a href="http://techcheatsheets.com/tag/javascript/" title="Javascript Cheat Sheets"&gt;TechCheatSheets.com - Javascript Cheat Sheets&lt;/a&gt;&lt;/h4&gt; &lt;p&gt;A roundup of &lt;strong&gt;10 JavaScript cheat sheets&lt;/strong&gt; in one place; includes cheatsheets for frameworks such as jQuery and Prototype.&lt;/p&gt; &lt;h4 class="clear"&gt;&lt;img class="floatLeft" src="http://sixrevisions.com/images/46_excellent_resources_javascript_coders/03_google_groups.jpg" alt="Google Groups - comp.lang.javascript" /&gt;&lt;a href="http://groups.google.com/group/comp.lang.javascript/topics?lnk=sg&amp;amp;hl=en" title="Google Groups - comp.lang.javascript"&gt;Google Groups - comp.lang.javascript&lt;/a&gt;&lt;/h4&gt; &lt;p&gt; If you’re looking for a  community of JavaScript’ers &lt;em&gt;comp.lang.javascrip&lt;/em&gt;t is an active and helpful community of developers.&lt;/p&gt; &lt;h4 class="clear"&gt;&lt;img class="floatLeft" src="http://sixrevisions.com/images/46_excellent_resources_javascript_coders/04_jquery_for_Designers.jpg" alt="jQuery for Designers" /&gt;&lt;a href="http://jqueryfordesigners.com/" title="jQuery for Designers"&gt;jQuery for Designers&lt;/a&gt;&lt;/h4&gt; &lt;p&gt;&lt;em&gt;jQuery for Designers&lt;/em&gt; is geared towards &lt;strong&gt;designers&lt;/strong&gt; who want to learn about the jQuery  library to add more dynamic content in their designs.&lt;/p&gt; &lt;h4 class="clear"&gt;&lt;img class="floatLeft" src="http://sixrevisions.com/images/46_excellent_resources_javascript_coders/06_free_tech_books.jpg" alt="Freetechbooks.com - Free Online JavaScript Books" /&gt;&lt;a href="http://www.freetechbooks.com/javascript-f68.html" title="Freetechbooks.com - Free Online JavaScript Books"&gt;Freetechbooks.com - Free Online JavaScript Books&lt;/a&gt;&lt;/h4&gt; &lt;p&gt;In this collection, you’ll be able to download &lt;strong&gt;5 excellent e-books&lt;/strong&gt; on the topic of JavaScript, all for free.&lt;/p&gt; &lt;h4 class="clear"&gt;&lt;img class="floatLeft" src="http://sixrevisions.com/images/46_excellent_resources_javascript_coders/02_dzone.jpg" alt="DZone" /&gt;&lt;a href="http://www.dzone.com/links/" title="http://www.dzone.com/links/"&gt;DZone&lt;/a&gt; &lt;/h4&gt; &lt;p&gt;Although not purely a JavaScript resource, &lt;em&gt;DZone&lt;/em&gt; regularly features articles, tutorials, resources, and news about JavaScript.&lt;/p&gt; &lt;h4 class="clear"&gt;&lt;img class="floatLeft" src="http://sixrevisions.com/images/46_excellent_resources_javascript_coders/16_w3Schools.jpg" alt="W3Schools - JavaScript Tutorial" /&gt;&lt;a href="http://www.w3schools.com/JS/default.asp" title="W3Schools - JavaScript Tutorial"&gt;W3Schools - JavaScript Tutorial&lt;/a&gt;&lt;/h4&gt; &lt;p&gt;W3School’s section on JavaScript offers &lt;strong&gt;beginning  to advanced JavaScript topics&lt;/strong&gt;.&lt;/p&gt; &lt;h4 class="clear"&gt;&lt;img class="floatLeft" src="http://sixrevisions.com/images/46_excellent_resources_javascript_coders/07_15_Days_of_jquery.jpg" alt="15 Days Of jQuery" /&gt;&lt;a href="http://15daysofjquery.com/" title="15 Days Of jQuery"&gt;15 Days Of jQuery&lt;/a&gt;&lt;/h4&gt; &lt;p&gt;Straight off the home page, &lt;em&gt;15 Days of jQuery&lt;/em&gt; has "&lt;em&gt;Fantastic tutorials and example code that takes you from zero to hero in no time flat&lt;/em&gt;".&lt;/p&gt; &lt;h4 class="clear"&gt;&lt;img class="floatLeft" src="http://sixrevisions.com/images/46_excellent_resources_javascript_coders/08_mootorial.jpg" alt="The &amp;quot;Mootorial&amp;quot;" /&gt;&lt;a href="http://clientside.cnet.com/wiki/mootorial" title="The " mootorial="mootorial"&gt;The "Mootorial"&lt;/a&gt;&lt;/h4&gt; &lt;p&gt;&lt;em&gt;//clientside’s&lt;/em&gt;  tutorial on the mootools framework has a built-in console for you to try out JS code.&lt;/p&gt; &lt;h3 class="clear"&gt;Premade Scripts/Code&lt;/h3&gt; &lt;h4 class="clear"&gt;&lt;img class="floatLeft" src="http://sixrevisions.com/images/46_excellent_resources_javascript_coders/09_ajax_daddy.jpg" alt="AjaxDaddy" /&gt;&lt;a href="http://www.ajaxdaddy.com/" title="AjaxDaddy"&gt;AjaxDaddy&lt;/a&gt;&lt;/h4&gt; &lt;p&gt;A collection of downloadable DHTML scripts. &lt;em&gt;AjaxDaddy &lt;/em&gt;provides a demo for the featured scripts.&lt;/p&gt; &lt;h4 class="clear"&gt;&lt;img class="floatLeft" src="http://sixrevisions.com/images/46_excellent_resources_javascript_coders/10_miniajax.jpg" alt="MiniAjax.com" /&gt;&lt;a href="http://miniajax.com/" title="MiniAjax.com - A showroom of nice looking simple downloadable DHTML and AJAX scripts"&gt;MiniAjax.com&lt;/a&gt;&lt;/h4&gt; &lt;p&gt;Another site with a collection of DHTML and Ajax code, similar to AjaxDaddy.&lt;/p&gt; &lt;h4 class="clear"&gt;&lt;img class="floatLeft" src="http://sixrevisions.com/images/46_excellent_resources_javascript_coders/11_javascript_kit.jpg" alt="JavaScript Kit" /&gt;&lt;a href="http://www.javascriptkit.com/" title="JavaScript Kit- Your comprehensive JavaScript, DHTML, CSS, and Ajax stop"&gt;JavaScript Kit&lt;/a&gt;&lt;/h4&gt; &lt;p&gt;Here, you’ll find downloadable scripts, as well as tutorials and guides on JavaScript.&lt;/p&gt; &lt;h4 class="clear"&gt;&lt;img class="floatLeft" src="http://sixrevisions.com/images/46_excellent_resources_javascript_coders/12_dynamic_drive.jpg" alt="Dynamic Drive JavaScript code library" /&gt;&lt;a href="http://www.dynamicdrive.com/" title="Dynamic Drive JavaScript code library"&gt;Dynamic Drive JavaScript code library&lt;/a&gt;&lt;/h4&gt; &lt;p&gt;DHTML scripts organized into &lt;strong&gt;16 categories&lt;/strong&gt; including &lt;em&gt;Calendars&lt;/em&gt;, &lt;em&gt;Image Effects&lt;/em&gt;, &lt;em&gt;Links &amp;amp; Tooltips&lt;/em&gt;, and more.&lt;/p&gt; &lt;h4 class="clear"&gt;&lt;img class="floatLeft" src="http://sixrevisions.com/images/46_excellent_resources_javascript_coders/13_dhtml_goodies.jpg" alt="DHTMLgoodies.com" /&gt;&lt;a href="http://www.dhtmlgoodies.com/" title="DHTMLgoodies.com - A library of DHTML and Ajax scripts"&gt;DHTMLgoodies.com&lt;/a&gt;&lt;/h4&gt; &lt;p&gt;Yet another place to get your fix of  DHTML/Ajax scripts. They also have a fairly nice and straight-forward &lt;a href="http://www.dhtmlgoodies.com/index.html?whichTutorial=ajax-basics"&gt;Ajax basics tutorial&lt;/a&gt;.&lt;/p&gt; &lt;h4 class="clear"&gt;&lt;img class="floatLeft" src="http://sixrevisions.com/images/46_excellent_resources_javascript_coders/14_4um_useful_javascripts.jpg" alt="4umi useful Javascript" /&gt;&lt;a href="http://4umi.com/web/javascript/" title="4umi useful Javascript"&gt;4umi useful Javascript&lt;/a&gt;&lt;/h4&gt; &lt;p&gt;A "database" of useful scripts and code snipplets that are updated fairly often. &lt;/p&gt; &lt;h3 class="clear"&gt;Articles &amp;amp; Blog Posts&lt;/h3&gt; &lt;h4 class="clear"&gt;&lt;img class="floatLeft" src="http://sixrevisions.com/images/46_excellent_resources_javascript_coders/15_most_complete_framework.jpg" alt="The Most Complete AJAX Framework and JavaScript Libraries List(124+)" /&gt;&lt;a href="http://ntt.cc/2008/02/13/the-most-complete-ajax-framework-and-javascript-libraries-list.html" title="The Most Complete AJAX Framework and JavaScript Libraries List(124+)"&gt;The Most Complete AJAX Framework and JavaScript Libraries List(124+)&lt;/a&gt;&lt;/h4&gt; &lt;p&gt;The title pretty much says it all — it’s a huge list of JS frameworks/libraries.&lt;/p&gt; &lt;h4 class="clear"&gt;&lt;img class="floatLeft" src="http://sixrevisions.com/images/46_excellent_resources_javascript_coders/16_seven_rules_of_unobtrusive_js.jpg" alt="The seven rules of unobtrusive JavaScript" height="60" width="60" /&gt;&lt;a href="http://icant.co.uk/articles/seven-rules-of-unobtrusive-javascript/" title="The seven rules of unobtrusive JavaScript"&gt;The seven rules of unobtrusive JavaScript&lt;/a&gt;&lt;/h4&gt; &lt;p&gt; This excellent article outlines seven things to keep in mind when trying to develop unobtrusive JavaScript solutions.&lt;/p&gt; &lt;h4 class="clear"&gt;&lt;img class="floatLeft" src="http://sixrevisions.com/images/46_excellent_resources_javascript_coders/17_simple_unobtrusive_javascript.jpg" alt="How simple is making your javascript unobtrusive? Easy as Pie" /&gt;&lt;a href="http://www.phazm.com/notes/javascript/easy-as-pie-unobtrusive-javascript/" title="How simple is making your javascript unobtrusive? Easy as Pie"&gt;How simple is making your javascript unobtrusive? Easy as Pie.&lt;/a&gt;&lt;/h4&gt; &lt;p&gt;A basic introductory article on "unobtrusive JavaScript.&lt;/p&gt; &lt;h4 class="clear"&gt;&lt;img class="floatLeft" src="http://sixrevisions.com/images/46_excellent_resources_javascript_coders/18_speckyboy.jpg" alt="The Top 40 Free Ajax &amp;amp; Javascript Code for Web Designers" /&gt;&lt;a href="http://speckyboy.com/2008/02/10/the-top-40-free-ajax-javascript-code-for-web-designers/" title="The Top 40 Free Ajax &amp;amp; Javascript Code for Web Designers"&gt;The Top 40 Free Ajax &amp;amp; Javascript Code for Web Designers&lt;/a&gt;&lt;/h4&gt; &lt;p&gt;A list of scripts geared towards web designers (i.e. not a lot of manual coding involved).&lt;/p&gt; &lt;h4 class="clear"&gt;&lt;img class="floatLeft" src="http://sixrevisions.com/images/46_excellent_resources_javascript_coders/19_top_forty_free_ajax_javascript.jpg" alt="How to choose a JavaScript framework" /&gt;&lt;a href="http://blog.reindel.com/2007/10/30/how-to-choose-a-javascript-framework/" title="How to choose a JavaScript framework"&gt;How to choose a JavaScript framework&lt;/a&gt;&lt;/h4&gt; &lt;p&gt;Outlines a few  considerations when deciding which JS framework is right for you.&lt;/p&gt; &lt;h4 class="clear"&gt;&lt;img class="floatLeft" src="http://sixrevisions.com/images/46_excellent_resources_javascript_coders/20_how_to_choose_javascript_framework.jpg" alt="Efficient JavaScript" height="60" width="60" /&gt;&lt;a href="http://dev.opera.com/articles/view/efficient-javascript/" title="Efficient JavaScript - http://dev.opera.com/articles/view/efficient-javascript/"&gt;Efficient JavaScript&lt;/a&gt;&lt;/h4&gt; &lt;p&gt;An article on &lt;strong&gt;quick tips&lt;/strong&gt; for optimizing your JavaScript code.&lt;/p&gt; &lt;h4 class="clear"&gt;&lt;img class="floatLeft" src="http://sixrevisions.com/images/46_excellent_resources_javascript_coders/21_10_javascript_tools.jpg" alt="Ten Javascript Tools Everyone Should Have" /&gt;&lt;a href="http://www.hunlock.com/blogs/Ten_Javascript_Tools_Everyone_Should_Have" title="Ten Javascript Tools Everyone Should Have"&gt;Ten Javascript Tools Everyone Should Have&lt;/a&gt;&lt;/h4&gt; &lt;p&gt;A list of &lt;strong&gt;JS code snipplets&lt;/strong&gt; recommended to have in your coding arsenal; among them are &lt;em&gt;numeric sorting&lt;/em&gt; and &lt;em&gt;working with cookies&lt;/em&gt;.&lt;/p&gt; &lt;h4 class="clear"&gt;&lt;img class="floatLeft" src="http://sixrevisions.com/images/46_excellent_resources_javascript_coders/22_serve_javascript_fast.jpg" alt="Serving JavaScript Fast" /&gt;&lt;a title="Serving JavaScript Fast" href="http://www.thinkvitamin.com/features/webapps/serving-javascript-fast"&gt;Serving JavaScript Fast&lt;/a&gt;&lt;/h4&gt; &lt;p&gt;Optimal tips for serving/loading your JavaScript libraries quickly.&lt;/p&gt; &lt;h4 class="clear"&gt;&lt;img class="floatLeft" src="http://sixrevisions.com/images/46_excellent_resources_javascript_coders/23_great_browser_showdown.jpg" alt="The Great Browser JavaScript Showdown" /&gt;&lt;a href="http://www.codinghorror.com/blog/archives/001023.html"&gt;The Great Browser   JavaScript Showdown&lt;/a&gt;&lt;/h4&gt; &lt;p&gt;A comparison of the &lt;strong&gt;top 4 web browsers &lt;/strong&gt;(IE7, Firefox 2, Safari 3.0.4, and Opera 9.5) when it comes to handling JS.&lt;/p&gt; &lt;h4 class="clear"&gt;&lt;img class="floatLeft" src="http://sixrevisions.com/images/46_excellent_resources_javascript_coders/24_somewhat_advanced_javascript.jpg" alt="Quick guide to somewhat advanced JavaScript" height="60" width="60" /&gt;&lt;a href="http://www.sergiopereira.com/articles/advjs.html" title="Quick guide to somewhat advanced JavaScript"&gt;Quick guide to somewhat advanced JavaScript&lt;/a&gt;&lt;/h4&gt; &lt;p&gt;A guide on Object-Oriented JavaScript coding.&lt;/p&gt; &lt;h3 class="clear"&gt;Blogs &amp;amp; News&lt;/h3&gt; &lt;h4 class="clear"&gt;&lt;img class="floatLeft" src="http://sixrevisions.com/images/46_excellent_resources_javascript_coders/25_john_reisig.jpg" alt="John Resig - Blog" /&gt;&lt;a href="http://ejohn.org/blog/" title="John Resig - Blog"&gt;John Resig - Blog&lt;/a&gt;&lt;/h4&gt; &lt;p&gt;John Resig is the creator/lead developer of jQuery and author of "&lt;a href="http://jspro.org/" title="Pro Javascript Techniques by John Resig"&gt;Pro Javascript Techniques&lt;/a&gt;".&lt;/p&gt; &lt;h4 class="clear"&gt;&lt;img class="floatLeft" src="http://sixrevisions.com/images/46_excellent_resources_javascript_coders/26_ajaxian.jpg" alt="Ajaxian - JavaScript" /&gt;&lt;a href="http://ajaxian.com/by/topic/javascript/" title=""&gt;&gt; JavaScript"&gt;Ajaxian - JavaScript&lt;/a&gt;&lt;/h4&gt; &lt;p&gt;&lt;em&gt;Ajaxian&lt;/em&gt; is a news site about Ajax and Rich Internet Applications. Over &lt;strong&gt;850 stories&lt;/strong&gt; have been tagged under the JavaScript topic.&lt;/p&gt; &lt;h4 class="clear"&gt;&lt;img class="floatLeft" src="http://sixrevisions.com/images/46_excellent_resources_javascript_coders/27_snookca.jpg" alt="Snook.CA - JavaScript Category" /&gt;&lt;a href="http://www.snook.ca/archives/javascript/" title="Snook.CA (JavaScript Category)"&gt;Snook.CA - JavaScript Category&lt;/a&gt;&lt;/h4&gt; &lt;p&gt;&lt;em&gt;Snook.CA&lt;/em&gt; is &lt;a href="http://www.snook.ca/jonathan/about/" title="About Johnathan Snook"&gt;Johnathan Snook&lt;/a&gt;’s  site on the topic of web development. He writes about JavaScript, as well as other web dev topics.&lt;/p&gt; &lt;h4 class="clear"&gt;&lt;img class="floatLeft" src="http://sixrevisions.com/images/46_excellent_resources_javascript_coders/28_ajaxlines.jpg" alt="Ajaxlines" /&gt;&lt;a href="http://www.ajaxlines.com/" title="Ajaxlines - Asynchronous JavaScript, XML and XMLHTTP"&gt;Ajaxlines&lt;/a&gt;&lt;/h4&gt; &lt;p&gt;&lt;em&gt;Ajaxlines&lt;/em&gt; provides news and resources on the topic of Ajax. It currently has &lt;strong&gt;140+ posts&lt;/strong&gt; tagged under JavaScript.&lt;/p&gt; &lt;h4 class="clear"&gt;&lt;img class="floatLeft" src="http://sixrevisions.com/images/46_excellent_resources_javascript_coders/29_quirksblog.jpg" alt="QuirksBlog" /&gt;&lt;a href="http://www.quirksmode.org/blog/index.html" title="QuirksBlog"&gt;QuirksBlog&lt;/a&gt;&lt;/h4&gt; &lt;p&gt;QuirksBlog is part of JavaScript guru/web developer &lt;a href="http://www.quirksmode.org/about/intro.html" title="About Peter-Paul Koch"&gt;Peter-Paul Koch&lt;/a&gt;’s &lt;a href="http://www.quirksmode.org/" title="QuirksMode.org home"&gt;QuirksMode.org&lt;/a&gt;. His book &lt;a href="http://www.456bereastreet.com/archive/200611/ppk_on_javascript_book_review/" title="ppk on JavaScript review on 456 Berea St"&gt;ppk on JavaScript&lt;/a&gt; is an excellent book to own.&lt;/p&gt; &lt;h4 class="clear"&gt;&lt;img class="floatLeft" src="http://sixrevisions.com/images/46_excellent_resources_javascript_coders/30_ajaxonomy.jpg" alt="Ajaxonomy - Blogs" /&gt;&lt;a href="http://www.ajaxonomy.com/blog" title="Ajaxonomy - Blogs"&gt;Ajaxonomy - Blogs&lt;/a&gt;&lt;/h4&gt; &lt;p&gt;&lt;em&gt;Ajaxonomy &lt;/em&gt;is a wonderful resource for JavaScript’ers  interested in Ajax and other web technologies. It has many&lt;a href="http://www.ajaxonomy.com/tag/JavaScript" title="Posts on Ajaxonomy Blogs tagged with JavaScript"&gt; posts tagged with JavaScript&lt;/a&gt;.&lt;/p&gt; &lt;h4 class="clear"&gt;&lt;img class="floatLeft" src="http://sixrevisions.com/images/46_excellent_resources_javascript_coders/31_ajax_beastiary.jpg" alt="Ajax Bestiary - A JavaScript Field Guide" /&gt;&lt;a href="http://www.ajaxbestiary.com/" title="Ajax Bestiary - A JavaScript Field Guide"&gt;Ajax Bestiary - A JavaScript Field Guide&lt;/a&gt;&lt;/h4&gt; &lt;p&gt;&lt;em&gt;Ajax Bestiary&lt;/em&gt;  is a regularly updated blog on JavaScript.&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;h3&gt;Awesome Frameworks/Libraries&lt;/h3&gt; &lt;h4 class="clear"&gt;&lt;img class="floatLeft" src="http://sixrevisions.com/images/46_excellent_resources_javascript_coders/32_prototypejs.jpg" alt="Prototype JavaScript framework" /&gt;&lt;a href="http://www.prototypejs.org/" title="Prototype JavaScript framework"&gt;Prototype JavaScript framework&lt;/a&gt;&lt;/h4&gt; &lt;p&gt;&lt;em&gt;Prototype&lt;/em&gt; was one of the first  popular frameworks. Several libraries and frameworks are based on Prototype (or still require it).&lt;/p&gt; &lt;h4 class="clear"&gt;&lt;img class="floatLeft" src="http://sixrevisions.com/images/46_excellent_resources_javascript_coders/33_jquery.jpg" alt="jQuery" /&gt;&lt;a href="http://jquery.com/" title="jQuery"&gt;jQuery&lt;/a&gt;&lt;/h4&gt; &lt;p&gt;&lt;em&gt;jQuery&lt;/em&gt; is lightweight, &lt;strong&gt;elegant&lt;/strong&gt;, and touted as one of the &lt;strong&gt;easiest&lt;/strong&gt; JS frameworks to use.&lt;/p&gt; &lt;h4 class="clear"&gt;&lt;img class="floatLeft" src="http://sixrevisions.com/images/46_excellent_resources_javascript_coders/34_mootools.jpg" alt="mootools" /&gt;&lt;a href="http://mootools.net/" title="mootools"&gt;mootools&lt;/a&gt;&lt;/h4&gt; &lt;p&gt;My personal favorite.&lt;/p&gt; &lt;h4 class="clear"&gt;&lt;img class="floatLeft" src="http://sixrevisions.com/images/46_excellent_resources_javascript_coders/35_yui.jpg" alt="The Yahoo! User Interface Library (YUI)" /&gt;&lt;a href="http://developer.yahoo.com/yui/" title="The Yahoo! User Interface Library (YUI)"&gt;The Yahoo! User Interface Library (YUI)&lt;/a&gt;&lt;/h4&gt; &lt;p&gt;A big and extremely robust JavaScript toolkit by Yahoo!.&lt;/p&gt; &lt;h4 class="clear"&gt;&lt;img class="floatLeft" src="http://sixrevisions.com/images/46_excellent_resources_javascript_coders/36_javascriptmvc.jpg" alt="JavaScriptMVC" /&gt;&lt;a href="http://javascriptmvc.com/" title="JavaScriptMVC"&gt;JavaScriptMVC&lt;/a&gt;&lt;/h4&gt; &lt;p&gt;&lt;em&gt;JavaScriptMVC&lt;/em&gt; is a relatively &lt;em&gt;new&lt;/em&gt; but &lt;em&gt;very&lt;/em&gt; promising framework that offers a lot of unique components and features not found in other frameworks.&lt;/p&gt; &lt;h4 class="clear"&gt;&lt;img class="floatLeft" src="http://sixrevisions.com/images/46_excellent_resources_javascript_coders/37_scriptaculous.jpg" alt="script.aculo.us" /&gt;&lt;a href="http://script.aculo.us/" title="script.aculo.us"&gt;script.aculo.us&lt;/a&gt;&lt;/h4&gt; &lt;p&gt;A robust effects library that’s been used by top websites such as Digg, Feedburner, and Apple; requires the inclusion of Prototype.&lt;/p&gt; &lt;h4 class="clear"&gt;&lt;img class="floatLeft" src="http://sixrevisions.com/images/46_excellent_resources_javascript_coders/38_extjs.jpg" alt="Ext JS" height="60" width="60" /&gt;&lt;a href="http://extjs.com/" title="Ext JS - JavaScript Library"&gt;Ext JS&lt;/a&gt;&lt;/h4&gt; &lt;p&gt;Another solid framework; it does have a  restrictive license for commercial purposes. Check out the &lt;a href="http://extjs.com/deploy/dev/examples/desktop/desktop.html" title="Web Desktop demo"&gt;Web Desktop demo&lt;/a&gt;.&lt;/p&gt; &lt;h4 class="clear"&gt;&lt;img class="floatLeft" src="http://sixrevisions.com/images/46_excellent_resources_javascript_coders/39_mochiads.jpg" alt="MochiKit" /&gt;&lt;a href="http://mochikit.com/" title="MochiKit - A lightweight Javascript library"&gt;MochiKit&lt;/a&gt;&lt;/h4&gt; &lt;p&gt;&lt;em&gt;MochiKit&lt;/em&gt; is a robust library that offers a lot of utility functions and effects classes.&lt;/p&gt; &lt;h4 class="clear"&gt;&lt;img class="floatLeft" src="http://sixrevisions.com/images/46_excellent_resources_javascript_coders/40_dojo.jpg" alt="Dojo" /&gt;&lt;a href="http://dojotoolkit.org/" title="Dojo"&gt;Dojo&lt;/a&gt;&lt;/h4&gt; &lt;p&gt;Dojo is another  framework to consider.  visit the &lt;a href="http://dojotoolkit.org/spotlight" title="Spotlight on Dojo"&gt;Spotlight section&lt;/a&gt; on the website to see real companies using &lt;em&gt;Dojo&lt;/em&gt;.&lt;/p&gt; &lt;h3 class="clear"&gt;Additional Resources&lt;/h3&gt; &lt;p&gt;&lt;em&gt;&lt;strong&gt;Author’s note - April 16, 2008.&lt;/strong&gt;&lt;/em&gt; After the publication of this article, I recieved several recommendations from readers about additional resources that didn’t make the list. I’d like to add &lt;strong&gt;even more excellent JavaScript resources&lt;/strong&gt; worth taking a look at. I’ll add more as suggestions come along.&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;a href="http://www.learningjquery.com/" title="Learning jQuery - Getting to know the library of choice for unobtrusive JavaScript"&gt;&lt;strong&gt;Learning jQuery&lt;/strong&gt;&lt;/a&gt; - a multi-author weblog dedicated to sharing information about jQuery. It’s geared at all levels of JS coders wanting to learn about jQuery.&lt;/li&gt;&lt;li&gt;&lt;a href="http://blog.reindel.com/2007/10/16/mastering-javascript-concept-and-resource-guide/" title="d’bug  » Mastering JavaScript — concept and resource guide"&gt;&lt;strong&gt;Mastering JavaScript — concept and resource guide&lt;/strong&gt;&lt;/a&gt; - A great list of resources pertaining to grokking JS.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(221, 221, 221);"&gt;Ref: http://sixrevisions.com/resources/40_resources_for_javascript_coders/&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4053486063052531067-2743334434477283301?l=ashko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ashko.blogspot.com/feeds/2743334434477283301/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4053486063052531067&amp;postID=2743334434477283301' title='60 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/2743334434477283301'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/2743334434477283301'/><link rel='alternate' type='text/html' href='http://ashko.blogspot.com/2008/05/40-unique-resources-for-javascript.html' title='40 Unique Resources for JavaScript Coders'/><author><name>ÅšhΘκ  Šμ∂απi</name><uri>http://www.blogger.com/profile/17739127081189346556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>60</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4053486063052531067.post-3551521618509189569</id><published>2008-03-14T00:32:00.000-07:00</published><updated>2008-03-14T00:33:33.338-07:00</updated><title type='text'>The future is waiting for Linux</title><content type='html'>&lt;div class="postBody"&gt;         &lt;p&gt;The rising generation of programmers isn't being fed .Net and Windows. It's growing strong on Linux and its associated LAMP stack, &lt;a class="external-link" href="http://blogs.wsj.com/biztech/2008/03/10/microsofts-new-play-for-linux-lovers/"&gt;as Robert Guth of the &lt;i&gt;Wall Street Journal&lt;/i&gt; notes&lt;/a&gt;. Microsoft thinks it has an answer to this trend toward Linux. It is very telling how far from reality Microsoft is by its response:&lt;/p&gt;  &lt;blockquote&gt;&lt;p&gt;Microsoft hasn't been a player in the Net start-up world, in part because of the cost of its server product. Mr. Hilf tells [the WSJ] that Microsoft is trying to fix that with new licensing schemes that make Windows Server more affordable for start-ups....&lt;/p&gt; &lt;!--pagebreak--&gt; &lt;p&gt;The technology has also been a hindrance, which Mr. Hilf says Microsoft tried to overcome by making additions to Windows Server 2008 that might appeal to Linux programmers who want better access to the technical guts of the software. Such changes "will be a big impact to that next-generation Facebook," Mr. Hilf says.&lt;/p&gt;&lt;/blockquote&gt;  &lt;p&gt;Well, no, Bill. Such changes are largely irrelevant at this point. You've already lost the mindshare war, and tepid changes to Microsoft's server licensing policies won't change things, either. Your company's limp olive branch to the open-source community ("You can use our software royalty-free and without fear of legal retribution...so long as you never make a penny from your efforts") is worse than insulting.&lt;/p&gt;  &lt;p&gt;Microsoft's model is perfect for the client/server model that it helped to pioneer. It is irrelevant for the web-enabled future that is being built even as I type. This new world looks more like Firefox: platform agnostic. It doesn't care if people run Windows. Neither should you.&lt;/p&gt;&lt;p&gt;Ref : http://www.cnet.com/8301-13505_1-9892174-16.html&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;     &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4053486063052531067-3551521618509189569?l=ashko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ashko.blogspot.com/feeds/3551521618509189569/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4053486063052531067&amp;postID=3551521618509189569' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/3551521618509189569'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/3551521618509189569'/><link rel='alternate' type='text/html' href='http://ashko.blogspot.com/2008/03/future-is-waiting-for-linux.html' title='The future is waiting for Linux'/><author><name>ÅšhΘκ  Šμ∂απi</name><uri>http://www.blogger.com/profile/17739127081189346556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4053486063052531067.post-5985925592868550291</id><published>2008-03-11T02:42:00.000-07:00</published><updated>2008-03-11T02:44:56.729-07:00</updated><title type='text'>Things You Don't Know but You Can Do With Google</title><content type='html'>&lt;p&gt;Every time I turn around, &lt;a href="http://www.pcworld.com/tags/Google+Inc..html"&gt;Google&lt;/a&gt;'s come up with something new, cool, or innovative. It's no wonder it has Microsoft on the run.&lt;/p&gt;   &lt;h2 class="artSubtitle"&gt;Nifty Google Features&lt;/h2&gt;   &lt;p&gt;    &lt;b&gt;Calculate This:&lt;/b&gt; You can use &lt;a href="http://www.google.com/help/features.html#calculator" target="_blank"&gt;Google Calculator&lt;/a&gt; to crunch numbers and figure out conversions. Try entering 12*12 and see what happens; you can also run more complex equations, like G*(6e24 kg)/(4000 miles)^2). Google Calculator handles conversions of all types, such as 3 ounces in tablespoons, 16 dollars in euros, or 19999GB to MB.&lt;/p&gt;       &lt;b&gt;Find That Number:&lt;/b&gt; You can track FedEx, UPS, and U.S. Postal Service shipments just by sticking the tracking number into Google's search field; do the same with zip and area codes, vehicle IDs, patent numbers, airplane registration numbers, and even UPC codes.&lt;br /&gt;&lt;p&gt;    &lt;b&gt;Make Me Special:&lt;/b&gt; Google has &lt;a href="http://www.google.com/options/specialsearches.html" target="_blank"&gt;special search sites&lt;/a&gt; just for you. There's one for &lt;a href="http://www.google.com/firefox.html" target="_blank"&gt;Firefox users&lt;/a&gt;, another for &lt;a href="http://www.google.com/linux" target="_blank"&gt;Linux users&lt;/a&gt;, and a spot for those of you who can't get enough of &lt;a href="http://www.google.com/microsoft.html" target="_blank"&gt;Microsoft&lt;/a&gt;.&lt;/p&gt;       &lt;b&gt;Dig This:&lt;/b&gt; This is one &lt;a href="http://edition.cnn.com/2008/WORLD/europe/03/03/germany.plane/" target="_blank"&gt;flight I'm glad I missed&lt;/a&gt;.&lt;br /&gt;The &lt;a href="http://www.youtube.com/watch?v=Sw871vN2c18" target="_blank"&gt;other video&lt;/a&gt; had me going until the passengers started jumping out of the plane.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Dig This, Too:&lt;/b&gt; So you need to move a palm tree? Watch this &lt;a href="http://www.yeah-oops.com/?p=5390" target="_blank"&gt;safety video first&lt;/a&gt;. Step one: Hire a professional.&lt;br /&gt;&lt;br /&gt;&lt;h2 class="artSubtitle"&gt;Useful Google Services&lt;/h2&gt;   &lt;p&gt;    &lt;b&gt;Sights on Google:&lt;/b&gt; My buddy Leo F. sent a note asking if I wanted to create a quick Web page, or something fairly complex, with just novice skills. "&lt;a href="http://sites.google.com/overview.html" target="_blank"&gt;Google Sites&lt;/a&gt; is fun to play with," Leo said, "and even makes a useful Web page, too. Of course, it's free."&lt;/p&gt;   &lt;p&gt;    &lt;b&gt;Ongoing Experiments:&lt;/b&gt; If you like poking around with Web tools, you need to explore &lt;a href="http://labs.google.com/" target="_blank"&gt;Google Labs&lt;/a&gt;. For instance, &lt;a href="http://www.google.com/experimental/" target="_blank"&gt;Experimental Search&lt;/a&gt; gives you five new ways to search, each aimed at tightening and focusing on specific results.&lt;/p&gt;   &lt;p&gt;BTW, &lt;a href="http://www.google.com/goog411/" target="_blank"&gt;Goog411&lt;/a&gt; is a Google Labs graduate and a great service. Read about how it's replaced traditional 411 in a &lt;a href="http://blogs.pcworld.com/tipsandtweaks/archives/004120.html" target="_blank"&gt;blog I posted&lt;/a&gt; last year.&lt;/p&gt;   &lt;p&gt;    &lt;b&gt;Alert Me!&lt;/b&gt; Google sends me an e-mail every time it sees a new occurrence of "steve bass PC World," "steve bass PC Annoyances," or keywords about my various hobbies and interests. If you haven't tried &lt;a href="http://www.google.com/alerts" target="_blank"&gt;Google Alerts&lt;/a&gt;, you're missing out on a terrific service.&lt;/p&gt;   &lt;p&gt;    &lt;b&gt;Hello, Google?&lt;/b&gt; If you're using Firefox and find something cool on the Web, you can use &lt;a href="http://www.google.com/tools/firefox/sendtophone/index.html" target="_blank"&gt;Google Send to Phone&lt;/a&gt; to pass the info along to a U.S.-based cell phone. It's a nifty service that's really useful for, say, sending a map to a lost buddy. &lt;a href="http://www.google.com/tools/firefox/sendtophone/faq.html" target="_blank"&gt;Check the FAQ&lt;/a&gt; for details.&lt;/p&gt;       &lt;b&gt;Dig This:&lt;/b&gt; You may not be old enough to remember &lt;a href="http://us.imdb.com/title/tt0075584/" target="_blank"&gt;Soap&lt;/a&gt;, the LOL TV spoof from the seventies. So here's a short video excerpt of "&lt;a href="http://www.youtube.com/watch?v=DwDbd4jQpkA" target="_blank"&gt;Chuck and Bob Mindreading&lt;/a&gt;."&lt;br /&gt;&lt;br /&gt;&lt;h2 class="artSubtitle"&gt;Even More Fun With Google&lt;/h2&gt;   &lt;p&gt;You probably think there's not much more to say about Google. Nope, there's still lots.&lt;/p&gt;   &lt;p&gt;Start by downloading the &lt;a href="http://www.feedsforme.com/google/" target="_blank"&gt;Google Cheat Sheet&lt;/a&gt;, a two-page PDF with lots of valuable Google shortcuts, search and query examples, and services.&lt;/p&gt;   &lt;p&gt;Even better is &lt;a href="http://www.55fun.com/" target="_blank"&gt;55 Ways to Have Fun with Google&lt;/a&gt;, a free e-book with Google trivia, games, and nonsense, enough to kill an afternoon (I did). The more I explored, the better I liked this 228-page book. For instance, I wasted time with &lt;a href="http://www.gamesforthebrain.com/game/imagequiz/" target="_blank"&gt;The Image Quiz&lt;/a&gt;, which has you guess the Google search term for a bunch of images. I also picked up a nifty Google magic trick, learned how to find world records, read IRC chat logs people didn't know were public, and browsed to some very funny Google parody sites, such as &lt;a href="http://www.undergoos.com/" target="_blank"&gt;UnderGoos&lt;/a&gt;, the underwear search site, and &lt;a href="http://www.cthuugle.com/" target="_blank"&gt;Cthuugle&lt;/a&gt;, the Lovecraft search engine.&lt;/p&gt;   &lt;p&gt;    &lt;b&gt;Dig This:&lt;/b&gt; I always get a kick out of the way the folks at Google occasionally transform the logo to match up with the day. Here are some Google &lt;a href="http://blogoscoped.com/archive/2006-01-05-n11.html" target="_blank"&gt;logo rejects&lt;/a&gt;.&lt;/p&gt;   &lt;p&gt;    &lt;b&gt;Dig This, Too:&lt;/b&gt; What's more interesting than a hole in the ground? Not much, you'll think, after you take a gander at these &lt;a href="http://deputy-dog.com/2007/09/09/7-amazing-holes/" target="_blank"&gt;amazing pictures&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4053486063052531067-5985925592868550291?l=ashko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ashko.blogspot.com/feeds/5985925592868550291/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4053486063052531067&amp;postID=5985925592868550291' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/5985925592868550291'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/5985925592868550291'/><link rel='alternate' type='text/html' href='http://ashko.blogspot.com/2008/03/things-you-dont-know-but-you-can-do.html' title='Things You Don&apos;t Know but You Can Do With Google'/><author><name>ÅšhΘκ  Šμ∂απi</name><uri>http://www.blogger.com/profile/17739127081189346556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4053486063052531067.post-8606992723149647531</id><published>2008-02-14T01:52:00.000-08:00</published><updated>2008-02-14T01:53:46.656-08:00</updated><title type='text'>40 Tips for optimizing your php code</title><content type='html'>&lt;ol&gt;&lt;li&gt;If a method can be static, declare it static. Speed improvement is by a factor of 4.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;&lt;em&gt;echo&lt;/em&gt; is faster than &lt;em&gt;print&lt;/em&gt;.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Use echo's multiple parameters instead of string concatenation.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Set the maxvalue for your for-loops before and not in the loop.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Unset your variables to free memory, especially large arrays.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Avoid magic like __get, __set, __autoload&lt;/li&gt;&lt;br /&gt;&lt;li&gt;require_once() is expensive&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Use full paths in includes and requires, less time spent on resolving the OS paths.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;If you need to find out the time when the script started executing, $_SERVER[’REQUEST_TIME’] is preferred to time()&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;See if you can use strncasecmp, strpbrk and stripos instead of regex&lt;/li&gt;&lt;br /&gt;&lt;li&gt;str_replace is faster than preg_replace, but strtr is faster than str_replace by a factor of 4&lt;/li&gt;&lt;br /&gt;&lt;li&gt;If the function, such as string replacement function, accepts both arrays and single characters as arguments, and if your argument list is not too long, consider writing a few redundant replacement statements, passing one character at a time, instead of one line of code that accepts arrays as search and replace arguments.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;It's better to use select statements than multi if, else if, statements.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Error suppression with @ is very slow.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Turn on apache's mod_deflate&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Close your database connections when you're done with them&lt;/li&gt;&lt;br /&gt;&lt;li&gt;$row[’id’] is 7 times faster than $row[id]&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Error messages are expensive&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Do not use functions inside of for loop, such as for ($x=0; $x &lt;&gt;&lt;br /&gt;&lt;li&gt;Incrementing a local variable in a method is the fastest. Nearly the same as calling a local variable in a function.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Incrementing a global variable is 2 times slow than a local var.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Incrementing an object property (eg. $this-&gt;prop++) is 3 times slower than a local variable.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Incrementing an undefined local variable is 9-10 times slower than a pre-initialized one.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Just declaring a global variable without using it in a function also slows things down (by about the same amount as incrementing a local var). PHP probably does a check to see if the global exists.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Method invocation appears to be independent of the number of methods defined in the class because I added 10 more methods to the test class (before and after the test method) with no change in performance.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Methods in derived classes run faster than ones defined in the base class.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;A function call with one parameter and an empty function body takes about the same time as doing 7-8 $localvar++ operations. A similar method call is of course about 15 $localvar++ operations.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Surrounding your string by ' instead of " will make things interpret a little faster since php looks for variables inside "..." but not inside '...'. Of course you can only do this when you don't need to have variables in the string.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;When echoing strings it's faster to separate them by comma instead of dot. Note: This only works with echo, which is a function that can take several strings as arguments. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;A PHP script will be served at least 2-10 times slower than a static HTML page by Apache. Try to use more static HTML pages and fewer scripts.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Your PHP scripts are recompiled every time unless the scripts are cached. Install a PHP caching product to typically increase performance by 25-100% by removing compile times.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Cache as much as possible. Use memcached - memcached is a high-performance memory object caching system intended to speed up dynamic web applications by alleviating database load. OP code caches are useful so that your script does not have to be compiled on every request&lt;/li&gt;&lt;br /&gt;&lt;li&gt;When working with strings and you need to check that the string is either of a certain length you'd understandably would want to use the strlen() function. This function is pretty quick since it's operation does not perform any calculation but merely return the already known length of a string available in the zval structure (internal C struct used to store variables in PHP). However because strlen() is a function it is still somewhat slow because the function call requires several operations such as lowercase &amp;amp; hashtable lookup followed by the execution of said function. In some instance you can improve the speed of your code by using an isset() trick.&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ex.&lt;br /&gt;&lt;br /&gt;if (strlen($foo) &lt; 5) { echo "Foo is too short"; }&lt;br /&gt;&lt;br /&gt;vs.&lt;br /&gt;&lt;br /&gt;if (!isset($foo{5})) { echo "Foo is too short"; }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Calling isset() happens to be faster then strlen() because unlike strlen(), isset() is a language construct and not a function meaning that it's execution does not require function lookups and lowercase. This means you have virtually no overhead on top of the actual code that determines the string's length.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;When incrementing or decrementing the value of the variable $i++ happens to be a tad slower then ++$i. This is something PHP specific and does not apply to other languages, so don't go modifying your C or Java code thinking it'll suddenly become faster, it won't. ++$i happens to be faster in PHP because instead of 4 opcodes used for $i++ you only need 3. Post incrementation actually causes in the creation of a temporary var that is then incremented. While pre-incrementation increases the original value directly. This is one of the optimization that opcode optimized like Zend's PHP optimizer. It is a still a good idea to keep in mind since not all opcode optimizers perform this optimization and there are plenty of ISPs and servers running without an opcode optimizer.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Not everything has to be OOP, often it is too much overhead, each method and object call consumes a lot of memory. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Do not implement every data structure as a class, arrays are useful, too&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Don't split methods too much, think, which code you will really re-use&lt;/li&gt;&lt;br /&gt;&lt;li&gt;You can always split the code of a method later, when needed&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Make use of the countless predefined functions&lt;/li&gt;&lt;br /&gt;&lt;li&gt;If you have very time consuming functions in your code, consider writing them as C extensions&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Profile your code. A profiler shows you, which parts of your code consumes how many time. The Xdebug debugger already contains a profiler. Profiling shows you the bottlenecks in overview&lt;/li&gt;&lt;br /&gt;&lt;li&gt;mod_gzip which is available as an Apache module compresses your data on the fly and can reduce the data to transfer up to 80%&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://phplens.com/lens/php-book/optimizing-debugging-php.php" target="_blank"&gt;Excellent Article&lt;/a&gt; about optimizing php by John Lim&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4053486063052531067-8606992723149647531?l=ashko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ashko.blogspot.com/feeds/8606992723149647531/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4053486063052531067&amp;postID=8606992723149647531' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/8606992723149647531'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/8606992723149647531'/><link rel='alternate' type='text/html' href='http://ashko.blogspot.com/2008/02/40-tips-for-optimizing-your-php-code.html' title='40 Tips for optimizing your php code'/><author><name>ÅšhΘκ  Šμ∂απi</name><uri>http://www.blogger.com/profile/17739127081189346556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4053486063052531067.post-6321107693508063538</id><published>2008-02-13T03:39:00.000-08:00</published><updated>2008-02-13T03:42:00.736-08:00</updated><title type='text'>The Top 40 Free Ajax &amp; Javascript Code for Web Development</title><content type='html'>&lt;div style="padding-top: 45px;"&gt;&lt;p&gt;Ajax has becoming very popular recently, but most designers seem to rehash the same script over and over (you’ll see it in a lot of Wordpress Themes and Plugins). Perhaps we aren’t using ajax technology to its full potential, myself included. The list below is made up of the best &lt;strong&gt;FREE&lt;/strong&gt; scripts available, they are all of the highest quality and more or less easy to configure. Give them a try.&lt;br /&gt;I have tried and tested the top 22, and aim to try the rest, because to be honest they look pretty cool.&lt;/p&gt; &lt;h3&gt;1. Lightbox 2 (&lt;a href="http://www.huddletogether.com/projects/lightbox2/" onclick="javascript:urchinTracker('/outbound/www.huddletogether.com/projects/lightbox2/?ref=http_//www.google.com/reader/view/');"&gt;http://www.huddletogether.com&lt;/a&gt;)&lt;/h3&gt; &lt;p&gt;&lt;img src="http://speckyboy.com/wp-content/uploads/2008/02/1lightbox2.png" alt="Lightbox 2" /&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Description:&lt;/strong&gt;Lightbox is a simple, unobtrusive script used to overlay images on the current page. It’s a snap to setup and works on all modern browsers.&lt;br /&gt;&lt;strong&gt;Technology:&lt;/strong&gt;Lightbox 2 uses the Prototype Framework and Scriptaculous Effects Library.&lt;/p&gt; &lt;h3&gt;2.Timeline (&lt;a href="http://simile.mit.edu/timeline/" onclick="javascript:urchinTracker('/outbound/simile.mit.edu/timeline/?ref=http_//www.google.com/reader/view/');"&gt;http://simile.mit.edu/timeline/&lt;/a&gt;)&lt;/h3&gt; &lt;p&gt;&lt;img src="http://speckyboy.com/wp-content/uploads/2008/02/2timeline.png" alt="Timeline" /&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Description:&lt;/strong&gt;Timeline is a widget for visualizing time-based events. It is like Google Maps for time-based information.&lt;br /&gt;&lt;strong&gt;Technology:&lt;/strong&gt;Ajax and DHTML.&lt;/p&gt; &lt;h3&gt;3. Reflection.js (&lt;a href="http://cow.neondragon.net/stuff/reflection/" onclick="javascript:urchinTracker('/outbound/cow.neondragon.net/stuff/reflection/?ref=http_//www.google.com/reader/view/');"&gt;http://cow.neondragon.net&lt;/a&gt;)&lt;/h3&gt; &lt;p&gt;&lt;img src="http://speckyboy.com/wp-content/uploads/2008/02/3reflectionjs.png" alt="Reflection.js" /&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Description:&lt;/strong&gt;Reflection.js allows you to add reflections to images on your webpages. It works in all the major browsers - Internet Explorer 5.5+, Mozilla Firefox 1.5+, Opera 9+ and Safari. On older browsers, it’ll degrade and your visitors won’t notice a thing. Best of all, it’s under 5KB.&lt;br /&gt;&lt;strong&gt;Technology:&lt;/strong&gt;Javascript.&lt;/p&gt; &lt;h3&gt;4. Pie &amp;amp; Donut Chart  (&lt;a href="http://www.amcharts.com/pie/" onclick="javascript:urchinTracker('/outbound/www.amcharts.com/pie/?ref=http_//www.google.com/reader/view/');"&gt;http://www.amcharts.com/pie/&lt;/a&gt;)&lt;/h3&gt; &lt;p&gt;&lt;img src="http://speckyboy.com/wp-content/uploads/2008/02/4piedonuts.png" alt="Pie &amp;amp; Donut Chart" /&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Description:&lt;/strong&gt;Pie &amp;amp; Donut (doughnut) is a very universal and fully configurable Flash chart. Using it, you can easily have good-looking, animated pies or donuts on your website. You can also use it for creating elaborate navigation menus.&lt;br /&gt;&lt;strong&gt;Technology:&lt;/strong&gt;Flash.&lt;/p&gt; &lt;h3&gt;5. Plotr (&lt;a href="http://solutoire.com/plotr/" onclick="javascript:urchinTracker('/outbound/solutoire.com/plotr/?ref=http_//www.google.com/reader/view/');"&gt;http://solutoire.com/plotr/&lt;/a&gt;)&lt;/h3&gt; &lt;p&gt;&lt;img src="http://speckyboy.com/wp-content/uploads/2008/02/5plotr.png" alt="Plotr" /&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Description:&lt;/strong&gt;Plotr is a lightweight chart creating framework. It’s released under the BSD license.&lt;br /&gt;&lt;strong&gt;Technology:&lt;/strong&gt;&lt;a href="http://www.mochikit.com/" onclick="javascript:urchinTracker('/outbound/www.mochikit.com/?ref=http_//www.google.com/reader/view/');"&gt;Mochikit&lt;/a&gt;.&lt;/p&gt; &lt;h3&gt;6. Ajax Instant Messenger (&lt;a href="http://www.ajaxim.com/" onclick="javascript:urchinTracker('/outbound/www.ajaxim.com/?ref=http_//www.google.com/reader/view/');"&gt;http://www.ajaxim.com/&lt;/a&gt;)&lt;/h3&gt; &lt;p&gt;&lt;img src="http://speckyboy.com/wp-content/uploads/2008/02/6ajaxim.png" alt="Ajax Instant Messenger" /&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Description:&lt;/strong&gt;Ajax im is a browser-based instant messaging client. It can be used in conjunction with community, intranet, and social websites. No refreshing of the page is ever needed for this “web application” to work.&lt;br /&gt;&lt;strong&gt;Technology:&lt;/strong&gt;Ajax and Javascript.&lt;/p&gt; &lt;h3&gt;7. Starbox (&lt;a href="http://www.nickstakenburg.com/projects/starbox/" onclick="javascript:urchinTracker('/outbound/www.nickstakenburg.com/projects/starbox/?ref=http_//www.google.com/reader/view/');"&gt;http://www.nickstakenburg.com/projects/starbox/&lt;/a&gt;)&lt;/h3&gt; &lt;p&gt;&lt;img src="http://speckyboy.com/wp-content/uploads/2008/02/7starbox.png" alt="Starbox" /&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Description:&lt;/strong&gt;Starbox allows you to easily create all kinds of rating boxes using just one PNG image.&lt;br /&gt;&lt;strong&gt;Technology:&lt;/strong&gt;&lt;a href="http://www.prototypejs.org/" onclick="javascript:urchinTracker('/outbound/www.prototypejs.org/?ref=http_//www.google.com/reader/view/');"&gt;Prototype&lt;/a&gt; javascript framework.&lt;/p&gt; &lt;h3&gt;8. Ajax Tabs Content (&lt;a href="http://www.dynamicdrive.com/dynamicindex17/ajaxtabscontent/" onclick="javascript:urchinTracker('/outbound/www.dynamicdrive.com/dynamicindex17/ajaxtabscontent/?ref=http_//www.google.com/reader/view/');"&gt;http://www.dynamicdrive.com/&lt;/a&gt;)&lt;/h3&gt; &lt;p&gt;&lt;img src="http://speckyboy.com/wp-content/uploads/2008/02/8ajaxtabscontent.png" alt="Ajax Tabs Content" /&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Description&lt;/strong&gt;: This is a versatile script that lets you display content pulled from external files inside a DIV and organized via CSS tabs. A fully unobtrusive, CSS and HTML based script.&lt;br /&gt;&lt;strong&gt;Technology:&lt;/strong&gt;Ajax.&lt;/p&gt; &lt;h3&gt;9. Drag and Drop Shopping (&lt;a href="http://demo.script.aculo.us/shop" onclick="javascript:urchinTracker('/outbound/demo.script.aculo.us/shop?ref=http_//www.google.com/reader/view/');"&gt;http://demo.script.aculo.us/shop&lt;/a&gt;)&lt;/h3&gt; &lt;p&gt;&lt;img src="http://speckyboy.com/wp-content/uploads/2008/02/9shopping.png" alt=" Drag and Drop Shopping" /&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Description&lt;/strong&gt;: An excellent drag and drop shopping cart.&lt;br /&gt;&lt;strong&gt;Technology:&lt;/strong&gt;Ajax.&lt;/p&gt; &lt;h3&gt;10. Progress Bar (&lt;a href="http://www.webappers.com/progressBar/" onclick="javascript:urchinTracker('/outbound/www.webappers.com/progressBar/?ref=http_//www.google.com/reader/view/');"&gt;http://www.webappers.com/progressBar/&lt;/a&gt;)&lt;/h3&gt; &lt;p&gt;&lt;img src="http://speckyboy.com/wp-content/uploads/2008/02/10progressbar.png" alt=" Progress Bar" /&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Description&lt;/strong&gt;: A very stylish progress bar.&lt;br /&gt;&lt;strong&gt;Technology:&lt;/strong&gt;Ajax.&lt;/p&gt; &lt;h3&gt;11. Thick Box (&lt;a href="http://jquery.com/demo/thickbox/" onclick="javascript:urchinTracker('/outbound/jquery.com/demo/thickbox/?ref=http_//www.google.com/reader/view/');"&gt;http://jquery.com/demo/thickbox/&lt;/a&gt;)&lt;/h3&gt; &lt;p&gt;&lt;img src="http://speckyboy.com/wp-content/uploads/2008/02/11thickbox.png" alt="Thick Box" /&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Description&lt;/strong&gt;: ThickBox is a webpage UI dialog widget written in JavaScript on top of the jQuery library. Its function is to show a single image, multiple images, inline content, iframed content, or content served through AJAX in a hybrid modal.&lt;br /&gt;&lt;strong&gt;Technology:&lt;/strong&gt;Javascript.&lt;/p&gt; &lt;h3&gt;12. Create Flickr Like Fields (&lt;a href="http://dbachrach.com/blog/2007/01/07/create-flickr-like-editing-fields-using-ajax-css/" onclick="javascript:urchinTracker('/outbound/dbachrach.com/blog/2007/01/07/create-flickr-like-editing-fields-using-ajax-css/?ref=http_//www.google.com/reader/view/');"&gt;http://dbachrach.com&lt;/a&gt;)&lt;/h3&gt; &lt;p&gt;&lt;img src="http://speckyboy.com/wp-content/uploads/2008/02/12createflickr.png" alt="Create Flickr Like Fields" /&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Description&lt;/strong&gt;: The name says it all. &lt;strong&gt;Technology:&lt;/strong&gt;Ajax.&lt;/p&gt; &lt;h3&gt;13. jTip – A jQuery Tool Tip (&lt;a href="http://codylindley.com/Javascript/264/jtip-a-jquery-tool-tip" onclick="javascript:urchinTracker('/outbound/codylindley.com/Javascript/264/jtip-a-jquery-tool-tip?ref=http_//www.google.com/reader/view/');"&gt;http://codylindley.com&lt;/a&gt;)&lt;/h3&gt; &lt;p&gt;&lt;img src="http://speckyboy.com/wp-content/uploads/2008/02/13tooltip.png" alt=" jTip – A jQuery Tool Tip" /&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Description&lt;/strong&gt;: jTip, not unlike Thickbox, pulls data from the server using a hidden http request. It’s nothing that fancy…&lt;br /&gt;&lt;strong&gt;Technology:&lt;/strong&gt;Ajax.&lt;/p&gt; &lt;h3&gt;14.Accordian (&lt;a href="http://demos.mootools.net/Accordion" onclick="javascript:urchinTracker('/outbound/demos.mootools.net/Accordion?ref=http_//www.google.com/reader/view/');"&gt;http://demos.mootools.net/Accordion&lt;/a&gt;)&lt;/h3&gt; &lt;p&gt;&lt;img src="http://speckyboy.com/wp-content/uploads/2008/02/14accordian.png" alt=" Accordian" /&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Description&lt;/strong&gt;: A smooth and stylish ‘accordian’ effect menu.&lt;br /&gt;&lt;strong&gt;Technology:&lt;/strong&gt;Moo Tools Javascript Framework.&lt;/p&gt; &lt;h3&gt;15. Unobtrusive AJAX Star Rating Bar (&lt;a href="http://www.masugadesign.com/the-lab/scripts/unobtrusive-ajax-star-rating-bar/" onclick="javascript:urchinTracker('/outbound/www.masugadesign.com/the-lab/scripts/unobtrusive-ajax-star-rating-bar/?ref=http_//www.google.com/reader/view/');"&gt;http://www.masugadesign.com&lt;/a&gt;)&lt;/h3&gt; &lt;p&gt;&lt;img src="http://speckyboy.com/wp-content/uploads/2008/02/15unajaxstarrating.png" alt=" Unobtrusive AJAX Star Rating Bar" /&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Description&lt;/strong&gt;:This is a rating bar script done with PHP and mySQL that allows users to rate things like can be done on Netflix or Amazon, all web 2.0-like with no page refresh.&lt;br /&gt;&lt;strong&gt;Technology:&lt;/strong&gt;PHP.&lt;/p&gt; &lt;h3&gt;And the rest…&lt;/h3&gt; &lt;p&gt;&lt;strong&gt;16.&lt;/strong&gt; &lt;a href="http://www.liquidx.net/plotkit/" onclick="javascript:urchinTracker('/outbound/www.liquidx.net/plotkit/?ref=http_//www.google.com/reader/view/');"&gt;Plotkit&lt;/a&gt; (Javascript Chart Plotting Script).&lt;br /&gt;&lt;strong&gt;17.&lt;/strong&gt; &lt;a href="http://www.amcharts.com/pie/" onclick="javascript:urchinTracker('/outbound/www.amcharts.com/pie/?ref=http_//www.google.com/reader/view/');"&gt;Pie&lt;/a&gt; (Create ajax pie charts).&lt;br /&gt;&lt;strong&gt;18.&lt;/strong&gt; &lt;a href="http://www.nickstakenburg.com/projects/prototip" onclick="javascript:urchinTracker('/outbound/www.nickstakenburg.com/projects/prototip?ref=http_//www.google.com/reader/view/');"&gt;Prototip&lt;/a&gt; (Prototip allows you to easily create both simple and complex tooltips using the Prototype javascript framework).&lt;br /&gt;&lt;strong&gt;19.&lt;/strong&gt; &lt;a href="http://www.ajaxdaddy.com/ajax-inline-text-edit.html" onclick="javascript:urchinTracker('/outbound/www.ajaxdaddy.com/ajax-inline-text-edit.html?ref=http_//www.google.com/reader/view/');"&gt;Ajax Inline Text Edit&lt;/a&gt; (This is a very simple script which only works with span tags).&lt;br /&gt;&lt;strong&gt;20.&lt;/strong&gt; &lt;a href="http://www.ajaxlessons.com/2006/02/18/ajax-workshop-2-building-tabbed-content/" onclick="javascript:urchinTracker('/outbound/www.ajaxlessons.com/2006/02/18/ajax-workshop-2-building-tabbed-content/?ref=http_//www.google.com/reader/view/');"&gt;Tabbed Content Browser&lt;/a&gt; (An Ajax powered tabbed content browser).&lt;br /&gt;&lt;strong&gt;21.&lt;/strong&gt; &lt;a href="http://www.frequency-decoder.com/2006/09/16/unobtrusive-table-sort-script-revisited" onclick="javascript:urchinTracker('/outbound/www.frequency-decoder.com/2006/09/16/unobtrusive-table-sort-script-revisited?ref=http_//www.google.com/reader/view/');"&gt;Table Sorting Script&lt;/a&gt; (An unobtrusive ajax Table Sorting Script).&lt;br /&gt;&lt;strong&gt;22.&lt;/strong&gt; &lt;a href="http://www.nofunc.com/Color_Picker_%28Sphere%29/" onclick="javascript:urchinTracker('/outbound/www.nofunc.com/Color_Picker_Sphere_/?ref=http_//www.google.com/reader/view/');"&gt;Color Sphere&lt;/a&gt; (DHTML Color Picker).&lt;br /&gt;&lt;strong&gt;23.&lt;/strong&gt; &lt;a href="http://www.netzgesta.de/mapper/" onclick="javascript:urchinTracker('/outbound/www.netzgesta.de/mapper/?ref=http_//www.google.com/reader/view/');"&gt;Mapper.js&lt;/a&gt; (Thisallows you to add automatic area highlighting to image maps on your webpages (inc. export to SVG)).&lt;br /&gt;&lt;strong&gt;24.&lt;/strong&gt; &lt;a href="http://www.livevalidation.com/" onclick="javascript:urchinTracker('/outbound/www.livevalidation.com/?ref=http_//www.google.com/reader/view/');"&gt;Live Validation&lt;/a&gt; (LiveValidation is a small open source javascript library built for giving users real-time validation information).&lt;br /&gt;&lt;strong&gt;25.&lt;/strong&gt; &lt;a href="http://www.dhtmlgoodies.com/index.html?showDownload=true&amp;amp;whichScript=dragable-content" onclick="javascript:urchinTracker('/outbound/www.dhtmlgoodies.com/index.html?showDownload=true_038_whichScript=dragable-content?ref=http_//www.google.com/reader/view/');"&gt;Draggable Content&lt;/a&gt; (Javascript drag and drop).&lt;br /&gt;&lt;strong&gt;26.&lt;/strong&gt; &lt;a href="http://billwscott.com/carousel/" onclick="javascript:urchinTracker('/outbound/billwscott.com/carousel/?ref=http_//www.google.com/reader/view/');"&gt;Carousel&lt;/a&gt; (A Carousel Effect Image gallery).&lt;br /&gt;&lt;strong&gt;27.&lt;/strong&gt; &lt;a href="http://www.phatfusion.net/multibox" onclick="javascript:urchinTracker('/outbound/www.phatfusion.net/multibox?ref=http_//www.google.com/reader/view/');"&gt;Multibox&lt;/a&gt; (A javascript lightbox that supports images, flash, video, mp3s…).&lt;br /&gt;&lt;strong&gt;28.&lt;/strong&gt; &lt;a href="http://smoothgallery.jondesign.net/" onclick="javascript:urchinTracker('/outbound/smoothgallery.jondesign.net/?ref=http_//www.google.com/reader/view/');"&gt;Smooth Gallery&lt;/a&gt; (Using mootools v1.11, this javascript gallery and slideshow system allows you to have simple and smooth (cross-fading…) image galleries, slideshows, showcases and other cool stuff on your website…).&lt;br /&gt;&lt;strong&gt;29.&lt;/strong&gt; &lt;a href="http://www.formstylegenerator.com/" onclick="javascript:urchinTracker('/outbound/www.formstylegenerator.com/?ref=http_//www.google.com/reader/view/');"&gt;Form Style Generator&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;30.&lt;/strong&gt; &lt;a href="http://www.ajaxdaddy.com/mootools-autocomplete.html" onclick="javascript:urchinTracker('/outbound/www.ajaxdaddy.com/mootools-autocomplete.html?ref=http_//www.google.com/reader/view/');"&gt;Auto Complete&lt;/a&gt; (A MooTools Autocompleter widget that creates a unobtrusive and customisable suggestion box for input fields from variable data sources).&lt;br /&gt;&lt;strong&gt;31.&lt;/strong&gt; &lt;a href="http://www.activecollab.com/" onclick="javascript:urchinTracker('/outbound/www.activecollab.com/?ref=http_//www.google.com/reader/view/');"&gt;Active Collab&lt;/a&gt; (An open Source Project Management Script).&lt;br /&gt;&lt;strong&gt;32.&lt;/strong&gt; &lt;a href="http://orangoo.com/labs/GreyBox/" onclick="javascript:urchinTracker('/outbound/orangoo.com/labs/GreyBox/?ref=http_//www.google.com/reader/view/');"&gt;Greybox&lt;/a&gt; (A small unobtusive pop up script).&lt;br /&gt;&lt;strong&gt;33.&lt;/strong&gt; &lt;a href="http://www.dhtmlgoodies.com/index.html?whichScript=ajax-poller" onclick="javascript:urchinTracker('/outbound/www.dhtmlgoodies.com/index.html?whichScript=ajax-poller?ref=http_//www.google.com/reader/view/');"&gt;Ajax Poller&lt;/a&gt;.&lt;br /&gt;&lt;strong&gt;34.&lt;/strong&gt; &lt;a href="http://www.millstream.com.au/view/code/tablekit/" onclick="javascript:urchinTracker('/outbound/www.millstream.com.au/view/code/tablekit/?ref=http_//www.google.com/reader/view/');"&gt;Tablekit&lt;/a&gt; (TableKit is a collection of HTML table enhancements using the Prototype framework).&lt;br /&gt;&lt;strong&gt;35.&lt;/strong&gt; &lt;a href="http://www.ajaxdaddy.com/demo-jquery-shoutbox.html" onclick="javascript:urchinTracker('/outbound/www.ajaxdaddy.com/demo-jquery-shoutbox.html?ref=http_//www.google.com/reader/view/');"&gt;J-query Shoutbox&lt;/a&gt; (This script is based on jQuery library and Form plugin.&lt;br /&gt;It’s very easy to setup it, also an archive is available for download so you can play with the files on your localhost).&lt;br /&gt;&lt;strong&gt;36.&lt;/strong&gt; &lt;a href="http://www.dynamicdrive.com/dynamicindex17/rsstickerajax/index.htm" onclick="javascript:urchinTracker('/outbound/www.dynamicdrive.com/dynamicindex17/rsstickerajax/index.htm?ref=http_//www.google.com/reader/view/');"&gt;Ajax RSS Ticker&lt;/a&gt;.&lt;br /&gt;&lt;strong&gt;37.&lt;/strong&gt; &lt;a href="http://vikjavev.no/highslide/" onclick="javascript:urchinTracker('/outbound/vikjavev.no/highslide/?ref=http_//www.google.com/reader/view/');"&gt;Highslide&lt;/a&gt; (It streamlines the use of thumbnail images and HTML popups on web pages).&lt;br /&gt;&lt;strong&gt;38.&lt;/strong&gt; &lt;a href="http://www.ajaxdaddy.com/demo-slideshow-viewer.html" onclick="javascript:urchinTracker('/outbound/www.ajaxdaddy.com/demo-slideshow-viewer.html?ref=http_//www.google.com/reader/view/');"&gt;Slideshow Viewer&lt;/a&gt; (Stylish gallery script with a ‘lightbox’ effect).&lt;br /&gt;&lt;strong&gt;39.&lt;/strong&gt; &lt;a href="http://greghoustondesign.com/demos/mocha/" onclick="javascript:urchinTracker('/outbound/greghoustondesign.com/demos/mocha/?ref=http_//www.google.com/reader/view/');"&gt;Mocha&lt;/a&gt; (Mocha is a web applications user interface library built on the Mootools javascript framework. The Mocha GUI components are made with canvas tag graphics).&lt;br /&gt;&lt;strong&gt;40.&lt;/strong&gt; &lt;a href="http://deheus.net/petrik/blog/comments/25/" onclick="javascript:urchinTracker('/outbound/deheus.net/petrik/blog/comments/25/?ref=http_//www.google.com/reader/view/');"&gt;Loading XML into a page with xmlHttpRequest&lt;/a&gt;.&lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4053486063052531067-6321107693508063538?l=ashko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ashko.blogspot.com/feeds/6321107693508063538/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4053486063052531067&amp;postID=6321107693508063538' title='75 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/6321107693508063538'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/6321107693508063538'/><link rel='alternate' type='text/html' href='http://ashko.blogspot.com/2008/02/top-40-free-ajax-javascript-code-for.html' title='The Top 40 Free Ajax &amp; Javascript Code for Web Development'/><author><name>ÅšhΘκ  Šμ∂απi</name><uri>http://www.blogger.com/profile/17739127081189346556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>75</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4053486063052531067.post-2350039548727395786</id><published>2008-02-07T05:30:00.000-08:00</published><updated>2008-02-07T05:33:23.524-08:00</updated><title type='text'>40 sings if you are a lousy PHP programmer</title><content type='html'>&lt;p&gt;This is something I prefer to call my "programming list of shame". Although having a formal university education with courses on software engineering, enterprise software architecture &amp;amp; database design I have been guilty of every single one of those things at one time or another. This is completely subjective &amp;amp; &lt;a href="http://www.eclipse.org/" target="_blank"&gt;Eclipse&lt;/a&gt; oriented&lt;/p&gt;&lt;br /&gt;&lt;p&gt;You are a lousy PHP programmer if you&lt;/p&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;don't comment your code properly with something like &lt;a href="http://www.phpdoc.org/"&gt;phpDoc&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;don't see the need and/or benefits of a good programming IDE like &lt;a href="http://www.zend.com/de/"&gt;Zend Studio&lt;/a&gt; or &lt;a href="http://www.zend.com/en/community/pdt" target="_blank"&gt;Eclipse PDT&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;have never used some form of version control like &lt;a href="http://subclipse.tigris.org/" target="_blank"&gt;Subclipse&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;don't adopt some &lt;a href="http://pear.php.net/manual/en/standards.php" target="_blank"&gt;coding &amp;amp; naming standards&lt;/a&gt; and general conventions and stick to to them at least throughout the project&lt;/li&gt;&lt;br /&gt;&lt;li&gt;don't use a consistent methodology&lt;/li&gt;&lt;br /&gt;&lt;li&gt;don't escape and/or validate properly input or sql queries&lt;/li&gt;&lt;br /&gt;&lt;li&gt;don't plan your application thoroughly before starting to code&lt;/li&gt;&lt;br /&gt;&lt;li&gt;don't use test-driven development&lt;/li&gt;&lt;br /&gt;&lt;li&gt;don't program &amp;amp; test with error reporting on&lt;/li&gt;&lt;br /&gt;&lt;li&gt;don't see the benefits of a debugger&lt;/li&gt;&lt;br /&gt;&lt;li&gt;don't refactor your code&lt;/li&gt;&lt;br /&gt;&lt;li&gt;don't keep the different layers seperated using something like &lt;a href="http://toys.lerdorf.com/archives/38-The-no-framework-PHP-MVC-framework.html" target="_blank"&gt;MVC&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;don't know what these stand for: &lt;a href="http://en.wikipedia.org/wiki/KISS_principle" target="_blank"&gt;KISS&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Don%27t_repeat_yourself" target="_blank"&gt;DRY&lt;/a&gt;, &lt;a href="http://toys.lerdorf.com/archives/38-The-no-framework-PHP-MVC-framework.html" target="_blank"&gt;MVC&lt;/a&gt;, &lt;a href="http://www.php.net/manual/en/language.oop5.php" target="_blank"&gt;OOP&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Representational_State_Transfer" target="_blank"&gt;REST&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt; don't return content but echo or print it from your functions or classes&lt;/li&gt;&lt;br /&gt;&lt;li&gt;have never seen the advantage of unit tests or testing in general&lt;/li&gt;&lt;br /&gt;&lt;li&gt; return HTML, not data, strings, or objects.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;hard code messages and configuration parameters&lt;/li&gt;&lt;br /&gt;&lt;li&gt;don't optimize your sql queries&lt;/li&gt;&lt;br /&gt;&lt;li&gt;don't use __autoload&lt;/li&gt;&lt;br /&gt;&lt;li&gt; don't allow intelligent error handling&lt;/li&gt;&lt;br /&gt;&lt;li&gt;use $_GET instead of $_POST for any destructive actions&lt;/li&gt;&lt;br /&gt;&lt;li&gt;don't know how to use regular expressions&lt;/li&gt;&lt;br /&gt;&lt;li&gt;you've never heard of sql injection or cross-site scripting&lt;/li&gt;&lt;br /&gt;&lt;li&gt; don't allow simple configuration, can be parameters passed to a class’s constructor, set/get methods called later, or constants defined at a runtime.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;don't understand the benefits and limitations of Object Oriented Programming&lt;/li&gt;&lt;br /&gt;&lt;li&gt;misuse OOP / everything you write , no matter how small is OOP&lt;/li&gt;&lt;br /&gt;&lt;li&gt;you think reusable software equals/requires your code to be OOP&lt;/li&gt;&lt;br /&gt;&lt;li&gt; don't choose intelligent defaults&lt;/li&gt;&lt;br /&gt;&lt;li&gt;don't have one single configuration file&lt;/li&gt;&lt;br /&gt;&lt;li&gt;don't want the file contents to be seen, but give it a .inc extension instead of .php&lt;/li&gt;&lt;br /&gt;&lt;li&gt;don't use a database abstraction layer&lt;/li&gt;&lt;br /&gt;&lt;li&gt;don't keep it DRY, Don't repeat yourself. If you have to copy and paste or duplicate something your design may be off.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;don't make a function/class/method do just one thing and don't make them interact.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;don't try to take advantage of OOP specific features like abstract/interface classes, inheritage polymorphism &amp;amp; access modifiers.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;don't optimize your application design with established &lt;a href="http://www.sitepoint.com/forums/showthread.php?t=248721" target="_blank"&gt;design patterns&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt; don't allow your user to define a base directory if you have multiple files and/or directories&lt;/li&gt;&lt;br /&gt;&lt;li&gt;pollute the global namespace, one option is to prefix the functions in your library with a common string&lt;/li&gt;&lt;br /&gt;&lt;li&gt; don't allow a table prefix when using database tables&lt;/li&gt;&lt;br /&gt;&lt;li&gt;use a separate &lt;a href="http://www.sitepoint.com/forums/showthread.php?t=67849" target="_blank"&gt;template engine&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;don't take a look at established &lt;a href="http://www.phpit.net/article/ten-different-php-frameworks/" target="_blank"&gt;php frameworks&lt;/a&gt; for inspiration, most of them have advanced web dev concepts and good code&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4053486063052531067-2350039548727395786?l=ashko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ashko.blogspot.com/feeds/2350039548727395786/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4053486063052531067&amp;postID=2350039548727395786' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/2350039548727395786'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/2350039548727395786'/><link rel='alternate' type='text/html' href='http://ashko.blogspot.com/2008/02/40-sings-if-you-are-lousy-php.html' title='40 sings if you are a lousy PHP programmer'/><author><name>ÅšhΘκ  Šμ∂απi</name><uri>http://www.blogger.com/profile/17739127081189346556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4053486063052531067.post-7583675985114100227</id><published>2007-12-06T07:38:00.001-08:00</published><updated>2007-12-06T07:38:54.898-08:00</updated><title type='text'>The top 10 computer security threats for 2008</title><content type='html'>&lt;p&gt;&lt;span style="font-size:6;"&gt;T&lt;/span&gt;he 2008 Olympics is likely to spur a flurry of hacker activity, says Websense Inc, which specializes in web filtering and security software, releasing the top ten computer security threats for 2008.&lt;/p&gt;&lt;p&gt;"&lt;a name="OLE_LINK3"&gt;&lt;/a&gt;&lt;a name="OLE_LINK9"&gt;Looking at the current attack trends, cyber criminal techniques are evolving quickly and efficiently to not only evade detection, but to steal data and manipulate trusted content such as Web sites and &lt;/a&gt;applications," said Dan Hubbard, vice president of security research, Websense, in a media release. "It's critical that organizations and individuals recognize that attackers are changing techniques and launching targeted attacks."&lt;/p&gt;&lt;p&gt;The top 10 security threats are:&lt;/p&gt;&lt;p&gt;&lt;b&gt;1. Olympics: New cyber attacks, phishing and fraud&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Event-based attacks and scams are popular, and with the whole world watching, the 2008 Olympics may fuel a surge in cyberattacks, says Websense. As the Olympic torch burns, Websense researchers predict the possibility of large scale denial-of-service attacks on Beijing Olympic-related sites as political statements and fraud attempts through email and the Web surrounding the Olympics. Additionally, Websense predicts compromises of popular Olympic news or other sports sites -- attacks designed to install malicious code on end-users' machines and steal personal or confidential business information. &lt;/p&gt;&lt;p&gt;&lt;b&gt;2. Malicious spam invades blogs, search engines, forums and Web sites&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Websense predicts that hackers will increasingly use Web spam to post URLs to malicious sites within forums, blogs, in the commentary or 'talk-back' sections of news sites and on compromised Web sites. This activity not only drives traffic to the infected Web sites but also assists in the purveyor's site sitting higher on search engine rankings, increasing the risk that users will visit the site&lt;a name="OLE_LINK2"&gt;&lt;/a&gt;&lt;a name="OLE_LINK1"&gt;&lt;/a&gt;&lt;a name="OLE_LINK5"&gt;&lt;/a&gt;. &lt;/p&gt;&lt;p&gt;&lt;b&gt;3. Attackers use Web's 'weakest links' to launch attacks&lt;/b&gt;&lt;/p&gt;&lt;p&gt;The Web is an entanglement of links and content. The advent of Web 2.0 additions such as Google Adsense, mash-ups, widgets, and social networks along with the massive amounts of Web advertisements linked to Web pages have increased the likelihood of 'weak links' -- or Web sites and content that are vulnerable to compromises.&lt;a name="OLE_LINK23"&gt;&lt;/a&gt;&lt;a name="OLE_LINK22"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Websense predicts that attackers will increasingly exploit the weakest links within the Web infrastructure in order to target the greatest number of Internet users. Most vulnerable to these attacks are search engines and large user networks such as MySpace, Facebook or other social networking sites. &lt;/p&gt;&lt;p&gt;&lt;b&gt;4. Number of compromised Web sites will surpass number of created malicious sites&lt;/b&gt;&lt;/p&gt;&lt;p&gt;The Web as an attack vector has been steadily increasing for the last five years and now attackers are using compromised sites as their launching platforms -- even more than their own created sites. Compromising sites -- particularly, sites well-visited by end-users, such as the Dolphin Stadium attack that occurred a few days prior to the 2007 Super Bowl XLI in Miami, provides attackers with built-in Web traffic and minimizes the need for lures through email, instant messaging or Web posts.&lt;/p&gt;&lt;p&gt;&lt;b&gt;5. Cross-platform Web attacks: Mac, iPhone popularity spurs increase&lt;/b&gt;&lt;/p&gt;&lt;p&gt;With the brand popularity and growing use of iPhones and Macintosh computers, Websense researchers predict attackers will increasingly launch cross-platform Web attacks that detect the operating system in use and serve up code specifically targeting that operating system instead of attacks based on just the Web browser. Operating systems that are targeted now include Mac OSX, iPhone, and Windows. &lt;/p&gt;&lt;p&gt;&lt;b&gt;6. Rise in targeted Web 2.0 special interest attacks: Hackers targeting specific groups of people based on interests and profile&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Web 2.0 has spawned a proliferation of Web users that visit chat rooms, social networking sites, and special interest Web sites such as travel sites, automotive, and more. These sites provide attackers with potential victims that fall within a certain age group, wealth bracket, or people with particular purchasing habits. In 2008, Websense researchers predict targeted attacks will rise toward specific social networking or special interest sites that have a higher probability of delivering a payoff. &lt;/p&gt;&lt;p&gt;&lt;b&gt;7. Morphing JavaScript to evade anti-virus scanners&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Hackers are upping the ante with evasion techniques that use poly-morphic JavaScript (Polyscript) -- which means that a uniquely-coded Web page is served up for each visit by a user to a malicious Web site. By changing the code every visit, signature-based security scanning technologies have difficulty detecting Web pages as malicious and hackers can extend the length of time their malicious site evades detection. &lt;/p&gt;&lt;p&gt;&lt;b&gt;8. Data concealment methods increase in sophistication&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Websense predicts an increased use of crypto-virology and sophistication in data concealment including the use of stenography, embedding data within standard protocols, and potentially within media files. Toolkits widely available on the Web will be used to embed proprietary information and steal data. &lt;/p&gt;&lt;p&gt;&lt;b&gt;9. Global law enforcement will crack down on key hacker groups and individuals&lt;/b&gt;&lt;/p&gt;&lt;p&gt;In 2007, large-scale Internet-based attacks garnered the attention of law enforcement officials around the world. Websense anticipates that through the global cooperation of enforcement agencies, in 2008 the biggest crackdown and arrests of key members of a hacker group will occur.&lt;/p&gt;&lt;p&gt;&lt;b&gt;10. Vishing and voice spam will combine and increase&lt;/b&gt;&lt;/p&gt;&lt;p&gt;The vast cell phone user population has grown into a lucrative market to exploit with spamming and "vishing" for financial gain. To date, researchers have seen an increased number of vishing attacks but not a lot of spam -- or pro-active automated calling. In 2008 Websense predicts that 'vishing,' or the practice of using social engineering and Voice over IP (VoIP) to gain personal and financial information, and voice spam will combine and increase -- users will receive automated voice calls on LAN lines with voice spam to lure them to input their credentials through the telephone.&lt;/p&gt;  &lt;!-- wml_version_ends --&gt;  &lt;!--printer_version--&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4053486063052531067-7583675985114100227?l=ashko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ashko.blogspot.com/feeds/7583675985114100227/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4053486063052531067&amp;postID=7583675985114100227' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/7583675985114100227'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/7583675985114100227'/><link rel='alternate' type='text/html' href='http://ashko.blogspot.com/2007/12/top-10-computer-security-threats-for.html' title='The top 10 computer security threats for 2008'/><author><name>ÅšhΘκ  Šμ∂απi</name><uri>http://www.blogger.com/profile/17739127081189346556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4053486063052531067.post-6521377419916085310</id><published>2007-11-30T04:56:00.000-08:00</published><updated>2007-11-30T05:01:25.675-08:00</updated><title type='text'>How To Increase Traffic to Your Blog / Best Ways To Increase Traffic to Your Blog</title><content type='html'>&lt;p&gt;One important topic for blog owners is how to increase traffic, which is easier than it seems, once you know how. In this article, we cover 7 specific methods of increasing traffic to your blog.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Tip #1: Sign up for pinging services&lt;br /&gt;&lt;/strong&gt;It seems pretty obvious, but many bloggers, even those who are more experienced, don’t sign up for pinging services. If you’re new to blogging, pinging means that when your blog is updated, a “ping” is sent out by the service to let pinging sites know that your blog has been updated. People who are visiting sites with pinging services will then see your blog flash across the side of the screen as “newly updated.” Pinging services include &lt;a href="http://dir.yahoo.com/news_and_media/blogs/"&gt;Yahoo’s blogs&lt;/a&gt;, &lt;a href="http://weblogs.com/"&gt;weblogs.com&lt;/a&gt;, &lt;a href="http://blogsearch.google.com/"&gt;Google Blog search&lt;/a&gt; and &lt;a href="http://www.zingfast.com/"&gt;ZingFast&lt;/a&gt;. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Tip #2: Sign up for Technorati&lt;/strong&gt;&lt;br /&gt; If you go to &lt;a href="http://technorati.com/"&gt;technorati.com&lt;/a&gt;, you’ll see an option on the left side of the screen to “Claim Your Blog.” Doing so allows you to get updated link counts, add your photo or branding to Technorati and see your Technorati link. Having your blog claimed on Technorati helps to increase traffic because the millions of people who go to that site will have a chance to see your blog listed there.&lt;/p&gt;   &lt;p&gt;&lt;strong&gt;Tip #3: Sign up for FeedBurner, an RSS service&lt;/strong&gt;&lt;br /&gt;  &lt;a href="http://www.feedburner.com/fb/a/home"&gt;FeedBurner&lt;/a&gt; basically helps you to promote your blog’s content, and to build and measure your audience. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Tip #4: Bookmark your blogs at places like del.icio.us&lt;/strong&gt;&lt;br /&gt;You can set up an account and profile at &lt;a href="http://del.icio.us/"&gt;del.icio.us&lt;/a&gt;. From there, you can add links to your blog, as well as excerpts. When a user visits your profile on del.icio.us, they will see a link to your blog and excerpts. There are other social bookmarking sites that you can use in much the same way. All of these social bookmarking sites can help you increase traffic.&lt;/p&gt;   &lt;p&gt;&lt;strong&gt;Tip #5: Post comments at other blogs&lt;/strong&gt;&lt;br /&gt;Here, you should visit similar blogs to your own, post legitimate comments and then sign your name(along with a link to your blog). This way, people know you aren’t there just to promote your site—you’re there to post a good piece of feedback and also say where you’re from.&lt;/p&gt;   &lt;p&gt;&lt;strong&gt;Tip #6: Ask owners of other blogs to post a link to yours&lt;/strong&gt;&lt;br /&gt;Find other blogs that are similar to yours. If they seem to be decently popular (if they have a good amount of comments for each post), contact the owner of the blog and ask if they will add a link to your blog. Offering to link back to their blog is a way to sweeten the offer. Reciprocal linking helps to increase traffic.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Tip #7: Use keywords in your blog&lt;/strong&gt;&lt;br /&gt;Like regular Web pages, having a good keyword density on a blog is a terrific way of getting search engine spiders to notice your page. (FYI: search engine spiders are programs from search engines that browse sites and report back their findings to the search engine database, which then lists that site. The more keywords on your site, the more likely it is for a search engine spider to pay a visit)&lt;/p&gt;    &lt;p&gt;If your average blog posting is around 200 words,  use 2-6 keywords per blog post. This creates a keyword density of between 1 and 3 percent, a respectable number. Remember that you don’t want to use too many keywords, as that will make your blog look bad. Also be sure that the keywords used are relevant to your blog. Before even making a blog posting, decide what the post will be about and then select a keyword or two to use in your post. This will help to increase your traffic.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4053486063052531067-6521377419916085310?l=ashko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ashko.blogspot.com/feeds/6521377419916085310/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4053486063052531067&amp;postID=6521377419916085310' title='15 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/6521377419916085310'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/6521377419916085310'/><link rel='alternate' type='text/html' href='http://ashko.blogspot.com/2007/11/how-to-increase-traffic-to-your-blog.html' title='How To Increase Traffic to Your Blog / Best Ways To Increase Traffic to Your Blog'/><author><name>ÅšhΘκ  Šμ∂απi</name><uri>http://www.blogger.com/profile/17739127081189346556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4053486063052531067.post-5275352885878820505</id><published>2007-10-23T03:05:00.000-07:00</published><updated>2007-10-23T03:07:26.215-07:00</updated><title type='text'>Advantages and disadvantages of flash usage in web design</title><content type='html'>Flash allows web developers to create interactive content, such as animations, animated menus, movies, games and more. Flash animations can be made rapidly, using a certain type of software which provides the developer with visual tools easy to use and understand.&lt;br /&gt;&lt;br /&gt;Flash is based on vector graphics, which means&lt;br /&gt;that flash animations can be rescaled without losing the image quality. Flash animations can be embedded in HTML pages as menus, movies or web site layouts. You will be able to create presentations, short courses, quizzes, Flash being an effective multimedia tool in business marketing and e-learning due to the possibility of easy control and model of the degree of interactivity for a certain animation. Flash movies have a high loading speed, being rendered with controllable quality by all major modern web browsers.&lt;br /&gt;&lt;br /&gt;There are also disadvantages of Flash, depending on its implementation in a web site structure. For example, if your website needs the presence of many customers, it’s recommended to avoid the excessive flash usage, especially in web sites intros. Flash is not optimized for search engine indexing, and as a consequence, the content of your Flash animation is not visible for search engine spiders.&lt;br /&gt;&lt;br /&gt;If your flash intro will contain unoptimized raster images, the final animation size will determine higher page loading times, which could mean losing many of your visitors or customers. On the other hand, updating the Flash content of a given website could be more expensive than traditional content non-Flash based.&lt;br /&gt;&lt;br /&gt;The selection criteria of Flash editing tools is also important, due to performance of optimization options and their cost. In conclusion, as a function of your website destination, you should carefully select the parts where Flash animations will fit in, and never overuse Flash animations.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4053486063052531067-5275352885878820505?l=ashko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ashko.blogspot.com/feeds/5275352885878820505/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4053486063052531067&amp;postID=5275352885878820505' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/5275352885878820505'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/5275352885878820505'/><link rel='alternate' type='text/html' href='http://ashko.blogspot.com/2007/10/advantages-and-disadvantages-of-flash.html' title='Advantages and disadvantages of flash usage in web design'/><author><name>ÅšhΘκ  Šμ∂απi</name><uri>http://www.blogger.com/profile/17739127081189346556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4053486063052531067.post-7784424979634970569</id><published>2007-10-23T02:11:00.000-07:00</published><updated>2007-10-23T02:22:12.481-07:00</updated><title type='text'>Top 51 Free &amp; Useful Downloads</title><content type='html'>Once upon a time you actually had to pay for great software or use illegal cracked versions. The scenario has totally changed today. Luckily we are out of that world now. If you want to make your PC more productive, secure, informative and entertaining, try these &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;softwares&lt;/span&gt; listed below. We've compiled a list of the most useful &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;softwares&lt;/span&gt; available for download - and they don't cost even a cent!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Tweaking Windows &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;XP&lt;/span&gt;&lt;br /&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;&lt;a href="http://dw.com.com/redir?pid=10490154&amp;amp;merid=82222&amp;amp;mfgid=82222&amp;amp;ltype=dl_dlnow&amp;amp;lop=btn&amp;amp;edId=3&amp;amp;siteId=4&amp;amp;oId=3120-2094_4-10490154&amp;amp;ontId=2094_4&amp;amp;destUrl=http://www.download.com%2F3001-2094_4-10490154.html"&gt;Fresh &lt;/a&gt;&lt;a href="http://dw.com.com/redir?pid=10490154&amp;amp;merid=82222&amp;amp;mfgid=82222&amp;amp;ltype=dl_dlnow&amp;amp;lop=btn&amp;amp;edId=3&amp;amp;siteId=4&amp;amp;oId=3120-2094_4-10490154&amp;amp;ontId=2094_4&amp;amp;destUrl=http://www.download.com%2F3001-2094_4-10490154.html"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;UI&lt;/span&gt;&lt;/a&gt; - Configure and optimize your system, hardware, and Windows application settings.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.microsoft.com/windowsxp/downloads/powertoys/xppowertoys.mspx"&gt;Microsoft Power Toys For Windows &lt;/a&gt;&lt;a href="http://www.microsoft.com/windowsxp/downloads/powertoys/xppowertoys.mspx"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;XP&lt;/span&gt;&lt;/a&gt; - &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;PowerToys&lt;/span&gt; add fun and functionality to the Windows experience. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;PowerToys&lt;/span&gt; are additional programs that developers work on after a product has been released.&lt;/li&gt;&lt;li&gt;&lt;a href="http://dw.com.com/redir?pid=10438848&amp;amp;merid=108365&amp;amp;mfgid=108365&amp;amp;ltype=dl_dlnow&amp;amp;lop=btn&amp;amp;edId=3&amp;amp;siteId=4&amp;amp;oId=3120-2094_4-10438848&amp;amp;ontId=2094_4&amp;amp;destUrl=http://www.download.com%2F3001-2094_4-10438848.html"&gt;Tweak &amp;amp; Tune&lt;/a&gt; - Access hidden Windows system settings. &lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Tweaking Windows Vista&lt;/span&gt;&lt;br /&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;&lt;a href="http://dw.com.com/redir?pid=10721382&amp;amp;merid=81876&amp;amp;mfgid=81876&amp;amp;ltype=dl_dlnow&amp;amp;lop=btn&amp;amp;edId=3&amp;amp;siteId=4&amp;amp;oId=3120-2094_4-10721382&amp;amp;ontId=2094_4&amp;amp;destUrl=http://www.download.com%2F3001-2094_4-10721382.html"&gt;Tweak VI Basic&lt;/a&gt; - Tweak hundreds of hidden features of Windows Vista.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.vistabootpro.org/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;VistaBootPRO&lt;/span&gt;&lt;/a&gt; - &lt;span id="nointelliTXT"&gt;Featured in PC Magazine, Microsoft's Tech Net Magazine, and hundreds of online articles worldwide. &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://dw.com.com/redir?pid=10684079&amp;amp;merid=6273826&amp;amp;mfgid=6273826&amp;amp;ltype=dl_dlnow&amp;amp;lop=btn&amp;amp;edId=3&amp;amp;siteId=4&amp;amp;oId=3120-2094_4-10684079&amp;amp;ontId=2094_4&amp;amp;destUrl=http://www.download.com%2F3001-2094_4-10684079.html"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;EasyBCD&lt;/span&gt; &lt;/a&gt;- Modify, back up, and restore configurations of Windows Vista &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;bootloader&lt;/span&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Security Tools&lt;/span&gt;&lt;br /&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;&lt;a href="http://dw.com.com/redir?pid=10719977&amp;amp;merid=69274&amp;amp;mfgid=69274&amp;amp;ltype=dl_dlnow&amp;amp;lop=btn&amp;amp;edId=3&amp;amp;siteId=4&amp;amp;oId=3120-8022_4-10719977&amp;amp;ontId=8022_4&amp;amp;dlrs=1&amp;amp;destUrl=http://www.download.com%2F3001-8022_4-10719977.html"&gt;Ad-Aware SE Personal &lt;/a&gt;- Scan your system for ad-supported software components and remove them.&lt;/li&gt;&lt;li&gt;&lt;a href="http://dw.com.com/redir?pid=10721010&amp;amp;merid=85737&amp;amp;mfgid=85737&amp;amp;ltype=dl_dlnow&amp;amp;lop=btn&amp;amp;edId=3&amp;amp;siteId=4&amp;amp;oId=3120-2239_4-10721010&amp;amp;ontId=2239_4&amp;amp;destUrl=http://www.download.com%2F3001-2239_4-10721010.html"&gt;Avast &lt;/a&gt;- Scan your computer for viruses, worms, and Trojan horses.&lt;/li&gt;&lt;li&gt;&lt;a href="http://dw.com.com/redir?pid=10698360&amp;amp;merid=69168&amp;amp;mfgid=69168&amp;amp;ltype=dl_dlnow&amp;amp;lop=btn&amp;amp;edId=3&amp;amp;siteId=4&amp;amp;oId=3120-10435_4-10698360&amp;amp;ontId=10435_4&amp;amp;dlrs=1&amp;amp;destUrl=http://www.download.com%2F3001-10435_4-10698360.html"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;ZoneAlarm&lt;/span&gt;&lt;/a&gt; - Protect your Internet connection from hackers and other security breaches.&lt;/li&gt;&lt;li&gt;&lt;a href="http://dw.com.com/redir?pid=10703202&amp;amp;merid=6270610&amp;amp;mfgid=6270610&amp;amp;ltype=dl_dlnow&amp;amp;lop=btn&amp;amp;edId=3&amp;amp;siteId=4&amp;amp;oId=3120-2239_4-10703202&amp;amp;ontId=2239_4&amp;amp;destUrl=http://www.download.com%2F3001-2239_4-10703202.html"&gt;AVG Anti-Virus&lt;/a&gt; - Protect your computer from viruses and malicious programs.&lt;/li&gt;&lt;li&gt;&lt;a href="http://dw.com.com/redir?pid=10536842&amp;amp;merid=6283147&amp;amp;mfgid=6283147&amp;amp;ltype=dl_dlnow&amp;amp;lop=btn&amp;amp;edId=3&amp;amp;siteId=4&amp;amp;oId=3120-2085_4-10536842&amp;amp;ontId=2085_4&amp;amp;destUrl=http://www.download.com%2F3001-2085_4-10536842.html"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;SMAC&lt;/span&gt;&lt;/a&gt; - View, change, and validate MAC Address.&lt;/li&gt;&lt;li&gt;&lt;a href="http://dw.com.com/redir?pid=10598014&amp;amp;merid=50119&amp;amp;mfgid=50119&amp;amp;ltype=dl_dlnow&amp;amp;lop=btn&amp;amp;edId=3&amp;amp;siteId=4&amp;amp;oId=3120-12771_4-10598014&amp;amp;ontId=12771_4&amp;amp;destUrl=http%3A%2F%2Fwww.microsoft.com%2Fdownloads%2Fdetails.aspx%3FFamilyId%3D435BFCE7-DA2B-4A6A-AFA4-F7F14E605A0D%26displaylang%3Den"&gt;Microsoft Windows Defender&lt;/a&gt; - Remove &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;spyware&lt;/span&gt; from your PC and prevent unwanted software from being installed without your knowledge.&lt;/li&gt;&lt;li&gt;&lt;a href="http://dw.com.com/redir?pid=10401314&amp;amp;merid=104443&amp;amp;mfgid=104443&amp;amp;ltype=dl_dlnow&amp;amp;lop=btn&amp;amp;edId=3&amp;amp;siteId=4&amp;amp;oId=3120-8022_4-10401314&amp;amp;ontId=8022_4&amp;amp;destUrl=http://www.download.com%2F3001-8022_4-10401314.html"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;Spybot&lt;/span&gt; Search &amp;amp; Destroy &lt;/a&gt;- Search your hard disk and Registry for threats to your security and privacy.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Registry Cleaners&lt;/span&gt;&lt;br /&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;&lt;a href="http://dw.com.com/redir?pid=10628251&amp;amp;merid=74738&amp;amp;mfgid=74738&amp;amp;ltype=dl_dlnow&amp;amp;lop=btn&amp;amp;edId=3&amp;amp;siteId=4&amp;amp;oId=3120-2094_4-10628251&amp;amp;ontId=2094_4&amp;amp;destUrl=http://www.download.com%2F3001-2094_4-10628251.html"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;TweakNow&lt;/span&gt; &lt;/a&gt;&lt;a href="http://dw.com.com/redir?pid=10628251&amp;amp;merid=74738&amp;amp;mfgid=74738&amp;amp;ltype=dl_dlnow&amp;amp;lop=btn&amp;amp;edId=3&amp;amp;siteId=4&amp;amp;oId=3120-2094_4-10628251&amp;amp;ontId=2094_4&amp;amp;destUrl=http://www.download.com%2F3001-2094_4-10628251.html"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;RegCleaner&lt;/span&gt; &lt;/a&gt;- Remove obsolete entries from your Windows Registry.&lt;/li&gt;&lt;li&gt;&lt;a href="http://dw.com.com/redir?pid=10703598&amp;amp;merid=6270778&amp;amp;mfgid=6270778&amp;amp;ltype=dl_dlnow&amp;amp;lop=btn&amp;amp;edId=3&amp;amp;siteId=4&amp;amp;oId=3120-2094_4-10703598&amp;amp;ontId=2094_4&amp;amp;destUrl=http://www.download.com%2F3001-2094_4-10703598.html"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;CleanMyRegistry&lt;/span&gt; &lt;/a&gt;- Clean your Windows Registry.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;System Information&lt;/span&gt;&lt;br /&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;&lt;a href="http://dw.com.com/redir?pid=10716621&amp;amp;merid=53496&amp;amp;mfgid=53496&amp;amp;ltype=dl_dlnow&amp;amp;lop=btn&amp;amp;edId=3&amp;amp;siteId=4&amp;amp;oId=3120-2094_4-10716621&amp;amp;ontId=2094_4&amp;amp;destUrl=http://www.download.com%2F3001-2094_4-10716621.html"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;Belarc&lt;/span&gt; Advisor &lt;/a&gt;- Plug a PC audit into your browser with details on hardware and software.&lt;/li&gt;&lt;li&gt;&lt;a href="http://dw.com.com/redir?pid=10540297&amp;amp;merid=78403&amp;amp;mfgid=78403&amp;amp;ltype=dl_dlnow&amp;amp;lop=btn&amp;amp;edId=3&amp;amp;siteId=4&amp;amp;oId=3120-2094_4-10540297&amp;amp;ontId=2094_4&amp;amp;destUrl=http://www.download.com%2F3001-2094_4-10540297.html"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;SpeedFan&lt;/span&gt; &lt;/a&gt;- Monitor fan speeds, temperatures, and voltages in computers with hardware monitoring chips.&lt;/li&gt;&lt;li&gt;&lt;a href="http://dw.com.com/redir?pid=10390999&amp;amp;merid=80803&amp;amp;mfgid=80803&amp;amp;ltype=dl_dlnow&amp;amp;lop=btn&amp;amp;edId=3&amp;amp;siteId=4&amp;amp;oId=3120-2094_4-10390999&amp;amp;ontId=2094_4&amp;amp;destUrl=http://www.download.com%2F3001-2094_4-10390999.html"&gt;M2 Information&lt;/a&gt; - Get your system specifications quickly for easy reference when filling in technical-support questionnaires.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;E-mail Clients&lt;/span&gt;&lt;br /&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;&lt;a href="http://dw.com.com/redir?pid=10665935&amp;amp;merid=61635&amp;amp;mfgid=61635&amp;amp;ltype=dl_dlnow&amp;amp;lop=btn&amp;amp;edId=3&amp;amp;siteId=4&amp;amp;oId=3120-2367_4-10665935&amp;amp;ontId=2367_4&amp;amp;destUrl=http://www.download.com%2F3001-2367_4-10665935.html"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;Thunderbird&lt;/span&gt;&lt;/a&gt; -View e-mail and news the way you want it, with intelligent junk controls and personalized themes.&lt;/li&gt;&lt;li&gt;&lt;a href="http://dw.com.com/redir?pid=10540520&amp;amp;merid=50138&amp;amp;mfgid=50138&amp;amp;ltype=dl_dlnow&amp;amp;lop=btn&amp;amp;edId=3&amp;amp;siteId=4&amp;amp;oId=3120-2367_4-10540520&amp;amp;ontId=2367_4&amp;amp;destUrl=http://www.download.com%2F3001-2367_4-10540520.html"&gt;Eudora&lt;/a&gt; - Send e-mail to and receive it from friends and coworkers.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.spamato.net/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;Spamato&lt;/span&gt;&lt;/a&gt; - Add-on for Microsoft Outlook, an extension for &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;Thunderbird&lt;/span&gt; and Mozilla Mail, and as a stand-alone proxy component.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;File Sharing&lt;/span&gt;&lt;br /&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;&lt;a href="http://www.allpeers.com/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;AllPeers&lt;/span&gt;&lt;/a&gt; - Share anything with people you choose&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://dw.com.com/redir?pid=10690133&amp;amp;merid=6283980&amp;amp;mfgid=6283980&amp;amp;ltype=dl_dlnow&amp;amp;lop=btn&amp;amp;edId=3&amp;amp;siteId=4&amp;amp;oId=3120-2196_4-10690133&amp;amp;ontId=2196_4&amp;amp;destUrl=http://www.download.com%2F3001-2196_4-10690133.html"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;Pando&lt;/span&gt;&lt;/a&gt; - Bypass e-mail attachment limits when sending big files.&lt;/li&gt;&lt;li&gt;&lt;a href="http://dw.com.com/redir?pid=10720973&amp;amp;merid=6282488&amp;amp;mfgid=6282488&amp;amp;ltype=dl_dlnow&amp;amp;lop=btn&amp;amp;edId=3&amp;amp;siteId=4&amp;amp;oId=3120-2196_4-10720973&amp;amp;ontId=2196_4&amp;amp;destUrl=http://www.download.com%2F3001-2196_4-10720973.html"&gt;u&lt;/a&gt;&lt;a href="http://dw.com.com/redir?pid=10720973&amp;amp;merid=6282488&amp;amp;mfgid=6282488&amp;amp;ltype=dl_dlnow&amp;amp;lop=btn&amp;amp;edId=3&amp;amp;siteId=4&amp;amp;oId=3120-2196_4-10720973&amp;amp;ontId=2196_4&amp;amp;destUrl=http://www.download.com%2F3001-2196_4-10720973.html"&gt;Torrent &lt;/a&gt;- Manage &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;BitTorrents&lt;/span&gt; for Windows with scheduling and other features&lt;/li&gt;&lt;li&gt;&lt;a href="http://dw.com.com/redir?pid=10722590&amp;amp;merid=6231989&amp;amp;mfgid=6231989&amp;amp;ltype=dl_dlnow&amp;amp;lop=btn&amp;amp;edId=3&amp;amp;siteId=4&amp;amp;oId=3120-2349_4-10722590&amp;amp;ontId=2349_4&amp;amp;destUrl=http://www.download.com%2F3001-2349_4-10722590.html"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_25"&gt;Skype&lt;/span&gt; &lt;/a&gt;- More than just talk&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://dw.com.com/redir?pid=10696645&amp;amp;merid=57951&amp;amp;mfgid=57951&amp;amp;ltype=dl_dlnow&amp;amp;lop=btn&amp;amp;edId=3&amp;amp;siteId=4&amp;amp;oId=3120-2150_4-10696645&amp;amp;ontId=2150_4&amp;amp;destUrl=http://www.download.com%2F3001-2150_4-10696645.html"&gt;Yahoo Messenger &lt;/a&gt;- Communicate instantly with your friends on &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_26"&gt;YIM&lt;/span&gt; and Windows Live using custom avatars, PC-to-PC calling, and lively emoticons.&lt;/li&gt;&lt;li&gt;&lt;a href="http://dw.com.com/redir?pid=10714041&amp;amp;merid=73158&amp;amp;mfgid=73158&amp;amp;ltype=dl_dlnow&amp;amp;lop=btn&amp;amp;edId=3&amp;amp;siteId=4&amp;amp;oId=3120-2150_4-10714041&amp;amp;ontId=2150_4&amp;amp;destUrl=http://www.download.com%2F3001-2150_4-10714041.html"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_27"&gt;Trillian&lt;/span&gt; &lt;/a&gt;- Chat and share files with all your friends on &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_28"&gt;mIRC&lt;/span&gt;, AIM, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_29"&gt;ICQ&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_30"&gt;MSN&lt;/span&gt;, and Yahoo Messenger.&lt;/li&gt;&lt;li&gt;&lt;a href="http://dw.com.com/redir?pid=10429901&amp;amp;merid=78250&amp;amp;mfgid=78250&amp;amp;ltype=dl_dlnow&amp;amp;lop=btn&amp;amp;edId=3&amp;amp;siteId=4&amp;amp;oId=3120-2150_4-10429901&amp;amp;ontId=2150_4&amp;amp;destUrl=http://www.download.com%2F3001-2150_4-10429901.html"&gt;Google Talk&lt;/a&gt; - Talk share with your friends for free.&lt;/li&gt;&lt;li&gt;&lt;a href="http://dw.com.com/redir?pid=10450927&amp;amp;merid=6276630&amp;amp;mfgid=6276630&amp;amp;ltype=dl_dlnow&amp;amp;lop=btn&amp;amp;edId=3&amp;amp;siteId=4&amp;amp;oId=3120-2150_4-10450927&amp;amp;ontId=2150_4&amp;amp;destUrl=http%3A%2F%2Fim.live.com%2FMessenger%2FIM%2FJoin%2F"&gt;Microsoft Windows Live Messenger&lt;/a&gt; - Connect and share instantly on the worlds most popular &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_31"&gt;IM&lt;/span&gt; network.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Desktop Search&lt;/span&gt;&lt;br /&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;&lt;a href="http://dw.com.com/redir?pid=10703350&amp;amp;merid=78250&amp;amp;mfgid=78250&amp;amp;ltype=dl_dlnow&amp;amp;lop=btn&amp;amp;edId=3&amp;amp;siteId=4&amp;amp;oId=3120-2379_4-10703350&amp;amp;ontId=2379_4&amp;amp;destUrl=http://www.download.com%2F3001-2379_4-10703350.html"&gt;Google Desktop&lt;/a&gt; - Search your hard drive for e-mail, files, and your Web and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_32"&gt;IM&lt;/span&gt; histories.&lt;/li&gt;&lt;li&gt;&lt;a href="http://dw.com.com/redir?pid=10691933&amp;amp;merid=52087&amp;amp;mfgid=52087&amp;amp;ltype=dl_dlnow&amp;amp;lop=btn&amp;amp;edId=3&amp;amp;siteId=4&amp;amp;oId=3120-2379_4-10691933&amp;amp;ontId=2379_4&amp;amp;destUrl=http://www.download.com%2F3001-2379_4-10691933.html"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_33"&gt;Copernic&lt;/span&gt; Desktop Search&lt;/a&gt; - Search files, e-mails, and popular multimedia formats on your &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_34"&gt;PC's&lt;/span&gt; hard drive.&lt;/li&gt;&lt;li&gt;&lt;a href="http://dw.com.com/redir?pid=10703356&amp;amp;merid=50119&amp;amp;mfgid=50119&amp;amp;ltype=dl_dlnow&amp;amp;lop=btn&amp;amp;edId=3&amp;amp;siteId=4&amp;amp;oId=3120-2343_4-10703356&amp;amp;ontId=2343_4&amp;amp;destUrl=http://www.download.com%2F3001-2343_4-10703356.html"&gt;Windows Desktop Search&lt;/a&gt; - Search your computer for virtually any kind of information.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Office Suites &amp;amp; Word Processors&lt;/span&gt;&lt;br /&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;&lt;a href="http://dw.com.com/redir?pid=10703307&amp;amp;merid=101462&amp;amp;mfgid=101462&amp;amp;ltype=dl_dlnow&amp;amp;lop=btn&amp;amp;edId=3&amp;amp;siteId=4&amp;amp;oId=3120-2064_4-10703307&amp;amp;ontId=2064_4&amp;amp;destUrl=http://www.download.com%2F3001-2064_4-10703307.html"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_35"&gt;OpenOffice&lt;/span&gt;.org&lt;/a&gt; - Take an open-source approach to office productivity.&lt;/li&gt;&lt;li&gt;&lt;a href="http://dw.com.com/redir?pid=10554887&amp;amp;merid=6256305&amp;amp;mfgid=6256305&amp;amp;ltype=dl_dlnow&amp;amp;lop=btn&amp;amp;edId=3&amp;amp;siteId=4&amp;amp;oId=3120-2074_4-10554887&amp;amp;ontId=2074_4&amp;amp;destUrl=http://www.download.com%2F3001-2074_4-10554887.html"&gt;Easy To-Do&lt;/a&gt; - Manage important tasks at home or in the office.&lt;/li&gt;&lt;li&gt;&lt;a href="http://dw.com.com/redir?pid=10294450&amp;amp;merid=67648&amp;amp;mfgid=67648&amp;amp;ltype=dl_dlnow&amp;amp;lop=btn&amp;amp;edId=3&amp;amp;siteId=4&amp;amp;oId=3120-2352_4-10294450&amp;amp;ontId=2352_4&amp;amp;destUrl=http://www.download.com%2F3001-2352_4-10294450.html"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_36"&gt;NoteTab&lt;/span&gt; Light&lt;/a&gt; - Edit text and HTML documents of any size. &lt;/li&gt;&lt;li&gt;&lt;a href="http://dw.com.com/redir?pid=10328038&amp;amp;merid=80634&amp;amp;mfgid=80634&amp;amp;ltype=dl_dlnow&amp;amp;lop=btn&amp;amp;edId=3&amp;amp;siteId=4&amp;amp;oId=3120-2352_4-10328038&amp;amp;ontId=2352_4&amp;amp;destUrl=http://www.download.com%2F3001-2352_4-10328038.html"&gt;Crimson Editor&lt;/a&gt; - Edit programs in HTML, C/C++, Perl, Java, and other languages.&lt;/li&gt;&lt;li&gt;&lt;a href="http://dw.com.com/redir?pid=10713759&amp;amp;merid=56106&amp;amp;mfgid=56106&amp;amp;ltype=dl_dlnow&amp;amp;lop=btn&amp;amp;edId=3&amp;amp;siteId=4&amp;amp;oId=3120-2351_4-10713759&amp;amp;ontId=2351_4&amp;amp;destUrl=http://www.download.com%2F3001-2351_4-10713759.html"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_37"&gt;EditPad&lt;/span&gt; Lite&lt;/a&gt; - Try a general-purpose Notepad-like text editor.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Backup &amp;amp; File Synchronization&lt;/span&gt;&lt;br /&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;&lt;a href="http://dw.com.com/redir?pid=10713232&amp;amp;merid=82548&amp;amp;mfgid=82548&amp;amp;ltype=dl_dlnow&amp;amp;lop=btn&amp;amp;edId=3&amp;amp;siteId=4&amp;amp;oId=3120-2242_4-10713232&amp;amp;ontId=2242_4&amp;amp;destUrl=http://www.download.com%2F3001-2242_4-10713232.html"&gt;Everyday Auto Backup&lt;/a&gt; - Automate your file backup routines.&lt;/li&gt;&lt;li&gt;&lt;a href="https://www.foldershare.com/"&gt;Microsoft &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_38"&gt;FolderShare&lt;/span&gt; &lt;/a&gt;- Find, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_39"&gt;access&lt;/span&gt;, share your files anywhere&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Video Players&lt;/span&gt;&lt;br /&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;&lt;a href="http://dw.com.com/redir?pid=10717934&amp;amp;merid=6197208&amp;amp;mfgid=6197208&amp;amp;ltype=dl_dlnow&amp;amp;lop=btn&amp;amp;edId=3&amp;amp;siteId=4&amp;amp;oId=3120-13632_4-10717934&amp;amp;ontId=13632_4&amp;amp;destUrl=http://www.download.com%2F3001-13632_4-10717934.html"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_40"&gt;VLC&lt;/span&gt; Media Player&lt;/a&gt; - Play audio and video files with this cross-platform media player and streaming server. &lt;/li&gt;&lt;li&gt;&lt;a href="http://dw.com.com/redir?pid=10614981&amp;amp;merid=84118&amp;amp;mfgid=84118&amp;amp;ltype=dl_dlnow&amp;amp;lop=btn&amp;amp;edId=3&amp;amp;siteId=4&amp;amp;oId=3120-2139_4-10614981&amp;amp;ontId=2139_4&amp;amp;destUrl=http://www.download.com%2F3001-2139_4-10614981.html"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_41"&gt;iTunes&lt;/span&gt; Foobar2000 &lt;/a&gt;- Listen to music with an audio player that supports several popular audio formats.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Image Editing&lt;/span&gt;&lt;br /&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;&lt;a href="http://dw.com.com/redir?pid=10709169&amp;amp;merid=78250&amp;amp;mfgid=78250&amp;amp;ltype=dl_dlnow&amp;amp;lop=btn&amp;amp;edId=3&amp;amp;siteId=4&amp;amp;oId=3120-2193_4-10709169&amp;amp;ontId=2193_4&amp;amp;dlrs=1&amp;amp;destUrl=http://www.download.com%2F3001-2193_4-10709169.html"&gt;Google Picasa&lt;/a&gt; - Find, edit, and share pictures faster.&lt;/li&gt;&lt;li&gt;&lt;a href="http://dw.com.com/redir?pid=10667331&amp;amp;merid=59333&amp;amp;mfgid=59333&amp;amp;ltype=dl_dlnow&amp;amp;lop=btn&amp;amp;edId=3&amp;amp;siteId=4&amp;amp;oId=3120-2192_4-10667331&amp;amp;ontId=2192_4&amp;amp;destUrl=http://www.download.com%2F3001-2192_4-10667331.html"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_42"&gt;IrfanView&lt;/span&gt;&lt;/a&gt; - View and edit most graphics formats available today in a fast and simple way.&lt;/li&gt;&lt;li&gt;&lt;a href="http://dw.com.com/redir?pid=10716174&amp;amp;merid=114171&amp;amp;mfgid=114171&amp;amp;ltype=dl_dlnow&amp;amp;lop=btn&amp;amp;edId=3&amp;amp;siteId=4&amp;amp;oId=3120-12511_4-10716174&amp;amp;ontId=12511_4&amp;amp;destUrl=http://www.download.com%2F3001-12511_4-10716174.html"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_43"&gt;StudioLine&lt;/span&gt; Photo Basic&lt;/a&gt; - Import, manage, edit, and share your digital images using e-mail, slide shows, and Web galleries. &lt;/li&gt;&lt;li&gt;&lt;a href="http://dw.com.com/redir?pid=10631315&amp;amp;merid=50119&amp;amp;mfgid=50119&amp;amp;ltype=dl_dlnow&amp;amp;lop=btn&amp;amp;edId=3&amp;amp;siteId=4&amp;amp;oId=3120-2193_4-10631315&amp;amp;ontId=2193_4&amp;amp;destUrl=http%3A%2F%2Fwww.microsoft.com%2Fdownloads%2Fdetails.aspx%3FFamilyId%3DB038D4B5-1D88-437C-9F54-1FB0D210B5EF%26displaylang%3Den"&gt;Microsoft Photo info &lt;/a&gt;- View and change &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_44"&gt;metadata&lt;/span&gt; properties for digital photographs in Windows Explorer.&lt;/li&gt;&lt;li&gt;&lt;a href="http://dw.com.com/redir?pid=10703779&amp;amp;merid=6245321&amp;amp;mfgid=6245321&amp;amp;ltype=dl_dlnow&amp;amp;lop=btn&amp;amp;edId=3&amp;amp;siteId=4&amp;amp;oId=3120-2192_4-10703779&amp;amp;ontId=2192_4&amp;amp;destUrl=http://www.download.com%2F3001-2192_4-10703779.html"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_45"&gt;FastStone&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_46"&gt;MaxView&lt;/span&gt; &lt;/a&gt;- View, edit, and manipulate your images.&lt;/li&gt;&lt;li&gt;&lt;a href="http://dw.com.com/redir?pid=10635470&amp;amp;merid=87737&amp;amp;mfgid=87737&amp;amp;ltype=dl_dlnow&amp;amp;lop=btn&amp;amp;edId=3&amp;amp;siteId=4&amp;amp;oId=3120-2192_4-10635470&amp;amp;ontId=2192_4&amp;amp;destUrl=http://www.download.com%2F3001-2192_4-10635470.html"&gt;GIMP&lt;/a&gt; - Create and alter photos and graphics manually or via scripting.&lt;/li&gt;&lt;li&gt;&lt;a href="http://dw.com.com/redir?pid=10693835&amp;amp;merid=6265418&amp;amp;mfgid=6265418&amp;amp;ltype=dl_dlnow&amp;amp;lop=btn&amp;amp;edId=3&amp;amp;siteId=4&amp;amp;oId=3120-2192_4-10693835&amp;amp;ontId=2192_4&amp;amp;destUrl=http://www.download.com%2F3001-2192_4-10693835.html"&gt;Paint.net&lt;/a&gt; - Create and alter photos using layers, effects, and other tools.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Audio Players&lt;/span&gt;&lt;br /&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;&lt;a href="http://dw.com.com/redir?pid=10705258&amp;amp;merid=54631&amp;amp;mfgid=54631&amp;amp;ltype=dl_dlnow&amp;amp;lop=btn&amp;amp;edId=3&amp;amp;siteId=4&amp;amp;oId=3120-2167_4-10705258&amp;amp;ontId=2167_4&amp;amp;destUrl=http://www.download.com%2F3001-2167_4-10705258.html"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_47"&gt;Nullsoft&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_48"&gt;Winamp&lt;/span&gt;&lt;/a&gt; - Play and organize a variety of audio and video files. &lt;/li&gt;&lt;li&gt;&lt;a href="http://dw.com.com/redir?pid=10721797&amp;amp;merid=50625&amp;amp;mfgid=50625&amp;amp;ltype=dl_dlnow&amp;amp;lop=btn&amp;amp;edId=3&amp;amp;siteId=4&amp;amp;oId=3120-2141_4-10721797&amp;amp;ontId=2141_4&amp;amp;destUrl=http%3A%2F%2Fwww.apple.com%2Fitunes%2Fdownload%2F"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_49"&gt;iTunes&lt;/span&gt; &lt;/a&gt;- Create MP3 &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_50"&gt;playlists&lt;/span&gt;, burn &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_51"&gt;CDs&lt;/span&gt;, and download music with this top-rated jukebox.&lt;/li&gt;&lt;li&gt;&lt;a href="http://dw.com.com/redir?pid=10606824&amp;amp;merid=78914&amp;amp;mfgid=78914&amp;amp;ltype=dl_dlnow&amp;amp;lop=btn&amp;amp;edId=3&amp;amp;siteId=4&amp;amp;oId=3120-2170_4-10606824&amp;amp;ontId=2170_4&amp;amp;destUrl=http://www.download.com%2F3001-2170_4-10606824.html"&gt;Audacity&lt;/a&gt; - Edit your digital audio files. &lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4053486063052531067-7784424979634970569?l=ashko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ashko.blogspot.com/feeds/7784424979634970569/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4053486063052531067&amp;postID=7784424979634970569' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/7784424979634970569'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/7784424979634970569'/><link rel='alternate' type='text/html' href='http://ashko.blogspot.com/2007/10/top-51-free-useful-downloads.html' title='Top 51 Free &amp; Useful Downloads'/><author><name>ÅšhΘκ  Šμ∂απi</name><uri>http://www.blogger.com/profile/17739127081189346556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4053486063052531067.post-5255393834019071609</id><published>2007-10-15T01:20:00.001-07:00</published><updated>2007-10-15T01:20:43.027-07:00</updated><title type='text'>A Visual Explanation of SQL Joins</title><content type='html'>&lt;p&gt; I thought Ligaya Turmelle's post on SQL joins was a great primer for novice developers. Since SQL joins &lt;i&gt;appear&lt;/i&gt; to be set-based, the use of &lt;a href="http://en.wikipedia.org/wiki/Venn_diagram"&gt;Venn diagrams&lt;/a&gt; to explain them seems, at first blush, to be a natural fit. However, like the commenters     to her post, I found that the Venn diagrams didn't quite match the &lt;a href="http://en.wikipedia.org/wiki/Join_%28SQL%29"&gt;         SQL join syntax&lt;/a&gt;     reality in my testing.&lt;/p&gt;&lt;p&gt;         I love the concept, though, so let's see if we can make it work. Assume we have the following two tables. &lt;strong&gt;Table A&lt;/strong&gt; is on the left, and      &lt;strong&gt;Table B&lt;/strong&gt; is on the right. We'll populate them with four records each. &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;pre style="border:2px dotted silver;line-height:100%;margin:0px auto;max-height:450px;overflow:auto;padding:5px;width:95%;" &gt;id name       id  name&lt;br /&gt;-- ----       --  ----&lt;br /&gt;1  &lt;span style="color:red;"&gt;Pirate&lt;/span&gt;     1   Rutabaga&lt;br /&gt;2  Monkey     2   &lt;span style="color:red;"&gt;Pirate&lt;/span&gt;&lt;br /&gt;3  &lt;span style="color:red;"&gt;Ninja&lt;/span&gt;      3   Darth Vader&lt;br /&gt;4  Spaghetti  4   &lt;span style="color:red;"&gt;Ninja&lt;/span&gt;&lt;/pre&gt; &lt;p&gt; Let's join these tables by the name field in a few different ways and see if we can get a conceptual match to those nifty Venn diagrams. &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;table cellpadding="6" cellspacing="4" width="400"  border="1" style="border-collapse:collapse;border: 1px solid #ccc;"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt; &lt;pre style="border:2px dotted silver;line-height:100%;margin:0px auto;max-height:450px;overflow:auto;padding:5px;width:95%;" &gt;SELECT * FROM TableA&lt;br /&gt;&lt;b&gt;INNER JOIN&lt;/b&gt; TableB&lt;br /&gt;ON TableA.name = TableB.name&lt;br /&gt;&lt;br /&gt;id  name       id   name&lt;br /&gt;--  ----       --   ----&lt;br /&gt;1   Pirate     2    Pirate&lt;br /&gt;3   Ninja      4    Ninja&lt;br /&gt;&lt;/pre&gt; &lt;p&gt;     &lt;strong&gt;Inner join&lt;/strong&gt;     produces only the set of records that match in both Table A and Table B.&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;&lt;td&gt; &lt;img alt="Venn diagram of SQL inner join" src="http://farm3.static.flickr.com/2208/1575103971_3d2133737c_m.jpg" border="0" height="250" width="400" /&gt; &lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;         &lt;td&gt; &lt;pre style="border:2px dotted silver;line-height:100%;margin:0px auto;max-height:450px;overflow:auto;padding:5px;width:95%;" &gt;SELECT * FROM TableA&lt;br /&gt;&lt;b&gt;FULL OUTER JOIN&lt;/b&gt; TableB&lt;br /&gt;ON TableA.name = TableB.name&lt;br /&gt;&lt;br /&gt;id    name       id    name&lt;br /&gt;--    ----       --    ----&lt;br /&gt;1     Pirate     2     Pirate&lt;br /&gt;2     Monkey     &lt;span style="color:gray;"&gt;null&lt;/span&gt;  &lt;span style="color:gray;"&gt;null&lt;/span&gt;&lt;br /&gt;3     Ninja      4     Ninja&lt;br /&gt;4     Spaghetti  &lt;span style="color:gray;"&gt;null&lt;/span&gt;  &lt;span style="color:gray;"&gt;null&lt;/span&gt;&lt;br /&gt;&lt;span style="color:gray;"&gt;null&lt;/span&gt;  &lt;span style="color:gray;"&gt;null&lt;/span&gt;       1     Rutabaga      &lt;br /&gt;&lt;span style="color:gray;"&gt;null&lt;/span&gt;  &lt;span style="color:gray;"&gt;null&lt;/span&gt;       3     Darth Vader&lt;br /&gt;&lt;/pre&gt; &lt;p&gt;     &lt;strong&gt;Full outer join&lt;/strong&gt; produces the set of all records in Table A and     Table B, with matching records from both sides where available. If there is no match,     the missing side will contain null.&lt;/p&gt;         &lt;/td&gt;         &lt;/tr&gt;&lt;tr&gt;&lt;td&gt; &lt;img alt="Venn diagram of SQL cartesian join" src="http://farm3.static.flickr.com/2173/1575103951_1370b28531_m.jpg" border="0" height="250" width="400" /&gt;&lt;/td&gt;     &lt;/tr&gt; &lt;tr&gt;  &lt;td&gt; &lt;p&gt; &lt;/p&gt;&lt;pre style="border:2px dotted silver;line-height:100%;margin:0px auto;max-height:450px;overflow:auto;padding:5px;width:95%;" &gt;SELECT * FROM TableA&lt;br /&gt;&lt;b&gt;LEFT OUTER JOIN&lt;/b&gt; TableB&lt;br /&gt;ON TableA.name = TableB.name&lt;br /&gt;&lt;br /&gt;id  name       id    name&lt;br /&gt;--  ----       --    ----&lt;br /&gt;1   Pirate     2     Pirate&lt;br /&gt;2   Monkey     &lt;span style="color:gray;"&gt;null&lt;/span&gt;  &lt;span style="color:gray;"&gt;null&lt;/span&gt;&lt;br /&gt;3   Ninja      4     Ninja&lt;br /&gt;4   Spaghetti  &lt;span style="color:gray;"&gt;null&lt;/span&gt;  &lt;span style="color:gray;"&gt;null&lt;/span&gt; &lt;/pre&gt; &lt;p&gt;     &lt;strong&gt;Left outer join&lt;/strong&gt; produces a complete set of records from Table A, with the matching records     (where available) in Table B. If there is no match, the right side will contain null.&lt;/p&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;   &lt;td&gt;  &lt;img alt="Venn diagram of SQL left join" src="http://farm3.static.flickr.com/2245/1575103977_440cc4ca18_m.jpg" border="0" height="250" width="400" /&gt; &lt;/td&gt; &lt;/tr&gt;     &lt;tr&gt;         &lt;td&gt; &lt;pre style="border:2px dotted silver;line-height:100%;margin:0px auto;max-height:450px;overflow:auto;padding:5px;width:95%;" &gt;SELECT * FROM TableA&lt;br /&gt;LEFT OUTER JOIN TableB&lt;br /&gt;ON TableA.name = TableB.name&lt;br /&gt;&lt;strong&gt;WHERE TableB.id IS null&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;id  name       id     name&lt;br /&gt;--  ----       --     ----&lt;br /&gt;2   Monkey     &lt;span style="color:gray;"&gt;null&lt;/span&gt;   &lt;span style="color:gray;"&gt;null&lt;/span&gt;&lt;br /&gt;4   Spaghetti  &lt;span style="color:gray;"&gt;null&lt;/span&gt;   &lt;span style="color:gray;"&gt;null&lt;/span&gt; &lt;/pre&gt; &lt;p&gt; To produce the set of records only in Table A, but not in Table B, we perform the same     left outer join, then &lt;strong&gt;exclude the records we don't want from the right side via         a where clause&lt;/strong&gt;.&lt;/p&gt;         &lt;/td&gt;         &lt;/tr&gt;&lt;tr&gt;&lt;td&gt; &lt;img alt="join-left-outer.png" src="http://farm3.static.flickr.com/2300/1575103985_0d9cdbc8a3_m.jpg" border="0" height="250" width="400" /&gt;&lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;         &lt;td&gt; &lt;pre style="border:2px dotted silver;line-height:100%;margin:0px auto;max-height:450px;overflow:auto;padding:5px;width:95%;" &gt;SELECT * FROM TableA&lt;br /&gt;FULL OUTER JOIN TableB&lt;br /&gt;ON TableA.name = TableB.name&lt;br /&gt;&lt;strong&gt;WHERE TableA.id IS null&lt;br /&gt;OR TableB.id IS null&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;id    name       id    name&lt;br /&gt;--    ----       --    ----&lt;br /&gt;2     Monkey     &lt;span style="color:gray;"&gt;null&lt;/span&gt;  &lt;span style="color:gray;"&gt;null&lt;/span&gt;&lt;br /&gt;4     Spaghetti  &lt;span style="color:gray;"&gt;null&lt;/span&gt;  &lt;span style="color:gray;"&gt;null&lt;/span&gt;&lt;br /&gt;&lt;span style="color:gray;"&gt;null&lt;/span&gt;  &lt;span style="color:gray;"&gt;null&lt;/span&gt;       1     Rutabaga&lt;br /&gt;&lt;span style="color:gray;"&gt;null&lt;/span&gt;  &lt;span style="color:gray;"&gt;null&lt;/span&gt;       3     Darth Vader&lt;br /&gt;&lt;/pre&gt;         &lt;p&gt;     To produce the set of records unique to Table A and Table B, we perform the same full outer join,     then &lt;strong&gt;exclude the records we don't want from both sides via a where clause&lt;/strong&gt;.&lt;/p&gt;         &lt;/td&gt;         &lt;/tr&gt;&lt;tr&gt;&lt;td&gt; &lt;img alt="join-outer.png" src="http://farm3.static.flickr.com/2152/1575104001_ed2a2d5e22_m.jpg" border="0" height="250" width="400" /&gt;&lt;/td&gt;     &lt;/tr&gt;  &lt;/tbody&gt;&lt;/table&gt;     &lt;p&gt;         There's also a cartesian product or &lt;strong&gt;cross join&lt;/strong&gt;, which as far as         I can tell, can't be expressed as a Venn diagram:&lt;/p&gt; &lt;pre style="border:2px dotted silver;line-height:100%;margin:0px auto;max-height:450px;overflow:auto;padding:5px;width:95%;" &gt;SELECT * FROM TableA&lt;br /&gt;&lt;b&gt;CROSS JOIN&lt;/b&gt; TableB&lt;br /&gt;&lt;/pre&gt;                      &lt;p&gt;         This joins "everything to everything", resulting in 4 x 4 = 16 rows, far more than we         had in the original sets. If you do the math, you can see why this is a &lt;em&gt;very&lt;/em&gt;         dangerous join to run against large tables.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4053486063052531067-5255393834019071609?l=ashko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ashko.blogspot.com/feeds/5255393834019071609/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4053486063052531067&amp;postID=5255393834019071609' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/5255393834019071609'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/5255393834019071609'/><link rel='alternate' type='text/html' href='http://ashko.blogspot.com/2007/10/visual-explanation-of-sql-joins_15.html' title='A Visual Explanation of SQL Joins'/><author><name>ÅšhΘκ  Šμ∂απi</name><uri>http://www.blogger.com/profile/17739127081189346556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm3.static.flickr.com/2208/1575103971_3d2133737c_t.jpg' height='72' width='72'/><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4053486063052531067.post-4644784480278736109</id><published>2007-10-11T07:58:00.001-07:00</published><updated>2007-10-11T08:02:55.591-07:00</updated><title type='text'></title><content type='html'>&lt;div style="width: 400px; display: block;"&gt; &lt;h3 class="post-title"&gt;Understanding Domain Name System (DNS)&lt;/h3&gt;                          &lt;div style="text-align: justify;"&gt;&lt;span style="font-size:onload;"&gt;D&lt;/span&gt;omain Name System (DNS) makes it possible to refer to Internet Protocol (IP) based systems (hosts) by human-friendly names (domain names). &lt;span style="font-weight: bold;"&gt;Name Resolution&lt;/span&gt; is the act of determining the IP address (or addresses) of a given host name.&lt;br /&gt;&lt;/div&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);font-size:130%;" &gt;Benefits of DNS&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a id="KonaLink0" target="_top" class="kLink" style="text-decoration: underline ! important; position: static;" href="dns.html"&gt;&lt;span class="kLink" style=""&gt;Domain &lt;/span&gt;&lt;span class="kLink" style=""&gt;names&lt;/span&gt;&lt;/a&gt; can be logical and easily remembered.&lt;/li&gt;&lt;li style="text-align: justify;"&gt;Should the IP address for a host change, the domain name can still resolve transparently to the user or application.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt; &lt;span style="color: rgb(0, 0, 153);font-size:130%;" &gt;The structure of Domain Names&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Domain names are separated by dots, with the topmost element on the right. Eg:     &lt;span style="font-family:courier new;"&gt;www.yahoo.com&lt;/span&gt; . IP addresses have topmost element on the left.&lt;/li&gt;&lt;li&gt;Each element may be up to 63 characters long. The entire name may be atmost 255 characters long.&lt;/li&gt;&lt;li&gt;The right most element in a domain name is called the &lt;span style="font-weight: bold;"&gt;T&lt;/span&gt;op-&lt;span style="font-weight: bold;"&gt;L&lt;/span&gt;evel &lt;span style="font-weight: bold;"&gt;D&lt;/span&gt;omain (&lt;span style="font-weight: bold;"&gt;TLD&lt;/span&gt;). Referring the above example (&lt;span style="font-family:courier new;"&gt;www.yahoo.com&lt;/span&gt;), TLD is  &lt;span style="font-family:courier new;"&gt;'com'&lt;/span&gt;.&lt;/li&gt;&lt;li style="text-align: justify;"&gt;If a domain name is not shortened, it is called the &lt;span style="font-weight: bold;"&gt;F&lt;/span&gt;ully &lt;span style="font-weight: bold;"&gt;Q&lt;/span&gt;ualified &lt;span style="font-weight: bold;"&gt;D&lt;/span&gt;omain     &lt;span style="font-weight: bold;"&gt;N&lt;/span&gt;ame (&lt;span style="font-weight: bold;"&gt;FQDN&lt;/span&gt;). For example, &lt;span style="font-family:courier new;"&gt;briefcase.yahoo.com&lt;/span&gt; can be specified by a machine in the &lt;span style="font-family:courier new;"&gt;yahoo.com&lt;/span&gt; domain as either &lt;span style="font-family:courier new;"&gt;briefcase.yahoo.com&lt;/span&gt; (FQDN) or as &lt;span style="font-family:courier new;"&gt;briefcase&lt;/span&gt;.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt; &lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;Host names map to IP addresses in a many-to-many relationship&lt;/span&gt;. A host name may have one or more IP addresses. Conversely, an IP address may have multiple host names associated with it.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Hosts that are designed to perform email routing are known as mail exchangers. These machines should have special purpose records in DNS called &lt;span style="font-weight: bold;"&gt;M&lt;/span&gt;ail e&lt;span style="font-weight: bold;"&gt;X&lt;/span&gt;changer (&lt;span style="font-weight: bold;"&gt;MX&lt;/span&gt;) records. When a SMTP server or mail server, needs to send mail to a remote domain, it does a &lt;a id="KonaLink1" target="_top" class="kLink" style="text-decoration: underline ! important; position: static;" href="dns.html"&gt;&lt;span class="kLink" style=""&gt;DNS &lt;/span&gt;&lt;span class="kLink" style=""&gt;lookup&lt;/span&gt;&lt;/a&gt; for the Mail Exchanger (MX) of that remote domain. A domain can and should have multiple mail exchangers. Mail that cannot be sent to one mail exchanger, can instead be delivered to an alternative &lt;a id="KonaLink2" target="_top" class="kLink" style="text-decoration: underline ! important; position: static;" href="dns.html"&gt;&lt;span class="kLink" style="color: rgb(68, 157, 52) ! important; font-weight: 400; position: static;font-family:Georgia,Serif;" &gt;server&lt;/span&gt;&lt;/a&gt;, thus providing failsafe redundancy.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);font-size:130%;" &gt;Different types of Domain Name Servers&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;Root Name server&lt;/span&gt; - Each &lt;a id="KonaLink3" target="_top" class="kLink" style="text-decoration: underline ! important; position: static;" href="dns.html"&gt;&lt;span class="kLink" style=""&gt;top &lt;/span&gt;&lt;span class="kLink" style=""&gt;level &lt;/span&gt;&lt;span class="kLink" style=""&gt;domain&lt;/span&gt;&lt;/a&gt; (such as in,edu,com etc) has one or more root name servers which are responsible for determining where the individual records are held. These servers are fairly static and every machine on the internet has the capability of reaching any of them. A root name server is allocated like just one to three per country. For example, India has only 2 root name servers.&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;Authoritative Name Servers&lt;/span&gt; - These are the servers that the Root name servers sent queries to. These servers hold the actual information on an individual domain. This information is stored in a file called a zone file. Zone files are updated versions of the original HOSTS.TXT file.&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;Resolving Name Server&lt;/span&gt; - These are the servers that do most of the work when you are trying to get to a machine with a certain host name. Besides being responsible for looking up data, they also temporarily store the data for host names that they have searched out in a cache, which allows them to speed up the resolution for host names that are frequently visited.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt; &lt;span style="color: rgb(0, 0, 153);font-size:130%;" &gt;Zone&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;A zone keeps the information about the domain &lt;a id="KonaLink4" target="_top" class="kLink" style="text-decoration: underline ! important; position: static;" href="dns.html"&gt;&lt;span class="kLink" style=""&gt;database&lt;/span&gt;&lt;/a&gt;. It does this by maintaining two types of files:&lt;br /&gt;&lt;/div&gt; &lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;Zone File&lt;/span&gt; - It is used to map host names to address, to identify the mail servers, and to provide other domain information.&lt;br /&gt;&lt;/div&gt; &lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;Reverse Zone File&lt;/span&gt; - This file is responsible for mapping IP address to host names, which is exactly the opposite of what the zone file does.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;Note:&lt;/span&gt; The zone file and the reverse zone file has to be maintained by the user.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);font-size:130%;" &gt;Name Server Hierarchy&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;Master Name Server&lt;/span&gt; - Also called primary server. This contains the master copy of data for a zone.&lt;br /&gt;&lt;/div&gt; &lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;Slave Name Server&lt;/span&gt; - Also known as secondary server. This provides a backup to the master name server. All slave servers maintain synchronization with their master name server.&lt;br /&gt;&lt;/div&gt; &lt;div style="text-align: justify;"&gt;A zone may have multiple slave servers. But there will be only one master name server per zone.&lt;br /&gt;&lt;br /&gt;               &lt;a name="112632223045511406"&gt;&lt;/a&gt;            &lt;h3 class="post-title"&gt;                Apache : Name-based Vs IP Based Virtual Hosting              &lt;/h3&gt;                          &lt;div style="text-align: justify;"&gt;&lt;span style="font-size:180%;"&gt;O&lt;/span&gt;ften when, you attend interviews for network administration related jobs , the one question you may encounter while discussing about &lt;a id="KonaLink0" target="_top" class="kLink" style="text-decoration: underline ! important; position: static;" href="apache-name-based-vs-ip-based-virtual.html#"&gt;&lt;span class="kLink" style=""&gt;web &lt;/span&gt;&lt;span class="kLink" style=""&gt;servers&lt;/span&gt;&lt;/a&gt; is the difference between name-based and IP based virtual hosting. Here I will explain the difference between the two.&lt;br /&gt;&lt;/div&gt; &lt;span class="fullpost"&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;In &lt;span style="font-weight: bold;"&gt;IP-based virtual hosting&lt;/span&gt;, you are running more than one web site on the same server machine, but &lt;span style="font-weight: bold;"&gt;each web site has its own IP address&lt;/span&gt;. In order to do this, you have to first tell your operating system about the multiple IP addresses. See here &lt;b&gt;configuring multiple IP addresses on a single NIC&lt;/b&gt; . You also need to put each IP in your &lt;b&gt;DNS&lt;/b&gt;, so that it will resolve to the names that you want to give those addresses .&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;In &lt;span style="font-weight: bold;"&gt;Name-based virtual hosting&lt;/span&gt;, you &lt;span style="font-weight: bold;"&gt;host multiple websites on the same IP address&lt;/span&gt;. But for this to succeed, you have to put more than one DNS record for your IP address in the DNS &lt;a id="KonaLink1" target="_top" class="kLink" style="text-decoration: underline ! important; position: static;" href="apache-name-based-vs-ip-based-virtual.html#"&gt;&lt;span class="kLink" style="color: rgb(68, 157, 52) ! important; font-weight: 400; position: static;font-family:Georgia,Serif;" &gt;database&lt;/span&gt;&lt;/a&gt;. This is done using &lt;span style="font-family:courier new;"&gt;CNAME&lt;/span&gt; tag in BIND. You can have as many &lt;span style="font-family:courier new;"&gt;CNAME&lt;/span&gt;(s) as you like pointing to a particular machine. Of course, you also have to uncomment the &lt;span style="font-family:courier new;"&gt;NameVirtualHost&lt;/span&gt; section in &lt;span style="font-family:courier new;"&gt;httpd.conf&lt;/span&gt; file and point it to the IP address of your machine.&lt;br /&gt;&lt;/div&gt; &lt;pre&gt;&lt;br /&gt;#FILE: httpd.conf&lt;br /&gt;...&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;NameVirtualHost 192.168.0.1&lt;/span&gt;&lt;br /&gt;...&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;                      &lt;a name="111655610535221729"&gt;&lt;/a&gt;            &lt;h3 class="post-title"&gt;                &lt;b&gt;Setting up multiple IP addresses on a single NIC&lt;/b&gt;              &lt;/h3&gt;                          &lt;div style="text-align: justify;"&gt;&lt;span style="font-size:180%;"&gt;I&lt;/span&gt;n linux, you can bind multiple IP addresses on a single NIC. This is usually done in case you are using your linux machine as a webserver and is hosting multiple &lt;a id="KonaLink0" target="_top" class="kLink" style="text-decoration: underline ! important; position: static;" href="http://linuxhelp.blogspot.com/2005/05/setting-up-multiple-ip-addresses-on.html#"&gt;&lt;span class="kLink" style="color: rgb(68, 157, 52) ! important; font-weight: 400; position: static;font-family:Georgia,Serif;" &gt;domains&lt;/span&gt;&lt;/a&gt;  and you want to bind each domain to a unique IP address. This is  how it is done.&lt;br /&gt;&lt;/div&gt; &lt;div style="text-align: justify;"&gt;Let us assume that you already have a NIC which is bound with a static IP address. Then you will have a file called &lt;span style="font-weight: bold;font-family:courier new;" &gt;/etc/sysconfig/network-scripts/ifcfg-eth0&lt;/span&gt; .My &lt;span style="font-family:courier new;"&gt;ifcfg-eth0&lt;/span&gt; file has the following entries:&lt;br /&gt;&lt;/div&gt; &lt;blockquote  style="font-family:courier new;"&gt;# File: ifcfg-eth0&lt;br /&gt;DEVICE=eth0&lt;br /&gt;ONBOOT=yes&lt;br /&gt;BOOTPROTO=static&lt;br /&gt;IPADDR=192.168.0.1&lt;br /&gt;NETMASK=255.255.255.0&lt;br /&gt;BROADCAST=192.168.0.255&lt;br /&gt;NETWORK=192.168.0.0&lt;br /&gt;HWADDR=00:80:48:34:C2:84&lt;br /&gt;&lt;/blockquote&gt;Now to bind another IP address to the same NIC, I create a copy of the above file &lt;span style="font-family:courier new;"&gt;ifcfg-eth0&lt;/span&gt; and name it as &lt;span style="font-family:courier new;"&gt;ifcfg-eth0:1&lt;/span&gt;&lt;br /&gt;&lt;blockquote  style="font-family:courier new;"&gt;# &lt;span style="font-weight: bold;"&gt;cd /etc/sysconfig/networking-scripts&lt;/span&gt;&lt;br /&gt;# &lt;span style="font-weight: bold;"&gt;cp ifcfg-eth0  ifcfg-eth0:1&lt;/span&gt;&lt;/blockquote&gt;Now just change the values of the DEVICE and IPADDR in the file as follows:&lt;br /&gt;&lt;blockquote  style="font-family:courier new;"&gt;# File: &lt;span style="color: rgb(204, 0, 0);"&gt;ifcfg-eth0:1&lt;/span&gt;&lt;br /&gt;DEVICE=&lt;span style="color: rgb(204, 0, 0);"&gt;eth0:1&lt;/span&gt;&lt;br /&gt;ONBOOT=yes&lt;br /&gt;BOOTPROTO=static&lt;br /&gt;IPADDR=&lt;span style="color: rgb(204, 0, 0);"&gt;192.168.0.5&lt;/span&gt;&lt;br /&gt;NETMASK=255.255.255.0&lt;br /&gt;BROADCAST=192.168.0.255&lt;br /&gt;NETWORK=192.168.0.0&lt;br /&gt;HWADDR=00:80:48:34:C2:84&lt;br /&gt;&lt;/blockquote&gt;And lastly, restart the networking service. If you are using RedHat, then it is as simple as :&lt;br /&gt;# &lt;span style="font-weight: bold;"&gt;service network restart&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;                      &lt;a name="110544435232701068"&gt;&lt;/a&gt;            &lt;h3 class="post-title"&gt;                &lt;b&gt;How to install a Network card in linux&lt;/b&gt;              &lt;/h3&gt;                          &lt;div style="text-align: justify;"&gt;There are different ways of installing a network card in linux - and that too depending on the linux distribution that you are using. I will explain each one of these methods here.&lt;br /&gt;&lt;/div&gt; &lt;span style="font-weight: bold;"&gt;1) The Manual method&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;First open the computer case and insert the network card into an empty PCI slot. Then boot up your machine to load linux. In linux login as root and then navigate to the directory &lt;span style="font-weight: bold;font-family:courier new;" &gt;/lib/modules/kernel_version_number/net/&lt;/span&gt; . Here you will find the modules supported by your system. Assuming that you have a 3Com ethernet card, in which case, the module name is &lt;span style="font-weight: bold;font-family:courier new;" &gt;3c59x&lt;/span&gt; , you have to add this in the &lt;span style="font-weight: bold;font-family:courier new;" &gt;/etc/modules.conf&lt;/span&gt; file to let the machine detect the card each time the machine boots.&lt;br /&gt;&lt;/div&gt; &lt;blockquote&gt;#File: /etc/modules.conf&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;alias eth0 3c59x&lt;/span&gt;&lt;/blockquote&gt; &lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;Note:&lt;/span&gt; If you have only one network card, it is known by the name &lt;span style="font-weight: bold;font-family:courier new;" &gt;eth0&lt;/span&gt;, the succeeding network cards in your &lt;a id="KonaLink0" target="_top" class="kLink" style="text-decoration: underline ! important; position: static;" href="http://linuxhelp.blogspot.com/2005/01/how-to-install-network-card-in-linux.html#"&gt;&lt;span class="kLink" style="color: rgb(68, 157, 52) ! important; font-weight: 400; position: static;font-family:Georgia,Serif;" &gt;computer&lt;/span&gt;&lt;/a&gt; go by the name &lt;span style="font-weight: bold;font-family:courier new;" &gt;eth1&lt;/span&gt;, &lt;span style="font-weight: bold;font-family:courier new;" &gt;eth2&lt;/span&gt; ... and so on.&lt;br /&gt;&lt;/div&gt; Now you have to load the module into the kernel.&lt;br /&gt;&lt;blockquote face="courier new"&gt;root# &lt;span style="font-weight: bold;"&gt;/sbin/insmod -v 3c59x&lt;/span&gt;&lt;/blockquote&gt; &lt;div style="text-align: justify;"&gt;Next configure an &lt;a id="KonaLink1" target="_top" class="kLink" style="text-decoration: underline ! important; position: static;" href="http://linuxhelp.blogspot.com/2005/01/how-to-install-network-card-in-linux.html#"&gt;&lt;span class="kLink" style=""&gt;IP &lt;/span&gt;&lt;span class="kLink" style=""&gt;address&lt;/span&gt;&lt;/a&gt; for the network card using ifconfig or netconfig or any other method if your machine gets its IP address from a DHCP server. Eg:&lt;br /&gt;&lt;/div&gt; &lt;blockquote style="font-family: courier new;"&gt;root# &lt;span style="font-weight: bold;"&gt;ifconfig eth0 192.168.1.5 netmask 255.255.255.0 broadcast 192.168.1.255&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;2) The Easy way&lt;/span&gt;&lt;br /&gt;RedHat/Fedora distributions of linux ships with Kudzu a device detection program which runs during systems initialization (&lt;span style="font-weight: bold;font-family:courier new;" &gt;/etc/rc.d/init.d/kudzu&lt;/span&gt;). This can detect a newly installed NIC and load the appropriate driver. Then use the program &lt;span style="font-weight: bold;font-family:courier new;" &gt;/usr/sbin/netconfig&lt;/span&gt; to configure the IP address and network settings. The configuration will be stored so that it will be utilized upon system boot.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;h3 class="post-title"&gt; How to Assign an IP address&lt;/h3&gt;  &lt;div style="text-align: justify;"&gt;&lt;a id="KonaLink0" target="_top" class="kLink" style="text-decoration: underline ! important; position: static;" href="http://linuxhelp.blogspot.com/2005/01/how-to-assign-ip-address.html#"&gt;&lt;span class="kLink" style="color: rgb(68, 157, 52) ! important; font-weight: 400; position: static;font-family:Georgia,Serif;" &gt;Computers&lt;/span&gt;&lt;/a&gt; may be assigned a static IP address or assigned one dynamically (via DHCP). Here I will explain the steps needed to assign an IP address to your NIC.&lt;br /&gt;&lt;/div&gt; &lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;Choose one of the following methods:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;  =&gt; Dynamic Host Configuration Protocol&lt;/b&gt; (&lt;b&gt;DHCP&lt;/b&gt;) is a protocol used by networked computers (&lt;i&gt;clients&lt;/i&gt;) to obtain IP addresses and other parameters such as the &lt;a href="http://en.wikipedia.org/wiki/Default_gateway" title="Default gateway"&gt;default gateway&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Subnet_mask" title="Subnet mask"&gt;subnet mask&lt;/a&gt;, and IP addresses of &lt;a href="http://en.wikipedia.org/wiki/Domain_name_system" title="Domain name system"&gt;DNS&lt;/a&gt; servers from a DHCP server.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Command line : &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;&lt;blockquote&gt;/sbin/ifconfig eth0 192.168.1.3 netmask 255.255.255.0 broadcast 192.168.1.255&lt;/blockquote&gt;&lt;/span&gt; &lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;GUI tool&lt;/span&gt; : You can use the GUI tool &lt;span style="font-weight: bold;font-family:courier new;" &gt;/usr/bin/neat&lt;/span&gt; - Gnome GUI network administration tool. It handles all interfaces and configures for both static assignment as well as dynamic assignment using DHCP.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;Console tool&lt;/span&gt; : &lt;span style="font-weight: bold;font-family:courier new;" &gt;/usr/sbin/netconfig&lt;/span&gt; (Only seems to work for the first network interface eth0 but not eth1,...)&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;The &lt;span style="font-weight: bold;font-family:courier new;" &gt;ifconfig&lt;/span&gt; command &lt;span style="color: rgb(153, 0, 0);"&gt;does NOT&lt;/span&gt; store this information permanently. Upon reboot this information is lost. (Manually add the commands to the end of the file &lt;span style="font-weight: bold;font-family:courier new;" &gt;/etc/rc.d/rc.local&lt;/span&gt; to execute them upon boot.) The command &lt;span style="font-family:courier new;"&gt;netconfig&lt;/span&gt; and &lt;span style="font-family:courier new;"&gt;/usr/bin/neat&lt;/span&gt; make permanent changes to system network configuration files located in &lt;span style="font-weight: bold;font-family:courier new;" &gt;/etc/sysconfig/network-scripts/ &lt;/span&gt;, so that this information is retained.&lt;br /&gt;&lt;/div&gt; &lt;div style="text-align: justify;"&gt;The Red Hat configuration tools store the configuration information in the file &lt;span style="font-weight: bold;font-family:courier new;" &gt;/etc/sysconfig/network&lt;/span&gt;. They will also allow one to configure routing information.&lt;br /&gt;&lt;/div&gt; &lt;blockquote&gt;# File: &lt;span style="font-family:courier new;"&gt;/etc/sysconfig/network&lt;/span&gt;&lt;br /&gt;# Static IP address Configuration:&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);font-family:courier new;" &gt;NETWORKING=yes&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);font-family:courier new;" &gt;HOSTNAME=my-hostname&lt;/span&gt;  # Hostname is defined here and by command hostname&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);font-family:courier new;" &gt;FORWARD_IPV4=true&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt; &lt;/span&gt;        # True for NAT firewall gateways and linux routers. False for&lt;br /&gt;                                               # everyone else - desktops and &lt;a id="KonaLink1" target="_top" class="kLink" style="text-decoration: underline ! important; position: static;" href="http://linuxhelp.blogspot.com/2005/01/how-to-assign-ip-address.html#"&gt;&lt;span class="kLink" style="color: rgb(68, 157, 52) ! important; font-weight: 400; position: static;font-family:Georgia,Serif;" &gt;servers&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);font-family:courier new;" &gt;GATEWAY="XXX.XXX.XXX.YYY"&lt;/span&gt;   #  Used if your network is connected to another&lt;br /&gt;                                                 #  network or the internet. &lt;/blockquote&gt;&lt;br /&gt;#  Gateway not defined here for DHCP.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;#  Or for DHCP configuration: in the same file  /etc/sysconfig/network&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;NETWORKING=yes&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;HOSTNAME=my-hostname &lt;/span&gt;     #  Hostname is defined here and by command hostname&lt;br /&gt;                                              # Gateway is assigned by DHCP.&lt;/blockquote&gt;&lt;blockquote&gt;# File: &lt;span style="font-family:courier new;"&gt;/etc/sysconfig/network-scripts/ifcfg-eth0&lt;/span&gt;&lt;br /&gt;# Static IP address configuration:&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);font-family:courier new;" &gt;DEVICE=eth0&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);font-family:courier new;" &gt;BOOTPROTO=static&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);font-family:courier new;" &gt;BROADCAST=XXX.XXX.XXX.255&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);font-family:courier new;" &gt;IPADDR=XXX.XXX.XXX.XXX&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);font-family:courier new;" &gt;NETMASK=255.255.255.0&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);font-family:courier new;" &gt;NETWORK=XXX.XXX.XXX.0&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);font-family:courier new;" &gt;ONBOOT=yes&lt;/span&gt;&lt;/blockquote&gt;&lt;blockquote&gt;# OR for DHCP configuration:&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);font-family:courier new;" &gt;DEVICE=eth0&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);font-family:courier new;" &gt;ONBOOT=yes&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);font-family:courier new;" &gt;BOOTPROTO=dhcp&lt;/span&gt;&lt;/blockquote&gt; &lt;div style="text-align: justify;"&gt;Used by script &lt;span style="font-weight: bold;font-family:courier new;" &gt;/etc/sysconfig/network-scripts/ifup&lt;/span&gt; to bring the various network interfaces on-line.&lt;br /&gt;&lt;/div&gt; To disable DHCP change &lt;span style="color: rgb(153, 0, 0);font-family:courier new;" &gt;BOOTPROTO=dhcp&lt;/span&gt; to &lt;span style="color: rgb(153, 0, 0);font-family:courier new;" &gt;BOOTPROTO=none &lt;/span&gt;&lt;br /&gt;In order for updated information in any of these files to take effect, one must issue the command:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;root# &lt;span style="font-weight: bold;"&gt;service network restart&lt;/span&gt; &lt;/span&gt;&lt;/div&gt; &lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4053486063052531067-4644784480278736109?l=ashko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ashko.blogspot.com/feeds/4644784480278736109/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4053486063052531067&amp;postID=4644784480278736109' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/4644784480278736109'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/4644784480278736109'/><link rel='alternate' type='text/html' href='http://ashko.blogspot.com/2007/10/understanding-domain-name-system-dns-d.html' title=''/><author><name>ÅšhΘκ  Šμ∂απi</name><uri>http://www.blogger.com/profile/17739127081189346556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4053486063052531067.post-1870294390521837470</id><published>2007-07-31T07:56:00.000-07:00</published><updated>2007-07-31T07:57:22.508-07:00</updated><title type='text'>The Future of The Web</title><content type='html'>The next-generation Net won’t just be more portable and personal. It’ll also harness the power of people, making it even easier to zero in on precisely what you’re looking for.&lt;br /&gt;&lt;br /&gt;The web’s most common method of interaction is the tried-and-true link: “Click here and we’ll show you a different page.” But the future of online will be fast, two-way communication, the roots of which are beginning to take hold. New technologies will soon give us speedy, uninterrupted access to the Web wherever we wander. We’ll see innovative Web applications that allow us to access information anywhere and work seamlessly with colleagues around the globe. People will gain more power online—rather than simply reading the news, they’ll be able to go out and uncover some stories of their own. And new sites and services will offer information targeted precisely to your needs, rendering one-size-fits-all sites obsolete.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The Web Gets Down to Work&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;New web services—ones that mimic desktop applications but work entirely within a browser window—appear constantly. But the Web apps you’ll eventually use will focus on productivity and mobility, instead of simply giving you the same functions you’d find in a desktop application.&lt;br /&gt;&lt;br /&gt;“Web applications are terrific for situations where you want to share and collaborate,” says Google product manager Bret Taylor. “That’s where we see the most benefit: for consumers planning the annual family reunion or a group of colleagues putting together a sales proposal.”&lt;br /&gt;&lt;br /&gt;Brandon Schauer, design strategist for Web consulting firm Adaptive Path, says the next phase of Web applications will focus on practical uses: “things that the rest of the world might have a reason to interact with, not just the Generation Y people who have time to click around,” he says.&lt;br /&gt;&lt;br /&gt;One business-focused Web application, Coghead, has been in development since 2003 and is likely to launch soon. It’s a beefy-looking app that allows nonprogrammers to build their own custom applications for tasks like inventory control, with data stored entirely online. Coghead CEO Paul McNamara says the application will be aimed at small to medium-size businesses, and at people who have some level of technical ability—“people who do macros in Microsoft Excel, work in Microsoft Access, or Adobe Dream-weaver,” explains McNamara.&lt;br /&gt;&lt;br /&gt;Another Web application that reflects that trend toward productivity is weSpendMoney. It’s one of the first offerings to store users’ financial data exclusively online, unlike more traditional desktop applications. Pedro Sousa, one of the developers, says that future versions of the application will allow users to view their data on the tiny screens of Web-enabled cell phones, too.&lt;br /&gt;&lt;br /&gt;A focus on mobility is a common theme among Web apps. “At some point, applications as advanced as Google Earth will be able to run on devices as small as a cell phone,” says Google’s Taylor. “Users will be able to search and collaborate more effectively no matter where they are.”&lt;br /&gt;&lt;br /&gt;Another category that will gain in popularity is what Adaptive Path’s Schauer calls “workarounds.” Examples include Kayak.com, a site that uses a Web app to help people deal with the aggravation of shopping for airline tickets, and VideoEgg, which compresses video via a plug-in, thereby skirting poky uploads caused by slow upstream connections.&lt;br /&gt;&lt;br /&gt;Social networking sites like MySpace are huge, but sites that aren’t purely social will use people connections to solve problems. Schauer says sites that use social networks in this way “plug into what the Web has always been great at, which is getting you together with people who share the same interests but may be miles away.” Examples include Last.fm and Pandora, which ascertain your musical preferences and play songs from additional artists you might like. These sites also let you find and play “stations” that have been created by others. Another similar site is Soundflavor.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Search Engines With Real Savvy&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Today most search engines depend primarily on algorithmic processing: results that are ordered by popularity. But better systems are beginning to supplement the blunt-force approach. “We want to do a better job of understanding the user’s intent and the content provider’s intentions,” says Peter Norvig, director of research for Google. “We mostly rely on matching keywords, but we’d like to get closer to matching the intent.”&lt;br /&gt;&lt;br /&gt;Microsoft is another company investing heavily in research on search technology. “We’re working on all kinds of things that will go away from ‘here’s ten links on a page,’” says Adam Sohn, a director in Microsoft’s online services group, which is responsible for the Windows Live portal. “If someone is searching for ‘Jaguar,’ he explains, “the smarts to distinguish between ‘he’s looking for a car and ‘a big cat in the jungle’—that’s coming.”&lt;br /&gt;&lt;br /&gt;Search engines can also deliver improved, more personalized results by adding better sources of information. “A search engine would be very good at telling me who won the FIFA World Cup, but bad at telling who’s the best nanny in the neighborhood,” says Sohn. So search engines are adding social networking features for sharing information within small groups.&lt;br /&gt;&lt;br /&gt;Social-network searching will extend to other areas, too. Sohn says most video sites encourage the people who upload clips and those who view them to add tags. “Over time, especially with video, there will be this social input, where people add tags to other people’s video. Then you get this sort of community-reinforced set of searchable attributes.”&lt;br /&gt;&lt;br /&gt;Soliciting input will also help provide searchers with more personalized results. Norvig says Google should do a better job of helping people use the search engine the way it is by offering proactive suggestions—for example, “It looks like you’re trying to do this kind of search; here’s how you do it.” Sohn says Microsoft is building two-way feedback mechanisms that will ask users how useful they found the search result.&lt;br /&gt;&lt;br /&gt;Both Norvig and Sohn agree that one issue search engines will be addressing is how to present search results. Most search sites have many sections drawing on separate databases. “[We have] one look for Web sites, one for news, one for images,” Norvig says of Google’s site. “We want to find a way to combine all of that information.” Microsoft’s Sohn uses the example of combining results from Windows Live’s QnA (question and answer) section with its main search section. “We need to build the connection between the two services. It’s not a multiyear thing; it’s in the next 12 to 18 months.”&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;New Clout for Everyday People&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Even with throttled bandwidth, people are uploading 65,000 new videos to YouTube each day. More than 52 million blogs are covering everything from the best burger in Bangalore to the latest finance scandal. Think that’s impressive? Amateurs will find new venues that will give them even greater influence.&lt;br /&gt;&lt;br /&gt;Jay Rosen, an associate professor of journalism at New York University and writer of the PressThink blog, says that amateur and professional journalists can work together to produce some-thing greater than either could produce separately. “Bloggers are good at filtering and organizing information,” he says.&lt;br /&gt;&lt;br /&gt;“Sometimes they get involved in [reporting on] things, but often it’s accidental. They’re collating what’s out there.” NewAssignment.net, combines the efforts of amateurs and professionals. Members will suggest, debate, and research stories; professional reporters will complete selected stories.&lt;br /&gt;&lt;br /&gt;The Web will continue to reshape itself to serve not just professionals and geeks but everyone, whether they have an opinion, a gripe, or simply a job that needs to be done.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4053486063052531067-1870294390521837470?l=ashko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ashko.blogspot.com/feeds/1870294390521837470/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4053486063052531067&amp;postID=1870294390521837470' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/1870294390521837470'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/1870294390521837470'/><link rel='alternate' type='text/html' href='http://ashko.blogspot.com/2007/07/future-of-web.html' title='The Future of The Web'/><author><name>ÅšhΘκ  Šμ∂απi</name><uri>http://www.blogger.com/profile/17739127081189346556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4053486063052531067.post-5935400618151774231</id><published>2007-06-04T08:05:00.000-07:00</published><updated>2007-06-04T08:33:47.270-07:00</updated><title type='text'>10 Valuable Tips for Creating Your Web Site</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Introduction&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;When looking for ways to build of your web site, even minor steps can make a huge difference. The most helpful information and best content will have little impact without simple protocols that make your Web site easier to use and more visually appealing. This paper focuses on 10 tips you can employ to ensure your web site is effec- tive from the day it goes live.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1. Accessibility&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Web site accessibility has recently become a very important issue in the web community. Because of Section 508 of the Rehabilitation Act of 1973, all web sites and pages created by Federal agencies and Federal contrac-tors after June 21, 2001 must comply with its provisions. The purpose of the law is to make web sites accessi-ble to all individuals, including those with disabilities. The World Wide Web Consortium (W3C) developed Web&lt;br /&gt;Content Accessibility Guidelines (May 1999), which expand the scope of Section 508.&lt;br /&gt;&lt;br /&gt;This is very important to all web developers, whether you are a government agency, a contractor who does work for the government, or a private firm with its own web site. An accessible web site refers to any content or information provided via an online medium that all individuals (including those with disabilities) could easily access and understand. Disabilities include not only visual impairments, but auditory, cognitive, and physical&lt;br /&gt;impairments as well. They can range from very severe (total blindness, for example) to something as simple as the increasing inability to see contrasts that develop as we age. Greater accessibility means more people can fully utilize your web site’s features.&lt;br /&gt;&lt;br /&gt;There are a number of aids available for enhancing accessibility. These range from programs like Jaws or IBM’s Home Page Reader—which read the page aloud for the visually impaired—to sip-and-puff systems for the quadriplegic. It is up to the web developer to create pages that allow these systems to provide an equivalent alternative for these individuals. Think of accessing a web page as being similar to a play or opera. If you read the script without benefit of the actors’ interpretation, lights, scenery, or music, you are only experiencing one aspect of the author’s intent. The same is true of web access: if you can only hear the words being read, for example, with no description of the images on the page or other visual components, you would not fully expe-rience the information being provided on the page. That is why, when we include an image, it is important to use the “alt” attribute to provide a description of the image. This enables a screen reader to read this informa-&lt;br /&gt;tion aloud for a visually impaired user.&lt;br /&gt;&lt;br /&gt;There are several other tips like using &lt;th&gt; table headers with tables of information, not just placeholders. Be careful of using the colors red and green together because of red/green colorblindness. Use sounds with care. Not everyone can hear, nor does everyone have speakers set up on their computers.&lt;br /&gt;&lt;br /&gt;So how do you know if your web site is accessible? Go to http://webxact.watchfire.com and enter the URL for a web page. This free application will test your page and let you know where it does not comply&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2. Security&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Security is crucial to the success of your web site. There are several steps you can take to minimize the risk that your web sites will be subjected to a breech in security.&lt;br /&gt;&lt;br /&gt;    &lt;span style="font-weight: bold;"&gt;Security Updates&lt;/span&gt;&lt;br /&gt;        Be sure you are running the most current version of your web Server. Monitor your         vendor updates, and per-form regular maintenance.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    Validate User Input on the Client and the Server&lt;/span&gt;&lt;br /&gt;        Validating user input on the client is great for user experience. However, you need to     validate input on the server side as well. Consider that there are tools that look and feel to your sever like a web site when in fact they are actually designed to fake input such as passwords.&lt;br /&gt;&lt;br /&gt;    &lt;span style="font-weight: bold;"&gt;Audit Logs&lt;/span&gt;&lt;br /&gt;        Maintain and review server logs to check for suspicious activity.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    Common Settings&lt;/span&gt;&lt;br /&gt;        Be sure to minimize the risk to your server by minimizing the things users can do on your server. For example,  don’t permit users to browse the directory structure of your site unless it’s necessary.&lt;br /&gt;&lt;br /&gt; &lt;span style="font-weight: bold;"&gt;   Lockdown Your Server&lt;/span&gt;&lt;br /&gt;        Most servers have standard development mode and then a production mode. For example, Microsoft’s Internet  Information Server (IIS) has a lockdown utility that minimizes the attack surface for your web site.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3.Web Server Statistics&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;How many visitors do you have? What pages do they frequent? What times do they log on? Utilize a web tool to assist you in not only collecting these statistics but also analyzing and correlating them. Web tools, such as Web Trends, will aid you in collecting and utilizing this knowledge to answer these questions about your site. Build a web page that not only follows appropriate standards, but also drives repeat visitations.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;4. Dynamic Technologies Styles&lt;/span&gt;&lt;br /&gt;Are the pages within your site beginning to feel and act a little plain? Would you like more ways to format your documents and give users more interaction with them? If so, then your site could make use of languages such as Cascading Style Sheets and JavaScript.&lt;br /&gt;&lt;br /&gt;Cascading Style Sheets (CSS) technology gives you more control of page layout and the ability to control the design of multiple pages on your site from a single file. Additionally, CSS allows you to develop more sophisticat- ed layouts, more font schemes, and even more interactivity for your pages than was possible using just HTML.&lt;br /&gt;&lt;br /&gt;JavaScript techniques are needed to develop cutting-edge, interactive web sites. From opening windows to image-flipping and form validation, Javascript can help you build exciting, dynamic web pages.&lt;br /&gt;&lt;br /&gt;Integrating HTML, JavaScript, and Cascading Style Sheets techniques are collectively known as Dynamic HTML or DOM Scripting. Utilizing all three languages allow you to fully exploit the capabilities of Netscape Communicator, Firefox, and Microsoft Internet Explorer.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;5. Efficient Use of Appropriate Design Software&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In the past, many web developers eschewed graphical web editing packages and boasted of developing pages using a simple text editor (for example, Notepad). There is still a place for text editors, but efficient designers and developers both use appropriate design software, often manually tweaking the code. Such packages offer a what- you-see-is-what-you-get (WYSIWYG) environment for designers and code-writing tools for developers. These have&lt;br /&gt;the software-complete repetitive steps, and let designers and developers focus on what they do best.&lt;br /&gt;&lt;br /&gt;    There are many options, but here are some of the major ones:&lt;br /&gt;   &lt;span style="color: rgb(204, 102, 0);"&gt;Dreamweaver (Adobe, formerly Macromedia)&lt;/span&gt;&lt;br /&gt;         • The most popular package&lt;br /&gt;         • Offers both design (layout) and development (programming) support&lt;br /&gt;    • Supports all major server-side scripting languages (ColdFusion, ASP, PHP, JSP), Javascript, XML, and&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: rgb(255, 204, 51);"&gt;&lt;span style="color: rgb(204, 102, 0);"&gt;ASP.NET (VB.NET and C#)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;        • Integrates well with Adobe Flash and Adobe Fireworks (both formerly Macromedia)&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: rgb(204, 102, 0);"&gt;GoLive (Adobe)&lt;/span&gt;&lt;br /&gt;        • Offers both design (layout) and development (programming) support&lt;br /&gt;        • Supports several scripting and markup languages (PHP, JavaScript, SVG-t, SMIL)&lt;br /&gt;        • Integrates well with long-standing Adobe products (Photoshop, Illustrator, InDesign)&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: rgb(204, 102, 0);"&gt;FrontPage (Microsoft)&lt;/span&gt;&lt;br /&gt;        • Offers both design (layout) and development (programming) support&lt;br /&gt;        • Supports Microsoft JScript and ASP.NET (VB.NET and C#)&lt;br /&gt;        • Integrates well with Visual Studio .NET and the Microsoft Office Suite&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: rgb(204, 102, 0);"&gt;Microsoft Visual Studio (Microsoft)&lt;/span&gt;&lt;br /&gt;        • Primarily provides development (programming) support&lt;br /&gt;        • Integrated Design Environment (IDE) for developing in .NET environment&lt;br /&gt;      • Supports .NET languages (primarily VB.NET and C#, but other extensions for other           &lt;br /&gt;         languages provided by third parties)&lt;br /&gt;&lt;span style="color: rgb(204, 102, 0);"&gt;&lt;br /&gt;    Eclipse (open source)&lt;/span&gt;&lt;br /&gt;        • Primarily provides development (programming) support&lt;br /&gt;      • Integrated Design Environment (IDE) for developing in any environment, but mostly      &lt;br /&gt;         ommonly used for  J2EE&lt;br /&gt;        • Supports a multitude of programming languages (not language-specific).&lt;br /&gt;&lt;br /&gt;&lt;br style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;6. Standards and Browser Independence&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Web site development has come a long way. There are lots of new tools that will help with web-page design, not to mention web sites that offer suggestions and ideas for making your web site absolutely incredible. Probably the biggest movement is the increasing use of Cascading Style sheets to separate page content from formatting. We are also seeing more sophisticated use of JavaScript to make pages more dynamic and, therefore, more interesting. Along with this, the World Wide Web Consortium (W3C) has instituted an effort to standardize how browsers handle the display of web pages through the use of XHTML. It is hoped that among all of these initiatives, programming for the web will become less a matter of making sure our pages work on all browsers by testing against each one, and more one of creating web pages that are useful, accessible, and exciting.&lt;br /&gt;&lt;br /&gt;There are a vast number of resources on the web to help improve web sites. For information about the new XHTML standards, as well as help with Cascading Style Sheets and DOM Scripting (using JavaScript to make your web pages more dynamic), the W3C pages (http://www.w3.org) are invaluable. They include examples and tutorials, both of which are very well done. For some wonderful examples of Cascading Style Sheets, we recommend CSSZenGarden.com (http://www.csszengarden.com). The organization that runs this site supplies an html page with the required content. Designers are invited to create an external style sheet to format the page. New contributions are regularly posted.&lt;br /&gt;&lt;br /&gt;Another excellent resource is http://www.dynamicdrive.com. The Internet group on Google groups, formerly Deja, http://groups.google.com/groups is helpful as well. The good news is that you can post a question through Deja/Google groups. Within 24 hours you will usually get one-to-three technically correct answers. Other potential resources include:&lt;br /&gt;&lt;br /&gt;    &lt;b&gt;&lt;a href="http://www.developer.com/"&gt;http://www.developer.com&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;    This is a solid resource for most scripting/programming languages and is top-notch for Java.&lt;br /&gt;    &lt;b&gt;&lt;a href="http://www.codehound.com/"&gt;http://www.codehound.com&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;    This is another language resource and is especially helpful with Microsoft .NET technologies.&lt;br /&gt;    &lt;b&gt;&lt;a href="http://www.4GuysFromRolla.com"&gt;http://www.4GuysFromRolla.com&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;    This is the definitive place to get ASP or ASP.NET information.&lt;br /&gt;    &lt;b&gt;&lt;a href="http://www.php.net"&gt;http://www.php.net&lt;/a&gt;&lt;/b&gt; A good resource for php.&lt;br /&gt;    &lt;b&gt;&lt;a href="http://www.news.com"&gt;http://www.news.com&lt;/a&gt;&lt;/b&gt; CNET news.&lt;br /&gt;    This site keeps you up-to-date on IT news.&lt;br /&gt;    &lt;b&gt;&lt;a href="http://www.theinquirer.net"&gt;http://www.theinquirer.net&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;    This site provides a hardware outlook for six months to a year-and-a half.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;7. Database Access with Server-side Scripting Languages&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Static web pages are good place to start, but they quickly can become time intensive and not an efficient use of a designer or developer’s time. Database-driven web sites can refresh their own data, presenting up-to-the- minute data in way manual updates could never do. A dozen or so programmed pages can dynamically change so that they do the job of thousands of static pages. The benefits are clear: more timely information; fewer pages to maintain; and a freeing up of both designers and developers to enhance and further develop the functionality of a site, rather than its content.&lt;br /&gt;&lt;br /&gt;But by itself, HTML is not up to this kind of job; that’s not what it was designed to do. A server-side program-&lt;br /&gt;ming language is needed. There are several options, but here are a few of the major products available:&lt;br /&gt;   &lt;br /&gt;    &lt;span style="color: rgb(153, 51, 153);"&gt;Active Server Pages (ASP) (Microsoft)&lt;/span&gt;&lt;br /&gt;        • Written using VBScript (server-side JavaScript also possible, but rare)&lt;br /&gt;        • Comes installed with Windows servers&lt;br /&gt;        • Can run in UNIX/Linux environment using Sun ONE&lt;br /&gt;        • Being somewhat overshadowed by ASP.NET&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: rgb(204, 51, 204);"&gt;PHP Hypertext Preprocessor (PHP) (open source)&lt;/span&gt;&lt;br /&gt;        • C-like programming language&lt;br /&gt;        • No licensing cost (open-source)&lt;br /&gt;        • Can run on UNIX/Linux servers or Windows-based servers&lt;br /&gt;        • Close integration with MySQL database&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: rgb(153, 51, 153);"&gt;ColdFusion (Adobe)&lt;/span&gt;&lt;br /&gt;        • Written using tag-based language which integrates well with web-editing software (can         also be written using a scripting-like language)&lt;br /&gt;        • Easy to learn, quick to create and maintain pages&lt;br /&gt;        • Java-based architecture&lt;br /&gt;        • Can run on UNIX/Linux server or Windows-based servers&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: rgb(153, 51, 153);"&gt;Java 2 Enterprise Edition (J2EE) (Sun)&lt;/span&gt;&lt;br /&gt;        • Written using cross-platform Java language&lt;br /&gt;        • Most often deployed on UNIX/Linux, but can run on any system&lt;br /&gt;        • Web page scripting using Java Server Pages (JSP)&lt;br /&gt;        • Most appropriate for enterprise-wide installations involving multiple servers, databases, and possibly&lt;br /&gt;        mainframe.&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: rgb(153, 51, 153);"&gt;ASP.NET (Microsoft)&lt;/span&gt;&lt;br /&gt;        • Written using VB.NET or C# (other languages possible)&lt;br /&gt;        • Deployed in a Windows server environment&lt;br /&gt;        • Requires use of Visual Studio .NET for development&lt;br /&gt;        • Most appropriate for enterprise-wide installation with other Microsoft solutions&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: rgb(153, 51, 153);"&gt;Perl (open source)&lt;/span&gt;&lt;br /&gt;        • Not really a scripting language (doesn’t co-habitate with HTML)&lt;br /&gt;        • Powerful, flexible language, good for dealing with patterns or manipulating data&lt;br /&gt;        • Uses less modern Common Gateway Interface (CGI) model&lt;br /&gt;        • More appropriate for communication between different applications on a server&lt;br /&gt;   &lt;br /&gt;    Any of these will work with any Relational Database Management System (RDBMS). Here are some common ones:&lt;br /&gt;&lt;br /&gt;   &lt;span style="color: rgb(51, 51, 0);"&gt; &lt;span style="color: rgb(102, 0, 0);"&gt;Oracle (Oracle Corporation)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;        • Fully featured, flexible, scalable&lt;br /&gt;        • Works on UNIX/Linux or Windows servers&lt;br /&gt;&lt;br /&gt;   &lt;span style="color: rgb(102, 51, 0);"&gt; SQLServer (Microsoft)&lt;/span&gt;&lt;br /&gt;        • Fully featured, flexible, scalable&lt;br /&gt;        • Works on Windows servers&lt;br /&gt;        • Integrates well with .NET&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: rgb(102, 51, 0);"&gt;MySQL (open source)&lt;/span&gt;&lt;br /&gt;        • Fully featured, flexible, scalable&lt;br /&gt;        • No licensing costs (open-source)&lt;br /&gt;        • Integrates especially well with PHP&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: rgb(102, 51, 0);"&gt;Access (Microsoft)&lt;/span&gt;&lt;br /&gt;        • Friendly user-interface for database management&lt;br /&gt;        • Integrates well with MS Office suite&lt;br /&gt;       • Not fully featured, limited capabilities, only appropriate for small-scale implementations.&lt;br /&gt;&lt;br style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;8. Using Image Editors for Fast Loading Graphics&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Use Adobe Photoshop/Imageready or Fireworks to create the appropriate type of graphic file Typically GIF or&lt;br /&gt;JPEG. There are other Image Editors available but Photoshop/Imageready and Fireworks are currently the most&lt;br /&gt;popular and are considered the industry standard.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;9. Site Planning, Design, and Management&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;“On time, within scope, and within budget” is the project management motto these days. This is also true for IT projects. IT managers can no longer live in the IT black hole. All IT requires fundamental project manage- ment best practices. Learn how to communicate with your staff. Clarify your project’s business goals to ensure that your project is aiding in the vision and meets your company’s vision. Learn how to follow through your project from inception to implementation. Apply your management skills to the concepts of web design. Apply a strategic focus within your organization to help save time and resources. Learn the benefits of various soft- ware packages to aid in efficiency.&lt;br /&gt;&lt;br /&gt;All of these project management practices can help your web site design projects run more smoothly and ensure your web site does what it’s suppose to do.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;10.Technological Flexibility&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If your web application is Data driven, it is imperative that sharing information with different applications and/or platforms be done in the most flexible way possible. Transforming Data from one format to the next, however, can be arduous and considerably time consuming. Fortunately, storing data in an extensible format, and working with it using XSL, has become relatively easy.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Extensible Markup Langauge (XML) allows developers to store raw data in a text file make up with an HTML-like syntax. With the use of Extensible Style Sheet Transformations (XSL - T), Formatting Objects (XSL - FO), and CSS developers now are able to transform this raw data into an application specific format. Languages com- monly used to augment an XML application are listed below:&lt;br /&gt;&lt;br /&gt;     • Extensible Markup Langauge (XML): Used to store raw data files&lt;br /&gt;     • Document Type Definitions (DTDs): Used to validate XML documents&lt;br /&gt;  • eXtensible Stylesheet Language (XSL) and Cascading Style Sheets (CSS): Used to transform the display of XML document into an application specific format. XML utilizes complexities like XPath, functions, modes, and dynamic modification of stylesheets commonly featured in many scripting and programming languages&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;To Summarize&lt;/span&gt;&lt;br /&gt;     1. Make sure your web pages are accessible&lt;br /&gt;     2. Take steps to minimize security risks&lt;br /&gt;     3. Use web server statistics to determine how popular your site is&lt;br /&gt;     4. Utilize dynamic technologies styles&lt;br /&gt;     5. Be aware of web development software and how to use it efficiently to enhance your web site&lt;br /&gt;     6. Use XHTML, DOM Scripting, and CSS to make your site browser and rule independent&lt;br /&gt;     7. Choose an appropriate database to ensure it is more dynamic, and does the job of many static pages&lt;br /&gt;     8. Use image editors for fast-loading graphics&lt;br /&gt;     9. Learn to use planning and project management techniques to build great web sites with large teams&lt;br /&gt;     10. Use new technologies like XML, DTDs, and XSL to help your application communicate with other plat-forms in the most flexible manner&lt;br /&gt;&lt;br /&gt;If you follow these simple rules, you too can create an excellent web site.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4053486063052531067-5935400618151774231?l=ashko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ashko.blogspot.com/feeds/5935400618151774231/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4053486063052531067&amp;postID=5935400618151774231' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/5935400618151774231'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/5935400618151774231'/><link rel='alternate' type='text/html' href='http://ashko.blogspot.com/2007/06/10-valuable-tips-for-creating-your-web.html' title='10 Valuable Tips for Creating Your Web Site'/><author><name>ÅšhΘκ  Šμ∂απi</name><uri>http://www.blogger.com/profile/17739127081189346556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4053486063052531067.post-778844986333147577</id><published>2007-05-30T02:39:00.000-07:00</published><updated>2007-05-30T02:40:55.503-07:00</updated><title type='text'>Top 50 Best Programming Languages</title><content type='html'>In my years of experience in software development, I wandered around which is the best programming language. I’d been involved in Oracle based application but there are programming languages out there that excels in their fields.&lt;br /&gt;&lt;br /&gt;Amazon Unspun provides methods for community collaboration on the Web to develop consensus ranking. For the Best Programming Languages, here are the rankings.&lt;br /&gt;&lt;br /&gt;Top 50 Best Programming Languages&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;       1. Ruby&lt;br /&gt;       2. Pythou&lt;br /&gt;       3. Java&lt;br /&gt;       4. Lisp&lt;br /&gt;       5. C&lt;br /&gt;       6. Smalltalk&lt;br /&gt;       7. APL&lt;br /&gt;       8. Perl&lt;br /&gt;       9. C++&lt;br /&gt;      10. PHP&lt;br /&gt;      11. Javascript&lt;br /&gt;      12. C#&lt;br /&gt;      13. Haskell&lt;br /&gt;      14. Objective-C&lt;br /&gt;      15. Scheme&lt;br /&gt;      16. J&lt;br /&gt;      17. Erlang&lt;br /&gt;      18. Algol&lt;br /&gt;      19. SQL&lt;br /&gt;      20. Pascal&lt;br /&gt;      21. Basic&lt;br /&gt;      22. Fortran&lt;br /&gt;      23. Delphi&lt;br /&gt;      24. Ada&lt;br /&gt;      25. K&lt;br /&gt;      26. Snobol&lt;br /&gt;      27. Assembler&lt;br /&gt;      28. Visual Basic&lt;br /&gt;      29. D&lt;br /&gt;      30. Coldfusion&lt;br /&gt;      31. O’Caml&lt;br /&gt;      32. Brainfuck&lt;br /&gt;      33. Forth&lt;br /&gt;      34. Cobol&lt;br /&gt;      35. Icon&lt;br /&gt;      36. Standard ML&lt;br /&gt;      37. IO&lt;br /&gt;      38. Groovy&lt;br /&gt;      39. Prolog&lt;br /&gt;      40. Logo&lt;br /&gt;      41. Lua&lt;br /&gt;      42. Powebuilder&lt;br /&gt;      43. F#&lt;br /&gt;      44. R&lt;br /&gt;      45. Providex&lt;br /&gt;      46. Dylan&lt;br /&gt;      47. ToonTalk&lt;br /&gt;      48. Var’AQ&lt;br /&gt;      49. Comal&lt;br /&gt;      50. MOO&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4053486063052531067-778844986333147577?l=ashko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ashko.blogspot.com/feeds/778844986333147577/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4053486063052531067&amp;postID=778844986333147577' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/778844986333147577'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/778844986333147577'/><link rel='alternate' type='text/html' href='http://ashko.blogspot.com/2007/05/top-50-best-programming-languages.html' title='Top 50 Best Programming Languages'/><author><name>ÅšhΘκ  Šμ∂απi</name><uri>http://www.blogger.com/profile/17739127081189346556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4053486063052531067.post-1342832830355066132</id><published>2007-05-24T04:40:00.000-07:00</published><updated>2007-05-24T04:57:24.462-07:00</updated><title type='text'>Top 10 Special Search Engines</title><content type='html'>&lt;div id="tpInt"&gt;&lt;b&gt;Looking for a new search engine?&lt;/b&gt; There are literally hundreds of really great niche search engines on the Internet that focus on specific topics: images, jobs, blogs, etc. You can find all sorts of great stuff using these alternative search engines that you might not be able to find on the more well-known search engines; plus, many of these niche search engines have really interesting features that are fun to play with. Here are my picks for the top ten alternative/niche search engines out there on the Web.&lt;/div&gt;&lt;div class="tpItm"&gt; &lt;a  style="color: #BF4D00; font-weight:bold; font-size: 16px"  href="http://www.blinkx.com"&gt;1) Blinkx&lt;/a&gt;&lt;div class="tpD"&gt;Blinkx TV is a search engine that helps you find audio, video, and podcasts using not only keywords and phrases, but also content in the actual clips that you're looking for. For example, if you wanted to find Kermit the Frog's "It's Not Easy Being Green", you could type in "having to spend each day the color of the leaves", and Blinkx would be able to fetch what you're looking for using not only your content, but the concept behind your content - the spoken word (or in this case, the lyrics).&lt;/div&gt;&lt;/div&gt;&lt;div class="tpItm"&gt;&lt;a  style="color: #BF4D00; font-weight:bold; font-size: 16px"  href="http://www.daypop.com/"&gt;2)  Daypop&lt;/a&gt;&lt;div class="tpD"&gt;Daypop is a current events search engine. Daypop crawls sites that are updated frequently in order to bring searchers the latest news; included in Daypop's index are newspapers, blogs, online magazines-any site that is updated on a regular basis will make it into Daypop's index. You can use Daypop to search a small slice of the Web for news and information.&lt;br /&gt;&lt;br /&gt;&lt;a  style="color: #BF4D00; font-weight:bold; font-size: 16px"  href="http://www.auctionmapper.com/index.php"&gt;3) AuctionMapper&lt;/a&gt;&lt;div class="tpD"&gt;  AuctionMapper is an extremely cool search engine that focuses only on eBay listings. Sure, eBay has it's own site search; but AuctionMapper takes that site search and goes a few steps further. There's all sorts of geeky (yet useful) fun to be had with AuctionMapper; the whole site is full of maps, animated fun things that fly around, and Star Trekky sounds. AuctionMapper is just a really well-done search engine that is not only fun to play with, but also actually useful.&lt;/div&gt;&lt;div class="tpItm"&gt;&lt;a  style="color: #BF4D00; font-weight:bold; font-size: 16px"  href="http://www.usa.gov"&gt;4) USA.gov&lt;/a&gt;&lt;div class="tpD"&gt;USA.gov, formerly known as FirstGov.gov, is an absolutely mammoth search engine/portal that gives the searcher direct access to searchable information from the United States government, state governments, and local governments.&lt;/div&gt;&lt;/div&gt;&lt;div class="tpItm"&gt; &lt;a  style="color: #BF4D00; font-weight:bold; font-size: 16px"  href="http://www.healthline.com"&gt;5) Healthline&lt;/a&gt;&lt;div class="tpD"&gt;Healthline.com is a medical information search engine. Healthline is solely dedicated to finding medical information online, and it offers medically filtered results developed by trained medical personnel. It's really an excellent tool for finding all kinds of medical information.&lt;/div&gt;&lt;/div&gt;&lt;div class="tpItm"&gt; &lt;a  style="color: #BF4D00; font-weight:bold; font-size: 16px"  href="http://www.brainboost.com"&gt;6) BrainBoost&lt;/a&gt;&lt;div class="tpD"&gt;BrainBoost is an automated question-answering search engine. Here's how it works: you type in a question, any question, and instead of merely matching your search query in page text and titles like other search engines, BrainBoost actually goes the next logical step and sorts through the search results for you, then extracts the answer to your question.&lt;/div&gt;&lt;/div&gt;&lt;div class="tpItm"&gt; &lt;a  style="color: #BF4D00; font-weight:bold; font-size: 16px"  href="http://plasma.nationalgeographic.com/mapmachine/index.html"&gt;7) National Geographic's Map Search Engine&lt;/a&gt;&lt;div class="tpD"&gt;National Geographic's Map Machine is a gigantic collection of all the National Geographic maps in a searchable online database. There is so much to the Map Machine that it's best to look at it piece by piece. Start with the Map Machine categories to get a big picture view of all that National Geographic map search has to offer. There's a lot here, and it's all searchable: world maps, satellite maps of Mars, Globe Explorer aerial imagery, and much, much more.&lt;/div&gt;&lt;/div&gt;&lt;div class="tpItm"&gt; &lt;a  style="color: #BF4D00; font-weight:bold; font-size: 16px"  href="http://www.technorati.com"&gt;8) Technorati&lt;/a&gt;&lt;div class="tpD"&gt; Technorati is a real-time search engine dedicated to the blogosphere. It only searches through blogs to find exactly what you're looking for. At the time of this writing, Technorati was tracking over 22 million sites and over a billion links, a mind-boggling amount.&lt;/div&gt;&lt;/div&gt;&lt;div class="tpItm"&gt;&lt;a  style="color: #BF4D00; font-weight:bold; font-size: 16px"  href="http://www.clusty.htm"&gt;9)  Clusty&lt;/a&gt;&lt;div class="tpD"&gt;Clusty is a meta search engine, meaning it combines results from a variety of different sources. However, Clusty adds a bit of extra search engine goodness in the mix by giving you clustered results. Basically, Clusty uses clusters to help your search become better, helping you cast your net wider, and sometimes coming up with search queries that you might not have thought of without the clustering feature.&lt;/div&gt;&lt;/div&gt;&lt;div class="tpItm"&gt;&lt;a  style="color: #BF4D00; font-weight:bold; font-size: 16px"  href="http://websearch.about.com/od/enginesanddirectories/a/dogpile.htm"&gt;10)  Dogpile&lt;/a&gt;&lt;div class="tpD"&gt;Dogpile is a meta search engine, meaning that it gets results from multiple search engines and directories and then presents them combined to the user. Dogpile currently gets its results from Google, Yahoo, MSN Search, Ask , About, MIVA, LookSmart, and more.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4053486063052531067-1342832830355066132?l=ashko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ashko.blogspot.com/feeds/1342832830355066132/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4053486063052531067&amp;postID=1342832830355066132' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/1342832830355066132'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/1342832830355066132'/><link rel='alternate' type='text/html' href='http://ashko.blogspot.com/2007/05/looking-for-new-search-engine-there-are.html' title='Top 10 Special Search Engines'/><author><name>ÅšhΘκ  Šμ∂απi</name><uri>http://www.blogger.com/profile/17739127081189346556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4053486063052531067.post-6831805603471613431</id><published>2007-05-16T07:33:00.000-07:00</published><updated>2007-05-16T07:34:19.664-07:00</updated><title type='text'>Web Content : How to Write a Great Article In 10 Easy Steps</title><content type='html'>After touching a little on poetry writing in the last post I wanted to blog on a little about writing articles. For those who find their 'writing voice' in the niche of articles, editorials, news items, or reviews, there is an ever increasing demand for high quality &lt;a href="http://en.wikipedia.org/wiki/Web_content"&gt;web content&lt;/a&gt; of this type on the internet. Today I wanted to give you &lt;strong&gt;10 Easy Tips&lt;/strong&gt; on how to write a good article as well as steer you in the direction of a few extra pointers on the issue. Take note, each tip will also be a link for an additional page on the subject.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.harmonize.com/probe/aids/manual/style.htm"&gt;&lt;strong&gt;1. Find a subject you feel passionate about&lt;/strong&gt; &lt;/a&gt;&lt;br /&gt;It is of the utmost importance that you feel &lt;em&gt;moved &lt;/em&gt;by your subject matter so it is vital to choose a topic that you feel strongly about.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;a href="http://en.wikipedia.org/wiki/Wikipedia:Guide_to_writing_better_articles#Layout"&gt;2. Use a good clear layout&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;Use a layout that is simple and has a catchy intro, an informative middle section, and a concluding final ending.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;a href="http://www.faqs.org/faqs/usenet/writing-style/part1/"&gt;3. Choose proper writing style necessary to convey article&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;Finding the proper tone and employing the appropriate writing style is critical in captivating readers.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;a href="http://www.ipl.org/div/aplus/"&gt;4. Do background research on your subject&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;Get all of the necessary facts, figures and opinions on your subject matter before you start writing your article.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;a href="http://www.gerrymcgovern.com/guide_write_07.htm"&gt;5. Vigorous writing can be both simple and concise&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;Use short sentences and reduce your writing down to the bare essentials&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;a href="http://www.cabrillo.edu/services/writingcenter/290/focus.html"&gt;6. Stay on the topic&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;If you find yourself drifting into another topic, stop yourself, retrace your steps, and stay on track.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;a href="http://www.quazen.com/Arts/Online-Writing/How-to-Write-for-Readers.13662"&gt;7. Satisfy your readers&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;Make sure that you hold the reader's attention. You must fulfill the needs of your readers as well as yourselves.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://leo.stcloudstate.edu/acadwrite/conclude.html"&gt;&lt;strong&gt;8. Give your article a proper ending&lt;/strong&gt; &lt;/a&gt;&lt;br /&gt;Don't leave the reader dangling at the end. Sum up your ideas and give them a unique final insight as well.&lt;strong&gt; &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;a href="http://www.quazen.com/Arts/Online-Writing/Twelve-Top-Tips-to-Get-Loads-of-Page-Views.24783"&gt;9. Promote your article&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;Once you have finished writng your article you need to get it out there so that the readers can find it.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://ezinearticles.com/?Tips-For-Finding-Topics-to-Write-Articles-About&amp;amp;id=304932"&gt;&lt;strong&gt;10. Keep your eyes open for your next article&lt;/strong&gt; &lt;/a&gt;&lt;br /&gt;Now that you have one under your belt, be aware of thoughts that give you the feeling-"Hey, I should write an article about that".&lt;br /&gt;&lt;br /&gt;That is the wasy I see it readers. Get a plan, develop the concept, go into production, distribute widely, and plan ahead for tomorrow. Now get out there and write something! Good luck :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4053486063052531067-6831805603471613431?l=ashko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ashko.blogspot.com/feeds/6831805603471613431/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4053486063052531067&amp;postID=6831805603471613431' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/6831805603471613431'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/6831805603471613431'/><link rel='alternate' type='text/html' href='http://ashko.blogspot.com/2007/05/web-content-how-to-write-great-article.html' title='Web Content : How to Write a Great Article In 10 Easy Steps'/><author><name>ÅšhΘκ  Šμ∂απi</name><uri>http://www.blogger.com/profile/17739127081189346556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4053486063052531067.post-8591217275394702411</id><published>2007-05-16T07:29:00.000-07:00</published><updated>2007-05-16T07:33:10.908-07:00</updated><title type='text'>Seven Ways to Market via Web 2.0</title><content type='html'>&lt;p&gt;&lt;strong&gt; 1. Learn about social media. &lt;/strong&gt; First and foremost, it is critical that library staff participate in and understand social media by learning about it firsthand. Efforts like the Learning 2.0 program (&lt;a href="http://plcmcl2-about.blogspot.com/" target="_blank"&gt;&lt;strong&gt;http://plcmcl2-about.blogspot.com&lt;/strong&gt;&lt;/a&gt;) developed by Helene Blowers for the Public Library of Charlotte &amp; Mecklenburg County are great ways to start to explore social software. Fundamentally, marketing in a Web 2.0 world requires us to think in both new and old ways at the same time. &lt;/p&gt;                               &lt;p&gt; YouTube, del.icio.us, Flickr, digg, MySpace, and Technorati are examples of new engines that you need to understand in order to effectively use them to reach your markets. &lt;/p&gt;                               &lt;p&gt;&lt;strong&gt; 2. Create a Web 2.0 marketing plan. &lt;/strong&gt; Web 2.0 marketing efforts can pop up organically and some may already be happening at your library. It is useful to step back and think strategically about where and how you’re going to commit your marketing resources online. Tap into the creativity of your staff and users to create a social media marketing plan. Look at your marketing, customer service, and Web site for natural opportunities and synergies for social media marketing. &lt;/p&gt;                               &lt;p&gt; Open your mind to radical new ideas that fit the nature of social media. For instance, let your audience create content on your site and pass it along. Try a photo captioner service where they (or you) can submit local photos, add captions, and then share links or send the new photo as a postcard to their friends. Or invite your passionate users to create promotional videos about your library, then use them on your local TV channels and post them online everywhere. &lt;/p&gt;                               &lt;p&gt;&lt;strong&gt; 3. Participate! Join the conversation. &lt;/strong&gt; Social media applications are two-way streets (as opposed to the old one-way messages of standard promotion). There are lots of ways to join in. You can add social tools and services (such as Weblogs, wikis, tagging, video blogs, etc.) to your library Web sites. Enable comments on blogs and allow users to contribute to wikis. &lt;/p&gt;                               &lt;p&gt; Instead of waiting for our audiences to come to our Web sites or blogs, we can join the conversation wherever it is—on users’ blogs, Web forums, MySpace, course Web sites, team rooms, wikis, etc. (Always respect the norms or conventions for communicating in a particular social medium.) &lt;/p&gt;                               &lt;p&gt; Discover where your target audiences hang out online and join them. Create a MySpace or Facebook profile for your library like Topeka and Shawnee County (Kan.) Public Library has. (It boasts 1,135 friends!) Build a profile and offer content and services that attract links, contacts, and friends. If your users spend time on Wikipedia, add or improve your library’s entry. &lt;/p&gt;                               &lt;p&gt;&lt;strong&gt; 4. Be remarkable. &lt;/strong&gt; Have something interesting to offer your viewers that they can use, bookmark, and share on- or offline. Social media is a form of viral marketing. Interesting ideas and content get passed along rapidly. Make sure that adding fresh content is a priority whether it’s a new booklist, podcast of an author reading, quirky facts about your community, or a background piece on an upcoming city or organization event. &lt;/p&gt;                               &lt;p&gt;&lt;strong&gt; 5. Help your library content travel. &lt;/strong&gt; Encourage visitors to bookmark and tag your content with a click of a button by posting bookmark buttons on your site. (See samples below.) This can actually be a serious technical challenge for some library sites. It’s important to choose the right content management software so that your Web pages have permanent URLs. Some library search results pages cannot be bookmarked easily; some not at all. &lt;/p&gt;                               &lt;p&gt; Allow users to repost booklists, book reviews, photos, podcasts, or videos on their own sites. &lt;/p&gt;                               &lt;p&gt; Creating widgets and toolbars can help keep your library information wherever the users are. John Blyberg developed Go-Go-Google Gadget, which patrons can add to their personal Web pages. Below you can see some downloadable library toolbars. &lt;/p&gt;                               &lt;p&gt; Post your content on sites like Flickr and YouTube where it’s easy for users to find and share it. &lt;/p&gt;                               &lt;p&gt; Syndicate everything you can that your audience will find useful. Slice and dice your content for dozens of specialized audiences. Spread the word about what your library has. Make newsfeeds for new materials such as books, DVDs, talking books, and video feeds. Create newsfeeds for your blogs,&lt;br /&gt;  blog comments, popular pages, and books just returned. Several libraries have created lists of new books by topic. &lt;/p&gt;                               &lt;p&gt;&lt;strong&gt; 6. Be part of the multimedia wave. &lt;/strong&gt; With more than 100 million video downloads per day, YouTube is too big a marketing opportunity to overlook. Create short videos and post them to YouTube and other video-sharing sites. &lt;/p&gt;                               &lt;p&gt; Look at creating podcasts. Programs that you’re already doing (story times, book discussions, guest speakers) often lend themselves to being recorded as podcasts. Be sure to set up newsfeeds for releases of audio and video content so your audience can opt in and be notified of new releases. &lt;/p&gt;                               &lt;p&gt;&lt;strong&gt; 7. Monitor engagement and learn as you go. &lt;/strong&gt; Evaluating social media marketing is different than just counting Web site usage or circulation numbers. You want to measure &lt;em&gt;how well&lt;/em&gt; your library is doing at engaging the public via social media. And you should measure both the amount and the intensity of the engagement. &lt;/p&gt;                               &lt;p&gt; Here are some examples of what you need to monitor: How many blog readers do you have? How many comments are posted by how many different visitors? How many people mention your library on their blogs, and how often? Are search engine results predominantly positive or negative? Is your content bookmarked in social bookmarking sites? How many friends and contacts do you have on your profile in social networking sites? How many comments or scrapbook entries are you receiving? How many visitors contribute content to your site (videos, photos, documents, wiki entries)? &lt;/p&gt;                               &lt;h3&gt;&lt;strong&gt; Think Creatively, Then Make Good Choices &lt;/strong&gt;&lt;/h3&gt;                               &lt;p&gt; These are just a few strategies to kick-start your thinking about marketing in a Web 2.0 world. There are a lot of ideas for social media marketing, and the great news for librarians is that they’re usually easy and inexpensive to carry out. The difficulty with Web 2.0 marketing won’t be a lack of strategies and good ideas, but rather choosing which ones to do first. &lt;/p&gt;                               &lt;p&gt; Marketing this way is fun and creative, and when it really works it can create a big bang. Social media marketing offers you the opportunity to engage your community in new ways and to turn strangers into fans. Fans are your online salespeople who promote your library and its services. If your fans love you and your services, they’ll spread the word. &lt;/p&gt; The key to getting some of the social media airtime is having great, neat stuff that people want to share and discuss. Libraries have treasure troves of great stuff that people love to talk about. Let’s make it easy for our fans to spread the word.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4053486063052531067-8591217275394702411?l=ashko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ashko.blogspot.com/feeds/8591217275394702411/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4053486063052531067&amp;postID=8591217275394702411' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/8591217275394702411'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/8591217275394702411'/><link rel='alternate' type='text/html' href='http://ashko.blogspot.com/2007/05/seven-ways-to-market-via-web-20.html' title='Seven Ways to Market via Web 2.0'/><author><name>ÅšhΘκ  Šμ∂απi</name><uri>http://www.blogger.com/profile/17739127081189346556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4053486063052531067.post-2961652795121697387</id><published>2007-05-16T07:27:00.000-07:00</published><updated>2007-05-16T07:29:23.437-07:00</updated><title type='text'>Open source is mission critical to Web services</title><content type='html'>According to a new report produced by Forrester Research for Unisys, some industry observers are now saying there's enough business benefit derived from open source to use it for Web services and applications that are critical to today's business needs in key areas such as driving revenue and enhancing customer service.&lt;br /&gt;The overall majority of respondents to the study, based on interviews with nearly 500 IT decision makers, including senior executives, also are using open source for mission-critical applications, but showed some concerns about the availability of Web services to unlock the full value of open source applications.&lt;br /&gt;Get reliable Windows Web hosting with very good tech support. Our plans start at just $3.95 CDN a month. Click here for more details.&lt;br /&gt;&lt;br /&gt;Over 50 percent of the respondents – 58 percent in North America and 51 percent in the U.K. and Continental Europe – stated that they now use open source software for mission-critical applications utilized in Web services.&lt;br /&gt;&lt;br /&gt;About 80.2 percent report using open source in the application infrastructure – databases, Web servers and application servers – which provides the underpinning for both routine and mission-critical applications. Such a widespread infrastructural utilizations indicates a strong potential for expansion of the number of mission-critical applications as open source proves its value to those enterprises.&lt;br /&gt;&lt;br /&gt;Anthony Gold, vice president and GM, Open Source Business at Unisys says “Forrester's research clearly shows that enterprise decision makers are giving at least equal weight to value as well as cost savings in adopting open source software for a range of application requirements.”&lt;br /&gt;&lt;br /&gt;Gold added “executives today are increasingly recognizing that open source solutions can help them save money and, more importantly, also assist their companies realize some major economic and operational benefits – improved efficiency of IT supporting the business, greater innovation, improved time to market and enhanced competitive advantage in the Web services segment.”&lt;br /&gt;&lt;br /&gt;Overall, a large majority of the respondents also saw open source software as a major vehicle for key IT initiatives such as modernizing their enterprise application environments. Seventy-one percent viewed it as important or very important for consolidating IT infrastructure.&lt;br /&gt;Get rid of email spam and email viruses. Click here for more details.&lt;br /&gt;&lt;br /&gt;In addition, 57 percent of the respondents characterized open source as important or very important for facilitating the migration to a SOA (Service Oriented Architecture). SOA can permit those enterprises both to deploy new generations of applications more efficiently and integrate new Web services with those provided by legacy applications, helping to preserve the value of their long-term investment in IT.&lt;br /&gt;&lt;br /&gt;Open source software’s support for open standards – noted as a key attribute by 78 percent of the respondents – was a major factor driving their view of its value for SOA next-generation enterprise architectures, according to Forrester.&lt;br /&gt;&lt;br /&gt;About 74 percent of the respondents to the survey expressed concern about the availability of consulting, integration, support and other services for open source software. Unisys believes that that range of services is most likely to be available from a larger service provider with greater proficiency in delivering enterprise solutions, rather than from smaller providers lacking the capabilities and credentials to provide extensive services.&lt;br /&gt;&lt;br /&gt;About 68.5 percent of the respondents expected the following services from their open source service provider:&lt;br /&gt;&lt;br /&gt;# Open source software maintenance&lt;br /&gt;# Life cycle support&lt;br /&gt;# Consulting services&lt;br /&gt;# Integration of open source components&lt;br /&gt;# Integration of open source software&lt;br /&gt;# Open source application development&lt;br /&gt;&lt;br /&gt;Gold said “the Forrester Consulting study demonstrates that the psychological barriers to enterprise adoption of open source software are falling. As a pioneer in the open source movement, Unisys is committed to delivering the consulting and integration services that close the confidence gap and give enterprise decision makers the impetus to make open source solutions a key part of the IT architecture supporting their strategic business objectives.”&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4053486063052531067-2961652795121697387?l=ashko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ashko.blogspot.com/feeds/2961652795121697387/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4053486063052531067&amp;postID=2961652795121697387' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/2961652795121697387'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/2961652795121697387'/><link rel='alternate' type='text/html' href='http://ashko.blogspot.com/2007/05/open-source-is-mission-critical-to-web.html' title='Open source is mission critical to Web services'/><author><name>ÅšhΘκ  Šμ∂απi</name><uri>http://www.blogger.com/profile/17739127081189346556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4053486063052531067.post-95658013886305887</id><published>2007-05-15T23:49:00.000-07:00</published><updated>2007-05-15T23:50:58.257-07:00</updated><title type='text'>Where should I place Google Ads for high CTR</title><content type='html'>&lt;img src="http://static.flickr.com/49/130786146_0f6c36652c_o.gif" class="alignimageright" /&gt;&lt;br /&gt;An eyetracking study recorded how  users looked at thousands of Web pages including Google  and Slashdot.&lt;br /&gt;&lt;br /&gt;The study looked  at how people navigate websites, search and react to advertising.&lt;br /&gt;&lt;br /&gt;The summary is that a human eye scans a webpage like letter F. These results [similar to &lt;a href="http://labnol.blogspot.com/2005/05/guide-for-google-adsense-publishers.html" target="_blank"&gt;Google Heatmap&lt;/a&gt;] are depicted in  the picture on the right side.&lt;br /&gt;&lt;br /&gt;The areas where users looked the most are colored red; the yellow areas indicate fewer views, followed by the least-viewed blue areas. Gray areas didn't attract any fixations.&lt;br /&gt;&lt;br /&gt;The results offer  some useful hints for Web Designers and Bloggers showing Advertisments. &lt;br /&gt;&lt;br /&gt;First, for effective layouts - don't place Google Ads [or other advertising banners] on the right sidebar as web users typically ignore that area.&lt;br /&gt;&lt;br /&gt;Users scan a webpage in seconds and no one is going to read text word-by-word. Most are only going to read the first two paragraphs. In a few seconds, their eyes move at amazing speeds across your website’s words in a pattern that's very different from what you learned in school.&lt;br /&gt;&lt;br /&gt;Therefore, try to highlight [use different font, increase font weight] the important lines to attract user attention. Make the initial paragraphs interesting&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4053486063052531067-95658013886305887?l=ashko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ashko.blogspot.com/feeds/95658013886305887/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4053486063052531067&amp;postID=95658013886305887' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/95658013886305887'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/95658013886305887'/><link rel='alternate' type='text/html' href='http://ashko.blogspot.com/2007/05/where-should-i-place-google-ads-for.html' title='Where should I place Google Ads for high CTR'/><author><name>ÅšhΘκ  Šμ∂απi</name><uri>http://www.blogger.com/profile/17739127081189346556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4053486063052531067.post-6943983493622624704</id><published>2007-05-15T23:48:00.000-07:00</published><updated>2007-05-15T23:49:19.889-07:00</updated><title type='text'>Optimizing Scott Hanselman's Blog for Improving Adsense Revenue</title><content type='html'>We are kicking off a new &lt;b&gt;Adsense Optimization series to help you increase revenue (or make more money) from Google Adsense program&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;Every week or so, we'll pick a website (or blog) and suggest &lt;b&gt;various optimization tips including new banner ad formats or ad unit placements that will help these sites maximize their Adsense earnings&lt;/b&gt;. You can apply these techniques and learning to your own site if it has a similar layout.&lt;br /&gt;&lt;br /&gt;Our  first Adsense case study covers &lt;a href="http://www.hanselman.com/blog/default.aspx" target="_blank"&gt;Computer Zen&lt;/a&gt;, an excellent blog by Scott Hanselman on Microsoft Technologies. Scott is an MVP, author of &lt;a href="http://www.amazon.com/s/002-3661883-6169633?ie=UTF8&amp;index=books&amp;amp;field-author-exact=Hanselman%2C%20Scott" target="_blank"&gt;several books&lt;/a&gt; and also runs an interesting podcast show - &lt;a href="http://www.hanselminutes.com/" target="_blank"&gt;Hansel minutes&lt;/a&gt;. His blog is subscribed by &lt;a href="http://feeds.feedburner.com/ScottHanselman" target="_blank"&gt;~8k readers&lt;/a&gt; according to Feedburner.&lt;br /&gt;&lt;br /&gt;Let's take a quick look at a recent &lt;b&gt;screenshot of Scott's website&lt;/b&gt; - [&lt;i&gt;The Google ad units and search box have been numbered for easier identification&lt;/i&gt;].&lt;br /&gt;&lt;br /&gt;&lt;img src="http://photos1.blogger.com/x/blogger/3709/485/1600/361382/before.jpg" alt="" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;As you probably noticed from the above screenshot, &lt;b&gt;this site has two Adsense Ad units and one Google Site Search Box&lt;/b&gt;. There's also a feedburner ad which we'll skip for the moment.&lt;br /&gt;&lt;br /&gt;» There are two 120x240 Ads in the left sidebar. [No 1, 2]&lt;br /&gt;» The Google Search Box is placed in the top right corner [No 3]&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Possible Issues with the Current Ad Formats and Layout:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;1. The 120x240 ads do not blend with the background since they are enclosed inside a white border.&lt;br /&gt;&lt;br /&gt;2. The ads are located below the page fold and will therefore be rarely visible to the site visitors.&lt;br /&gt;&lt;br /&gt;3. The ads are located in the sidebar - an area that generally doesn't perform so well.&lt;br /&gt;&lt;br /&gt;4. Vertical banners like 120x240 are limited to text only ads. Advertisers cannot show image based CPM ads on this site.&lt;br /&gt;&lt;br /&gt;5. The Search Box is placed at a perfect location but it takes the visitor off the main page to Google search box.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;What can be done to improve Adsense Performance ?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The new sample screenshot reflects some very simple Adsense related tweaks that may help Scott improve the ad earnings from Computer Zen.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://photos1.blogger.com/x/blogger/3709/485/1600/656917/after.jpg" alt="" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;Each of the tweaks or changes in the above screenshot have been numbered which are explained in the detail below:&lt;br /&gt;&lt;br /&gt;No 1: &lt;span style="font-weight: bold;"&gt;Link Units can be a very good source of Adsense revenue if placed somewhere near the site navigation links&lt;/span&gt;. In Scott's case, that area is the left sidebar just below his profile and picture.&lt;br /&gt;&lt;br /&gt;No 2: The 120x240 Ads units have been removed from the left sidebar since they may not be the best performing units due to their placement as well as dimensions.&lt;br /&gt;&lt;br /&gt;No 3: The Google Search Box position need not be changed but Scott may connect the search code with Adsense for Search to increase revenue. Additionally, &lt;span style="font-weight: bold;"&gt;the search results page should use the new Adsense code that allows visitors to search without leaving the site&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;No 4: This is probably the biggest change that will bring him the maximum Adsense revenue - a 250x250 wide format ad unit mixed with the blog content [implemented using div float tag]. &lt;span style="font-weight: bold;"&gt;The unit should accept both image and text ads&lt;/span&gt;. &lt;span style="font-weight: bold;"&gt;The border and background color should exactly match the page background color.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;No 5: This external leaderboard ad from a Job site was based at the top initially. We have moved it at the bottom since &lt;b&gt;it is probably a non contextual ad system and the results may therefore not be superior to Google Adsense&lt;/b&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4053486063052531067-6943983493622624704?l=ashko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ashko.blogspot.com/feeds/6943983493622624704/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4053486063052531067&amp;postID=6943983493622624704' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/6943983493622624704'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/6943983493622624704'/><link rel='alternate' type='text/html' href='http://ashko.blogspot.com/2007/05/optimizing-scott-hanselmans-blog-for.html' title='Optimizing Scott Hanselman&apos;s Blog for Improving Adsense Revenue'/><author><name>ÅšhΘκ  Šμ∂απi</name><uri>http://www.blogger.com/profile/17739127081189346556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4053486063052531067.post-3125218817255682020</id><published>2007-05-15T23:45:00.002-07:00</published><updated>2007-05-15T23:47:26.015-07:00</updated><title type='text'>Google is Not Indexing Your Blog ?  No Problem..Just Remove  from Blogger Template</title><content type='html'>Is your blog hosted on on Blogger.com - if yes, there are chances that it may not be indexed by Google, Yahoo or other search engines. The reason maybe NOINDEX, NOFOLLOW Meta tag that may have slipped quietly in your blog pages probably due to a bug.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://1.bp.blogspot.com/_XYizHvjgLrA/Rds0QjnBfZI/AAAAAAAAAUg/ijsUW-i1NAI/s1600/blogger-template.png" /&gt;&lt;br /&gt;&lt;br /&gt;Google adds the &amp;lt;meta name="ROBOTS" content="NOINDEX,NOFOLLOW"&amp;gt; tag by default to the HTML of your blog pages when the Add your Blog to our listings? setting is set to No.&lt;br /&gt;&lt;br /&gt;In on of our &lt;a href="http://ditestblog.blogspot.com/"&gt;test blogs&lt;/a&gt;, the above NOINDEX META tag is being inserted even the Setting is set to Yes.&lt;br /&gt;&lt;br /&gt;The moment search engine bots read that noindex attribute, they'll skip indexing your webpage. And if that webpage already exists in the search engines' cache, the page will be thrown out immediately. &lt;b&gt;The end result is that none of your blog pages will ever appear on search results of any web search engine&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;To override the default setting and let search engines read your blog, manually delete &lt;$BlogMetaData$&gt; from the classic Blogger Template or &lt;b&gt;&lt;b:include data="'blog'" name="'all-head-content'/"&gt;&lt;/b&gt; if you are on New blogger.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4053486063052531067-3125218817255682020?l=ashko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ashko.blogspot.com/feeds/3125218817255682020/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4053486063052531067&amp;postID=3125218817255682020' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/3125218817255682020'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/3125218817255682020'/><link rel='alternate' type='text/html' href='http://ashko.blogspot.com/2007/05/google-is-not-indexing-your-blog-no.html' title='Google is Not Indexing Your Blog ?  No Problem..Just Remove &lt;MetaData&gt; from Blogger Template'/><author><name>ÅšhΘκ  Šμ∂απi</name><uri>http://www.blogger.com/profile/17739127081189346556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_XYizHvjgLrA/Rds0QjnBfZI/AAAAAAAAAUg/ijsUW-i1NAI/s72-c/blogger-template.png' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4053486063052531067.post-9156435061681703464</id><published>2007-05-15T23:45:00.001-07:00</published><updated>2007-05-15T23:45:37.765-07:00</updated><title type='text'>How Fast Do Search Engines Index Fresh Content</title><content type='html'>Legal issues apart, this mutiny at Digg gives us a great opportunity to compare the indexing behaviour of search engines and how frequently search bots scroll the web in pursuit of fresh content.&lt;br /&gt;&lt;br /&gt;We executed a search for 09 f9 11 02 9d 74 e3 5b d8 41 56 c5 63 56 88 c0 (without quotes) on all major web and blogs search engines and here are the results.&lt;br /&gt;&lt;br /&gt;&lt;img style="margin: 0px auto; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_XYizHvjgLrA/RjncANRGGMI/AAAAAAAABEM/GjfwkWTel9M/s1600/web+search+engine.jpg" alt="Web Search" /&gt;&lt;br /&gt;&lt;br /&gt;Microsoft owned Live search has just 18k pages containing the HD DVD key while Google has indexed over half a million documents containing that number.&lt;br /&gt;&lt;br /&gt;&lt;img style="margin: 0px auto; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_XYizHvjgLrA/RjncANRGGNI/AAAAAAAABEU/lp1i4e8xpb4/s1600/blog+search+engines.jpg" alt="Blog Search" /&gt;&lt;br /&gt;&lt;br /&gt;In case of Blog Search Engines, Bloglines (owned by Ask.com) found 6160 blogs and RSS feeds that mentioned the HD DVD key while Technorati suggested the number as 2200. Google Blog Search results were ~5.5k.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4053486063052531067-9156435061681703464?l=ashko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ashko.blogspot.com/feeds/9156435061681703464/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4053486063052531067&amp;postID=9156435061681703464' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/9156435061681703464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/9156435061681703464'/><link rel='alternate' type='text/html' href='http://ashko.blogspot.com/2007/05/how-fast-do-search-engines-index-fresh.html' title='How Fast Do Search Engines Index Fresh Content'/><author><name>ÅšhΘκ  Šμ∂απi</name><uri>http://www.blogger.com/profile/17739127081189346556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_XYizHvjgLrA/RjncANRGGMI/AAAAAAAABEM/GjfwkWTel9M/s72-c/web+search+engine.jpg' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4053486063052531067.post-4698453362499801688</id><published>2007-05-15T23:42:00.000-07:00</published><updated>2007-05-15T23:43:36.679-07:00</updated><title type='text'>Million Dollar Homepage - Interview with $1m Boy</title><content type='html'>&lt;/span&gt; &lt;img style="cursor: pointer;" class="alignimageright" alt="Million Dollar Hompepage" src="http://photos1.blogger.com/blogger/3709/485/400/Million%20Dollar%20Homepage.gif" /&gt;Alex Tew, a 21 year old student from Wiltshire, England tried a  unique experiment to raise money for his university education.&lt;br /&gt;&lt;br /&gt;His thought processes went something like this: what if he set up a website called the &lt;b&gt;Million Dollar Homepage&lt;/b&gt; which contained exactly one million pixels (the tiny dots that make up an image on a screen)? What if he then used that page as, in effect, an advertising noticeboard where advertisers could buy space at $1 per pixel?&lt;br /&gt;&lt;br /&gt;The Million Dollar Homepage is broken up into 10,000 100-pixel squares; Tew sells the 100-pixel squares off for $100 each, or $1 per pixel. The idea was an instant success. In the first four weeks alone, Alex sold more than 300,000 pixels at $1 each. As on today, Tew's Million Dollar Homepage has sold 900,400 pixels and the buyers are still flooding in.&lt;br /&gt;&lt;br /&gt;Here is a animated graphic displaying the &lt;a href="http://www.milliondollarfanclub.com/data/milliondollaranimation.gif" target="_blank"&gt;Making of the MIllion Dollar Homepage&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;.NET spoke with Alex Tew, the mastermind behind milliondollarhomepage.com. He explains how he became a wealthy man by selling some pixels and what he intends to do with all the money.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://photos1.blogger.com/blogger/3709/485/400/Alex%20Tew%20Million%20Dollar%20Homepage.jpg" class="alignimageleft" /&gt;&lt;b&gt;Q: Why does the site seem to succeed? Why do companies buy pixels? And why did it happen so fast?&lt;/b&gt;&lt;br /&gt;A: The site succeeds because I think people respect an original idea. Things that are unique and novel naturally get talked about, if they’re interesting. My crazy idea to make money seems to have caught people’s imagination. So it means thousands of people are logging on every day.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Q: Who bought the first pixels and why?&lt;/b&gt;&lt;br /&gt;A: A friend of a friend who runs an online music site bought 400 - I basically explained that the site could become really popular if it catches on and these 400 dollars could be the best marketing investment they ever make. They decided it was worth a punt and went for it. I’m sure if the site had flopped they would have wanted their money back, but obviously things took off. I understand their site received over 20,000 unique visitors directly from their ad on my home page within the first three weeks. A pretty good return I think.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Q: What will you spend the money on?&lt;/b&gt;&lt;br /&gt;A: The first thing I bought was some new socks! You can see them on my blog. Then I was able to pay for my first year’s university tuition fees and living costs, which was cool, because it took the pressure off my parents. Apart from some normal stuff like clothes and CDs, I've not bought anything extravagant really. With the rest of the money I plan to invest in some of the new ideas I've got.&lt;br /&gt;&lt;br /&gt;Read full interview with the brain behind the &lt;a target="_blank" href="http://www.netmag.co.uk/opinion/default.asp?pagetypeid=2&amp;articleid=38420&amp;amp;subsectionid=500&amp;amp;subsubsectionid=184"&gt;Million Dollar Homepage&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4053486063052531067-4698453362499801688?l=ashko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ashko.blogspot.com/feeds/4698453362499801688/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4053486063052531067&amp;postID=4698453362499801688' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/4698453362499801688'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/4698453362499801688'/><link rel='alternate' type='text/html' href='http://ashko.blogspot.com/2007/05/million-dollar-homepage-interview-with.html' title='Million Dollar Homepage - Interview with $1m Boy'/><author><name>ÅšhΘκ  Šμ∂απi</name><uri>http://www.blogger.com/profile/17739127081189346556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4053486063052531067.post-2215830092303241461</id><published>2007-05-15T23:41:00.001-07:00</published><updated>2007-05-15T23:41:49.697-07:00</updated><title type='text'>How a Blogger can become a good journalist</title><content type='html'>Spencer Critchley &lt;a href="http://www.oreillynet.com/lpt/wlg/8658" target="_blank"&gt;writes&lt;/a&gt; some good tips for Bloggers an newsletter publishers on how good journalists do useful work. The best piece of advice I think is If you can't say something in plain speech, that may mean you don't understand it well enough yet. Here's more:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Identify your sources&lt;/b&gt;&lt;br /&gt;Your audience needs to know where this information comes from, so they can judge its credibility.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Respect the value of people's time&lt;/b&gt;&lt;br /&gt;Know your point, get to it quickly, and make your content dense with value.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Use plain speech, and talk like a real person&lt;/b&gt;.&lt;br /&gt;If a simpler word can be used with no loss of meaning, use it. Same goes for fewer words vs. more.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Reputable pro media outlets use professional fact checkers&lt;/b&gt;&lt;br /&gt;People may be citing you as a source, so try to get the details right. Related to this: spell-check!&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Opinions are not facts, even your opinions&lt;/b&gt;&lt;br /&gt;Opinions make personal journalism lively. But be sure you know the difference between opinion and fact, and make it clear to your readers as well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4053486063052531067-2215830092303241461?l=ashko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ashko.blogspot.com/feeds/2215830092303241461/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4053486063052531067&amp;postID=2215830092303241461' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/2215830092303241461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/2215830092303241461'/><link rel='alternate' type='text/html' href='http://ashko.blogspot.com/2007/05/how-blogger-can-become-good-journalist.html' title='How a Blogger can become a good journalist'/><author><name>ÅšhΘκ  Šμ∂απi</name><uri>http://www.blogger.com/profile/17739127081189346556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4053486063052531067.post-1811976320314623235</id><published>2007-05-15T23:40:00.000-07:00</published><updated>2007-05-15T23:41:14.395-07:00</updated><title type='text'>Very Useful Websites for Some Cool Start-Ups</title><content type='html'>&lt;table border="1" cellpadding="4" cellspacing="4" width="100%"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="145"&gt;&lt;strong&gt;&lt;a href="http://labnol.blogspot.com/2007/03/toondoo-comic-strip-creator-youtube-for.html"&gt;ToonDoo&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;       &lt;td width="451"&gt;Create Your Own Comic Strips &lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;&lt;a href="http://labnol.blogspot.com/2006/12/save-youtube-videos-as-quicktime-mov.html"&gt;Vixy.net&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;       &lt;td&gt;Download Youtube Videos as Quicktime Videos or MP3 Audio Files &lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;&lt;a href="http://labnol.blogspot.com/2007/03/online-picture-editor-picnik-adds-photo.html"&gt;Picnik&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;       &lt;td&gt;The Best Online Image Editing Tool &lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;&lt;a href="http://labnol.blogspot.com/2007/03/how-to-embed-microsoft-office-or-pdf.html"&gt;Scribd&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;       &lt;td&gt;Embed Docs, Excel Spreadsheets, PDFs as Flash Paper &lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;&lt;a href="http://labnol.blogspot.com/2007/03/plot-your-e-mail-trajetory-on-google.html"&gt;Email Traceroute&lt;/a&gt; &lt;/strong&gt;&lt;/td&gt;       &lt;td&gt;Plot your email trajectory on Google Maps &lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;&lt;a href="http://labnol.blogspot.com/2007/04/who-are-you-who-am-i-ask-pipl.html"&gt;Pipl&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;       &lt;td&gt;What Google Think about you - EgoSurfing   &lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;&lt;a href="http://labnol.blogspot.com/2007/01/share-only-interesting-portions-of.html"&gt;Gotuit SceneMaker&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;       &lt;td&gt;Trim YouTube Videos and Share them &lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;&lt;a href="http://labnol.blogspot.com/2007/04/ask-questions-via-circleup-get.html"&gt;CircleUp&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;       &lt;td&gt;Ask Questions, Get a consolidated reply &lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;&lt;a href="http://labnol.blogspot.com/2007/04/blinkx-video-search-engine-way-ahead-of.html"&gt;Blinx&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;       &lt;td&gt;The Best Video Search Engine with News Clips, Video Podcasts.. &lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;&lt;a href="http://labnol.blogspot.com/2006/10/hang-your-picture-in-art-galleries-of.html"&gt;Dumpr.net&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;       &lt;td&gt;Interesting  Effects for your Digital Photographs &lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;&lt;a href="http://labnol.blogspot.com/2007/03/photo-flicks-make-stunning-slideshows.html"&gt;Photo Flicks&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;       &lt;td&gt;Impressive Pictures Slideshows in Flash &lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;&lt;a href="http://labnol.blogspot.com/2007/03/best-tool-for-embedding-spreadsheet.html"&gt;Zoho Sheet&lt;/a&gt; &lt;/strong&gt;&lt;/td&gt;       &lt;td&gt;Embed Excel Spreadsheet in Webpages &lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;&lt;a href="http://labnol.blogspot.com/2006/07/how-to-leech-pictures-from-flickr-or.html"&gt;Flickr Leech&lt;/a&gt; &lt;/strong&gt;&lt;/td&gt;       &lt;td&gt;Search and Download  Images from Flickr quickly &lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;&lt;a href="http://labnol.blogspot.com/2007/03/track-shipments-from-ups-dhl-or-fedex.html"&gt;Package Mapping&lt;/a&gt; &lt;/strong&gt;&lt;/td&gt;       &lt;td&gt;Visually track shipments from FedEx/UPS/DHL on Google Maps&lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;&lt;a href="http://labnol.blogspot.com/2007/03/visual-dna-pictures-speak-volumes-about.html"&gt;Visual DNA&lt;/a&gt; &lt;/strong&gt;&lt;/td&gt;       &lt;td&gt;Share your personality with the world in pictures.&lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;&lt;a href="http://labnol.blogspot.com/2007/03/no-brainer-way-to-save-youtube-videos.html"&gt;Kiss Youtube&lt;/a&gt; &lt;/strong&gt;&lt;/td&gt;       &lt;td&gt;The easiest way to download Youtube Videos &lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;&lt;a href="http://labnol.blogspot.com/2007/03/voicebooks-excellent-presentation-tool.html"&gt;Voice Books&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;       &lt;td&gt;Invite friends to add voice narrations to your photographs &lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;&lt;a href="http://labnol.blogspot.com/2007/03/how-to-bring-newspaper-or-magazine.html"&gt;Qipit&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;       &lt;td&gt;Convert a book excerpt or newspaper clipping into digital text&lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;&lt;a href="http://labnol.blogspot.com/2007/03/get-blog-alerts-on-skype-or-google-talk.html"&gt;Zaptxt&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;       &lt;td&gt;Google Alerts++, get updates on Skype, Mobile Phone, Email &lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;&lt;a href="http://labnol.blogspot.com/2007/02/embed-your-linkedin-profile-on-webpage.html"&gt;LinkInABox&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;       &lt;td&gt;Display your LinkedIn Profile on your blog. &lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;&lt;a href="http://labnol.blogspot.com/2007/02/use-alexaholic-instead-of-alexa-traffic.html"&gt;Alexaholic&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;       &lt;td&gt;Compare Alexa Rankings of multiple website at one place &lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;&lt;a href="http://labnol.blogspot.com/2007/02/create-perfect-picture-for-your-profile.html"&gt;MyPictr&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;       &lt;td&gt;Create profile pictures and avatars of custom sizes in seconds &lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;&lt;a href="http://labnol.blogspot.com/2007/02/make-slideshows-with-your-flickr.html"&gt;SlideRoll&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;       &lt;td&gt;Flash Slideshows of Flickr Pictures &lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;&lt;a href="http://labnol.blogspot.com/2007/02/what-do-visitors-think-of-your-website.html"&gt;Review Basics&lt;/a&gt; &lt;/strong&gt;&lt;/td&gt;       &lt;td&gt;Get feedback on your blog design, brochures, business cards, etc &lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;&lt;a href="http://labnol.blogspot.com/2007/02/home-delivery-of-e-mail-messages-via.html"&gt;ePost&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;       &lt;td&gt;Real version of GMail Paper, Home delivery email &lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;&lt;a href="http://labnol.blogspot.com/2007/02/add-animated-flash-charts-and-graphs-to.html"&gt;Rich Chart Live&lt;/a&gt; &lt;/strong&gt;&lt;/td&gt;       &lt;td&gt;Create rich, animated Flash Charts online &lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;&lt;a href="http://labnol.blogspot.com/2007/02/how-do-you-copy-paste-text-notes.html"&gt;Short Text&lt;/a&gt; &lt;/strong&gt;&lt;/td&gt;       &lt;td&gt;Internet clipboard - Copy paste text across computers &lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;&lt;a href="http://labnol.blogspot.com/2007/02/use-google-calendar-wordpress-blogger.html"&gt;IMIfied&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;       &lt;td&gt;Interact with Google Calendar, Blogger, Remember the Milk, BaseCamp, TypePad via IM (Google Talk, MSN, Yahoo Messenger) &lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;&lt;a href="http://labnol.blogspot.com/2007/02/analyze-your-text-writing-for-word.html"&gt;Text Analyzer&lt;/a&gt; &lt;/strong&gt;&lt;/td&gt;       &lt;td&gt;Analyze your writing style, count words, paragraphs, word frequency, etc. &lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;&lt;a href="http://labnol.blogspot.com/2007/02/when-your-favorite-website-doesn-offer.html"&gt;Feed43&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;       &lt;td&gt;Create RSS Feeds for any website &lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;&lt;a href="http://labnol.blogspot.com/2006/11/files-upload-imagine-rapidshare-with.html"&gt;Files Upload &lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;       &lt;td&gt;Rapidshare on Steroids, Supports FTP, No limits&lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;&lt;a href="http://labnol.blogspot.com/2006/09/send-email-attachments-transfer-large.html"&gt;GigaSize&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;       &lt;td&gt;Email large attachments without problems &lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;&lt;a href="http://labnol.blogspot.com/2006/10/mozy-online-data-backup-service-that.html"&gt;Mozy&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;       &lt;td&gt;Online Backup for your computer - set it, forget it&lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;&lt;a href="http://labnol.blogspot.com/2006/10/design-your-home-online-with-room.html"&gt;Room Visualizer&lt;/a&gt; &lt;/strong&gt;&lt;/td&gt;       &lt;td&gt;Design the layout of your new room online &lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;&lt;a href="http://labnol.blogspot.com/2006/10/convert-email-messages-or-word.html"&gt;Google Docs&lt;/a&gt; &lt;/strong&gt;&lt;/td&gt;       &lt;td&gt;Batch convert email messages or multiple documents to PDF &lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;&lt;a href="http://labnol.blogspot.com/2006/12/correct-way-to-eat-sushi-video.html"&gt;VideoJug&lt;/a&gt;, &lt;a href="http://labnol.blogspot.com/2007/02/use-google-calendar-wordpress-blogger.html"&gt;Instructables&lt;/a&gt; &lt;/strong&gt;&lt;/td&gt;       &lt;td&gt;Learn something new everday through Pictures and Video Tutorials &lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;&lt;a href="http://labnol.blogspot.com/2006/07/yahoo-finance-badges-add-stock-quotes.html"&gt;Yahoo! Badges&lt;/a&gt; &lt;/strong&gt;&lt;/td&gt;       &lt;td&gt;Add Live Stock Quotes and Market Charts to your website&lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td&gt;&lt;a href="http://labnol.blogspot.com/2007/01/free-video-editing-software-for.html"&gt;&lt;strong&gt;JumpCut&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;       &lt;td&gt;Free Online Video Editor - Mix videos, images and sounds &lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td&gt;&lt;a href="http://labnol.blogspot.com/2007/02/how-to-convert-windows-media-wmv-to.html"&gt;&lt;strong&gt;Zamzar&lt;/strong&gt;&lt;/a&gt; &lt;/td&gt;       &lt;td&gt;Convert files from one format to another, get results by email&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4053486063052531067-1811976320314623235?l=ashko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ashko.blogspot.com/feeds/1811976320314623235/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4053486063052531067&amp;postID=1811976320314623235' title='28 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/1811976320314623235'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/1811976320314623235'/><link rel='alternate' type='text/html' href='http://ashko.blogspot.com/2007/05/very-useful-websites-for-some-cool.html' title='Very Useful Websites for Some Cool Start-Ups'/><author><name>ÅšhΘκ  Šμ∂απi</name><uri>http://www.blogger.com/profile/17739127081189346556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>28</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4053486063052531067.post-7342662921683776988</id><published>2007-05-15T23:38:00.000-07:00</published><updated>2007-05-15T23:40:14.530-07:00</updated><title type='text'>Six Wonderful Google Games To Keep You Entertained</title><content type='html'>&lt;a href="http://c6.org/toogle/index.php?phrase=bill+gates" target="_blank"&gt;&lt;b&gt;Toogle Search - Bill Gates&lt;/b&gt;&lt;/a&gt; - When you make a search on Toogle, it fetches the first images from Google images search and converts the picture into a colored ascii file made of only the search terms.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.alltooflat.com/geeky/elgoog/m/index.cgi" target="_blank"&gt;&lt;b&gt;Google Mirror - elgoog&lt;/b&gt;&lt;/a&gt; - This site is like a mirror reflection of Google. All the text is displayed in the reverse order and inclined to the right of the page just like Arabic language. Remember that the queries are also to written in the backward direction [&lt;a href="http://www.alltooflat.com/geeky/elgoog/m/index.cgi?page=%2Fsearch&amp;cgi=GET&amp;amp;dir=%2F&amp;btnG=hcraeS&amp;amp;q=+noitaripsni+latigid&amp;ie=ISO-8859-1&amp;amp;lr=&amp;amp;hl=en" target="_blank"&gt;live example&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;&lt;a href="http://gwigle.varten.net/" target="_blank"&gt;&lt;b&gt;Gwigle - What Am I Googling?&lt;/b&gt;&lt;/a&gt; - A very addictive game where you are shown the Google search results page and you then have to reverse guess the search query. The game has various levels and can keep you busy for a long time. The accompanying tips will help you become a better googler. [Thanks, &lt;a href="http://googlesystem.blogspot.com/2006/08/gwigle-game-find-google-query.html" target="_blank"&gt;Ionut&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.weavedigital.com/guess-the-google/?l=4" target="_blank"&gt;&lt;b&gt;Guess The Google&lt;/b&gt;&lt;/a&gt; - At the start of this Google game, a grid of 20 image thumbnails would appear each of would match one search keyword. You get 20 seconds to guess the search keyword but you can make as many number of guess as you want during that time.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.googlewhack.com/" target="_blank"&gt;&lt;b&gt;Googlewhack&lt;/b&gt;&lt;/a&gt; - A Googlewhack is a Google search query consisting of two words - both in the dictionary, and without quotation marks - that returns a single result. The search will list 'Results 1-1 of 1'. Googlewhacking is the pastime activity of finding such a result. A person attempting to find Googlewhacks is known as a Googlewhacker. [&lt;a href="http://www.googlewhack.com/tally.pl" target="_blank"&gt;Whack Stack&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.gmworldwar.com/news.php" target="_blank"&gt;&lt;b&gt;World War on Google Maps&lt;/b&gt;&lt;/a&gt; - Online players (2-25) randomly receive a set of countries with troop hitpoints based on real world population data. To play: attack neutral and enemy countries in an effort to try to take over the world. You have a 20% chance of receiving more troops when you overtake an enemy country. [via &lt;a href="http://games.slashdot.org/games/06/08/10/1859252.shtml" target="_blank"&gt;Slashdot&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.isoma.net/games/goggles.html" target="_blank"&gt;&lt;b&gt;Google Maps Flight Simulator&lt;/b&gt;&lt;/a&gt; - Nothing so advanced as the Microsoft Flight simulator, but this Googel computer game lets you fly a small farmer plane over any landscape created from a compilation of Google Maps images. You can use the keyboard arrow keys to change the flying directions, bank and dive. Space lets you fire while A/Z are for varying the flying speed.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.gamesforthebrain.com/game/guessplace/" target="_blank"&gt;&lt;b&gt;Guess the Place&lt;/b&gt;&lt;/a&gt; - You are shown a picture and need to find out which country, state or city is being shown by looking at parts of Google Maps, or Flickr images of the place&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4053486063052531067-7342662921683776988?l=ashko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ashko.blogspot.com/feeds/7342662921683776988/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4053486063052531067&amp;postID=7342662921683776988' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/7342662921683776988'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/7342662921683776988'/><link rel='alternate' type='text/html' href='http://ashko.blogspot.com/2007/05/six-wonderful-google-games-to-keep-you.html' title='Six Wonderful Google Games To Keep You Entertained'/><author><name>ÅšhΘκ  Šμ∂απi</name><uri>http://www.blogger.com/profile/17739127081189346556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4053486063052531067.post-736394734369339872</id><published>2007-05-15T23:37:00.000-07:00</published><updated>2007-05-15T23:38:51.483-07:00</updated><title type='text'>Tips, Layout Optimization Tricks for Adsense Higher CTR</title><content type='html'>Google Adsense is perhaps the easiest way to attract advertisers from across the globe to your blog. Just submit your blog to Google for approval. If Google likes what it sees, it will place contextual ads linking to products likely to appeal to the readers. Each time a reader clicks a link, the advertiser pays Google a small fee, and Google splits that with you.&lt;br /&gt;&lt;br /&gt;The next interesting question - How to Make Money with Google Adsense ? Here are The best Google Adsense Tips and Tricks for making more money (profit) from Google adsense program.&lt;br /&gt;&lt;br /&gt;a. Strictly follow the rules mentioned in Adsense policies. You will always earn more revenue from Adsense by playing it clean.&lt;br /&gt;&lt;br /&gt;b. Never modify the Google Adsense HTML code.&lt;br /&gt;&lt;br /&gt;c. Don't ask your friends or visitors to click on your Google ads. Do not include incentives of any kind for users to click on ads. Don't label the Google ads with text other than "sponsored links" or "advertisements.".&lt;br /&gt;&lt;br /&gt;d. Don't click on your own ads - Google is much smarter than you think. You should not reload your pages excessively. If you are testing your website layout with Google adsense, follow some precautions. Or you can use the unofficial Google Adsense Sandbox Tool that is accessible from Firefox, IE and other browsers to see what kind of Google ads will be served based on content (website address URL) or keywords.&lt;br /&gt;&lt;br /&gt;e. Don't place ads in pop-up windows, error pages or even empty pages.&lt;br /&gt;&lt;br /&gt;f. Don't start a "adsense asbestos" or "home equity loan rates" website merely to make money from accidental clicks (accidence). You will never make money out these "made-for-adsense-only" websites. Instead, write on topics what you are passionate about. Don't waste your money on high-paying adsense keywords lists.&lt;br /&gt;&lt;br /&gt;g. For short articles, CTR is best when ads are placed just above the content&lt;br /&gt;&lt;br /&gt;h. For long articles, CTR improves if ads are placed somewhere in middle of the content - visitors read the long content and then they are looking for more resources.&lt;br /&gt;&lt;br /&gt;i. Use Text Ads instead of Image Ads as users get more options. If you still want to display image ads, consider ad formats that support image ads - Choose either the 300x250 medium rectangle or the 160x600 wide skyscraper - or both, if you display multiple ad units on a page.&lt;br /&gt;&lt;br /&gt;j. Google Ads without background color and borders always perform better. Make the border color and background color same as your page background color.&lt;br /&gt;&lt;br /&gt;k. Always put ads above the main fold. Make sure that the ad unit with the highest clickthrough rate is the first instance of the ad code that appears in the HTML. Since the first ad unit is always filled before the rest, you want to make sure that ad unit is located in the best placement on your page.&lt;br /&gt;&lt;br /&gt;l. Try setting the ad link URL color to a lighter shade. If your text is black, you may make the adlink as light gray.&lt;br /&gt;&lt;br /&gt;m. Go Wide - The large rectangle is the best paying adsense format (336x280) - The Google Adsense Publisher team also feels that the best formats are the wider ones - the ad formats that contain the widest individual ads. Try using the 336x280 large rectangle, 300x250 medium rectangle, or 160x600 wide skyscraper.&lt;br /&gt;&lt;br /&gt;n. Placing images next to ads or above ads does help in attracting user attention.&lt;br /&gt;&lt;br /&gt;o. Blend AdLinks with other navigation links or place horizontal adlinks at the top of your webpage. AdSense publishers are permitted to click on link unit topics on their web pages, provided that they do not click on any Google ads on the resulting page.&lt;br /&gt;&lt;br /&gt;p. Organize an Adsense Party for your friends and colleagues - Request them to navigate your website, watch their activity - it will provide vital clues about which regions on your website draw more user attention. Try putting ads near those areas. (Thanks Darren)&lt;br /&gt;&lt;br /&gt;q. You can put upto 3 adsense units on a page. Try putting a large skyscraper on the right navigation sidebar of your website. That area is close to the browser scrollbar. You can also add 2 AdSense for search boxes, 1 adlink unit and 1 referral button per product (i.e., 1 AdSense referral button and 1 Firefox plus Google Toolbar referral button).&lt;br /&gt;&lt;br /&gt;r. The first few lines of your content are an important factor for determining what Ads are served on your webpage. That's the right place to put keywords in bold (strong or &amp;ltb&gt; tags) or header tags (h1, h2, etc).&lt;br /&gt;&lt;br /&gt;s. Always select the setting to open Google Adsense search box results in a new browser window, so you won't lose your visitors. Click the Open search results in a new browser window checkbox and this add target="google_window" to your form tag.&lt;br /&gt;&lt;br /&gt;t. Maximum people think the search box is on the top right corner. So you know where to put it.&lt;br /&gt;&lt;br /&gt;u. Don't syndicate full content. If people can read everything from the newsreader window itself, why would they visit your website where your ads are.&lt;br /&gt;&lt;br /&gt;v. Use URL channels to determine performance of individual pages. I track my most popular pages with Google Analytics, Statcounter and create a channel for each of the URL. You can even track Adsense Clicks with Analytics&lt;br /&gt;&lt;br /&gt;w. For low CTR pages, try changing titles or adding more content to get better focused ads&lt;br /&gt;&lt;br /&gt;x. Block low paying advertisers with Filters. Why to loose a visitor for 0.01 cents. Use Overture or Google Adwords Keywords tool to discover keywords that are less popular with advertisers.&lt;br /&gt;&lt;br /&gt;y. The AdSense for search Top Queries report shows you what your users are looking for, by listing the 25 most common searches conducted through your AdSense for search boxes. Use this report to identify additional topics to add to your site, or to keep track of your most sought-after information. Focus and improve that content.&lt;br /&gt;&lt;br /&gt;z. Not everyone has a RSS reader. Use RSS to Email services like FeedBlitz, Bloglet or Rmail to let users subscribe to your blog by email.&lt;br /&gt;&lt;br /&gt;Remember, you are the best judge when it comes to choosing ad formats. Even Google doesn't offer the best advise always. For instance, in the visual heat map, Google suggests that webmasters are best served by positioning ads on the upper left-hand side of a Web page. But on the Google homepage, you will find ads on the far right.&lt;br /&gt;&lt;br /&gt;Related Links&lt;br /&gt;Display only relevant Google Ads in Blogs&lt;br /&gt;Google Adsense Layout Tips for Maximum Clicks&lt;br /&gt;Guide for Google AdSense Publishers&lt;br /&gt;&lt;br /&gt;AdSense is one of the best tools you can use to draw dollars to your site. Remember that there is no easy way to make money on Adsense... it takes a lot of work. Adsense publishers on blogspot.com can integrate Adsense directly from Blogger Interface.&lt;br /&gt;&lt;br /&gt;Yahoo Publisher Network YPN and Chitika eMiniMalls offer interesting Adsense alternatives. You can use this free online Sandbox tool to compare Google Adsense, Chitika eMiniMalls and Yahoo Publisher Network (YPN) Program.&lt;br /&gt;&lt;br /&gt;Enter any keywords or a website address (URL), choose a geographic location (for Google), customize ad colors or choose from an existing color set and click "Udate Ads Display". You can try the Adsense, YPN or Chitika Services without signing up for any of these services.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4053486063052531067-736394734369339872?l=ashko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ashko.blogspot.com/feeds/736394734369339872/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4053486063052531067&amp;postID=736394734369339872' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/736394734369339872'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/736394734369339872'/><link rel='alternate' type='text/html' href='http://ashko.blogspot.com/2007/05/tips-layout-optimization-tricks-for.html' title='Tips, Layout Optimization Tricks for Adsense Higher CTR'/><author><name>ÅšhΘκ  Šμ∂απi</name><uri>http://www.blogger.com/profile/17739127081189346556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4053486063052531067.post-1326352735836134164</id><published>2007-05-15T23:26:00.000-07:00</published><updated>2007-05-15T23:27:08.196-07:00</updated><title type='text'>How to Access Blocked Websites</title><content type='html'>Blocking access to undesirable Web sites through the use of Internet protocol filters has been a common government tactic since commercial Internet access first became available here in 1995. China and Saudi Arabia are believed to extend greater censorship over the net than any other country in the world under the pretext of information control.&lt;br /&gt;&lt;br /&gt;Most of the blacklisted sites in Saudi Arabia are either sexually explicit or about religion, women, health, drugs and pop culture. They even block access to websites about bathing suits. So if you want to buy something to swim in, they seem to treat that as if it were pornographic in Saudi Arabia.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://photos1.blogger.com/blogger/3709/485/400/Cisco%20Blocks%20Websites.jpg" class="alignimageright" /&gt;In China, webites containing sexually explicit content were among those blocked, but they also included sites on sensitive topics such as Tibet, Taiwan, and dissident activity. China also blocks access to Google News, Typepad and Blogger hosted blogs.&lt;br /&gt;&lt;br /&gt;But what if an innocent website is accidentally blocked by your ISP or your government. There are always legitimate reasons to visit these blocked websites. We have listed a few methods to help you access blocked websites in school, college, office or at home.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Approach 1:&lt;/b&gt; There are websites Anonymizer who fetch the blocked site/ page from their servers and display it to you. As far as the service provider is concerned you are viewing a page from Anonymizer and not the blocked site.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Approach 2:&lt;/b&gt; To access the blocked Web site. type the IP number instead of the URL in the address bar. But if the ISP software maps the IP address to the web server (reverse DNS lookup), the website will remain blocked.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Approach 3:&lt;/b&gt; Use a URL redirection service like tinyurl.com or snipurl.com. These domain forward services sometimes work as the address in the the url box remain the redirect url and do not change to the banned site.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Approach 4:&lt;/b&gt; Use Google Mobile Search. Google display the normal HTML pages as if you are viewing them on a mobile phone. During the translation, Google removes the javascript content and CSS scripts and breaks a longer page into several smaller pages. [&lt;a href="http://www.google.com/xhtml" target="_blank"&gt;link&lt;/a&gt;] &lt;a target="_blank" href="http://www.google.com/gwt/n?u=labnol.blogspot.com"&gt;View this website in Google Mobile&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Approach 5:&lt;/b&gt; Enter the URL in Google or Yahoo search and then visit the cached copy of the page. To retrieve the page more quickly from Google's cache, click "Cached Text Only" while the browser is loading the page from cache.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Approach 6:&lt;/b&gt; A recent &lt;a href="http://www.oreillynet.com/pub/h/4807" target="_blank"&gt;Oreilly story&lt;/a&gt; on accessing blocked websites suggested an approach to access restricted web sites using Google language tools service as a proxy server. Basically, you have Google translate your page from English to English (or whatever language you like). Assuming that Google isn’t blacklisted in your country or school, you should be able to access any site with this method. &lt;a target="_blank" href="http://www.google.com/translate?langpair=en%7Cen&amp;amp;u=labnol.blogspot.com"&gt;Visit this site via Google Proxy&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Approach 7:&lt;/b&gt; &lt;b&gt;Anonymous Surfing&lt;/b&gt; Surf the internet via a proxy server. A proxy server (or proxies) is a normal computer that hides the identity of computers on its network from the Internet. Which means that only the address of the proxy server is visible to the world and not of those computers that are using it to browse the Internet. Just visit the proxy server website with your Web browser and enter a URL (website address) in the form provided.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://proxy.org/cgi_proxies.shtml"&gt;This page&lt;/a&gt; has a long list of proxies. You can either choose one yourself or let the service choose a random proxy for you. Also bookmark the &lt;a target="_blank" href="http://directory.google.com/Top/Computers/Internet/Proxying_and_Filtering/Hosted_Proxy_Services/Free/CGI_Proxy/" title="http://directory.google.com/Top/Computers/Internet/Proxying and Filtering/Hosted Proxy Services/Free/CGI Proxy/"&gt;DMOZ directory of free web-based proxy services&lt;/a&gt; and &lt;a target="_blank" href="http://directory.google.com/Top/Computers/Internet/Proxying_and_Filtering/Hosted_Proxy_Services/Free/Proxy_Lists/" class="external text" title="http://directory.google.com/Top/Computers/Internet/Proxying and Filtering/Hosted Proxy Services/Free/Proxy Lists/"&gt;DMOZ  directory of free proxy servers&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Update: China appears to have moved beyond simply blocking access to a Web site with IP filters and may now be employing packet filters to scan individual packets for undesirable information, said Duncan Clark, managing director at telecommunication analyst BDA China Co. Ltd.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4053486063052531067-1326352735836134164?l=ashko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ashko.blogspot.com/feeds/1326352735836134164/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4053486063052531067&amp;postID=1326352735836134164' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/1326352735836134164'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/1326352735836134164'/><link rel='alternate' type='text/html' href='http://ashko.blogspot.com/2007/05/how-to-access-blocked-websites.html' title='How to Access Blocked Websites'/><author><name>ÅšhΘκ  Šμ∂απi</name><uri>http://www.blogger.com/profile/17739127081189346556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4053486063052531067.post-4899632100199787607</id><published>2007-05-15T23:20:00.000-07:00</published><updated>2007-05-15T23:22:42.157-07:00</updated><title type='text'>Ohhhh! A Secret Google Search URL That Removes/Does not dispay Google Adsense Ads</title><content type='html'>Google makes most of their money from online advertising.&lt;br /&gt;&lt;br /&gt;While it is technically possible to block Google ads on web pages through Firefox extensions or by modifying the hosts file, these hiding methods are mostly implemented by tech-savvy users and may not have that big an effect on Google's revenue.&lt;br /&gt;&lt;br /&gt;However, here's a secret trick - if you append the parameter "output=googleabout" to Google Web Search URL, the search results page will not carry any AdSense ads that are otherwise seen on the top and right sections of the page.&lt;br /&gt;&lt;br /&gt;Here's a direct URL to search Google minus Adsense/Adwords ads:&lt;br /&gt;&lt;br /&gt;google.com/search?output=googleabout&lt;br /&gt;&lt;br /&gt;Not sure why this parameter is in place but this default Google page could have a serious impact on their bottom line since it allows users to search Google sans advertisements without installing any geeky hacks. Thanks Vedrashko.&lt;br /&gt;&lt;br /&gt;The following lines, when added to the Windows HOSTS file, will block Google from serving ads on your computer and won't track your visits on sites that use Google Analytics.&lt;br /&gt;&lt;br /&gt;# [Google Inc]&lt;br /&gt;127.0.0.1 pagead.googlesyndication.com&lt;br /&gt;127.0.0.1 pagead2.googlesyndication.com #[Google AdWords]&lt;br /&gt;127.0.0.1 adservices.google.com&lt;br /&gt;127.0.0.1 ssl.google-analytics.com #[urchinTracker]&lt;br /&gt;127.0.0.1 www.google-analytics.com #[Google Analytics]&lt;br /&gt;127.0.0.1 imageads.googleadservices.com #[Ewido.TrackingCookie.Googleadservices]&lt;br /&gt;127.0.0.1 imageads1.googleadservices.com&lt;br /&gt;127.0.0.1 imageads2.googleadservices.com&lt;br /&gt;127.0.0.1 imageads3.googleadservices.com&lt;br /&gt;127.0.0.1 imageads4.googleadservices.com&lt;br /&gt;127.0.0.1 imageads5.googleadservices.com&lt;br /&gt;127.0.0.1 imageads6.googleadservices.com&lt;br /&gt;127.0.0.1 imageads7.googleadservices.com&lt;br /&gt;127.0.0.1 imageads8.googleadservices.com&lt;br /&gt;127.0.0.1 imageads9.googleadservices.com&lt;br /&gt;127.0.0.1 partner.googleadservices.com&lt;br /&gt;127.0.0.1 www.googleadservices.com&lt;br /&gt;127.0.0.1 apps5.oingo.com #[Microsoft.Typo-Patrol]&lt;br /&gt;127.0.0.1 www.appliedsemantics.com&lt;br /&gt;127.0.0.1 service.urchin.com #[Urchin Tracking Module]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4053486063052531067-4899632100199787607?l=ashko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ashko.blogspot.com/feeds/4899632100199787607/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4053486063052531067&amp;postID=4899632100199787607' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/4899632100199787607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/4899632100199787607'/><link rel='alternate' type='text/html' href='http://ashko.blogspot.com/2007/05/ohhhh-secret-google-search-url-that.html' title='Ohhhh! A Secret Google Search URL That Removes/Does not dispay Google Adsense Ads'/><author><name>ÅšhΘκ  Šμ∂απi</name><uri>http://www.blogger.com/profile/17739127081189346556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4053486063052531067.post-4483945847274288927</id><published>2007-05-15T07:56:00.000-07:00</published><updated>2007-05-15T08:08:55.101-07:00</updated><title type='text'>Blogs: What is Hot and  What is Not</title><content type='html'>&lt;p&gt;Although podcasting has surpassed the popularity of blogging, that  doesn’t mean blogging  is a dying art. If you take the time to browse around the Internet, you’ll see that blog hosting communities are still rapidly growing. If you’re not yet part of this crowd, check it out to experience the fun and excitement.&lt;/p&gt;   Pressing the Keys at applications. Newbies and advanced users will enjoy blogging at WordPress with the many features available for use such as entry previews, blog categories and blogrolls.&lt;/p&gt;   &lt;p&gt;&lt;strong&gt;Thumbs-Ups&lt;/strong&gt;: You can add plug-ins and customize your blog layout. WordPress also provides constant updates for their users.&lt;/p&gt;   &lt;p&gt;&lt;strong&gt;Thumbs-Down:&lt;/strong&gt; A bit of software knowledge is required to properly install WordPress. If you have enabled commenting in your site, don’t be surprised to find that more than a few spammers are developing a habit of dropping by your site. &lt;em&gt;[Ed. Note: I've definitely found this to be the case. Having anti-spam filters like Akisimet in place is important to keep on top of the spam issue.] &lt;/em&gt;&lt;/p&gt;   &lt;h3&gt;Fire up at   &lt;a style="color:blue;" href="http://www.feedburner.com/"&gt;FeedBurner&lt;/a&gt; &lt;/h3&gt; &lt;p&gt;Is your blog is worth broadcasting? If so, you should consider moving from your old blog community to FeedBurner. At FeedBurner, they help you create content and spread the word about your blog as well.&lt;/p&gt;   &lt;p&gt;&lt;strong&gt;Thumbs-Ups:&lt;/strong&gt; With the standard free package, FeedBurner allows you to set up the configuration for your blog for easy posting and even use an RSS subscription button to automatically update the readers of your blog. The Web site gives you information about the average number of visits your blog has per day along with other traffic statistics. You can earn money on the sideline from by adding Google Ads in your blog.&lt;/p&gt;   &lt;p&gt;&lt;strong&gt;Thumbs-Down:&lt;/strong&gt;  The template editing section of FeedBurner isn't easy to master.&lt;/p&gt;   &lt;h3&gt;Everything in One at   &lt;a style="color:blue;" href="http://multiply.com/"&gt;Multiply&lt;/a&gt; &lt;/h3&gt; &lt;p&gt;If you wish to blog, upload photos, videos, music files, write reviews and post your social calendar with one Web site, all you have to do is sign up for an account at Multiply.&lt;/p&gt;   &lt;p&gt;&lt;strong&gt;Thumbs-Ups: &lt;/strong&gt;Photo uploading is virtually unlimited, images can be classified by albums and given captions. Skin choices are provided to give your blogs more color and life and RSS feeds are allowed.&lt;/p&gt;   &lt;p&gt;&lt;strong&gt;Thumbs-Down&lt;/strong&gt;: When writing reviews, Multiply doesn’t give users much freedom to customize content by font type or color. Layouts can be edited…but only if you have CSS knowledge and even with that, customization is still limited. The smiley list is woefully inadequate.&lt;/p&gt;   &lt;h3&gt;Live and Write Freely at   &lt;a style="color:blue;" href="http://www.livejournal.com/"&gt;LiveJournal&lt;/a&gt; &lt;/h3&gt; &lt;p&gt;With a hip nickname such as “LJ,” LiveJournal is a Web site that’s designed for the fun-loving crowd  on the go.&lt;/p&gt;   &lt;p&gt;&lt;strong&gt;Thumbs-Ups: &lt;/strong&gt;Bonds forged online are strengthened by LJ’s email notifications for commenting. If someone comments in your blog, an email will inform you of it. Additionally, an email will be sent to you if your comment on someone else’s LJ receives a reply ­ whether it’s from the blog owner or another blogger doesn’t matter.&lt;/p&gt;   &lt;p&gt;&lt;strong&gt;Thumbs-Down:&lt;/strong&gt; LJ  isn't easy to customize. Some features offered for free by other blog hosts are  only for LJ members with paid accounts.&lt;/p&gt;  &lt;h3&gt; Be In Vogue at   &lt;a style="color:blue;" href="http://www.xanga.com/"&gt;Xanga&lt;/a&gt; &lt;/h3&gt; &lt;p&gt;Teenagers seem to be enamored with Xanga. If you want a blogging process that’s easy and stylish at the same time, Xanga is the blog host for you.&lt;/p&gt;   &lt;p&gt;&lt;strong&gt;Thumbs-Ups&lt;/strong&gt;: Besides having community-based blogging, each post allows you to inform your readers what you’re reading, watching or playing. You can also upload photos, music and write categorized reviews. A guest book is automatically offered to users.&lt;/p&gt;   &lt;p&gt;&lt;strong&gt;Thumbs-Downs:&lt;/strong&gt; Although Xanga allows users to use RSS feeds; it takes time to properly integrate it in their blogs. The layout options are limited, the URL for members is a mouthful and commenting is reserved for Xanga members only.&lt;/p&gt; &lt;h3&gt;Conclusion&lt;/h3&gt; &lt;p&gt;Which blog hosting site do you plan to choose? Wherever you end up blogging, we wish you well! Blog on!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4053486063052531067-4483945847274288927?l=ashko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ashko.blogspot.com/feeds/4483945847274288927/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4053486063052531067&amp;postID=4483945847274288927' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/4483945847274288927'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/4483945847274288927'/><link rel='alternate' type='text/html' href='http://ashko.blogspot.com/2007/05/blogs-what-is-hot-and-what-is-not.html' title='Blogs: What is Hot and  What is Not'/><author><name>ÅšhΘκ  Šμ∂απi</name><uri>http://www.blogger.com/profile/17739127081189346556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4053486063052531067.post-6715839234840955341</id><published>2007-05-15T07:52:00.000-07:00</published><updated>2007-05-15T07:59:27.956-07:00</updated><title type='text'>Security Techniques for PHP</title><content type='html'>&lt;p&gt;With more and more personal information being stored on the Web—credit card data, social security numbers, maiden names, favorite pets—today's PHP developer cannot afford to be ignorant when it comes to security. Sadly, most beginning programmers fail to understand the truth about security: there is no such thing as "secure" or "insecure." The wise programmer knows that the real question is &lt;em&gt;how secure&lt;/em&gt; a site is. Once any piece of data is stored in a database, in a text file, or on a Post-it note in your office, its security is compromised. The focus in this chapter is therefore how to make your applications more secure.&lt;/p&gt;  &lt;p&gt;This chapter will begin by rehashing the fundamentals of secure PHP programming. These are the basic things that I hope/assume you're already doing. After that a quick example shows ways to validate different kinds of data that might come from an HTML form. The third topic is the new-to-PHP 5 PECL library called Filter. Its usage isn't very programmer-friendly, but the way it wraps all of the customary data filtering and sanitizing methods into one interface makes it worth knowing. After that, two different uses of the PEAR Auth package show an alternative way to implement authorization in your Web applications. The chapter will conclude with coverage of the MCrypt library, demonstrating how to encrypt and decrypt data.&lt;/p&gt;  &lt;h2&gt;Remembering the Basics&lt;/h2&gt;  &lt;p&gt;Before getting into demonstrations of more particular security techniques, I want to take a moment to go over the basics: those fundamental rules that every PHP programmer should abide by all of the time.&lt;/p&gt;   &lt;h3&gt;To ensure a basic level of security&lt;/h3&gt;  &lt;ol&gt;&lt;li&gt;&lt;p&gt;Do not rely upon register_globals.&lt;/p&gt; &lt;p&gt;The advent of register_globals once made PHP so easy to use, while also making it less secure (convenience often weakens security). The recommendation is to program as if register_globals is off. This is particularly important because register_globals will likely disappear in future versions of PHP.&lt;/p&gt; &lt;/li&gt;&lt;li&gt;&lt;p&gt;Initialize variables prior to using them.&lt;/p&gt; &lt;p&gt;If register_globals is still enabled—even if you aren't using them—a malicious user could use holes created by noninitialized variables to hack your system. For example:  &lt;span name="KonaFilter"&gt; &lt;div&gt; &lt;div class="dp-highlighter"&gt;&lt;table class="dp-c" border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter"&gt;1&lt;/td&gt;&lt;td class="line1"&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="keyword"&gt;if&lt;/span&gt;&lt;span&gt; (condition) { &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="gutter"&gt;2&lt;/td&gt;&lt;td class="line2"&gt;  &lt;span class="vars"&gt;$auth&lt;/span&gt;&lt;span&gt; = TRUE; &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="gutter"&gt;3&lt;/td&gt;&lt;td class="line1"&gt;} &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;thead&gt;&lt;tr&gt;&lt;td class="tools-corner"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="tools"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;/table&gt;&lt;/div&gt;&lt;textarea style="display: none;" name="code" class="php" cols="60" rows="4"&gt;if (condition) {   $auth = TRUE; } &lt;/textarea&gt; &lt;/div&gt; &lt;/span&gt;&lt;/p&gt;   If &lt;code&gt;$auth&lt;/code&gt; is not preset to &lt;code&gt;FALSE&lt;/code&gt; prior to this code, then a user could easily make themselves authorized by passing &lt;code&gt;$_GET['auth']&lt;/code&gt;, &lt;code&gt;$_POST['auth']&lt;/code&gt;, or &lt;code&gt;$_COOKIE['auth']&lt;/code&gt; to this script. &lt;/li&gt;&lt;li&gt;&lt;p&gt;Verify and purify all incoming data.&lt;/p&gt; &lt;p&gt;How you verify and purify the data depends greatly upon the type of data. You'll see many different techniques in this chapter and the book.&lt;/p&gt;  &lt;blockquote&gt; &lt;strong&gt;Avoiding Mail Abuses&lt;/strong&gt;           &lt;p&gt;A security concern exists in any Web application that uses the &lt;code&gt;mail()&lt;/code&gt; function with form data. For starters, if someone enters their "to" email address as &lt;em&gt;someone@example.com,someone.else@example.com&lt;/em&gt;, you'll now be sending two emails. If a malicious user enters 500 addresses (perhaps by creating their own form that submits to your same page), you're now sending out spam! You can avoid this by using regular expressions to guarantee that the submitted value contains just one address. Or you could search for a comma in the submitted email address, which wouldn't be allowed. But that won't solve the problem entirely.&lt;/p&gt;           &lt;p&gt;Although the &lt;code&gt;mail()&lt;/code&gt; function takes separate arguments for the "to" address, "from" address (or other additional headers), subject, and body, all four values are put together to create the actual message. By submitting specifically formatted text through any of these inputs, bad people can still use your form to send their spam. To guard against this, you should watch for newline (&lt;code&gt;\n&lt;/code&gt;) and carriage returns (&lt;code&gt;\r&lt;/code&gt;) within the submitted data. Either don't send emails with these values or replace them with spaces to invalidate the intended message format. You should probably also make sure that you (or someone involved with the site) receives a copy of every email sent so that close tabs can be kept on this area of the server.&lt;/p&gt;  &lt;/blockquote&gt;     &lt;/li&gt;&lt;li&gt;&lt;p&gt;Be careful if you use variables for included files.&lt;/p&gt; &lt;p&gt;If your code does something like&lt;/p&gt; &lt;span name="KonaFilter"&gt; &lt;div style="width: 700px;"&gt; &lt;div class="dp-highlighter"&gt;&lt;table class="dp-c" border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="line1"&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="keyword"&gt;require&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span class="vars"&gt;$page&lt;/span&gt;&lt;span&gt;); &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;textarea style="display: none;" name="code" class="php:nogutter:nocontrols" cols="60" rows="2"&gt;require($page); &lt;/textarea&gt; &lt;/div&gt; &lt;/span&gt; &lt;p&gt;then you should either make sure that &lt;code&gt;$page&lt;/code&gt; does not come from an outside source (like &lt;code&gt;$_GET&lt;/code&gt;) or, if it does, that you've made certain that it has an appropriate value. See the technique in Chapter 2, "Developing Web Applications."&lt;/p&gt; &lt;/li&gt;&lt;li&gt;&lt;p&gt;Be extra, extra careful when using any function that runs commands on the server.&lt;/p&gt; &lt;p&gt;This includes &lt;code&gt;eval()&lt;/code&gt;, &lt;code&gt;exec()&lt;/code&gt;, &lt;code&gt;system()&lt;/code&gt;, &lt;code&gt;passthru()&lt;/code&gt;, &lt;code&gt;popen()&lt;/code&gt;, and the backticks (&lt;code&gt;``&lt;/code&gt;). Because each of these runs commands on the server itself, they should never be used casually. And if you must use a variable as part of the command to execute, perform any and all security checks on that variable first. Also use the &lt;code&gt;escapeshellarg()&lt;/code&gt; and &lt;code&gt;escapeshellcmd()&lt;/code&gt; functions as an extra precaution.&lt;/p&gt; &lt;/li&gt;&lt;li&gt;&lt;p&gt;Consider changing the default session directory or using a database to store session data.&lt;/p&gt; &lt;p&gt;An example as to how you would do this is discussed in Chapter 3, "Advanced Database Concepts."&lt;/p&gt; &lt;/li&gt;&lt;li&gt;&lt;p&gt;Do not use browser-supplied filenames for storing uploaded files on the server.&lt;/p&gt; &lt;p&gt;When you move a file onto your server, rename it to something safe, preferably something not guessable.&lt;/p&gt; &lt;/li&gt;&lt;li&gt;&lt;p&gt;Watch for HTML (and more important, JavaScript) in submitted data if it will be redisplayed in a Web page.&lt;/p&gt; &lt;p&gt;Use the &lt;code&gt;strip_tags()&lt;/code&gt; or similar functions to clear HTML and potential JavaScript from submitted text.&lt;/p&gt; &lt;/li&gt;&lt;li&gt;&lt;p&gt;Do not reveal PHP errors on live sites.&lt;/p&gt; &lt;p&gt;One of the most common ways to hack a site is to try to "break" it—do something unexpected to cause errors—in the hopes that the errors reveal important behind-the-scenes information.&lt;/p&gt; &lt;/li&gt;&lt;li&gt;&lt;p&gt;Nullify the possibility of SQL injection attacks.&lt;/p&gt; &lt;p&gt;Use a language-specific database escaping function, like &lt;code&gt;mysqli_real_escape_data()&lt;/code&gt;, to ensure that submitted values will not break your queries.&lt;/p&gt; &lt;/li&gt;&lt;li&gt;&lt;p&gt;Program with error reporting on its highest level.&lt;/p&gt; &lt;p&gt;While not strictly a security issue, programming with error reporting on its highest level can often show potential holes in your code.&lt;/p&gt; &lt;/li&gt;&lt;li&gt;&lt;p&gt;Never keep &lt;code&gt;phpinfo()&lt;/code&gt; scripts on the server.&lt;/p&gt; &lt;p&gt;Although vital for developing and debugging PHP applications, &lt;code&gt;phpinfo()&lt;/code&gt; scripts reveal too much information and are too easily found if left on a live site.&lt;/p&gt; &lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4053486063052531067-6715839234840955341?l=ashko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ashko.blogspot.com/feeds/6715839234840955341/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4053486063052531067&amp;postID=6715839234840955341' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/6715839234840955341'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4053486063052531067/posts/default/6715839234840955341'/><link rel='alternate' type='text/html' href='http://ashko.blogspot.com/2007/05/security-techniques-for-php.html' title='Security Techniques for PHP'/><author><name>ÅšhΘκ  Šμ∂απi</name><uri>http://www.blogger.com/profile/17739127081189346556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4053486063052531067.post-7443398681429564302</id><published>2007-05-14T02:57:00.000-07:00</published><updated>2007-05-14T03:01:00.705-07:00</updated><title type='text'>Google searches web's dark side</title><content type='html'>&lt;span&gt;&lt;b&gt;One in 10 web pages scrutinised by search giant Google contained malicious code that could infect a user's PC.&lt;/b&gt; &lt;/span&gt;&lt;p&gt; &lt;span style="font-size:15px;"&gt;Researchers from the firm surveyed billions of sites, subjecting 4.5 million pages to "in-depth analysis". &lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;span style="font-size:15px;"&gt;About 450,000 were capable of launching so-called "drive-by downloads", sites that install malicious code, such as spyware, without a user's knowledge. &lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;span style="font-size:15px;"&gt;A further 700,000 pages were thought to contain code that could compromise a user's computer, the team report. &lt;!-- E SF --&gt; &lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;span style="font-size:15px;"&gt;To address the problem, the researchers say the company has "started an effort to identify all web pages on the internet that could be malicious". &lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;span style="font-size:15px;"&gt;&lt;b&gt;Phantom sites&lt;/b&gt; &lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;span style
