Reviwing articles
jump to
@@ -4,4 +4,368 @@ content-type: article
timestamp: 1137048164 tags: "php|webdevelopment|review" ----- -<em><strong>Important Notice:</strong> This article is about changes occurring to zZine Magazine's site[1]. At the time of writing, <a href="http://www.zzine.org">www.zzine.org</a> uses the old site, and not the Drupal-based one presented in this article, which is currently under construction[18].</em><br /><br />"Why can't we log who edits the articles?"<br />"Can we send newsletters?"<br />"We should really have a members' area..."<br /><br />zZine.org[1] is a scratch-built site, coded from the ground up to offer zZine journalists, editors and readers all the functionalities and features they wanted. I'm not totally against sites being coded from scratch, but what happens if something needs to be fixed, or new functionalities have to be implemented and you realize that the code cannot be extended or patched easily?<br /><br /><strong>Case Study: zZine Magazine</strong><br /><br />zZine Magazine is an online magazine which publishes not only IT-related and other articles on a weekly basis, but also monthly publications containing CyberArmy[2] digests, special columns, and featured articles. A team of journalists, researchers, editors, publishers and outside contributors has access to the zZine site to write, submit, and edit articles, manage publications and perform various other tasks through a password-protected administration area. This is common to approximately 75% of the websites on the Internet: they have a front-end to present content to the general public and a semi-hidden administration backend which is normally more difficult and tedious to code. That's why someone started developing <em>Content Management Systems</em>[3]: ready-made, fully-featured administrative back-ends for creating and managing almost any kind of website, from blogs to eCommerce portals.<br /><br />Could a CMS be used for zZine Magazine? Probably - zZine doesn't need any innovative or advanced features, just a bunch of commonly-used functionalities like:<br /><ul><br /> <li>Add, delete, edit and publish articles</li><br /> <li>Customizable user permissions, ideally role-based </li>(writer, editor, publisher, etc.)<br /> <li>Creating and managing monthly publications</li><br /> <li>Editor's tests</li><br /> <li>User signups, notifications, etc.</li><br /> <li>RSS feed generation</li><br /> <li>Sending newsletters to subscribers</li><br /> <li>Logging user actions</li><br /></ul><br />Some members of my team raised some concerns regarding the usage of a CMS, which were mostly based on our past experience with just a particular product and not CMSes in general. Everybody agreed that if we were to go back to a CMS, we <em>had</em> to choose the <em>best</em> this time: something flexible, easy to use, fast, search-engine friendly, and extensible. I spent some time researching CMSes, because while I knew that there's no such thing as the best CMS, there was certainly a CMS that was best for our needs.<br /><br /><br /><strong>Making the right choice</strong><br /><br />In the past, I had played around with Xoops[4] when I first thought about creating websites, and I used Mambo[5] for some other sites. I admit that I never actually spent time creating complex Mambo components and modules, but I must say that in the end I felt somehow tied to third-party modules and unable to understand how they really worked: Mambo seemed to give developers too much freedom, and had neither a solid API nor conventions to follow, at least when I used it.<br /><br />So I decided to have a look around again, starting from the two most important sites people should look at when choosing the most suitable CMS for their work. <br />The first site is CMS Matrix[6] which - as the name implies - provides a really handy <em>matrix</em>, or chart, to compare the various features offered by nearly all CMS available, both proprietary and open-source.<br /><br />I remember choosing Mambo last time I used the matrix simply because it appeared to be one of the most feature-rich. This is actually something <em>not</em> to do when choosing a CMS: always concentrate on what your site needs rather than what the CMS is able to offer. Otherwise, you run the risk of having too much to work with.<br /><br />The other important website to visit when choosing a Content Management System is OpenSourceCMS[7], which basically allows you to try a demo of every open source CMS online. This is perhaps more useful, but also much more time-consuming: it's better to narrow down the list of possible CMSes after checking CMS Matrix and then try each one rather than just picking one at random.<br /><br />At this point, an experienced CyberArmy staff member[8] suggested Drupal[9]. I asked her why, and she simply said that it seemed to be the best choice according to zZine's needs, as it basically offered all the features we were looking for, either natively or through modules. She also admitted to be biased, as she's actually <em>part of Drupal's documentation team</em> and involved with Drupal development[10].<br /><br />Before making any kind of commitment, I checked out Drupal's website to see how they organized things, and I was quite impressed. I immediately noticed the Handbooks section[11], which contains all the official Drupal documentation and it seemed pretty much complete. No "under construction", "please write content here" or "we're a new project, help us write the documentation" notes, just a load of good-quality documentation, including a fully documented and <em>stable</em> API![12] <br /><br />This surprised me, because some projects I came across, even really good ones, lacked a proper documentation section. I think this is a common problem with new open source projects, and Drupal for this reason gave me the impression to be quite mature and useable already. After visiting the very clear and organized Downloads Section[13], I downloaded the CMS and a few modules and installed it on my laptop.<br /><br /><br /><strong>Installation</strong><br /><br />Drupal needs three things to run:<br /><ul><br /> <li>A web server - Apache is fine, and ISS is reported to be working</li><br /> <li>PHP - Either version 4 or 5, Drupal started supporting PHP5 since 4.6.0 release</li><br /> <li>A PHP-compatible database - MySQL or PostgreSQL is recommended</li><br /></ul><br />I used a WAMP[14] installation to test Drupal. First of all, I created a MySQL database, granting ALL privileges to the database user accessing the Drupal database. When I uploaded the site to the remote server, later on, I had some problems because the LOCK TABLES privilege wasn't granted by the host. Drupal requires this, so I had to contact my host to solve the problem. I then imported the database scheme located in the <em>database</em> directory under the installation directory and modified the configuration settings (sites/default/settings.php) to allow Drupal to access the database. Installation complete.<br /><br />Drupal was now up and running with the default configuration settings, with a minimum of fuss. For all the details concerning the installation process, consult the exhaustive documentation.[15] I didn't read it when I installed it, but it can really be useful in some situations.<br /><br /> There are actually two non-critical things to consider if you're planning to use Drupal for a medium-sized project: the first involves changing a few settings on php.ini, in particular increasing the amount of memory allocated to PHP from 8MB to 16MB, especially if you're planning to use either a lot of simple modules or a few complex ones, and the second is setting up your crontab to execute <em>http://www.yoursite.com/cron.php</em> every hour or so. This is required by some semi-essential modules like the site-wide search, but a common alternative (if you don't want to setup the <em>cron</em> task manually) is the poorman's <em>cron</em> module[15], which I used myself and found to be workable. <br /><br /><br /><strong>Keeping your site under control</strong><br /><br />Perhaps one of the best things Drupal has to offer is a rock-solid general-purpose administrative backend. The first thing I found in the backend which really impressed me (and that also I never found in another CMS) is the ability to create <em>custom</em> role-based user accounts and access permissions for <em>everything</em>: every module can be configured so that, for example, not all people can see its output and just a few can administer and modify it.<br /><br />For zZine, I created four types of accounts:<br /><ul><br /> [*]<em>Administrator</em> - Able to access everything and change every setting of the site<br /> [*]<em>Publisher</em> - Able to write, edit and publish every kind of content on the site, but not able to administer user accounts, permissions and similar administrator-only tasks.<br /> [*]<em>Editor</em> - Able to write and edit anything on the site, but not to publish it.<br /> [*]<em>Writer</em> - Able to write articles, blogs and similar content, but in some cases not allowed to edit it.<br /></ul><br />These were precisely the account types I was looking for in a CMS. Granted, other products offer them by default, but having pre-defined account types is one thing, and being able to customize them completely is another.<br /><br />User accounts are great, but sometimes it's good to know what the users of your sites are doing as well. On our old site we had user accounts for editors and administrators, and even if only a few people had access we had no way to determine who edited an article or who published something unless that person told us. Drupal comes with a radical solution to this: Almost every action is automatically logged by the <em>watchdog</em> core module. Every website error, every page not found, and every PHP or MySQL error is logged, as well as every content submission or modification. Page accesses, meanwhile, can be logged through the statistics module. <br /><br />Themes & Templates<br /><br />"We shouldn't use a CMS: I don't want zZine to have the overly used *nuke-style look." I've heard this too many times. Sometimes people associate the word "CMS" with "lack of original design", and that's not true by any means, especially for Drupal. Of course, there are plenty of ready made themes[16] which can be freely used or modified for any Drupal-based site. <br /><br />I must confess that when I first saw the themes section I feared that Drupal "themes" used their own template engine, like some CMSes do nowadays, but I was wrong: currently Drupal supports some template engines[17] but also pure PHP-based ones. Theme engines do their job wonderfully and can offer some interesting features, but templates written natively in PHP tend to perform better, simply because there's no extra parsing or additional overhead involved.<br /><br />I decided to have a look at a standard PHP theme. Basically, it's nothing more than a PHP-enriched xHTML file and its corresponding stylesheet. There are a few functions which must be used to perform particular tasks, like showing the main navigation links, but nothing too hard to understand. It's also <em>very</em> customizable. In fact, we're already working on a custom zZine theme, which doesn't seem any harder than coding a standard xHTML template. As design should always be the last thing to worry about, I decided to use a temporary template I created by slightly modifying an existing one.[18]<br /><br /><br /><strong>To switch or not to switch?</strong><br /><br />When creating a new site for an organization which already has one, there's something very important to consider: <em>what happens to the old data</em>?<br />Assuming the old site was dynamic and using a database of some sort, there are three possibilities:<br /><ul><br /> <li>Don't bother doing anything: any data on the old site will not be transferred to the new one.</li><br /> <li>Make the old website available somewhere else as an </li><em>archive</em> of old documents.<br /> <li>Import all the data from the old site to the new one. </li><br /></ul><br />Obviously we went straight for the third one, which is the most difficult to implement, but it was necessary: there were over 1000 articles on the old site-<br /><br />Of course, in reality, I didn't even mention the possibility of using Drupal until I figured out a way to import the old data into the new database structure. Never praise features or convince people to switch unless you're 100% sure you can handle the situation. Luckily for me, it turned out that everything could be imported easily enough.<br /><br />The first difference I found between Drupal and zZine was that we didn't really have proper user accounts. Every article had an author, but it was stored as a field in the article's record, and that was all. Drupal, on the other hand, supports (and perhaps requires) user accounts - everything present on the site must be written or edited by an existing user.<br /><br />The solution I cam eup with was rather drastic: I created about 120 user accounts, retrieving usernames from the articles and inserting them through a custom PHP script into Drupal's user table. Of course, those users never registered on the new site[18], so I didn't personalize the accounts at all: I simply put a notice on the first page asking everyone who contributed to zZine before to contact me in some way to enable their account with a valid email address.<br /><br />After this initial difficulty, importing articles was relatively easy. Pretty much every type of content in Drupal is, in its simplest form, a <em>node</em>. Nodes have a title, which is a teaser generated automatically from the body text, and an author (the node table in the database has more fields, but these are the key ones for us). Essentially, Drupal's two default models for writing <em>stories</em> and <em>pages</em> write data to this table only. The most important thing to understand about Drupal is that almost every module used to create <em>something</em> on the site - an article, a blog entry, even songs - will use the node table, and add everything else on other tables. This makes the whole system much easier to administer: every node can potentially be extended <em>in any way</em> by third party modules! <br /><br />What about categories? Well, Drupal has become famous for its taxonomy module: whereas most CMSes only support, or in fact <em>impose</em>, a one- or two-level hierarchy for categories, Drupal's taxonomy module supports the creation of as many different terms to describe data as you can think of. Each piece of content (categorization can be applied to <em>any</em> node, and since almost everything is a node-) can belong to none or <em>n</em> different categories, which can be nested in a <em>n</em>-level hierarchy. Since the zZine articles were already divided into categories, I imported all of them directly into Drupal. On the old zZine site, every article could have at most one category, which is fine, but it's good to know that we can now configure the system to support a more advanced categorizing system.<br /><br />After importing the articles, the last important thing to transfer to the new site were the zZine Publications. Publications are what we call the article collections that we release as an issue every month. I could have created a new module for this, and it wouldn't have been that hard, but there was already an excellent module for that. This was pure luck, but the <em>epublish</em>[19] module seemed like it was tailored specifically for our needs.<br /><br /><br /><strong>Drupal API and Modules</strong><br /><br />We were lucky enough to be able to use existing modules for the main functionalities of our site, but in some cases you might not be able to find <em>exactly</em> what you're looking for.<br /> <br />In our case, even if we could have used the <em>story</em> module, which is part of the default installation, for zZine articles (stories have a body, a teaser, a title and an author, exactly like our articles) we decided not to. I wanted our editors and writers to know what to use when submitting articles, and the name "stories" sounds a bit too ambiguous for my liking. So, I decided to have a look at the standard story module to see how modules work, and create something similar.<br /><br /><em>Note: I'm curious by nature and I didn't read anything in the Drupal API[12], or about developing custom modules; I looked at the story module without any prior knowledge of Drupal's conventions.</em><br /><br />All I found in the story module was a bunch of functions like:<br /><code><br />/**<br /> * Implementation of hook_node_name().<br /> */<br />function story_node_name($node) {<br /> return t('story');<br />}<br /></code><br /><br /> which seemed to be enough to tell the Drupal core what to do. I was used to Mambo components, where developers have more liberty to do what they want, including outputting HTML code anywhere. Drupal is nothing like that; on the contrary, it has its own structure and coding conventions that developers have to follow when creating custom modules. Even if a simple function like the one above is fully commented, it has to have a standard indentation (two spaces) and an obviously standardized name. I noticed that all the functions similar to this one started with "<em>story_</em>", so I created a new file named <em>zzarticle.module</em>, copied and pasted the story module code into it, and changed every function accordingly, like this:<br /><code><br />/**<br /> * Implementation of hook_node_name().<br /> */<br />function zzarticle_node_name($node) {<br /> return t('zZine Article');<br />} <br /></code><br />Trivial enough, and it worked fine! I put my shamefully copied module in the /modules directory and I was able to create "zZine Articles" (which were nothing but stories with a different name).<br /><br />At this point I decided to have a proper look at the API, and read about hooks:<br /><br /><fieldset><blockquote><em>"Drupal's module system is based on the concept of "hooks". A hook is a PHP function that is named foo_bar(), where "foo" is the name of the module (whose filename is thus foo.module) and "bar" is the name of the hook. Each hook has a defined set of parameters and a specified result type.<br /> To extend Drupal, a module need simply implement a hook. When Drupal wishes to allow intervention from modules, it determines which modules implement a hook and call that hook in all enabled modules that implement it. [-]"</em></blockquote></fieldset><br />A <em>hook</em> was used for the previously mentioned function, and this was diligently commented:<br /><br /><code><br />/**<br /> * Implementation of hook_node_name().<br /> */<br /></code><br /><br />This made me understand how Drupal is actually geared towards developers and at the same time suitable for non-technical users. Wait a minute, what if someone is not familiar with PHP and still needs custom modules and features? Is there any way to extend Drupal without having to physically code new things? Yes, there is, and two modules come to mind:<br /><ul><br /><br /> [*]<em>Webform</em> - allows the creation of any kind of web form. Users can customize field types, values, labels and messages. The module also provides ways to process forms by either saving data to the database or emailing it, which we can use for things like the Editor's Test and surveys.<br /> [*]<em>Flexynode</em> - This module is simple and powerful - it allows users to create their own content types without coding a single line. In my example, I cloned the story module to create the zZine Article content type. This is easy to do, and functional, but what happens if someone wants to include an additional field to the article submission form? I can probably do this using hooks, but if I was lazy I could do the same thing with the <em>flexynode</em> module. I actually used this module for our podcast section[20], and it did an excellent job.<br /></ul><br /><br /><strong>Conclusions</strong><br /><br />For now I must say I'm very happy with what Drupal has to offer, and if there's something we need for the site, we can code it ourselves and then integrate it into Drupal. <br />One of the major strengths of this CMS is definitely its developer-friendliness: while other CMSes mainly focus on users at the price of limiting extensibility and trapping developers into predefined modules, Drupal even encourages developers to integrate their code into the existing structure, opening virtually unlimited possibilities. Granted, it may seem difficult to understand at first, some people I talked to told me that 'Drupal is too complex' or has a rather steep learning curve, but I just think everything becomes clearer after reading parts of the vast documentation section: this is the only price to pay, and believe me, it is definitely worthwhile.<br /><br /> <br /><strong>Notes</strong><br /><small><br />[1] zZine Magazine: <a href="http://www.zzine.org">http://www.zzine.org</a><br />[2] CyberArmy Community: <a href="http://www.cyberarmy.net">http://www.cyberarmy.net</a><br />[3] Content Management System, Wikipedia page: <a href="http://en.wikipedia.org/wiki/Content_management_system">http://en.wikipedia.org/wiki/Content_management_system</a><br />[4] Xoops - Official Page <a href="http://www.xoops.org/">http://www.xoops.org/</a><br />[5] Mambo - Official Page: <a href="http://www.mamboserver.com">http://www.mamboserver.com</a><br />[6]CMS Matrix: <a href="http://cmsmatrix.org/">http://cmsmatrix.org/</a><br />[7] Open Source CMS: <a href="http://opensourcecms.com/">http://opensourcecms.com/</a><br />[8] Snarkles's CyberArmy Profile: <a href="http://www.cyberarmy.net/~snarkles">http://www.cyberarmy.net/~snarkles</a><br />[9] Drupal - Official Page: <a href="http://www.drupal.org">http://www.drupal.org</a><br />[10]Webchick's Drupal Profile: <a href="http://drupal.org/user/24967">http://drupal.org/user/24967</a><br />[11] Drupal - Handbooks: <a href="http://www.drupal.org/handbooks/">http://www.drupal.org/handbooks/</a><br />[12] Drupal API: <a href="http://drupaldocs.org/api/head">http://drupaldocs.org/api/head</a><br />[13] Drupal Downloads: <a href="http://www.drupal.org/project/">http://www.drupal.org/project/</a><br />[14] WAMP Server Package: <a href="http://www.wampserver.com">http://www.wampserver.com</a><br />[15] Drupal - Installing and Upgrading documentation: <a href="http://drupal.org/node/258">http://drupal.org/node/258</a><br />[16] Drupal - Themes: <a href="http://drupal.org/project/Themes">http://drupal.org/project/Themes</a><br />[17] Drupal - Theme Engines: <a href="http://drupal.org/node/509">http://drupal.org/node/509</a><br />[18] zZine Beta site: <a href="http://beta.zzine.org">http://beta.zzine.org</a><br />[19] Drupal - ePublish module: <a href="http://drupal.org/project/epublish">http://drupal.org/project/epublish</a><br />[20] zZine Podcasts: <a href="http://beta.zzine.org/podcasts">http://beta.zzine.org/podcasts</a><br /></small><br /> + +<p><strong>Important Notice:</strong> This article is about changes occurring to zZine Magazine's site[1]. At the time + of writing, <a href="http://www.zzine.org">www.zzine.org</a> uses the old site, and not the Drupal-based one + presented in this article, which is currently under construction[18].</em>> +<p> + +<p>"Why can't we log who edits + the articles?"</p> +<p>"Can we send newsletters?"</p> +<p>"We should really have a members' area..."</p> +<p>zZine.org[1] + is a scratch-built site, coded from the ground up to offer zZine journalists, editors and readers all the + functionalities and features they wanted. I'm not totally against sites being coded from scratch, but what happens + if + something needs to be fixed, or new functionalities have to be implemented and you realize that the code cannot be + extended or patched easily?</p> +<h3>Case Study: zZine Magazine</h3> +<p>zZine Magazine is an + online magazine which publishes not only IT-related and other articles on a weekly basis, but also monthly + publications + containing CyberArmy[2] digests, special columns, and featured articles. A team of journalists, researchers, + editors, + publishers and outside contributors has access to the zZine site to write, submit, and edit articles, manage + publications and perform various other tasks through a password-protected administration area. This is common to + approximately 75% of the websites on the Internet: they have a front-end to present content to the general public + and a + semi-hidden administration backend which is normally more difficult and tedious to code. That's why someone started + developing <em>Content Management Systems</em>[3]: ready-made, fully-featured administrative back-ends for creating + and + managing almost any kind of website, from blogs to eCommerce portals.</p> +<p>Could a CMS be used for zZine Magazine? + Probably - zZine doesn't need any innovative or advanced features, just a bunch of commonly-used functionalities + like: +</p> +<ul> + <li>Add, delete, edit and publish articles</li> + <li>Customizable user permissions, ideally role-based </li>(writer, editor, publisher, etc.) + <li>Creating and managing monthly publications</li> + <li>Editor's tests</li> + <li>User signups, notifications, etc.</li> + <li>RSS feed generation</li> + <li>Sending newsletters to subscribers</li> + <li>Logging user actions</li> +</ul> +<p>Some members of my team raised some concerns regarding the usage of a CMS, which were mostly based on our + past experience with just a particular product and not CMSes in general. Everybody agreed that if we were to go back + to + a CMS, we <em>had</em> to choose the <em>best</em> this time: something flexible, easy to use, fast, search-engine + friendly, and extensible. I spent some time researching CMSes, because while I knew that there's no such thing as + the + best CMS, there was certainly a CMS that was best for our needs.</p> + + + +<h3>Making the right + choice</h3> +<p>In the past, I had played around with Xoops[4] when I first thought about creating + websites, and I used Mambo[5] for some other sites. I admit that I never actually spent time creating complex Mambo + components and modules, but I must say that in the end I felt somehow tied to third-party modules and unable to + understand how they really worked: Mambo seemed to give developers too much freedom, and had neither a solid API nor + conventions to follow, at least when I used it.</p> +<p>So I decided to have a look around again, starting from the + two most important sites people should look at when choosing the most suitable CMS for their work. </p> +<p>The first site + is CMS Matrix[6] which - as the name implies - provides a really handy <em>matrix</em>, or chart, to compare the + various + features offered by nearly all CMS available, both proprietary and open-source.</p> +<p>I remember choosing Mambo + last time I used the matrix simply because it appeared to be one of the most feature-rich. This is actually + something + <em>not</em> to do when choosing a CMS: always concentrate on what your site needs rather than what the CMS is able + to + offer. Otherwise, you run the risk of having too much to work with. +</p> +<p>The other important website to visit when + choosing a Content Management System is OpenSourceCMS[7], which basically allows you to try a demo of every open + source + CMS online. This is perhaps more useful, but also much more time-consuming: it's better to narrow down the list of + possible CMSes after checking CMS Matrix and then try each one rather than just picking one at random.</p> +<p>At + this point, an experienced CyberArmy staff member[8] suggested Drupal[9]. I asked her why, and she simply said that + it + seemed to be the best choice according to zZine's needs, as it basically offered all the features we were looking + for, + either natively or through modules. She also admitted to be biased, as she's actually <em>part of Drupal's + documentation + team</em> and involved with Drupal development[10].</p> +<p>Before making any kind of commitment, I checked out + Drupal's website to see how they organized things, and I was quite impressed. I immediately noticed the Handbooks + section[11], which contains all the official Drupal documentation and it seemed pretty much complete. No "under + construction", "please write content here" or "we're a new project, help us write the documentation" notes, just a + load + of good-quality documentation, including a fully documented and <em>stable</em> API![12] </p> +<p>This surprised me, + because some projects I came across, even really good ones, lacked a proper documentation section. I think this is a + common problem with new open source projects, and Drupal for this reason gave me the impression to be quite mature + and + useable already. After visiting the very clear and organized Downloads Section[13], I downloaded the CMS and a few + modules and installed it on my laptop.</p> + + + +<h3>Installation</h3> +<p>Drupal needs three + things to run:</p> +<ul> + <li>A web server - Apache is fine, and ISS is reported to be working</li> + <li>PHP - Either version 4 or 5, Drupal started supporting PHP5 since 4.6.0 release</li> + <li>A PHP-compatible database - MySQL or PostgreSQL is recommended</li> +</ul> +<p>I used a WAMP[14] installation to test Drupal. First of all, I created a MySQL database, granting ALL + privileges to the database user accessing the Drupal database. When I uploaded the site to the remote server, later + on, + I had some problems because the LOCK TABLES privilege wasn't granted by the host. Drupal requires this, so I had to + contact my host to solve the problem. I then imported the database scheme located in the <em>database</em> directory + under the installation directory and modified the configuration settings (sites/default/settings.php) to allow + Drupal to + access the database. Installation complete.</p> +<p>Drupal was now up and running with the default configuration + settings, with a minimum of fuss. For all the details concerning the installation process, consult the exhaustive + documentation.[15] I didn't read it when I installed it, but it can really be useful in some situations.</p> +<p>There are actually two non-critical things to consider if you're planning to use Drupal for a medium-sized project: + the + first involves changing a few settings on php.ini, in particular increasing the amount of memory allocated to PHP + from + 8MB to 16MB, especially if you're planning to use either a lot of simple modules or a few complex ones, and the + second + is setting up your crontab to execute <em>http://www.yoursite.com/cron.php</em> every hour or so. This is required + by + some semi-essential modules like the site-wide search, but a common alternative (if you don't want to setup the + <em>cron</em> task manually) is the poorman's <em>cron</em> module[15], which I used myself and found to be + workable. +</p> +<h3>Keeping your site under control</h3> +<p>Perhaps one of the best things Drupal has + to offer is a rock-solid general-purpose administrative backend. The first thing I found in the backend which really + impressed me (and that also I never found in another CMS) is the ability to create <em>custom</em> role-based user + accounts and access permissions for <em>everything</em>: every module can be configured so that, for example, not + all + people can see its output and just a few can administer and modify it.</p> +<p>For zZine, I created four types of + accounts:</p> +<ul> + <li><em>Administrator</em> - Able to access everything and change every setting of the site</li> + <li><em>Publisher</em> - Able to write, edit and publish every kind of content on the site, but not able to + administer user accounts, permissions and similar administrator-only tasks.</li> + <li><em>Editor</em> - Able to write + and edit anything on the site, but not to publish it.</li> + <li><em>Writer</em> - Able to write articles, blogs and + similar content, but in some cases not allowed to edit it.</li> +</ul> +<p>These were precisely the account types I + was looking for in a CMS. Granted, other products offer them by default, but having pre-defined account types is one + thing, and being able to customize them completely is another.</p> +<p>User accounts are great, but sometimes it's + good to know what the users of your sites are doing as well. On our old site we had user accounts for editors and + administrators, and even if only a few people had access we had no way to determine who edited an article or who + published something unless that person told us. Drupal comes with a radical solution to this: Almost every action is + automatically logged by the <em>watchdog</em> core module. Every website error, every page not found, and every PHP + or + MySQL error is logged, as well as every content submission or modification. Page accesses, meanwhile, can be logged + through the statistics module.</p> +<p>Themes & Templates</p> +<p>"We shouldn't use a CMS: I don't want zZine to + have the overly used *nuke-style look." I've heard this too many times. Sometimes people associate the word "CMS" + with + "lack of original design", and that's not true by any means, especially for Drupal. Of course, there are plenty of + ready + made themes[16] which can be freely used or modified for any Drupal-based site.</p> +<p>I must confess that when I + first saw the themes section I feared that Drupal "themes" used their own template engine, like some CMSes do + nowadays, + but I was wrong: currently Drupal supports some template engines[17] but also pure PHP-based ones. Theme engines do + their job wonderfully and can offer some interesting features, but templates written natively in PHP tend to perform + better, simply because there's no extra parsing or additional overhead involved.</p> +<p>I decided to have a look at + a standard PHP theme. Basically, it's nothing more than a PHP-enriched xHTML file and its corresponding stylesheet. + There are a few functions which must be used to perform particular tasks, like showing the main navigation links, + but + nothing too hard to understand. It's also <em>very</em> customizable. In fact, we're already working on a custom + zZine + theme, which doesn't seem any harder than coding a standard xHTML template. As design should always be the last + thing to + worry about, I decided to use a temporary template I created by slightly modifying an existing + one.[18]</p> + + +<h3>To switch or not to switch?</h3> +<p>When creating a new site for an + organization which already has one, there's something very important to consider: <em>what happens to the old + data</em>?</p> +<p>Assuming the old site was dynamic and using a database of some sort, there are three + possibilities:</p> +<ul> + <li>Don't bother doing anything: any data on the old site will not be transferred to the new one.</li> + <li>Make the old website available somewhere else as an <em>archive</em> of old documents.</li> + <li>Import all the data from the old site to the new one.</li> +</ul> +<p>Obviously we went straight for the third one, which is the most difficult to implement, but it was necessary: + there were over 1000 articles on the old site-</p> +<p>Of course, in reality, I didn't even mention the possibility + of using Drupal until I figured out a way to import the old data into the new database structure. Never praise + features + or convince people to switch unless you're 100% sure you can handle the situation. Luckily for me, it turned out + that + everything could be imported easily enough.</p> +<p>The first difference I found between Drupal and zZine was that we + didn't really have proper user accounts. Every article had an author, but it was stored as a field in the article's + record, and that was all. Drupal, on the other hand, supports (and perhaps requires) user accounts - everything + present + on the site must be written or edited by an existing user.</p> +<p>The solution I cam eup with was rather drastic: I + created about 120 user accounts, retrieving usernames from the articles and inserting them through a custom PHP + script + into Drupal's user table. Of course, those users never registered on the new site[18], so I didn't personalize the + accounts at all: I simply put a notice on the first page asking everyone who contributed to zZine before to contact + me + in some way to enable their account with a valid email address.</p> +<p>After this initial difficulty, importing + articles was relatively easy. Pretty much every type of content in Drupal is, in its simplest form, a <em>node</em>. + Nodes have a title, which is a teaser generated automatically from the body text, and an author (the node table in + the + database has more fields, but these are the key ones for us). Essentially, Drupal's two default models for writing + <em>stories</em> and <em>pages</em> write data to this table only. The most important thing to understand about + Drupal + is that almost every module used to create <em>something</em> on the site - an article, a blog entry, even songs - + will + use the node table, and add everything else on other tables. This makes the whole system much easier to administer: + every node can potentially be extended <em>in any way</em> by third party modules! +</p> +<p>What about categories? + Well, Drupal has become famous for its taxonomy module: whereas most CMSes only support, or in fact <em>impose</em>, + a + one- or two-level hierarchy for categories, Drupal's taxonomy module supports the creation of as many different + terms to + describe data as you can think of. Each piece of content (categorization can be applied to <em>any</em> node, and + since + almost everything is a node-) can belong to none or <em>n</em> different categories, which can be nested in a + <em>n</em>-level hierarchy. Since the zZine articles were already divided into categories, I imported all of them + directly into Drupal. On the old zZine site, every article could have at most one category, which is fine, but it's + good + to know that we can now configure the system to support a more advanced categorizing system. +</p> +<p>After importing + the articles, the last important thing to transfer to the new site were the zZine Publications. Publications are + what we + call the article collections that we release as an issue every month. I could have created a new module for this, + and it + wouldn't have been that hard, but there was already an excellent module for that. This was pure luck, but the + <em>epublish</em>[19] module seemed like it was tailored specifically for our needs. +</p> + + + +<h3>Drupal API + and Modules</h3> +<p>We were lucky enough to be able to use existing modules for the main functionalities + of our site, but in some cases you might not be able to find <em>exactly</em> what you're looking for.</p> +<p>In + our case, even if we could have used the <em>story</em> module, which is part of the default installation, for zZine + articles (stories have a body, a teaser, a title and an author, exactly like our articles) we decided not to. I + wanted + our editors and writers to know what to use when submitting articles, and the name "stories" sounds a bit too + ambiguous + for my liking. So, I decided to have a look at the standard story module to see how modules work, and create + something + similar.</p> +<p><em>Note: I'm curious by nature and I didn't read anything in the Drupal API[12], or about + developing custom modules; I looked at the story module without any prior knowledge of Drupal's + conventions.</em></p> +<p>All I found in the story module was a bunch of functions + like:</p> +<pre><br />/**<br /> * Implementation of hook_node_name().<br /> */<br />function story_node_name($node) {<br /> return t('story');<br />}<br /></pre> +<p>which seemed to be enough to tell the Drupal core what to do. I was used to Mambo components, where developers have + more + liberty to do what they want, including outputting HTML code anywhere. Drupal is nothing like that; on the contrary, + it + has its own structure and coding conventions that developers have to follow when creating custom modules. Even if a + simple function like the one above is fully commented, it has to have a standard indentation (two spaces) and an + obviously standardized name. I noticed that all the functions similar to this one started with "<em>story_</em>", so + I + created a new file named <em>zzarticle.module</em>, copied and pasted the story module code into it, and changed + every + function accordingly, like + this:</p> +<pre><br />/**<br /> * Implementation of hook_node_name().<br /> */<br />function zzarticle_node_name($node) {<br /> return t('zZine Article');<br />} <br /></pre> +<p>Trivial + enough, and it worked fine! I put my shamefully copied module in the /modules directory and I was able to create + "zZine + Articles" (which were nothing but stories with a different name).</p> +<p>At this point I decided to have a proper + look at the API, and read about hooks:</p> +<blockquote><em>"Drupal's module system is based on the concept of "hooks". A hook is a PHP function that is named + foo_bar(), where "foo" is the name of the module (whose filename is thus foo.module) and "bar" is the name of + the hook. Each hook has a defined set of parameters and a specified result type.<br /> To extend Drupal, a + module need simply implement a hook. When Drupal wishes to allow intervention from modules, it determines which + modules implement a hook and call that hook in all enabled modules that implement it. [-]"</em></blockquote> +<p>A <em>hook</em> was used for the previously mentioned function, and this was diligently + commented:</p> +<pre><br />/**<br /> * Implementation of hook_node_name().<br /> */<br /></pre> +<p>This + made me understand how Drupal is actually geared towards developers and at the same time suitable for non-technical + users. Wait a minute, what if someone is not familiar with PHP and still needs custom modules and features? Is there + any + way to extend Drupal without having to physically code new things? Yes, there is, and two modules come to mind:</p> +<ul> + <li><em>Webform</em> - allows the creation of any kind of web form. Users can customize field types, + values, labels and messages. The module also provides ways to process forms by either saving data to the + database or + emailing it, which we can use for things like the Editor's Test and surveys.</li> + <li><em>Flexynode</em> - This + module is simple and powerful - it allows users to create their own content types without coding a single line. + In + my example, I cloned the story module to create the zZine Article content type. This is easy to do, and + functional, + but what happens if someone wants to include an additional field to the article submission form? I can probably + do + this using hooks, but if I was lazy I could do the same thing with the <em>flexynode</em> module. I actually + used + this module for our podcast section[20], and it did an excellent job.</li> +</ul> + +<h3>Conclusions</h3> +<p>For now I must say I'm very happy with what Drupal has to offer, and + if there's something we need for the site, we can code it ourselves and then integrate it into Drupal. </p> +<p>One of the + major strengths of this CMS is definitely its developer-friendliness: while other CMSes mainly focus on users at the + price of limiting extensibility and trapping developers into predefined modules, Drupal even encourages developers + to + integrate their code into the existing structure, opening virtually unlimited possibilities. Granted, it may seem + difficult to understand at first, some people I talked to told me that 'Drupal is too complex' or has a rather steep + learning curve, but I just think everything becomes clearer after reading parts of the vast documentation section: + this + is the only price to pay, and believe me, it is definitely worthwhile.</p> +<h3>Notes</h3> +<small> + <ul> + <li>[1] zZine Magazine: <a href="http://www.zzine.org">http://www.zzine.org</a></li> + <li>[2] CyberArmy Community: <a href="http://www.cyberarmy.net">http://www.cyberarmy.net</a></li> + <li>[3] Content Management System, Wikipedia page: <a + href="http://en.wikipedia.org/wiki/Content_management_system">http://en.wikipedia.org/wiki/Content_management_system</a> + </li> + <li>[4] Xoops - Official Page <a href="http://www.xoops.org/">http://www.xoops.org/</a></li> + <li>[5] Mambo - Official Page: <a href="http://www.mamboserver.com">http://www.mamboserver.com</a></li> + <li>[6] CMS Matrix: <a href="http://cmsmatrix.org/">http://cmsmatrix.org/</a></li> + <li>[7] Open Source CMS: <a href="http://opensourcecms.com/">http://opensourcecms.com/</a></li> + <li>[8] Snarkles's CyberArmy Profile: <a + href="http://www.cyberarmy.net/~snarkles">http://www.cyberarmy.net/~snarkles</a></li> + <li>[9] Drupal - Official Page: <a href="http://www.drupal.org">http://www.drupal.org</a></li> + <li>[10] Webchick's Drupal Profile: <a href="http://drupal.org/user/24967">http://drupal.org/user/24967</a></li> + <li>[11] Drupal - Handbooks: <a href="http://www.drupal.org/handbooks/">http://www.drupal.org/handbooks/</a> + </li> + <li>[12] Drupal API: <a href="http://drupaldocs.org/api/head">http://drupaldocs.org/api/head</a></li> + <li>[13] Drupal Downloads: <a href="http://www.drupal.org/project/">http://www.drupal.org/project/</a></li> + <li>[14] WAMP Server Package: <a href="http://www.wampserver.com">http://www.wampserver.com</a></li> + <li>[15] Drupal - Installing and Upgrading documentation: <a + href="http://drupal.org/node/258">http://drupal.org/node/258</a></li> + <li>[16] Drupal - Themes: <a href="http://drupal.org/project/Themes">http://drupal.org/project/Themes</a></li> + <li>[17] Drupal - Theme Engines: <a href="http://drupal.org/node/509">http://drupal.org/node/509</a></li> + <li>[18] zZine Beta site: <a href="http://beta.zzine.org">http://beta.zzine.org</a></li> + <li>[19] Drupal - ePublish module: <a + href="http://drupal.org/project/epublish">http://drupal.org/project/epublish</a></li> + <li>[20] zZine Podcasts: <a href="http://beta.zzine.org/podcasts">http://beta.zzine.org/podcasts</a></li> + </ul> +</small>
@@ -4,4 +4,236 @@ content-type: article
timestamp: 1134215836 tags: "internet|google" ----- -These days, it is necessary to use a search engines to find the information you want. When the World Wide Web was smaller, search engines weren't an essential websurfing tool, but once the Web started growing exponentially, and hosting literally billions of documents and files, even normal searches aren't enough to find important information, especially when it is not readily available. So, I'm going to show you a more powerful way to search.<strong>Learning how to search</strong><br /><br />Imagine yourself in the shoes of someone who has never used the Internet before. That's pretty rare nowadays, but it does happen. Take my dad, for example, who recently asked me something like "Where can I find a map of the Internet?". I explained that there wasn't any such thing because the Web is too dynamic to be mappable, and that's why we use search engines.<br /><br />I introduced him to Google [1], and he has since started to use search engines regularly. He didn't have much luck on his first few tries, but eventually he learned how to search properly.<br /><br />Searching the web is easy (just type in a word and hit enter), but finding stuff can be tricky, especially if you don't know enough about a subject to narrow your search down. Most people (including myself) tend to find what they're looking for only after multiple searches: we start with a general item, check the results, and restrict the next search based on what we learned from the previous one. While this is generally successful, every once in a while you will find yourself oging in circles.<br /><br />Let's look at a sample situation: I want to learn Ruby on Rails [2] and I want a free host to try it out. So, I go on Google and type something like: <br /><br /><em>ruby on rails free hosting</em><br /><br />I immediately find various blog entries referring to a project that aims to offer free hosting to try out the Ruby-based framework "Rails Playground". [3] It seems to be the perfect solution - they offer, completely free, enough space to try out Rails. It's a pity they recently decided to close new account registration, so now the whole thing is useless.<br /><br />Variants of the search query mentioned above bring up stuff related to Rails Playground. The project became so well-known that almost every Rails-related blog mentioned it at some point as the only place offering free hosting supporting Rails. Since it is useless now, is there a way to prevent Google (or other search engines) from displaying Rails Playground related results? Yes!<br /><br />You would need something like this: <br /><br /><em>rails free hosting -playground -railsplayground</em><br /><br />In this new query I excluded the words "playground" and "railsplayground" using a minus sign before them so I would find other results that didn't refer to the project. In the end, I didn't actually find any other free hosting that supported rails, but I did find the following: <br /><br />- a company which offers free rails hosting for testing purposes (until they officially launch their service) <br />- a guy who offered some space on his private server for testing rails (no longer available) <br /><br />Although I didn't find anything equivalent to Rails Playground, I didn't waste time either going in circles or scrolling through tons of pages trying to find something else. Actually, most people know how to exclude (or include) words in Google searches but they rarely do it. Furthermorte, most people don't know that there are many more search functions available on almost all the popular search engines. These functions, like the minus sign, are called Boolean operators.<br /><br /><br /><strong>A few words about Boolean algebra: </strong><br /><br />Boolean searches get their name from George Bool[4], the inventor of Boolean algebra[5], which is a particular algebraic structure involving three fundamental operators: AND, OR and NOT. If you attended any math class or course you should be already familiar with it. If not, here is a short summary of some of the concepts I will discuss in upcoming sections.<br /><br />Using Boolean searches (rather than Boolean algebra), the expressions A, B, C, etc. can be considered words, and "A <Boolean operator B" can be considered search queries.<br /><br />- A AND B: pages must contain both words A and B.<br />- A OR B: pages must contain either the word A or the word B<br />- NOT A: pages must not contain the word A<br /><br />Trivial. Now let's see some more examples:<br /><br />- (A OR B) AND (NOT C): here I used brackets to create nesting, which causes expressions within brackets to be carried out before the rest, so the query means: "search for pages containing either A or B but which do not contain C".<br /><br />- (A OR (C AND D)) AND (NOT (F OR G)): similar but more complex than the previous: "search for pages containing either A or both C and D. Additionally, only F or G can be present, or neither of them".<br /><br />In some applications, like electrical circuits, NOR, NAND and XOR operators are also used to express Not OR, Not AND and eXclusive OR. As for search engines, only some of them support the XOR operator. A XOR B means that pages can contain either A but not B or B but not B.<br /><br /><br /><strong>Boolean search and Google</strong><br /><br />After reading this you might want to try typing Boolean expressions like "(food AND for) AND (cats OR DOGS) AND (NOT birds)" into a search engine, but that won't work. A Boolean expression typed "as is" rarely works on a search engine (it isn't supported because it's considered to be not user friendly enough). Google in particular adopted a more intuitive way[6] of performing Boolean searches. <br /><br />For starters, you almost always perform a Boolean search when searching something on Google simply because they decided (like most major search engines have) to automatically include the AND operator unless OR is specified.<br /><br />Searching the phrase "food for dogs" actually corresponds to "food AND for AND dogs" (using the proper Boolean expression). Presumably, this was done to prevent the search engine from delivering too many (and usually inconsistent) results. The other possibility (the default in MySQL's FULLTEXT boolean search[7]) would be to use the OR operator by default. Thus, searching for "food for dogs" might deliver results about food for cats, other pets, or even food in general. <br /><br />To improve the precision of their searches, Google also implements automatic exclusion for common words (like "for" in the example below). However, on occasion, a common word needs to be included in a search. To be fair,usually you will find what you are looking for, even with common words excluded. Nevertheless, to force Google to include a word, just add a plus symbol before it, like "+for".<br /><br />Similarly, a minus in front of a word (rails free hosting -playground -railsplayground) forces Google to exclude a word from the search query: in other words, the minus sign is Google's version of the Boolean NOT operator.<br />In order to transform the Boolean expression that I used at the start of this chapter - (food AND for) AND (cats OR DOGS) AND (NOT birds) - into a proper query accepted by Google, I have to write: "food for" "cats OR dogs" -birds. The OR operator <em>must</em> be specified, and anything in parentheses roughly corresponds to quotation marks because Google searches for the exact phrase enclosed in the quotation marks (also evaluating an OR operator, if present).<br /><br />The biggest limitation of Google when it comes to Boolean searches is the lack of support for nested expressions. Something like (food AND (NOT for)) AND (cats OR dogs) AND (NOT birds) cannot be translated into something like <em>"food -for" "cats OR dogs" -birds</em> because Google will not evaluate the "-" operator if it is enclosed in quotation marks. Something more complex like:<br /><br /><em>((food AND for) AND (cats OR DOGS) AND (NOT birds)) OR ((stuff AND for) AND (goats OR horses) AND (NOT (cows OR bulls)))</em><br /><br />cannot be translated into a Google-friendly query. Normal people probably won't ever do that complicated a search, but you never know...<br /><br /><br /><strong>All the other search engines, strategies and conclusions</strong><br /><br />There are various articles (see [8][9][10]) about how Boolean search has been implemented in various major search engines and AltaVista[11], AlltheWeb[12] and MSN Search[13] seem to support Boolean search features better than Google. All of them support the standard Boolean operators, as well as the "+" and "-" symbols, but apparently only MSN Search[13] seems to support full Boolean search queries with nesting: I actually managed to execute my previous complex example: <br /><br /><em>((food AND for) AND (cats OR DOGS) AND (NOT birds)) OR ((stuff AND for) AND (goats OR horses) AND (NOT (cows OR bulls)))</em><br /><br />and I got some decent results. The only (understandable) exception is that I had to specify +for to have the word "for" included.<br /><br />Although Boolean search is useful, it is not the only way to get relevant results as quickly as possible. Additional thinking is required to prepare a query properly. In everyday life, you won't really use heavily nested queries, simply because other methods are more effective. If you're interested in learning how to search I'd recommend a very informative article available at Waikato University[14].<br /><br />I found out that a mix between making multiple search attempts and using basic Boolean queries (word exclusion in particular) can deliver pertinent results fairly readily. Suppose you've heard something regarding a person named Halley who contributes to an IT-related community and that someone mentioned the word "kernel" when talking about him, and you remember that it wasn't referring to Linux. You could come up with something like: <br /><br />Halley kernel -Linux<br /><br />Et voila': Halley's CyberArmy Profile[15] appears as the first search result in Google! If you typed just <em>Halley</em> you wouldn't have found the right one right away; you would probably get more information about the Halley's Comet or the astronomer Sir Edmund Halley. If you typed <em>kernel Halley</em> you'd have found something about Kernel Halley on zZine first and then on CyberArmy lower down in the search results.<br /><br />Boolean search can be useful, but it must not be abused. Google's decision to implement only partial Boolean support without standard Boolean operation was probably the best choice to achieve both pertinent results and user-friendliness. <br /><br /><strong>Notes and further resources</strong><br />[1] Google Inc.: <a href="http://www.google.com/">http://www.google.com/</a><br />[2] Ruby on Rails framework: <a href="http://www.rubyonrails.org/">http://www.rubyonrails.org/</a><br />[3] Ruby Playground: <a href="http://www.railsplayground.com/">http://www.railsplayground.com/</a><br />[4] George Bool, Wikipedia Page: <a href="http://en.wikipedia.org/wiki/George_Boole">http://en.wikipedia.org/wiki/George_Boole</a><br />[5] Boolean Algebra, Wikipedia Page: <a href="http://en.wikipedia.org/wiki/Boolean_algebra">http://en.wikipedia.org/wiki/Boolean_algebra</a><br />[6] Google Help on Advanced Search: <a href="http://www.google.com/help/refinesearch.html">http://www.google.com/help/refinesearch.html</a><br />[7] MySQL FULLTEXT boolean search: <a href="http://dev.mysql.com/doc/mysql/en/fulltext-boolean.html">http://dev.mysql.com/doc/mysql/en/fulltext-boolean.html</a><br />[8] Search engines that implement boolean search (outdated): <a href="http://searchenginewatch.com/facts/article.php/2155991">http://searchenginewatch.com/facts/article.php/2155991</a><br />[9] Boolean Searching on the Internet: <a href="http://library.albany.edu/internet/boolean.html">http://library.albany.edu/internet/boolean.html</a><br />[10] How to choose a search engine or directory: <a href="http://library.albany.edu/internet/choose.html#logic">http://library.albany.edu/internet/choose.html#logic</a><br />[11] AltaVista Special Search Terms: <a href="http://www.altavista.com/help/search/syntax">http://www.altavista.com/help/search/syntax</a><br />[12] AlltheWeb Query Language: <a href="http://alltheweb.com/help/faqs/query_language#2">http://alltheweb.com/help/faqs/query_language#2</a><br />[13] MSN Search: <a href="http://search.msn.com/">http://search.msn.com/</a><br />[14] "The Assignment Process: Search Strategies": <a href="http://www.waikato.ac.nz/library/learning/g_strategies.shtml">http://www.waikato.ac.nz/library/learning/g_strategies.shtml</a><br />[15] Halley's CyberArmy Profile: <a href="http://www.cyberarmy.net/~Halley/">http://www.cyberarmy.net/~Halley/</a><br /> + +<p>These days, it is necessary to use a search engines to find the information you want. When the World Wide Web was + smaller, search engines weren't an essential websurfing tool, but once the Web started growing exponentially, and + hosting literally billions of documents and files, even normal searches aren't enough to find important information, + especially when it is not readily available. So, I'm going to show you a more powerful way to search.</p> + +<h3>Imagine yourself in the shoes of someone who has never used the Internet before.</h3> +<p>That's pretty rare nowadays, but it does happen. Take my dad, for example, who recently asked me something like + "Where can I find a map of the Internet?". I explained that there wasn't any such thing because the Web is too + dynamic to be mappable, and that's why we use search engines.</p> + +<p>I introduced him to Google [1], and he has since started to use search engines regularly. He didn't have much luck on + his first few tries, but eventually he learned how to search properly.</p> + +<p>Searching the web is easy (just type in a word and hit enter), but finding stuff can be tricky, especially if you + don't know enough about a subject to narrow your search down. Most people (including myself) tend to find what + they're looking for only after multiple searches: we start with a general item, check the results, and restrict the + next search based on what we learned from the previous one. While this is generally successful, every once in a + while you will find yourself going in circles.</p> + +<h3>Let's look at a sample situation: I want to learn Ruby on Rails</h3> +<p>and I want a free host to try it out. So, I go on Google and type something like:</p> + +<em>ruby on rails free hosting</em> + +<p>I immediately find various blog entries referring to a project that aims to offer free hosting to try out the + Ruby-based framework "Rails Playground". [<a href="#">3</a>] It seems to be the perfect solution - they offer, + completely free, enough space to try out Rails. It's a pity they recently decided to close new account registration, + so now the whole thing is useless.</p> + +<p>Variants of the search query mentioned above bring up stuff related to Rails Playground. The project became so + well-known that almost every Rails-related blog mentioned it at some point as the only place offering free hosting + supporting Rails. Since it is useless now, is there a way to prevent Google (or other search engines) from + displaying Rails Playground related results? Yes!</p> + +<p>You would need something like this:</p> + +<em>rails free hosting -playground -railsplayground</em> + +<p>In this new query I excluded the words "playground" and "railsplayground" using a minus sign before them so I would + find other results that didn't refer to the project. In the end, I didn't actually find any other free hosting that + supported rails, but I did find the following:</p> + +<ul> + <li>a company which offers free rails hosting for testing purposes (until they officially launch their service)</li> + <li>a guy who offered some space on his private server for testing rails (no longer available)</li> +</ul> + +<p>Although I didn't find anything equivalent to Rails Playground, I didn't waste time either going in circles or + scrolling through tons of pages trying to find something else. Actually, most people know how to exclude (or + include) words in Google searches but they rarely do it. Furthermore, most people don't know that there are many + more search functions available on almost all the popular search engines. These functions, like the minus sign, are + called Boolean operators.</p> + + +<h3>A few words about Boolean algebra:</h3> +<p>Boolean searches get their name from George Bool[4], the + inventor of Boolean algebra[5], which is a particular algebraic structure involving three fundamental operators: + AND, OR + and NOT. If you attended any math class or course you should be already familiar with it. If not, here is a short + summary of some of the concepts I will discuss in upcoming sections.</p> + +<p>Using Boolean searches (rather than + Boolean algebra), the expressions A, B, C, etc. can be considered words, and "A <Boolean operator B" can be + considered search queries.</p> + +<ul> + <li>A AND B: pages must contain both words A and B.</li> + <li>A OR B: pages must contain either the word A or the word B</li> + <li>NOT A: pages must not contain the word A</li> +</ul> + +<p>Trivial. Now let's + see some more examples:</p> + +<ul> + <li>(A OR B) AND (NOT C): here I used brackets to create nesting, which causes + expressions within brackets to be carried out before the rest, so the query means: "search for pages containing + either A + or B but which do not contain C".</li> + <li>(A OR (C AND D)) AND (NOT (F OR G)): similar but more complex than the + previous: "search for pages containing either A or both C and D. Additionally, only F or G can be present, or + neither of + them".</li> +</ul> + +<p>In some applications, like electrical circuits, NOR, NAND and XOR operators are also used to express + Not OR, Not AND and eXclusive OR. As for search engines, only some of them support the XOR operator. A XOR B means + that + pages can contain either A but not B or B but not B.</p> + +<h3>Boolean search and + Google</h3> +<p>After reading this you might want to try typing Boolean expressions like "(food AND for) + AND (cats OR DOGS) AND (NOT birds)" into a search engine, but that won't work. A Boolean expression typed "as is" + rarely + works on a search engine (it isn't supported because it's considered to be not user friendly enough). Google in + particular adopted a more intuitive way[6] of performing Boolean searches.</p> + +<p>For starters, you almost always perform a Boolean search when searching something on Google simply because they + decided (like most major search engines + have) to automatically include the AND operator unless OR is specified.</p> + +<p>Searching the phrase "food for dogs" + actually corresponds to "food AND for AND dogs" (using the proper Boolean expression). Presumably, this was done to + prevent the search engine from delivering too many (and usually inconsistent) results. The other possibility (the + default in MySQL's FULLTEXT boolean search[7]) would be to use the OR operator by default. Thus, searching for "food + for + dogs" might deliver results about food for cats, other pets, or even food in general.</p> + +<p>To improve the + precision of their searches, Google also implements automatic exclusion for common words (like "for" in the example + below). However, on occasion, a common word needs to be included in a search. To be fair,usually you will find what + you + are looking for, even with common words excluded. Nevertheless, to force Google to include a word, just add a plus + symbol before it, like "+for".</p> + +<p>Similarly, a minus in front of a word (rails free hosting -playground + -railsplayground) forces Google to exclude a word from the search query: in other words, the minus sign is Google's + version of the Boolean NOT operator.</p> + +<p>In order to transform the Boolean expression that I used at the start of this + chapter - (food AND for) AND (cats OR DOGS) AND (NOT birds) - into a proper query accepted by Google, I have to + write: + "food for" "cats OR dogs" -birds. The OR operator <em>must</em> be specified, and anything in parentheses roughly + corresponds to quotation marks because Google searches for the exact phrase enclosed in the quotation marks (also + evaluating an OR operator, if present).</p> + +<p>The biggest limitation of Google when it comes to Boolean searches is + the lack of support for nested expressions. Something like (food AND (NOT for)) AND (cats OR dogs) AND (NOT birds) + cannot be translated into something like <em>"food -for" "cats OR dogs" -birds</em> because Google will not evaluate + the + "-" operator if it is enclosed in quotation marks. Something more complex like:</p> + +<em>((food AND for) AND (cats + OR DOGS) AND (NOT birds)) OR ((stuff AND for) AND (goats OR horses) AND (NOT (cows OR + bulls)))</em> + +<p>cannot be translated into a Google-friendly query. Normal people probably won't ever do + that complicated a search, but you never know...</p> + +<h3>All the other search engines, strategies and conclusions</h3> +<p>There are various articles (see + [8][9][10]) about how Boolean search has been implemented in various major search engines and AltaVista[11], + AlltheWeb[12] and MSN Search[13] seem to support Boolean search features better than Google. All of them support the + standard Boolean operators, as well as the "+" and "-" symbols, but apparently only MSN Search[13] seems to support + full + Boolean search queries with nesting: I actually managed to execute my previous complex example:</p> + +<em>((food + AND for) AND (cats OR DOGS) AND (NOT birds)) OR ((stuff AND for) AND (goats OR horses) AND (NOT (cows OR + bulls)))</em> + +<p>and I got some decent results. The only (understandable) exception is that I had to specify +for to have the word + "for" included.</p> + +<p>Although Boolean search is useful, it is not the only way to get + relevant results as quickly as possible. Additional thinking is required to prepare a query properly. In everyday + life, + you won't really use heavily nested queries, simply because other methods are more effective. If you're interested + in + learning how to search I'd recommend a very informative article available at Waikato University[14].</p> + +<p>I found + out that a mix between making multiple search attempts and using basic Boolean queries (word exclusion in + particular) + can deliver pertinent results fairly readily. Suppose you've heard something regarding a person named Halley who + contributes to an IT-related community and that someone mentioned the word "kernel" when talking about him, and you + remember that it wasn't referring to Linux. You could come up with something like:</p> + +<p>Halley kernel + -Linux</p> + +<p>Et voila': Halley's CyberArmy Profile[15] appears as the first search result in Google! If you typed + just <em>Halley</em> you wouldn't have found the right one right away; you would probably get more information about + the + Halley's Comet or the astronomer Sir Edmund Halley. If you typed <em>kernel Halley</em> you'd have found something + about + Kernel Halley on zZine first and then on CyberArmy lower down in the search results.</p> + +<p>Boolean search can be + useful, but it must not be abused. Google's decision to implement only partial Boolean support without standard + Boolean + operation was probably the best choice to achieve both pertinent results and user-friendliness.</p> + +<h3>Notes and further resources</h3> +<ul> + <li>[1] Google Inc.: <a href="http://www.google.com/">http://www.google.com/</a></li> + <li>[2] Ruby on Rails framework: <a href="http://www.rubyonrails.org/">http://www.rubyonrails.org/</a></li> + <li>[3] Ruby Playground: <a href="http://www.railsplayground.com/">http://www.railsplayground.com/</a></li> + <li>[4] George Bool, Wikipedia Page: <a + href="http://en.wikipedia.org/wiki/George_Boole">http://en.wikipedia.org/wiki/George_Boole</a></li> + <li>[5] Boolean + Algebra, Wikipedia Page: <a + href="http://en.wikipedia.org/wiki/Boolean_algebra">http://en.wikipedia.org/wiki/Boolean_algebra</a></li> + <li>[6] Google + Help on Advanced Search: <a + href="http://www.google.com/help/refinesearch.html">http://www.google.com/help/refinesearch.html</a></li> + <li>[7] MySQL + FULLTEXT boolean search: <a + href="http://dev.mysql.com/doc/mysql/en/fulltext-boolean.html">http://dev.mysql.com/doc/mysql/en/fulltext-boolean.html</a> + </li> + <li>[8] + Search engines that implement boolean search (outdated): <a + href="http://searchenginewatch.com/facts/article.php/2155991">http://searchenginewatch.com/facts/article.php/2155991</a> + </li> + <li>[9] + Boolean Searching on the Internet: <a + href="http://library.albany.edu/internet/boolean.html">http://library.albany.edu/internet/boolean.html</a> + </li> + <li>[10] + How to choose a search engine or directory: <a + href="http://library.albany.edu/internet/choose.html#logic">http://library.albany.edu/internet/choose.html#logic</a> + </li> + <li>[11] + AltaVista Special Search Terms: <a + href="http://www.altavista.com/help/search/syntax">http://www.altavista.com/help/search/syntax</a> + </li> + <li>[12] + AlltheWeb Query Language: <a + href="http://alltheweb.com/help/faqs/query_language#2">http://alltheweb.com/help/faqs/query_language#2</a> + </li> + <li>[13] + MSN Search: <a href="http://search.msn.com/">http://search.msn.com/</a> + </li> + <li>[14] "The Assignment Process: Search + Strategies": <a + href="http://www.waikato.ac.nz/library/learning/g_strategies.shtml">http://www.waikato.ac.nz/library/learning/g_strategies.shtml</a> + </li> + <li>[15] + Halley's CyberArmy Profile: <a href="http://www.cyberarmy.net/~Halley/">http://www.cyberarmy.net/~Halley/</a> + </li> +</ul>
@@ -36,13 +36,11 @@ reading the word <em>framework</em> for the first time not too long ago while I was downloading a Windows Update of
the .NET framework[3]. That inspired me to start searching the Internet for a 'PHP framework'. That led me to an interesting blog entry[4] where a solution was proposed - a solution to <em>bring order to chaos</em>:</p> -<fieldset> - <blockquote> - <p>[...] The answer is simple: create our own class library, some kind of framework, the PHP framework. The - similar in many ways to that one which is already well known to Java or .NET programmers. We could set the - standards, structure and main guidelines. [...]</p> - </blockquote> -</fieldset> +<blockquote> + <p>[...] The answer is simple: create our own class library, some kind of framework, the PHP framework. The + similar in many ways to that one which is already well known to Java or .NET programmers. We could set the + standards, structure and main guidelines. [...]</p> +</blockquote> <p>That blog post made me think about developing my own framework, until I noticed that there were many projects already in progress, and some in fact completed; the end result being a fully functional PHP framework. I read a lot about@@ -66,12 +64,10 @@ <p>After trying Prado, I was still unsatisfied, so I once again began my search for a solution to improve my
programming. My meanderings took me to Ruby on Rails[9], one of the most recent examples of technology hype on the Net. At the same time,to a certain extent, it is also a successful tool.</p> -<fieldset> - <blockquote> - <p>"Rails is a full-stack, open-source web framework in Ruby for writing real-world applications with joy and - less code than most frameworks spend doing XML sit-ups."</p> - </blockquote> -</fieldset> +<blockquote> + <p>"Rails is a full-stack, open-source web framework in Ruby for writing real-world applications with joy and + less code than most frameworks spend doing XML sit-ups."</p> +</blockquote> <p>That sounded like what I was looking for, and I started reading more about it in the vast and varied help sections[10] available both on and off of the official site. The Rails team did an outstanding job promoting and@@ -127,10 +123,10 @@ of it to another language. To my knowledge, the <em>Rails disease</em> contaminated the following programming
languages:</p> <ul> - <li>PHP</li>[12]<br /> - <li>Python</li>[13]<br /> - <li>Java </li>[14]<br /> - <li>Perl </li>[15]<br /> + <li>PHP</li>[12] + <li>Python</li>[13] + <li>Java </li>[14] + <li>Perl </li>[15] </ul> <p>I said <em>disease</em> because Rails developers think that Ruby on Rails was made in Ruby for a reason, namely that@@ -146,13 +142,11 @@ <p>I chose to learn CakePHP (or "Cake")[17] mainly because it offered more features than the other two PHP alternatives.
It also seemed to be a more original and actively developed project. In particular, I'd like to quote one of CakePHP's developers, from when he introduced the framework in a comment to a blog post[16]: </p> -<fieldset> - <blockquote> - <p>"While it's difficult to copy Rails in PHP, it's quite possible to write an equivalent system. I like the - terseness of Ruby code, but I need the structure that Rails provides, how it makes me organize my code into - something sustainable. That's why I'm ripping off Rails in Cake."</p> - </blockquote> -</fieldset> +<blockquote> + <p>"While it's difficult to copy Rails in PHP, it's quite possible to write an equivalent system. I like the + terseness of Ruby code, but I need the structure that Rails provides, how it makes me organize my code into + something sustainable. That's why I'm ripping off Rails in Cake."</p> +</blockquote> <p>Cake's developers (bakers?) are developing their own framework which uses many principles of Ruby on Rails, revisited and re-proposed in an extremely flexible and easy to use PHP tool, rather than simply trying to port Rails to PHP. I@@ -163,14 +157,12 @@ </p>
<p>Quoting from CakePHP's website:</p> -<fieldset> - <blockquote> - <p>"Cake is a rapid development framework for PHP which uses commonly known design patterns like ActiveRecord, - Association Data Mapping, Front Controller and MVC. Our primary goal is to provide a structured framework - that enables PHP users at all levels to rapidly develop robust web applications, without any loss to - flexibility." </p> - </blockquote> -</fieldset> +<blockquote> + <p>"Cake is a rapid development framework for PHP which uses commonly known design patterns like ActiveRecord, + Association Data Mapping, Front Controller and MVC. Our primary goal is to provide a structured framework + that enables PHP users at all levels to rapidly develop robust web applications, without any loss to + flexibility." </p> +</blockquote> <p>That sounds like the Holy Grail for PHP developers, and I must admit I'm quite impressed myself after using it on various little projects, but is it really all true? What are Cake's features? Are there any limitations?</p>@@ -243,32 +235,35 @@ only five very small ones. They represent the only items which <em>might</em> need to be configured.</p>
<ul> <li> - <h4>acl.ini.php:</h4> This file must be edited only if you plan to use Cake's default ACL + <strong>acl.ini.php:</strong> This file must be edited only if you plan to use Cake's default ACL (access control list) system for your application. It sets permissions for the application, so it should be used to list every group, user, and their respective rights. This can be useful for small sites with a few well known users, but for anything else, you should develop your own ACL or authentication system that relies on a database. </li> <li> - <h4>core.php:</h4> This file can be edited to change some default options, such as the level of the error + <strong>core.php:</strong> This file can be edited to change some default options, such as the level of the + error messages and notices that the application will output. This comes in very handy while developing an application. </li> <li> - <h4>database.php.default:</h4> This should be renamed to database.php and edited if you plan to use any + <strong>database.php.default:</strong> This should be renamed to database.php and edited if you plan to use any databases with Cake. The settings are fairly straightforward, and include the type of database used (mysql, postrgres, sqlite, or any other supported by the AdoDB library[18]), username, password and database name. </li> <li> - <h4>paths.php:</h4> Unless you are very particular, you should leave this file alone. It tells Cake where to + <strong>paths.php:</strong> Unless you are very particular, you should leave this file alone. It tells Cake + where to look for CSS files, images, controllers, etc. If you are planning to adopt Cake's directory structure - which is the most logical option - you can ignore this. </li> <li> - <h4>routes.php:</h4> Following Rails' example, CakePHP features a "routing system" for user-friendly URLs. By + <strong>routes.php:</strong> Following Rails' example, CakePHP features a "routing system" for user-friendly + URLs. By default, your URLs will look like this: <em>http://sitename/controller-name/action-name/eventual/action/parameters</em>, which is a really nice way to organize a site, but you may want to change something if you have particular requirements.@@ -298,12 +293,10 @@ things.</p>
<p>Recently <em>Components</em> have been added to CakePHP, and quoting from the corresponding wiki page[20]:</p> -<fieldset> - <blockquote><br />"Components are the preferred way to provide additional functionality to your controller. - To make a component available you would add var $component = array('myComponent') inside of your - controller's definition, add your file to the /app/controllers/components, name your class MyComponent, - and create your methods."<br /></blockquote> -</fieldset> +<blockquote>"Components are the preferred way to provide additional functionality to your controller. + To make a component available you would add var $component = array('myComponent') inside of your + controller's definition, add your file to the /app/controllers/components, name your class MyComponent, + and create your methods."</blockquote> <h4>Models</h4> <p>A model is an@@ -358,15 +351,13 @@ application: page titles and specific pages (views) will be invoked automatically by using $title_for_layout and
$content_for_layout respectively.</p> <p>Similarly to what was said about components, <em>helpers</em> can be used to extend views functionalities[20]:</p> -<fieldset> - <blockquote> - <p>"Helpers are all about the view. You know about the helpers in Cake, but you need a little - bit more. You want to have your own methods to display formatted info. To achieve this, you need to add - var $helpers = array('myHelper').</p> - <p>Now, throw your myhelper.php file into the - /app/views/helpers/, create the class MyHelper, and $myHelper is available in the view."</p> - </blockquote> -</fieldset> +<blockquote> + <p>"Helpers are all about the view. You know about the helpers in Cake, but you need a little + bit more. You want to have your own methods to display formatted info. To achieve this, you need to add + var $helpers = array('myHelper').</p> + <p>Now, throw your myhelper.php file into the + /app/views/helpers/, create the class MyHelper, and $myHelper is available in the view."</p> +</blockquote> <p>Cake comes with some very useful default helpers to create links and HTML tags, import JavaScript, create forms, and use AJAX code easily. Unlike most other frameworks, Cake neither has nor uses a third party template engine (like Smarty[21]) for views, but helpers can be used to achieve similar results more@@ -412,65 +403,65 @@ <p>After reading all these things about CakePHP
and its framework, you may have some questions, or be curious about some aspect of the project. PHPNut and gwoo, two of CakePHP's creators and lead developers, offered to answer some questions exclusively for zZine readers. This interview took place on Oct. 26th, 2005, in #dev-cakephp on irc.freenode.org.</p> -<em><strong>h3rald</strong>:</em> -<p> Thanks to both of you for allowing me to +<p> <em><strong>h3rald</strong>:</em> + Thanks to both of you for allowing me to interview you about your project, CakePHP. Where did the name come from, anyway?</p> -<em>PHPnut:</em> The -original project was started by Michal Tatarynowicz aka Pies (hence the name), and when I saw his release, last -March, I decided to contact him. I told him that the company I own supports projects like Cake, and also that I -was in the process of developing something along the same lines. </p> -<em><strong>h3raLd</strong>:</em> -<p> Is Cake released under the GPL? How many +<p> <em>PHPnut:</em> The + original project was started by Michal Tatarynowicz aka Pies (hence the name), and when I saw his release, last + March, I decided to contact him. I told him that the company I own supports projects like Cake, and also that I + was in the process of developing something along the same lines. </p> +<p> <em><strong>h3raLd</strong>:</em> + Is Cake released under the GPL? How many developers are helping out?</p> -<em>gwoo:</em> Cake is released under the MIT license, and the -development team is composed of me and PHPnut, plus four other contributors. Then there's the Documentation -Team, currently 3-5 people. Documentation has to follow the releases, so it usually lags behind a bit: we made -so many modifications in the recent release that the Doc Team has a lot to catch up on, but it's getting -there.</p> -<em>PHPnut:</em> With this release you will see that the docs are going to be much better. The -code is very stable now, and hopefully very little changes on that.</p> -<em><strong>h3raLd</strong>:</em> -<p> Some people, at first glance, may think that Cake +<p> <em>gwoo:</em> Cake is released under the MIT license, and the + development team is composed of me and PHPnut, plus four other contributors. Then there's the Documentation + Team, currently 3-5 people. Documentation has to follow the releases, so it usually lags behind a bit: we made + so many modifications in the recent release that the Doc Team has a lot to catch up on, but it's getting + there.</p> +<p> <em>PHPnut:</em> With this release you will see that the docs are going to be much better. The + code is very stable now, and hopefully very little changes on that.</p> +<p> <em><strong>h3raLd</strong>:</em> + Some people, at first glance, may think that Cake is a PHP port of Ruby on Rails. How true is that? What are the differences and similarities between these two frameworks?</p> -<em>PHPnut:</em> Cake started as a port, but has evolved into something more: we -discussed using the concepts that RoR offered and including them in a framework for users of PHP. I have used -PHP for a number of years, and I am comfortable with it; this is where my passion is, and I think people who use -Cake have those same passions as we developers do.</p> -<em><strong>h3raLd</strong>:</em> -<p> I read once that Rails was developed in Ruby +<p> <em>PHPnut:</em> Cake started as a port, but has evolved into something more: we + discussed using the concepts that RoR offered and including them in a framework for users of PHP. I have used + PHP for a number of years, and I am comfortable with it; this is where my passion is, and I think people who use + Cake have those same passions as we developers do.</p> +<p> <em><strong>h3raLd</strong>:</em> + I read once that Rails was developed in Ruby because only Ruby can offer certain functionalities and features...</p> -<em>gwoo:</em> I would disagree, -and I think that is proven in what we have done: sure RoR has a built in server and some other nice things, but -PHP is everywhere.</p> -<em><strong>h3raLd</strong>:</em> -<p> Some developers, especially Perl programmers, tend to consider PHP an "inferior" language sometimes. What do you +<p> <em>gwoo:</em> I would disagree, + and I think that is proven in what we have done: sure RoR has a built in server and some other nice things, but + PHP is everywhere.</p> +<p> <em><strong>h3raLd</strong>:</em> + Some developers, especially Perl programmers, tend to consider PHP an "inferior" language sometimes. What do you think of that?</p> -<em>PHPnut:</em> My name says what I think about them all.</p> -<em>gwoo:</em> PHP is a -web programming language; that's what it was designed for, and that's what it does best: It all boils down to -what you are comfortable with.</p> -<em><strong>h3raLd</strong>:</em> -<p> Did +<p> <em>PHPnut:</em> My name says what I think about them all.</p> +<p> <em>gwoo:</em> PHP is a + web programming language; that's what it was designed for, and that's what it does best: It all boils down to + what you are comfortable with.</p> +<p> <em><strong>h3raLd</strong>:</em> + Did you try any other PHP frameworks, MVC-based (Mojavi, for example), or event-driven, like Prado? What do you think about them? In what ways can Cake be better or worse?</p> -<em>gwoo:</em> They are all so complex, -in my opinion, and I tried nearly all of them. Cake breaks apart the MVC and handle the CRUD in a logical way, -and Cake syntax is super easy to learn.</p> -<em><strong>h3raLd</strong>:</em> -<p> Ruby +<p> <em>gwoo:</em> They are all so complex, + in my opinion, and I tried nearly all of them. Cake breaks apart the MVC and handle the CRUD in a logical way, + and Cake syntax is super easy to learn.</p> +<p> <em><strong>h3raLd</strong>:</em> + Ruby on Rails has been ported to various languages, including Java and Python. There are three PHP frameworks inspired by the famous Ruby project: Biscuit, PHP on Tracks and CakePHP. What do you think of that? Any chance of a merge? Did you have a look at them?</p> -<em>gwoo:</em> You forgot Symfony[27], a PHP5-only port: I tried it but it seems much harder to -learn than Cake.</p> -<em>PHPnut:</em> I could be wrong, but I think these other projects are behind us in -ease of use, in what the framework is capable of doing, and in features, not to mention community -support.</p> -<em>gwoo:</em> I tried all of the PHP ports of Ruby on Rails and none of them has the -features, the community,or a lexicon as good as Cake's.</p> +<p> <em>gwoo:</em> You forgot Symfony[27], a PHP5-only port: I tried it but it seems much harder to + learn than Cake.</p> +<p> <em>PHPnut:</em> I could be wrong, but I think these other projects are behind us in + ease of use, in what the framework is capable of doing, and in features, not to mention community + support.</p> +<p> <em>gwoo:</em> I tried all of the PHP ports of Ruby on Rails and none of them has the + features, the community,or a lexicon as good as Cake's.</p> <p><strong>h3raLd</strong>:</em> Why don't you consider CakePHP a port? In what way is it evolving from Rails?</p>@@ -518,48 +509,49 @@ submitted through the newly created CakeForge. [24]</p>
-<h3>...Or Just Eat</h3> <small><em> by Marc Abramowitz</em></small><br /><br /> +<h3>...Or Just Eat</h3> <small><em> by Marc Abramowitz</em></small> <p>If you don't feel ready to contribute and you'd like to try out the framework first, it can be downloaded directly from the CakePHP site[25] as either a <em>release</em> or a <em>nightly</em> build: the zip file is less than 300KB. </p> <p>I wanted to include a <em>success story</em> written by Marc Abramowitz, an experienced PHP programmer who decided to adopt CakePHP as a framework to use in a production environment: he persuaded his colleagues to use it and they all seem happy with it. He writes:</p> -<em>For the past few years, I've done quite a bit of work in PHP, working on production code that runs on a very high +<blockquote>For the past few years, I've done quite a bit of work in PHP, working on production code that runs on a very + high traffic web site. PHP has served us well, as it is easy to write and read, quite efficient, and easy to integrate - with existing C++ code as the site grew.</em><br /><br /> + with existing C++ code as the site grew.</blockquote> <p>Lately, there has been a lot of buzz in the web development community about Ruby on Rails. Like many others, I took some interest in Ruby on Rails because I was intrigued by the apparent power and elegance of Ruby and because I wondered if a Model/View/Controller (MVC) framework like Rails would help enforce a more consistent code structure that would make the code easier to understand and maintain. Additionally, I wondered if an MVC framework would - enable very rapid prototyping.</p><br /><br /> + enable very rapid prototyping.</p> <p>Some people are very wary of frameworks that impose structure, as they like to have the freedom to do things however they want. However, there is a tradeoff between structure and flexibility. If you're working on a small team or a relatively small project, then you may not find structure to be very helpful; you may even find that it gets in your - way.</p><br /><br /> + way.</p> <p>However, as teams and projects get larger, structure becomes more and more valuable, as it enforces consistent patterns of how to do things and rather than being something that limits, it in fact liberates, because it abstracts away the small details and allows us to therefore concentrate on the larger problem. Think of the lines that are painted on our roadways - although they add structure, we don't find them to be limiting. On the contrary, they help us to drive without worrying about crashing into each other at every moment - they free us from being concerned with - small details so that we can concentrate on getting where we're going.</p><br /><br /> + small details so that we can concentrate on getting where we're going.</p> <p>Rapid prototyping appeals to me, because I find it helps me to better present my ideas for new apps and features. A mockup can only go so far - there is no substitute for a working prototype. When clients get their hands on a functional prototype, they get a better idea of what is possible and it forces them to clarify their requirements for the product. This results in a better dialogue between the developer and the client, which leads to better - upfront decisions, more stable requirements, less stress, and a better product.</p><br /><br /> + upfront decisions, more stable requirements, less stress, and a better product.</p> <p>So, Rails appealed to me not only because of the potentially valuable structure that it could add, but also because it could enable rapid prototyping. However, I knew that there was no chance of Rails being used for production code in my organization, because we run some very high traffic web sites that require the utmost in efficiency. We are - also by and large a PHP shop.</p><br /><br /> + also by and large a PHP shop.</p> <p>However, when my manager approached me and asked me to develop a database-backed internal tool, I thought of Rails again. I then considered the fact that I would probably someday have to hand this app off to someone else, and that someone would probably know PHP but not Ruby. Heck, even I had several years of experience with PHP (including writing some PHP extensions) but I had only done a little bit of reading about Ruby, and I also had no practical - experience with it.</p><br /><br /> + experience with it.</p> <p>Furthermore, with PHP I had access to a large number of PHP extensions that wrapped various internal libraries. So PHP was the natural choice. Ideally, I wanted to use PHP with a Rails-like MVC framework that would facilitate rapid - development, and this is what led me to CakePHP.</p><br /><br /> + development, and this is what led me to CakePHP.</p> <p>I began by downloading CakePHP 0.9.2 and following the sample tutorial that walks you through creating a simple blog application (note that at the time of this writing, the current version of Cake is now 0.10.0.1076, so some of the details of using Cake have changed). I was pleased to find that the process was quite similar to the process for@@ -670,8 +662,7 @@ <p>After learning all this about Cake and after trying it out myself, I really think that I have found the solution to
all of my PHP web development problems. CakePHP can really help PHP developers a lot if properly used and understood. Still not convinced? Just try it out then, will you?[17]</p> -<h3>Notes and Related - Resources</h3> +<h3>Credits</h3> <p>Special thanks to:</p> <ul>@@ -681,7 +672,7 @@ <li>Marc Abramowitz for sharing his experiences with the CakePHP framework and providing the content for the
'...let's eat' section.</li> </ul> -<p>Notes:</p> +<h3>Notes</h3> <ul> <li> [1] PHP functions reference, <a
@@ -4,4 +4,147 @@ content-type: article
timestamp: 1134215339 tags: "review|google" ----- -Almost every person on Earth has seen an image taken from a satellite at least once in his or her life: now imagine putting all those images together to make a sort of "patchwork world"...this is unfortunately not as simple as gluing atlas maps together, because height, resolution and orientation must be considered. However, "A computer could do all that"...and so it happened!<strong>In the beginning...</strong><br /><br /><br /><a href="http://www.nasa.gov/home/index.html?skipIntro=1">Nasa.gov</a> has always been one of the most famous and most visited websites in history, and among the resources you can find there, besides the pictures of space-related objects and phenomena that everyone flocks to, are satellite pictures of Earth. <br />Perhaps one of the most wonderful things NASA did software-wise was the realization of an open source software called <a href="http://worldwind.arc.nasa.gov/index.html">WorldWind</a>: <em>"World Wind lets you zoom from satellite altitude into any place on Earth. Leveraging Landsat satellite imagery and Shuttle Radar Topography Mission data, World Wind lets you experience Earth terrain in visually rich 3D, just as if you were really there."</em><br />A really cool thing indeed, if you ask me. So cool that people from all over the world started downloading and using it, causing problems on NASA's server for the project, which was extremely busy or even unreachable. The download is now mirrored on Sourceforge, download.com, and Wayne State University, but the server problem has to do with getting to the server to access the images. So why bother downloading if you know it doesn't actually work, regardless of the reason?<br /><br />The alternative, until a year or so ago, was a product created by "Keyhole Corp." - I won't bother posting a link to the site, you'll read why below. Guys from Keyhole basically created a similar program that was much faster, with no server timeouts and better image resolution. Of course, they thought they could charge for it, and I believe that back in the day some people actually paid $70 for what was seen afterwards as a piece of software with a great potential that was never tapped.<br /><br /><br /><strong>Google enters the scene</strong><br /><br />"Hey, look! It works! Now let's get it and do it better!" - This is, in a nutshell, Google's policy in the last 2 years or so: they find relatively small(er) companies that produced something with potential, buy it, and they either improve and resell the product, or give it away for free, getting income from advertising. It happened before, with Picasa and Blogger, for example, and now, with Keyhole as well (for a pretty complete list of Google's acquisitions and possible future targets, have a look <a href="http://www.kuro5hin.org/story/2005/6/12/143721/743">here</a>).<br />This is not a bad thing for the end user, because often new Google-branded products are free or discounted, and Google is happy because it can still make a huge profit from it: if you ask me, that's a much better policy than Microsoft's ("Create something which doesn't work, try to patch it eventually, force people to use it"), at least from a certain point of view.<br /><br />Anyhow, Google <a href="http://www.google.com/press/pressrel/keyhole.html">purchased</a> Keyhole Corp. on October 27th, 2004. The next day, Google said "let's drop Keyhole's price to 30 bucks" - And Google saw that it was good.<br /><br />Then everything went (almost) silent, until June 18th, 2005, seven months and one day since the acquisition of Keyhole, Google officially <a href="http://slashdot.org/article.pl?sid=05/06/28/1733229&from=rss">released</a> a new product, called <a href="http://earth.google.com/">Google Earth</a>. <em>"Thus the heavens and the earth were finished, and all the host of them" [Gen. 2:1]</em><br /><br /><br /><strong>Welcome to a brand new world</strong><br />Pseudo-biblical jokes apart, Google's new Earth can be downloaded and installed FOR FREE! Go and <a href="http://desktop.google.com/download/earth/index.html">get it</a> because it's interesting, but please don't click on the link I provided before because you'll find out that Google won't let you download it, because they got too many requests, so... <br />So that's why, also thanks to Google, I found some <a href="http://www.majorgeeks.com/download4659.html">Major Geeks</a> mirrors and got it from there. The file is 10 MB, so if you have 56K dial-up don't bother, because it needs at least a 128Kbps connection to run correctly. Below are the minimal system requirements, the recommended ones, and what my PC has. As you can see, processor speed actually doesn't matter if you have a good video card and a good Internet connection.<br /><br /><em>Minimal Configuration</em><br /> * Operating system: Windows 2000, Windows XP<br /> * CPU speed: Intel? Pentium? PIII 500 MHz<br /> * System memory (RAM): 128MB<br /> * 200MB hard-disk space<br /> * 3D graphics card: 3D-capable video card with 16MB VRAM<br /> * 1024x768, 32-bit true color screen<br /> * Network speed: 128 kbps ("Broadband/Cable Internet")<br /> <br /><em>Recommended Configuration</em> <br /> * Operating system: Windows XP<br /> * CPU speed: Intel? Pentium? P4 2.4GHz+ or AMD 2400xp+<br /> * System memory (RAM): 512MB<br /> * 2GB hard-disk space<br /> * 3D graphics card: 3D-capable video card with 32MB VRAM or greater<br /> * 1280x1024, 32-bit true color screen<br /> * Network speed: 128 kbps ("Broadband/Cable Internet")<br /><br /><em>h3raLd's crappy PC's Configuration</em> <br /> * Operating system: Windows XP<br /> * CPU speed: Intel? Pentium? PII 350 MHz<br /> * System memory (RAM): 256MB<br /> * 30 GB hard-disk space<br /> * 3D graphics card: nVidia GeForce II MX 32MB VRAM<br /> * 1024x768, 32-bit true color screen<br /> * Network speed: 1240 kbps<br /> <br />I downloaded it, installed it, and it worked fine on my PC. Please note that Google has been pretty specific regarding the compatible OSes, basically only Windows 2000/XP are supported: very old systems (Windows 95/98/Me and alike) and very new systems (Windows Server 2003, X-x64) are not meant to be able to run it. Mac users shouldn't bother trying, while Linux users will be glad to read that it's supposed to work under <a href="http://appdb.winehq.org/appview.php?versionId=3254">wine</a> (rated "bronze").<br /><br />Let's suppose you installed the program and you're running it. If you don't want to try it because you are still unsure if it's worth or not, you can have a look at this <a href="http://newrecruit.org/archives/2005/may/googlekeyhole">article</a>, and in particular at the screenshots. <br />I found it quite easy to use, as are nearly all Google applications; the interface is quite pretty and does the job. You'll immediately notice the main panel where the world and images will be shown, then there's a bottom panel mainly used for navigation, while on the right the three main functions of the program are clearly presented in 3 tabs ("Fly to", "Local Search" and "Directions"), together with two other tabs below for adding/removing details from the map and managing your saved places and results.<br /><br />As it's a Google product, one of the most handy features is the search engine. You can put in a city, town, even street or building, restaurant, or place of interest, and the program should be smart enough to find it and take you there. With the "Fly Now" feature it's possible to just center the view on one place, for example. The resulting map will be at a certain height, depending on what term you searched for. You can now zoom in or out with your mouse wheel or with the buttons provided in the navigation panel, and you'll see the map updating. This is a gradual process and depends mainly on your connection speed, but also the available RAM, the video card, and the processor speed. <br /><br />As it's still a relatively new product, don't expect to find everything... or better, you can find (nearly) everything, but it might not be at the highest resolution, for example, and thus appear blurred on zoom. Currently the USA, the UK, and Western Europe are the places with the most details. In particular, in the major cities of the US you can also see a 3-D re-creation of the buildings which, even though in plain gray, actually reproduce the real shape of the element. <br />Furthermore, in the navigation panel you can also tilt up and tilt down the view! So the end result is a map which is half real and half virtual.<br />If you search for another place, you will not be taken there instantaneously, but instead Google Earth zooms out appropriately and moves around the globe to where the new place is and zooms in appropriately: a really nice effect.<br /><br />Also keep in mind that you can add or highlight details on the map, like grids, roads, names, places to see, restaurants, stadiums, railroads, boundaries and borders, different types of schools, earthquake areas, and - even if the satellite maps used can be up to three years old - statistical data about Cloud Coverage and a lot of other things.<br /><br />The other two functions, "Local Search" and "Directions" allow you, respectively, to perform a search restricted to the area (i.e. Trafalgar Square - London, UK) and get directions between two places, highlighting the suggested path. Also, all places you see can be saved, marked, and printed: wonderful.<br /><br /><br /><strong>Limitations and Opinions</strong><br /><br />As a Beta, Google Earth does come with limitations: as I wrote earlier, only USA, UK, and Western Europe are (almost) fully supported, but you can already get some pretty decent pictures from 200 miles up anywhere in the world. Another limitation is that since the images often come from different satellites, "patches" can be seen sometimes, where part of a picture of an area is darker or lighter than another.<br /> <br />However, you can't really complain about this software, because it's free and obviously Google's server seems to be always available, unlike NASA's. f you want more, Google Earth is available as a Plus edition (20$) and Pro edition (400$), with more <a href="http://earth.google.com/product_comparison.html">features</a> and support. <br />What of Microsoft? Well, Microsoft is said to be planning to "strike back" during this summer, with <a href="http://www.google.com/url?sa=U&start=1&q=http%3A//blog.searchenginewatch.com/blog/050523-125208&ei=hy3EQpqoGcmciALB8vinCw&sig2=ZNIj3_KWXuDMr4_2WmrCNA">MS Virtual Earth</a>, let's just wait and see...<br /> + + +<p>Almost every person on Earth has seen an image taken from a satellite at least once in his or her life: now imagine + putting all those images together to make a sort of "patchwork world"...this is unfortunately not as simple as + gluing atlas maps together, because height, resolution and orientation must be considered. However, "A computer + could do all that"...and so it happened!</p> +<h3>In the beginning...</h3> +<p><a href="http://www.nasa.gov/home/index.html?skipIntro=1">Nasa.gov</a> has always been one of the most famous and + most visited websites in history, and among the resources you can find there, besides the pictures of space-related + objects and phenomena that everyone flocks to, are satellite pictures of Earth.</p> +<p>Perhaps one of the most wonderful things NASA did software-wise was the realization of an open source software called + <a href="http://worldwind.arc.nasa.gov/index.html">WorldWind</a>: <em>"World Wind lets you zoom from satellite + altitude into any place on Earth. Leveraging Landsat satellite imagery and Shuttle Radar Topography Mission + data, World Wind lets you experience Earth terrain in visually rich 3D, just as if you were really there."</em> +</p> +<p>A really cool thing indeed, if you ask me. So cool that people from all over the world started downloading and using + it, causing problems on NASA's server for the project, which was extremely busy or even unreachable. The download is + now mirrored on Sourceforge, download.com, and Wayne State University, but the server problem has to do with getting + to the server to access the images. So why bother downloading if you know it doesn't actually work, regardless of + the reason?</p> +<p>The alternative, until a year or so ago, was a product created by "Keyhole Corp." - I won't bother posting a link to + the site, you'll read why below. Guys from Keyhole basically created a similar program that was much faster, with no + server timeouts and better image resolution. Of course, they thought they could charge for it, and I believe that + back in the day some people actually paid $70 for what was seen afterwards as a piece of software with a great + potential that was never tapped.</p> +<h3>Google enters the scene</h3> +<p>"Hey, look! It works! Now let's get it and do it better!" - This is, in a nutshell, Google's policy in the last 2 + years or so: they find relatively small(er) companies that produced something with potential, buy it, and they + either improve and resell the product, or give it away for free, getting income from advertising. It happened + before, with Picasa and Blogger, for example, and now, with Keyhole as well (for a pretty complete list of Google's + acquisitions and possible future targets, have a look <a + href="http://www.kuro5hin.org/story/2005/6/12/143721/743">here</a>).</p> +<p>This is not a bad thing for the end user, because often new Google-branded products are free or discounted, and + Google is happy because it can still make a huge profit from it: if you ask me, that's a much better policy than + Microsoft's ("Create something which doesn't work, try to patch it eventually, force people to use it"), at least + from a certain point of view.</p> +<p>Anyhow, Google <a href="http://www.google.com/press/pressrel/keyhole.html">purchased</a> Keyhole Corp. on October + 27th, 2004. The next day, Google said "let's drop Keyhole's price to 30 bucks" - And Google saw that it was good. +</p> +<p>Then everything went (almost) silent, until June 18th, 2005, seven months and one day since the acquisition of + Keyhole, Google officially <a href="http://slashdot.org/article.pl?sid=05/06/28/1733229&from=rss">released</a> a + new product, called <a href="http://earth.google.com/">Google Earth</a>. <em>"Thus the heavens and the earth were + finished, and all the host of them" [Gen. 2:1]</em></p> + + +<h3>Welcome to a brand new world</h3> +<p>Pseudo-biblical jokes apart, Google's new Earth can be downloaded and installed FOR FREE! Go and <a + href="http://desktop.google.com/download/earth/index.html">get it</a> because it's interesting, but please don't + click on the link I provided before because you'll find out that Google won't let you download it, because they got + too many requests, so... </p> +<p>So that's why, also thanks to Google, I found some <a href="http://www.majorgeeks.com/download4659.html">Major + Geeks</a> mirrors and got it from there. The file is 10 MB, so if you have 56K dial-up don't bother, because it + needs at least a 128Kbps connection to run correctly. Below are the minimal system requirements, the recommended + ones, and what my PC has. As you can see, processor speed actually doesn't matter if you have a good video card and + a good Internet connection.</p> +<ul> + <li><em>Minimal Configuration</em> + <ul> + <li>Operating system: Windows 2000, Windows XP</li> + <li>CPU speed: Intel? Pentium? PIII 500 MHz</li> + <li>System memory (RAM): 128MB</li> + <li>200MB hard-disk space</li> + <li>3D graphics card: 3D-capable video card with 16MB VRAM</li> + <li>1024x768, 32-bit true color screen</li> + <li>Network speed: 128 kbps ("Broadband/Cable Internet")</li> + </ul> + </li> +</ul> +<ul> + <li><em>Recommended Configuration</em> + <ul> + <li>Operating system: Windows XP</li> + <li>CPU speed: Intel? Pentium? P4 2.4GHz+ or AMD 2400xp+</li> + <li>System memory (RAM): 512MB</li> + <li>2GB hard-disk space</li> + <li>3D graphics card: 3D-capable video card with 32MB VRAM or greater</li> + <li>1280x1024, 32-bit true color screen</li> + <li>Network speed: 128 kbps ("Broadband/Cable Internet")</li> + </ul> + </li> +</ul> +<ul> + <li><em>h3raLd's crappy PC's Configuration</em> + <ul> + <li>Operating system: Windows XP</li> + <li>CPU speed: Intel? Pentium? PII 350 MHz</li> + <li>System memory (RAM): 256MB</li> + <li>30 GB hard-disk space</li> + <li>3D graphics card: nVidia GeForce II MX 32MB VRAM</li> + <li>1024x768, 32-bit true color screen</li> + <li>Network speed: 1240 kbps</li> + </ul> + </li> +</ul> +<p>I downloaded it, installed it, and it worked fine on my PC. Please note that Google has been pretty specific + regarding the compatible OSes, basically only Windows 2000/XP are supported: very old systems (Windows 95/98/Me and + alike) and very new systems (Windows Server 2003, X-x64) are not meant to be able to run it. Mac users shouldn't + bother trying, while Linux users will be glad to read that it's supposed to work under <a + href="http://appdb.winehq.org/appview.php?versionId=3254">wine</a> (rated "bronze").</p> +<p>Let's suppose you installed the program and you're running it. If you don't want to try it because you are still + unsure if it's worth or not, you can have a look at this <a + href="http://newrecruit.org/archives/2005/may/googlekeyhole">article</a>, and in particular at the screenshots. +</p> +<p>I found it quite easy to use, as are nearly all Google applications; the interface is quite pretty and does the job. + You'll immediately notice the main panel where the world and images will be shown, then there's a bottom panel + mainly used for navigation, while on the right the three main functions of the program are clearly presented in 3 + tabs ("Fly to", "Local Search" and "Directions"), together with two other tabs below for adding/removing details + from the map and managing your saved places and results.</p> +<p>As it's a Google product, one of the most handy features is the search engine. You can put in a city, town, even + street or building, restaurant, or place of interest, and the program should be smart enough to find it and take you + there. With the "Fly Now" feature it's possible to just center the view on one place, for example. The resulting map + will be at a certain height, depending on what term you searched for. You can now zoom in or out with your mouse + wheel or with the buttons provided in the navigation panel, and you'll see the map updating. This is a gradual + process and depends mainly on your connection speed, but also the available RAM, the video card, and the processor + speed. </p> +<p>As it's still a relatively new product, don't expect to find everything... or better, you can find (nearly) + everything, but it might not be at the highest resolution, for example, and thus appear blurred on zoom. Currently + the USA, the UK, and Western Europe are the places with the most details. In particular, in the major cities of the + US you can also see a 3-D re-creation of the buildings which, even though in plain gray, actually reproduce the real + shape of the element. </p> +<p>Furthermore, in the navigation panel you can also tilt up and tilt down the view! So the end result is a map which is + half real and half virtual.</p> +<p>If you search for another place, you will not be taken there instantaneously, but instead Google Earth zooms out + appropriately and moves around the globe to where the new place is and zooms in appropriately: a really nice effect. +</p> +<p>Also keep in mind that you can add or highlight details on the map, like grids, roads, names, places to see, + restaurants, stadiums, railroads, boundaries and borders, different types of schools, earthquake areas, and - even + if the satellite maps used can be up to three years old - statistical data about Cloud Coverage and a lot of other + things.</p> +<p>The other two functions, "Local Search" and "Directions" allow you, respectively, to perform a search restricted to + the area (i.e. Trafalgar Square - London, UK) and get directions between two places, highlighting the suggested + path. Also, all places you see can be saved, marked, and printed: wonderful.</p> + + +<h3>Limitations and Opinions</h3> +<p>As a Beta, Google Earth does come with limitations: as I wrote earlier, only USA, UK, and Western Europe are (almost) + fully supported, but you can already get some pretty decent pictures from 200 miles up anywhere in the world. + Another limitation is that since the images often come from different satellites, "patches" can be seen sometimes, + where part of a picture of an area is darker or lighter than another.</p> +<p>However, you can't really complain about this software, because it's free and obviously Google's server seems to be + always available, unlike NASA's. f you want more, Google Earth is available as a Plus edition (20$) and Pro edition + (400$), with more [1] features and support. </p> +<p>What of Microsoft? Well, Microsoft is said to be planning to "strike back" during this summer, with [2], let's just + wait and see...</p>
@@ -4,4 +4,313 @@ content-type: article
timestamp: 1132940820 tags: "ie|firefox|microsoft|firefox|browsers" ----- -This is an attempt to explain to Internet Explorer users what Mozilla Firefox is, what its features are and how it can be enhanced or customized. Although this article is written primarily for IE users, it will make interesting reading for any Firefox user who wants to try to convince even the most hopeless IE fan to adopt Firefox for everyday use. <br /><strong><span style="text-decoration:underline;">My Point of View</span></strong><br />After using Mozilla Firefox for at least 2 years, I must admit two things: I'm biased towards Firefox, and I just about forgot what IE is like. When you ask someone who's been using Firefox for a while why he likes it, he would probably say something like, "because Firefox is much better than IE." Then he would start boasting about Firefox's features, like tabbed browsing, security improvements, popup blocking, extensions and so on, without thinking that maybe an accustomed IE user would be overwhelmed by all these new things, and in the end, might become even more obstinate in using IE. <br /><br />From here on, I'll play the part - for teaching purposes only, of course - of an Internet Explorer lover: IE is the only browser I've ever tried, and it is the only thing you need to surf the Net. I also talked with some IE users I know and I actually opened the browser myself (once again, for teaching purposes), and visited some sites. <br /><br />Why not have a real IE Lover write this article? Well, I thought about it, actually, and the only answer I could come up with was: there's no such thing as an 'IE lover', only a lot of people who are too used to IE to want to switch to Firefox. So, I'd better write this all myself; after all, a long time ago, I was just like those people.<br /><br /><br /><strong>IE: I've used it for years and it does the job</strong><br /><br />When I bought my computer from my favourite retailer, I immediately asked him: "Can I go on the Internet with it? Do I need to buy any particular program to visit websites?" and I was told that I didn't need anything at all, because it was all included in <em>Windows XP</em>. I just had to click on the start button and choose "Internet" from the pop-up menu. "Straightforward," I thought. "Anybody can do that!"<br />I soon noticed that to browse the Internet, Windows used a program called Internet Explorer 6, which was actually part of the whole Windows infrastructure, somehow: it's the same thing, more or less, that I use to view directories on my hard drive, just online. This is the way it should be - so tightly integrated with the operating system that you hardly notice its presence!<br /><br />After a while, I learned some more about Internet Explorer, and I noticed that a lot of other applications could be integrated into it, like download managers and <a href="http://www.adobe.com/products/acrobat/readstep2.html">PDF viewers</a>. I also discovered that I could even <a href="http://www.microsoft.com/windows/windowsmedia/mp10/default.aspx">listen to music and watch videos</a> through my browser, directly from webpages.<br /><br />Then I discovered toolbars - and I wasn't entirely happy about them. I installed <a href="http://toolbar.google.com/index_2">Google Toolbar</a>, and I really enjoyed its features, but I noticed that some other toolbars seemed to be installed, even if I didn't want to: I think some other program asked me to install them or something; I don't really know. All I do now is just set Internet Explorer not to display them, and change my starting page back to what I want, because sometimes, for some reason, IE starts with a different page than what I want.<br /><br />All that aside, what I really like about IE is that I can use it for anything and everything, even updating Windows! Microsoft has another cool technology called ActiveX which allows me to download and install Windows security patches and upgrades automatically!<br /><br />I really don't understand how people can run an operating system other than Windows: the Web was <strong>made</strong> for Internet Explorer! It's even <a href="http://www.microsoft.com/mac/products/internetexplorer/internetexplorer.aspx?pid=internetexplorer">available for Macintosh</a>. <br /><br />A friend of mine told me he started using another browser called "Firefox" or "Firebird" or something, and he really likes it! He said it can be used on Windows, Macintosh, Linux, Solaris, and Unix, but when I asked him why it was so good, he told me, "Because it's better, and IE sucks." <br /><br />I don't understand how he can say that, especially because everyone I know uses Internet Explorer, Bill Gates made loads of money out of it, so it can't be that bad! Anyhow, I decided to give this Fire-thingie a shot.<br /><br /><br /><strong><span style="text-decoration:underline;">Face to Face with a Fox</span></strong><br />My friend told me to download this thing from a <a href="http://www.mozilla.org/products/firefox/">website</a>, because it's free. So what? IE is free, too, because it came with my PC. Anyhow, I figured I'd just go and download it so he'd leave me alone about it. I read that Firefox - that's its name - is a free browser developed by the <a href="http://www.mozilla.org">Mozilla Foundation</a> which has received a lot of <a href="http://www.mozilla.org/press/awards.html">awards</a> from various well-known computer-related websites and institutions. It also seem to have a promotional <a href="http://www.spreadfirefox.com/">website</a> that says it has been downloaded nearly seventy million times! All the geeks seem to use it, and they love it. Maybe it's really good, or maybe they just don't like Microsoft. <br /><br />When I ran Firefox for the first time, Internet Explorer warned me that it couldn't verify the authenticity of the download, or something like that, but it says that all the time when I download stuff.<br />The first thing that happened was that I was prompted to import my favourites from Internet Explorer. Great! I didn't want to lose all the sites I have had bookmarked for years. So far, so good.<br /> <br />There were no XP-related icons at all, just some weird ones I didn't like, especially the "Home Page" icon. It sucks compared to the one in IE. It doesn't integrate with Windows; it's just another application for browsing websites, like that <a href="http://www.netscape.com">Netscape</a> thing my friend made me try a few years ago. That at least had an email client and other things included with it. <br /><br />Firefox isn't worth the hassle: my favourite websites look "broken" and the thing is continuously complaining about plugins to view some pages. Some websites even tell me off now because I'm not using IE, in particular Microsoft, which doesn't let me update <a href="http://v4.windowsupdate.microsoft.com/en/thanks.asp?">anymore</a>. I switched back to IE after a few minutes of pointless struggle. <br /><br /><br /><strong>Here's What You Get</strong><br />Firefox and IE are two very different things, and I didn't like that, but I admit I had some prejudices, maybe because of the fact that my friend told me to download something and said it was better, and it really wasn't. So I decided to give both him and Firefox a second chance, and I asked him to explain to me why Firefox is better than Internet Explorer. <br />The first thing he mentioned was the different terminology used by the two browsers, which can be summarized as follows:<br /><code><br />| Internet Explorer | Firefox |<br />| Internet Options | Options |<br />| Temporary Internet Files | Cache |<br />| Favorites | Bookmarks |<br />| Address Bar | Location Bar |<br />| Refresh | Reload |<br />| Links Bar | Bookmarks Toolbar |<br />| Explorer Bar | Sidebar |<br />| Copy Shortcut | Copy Link Location |<br />| Save Target As | Save Link As |<br /></code><br />and that once you get used to the new terms, finding what you're looking for is easier than in Internet Explorer. <br /><br />My friend also said a new feature implemented by Firefox is <em>popup blocking</em>. So I told him that as of Service Pack 2, even Internet Explorer blocks popups (and before that, so did my Google Toolbar) but apparently Firefox had this feature long before Microsoft did. Good to know, but not really impressive.<br />What was more interesting was that Firefox lets you type in whatever you want in the Location bar, even if it's not a Web address, and you will still get the most relevant page available: for example, typing "firefox" takes me to <a href="http://www.mozilla.org/products/firefox/">http://www.mozilla.org/products/firefox/</a>. This is accomplished through Google's "<a href="http://www.google.com/help/features.html#lucky">I'm Feeling Lucky</a>" feature. IE doesn't do this: it gives me a search page for what I typed, or it tries to 'guess' the domain by adding a .com or .net after the word.<br /><br />Firefox still didn't really impress me: some nice tricks, but nothing that would make me want to switch. What started to make the difference was the <strong><em>Tabbed Browsing</em></strong> feature: I knew about it already, because IE started implementing that through the <a href="http://toolbar.msn.com/">MSN toolbar</a>, but it's a bit<a href="http://weblogs.mozillazine.org/asa/archives/008312.html">buggy</a>, so I didn't even try it. Firefox has had this feature since its very first <a href="http://www.mozilla.org/products/firefox/releases/0.1.html">release</a>, so I guess it they represents a fully-functional, stable, and key feature of the browser. Tabbed browsing introduces a new <em>philosophy</em> for browsing the web: there is only one browser window, but it can have multiple <em>tabs</em>, each displaying a different page. You can switch from one tab to another by clicking on the title (tab titles appear horizontally under the location bar), "Open Link in New Tab" by right-clicking on a link, and open empty tabs with either CTRL+T or from the <em>File</em> menu. It takes a while to get used to it, but after a while I couldn't really live without it!<br /><br />I then asked my friend why Firefox doesn't allow me to play music or videos or read pdf files, etc., and he said that I needed to install all the necessary <a href="https://pfs.mozilla.org/plugins/">plugins</a>. This is the most annoying thing about Firefox: you have to "feed" it and "teach" it things - a lot like a baby, really. If the analogy is truly valid, in the end it should be worth it, and I have the feeling that my Firefox will grow up well, if I'm careful.<br /><br />After learning about plugins, and teaching my little Firefox what to do with movies, songs and other types of files, I learnt that it had another really smart feature: outstanding, built-in <em>search capabilities</em>.<br />I had already noticed the small search bar on the top right, next to the location bar: it's basically a shortcut to Google Search. Cool, but I already had this in IE. One thing I didn't like about IE though, was that if I wanted to use a different search engine, like Yahoo or MSN, I had to install <em>another toolbar</em>, and I ended up with something like three different toolbars under the address bar, so I could hardly see the webpages I was browsing!<br /><br />Firefox apparently knows that people might need to use more than one search engine, so you can select other search engines by clicking on the little icon on the left of the aforementioned search bar. Yahoo, MSN, Wikipedia, and others are available, and <a href="http://mycroft.mozdev.org/download.html">others</a> can be installed easily. If you need a plugin for a search engine, and it doesn't exist yet, you can even make it yourself quite <a href="http://mycroft.mozdev.org/generator/">easily</a>.<br /><br />But let's come back a bit to when I ran Firefox for the first time: where did my IE Favourites go? Under the <em>Bookmarks</em> menu, obviously, and they even kept their folder structure. They can be organized through the <em>Manage Bookmarks</em> option, and indeed Firefox's <em>Bookmarks Manager</em>'s interface looks much cleaner and is easier to use than IE's. However, since all the imported bookmarks get dumped in a subfolder, it takes a little time to get them all up to the top level.<br /> <br />Firefox also implements <em>Live Bookmarks</em>: some sites, especially news-related ones like <a href="http://news.yahoo.com/">Yahoo News</a> and <a href="http://news.bbc.co.uk/">BBC News</a>, and <a href="http://slashdot.org/">Slashdot</a> offer <a href="http://en.wikipedia.org/wiki/RSS_%28file_format%29">RSS</a> feeds which are updated several times a day. With Firefox, you can <em>subscribe</em> to a particular site's RSS by clicking on the little square orange icon which appears on the status bar, and a <em>Live Bookmark</em> will be saved. They appear under the <em>Bookmarks</em> menu, in a specific folder, and also on your <em>Bookmarks Toolbar</em> which is under the location bar: clicking on one of them will show the corresponding site's current headlines. You can click on any of the headlines to read the full story/article.<br /><br />Even if my friend realised he just created another Firefox fan, he insisted on telling me a few words about Downloads and Options. Regarding Downloads, there's not much to say: Firefox incorporates a <em>Download Manager</em> that saves all files downloaded from the Net in a specific (selectable) folder, and keeps a history of all downloads. The download manager is opened automatically whenever a file is downloaded, and it also can be opened manually by selecting <em>Tools-Downloads</em>. The really handy part is that you can easily open a downloaded file or the folder it's in, or clear your download history all in one place. The drawback is that it stays open until you close it, and you have to click a button to clear the already downloaded files from the queue.<br /><br /><em>Options</em> is more complex to deal with, as Firefox does not rely on Windows' <em>Internet Options</em>. Firefox's Options (under the <em>Tools</em> menu) are more complete and better organized, as they are clearly divided into 5 main categories:<br /><br /><em>General</em><br />In this panel you can set up your starting page, fonts, colors, language, character encodings, whether or not Firefox is the default browser, and your connection settings.<br /><br /><em>Privacy</em><br />Here - and this is really much better than in IE, I must admit - you can clear and manage history items, saved form information, saved passwords, download manager history, cookies and the browser cache. You can clear everything with a single click, but you'll lose all your saved passwords and your history lists.<br /><br /><em>Web Features</em><br />This panel is for setting your preferences regarding popup blocking, software installation, images, Java and JavaScript.<br /><br /><em>Downloads</em><br />Here you can choose your download destinatination folder as well as set other download-related preferences, like setting particular file types to save to a particular folder.<br /><br /><em>Advanced</em><br />This panel is for - as the name implies - advanced preferences regarding accessibility, browsing, security, validation and certificates. You don't need to change anything here unless you've been told to or you know what you're doing.<br /><br /><em>Is That All?</em><br />That's what I thought, and although I was really impressed with Firefox, I was still missing some features that IE had, such as third party toolbars. My friend was about to go, but he quickly opened a pre-defined firefox bookmark: <a href="https://addons.mozilla.org/">Mozilla Update</a>. "Now you know how Firefox works: I'm sure you can work this out by yourself," he said, and left me with a door to another vast world to explore. The journey was far from over.<br /><br /><br /><strong>Extensions and Themes</strong><br />One aspect of Firefox that was a bit discouraging was the fact that once you install the browser you need to install this, download that, and configure the other thing. For any IE user (like me), this is a major hassle: before, I just wanted to browse the Net, and I didn't care what I was using or how I was using it. Now, I have to be aware of certain things, and more or less <strong>create</strong> the browser I need! On the other hand, this is sort of exciting, in the sense that unlike IE, Firefox can became whatever you want it to be.<br /><br />Even after using Firefox for a while, and even after my friend had explained all its nice features, I still felt that it was somehow incomplete. Luckily, Firefox has <em>extensions</em> and <em>themes</em>. The numerous <a href="https://addons.mozilla.org/extensions/?application=firefox">Extensions</a> enhance Firefox by adding new features which - honestly - I never thought were even conceivable to be included in a browser. Furthermore, Firefox also has <a href="https://addons.mozilla.org/themes/?application=firefox">Themes</a>, so you can change the browser into something completely different, with different icons, shapes and colors!<br /><br />It's worth it to mention some <em><strong>Extensions</strong></em> which really impressed me by the functionality or behaviours they added to Firefox:<br /><br /><a href="https://addons.mozilla.org/extensions/moreinfo.php?id=10&application=firefox">Adblock</a><br />This extension blocks ads - if you don't want to see a banner on a certain site anymore, just right-click on it, select AdBlock, and it's gone! It also remembers your preferences for every URL or site. It's easily customizeable and useful.<br /> <br /><a href="https://addons.mozilla.org/extensions/moreinfo.php?id=158&application=firefox">Tabbrowser Preferences</a><br />This adds a new category in your Options called Tabbed Browsing, where you can customize particular behaviours concerning tabs, like opening all addresses typed in the location bar in a new tab (focused or unfocused), forcing links to open in new tabs instead of new windows, and so on. <br /><br /><a href="https://addons.mozilla.org/extensions/moreinfo.php?id=220&application=firefox">FlashGot</a><br />I complained before that my download manager wasn't integrated with Firefox: this extension does that, and supports nearly every possible download manager and accelerators. It also has a built-in gallery to quickly see what file types you are downloading.<br /><br /><a href="https://addons.mozilla.org/extensions/moreinfo.php?id=743&application=firefox">CustomizeGoogle</a><br />This personalises Google-related sites and services, such as using <a href="http://www.google.com/webhp?complete=1&hl=en">Google Suggest</a> in every search, filtering content and ads, anonymizing data transmitted to Google, and much more.<br /><br /><a href="https://addons.mozilla.org/extensions/moreinfo.php?id=398&application=firefox">ForeCastFox</a><br />Get weather forecasts from all over the world displayed directly on your status bar or anywhere you want.<br /><br /><a href="https://addons.mozilla.org/extensions/moreinfo.php?application=firefox&category=Developer%20Tools&numpg=10&id=60">Developer Tools</a><br />This is THE ultimate solution if you are a web developer or interested in knowing more about webpages. With this extension you can:<br />- Disable <strong>anything</strong> with a single click (images, JavaScript, cookies, colors, animations, etc.)<br />- Get CSS information or modify a page's CSS<br />- Have fun with Forms (convert POSTs to GETs, show hidden fields, and so on)<br />- Perform image-related operations: show paths, attributes, outline particular images, etc.<br />- Get infos about various elements on a page<br />- Clear history, cookies, open java console, view document's source<br />- Outline particular elements (images, tables, etc.)<br />- Resize your browser to a custom or predefined resolution<br />- Validate a page (HTML, CSS, WAI accessibility, speed reports)<br /><br /><a href="https://addons.mozilla.org/extensions/moreinfo.php?id=33">Googlebar</a><br />Clone of the IE Google Toolbar.<br /><br /><a href="https://addons.mozilla.org/extensions/moreinfo.php?id=270">Yahoo Companion</a><br />Clone of the IE Yahoo toolbar.<br /><br /><a href="https://addons.mozilla.org/extensions/moreinfo.php?id=219">FoxyTunes</a><br />Control your favourite media player (several programs supported) directly from Firefox!<br /><br /><a href="https://addons.mozilla.org/extensions/moreinfo.php?id=16">ChatZilla</a><br />A complete, fully functional, easy-to-use IRC client which runs from Firefox.<br /><br /><a href="https://addons.mozilla.org/extensions/moreinfo.php?id=684">FireFTP</a><br />Fully integrated FTP client.<br /><br />There are actually many more extensions available from either the Firefox website or other <a href="http://www.extensionsmirror.nl/">portals</a> which can be very useful, depending on your needs, but there are also <strong>Themes</strong> which can change Firefox's look and feel completely, such as:<br /><br /><a href="https://addons.mozilla.org/themes/moreinfo.php?id=7&application=firefox">Qute</a><br />This theme inspired Firefox default theme: "Icons designed to be modern, dynamic and fresh, with attention paid to usability and comfort over extended use".<br /><br /><a href="https://addons.mozilla.org/themes/moreinfo.php?id=101&application=firefox">Silverskin</a> <br />"Your favourite browser with a silver skin (With the Qute icons by Arvid Axelsson)"<br /><br /><a href="https://addons.mozilla.org/themes/moreinfo.php?application=firefox&category=Popular&numpg=10&id=414">Saferfox Xpanded</a> <br />"A full skin theme with a modern aqua design"<br /><br /><a href="https://addons.mozilla.org/themes/moreinfo.php?application=firefox&category=Popular&numpg=10&id=213">Plastikfox Crystal SVG</a><br />"Plastik style from KDE with Crystal SVG icons" <br /><br /><a href="https://addons.mozilla.org/themes/moreinfo.php?application=firefox&category=Popular&numpg=10&id=72">Noia (eXtreme)</a><br />"This theme is based on the Noia2.0 icon set by Carlitus."<br /><br /><a href="https://addons.mozilla.org/themes/moreinfo.php?application=firefox&category=Popular&numpg=10&id=548">Brushed</a><br />"A Brushed and Polished Browser Interface."<br /><br />Again, many more themes are available. There's something for everyone, really!<br /><br /><br /><strong>To switch or not to switch?</strong><br /><br />Yes, OK, it's not one of those questions which will keep you up at night, but for sure it can be a quandary. Personally, I decided to switch to Firefox gradually, while still viewing some sites in IE, because I think this can be a good compromise. The biggest problem is that even if Firefox supports Web standards (my friend said IE doesn't) some sites do not. Especially before Firefox, web developers apparently had to create their sites to be viewed correctly with Microsoft's browser. That's why some sites still have things like "This site is best viewed in Internet Explorer 6", or even, in some cases, they'll suggest you download the latest IE version, because <em>your browser is incompatible</em> when actually it's <em>the site</em> which is not compatible with <a href="http://www.w3c.org/">Web Standards</a>.<br />Furthermore, <a href="http://www.microsoft.com/com/default.mspx">ActiveX</a> is a non-standardized proprietary technology which Microsoft uses to make software components communicate and also provide complex functionalities necessary for things like Windows Update. Firefox doesn't support ActiveX, which has been exploited many times in the past (and still now): tough luck. Nowadays, Microsoft wants you to have Automatic Updates turned on, so you don't need to visit the Windows Update site anymore. As far as I'm concerned, I'm not too bothered by that, but if someday I need ActiveX technology, there's already a <a href="http://www.google.com/url?sa=U&start=1&q=http%3A//www.iol.ie/%7Elocka/mozilla/mozilla.htm&ei=cwnIQu_tBYqgiAKd9bGrCw&sig2=afi7r8Pa_YLozVo0JbGp9w">Mozilla Project</a> on it. Final note: If you need to switch back to IE for some reason, the <a href="https://addons.mozilla.org/extensions/moreinfo.php?id=35">IE View</a> extension can quickly give you the opportunity to do so, opening IE to view the page you're visiting.<br /><br />It looks like the Browser Wars have started again, and as a matter of fact, Firefox is becoming known for its features, innovations and <a href="http://www.mozillazine.org/">community support</a>. Switching can be scary, and people can try forcing you to do it, but you shouldn't listen to them: don't start using Firefox just because "it's cool" or "everybody uses it"; try it first, understand how it works, and spend time learning it, because it just might be worth it. <br /><br />One thing is certain: The existence of IE lovers is debatable, but there are over <a href="http://www.spreadfirefox.com">170 million</a> Firefox lovers. Go <a href="http://www.mozilla.org/products/firefox/">get it</a>! <br /> +<p>This is an attempt to explain to Internet Explorer users what Mozilla Firefox is, what its features are and how it + can be enhanced or customized.</p> +<p>Although this article is written primarily for IE users, it will make interesting reading for any Firefox user who + wants to try to convince even the most hopeless IE fan to adopt Firefox for everyday use.</p> +<h3>My Point of View</h3> +<p>After using Mozilla Firefox for at least 2 years, I must admit two things: I'm biased towards Firefox, and I just + about forgot what IE is like. When you ask someone who's been using Firefox for a while why he likes it, he would + probably say something like, "because Firefox is much better than IE." Then he would start boasting about Firefox's + features, like tabbed browsing, security improvements, popup blocking, extensions and so on, without thinking that + maybe an accustomed IE user would be overwhelmed by all these new things, and in the end, might become even more + obstinate in using IE.</p> +<p>From here on, I'll play the part - for teaching purposes only, of course - of an Internet Explorer lover: IE is the + only browser I've ever tried, and it is the only thing you need to surf the Net. I also talked with some IE users I + know and I actually opened the browser myself (once again, for teaching purposes), and visited some sites.</p> +<p>Why not have a real IE Lover write this article? Well, I thought about it, actually, and the only answer I could come + up with was: there's no such thing as an 'IE lover', only a lot of people who are too used to IE to want to switch + to Firefox. So, I'd better write this all myself; after all, a long time ago, I was just like those people.</p> +<h3>IE: I've used it for years and it does the job</h3> +<p>When I bought my computer from my favourite retailer, I immediately asked him: "Can I go on the Internet with it? Do + I need to buy any particular program to visit websites?" and I was told that I didn't need anything at all, because + it was all included in <em>Windows XP</em>. I just had to click on the start button and choose "Internet" from the + pop-up menu. "Straightforward," I thought. "Anybody can do that!"</p> +<p>I soon noticed that to browse the Internet, Windows used a program called Internet Explorer 6, which was actually + part of the whole Windows infrastructure, somehow: it's the same thing, more or less, that I use to view directories + on my hard drive, just online. This is the way it should be - so tightly integrated with the operating system that + you hardly notice its presence!</p> +<p>After a while, I learned some more about Internet Explorer, and I noticed that a lot of other applications could be + integrated into it, like download managers and <a href="http://www.adobe.com/products/acrobat/readstep2.html">PDF + viewers</a>. I also discovered that I could even <a + href="http://www.microsoft.com/windows/windowsmedia/mp10/default.aspx">listen to music and watch videos</a> + through my browser, directly from webpages.</p> +<p>Then I discovered toolbars - and I wasn't entirely happy about them. I installed <a + href="http://toolbar.google.com/index_2">Google Toolbar</a>, and I really enjoyed its features, but I noticed + that some other toolbars seemed to be installed, even if I didn't want to: I think some other program asked me to + install them or something; I don't really know. All I do now is just set Internet Explorer not to display them, and + change my starting page back to what I want, because sometimes, for some reason, IE starts with a different page + than what I want.</p> +<p>All that aside, what I really like about IE is that I can use it for anything and everything, even updating Windows! + Microsoft has another cool technology called ActiveX which allows me to download and install Windows security + patches and upgrades automatically!</p> +<p>I really don't understand how people can run an operating system other than Windows: the Web was + <strong>made</strong> for Internet Explorer! It's even <a + href="http://www.microsoft.com/mac/products/internetexplorer/internetexplorer.aspx?pid=internetexplorer">available + for Macintosh</a>. +</p> +<p>A friend of mine told me he started using another browser called "Firefox" or "Firebird" or something, and he really + likes it! He said it can be used on Windows, Macintosh, Linux, Solaris, and Unix, but when I asked him why it was so + good, he told me, "Because it's better, and IE sucks."</p> +<p>I don't understand how he can say that, especially because everyone I know uses Internet Explorer, Bill Gates made + loads of money out of it, so it can't be that bad! Anyhow, I decided to give this Fire-thingie a shot.</p> + + +<h3>Face to Face with a Fox</h3> +<p>My friend told me to download this thing from a <a href="http://www.mozilla.org/products/firefox/">website</a>, + because it's free. So what? IE is free, too, because it came with my PC. Anyhow, I figured I'd just go and download + it so he'd leave me alone about it. I read that Firefox - that's its name - is a free browser developed by the <a + href="http://www.mozilla.org">Mozilla Foundation</a> which has received a lot of <a + href="http://www.mozilla.org/press/awards.html">awards</a> from various well-known computer-related websites and + institutions. It also seem to have a promotional <a href="http://www.spreadfirefox.com/">website</a> that says it + has been downloaded nearly seventy million times! All the geeks seem to use it, and they love it. Maybe it's really + good, or maybe they just don't like Microsoft.</p> +<p>When I ran Firefox for the first time, Internet Explorer warned me that it couldn't verify the authenticity of the + download, or something like that, but it says that all the time when I download stuff.</p> +<p>The first thing that happened was that I was prompted to import my favourites from Internet Explorer. Great! I didn't + want to lose all the sites I have had bookmarked for years. So far, so good.</p> +<p>There were no XP-related icons at all, just some weird ones I didn't like, especially the "Home Page" icon. It sucks + compared to the one in IE. It doesn't integrate with Windows; it's just another application for browsing websites, + like that <a href="http://www.netscape.com">Netscape</a> thing my friend made me try a few years ago. That at least + had an email client and other things included with it.</p> +<p>Firefox isn't worth the hassle: my favourite websites look "broken" and the thing is continuously complaining about + plugins to view some pages. Some websites even tell me off now because I'm not using IE, in particular Microsoft, + which doesn't let me update <a href="http://v4.windowsupdate.microsoft.com/en/thanks.asp?">anymore</a>. I switched + back to IE after a few minutes of pointless struggle.</p> + + +<h3>Here's What You Get</h3> +<p>Firefox and IE are two very different things, and I didn't like that, but I admit I had some prejudices, maybe + because of the fact that my friend told me to download something and said it was better, and it really wasn't. So I + decided to give both him and Firefox a second chance, and I asked him to explain to me why Firefox is better than + Internet Explorer.</p> +<p>The first thing he mentioned was the different terminology used by the two browsers, which can be summarized as + follows:</p> +<table> + <tr> + <th>Internet Explorer</th> + <th>Firefox</th> + </tr> + <tr> + <td>Internet Options</td> + <td>Options</td> + </tr> + <tr> + <td>Temporary Internet Files</td> + <td>Cache</td> + </tr> + <tr> + <td>Favorites</td> + <td>Bookmarks</td> + </tr> + <tr> + <td>Address Bar</td> + <td>Location Bar</td> + </tr> + <tr> + <td>Refresh</td> + <td>Reload</td> + </tr> + <tr> + <td>Links Bar</td> + <td>Bookmarks Toolbar</td> + </tr> + <tr> + <td>Explorer Bar</td> + <td>Sidebar</td> + </tr> + <tr> + <td>Copy Shortcut</td> + <td>Copy Link Location</td> + </tr> + <tr> + <td>Save Target As</td> + <td>Save Link As</td> + </tr> +</table> +<p>and that once you get used to the new terms, finding what you're looking for is easier than in Internet Explorer.</p> + + +<p>My friend also said a new feature implemented by Firefox is <em>popup blocking</em>. So I told him that as of Service + Pack 2, even Internet Explorer blocks popups (and before that, so did my Google Toolbar) but apparently Firefox had + this feature long before Microsoft did. Good to know, but not really impressive.</p> +<p>What was more interesting was that Firefox lets you type in whatever you want in the Location bar, even if it's not a + Web address, and you will still get the most relevant page available: for example, typing "firefox" takes me to <a + href="http://www.mozilla.org/products/firefox/">http://www.mozilla.org/products/firefox/</a>. This is + accomplished through Google's "<a href="http://www.google.com/help/features.html#lucky">I'm Feeling Lucky</a>" + feature. IE doesn't do this: it gives me a search page for what I typed, or it tries to 'guess' the domain by adding + a .com or .net after the word.</p> +<p>Firefox still didn't really impress me: some nice tricks, but nothing that would make me want to switch. What started + to make the difference was the +<h3><em>Tabbed Browsing</em></h3> feature: I knew about it already, because IE started implementing that through the <a + href="http://toolbar.msn.com/">MSN toolbar</a>, but it's a bit <a + href="http://weblogs.mozillazine.org/asa/archives/008312.html">buggy</a>, so I didn't even try it. Firefox has had +this feature since its very first <a href="http://www.mozilla.org/products/firefox/releases/0.1.html">release</a>, so I +guess it they represents a fully-functional, stable, and key feature of the browser. Tabbed browsing introduces a new +<em>philosophy</em> for browsing the web: there is only one browser window, but it can have multiple <em>tabs</em>, each +displaying a different page. You can switch from one tab to another by clicking on the title (tab titles appear +horizontally under the location bar), "Open Link in New Tab" by right-clicking on a link, and open empty tabs with +either CTRL+T or from the <em>File</em> menu. It takes a while to get used to it, but after a while I couldn't really +live without it!</p> +<p>I then asked my friend why Firefox doesn't allow me to play music or videos or read pdf files, etc., and he said that + I needed to install all the necessary <a href="https://pfs.mozilla.org/plugins/">plugins</a>. This is the most + annoying thing about Firefox: you have to "feed" it and "teach" it things - a lot like a baby, really. If the + analogy is truly valid, in the end it should be worth it, and I have the feeling that my Firefox will grow up well, + if I'm careful.</p> +<p>After learning about plugins, and teaching my little Firefox what to do with movies, songs and other types of files, + I learnt that it had another really smart feature: outstanding, built-in <em>search capabilities</em>.</p> +<p>I had already noticed the small search bar on the top right, next to the location bar: it's basically a shortcut to + Google Search. Cool, but I already had this in IE. One thing I didn't like about IE though, was that if I wanted to + use a different search engine, like Yahoo or MSN, I had to install <em>another toolbar</em>, and I ended up with + something like three different toolbars under the address bar, so I could hardly see the webpages I was browsing! +</p> +<p>Firefox apparently knows that people might need to use more than one search engine, so you can select other search + engines by clicking on the little icon on the left of the aforementioned search bar. Yahoo, MSN, Wikipedia, and + others are available, and <a href="http://mycroft.mozdev.org/download.html">others</a> can be installed easily. If + you need a plugin for a search engine, and it doesn't exist yet, you can even make it yourself quite <a + href="http://mycroft.mozdev.org/generator/">easily</a>.</p> +<p>But let's come back a bit to when I ran Firefox for the first time: where did my IE Favourites go? Under the + <em>Bookmarks</em> menu, obviously, and they even kept their folder structure. They can be organized through the + <em>Manage Bookmarks</em> option, and indeed Firefox's <em>Bookmarks Manager</em>'s interface looks much cleaner and + is easier to use than IE's. However, since all the imported bookmarks get dumped in a subfolder, it takes a little + time to get them all up to the top level. +</p> +<p>Firefox also implements <em>Live Bookmarks</em>: some sites, especially news-related ones like <a + href="http://news.yahoo.com/">Yahoo News</a> and <a href="http://news.bbc.co.uk/">BBC News</a>, and <a + href="http://slashdot.org/">Slashdot</a> offer <a + href="http://en.wikipedia.org/wiki/RSS_%28file_format%29">RSS</a> feeds which are updated several times a day. + With Firefox, you can <em>subscribe</em> to a particular site's RSS by clicking on the little square orange icon + which appears on the status bar, and a <em>Live Bookmark</em> will be saved.</p> + +<p>They appear under the <em>Bookmarks</em> menu, in a specific folder, and also on your <em>Bookmarks Toolbar</em> + which is under the location bar: clicking on one of them will show the corresponding site's current headlines. You + can click on any of the headlines to read the full story/article.</p> +<p>Even if my friend realised he just created another Firefox fan, he insisted on telling me a few words about Downloads + and Options. Regarding Downloads, there's not much to say: Firefox incorporates a <em>Download Manager</em> that + saves all files downloaded from the Net in a specific (selectable) folder, and keeps a history of all downloads. The + download manager is opened automatically whenever a file is downloaded, and it also can be opened manually by + selecting <em>Tools-Downloads</em>. The really handy part is that you can easily open a downloaded file or the + folder it's in, or clear your download history all in one place. The drawback is that it stays open until you close + it, and you have to click a button to clear the already downloaded files from the queue.</p> +<p><em>Options</em> is more complex to deal with, as Firefox does not rely on Windows' <em>Internet Options</em>. + Firefox's Options (under the <em>Tools</em> menu) are more complete and better organized, as they are clearly + divided into 5 main categories:</p> +<ul> + <li><em>General</em><br />In this panel you can set up your starting page, fonts, colors, language, character + encodings, whether or not Firefox is the default browser, and your connection settings.</li> + <li><em>Privacy</em><br />Here - and this is really much better than in IE, I must admit - you can clear and manage + history items, saved form information, saved passwords, download manager history, cookies and the browser cache. + You can clear everything with a single click, but you'll lose all your saved passwords and your history lists. + </li> + <li><em>Web Features</em><br />This panel is for setting your preferences regarding popup blocking, software + installation, images, Java and JavaScript.</li> + <li><em>Downloads</em><br />Here you can choose your download destinatination folder as well as set other + download-related preferences, like setting particular file types to save to a particular folder.</li> + <li><em>Advanced</em><br />This panel is for - as the name implies - advanced preferences regarding accessibility, + browsing, security, validation and certificates. You don't need to change anything here unless you've been told + to or you know what you're doing.</li> +</ul> +<p><em>Is That All?</em><br />That's what I thought, and although I was really impressed with Firefox, I was still + missing some features that IE had, such as third party toolbars. My friend was about to go, but he quickly opened a + pre-defined firefox bookmark: <a href="https://addons.mozilla.org/">Mozilla Update</a>. "Now you know how Firefox + works: I'm sure you can work this out by yourself," he said, and left me with a door to another vast world to + explore. The journey was far from over.</p> + + +<h3>Extensions and Themes</h3> +<p>One aspect of Firefox that was a bit discouraging was the fact that once you install the browser you need to install + this, download that, and configure the other thing. For any IE user (like me), this is a major hassle: before, I + just wanted to browse the Net, and I didn't care what I was using or how I was using it. Now, I have to be aware of + certain things, and more or less <strong>create</strong> the browser I need! On the other hand, this is sort of + exciting, in the sense that unlike IE, Firefox can became whatever you want it to be.</p> +<p>Even after using Firefox for a while, and even after my friend had explained all its nice features, I still felt that + it was somehow incomplete. Luckily, Firefox has <em>extensions</em> and <em>themes</em>. The numerous extensions + enhance Firefox by adding new features which - honestly - I never thought were even conceivable to be included in a + browser. Furthermore, Firefox also has themes, so you can change the browser into something completely different, + with different icons, shapes and colors!</p> +<p>It's worth it to mention some <em><strong>Extensions</strong></em> which really impressed me by the functionality or + behaviours they added to Firefox:</p> +<ul> + <li><a href="https://addons.mozilla.org/extensions/moreinfo.php?id=10&application=firefox">Adblock</a><br />This + extension blocks ads - if you don't want to see a banner on a certain site anymore, just right-click on it, + select AdBlock, and it's gone! It also remembers your preferences for every URL or site. It's easily + customizeable and useful.</li> + <li><a href="https://addons.mozilla.org/extensions/moreinfo.php?id=158&application=firefox">Tabbrowser + Preferences</a><br />This adds a new category in your Options called Tabbed Browsing, where you can + customize particular behaviours concerning tabs, like opening all addresses typed in the location bar in a new + tab (focused or unfocused), forcing links to open in new tabs instead of new windows, and so on.</li> + <li><a href="https://addons.mozilla.org/extensions/moreinfo.php?id=220&application=firefox">FlashGot</a><br />I + complained before that my download manager wasn't integrated with Firefox: this extension does that, and + supports nearly every possible download manager and accelerators. It also has a built-in gallery to quickly see + what file types you are downloading.</li> + <li><a + href="https://addons.mozilla.org/extensions/moreinfo.php?id=743&application=firefox">CustomizeGoogle</a><br />This + personalises Google-related sites and services, such as using <a + href="http://www.google.com/webhp?complete=1&hl=en">Google Suggest</a> in every search, filtering content + and ads, anonymizing data transmitted to Google, and much more.</li> + <li><a href="https://addons.mozilla.org/extensions/moreinfo.php?id=398&application=firefox">ForeCastFox</a><br />Get + weather forecasts from all over the world displayed directly on your status bar or anywhere you want.</li> + <li><a + href="https://addons.mozilla.org/extensions/moreinfo.php?application=firefox&category=Developer%20Tools&numpg=10&id=60">Developer + Tools</a><br />This is THE ultimate solution if you are a web developer or interested in knowing more about + webpages. With this extension you can:<br />- Disable <strong>anything</strong> with a single click (images, + JavaScript, cookies, colors, animations, etc.)<br />- Get CSS information or modify a page's CSS<br />- Have fun + with Forms (convert POSTs to GETs, show hidden fields, and so on)<br />- Perform image-related operations: show + paths, attributes, outline particular images, etc.<br />- Get infos about various elements on a page<br />- + Clear history, cookies, open java console, view document's source<br />- Outline particular elements (images, + tables, etc.)<br />- Resize your browser to a custom or predefined resolution<br />- Validate a page (HTML, CSS, + WAI accessibility, speed reports)</li> + <li><a href="https://addons.mozilla.org/extensions/moreinfo.php?id=33">Googlebar</a><br />Clone of the IE Google + Toolbar.</li> + <li><a href="https://addons.mozilla.org/extensions/moreinfo.php?id=270">Yahoo Companion</a><br />Clone of the IE + Yahoo toolbar.</li> + <li><a href="https://addons.mozilla.org/extensions/moreinfo.php?id=219">FoxyTunes</a><br />Control your favourite + media player (several programs supported) directly from Firefox!</li> + <li><a href="https://addons.mozilla.org/extensions/moreinfo.php?id=16">ChatZilla</a><br />A complete, fully + functional, easy-to-use IRC client which runs from Firefox.</li> + <li><a href="https://addons.mozilla.org/extensions/moreinfo.php?id=684">FireFTP</a><br />Fully integrated FTP + client.</li> +</ul> +<p>There are actually many more extensions available from either the Firefox website or other portals which can be very + useful, depending on your needs, but there are also <strong>Themes</strong> which can change Firefox's look and feel + completely, such as:</p> +<ul> + <li><a href="https://addons.mozilla.org/themes/moreinfo.php?id=7&application=firefox">Qute</a><br />This theme + inspired Firefox default theme: "Icons designed to be modern, dynamic and fresh, with attention paid to + usability and comfort over extended use".</li> + <li><a href="https://addons.mozilla.org/themes/moreinfo.php?id=101&application=firefox">Silverskin</a><br />"Your + favourite browser with a silver skin (With the Qute icons by Arvid Axelsson)"</li> + <li><a href="https://addons.mozilla.org/themes/moreinfo.php?application=firefox&category=Popular&numpg=10&id=414">Saferfox + Xpanded</a><br />"A full skin theme with a modern aqua design"</li> + <li><a href="https://addons.mozilla.org/themes/moreinfo.php?application=firefox&category=Popular&numpg=10&id=213">Plastikfox + Crystal SVG</a><br />"Plastik style from KDE with Crystal SVG icons"</li> + <li><a href="https://addons.mozilla.org/themes/moreinfo.php?application=firefox&category=Popular&numpg=10&id=72">Noia + (eXtreme)</a><br />"This theme is based on the Noia2.0 icon set by Carlitus."</li> + <li><a + href="https://addons.mozilla.org/themes/moreinfo.php?application=firefox&category=Popular&numpg=10&id=548">Brushed</a>"A + Brushed and Polished Browser Interface."<br /><br />Again, many more themes are available. There's something for + everyone, really!</li> +</ul> + +<h3>To switch or not to switch?</h3> +<p>Yes, OK, it's not one of those questions which will keep you up at night, but for sure it can be a quandary. + Personally, I decided to switch to Firefox gradually, while still viewing some sites in IE, because I think this can + be a good compromise. The biggest problem is that even if Firefox supports Web standards (my friend said IE doesn't) + some sites do not. Especially before Firefox, web developers apparently had to create their sites to be viewed + correctly with Microsoft's browser. That's why some sites still have things like "This site is best viewed in + Internet Explorer 6", or even, in some cases, they'll suggest you download the latest IE version, because <em>your + browser is incompatible</em> when actually it's <em>the site</em> which is not compatible with [Web Standards]. +</p> +<p>Furthermore, [ActiveX] is a non-standardized proprietary technology which Microsoft uses to make software components + communicate and also provide complex functionalities necessary for things like Windows Update. Firefox doesn't + support ActiveX, which has been exploited many times in the past (and still now): tough luck. Nowadays, Microsoft + wants you to have Automatic Updates turned on, so you don't need to visit the Windows Update site anymore. As far as + I'm concerned, I'm not too bothered by that, but if someday I need ActiveX technology, there's already a [Mozilla + Project] on it. Final note: If you need to switch back to IE for some reason, the [IE View] extension can quickly + give you the opportunity to do so, opening IE to view the page you're visiting.</p> +<p>It looks like the Browser Wars have started again, and as a matter of fact, Firefox is becoming known for its + features, innovations and [community support]. Switching can be scary, and people can try forcing you to do it, but + you shouldn't listen to them: don't start using Firefox just because "it's cool" or "everybody uses it"; try it + first, understand how it works, and spend time learning it, because it just might be worth it.</p> +<p>One thing is certain: The existence of IE lovers is debatable, but there are over [170 million] Firefox lovers. Go + [get it]!</p>
@@ -4,4 +4,163 @@ content-type: article
timestamp: 1141476813 tags: "internet|review|web20" ----- -Social Bookmarking[1] is not something <em>new</em> anymore; in fact, some people say they've seen too much of it already (imagine that!). One of the worst things - or best, depending on your point of view - of the whole Web 2.0[2] hype is that everything evolves at least ten times faster than it did in good ol' Web 1.0 (if you let me use the term): there are <em>many, many more</em> web pages created everyday by literally <em>anyone</em>, from web developers to total newcomers to the Web, to amateurs who just want to share their content because it's 'cool'.<br />However, this is not a rant. Web 2.0 is inevitably going to become more and more user friendly, and you can't do anything about it. Why? Because it pays. Who's most likely to click on the flashy banner on page X featuring product Y not knowing that by doing so company Z will get a penny: your grandmother who is just now learning how to use the Internet or your brother who's majoring in computer science?<br />However, this is not necessarily a bad thing. I strongly believe that the Internet becomes a much more user-friendly place everyday, and, to put it bluntly, the web developers and companies who understand this will become popular and make money.<br /><br />I remember when I first read about social bookmarking: people were screaming here and there that you <em>had to</em> share your bookmarks on the Net, and this 'delicious'[3] thing was getting more and more popular. Then it became 'delirious'[4], and it was <em>better</em>, because it also meant <em>free</em>...then the shadows[5] came...<br />I was never a big fan of the whole concept, I admit, but an old friend of mine from a community[6] turned up and asked me to try a new website he coded in <em>Rails</em>[7]: a new social bookmarking service, simple to use and free: ma.gnolia[8].<br />I immediately felt the impulse to reply (as this happened on IRC[9])<em>"i.dont.give.a.sh.**"</em>. I really didn't want to try <em>yet another</em> social bookmarking thing, as I had had enough of it even before I started to grasp the whole concept properly. Hoever, since the guy is a friend of mine whom I respect a lot, especially for his skills and knowledge, I decided to give ma.gnolia a try, and here's what happened.<br /><br /><h3>A website that <em>smells good</em></h3><br />One of the things any Web 2.0 business cannot afford to overlook is the design and user interface of their product. It <em>does</em> matter! If you want to please your customers, make something that looks good. This is not a new idea at all[10], and it has been shown to work in many situations.<br />The first impression I had about the ma.gnolia website was similar to the one I had when visiting CSSZenGarden[11] for the first time: <em>code is poetry</em>. I particularly like the latest trend in web design, which preaches simplicity, functionality, clean-looking pages, xHMTL+CSS instead of other assorted bloat, pastel colors, rounded corners, and so on, and there are no rounded corners in ma.gnolia.<br />The ma.gnolia website succeeds in making the visitor feel comfortable: it doesn't clutter the page with pointless images or weird widgets, but limits itself to only the essential items needed for usability - logo, banner, essential navigation (bookmarks, tags, people, groups, messages, profile, support and tools), content, a few well placed and unobtrusive images and icons, and a footer with the same usual boring-but-necessary links (copyright, about, terms of service, privacy policy, contact us), nothing more. What else do you need?<br />People might disagree, of course, and it's certainly not the answer for all tastes: there are some people who really can't stand 'plain' websites, and they think that the whole philosophy is pointless: <em>De gustibus non est disputandum</em> (There is no accounting for taste). We had the same concerns two thousand years ago and the Romans got it right. Even the Romans would have agreed that ma.gnolia is easy to use, too plain or not.<br /><br /><h3>Quick features overview</h3> <br />The obvious first step before starting to use ma.gnolia is signing up for a (free) account. Right? Wrong. For non-committers, or casual, let's-try-it-and-see-what-happens users there's a (free) trial account. You can start using fully functional ma.gnolia right away, but unless you register, nothing you do will be permanent. This seems to be a new Web 2.0 trend as well; before, you needed to make everything free to get people's attention, now it must be free <em>and</em> not require registration. Makes perfect sense.<br /><br /><em><span style="text-decoration:underline;">Adding bookmarks</span></em><br />Trial or not, you can start adding bookmarks right away through the form on the front page, which is simple enough. As long as you didn't discover bookmarks (or <em>favorites</em> for the browser-impaired) the day before yesterday, you probably already have your little collection of bookmarks meticulously catalogued in many different folders. Well, you can import them into ma.gnolia in a few very easy steps, and that, believe me, will save time. Some people may think I'm wasting my time stating the obvious here, but when I tried del.icio.us the import feature wasn't available, and this was enough to make me walk away.<br /> <br />'Casual user', 'non-web-savvy', 'non-geeks': ma.gnolia obviously targets these types of people. Everything on the site is well-documented and easy to use. Ma.gnolia's project manager said in a recent interview[13]:<br /><br /><fieldset><blockquote><br /><em>[...] The rest of us muddle along for about 30 seconds, and if we still don't get it and aren't enjoying the experience, we leave, never to return. To avoid that fate -- to make the complex simple -- our lead IA Tanya Rabourn put in the hours and the iterations needed to make Ma.gnolia comprehensible to the non- expert. </em><br /></blockquote></fieldset><br /><br />This makes sense to me: Web 2.0 seems to be more user friendly, simply because a lot of non-geeks are browsing the web everyday and clicking on adverts.<br /><br />Once you import all your bookmarks, you'll have an almost exact copy of your bookmarks collection, now available online! If you don't want to share them, because you believe in anti-social bookmarking or you just want to have a backup, you can import all your bookmarks as "private", and you can toggle the status by clicking <img src="http://ma.gnolia.com/images/icons/privacy-on.gif" alt="" /> or <img src="http://ma.gnolia.com/images/icons/privacy-off.gif" alt="" />, whenever you like: the magic of Ajax[14] will do the rest. <br />You can also rate your bookmarks from one to five stars, but <em>only</em> yours: ma.gnolia is not a pointless competition to be the one who links the most and best websites.<br /><br /><em>What if I want to delete a bookmark?</em> Quick hint: <img src="http://ma.gnolia.com/images/icons/delete.gif" alt="" /><br /><br /><em><span style="text-decoration:underline;">Yes, you can tag as much as you like</span></em><br />No, there are no folders. Forget it. For me it started with Gmail[15] and it was shocking enough: there are no folders, but you can tag your messages. This can be disorienting for some, but once you have overcome the initial trauma, you will realize that tags can be better than folders in some cases. At any rate, Web 2.0 uses tags everywhere, so you'd better get used to it. A tag is basically a virtual label you can put on something - here, a bookmark - to make it belong to a defined group. Tags normally don't have a hierarchy like folders, and each item can have more than one tag. Simple. <br /><br />Unfortunately, you can't directly tag (or rate) bookmarks that you add from the main page, but since you'll normally be using some sort of <em>bookmarklet</em> for Ma.gnolia, it doesn't really matter. Also, at the moment, once you create a tag you can't rename it, but this feature will be added soon.<br /><br /><br /><em><span style="text-decoration:underline;">Connecting people</span></em><br />If you tried some other social bookmarking services before and you really enjoy the philosophy behind it, you'll be pleased to know that Ma.gnolia is even more social than others. When you register an account you can optionally disclose your real name, age, and gender, add an avatar, a webpage and so on, and you can create your own profile, just like anywhere else on the Internet.<br />Furthermore, Ma.gnolia allows <em>groups</em>: you can create, join, and leave a group of bookmarkers who share the same interests as you. Why would you want to do this? The answer to that question is simple and self-evident: because what is enjoyed by one person will likely be enjoyed by other people who share the same interests. Once you are part of a group you can send a bookmark to that particular group (<img src="http://ma.gnolia.com/images/icons/send-to-group.gif" alt="" />), or at least that's that ideal; if you just want to send a particular address to only one person you can do so (<img src="http://ma.gnolia.com/images/icons/send-to-contact.gif" alt="" />), provided that that person is already in your contact list, and to do so there's a specific button (not icon this time) in everyone's profile. <br />You'll notice a <em>Messages</em> link in the main navigation panel, and that's exactly where the bookmark (and only the bookmark) will go once you send it to your friend. At the moment you <em>cannot</em> send a traditional message to someone, unless you send it along with a bookmark. This might change in the future, depending on user feedback, as well as the addition of some place to actually have some sort of discussion and comments - or so I've been told.<br />I'd be happy to see more community-specific functionalities being implemented, but there are some inevitable risks if Ma.gnolia decides to take this road. I'll let them decide, but for now, Ma.gnolia is more social than other services, but less social than, say, a discussion board.<br /><br /><em><span style="text-decoration:underline;">Pages, stats and search</span></em><br />Perhaps one of the coolest features Ma.gnolia offers is the possibility of saving pages online. When you bookmark a web page, Ma.gnolia attempts to save an exact copy of that page on its server, so that you can access that resource even if it is deleted at the source, like an improved personal version of the WayBack Machine!<br />Two things need to be said - and yes, they might be obvious for some people:<br />1) Pages which require some sort of authentication cannot be saved; and<br />2) Saved copies cannot be viewed by people other than yourself.<br /><br />Another feature is the ability to access basic statistics regarding bookmarks and people: most viewed or most recent bookmarks, hot groups, hot tags, as well as featured linkers, i.e., people who Ma.gnolia chooses to be displayed in some pages. They are generally well-known members or institutions that use the service.<br />However, the search function disappointed me a little bit. There is a very entertaining story on their About page[17] on how Social Bookmarking is supposed to help people to find things on the Web, and the last part in particular is pretty informative:<br /><fieldset><blockquote>[...]In Ma.gnolia, people can save website addresses (or the 'url') and "tag" them with that words they think people need to find them in a search. That way, when somebody else searches a term, the websites that show up are only the ones that are good enough for real people to want to find them.<br />With Ma.gnolia, that's really all the work you have to do. Organizing is a thing of the past, since tags do the organizing for you. Magnolia will even suggest when to give certain tags to bookmarks based on how you tag other bookmarks, to keep things consistent and up to date. And since it's a website, your Ma.gnolia bookmark collection can be reached by you and your friends from anywhere, any time.<br />If searching was the first day of the web, finding what you want must be the second. Ready to discover how Found is the New Search? Give Ma.gnolia a try, and see what we mean.</blockquote></fieldset><br /><br />It seemed logical, so I tried it myself. I searched for "ajax framework", and nine of the ten results on the first page led to this document:<br /><br />ASP.NET AJAX framework comparison [18]<br /><br />This is undoubtedly an interesting document, but not what I was looking for, and I certainly didn't expect almost the entire first page to consist of the same document. I asked for an explanation of this apparently odd behaviour, and it appears that the developer is aware of this, and explained me why this <em>must</em> happen: if someone saved <a href="http://www.zzine.org">www.zzine.org</a> as "zZine Magazine" and another person saved it as "Microsoft", someone searching for Microsoft - provided that we don't show duplicate links anymore, will find a link to zZine Magazine as one of the first results, and it would not be relevant. This is due to the fact that the system searches tags, titles, and descriptions even if the URL is the same, or known. Still, I'd try to limit the number of identical results, at least by grouping together entries which have the same URL and title, or something along these lines.<br /><br /><br /><em><span style="text-decoration:underline;">Tools to play with</span></em><br />There's a whole section of the site devoted to <em>Support and Tools</em>, to make the whole thing even more user friendly. Regarding the support part, even the greenest of visitors to a social bookmarking site will have no problems, as everything is explained in very simple terms, and full of examples and tutorials. This can be an annoying read if you already know how social bookmarking works and if you're used to similar services, so my advice is: <em>geeks stay out of this section</em> - it will save pointless rants.<br />The upside of this is that if I send someone who has <em>never</em> used something like this before, he'll like it and definitely start using it; if you try this with del.icio.us, you'll have one less non-geek friend.<br /><br />Regarding the tools subsection, I already mentioned the excellent bookmark importer (which worked perfectly, but should probably warn in case a page cannot be imported due to a 404 error). Ma.gnolia also offers:<br /><br />- a del.icio.us importer<br />- del.icio.us to ma.gnolia GreaseMonkey script - to keep your del.icio.us and ma.gnolia synchronized<br />- a link roll generator, to share your bookmarks on your blog or page<br />- a universal bookmark exporter<br /><br />Additionally, and most importantly, various bookmarklets[19] which allow you to instantly add a bookmark to your ma.gnolia collection with a single click, just like adding an ordinary bookmark. Not new, but useful and essential.<br /><br /><br /><h3>Conclusions</h3><br />Ma.gnolia is definitely the best social bookmarking solution currently available for non-web savvy users. If you don't like having to spend more than five minutes figuring out how social bookmarking works, Ma.gnolia will become your new home, and you'll get addicted to it. I don't consider myself a total geek, and I honestly started using Ma.gnolia because it's simple and does the job...<br /><br />...or perhaps the website is just so easy to use and nice to navigate that makes it harder to browse away!<br /><br /><br /><h3>Notes</h3> <br />[1]Social Bookmarking, Wkipedia: <a href="http://en.wikipedia.org/wiki/Social_bookmarking">http://en.wikipedia.org/wiki/Social_bookmarking</a><br />[2]Web 2.0, Wikipedia: <a href="http://en.wikipedia.org/wiki/Web_2.0">http://en.wikipedia.org/wiki/Web_2.0</a><br />[3]del.icio.us Social bookmarking: <a href="http://del.icio.us">http://del.icio.us</a><br />[4]de.lirio.us Social bookmarking: <a href="http://de.lirio.us">http://de.lirio.us</a><br />[5]Shadows Social Bookmarking: <a href="http://www.shadows.com">http://www.shadows.com</a><br />[6]CyberArmy Community: <a href="http://www.cyberarmy.net">http://www.cyberarmy.net</a><br />[7]Ruby on Rails framework: <a href="http://www.rubyonrails.org">http://www.rubyonrails.org</a><br />[8]Ma.gnolia Social Bookmarking: <a href="http://ma.gnolia.com">http://ma.gnolia.com</a><br />[9]Internet Relay Chat, wikipedia: <a href="http://en.wikipedia.org/wiki/Internet_Relay_Chat">http://en.wikipedia.org/wiki/Internet_Relay_Chat</a><br />[11]Windows XP Official Page: <a href="http://www.microsoft.com/windowsxp/default.mspx">http://www.microsoft.com/windowsxp/default.mspx</a><br />[12]CSSZenGarden: <a href="http://www.csszengarden.com/">http://www.csszengarden.com/</a><br />[13]Darren Barefoot's Blog, Sugar Ma.gnolia, Blossoms Blooming:<br /> <a href="http://www.darrenbarefoot.com/archives/2006/02/sugar-magnolia-blossoms-blooming.html">http://www.darrenbarefoot.com/archives/2006/02/sugar-magnolia-blossoms-blooming.html</a><br />[14]Ajax, Wikipedia: <a href="http://en.wikipedia.org/wiki/Ajax_%28programming%29">http://en.wikipedia.org/wiki/Ajax_%28programming%29</a><br />[15]Google Mail: <a href="http://mail.google.com/">http://mail.google.com/</a><br />[16]Archive.org: <a href="http://www.archive.org/">http://www.archive.org/</a><br />[17]Ma.gnolia - About: <a href="http://ma.gnolia.com/about">http://ma.gnolia.com/about</a><br />[18] Daniel Zeiss, "ASP.NET AJAX framework comparison": <br />http://www.daniel-zeiss.de/AJAXComparison/Results.htm<br />[19]Ma.gnolia - Bookmarkles directory: <a href="http://ma.gnolia.com/support/bookmarklets">http://ma.gnolia.com/support/bookmarklets</a><br /> +Social Bookmarking[1] is not something <em>new</em> anymore; in fact, some people say they've seen too much of it +already (imagine that!). One of the worst things - or best, depending on your point of view - of the whole Web 2.0[2] +hype is that everything evolves at least ten times faster than it did in good ol' Web 1.0 (if you let me use the term): +there are <em>many, many more</em> web pages created everyday by literally <em>anyone</em>, from web developers to total +newcomers to the Web, to amateurs who just want to share their content because it's 'cool'.<br />However, this is not a +rant. Web 2.0 is inevitably going to become more and more user friendly, and you can't do anything about it. Why? +Because it pays. Who's most likely to click on the flashy banner on page X featuring product Y not knowing that by doing +so company Z will get a penny: your grandmother who is just now learning how to use the Internet or your brother who's +majoring in computer science?<br />However, this is not necessarily a bad thing. I strongly believe that the Internet +becomes a much more user-friendly place everyday, and, to put it bluntly, the web developers and companies who +understand this will become popular and make money.<br /><br />I remember when I first read about social bookmarking: +people were screaming here and there that you <em>had to</em> share your bookmarks on the Net, and this 'delicious'[3] +thing was getting more and more popular. Then it became 'delirious'[4], and it was <em>better</em>, because it also +meant <em>free</em>...then the shadows[5] came...<br />I was never a big fan of the whole concept, I admit, but an old +friend of mine from a community[6] turned up and asked me to try a new website he coded in <em>Rails</em>[7]: a new +social bookmarking service, simple to use and free: ma.gnolia[8].<br />I immediately felt the impulse to reply (as this +happened on IRC[9])<em>"i.dont.give.a.sh.**"</em>. I really didn't want to try <em>yet another</em> social bookmarking +thing, as I had had enough of it even before I started to grasp the whole concept properly. Hoever, since the guy is a +friend of mine whom I respect a lot, especially for his skills and knowledge, I decided to give ma.gnolia a try, and +here's what happened.<br /><br /> +<h3>A website that <em>smells good</em></h3><br />One of the things any Web 2.0 business cannot afford to overlook is +the design and user interface of their product. It <em>does</em> matter! If you want to please your customers, make +something that looks good. This is not a new idea at all[10], and it has been shown to work in many situations.<br />The +first impression I had about the ma.gnolia website was similar to the one I had when visiting CSSZenGarden[11] for the +first time: <em>code is poetry</em>. I particularly like the latest trend in web design, which preaches simplicity, +functionality, clean-looking pages, xHMTL+CSS instead of other assorted bloat, pastel colors, rounded corners, and so +on, and there are no rounded corners in ma.gnolia.<br />The ma.gnolia website succeeds in making the visitor feel +comfortable: it doesn't clutter the page with pointless images or weird widgets, but limits itself to only the essential +items needed for usability - logo, banner, essential navigation (bookmarks, tags, people, groups, messages, profile, +support and tools), content, a few well placed and unobtrusive images and icons, and a footer with the same usual +boring-but-necessary links (copyright, about, terms of service, privacy policy, contact us), nothing more. What else do +you need?<br />People might disagree, of course, and it's certainly not the answer for all tastes: there are some people +who really can't stand 'plain' websites, and they think that the whole philosophy is pointless: <em>De gustibus non est + disputandum</em> (There is no accounting for taste). We had the same concerns two thousand years ago and the Romans +got it right. Even the Romans would have agreed that ma.gnolia is easy to use, too plain or not.<br /><br /> +<h3>Quick features overview</h3> <br />The obvious first step before starting to use ma.gnolia is signing up for a +(free) account. Right? Wrong. For non-committers, or casual, let's-try-it-and-see-what-happens users there's a (free) +trial account. You can start using fully functional ma.gnolia right away, but unless you register, nothing you do will +be permanent. This seems to be a new Web 2.0 trend as well; before, you needed to make everything free to get people's +attention, now it must be free <em>and</em> not require registration. Makes perfect sense.<br /><br /><em><span + style="text-decoration:underline;">Adding bookmarks</span></em><br />Trial or not, you can start adding +bookmarks right away through the form on the front page, which is simple enough. As long as you didn't discover +bookmarks (or <em>favorites</em> for the browser-impaired) the day before yesterday, you probably already have your +little collection of bookmarks meticulously catalogued in many different folders. Well, you can import them into +ma.gnolia in a few very easy steps, and that, believe me, will save time. Some people may think I'm wasting my time +stating the obvious here, but when I tried del.icio.us the import feature wasn't available, and this was enough to make +me walk away.<br /> <br />'Casual user', 'non-web-savvy', 'non-geeks': ma.gnolia obviously targets these types of +people. Everything on the site is well-documented and easy to use. Ma.gnolia's project manager said in a recent +interview[13]:<br /><br /> +<blockquote><br /><em>[...] The rest of us muddle along for about 30 seconds, and if we still don't get it and aren't + enjoying the experience, we leave, never to return. To avoid that fate -- to make the complex simple -- our lead + IA Tanya Rabourn put in the hours and the iterations needed to make Ma.gnolia comprehensible to the non- expert. + </em><br /></blockquote><br /><br />This makes sense to me: Web 2.0 seems to be more user friendly, simply because a +lot of non-geeks are browsing the web everyday and clicking on adverts.<br /><br />Once you import all your bookmarks, +you'll have an almost exact copy of your bookmarks collection, now available online! If you don't want to share them, +because you believe in anti-social bookmarking or you just want to have a backup, you can import all your bookmarks as +"private", and you can toggle the status by clicking <img src="http://ma.gnolia.com/images/icons/privacy-on.gif" + alt="" /> or <img src="http://ma.gnolia.com/images/icons/privacy-off.gif" alt="" />, whenever you like: the magic of +Ajax[14] will do the rest. <br />You can also rate your bookmarks from one to five stars, but <em>only</em> yours: +ma.gnolia is not a pointless competition to be the one who links the most and best websites.<br /><br /><em>What if I + want to delete a bookmark?</em> Quick hint: <img src="http://ma.gnolia.com/images/icons/delete.gif" + alt="" /><br /><br /><em><span style="text-decoration:underline;">Yes, you can tag as much as you + like</span></em><br />No, there are no folders. Forget it. For me it started with Gmail[15] and it was shocking +enough: there are no folders, but you can tag your messages. This can be disorienting for some, but once you have +overcome the initial trauma, you will realize that tags can be better than folders in some cases. At any rate, Web 2.0 +uses tags everywhere, so you'd better get used to it. A tag is basically a virtual label you can put on something - +here, a bookmark - to make it belong to a defined group. Tags normally don't have a hierarchy like folders, and each +item can have more than one tag. Simple. <br /><br />Unfortunately, you can't directly tag (or rate) bookmarks that you +add from the main page, but since you'll normally be using some sort of <em>bookmarklet</em> for Ma.gnolia, it doesn't +really matter. Also, at the moment, once you create a tag you can't rename it, but this feature will be added +soon.<br /><br /><br /><em><span style="text-decoration:underline;">Connecting people</span></em><br />If you tried some +other social bookmarking services before and you really enjoy the philosophy behind it, you'll be pleased to know that +Ma.gnolia is even more social than others. When you register an account you can optionally disclose your real name, age, +and gender, add an avatar, a webpage and so on, and you can create your own profile, just like anywhere else on the +Internet.<br />Furthermore, Ma.gnolia allows <em>groups</em>: you can create, join, and leave a group of bookmarkers who +share the same interests as you. Why would you want to do this? The answer to that question is simple and self-evident: +because what is enjoyed by one person will likely be enjoyed by other people who share the same interests. Once you are +part of a group you can send a bookmark to that particular group (<img + src="http://ma.gnolia.com/images/icons/send-to-group.gif" alt="" />), or at least that's that ideal; if you just +want to send a particular address to only one person you can do so (<img + src="http://ma.gnolia.com/images/icons/send-to-contact.gif" alt="" />), provided that that person is already in your +contact list, and to do so there's a specific button (not icon this time) in everyone's profile. <br />You'll notice a +<em>Messages</em> link in the main navigation panel, and that's exactly where the bookmark (and only the bookmark) will +go once you send it to your friend. At the moment you <em>cannot</em> send a traditional message to someone, unless you +send it along with a bookmark. This might change in the future, depending on user feedback, as well as the addition of +some place to actually have some sort of discussion and comments - or so I've been told.<br />I'd be happy to see more +community-specific functionalities being implemented, but there are some inevitable risks if Ma.gnolia decides to take +this road. I'll let them decide, but for now, Ma.gnolia is more social than other services, but less social than, say, a +discussion board.<br /><br /><em><span style="text-decoration:underline;">Pages, stats and + search</span></em><br />Perhaps one of the coolest features Ma.gnolia offers is the possibility of saving pages +online. When you bookmark a web page, Ma.gnolia attempts to save an exact copy of that page on its server, so that you +can access that resource even if it is deleted at the source, like an improved personal version of the WayBack +Machine!<br />Two things need to be said - and yes, they might be obvious for some people:<br />1) Pages which require +some sort of authentication cannot be saved; and<br />2) Saved copies cannot be viewed by people other than +yourself.<br /><br />Another feature is the ability to access basic statistics regarding bookmarks and people: most +viewed or most recent bookmarks, hot groups, hot tags, as well as featured linkers, i.e., people who Ma.gnolia chooses +to be displayed in some pages. They are generally well-known members or institutions that use the service.<br />However, +the search function disappointed me a little bit. There is a very entertaining story on their About page[17] on how +Social Bookmarking is supposed to help people to find things on the Web, and the last part in particular is pretty +informative:<br /> +<blockquote>[...]In Ma.gnolia, people can save website addresses (or the 'url') and "tag" them with that words they + think people need to find them in a search. That way, when somebody else searches a term, the websites that show up + are only the ones that are good enough for real people to want to find them.<br />With Ma.gnolia, that's really all + the work you have to do. Organizing is a thing of the past, since tags do the organizing for you. Magnolia will even + suggest when to give certain tags to bookmarks based on how you tag other bookmarks, to keep things consistent and + up to date. And since it's a website, your Ma.gnolia bookmark collection can be reached by you and your friends from + anywhere, any time.<br />If searching was the first day of the web, finding what you want must be the second. Ready + to discover how Found is the New Search? Give Ma.gnolia a try, and see what we mean.</blockquote><br /><br />It +seemed logical, so I tried it myself. I searched for "ajax framework", and nine of the ten results on the first page led +to this document:<br /><br />ASP.NET AJAX framework comparison [18]<br /><br />This is undoubtedly an interesting +document, but not what I was looking for, and I certainly didn't expect almost the entire first page to consist of the +same document. I asked for an explanation of this apparently odd behaviour, and it appears that the developer is aware +of this, and explained me why this <em>must</em> happen: if someone saved <a + href="http://www.zzine.org">www.zzine.org</a> as "zZine Magazine" and another person saved it as "Microsoft", +someone searching for Microsoft - provided that we don't show duplicate links anymore, will find a link to zZine +Magazine as one of the first results, and it would not be relevant. This is due to the fact that the system searches +tags, titles, and descriptions even if the URL is the same, or known. Still, I'd try to limit the number of identical +results, at least by grouping together entries which have the same URL and title, or something along these +lines.<br /><br /><br /><em><span style="text-decoration:underline;">Tools to play with</span></em><br />There's a whole +section of the site devoted to <em>Support and Tools</em>, to make the whole thing even more user friendly. Regarding +the support part, even the greenest of visitors to a social bookmarking site will have no problems, as everything is +explained in very simple terms, and full of examples and tutorials. This can be an annoying read if you already know how +social bookmarking works and if you're used to similar services, so my advice is: <em>geeks stay out of this + section</em> - it will save pointless rants.<br />The upside of this is that if I send someone who has +<em>never</em> used something like this before, he'll like it and definitely start using it; if you try this with +del.icio.us, you'll have one less non-geek friend.<br /><br />Regarding the tools subsection, I already mentioned the +excellent bookmark importer (which worked perfectly, but should probably warn in case a page cannot be imported due to a +404 error). Ma.gnolia also offers:<br /><br />- a del.icio.us importer<br />- del.icio.us to ma.gnolia GreaseMonkey +script - to keep your del.icio.us and ma.gnolia synchronized<br />- a link roll generator, to share your bookmarks on +your blog or page<br />- a universal bookmark exporter<br /><br />Additionally, and most importantly, various +bookmarklets[19] which allow you to instantly add a bookmark to your ma.gnolia collection with a single click, just like +adding an ordinary bookmark. Not new, but useful and essential.<br /><br /><br /> +<h3>Conclusions</h3><br />Ma.gnolia is definitely the best social bookmarking solution currently available for non-web +savvy users. If you don't like having to spend more than five minutes figuring out how social bookmarking works, +Ma.gnolia will become your new home, and you'll get addicted to it. I don't consider myself a total geek, and I honestly +started using Ma.gnolia because it's simple and does the job...<br /><br />...or perhaps the website is just so easy to +use and nice to navigate that makes it harder to browse away!<br /><br /><br /> +<h3>Notes</h3> <br />[1]Social Bookmarking, Wkipedia: <a + href="http://en.wikipedia.org/wiki/Social_bookmarking">http://en.wikipedia.org/wiki/Social_bookmarking</a><br />[2]Web +2.0, Wikipedia: <a + href="http://en.wikipedia.org/wiki/Web_2.0">http://en.wikipedia.org/wiki/Web_2.0</a><br />[3]del.icio.us Social +bookmarking: <a href="http://del.icio.us">http://del.icio.us</a><br />[4]de.lirio.us Social bookmarking: <a + href="http://de.lirio.us">http://de.lirio.us</a><br />[5]Shadows Social Bookmarking: <a + href="http://www.shadows.com">http://www.shadows.com</a><br />[6]CyberArmy Community: <a + href="http://www.cyberarmy.net">http://www.cyberarmy.net</a><br />[7]Ruby on Rails framework: <a + href="http://www.rubyonrails.org">http://www.rubyonrails.org</a><br />[8]Ma.gnolia Social Bookmarking: <a + href="http://ma.gnolia.com">http://ma.gnolia.com</a><br />[9]Internet Relay Chat, wikipedia: <a + href="http://en.wikipedia.org/wiki/Internet_Relay_Chat">http://en.wikipedia.org/wiki/Internet_Relay_Chat</a><br />[11]Windows +XP Official Page: <a + href="http://www.microsoft.com/windowsxp/default.mspx">http://www.microsoft.com/windowsxp/default.mspx</a><br />[12]CSSZenGarden: +<a href="http://www.csszengarden.com/">http://www.csszengarden.com/</a><br />[13]Darren Barefoot's Blog, Sugar +Ma.gnolia, Blossoms Blooming:<br /> <a + href="http://www.darrenbarefoot.com/archives/2006/02/sugar-magnolia-blossoms-blooming.html">http://www.darrenbarefoot.com/archives/2006/02/sugar-magnolia-blossoms-blooming.html</a><br />[14]Ajax, +Wikipedia: <a + href="http://en.wikipedia.org/wiki/Ajax_%28programming%29">http://en.wikipedia.org/wiki/Ajax_%28programming%29</a><br />[15]Google +Mail: <a href="http://mail.google.com/">http://mail.google.com/</a><br />[16]Archive.org: <a + href="http://www.archive.org/">http://www.archive.org/</a><br />[17]Ma.gnolia - About: <a + href="http://ma.gnolia.com/about">http://ma.gnolia.com/about</a><br />[18] Daniel Zeiss, "ASP.NET AJAX framework +comparison": <br />http://www.daniel-zeiss.de/AJAXComparison/Results.htm<br />[19]Ma.gnolia - Bookmarkles directory: <a + href="http://ma.gnolia.com/support/bookmarklets">http://ma.gnolia.com/support/bookmarklets</a><br />
@@ -4,4 +4,285 @@ content-type: article
timestamp: 1134215626 tags: "review" ----- -Get a full comparative and analytical view of the HD-DVD and Blu-Ray disc formats. Why do we need them? Are they the perfect answer? Which one of them (if any...) will eventually take the throne? The answers to all these questions (and more) are inside! <br /><h3>The endless quest for space</h3><br />I remember when I showed a 3.5" floppy disk to my dad and he said, "That's so small, and it can store 1.44MB of information! That's over a million bytes!" He was used to working with big tapes of data that probably held much less, so I guess a floppy disk a big shock for him, at the time. <br /><br />When I got my first computer, it had a CD-ROM drive, and the CDs were supposed to hold 500MB of data. They eventually started supporting more, and got up to 900 in the end. Finally, we got DVDs, which are able to store up to 4.7GB of data, and once people noticed they could write another layer of data, the capacity doubled. <br /><br />Over the years, storage devices have evolve, and it seems now more than ever that mankind is on an endless "quest for space" - not with NASA (which nowadays is being much more careful before sending out a shuttle), trying to go where no one has gone before, but with a bunch of leading OEM companies, IT industries and Hollywood studios trying to write unbelievable amounts of information on a 12cm disk made out of plastic and other lesser known materials. <br /><br />Furthermore, despite me persuading my family to buy a "new" DVD player, the industry now claims that this relatively new commercial technology is going to be dead: apparently we'll soon have disks capable of holding 15-25 GB of data <em>per layer</em>, which will come to the aid of High Definition TeleVision (<a href="http://en.wikipedia.org/wiki/HDTV">HDTV</a>) which will deliver images at 1920x1080 pixels (versus 640x480 pixels on a normal DVD). This means that you'll be able to see - with your brand new HDTV-capable home theater - the imperfections of Jessica Alba's skin when she's dancing in <em><a href="http://www.imdb.com/title/tt0401792/">Sin City</a></em> if you look close enough, which brings up another question: "who wants this kind of technology?" - if nothing else, you'll have to pay a lot for it!<br /><br />As I previously stated, the evolution in storage media is unstoppable and yet necessary at the same time: having more storage space available proved to be a key factor for computer development.<br /><br /><br /><h3>A New War has Begun</h3><br />As the history of the computer industry has shown us, when the possibility of innovation arises, there's never just one group who tries it out. In the past, this led to the determination of two or more <em>de facto</em> standards by competitors promoting similar solutions. Perhaps the most familiar cases in the recent past were the introduction of the VHS and DVD formats. The first standard - for VHS - was adopted after a "war" against Sony's Betamax format - which was supposedly technologically superior - and the determining factor (or one of the main ones, anyway) was that Sony, "jealous" of its proprietary format, didn't want to license support for it to all the Original Equipment Manufactors (OEMs), while JVC and Matsushita [Panasonic]'s VHS licenses were basically given to anyone who even remotely suggested adopting the format. <br /><br />Sony was involved in another "war", for the successor of the CD format: they pushed for their Multimedia CD (MMCD), while Toshiba had their Super Density CD (SD). Perhaps because Sony was wary of another defeat, history didn't repeat itself this time, and the two manufacturers agreed to develop a hybrid format which is now widely known as the Digital Versatile (previously "Video") Disk, or more commonly, the DVD.<br /><br />However, once again, Sony is proposing its own format for next generation DVDs, called <a href="http://en.wikipedia.org/wiki/Blu-ray_Disc">Blu-Ray Disc</a> (BD) and once again, it's opposed by Toshiba (and others) with the High Density Digital Versatile Disk (HD-DVD). Both formats aim to increase space by using a blue laser for writing instead of the traditional red one used for DVDs. Other than that, the two formats are (for now) quite incompatible with each other as they use two different approaches to this same technology. Most of the following technical information is taken from an <a href="http://www.cdfreaks.com/article/186/">article</a> that appeared on CDfreaks.com.<br /><br /><br /><h3>The Contenders: HD-DVD</h3><br />Let's now examine the first of the two contenders to the "throne": High Density Digital Versatile Disk (<a href="http://www.hddvd.org/hddvd/">HD-DVD</a>). This format was the one that appeared first and is mainly promoted by Toshiba, along with NEC and Sanyo. The capacity is around 15GB per layer and it could be defined - for its structure mainly - as an application of newer laser technology to the older DVD format. <br /><br /><em><span style="text-decoration:underline;">Disk structure</span></em><br />As the diameter of the disk is the same and the information is coded roughly in the same way, the areas of improvement obviously reside in optimizing the physical space of the disk to hold more information. As with CDs and DVDs, data on a disk is written in tracks following a spiral path, from the center to the border of the support: in a CD, the gap between the two rows of the track (the <em>Track Pitch</em>) was 780nm; then it was reduced for DVDs (650nm), and again for HD-DVDs (400nm), so that we can store more information in the same space (because there are more rows). In order to achieve this, the laser must be more sensitive to be able to detect tracks correctly (that's why the laser is now blue; blue has a smaller wavelength), and the lens that gathers and concentrates the light needs to be changed. The measure that defines the shape (convexity) of the lens is called <em>Numerical Amplitude</em>: for CDs, it is 0.45, 0.6 for DVDs and 0.65 for HD-DVDs. These "tweaks" made more space available on the disk, and HD-DVDs, as previously stated, can store up to 15GB single layer and 30GB in double layer.<br /><br />Another characteristic that makes HD-DVDs similar to DVDs is the amount of the disk which is used for actual data storage and the amount which is used as "protective coating": HD-DVDs are 1.2mm thick, with 0.6mm used to store information and 0.6mm for protection.<br /><br /><br /><em><span style="text-decoration:underline;">Information processing and error correction</span></em><br />Data sent through a channel is subjected to "noise" of various kinds, and a similar phenomena occurs when writing information on a support, so various ways of preserving the data and correcting possible errors were developed. HD-DVD, in particular, uses a particular type of modulation called ETM (Eight to Twelve Modulation), which is once again similar to the technique used in CDs and DVDs: each byte of data is converted into twelve bits, and all bits set to 1 must satisfy an RLL(1,10) code (all '1' bits must be separated by at least 1 and at most 10 zeros).<br />Furthermore, disks must be able to bear scratches and other damage which could potentially corrupt bytes. Personally, I found that CDs are much more scratch-proof than DVDs, partly due to the fact that when you scratch a DVD (don't do it, just trust me!) more bytes get corrupted because of a higher data concentration: imagine what will happen now with 3-5x more data in the same space!<br />HD-DVD has the same correction techniques and data containers as the DVD format, the only exception being that the <a href="http://en.wikipedia.org/wiki/Error-correcting_code">ECC</a> blocks on HD-DVDs are twice as large, resulting in a longer correctable burst error length (7.1mm, where DVD is about 6mm).<br /><br /><br /><em><span style="text-decoration:underline;">Writing formats and copy protection</span></em><br />Even though HD-DVD has so far been quite similar to DVD (except for the obvious differences in laser, lens, and track pitch caused by the technology), there's an exception concerning the Rewritable format: it can hold more data than the ROM format (20GB instead of 15). This has been achieved by employing some technologies used in DVD-RAM. Despite the improvement, it might represent a problem for OEMs, because it makes HD-DVD RW handling totally different from the read-only format.<br /><br />For protection against piracy and illegal copying in general, HD-DVD format abandons the Content Scrambling System (CSS) used in DVDs (which has been shown to be unsuccessful) in favour of AACS (Advanced Access Content System), which uses a completely different key scheme.<br /> <br />AACS has been introduced for both HD-DVD and Blu Ray formats, and it involves the so-called "device keys": a unique key is assigned to each player's model, and before playing a protected disk, the player will have to retrieve its key (encoded in a three-way tree on the disk). Obviously, if a particular key is cracked, the manufacturers will be informed and will update the key in newer disks (which won't play in the cracked player at all). The technology is quite controversial at the moment, because "protection" is achieved at a high price: if someone cracks the key of your player, it simply won't play newer HD-DVDs, even if you weren't actually involved in any illegal activity. Solutions are currently being debated.<br /><br /><br /><br /><h3>The Contenders: Blu-Ray Disks</h3> <br /><br />Where Toshiba's HD-DVD adopted a somewhat conservative strategy, basing itself more or less on the DVD standard, Sony decided to use a much more experimental approach for its <a href="http://www.bluraydisc.com/">Blu-Ray</a> (BD) format, which appears to be more technologically advanced and offer even more space. <br />Blu-Ray disks can hold up to 25GB of data per layer, and this represents a great leap over HD-DVD's 15GB, but this has been achieved at the price of compatibility. <br /><br /><br /><em><span style="text-decoration:underline;">Disk structure</span></em><br />In order to reach the capacity it does BD uses the same type of blue/violet laser of HD-DVD but - as a necessity - the <em>Numeric Amplitude</em> of the lens has been increased to 0.85 (vs. 0.65 on HD-DVD), and the <em>Track Pitch</em> has been decreased to 320nm, so the additional space is explained by noting that the distance between the spiral rows is even smaller!<br /><br />Furthermore, BD can vary the length of the "pits" where data is written; by reducing it, more space on the disk can be obtained. Currently BD has 3 sub-formats, corresponding to 3 different capacities (23.3, 25 and 27GB), and associated to three different pit lengths (160, 149, and 138nm respectively) while HD-DVD has a fixed pit length of 204nm.<br /><br />Another innovation was introduced regarding the amount of disk used for data and for protection: disks are still 1.2mm thick, but 1.1mm are used for data storage and only 0.1mm for the protective coating!<br /><br />This was necessary in order to achieve the improved values for NA and Track Pitch, because the laser goes through only 0.1mm of protection before reading the data, meaning it can be more sensitive, but this also means that BDs are MUCH more vulnerable to scratches than HD-DVDs. Luckily, TDK immediately announced a new hyper-resistant protective coating which can offer improved protection from scratches and still be 0.1mm thick. <br /><br /><br /><em><span style="text-decoration:underline;">Information processing and error correction</span></em><br />BD decided to adopt its own modulation system (instead of using ETM like HD-DVD), called "17PP". The acronym basically means that each "1" must be separated by 1-7 "0" bits [RLL(1,7)] and also that the modulated sequence must have the same parity as the original data plus additional rules.<br />Error correction is then achieved using two codes similar to the <a href="http://en.wikipedia.org/wiki/Reed-Solomon_code">Reed-Solomon</a> code: LDC (Long Distance Code) and BIS (Burst Indication Subcode). Without going into too much detail, these two proprietary techniques can achieve almost the same result as HD-DVD's ECC, being able to correct corrupted data up to more than 7mm, which is quite remarkable considering the particularly delicate disk structure.<br /><br /><br />Blu-Ray also introduces two new modulation methods: the first one is called ?MSK-cos? (Minimum Shift Keying ? cosine variant), which is a special frequency modulation, and the second one is called ?HMW? (Harmonic Modulated Wave), which consists of replacing parts of the sine wave with sawtooths.<br /><br /><em><span style="text-decoration:underline;">Copy protection</span></em><br /><br />BD originally proposed its own control system, BD-CPS, for copy protection, but recently seems to have opted for AACS. This means that the same situation arises for both formats: they are both planning on implementing an advanced exchange key-based system to fight piracy.<br /><br />As another anti-piracy method, both formats also introduce a sort of "signature" called a <em>Volume Identifier</em> which will be very difficult to duplicate on a cloned disk.<br /><br /><br /><h3>The World Takes Sides</h3><br /><br />After discussing the two formats sufficiently in depth, it's now possible to itemize the pros and cons of each format:<br /><br /><em><span style="text-decoration:underline;">HD-DVD</span></em><br />Pros:<br /><ul><br /><li>Backward compatibility with CD/DVD will be available soon</li><br /><li>Reduced production costs, both for disks and players - cheaper to buy</li><br /><li>Improved durability</li><br /><li>Available relatively soon on the market</li><br /></ul><br />Cons:<br /><ul><br /><li>Incompatible with the competitor's format</li><br /><li>Less space than competitor's format</li><br /></ul><br /><br /><em><span style="text-decoration:underline;">Blu-Ray</span></em><br />Pros:<br /><ul><br /><li>Backward compatibility with CD/DVD will be available soon</li><br /><li>More space than competitor's format</li><br /><li>Technologically more advanced, longer life-span</li><br /><li>Higher recording speed</li><br /></ul><br />Cons:<br /><ul><br /><li>Incompatible with the competitor's format</li><br /><li>More expensive to produce and to buy</li><br /><li>More vulnerable to scratches </li>(the TDK solution notwithstanding)<br /><li>Still relatively experimental</li><br /></ul><br /><br />At this point, HD-DVD seems to be the "natural" successor to the DVD format: it inherits already-tested technologies and offers acceptable improvements regarding capacity. On the other hand, Blu-Ray is an innovative alternative, which, while more technologically advanced, needs to be tested more fully and is more expensive because of its innovation. Manufacturers will have to have separate machinery to produce Blu-Ray disks, while it appears that only some tweaks in existing structures will be necessary to support HD-DVD production on a mass scale at contained prices.<br /><br />Obviously, all the industries with interests in these new magnetic supports took sides with one or the other format:<br /><br /><em>HD-DVD:</em>Toshiba, Sanyo, NEC, Paramount Pictures, Universal Pictures, New Line Cinema, Warner Bros Studios, Time Warner, and, apparently, <em><strong>Microsoft</strong></em>.<br /><br /><em>Blu-Ray:</em> DELL, HP, Hitachi, LG-Electronics, Mitsubishi Electric, Panasonic, Pioneer, Philips, Samsung, Sharp, Sony, TDK, Thomson, 20th Century Fox, Walt Disney, Texas Instruments, Sun Microsystems, Electronic Arts, and Vivendi Universal Games.<br /><br />HD-DVD is supported mainly by film studios (Paramount and Universal) and multimedia companies (Time Warner). This is expected, since these industries advocate a product which is cheap, tested, and reliable. On the other hand, Blu-Ray is supported by IT industries that see a new technology for improved capacity and high recording speed. However, Walt Disney and 20th Century Fox seem to support this format, and they represent a sizable share of the family entertainment movie business.<br /><br />Microsoft recently seemed to <a href="http://news.softpedia.com/news/Microsoft-Sides-With-Toshiba-Against-Sony-s-Blu-ray-3798.shtml">support HD-DVD</a> technology. This was predictable, at least to a certain extent: Microsoft and Toshiba have always had a strong and productive working relationship, and Microsoft is probably trying to oppose Sony, who will probably use Blu-Ray for its upcoming PlayStation 3. Microsoft will probably opt for HD-DVD for the XBox, but it's too soon to say, especially since the big names of video games (like EA) seem to support Blu-Ray.<br /><br /><br /><br /><h3>The End of the War</h3><br />So a new <em>Standards War</em> has begun, and it's still too soon to know how it will end. Recently, the possibility of a hybrid standard has seemed more plausible, even if Toshiba's format arrives on the market much sooner than Blu-Ray. Toshiba itself advocates a <a href="http://www.pcpro.co.uk/news/73241/hddvd-bluray-marriage-back-on.html">single standard</a>, but seems also keen on <em>seeing how it goes</em> first, when both the two products are on the market. <br /><br />Actually there's <a href="http://news.softpedia.com/news/The-chronicles-of-a-futile-battle-Blu-Ray-vs-HD-DVD-631.shtml">someone</a> who predicts a different ending for this war: no one format will win, especially if the "conflict" lasts for too long. There's a chance that <a href="http://www.techtree.com/techtree/jsp/article.jsp?article_id=57500">Holographic Versatile Disks</a> (HVD) will eventually destroy both contenders by offering, on the same disk, 1TB of space at 1Gbps transfer speed! <br />As a matter of fact, Japan's <a href="http://www.optware.co.jp/english/what_040823.htm">Optware Corp.</a> might be the revelation that <em>saves the world</em>... <br /> + + + +<p>Get a full comparative and analytical view of the HD-DVD and Blu-Ray disc formats. Why do we need them? Are they the + perfect answer? Which one of them (if any...) will eventually take the throne? The answers to all these questions + (and + more) are inside!</p> +<h3>The endless quest for space</h3> +<p>I remember when I showed a 3.5" floppy disk to my dad and he said, "That's so + small, and it can store 1.44MB of information! That's over a million bytes!" He was used to working with big tapes + of + data that probably held much less, so I guess a floppy disk a big shock for him, at the time.</p> +<p>When I got my + first computer, it had a CD-ROM drive, and the CDs were supposed to hold 500MB of data. They eventually started + supporting more, and got up to 900 in the end. Finally, we got DVDs, which are able to store up to 4.7GB of data, + and + once people noticed they could write another layer of data, the capacity doubled.</p> +<p>Over the years, storage + devices have evolved, and it seems now more than ever that mankind is on an endless "quest for space" - not with + NASA + (which nowadays is being much more careful before sending out a shuttle), trying to go where no one has gone before, + but + with a bunch of leading OEM companies, IT industries and Hollywood studios trying to write unbelievable amounts of + information on a 12cm disk made out of plastic and other lesser known materials.</p> +<p>Furthermore, despite me + persuading my family to buy a "new" DVD player, the industry now claims that this relatively new commercial + technology + is going to be dead: apparently we'll soon have disks capable of holding 15-25 GB of data per layer, which will + come to the aid of High Definition TeleVision (<a href="http://en.wikipedia.org/wiki/HDTV">HDTV</a>) which will + deliver + images at 1920x1080 pixels (versus 640x480 pixels on a normal DVD). This means that you'll be able to see - with + your + brand new HDTV-capable home theater - the imperfections of Jessica Alba's skin when she's dancing in <a + href="http://www.imdb.com/title/tt0401792/">Sin City</a> if you look close enough, which brings up another + question: "who wants this kind of technology?" - if nothing else, you'll have to pay a lot for it!</p> +<p>As I + previously stated, the evolution in storage media is unstoppable and yet necessary at the same time: having more + storage + space available proved to be a key factor for computer development.</p> +<h3>A New War has Begun</h3> +<p>As the history of the computer industry has shown us, when the possibility of + innovation arises, there's never just one group who tries it out. In the past, this led to the determination of two + or + more <em>de facto</em> standards by competitors promoting similar solutions. Perhaps the most familiar cases in the + recent past were the introduction of the VHS and DVD formats. The first standard - for VHS - was adopted after a + "war" + against Sony's Betamax format - which was supposedly technologically superior - and the determining factor (or one + of + the main ones, anyway) was that Sony, "jealous" of its proprietary format, didn't want to license support for it to + all + the Original Equipment Manufactors (OEMs), while JVC and Matsushita [Panasonic]'s VHS licenses were basically given + to + anyone who even remotely suggested adopting the format.</p> +<p>Sony was involved in another "war", for the + successor of the CD format: they pushed for their Multimedia CD (MMCD), while Toshiba had their Super Density CD + (SD). + Perhaps because Sony was wary of another defeat, history didn't repeat itself this time, and the two manufacturers + agreed to develop a hybrid format which is now widely known as the Digital Versatile (previously "Video") Disk, or + more + commonly, the DVD.</p> +<p>However, once again, Sony is proposing its own format for next generation DVDs, called <a + href="http://en.wikipedia.org/wiki/Blu-ray_Disc">Blu-Ray Disc</a> (BD) and once again, it's opposed by Toshiba + (and + others) with the High Density Digital Versatile Disk (HD-DVD). Both formats aim to increase space by using a blue + laser + for writing instead of the traditional red one used for DVDs. Other than that, the two formats are (for now) quite + incompatible with each other as they use two different approaches to this same technology. Most of the following + technical information is taken from an <a href="http://www.cdfreaks.com/article/186/">article</a> that appeared on + CDfreaks.com.</p> + + + +<h3>The Contenders: HD-DVD</h3> +<p>Let's now examine the first of the two contenders to the "throne": High Density + Digital Versatile Disk (<a href="http://www.hddvd.org/hddvd/">HD-DVD</a>). This format was the one that appeared + first + and is mainly promoted by Toshiba, along with NEC and Sanyo. The capacity is around 15GB per layer and it could be + defined - for its structure mainly - as an application of newer laser technology to the older DVD format.</p> +<p><em>Disk structure</em><br />As the diameter of the disk is + the same and the information is coded roughly in the same way, the areas of improvement obviously reside in + optimizing + the physical space of the disk to hold more information. As with CDs and DVDs, data on a disk is written in tracks + following a spiral path, from the center to the border of the support: in a CD, the gap between the two rows of the + track (the <em>Track Pitch</em>) was 780nm; then it was reduced for DVDs (650nm), and again for HD-DVDs (400nm), so + that + we can store more information in the same space (because there are more rows). In order to achieve this, the laser + must + be more sensitive to be able to detect tracks correctly (that's why the laser is now blue; blue has a smaller + wavelength), and the lens that gathers and concentrates the light needs to be changed. The measure that defines the + shape (convexity) of the lens is called <em>Numerical Amplitude</em>: for CDs, it is 0.45, 0.6 for DVDs and 0.65 for + HD-DVDs. These "tweaks" made more space available on the disk, and HD-DVDs, as previously stated, can store up to + 15GB + single layer and 30GB in double layer.</p> +<p>Another characteristic that makes HD-DVDs similar to DVDs is the + amount of the disk which is used for actual data storage and the amount which is used as "protective coating": + HD-DVDs + are 1.2mm thick, with 0.6mm used to store information and 0.6mm for protection.</p> +<p><em>Information processing and error correction</em><br />Data sent + through a channel is subjected to "noise" of various kinds, and a similar phenomena occurs when writing information + on a + support, so various ways of preserving the data and correcting possible errors were developed. HD-DVD, in + particular, + uses a particular type of modulation called ETM (Eight to Twelve Modulation), which is once again similar to the + technique used in CDs and DVDs: each byte of data is converted into twelve bits, and all bits set to 1 must satisfy + an + RLL(1,10) code (all '1' bits must be separated by at least 1 and at most 10 zeros).</p> +<p>Furthermore, disks must be able + to bear scratches and other damage which could potentially corrupt bytes. Personally, I found that CDs are much more + scratch-proof than DVDs, partly due to the fact that when you scratch a DVD (don't do it, just trust me!) more bytes + get + corrupted because of a higher data concentration: imagine what will happen now with 3-5x more data in the same + space!</p> +<p>HD-DVD has the same correction techniques and data containers as the DVD format, the only exception being + that the <a href="http://en.wikipedia.org/wiki/Error-correcting_code">ECC</a> blocks on HD-DVDs are twice as large, + resulting in a longer correctable burst error length (7.1mm, where DVD is about 6mm).</p> +<p><em>Writing formats and copy protection</em><br />Even though HD-DVD has + so far been quite similar to DVD (except for the obvious differences in laser, lens, and track pitch caused by the + technology), there's an exception concerning the Rewritable format: it can hold more data than the ROM format (20GB + instead of 15). This has been achieved by employing some technologies used in DVD-RAM. Despite the improvement, it + might + represent a problem for OEMs, because it makes HD-DVD RW handling totally different from the read-only + format.</p> +<p>For protection against piracy and illegal copying in general, HD-DVD format abandons the Content + Scrambling System (CSS) used in DVDs (which has been shown to be unsuccessful) in favour of AACS (Advanced Access + Content System), which uses a completely different key scheme.</p> +<p>AACS has been introduced for both HD-DVD and + Blu Ray formats, and it involves the so-called "device keys": a unique key is assigned to each player's model, and + before playing a protected disk, the player will have to retrieve its key (encoded in a three-way tree on the disk). + Obviously, if a particular key is cracked, the manufacturers will be informed and will update the key in newer disks + (which won't play in the cracked player at all). The technology is quite controversial at the moment, because + "protection" is achieved at a high price: if someone cracks the key of your player, it simply won't play newer + HD-DVDs, + even if you weren't actually involved in any illegal activity. Solutions are currently being + debated.</p> + + + +<h3>The Contenders: Blu-Ray Disks</h3> +<p>Where Toshiba's HD-DVD adopted a somewhat conservative strategy, + basing itself more or less on the DVD standard, Sony decided to use a much more experimental approach for its <a + href="http://www.bluraydisc.com/">Blu-Ray</a> (BD) format, which appears to be more technologically advanced and + offer even more space.</p> +<p>Blu-Ray disks can hold up to 25GB of data per layer, and this represents a great leap over + HD-DVD's 15GB, but this has been achieved at the price of compatibility.</p> +<p><em>Disk structure</em><br />In order to reach the capacity it does BD + uses the same type of blue/violet laser of HD-DVD but - as a necessity - the <em>Numeric Amplitude</em> of the lens + has + been increased to 0.85 (vs. 0.65 on HD-DVD), and the <em>Track Pitch</em> has been decreased to 320nm, so the + additional + space is explained by noting that the distance between the spiral rows is even smaller!</p> +<p>Furthermore, BD can + vary the length of the "pits" where data is written; by reducing it, more space on the disk can be obtained. + Currently + BD has 3 sub-formats, corresponding to 3 different capacities (23.3, 25 and 27GB), and associated to three different + pit + lengths (160, 149, and 138nm respectively) while HD-DVD has a fixed pit length of 204nm.</p> +<p>Another innovation + was introduced regarding the amount of disk used for data and for protection: disks are still 1.2mm thick, but 1.1mm + are + used for data storage and only 0.1mm for the protective coating!</p> +<p>This was necessary in order to achieve the + improved values for NA and Track Pitch, because the laser goes through only 0.1mm of protection before reading the + data, + meaning it can be more sensitive, but this also means that BDs are MUCH more vulnerable to scratches than HD-DVDs. + Luckily, TDK immediately announced a new hyper-resistant protective coating which can offer improved protection from + scratches and still be 0.1mm thick.</p> +<p><em>Information + processing and error correction</em><br />BD decided to adopt its own modulation system (instead of using + ETM like HD-DVD), called "17PP". The acronym basically means that each "1" must be separated by 1-7 "0" bits + [RLL(1,7)] + and also that the modulated sequence must have the same parity as the original data plus additional rules.</p> +<p>Error + correction is then achieved using two codes similar to the <a + href="http://en.wikipedia.org/wiki/Reed-Solomon_code">Reed-Solomon</a> code: LDC (Long Distance Code) and BIS + (Burst + Indication Subcode). Without going into too much detail, these two proprietary techniques can achieve almost the + same + result as HD-DVD's ECC, being able to correct corrupted data up to more than 7mm, which is quite remarkable + considering + the particularly delicate disk structure.</p> +<p>Blu-Ray also introduces two new modulation methods: the first + one is called ?MSK-cos? (Minimum Shift Keying ? cosine variant), which is a special frequency modulation, and the + second + one is called ?HMW? (Harmonic Modulated Wave), which consists of replacing parts of the sine wave with + sawtooths.</p> +<p><em>Copy protection</em><br />BD originally + proposed its own control system, BD-CPS, for copy protection, but recently seems to have opted for AACS. This means + that + the same situation arises for both formats: they are both planning on implementing an advanced exchange key-based + system + to fight piracy.</p> +<p>As another anti-piracy method, both formats also introduce a sort of "signature" called a + <em>Volume Identifier</em> which will be very difficult to duplicate on a cloned disk. +</p> + + + + +<h3>The World Takes Sides</h3> +<p>After discussing the two formats sufficiently in depth, it's now possible to + itemize the pros and cons of each format:</p> +<h3>HD-DVD</h3> +<p>Pros:</p> +<ul> + <li>Backward compatibility with CD/DVD will be available soon</li> + <li>Reduced production costs, both for disks and players - cheaper to buy</li> + <li>Improved durability</li> + <li>Available relatively soon on the market</li> +</ul> +<p>Cons:</p> +<ul> + <li>Incompatible with the competitor's format</li> + <li>Less space than competitor's format</li> +</ul> +<h3>Blu-Ray</h3> +<p>Pros:</p> +<ul> + <li>Backward compatibility with CD/DVD will be available soon</li> + <li>More space than competitor's format</li> + <li>Technologically more advanced, longer life-span</li> + <li>Higher recording speed</li> +</ul> +<p>Cons:</p> +<ul> + <li>Incompatible with the competitor's format</li> + <li>More expensive to produce and to buy</li> + <li>More vulnerable to scratches </li>(the TDK solution notwithstanding)<br /> + <li>Still relatively experimental</li> +</ul> +<p>At this point, HD-DVD seems to be the "natural" successor to the DVD format: it inherits already-tested + technologies and offers acceptable improvements regarding capacity. On the other hand, Blu-Ray is an innovative + alternative, which, while more technologically advanced, needs to be tested more fully and is more expensive because + of + its innovation. Manufacturers will have to have separate machinery to produce Blu-Ray disks, while it appears that + only + some tweaks in existing structures will be necessary to support HD-DVD production on a mass scale at contained + prices.</p> +<p>Obviously, all the industries with interests in these new magnetic supports took sides with one or + the other format:</p> +<ul> + <li><em>HD-DVD:</em>Toshiba, Sanyo, NEC, Paramount Pictures, Universal Pictures, New Line + Cinema, Warner Bros Studios, Time Warner, and, apparently, <em>Microsoft</em></li> + <li><em>Blu-Ray:</em> DELL, HP, Hitachi, LG-Electronics, Mitsubishi + Electric, Panasonic, Pioneer, Philips, Samsung, Sharp, Sony, TDK, Thomson, 20th Century Fox, Walt Disney, Texas + Instruments, Sun Microsystems, Electronic Arts, and Vivendi Universal Games.</li> +</ul> + +<p>HD-DVD is supported mainly by + film studios (Paramount and Universal) and multimedia companies (Time Warner). This is expected, since these + industries + advocate a product which is cheap, tested, and reliable. On the other hand, Blu-Ray is supported by IT industries + that + see a new technology for improved capacity and high recording speed. However, Walt Disney and 20th Century Fox seem + to + support this format, and they represent a sizable share of the family entertainment movie business.</p> +<p>Microsoft + recently seemed to <a + href="http://news.softpedia.com/news/Microsoft-Sides-With-Toshiba-Against-Sony-s-Blu-ray-3798.shtml">support + HD-DVD</a> technology. This was predictable, at least to a certain extent: Microsoft and Toshiba have always had + a + strong and productive working relationship, and Microsoft is probably trying to oppose Sony, who will probably use + Blu-Ray for its upcoming PlayStation 3. Microsoft will probably opt for HD-DVD for the XBox, but it's too soon to + say, + especially since the big names of video games (like EA) seem to support Blu-Ray.</p> +<h3>The End of the War</h3> +<p>So a new <em>Standards War</em> has begun, and it's still too soon to know how it will + end. Recently, the possibility of a hybrid standard has seemed more plausible, even if Toshiba's format arrives on + the + market much sooner than Blu-Ray. Toshiba itself advocates a <a + href="http://www.pcpro.co.uk/news/73241/hddvd-bluray-marriage-back-on.html">single standard</a>, but seems also + keen + on <em>seeing how it goes</em> first, when both the two products are on the market.</p> +<p>Actually there's <a + href="http://news.softpedia.com/news/The-chronicles-of-a-futile-battle-Blu-Ray-vs-HD-DVD-631.shtml">someone</a> + who + predicts a different ending for this war: no one format will win, especially if the "conflict" lasts for too long. + There's a chance that <a href="http://www.techtree.com/techtree/jsp/article.jsp?article_id=57500">Holographic + Versatile + Disks</a> (HVD) will eventually destroy both contenders by offering, on the same disk, 1TB of space at 1Gbps + transfer speed!</p> +<p>As a matter of fact, Japan's <a href="http://www.optware.co.jp/english/what_040823.htm">Optware + Corp.</a> might be the revelation that <em>saves the world</em>...</p>
@@ -23,13 +23,12 @@ profitable businesses in the history of Computer Science. But let's now examine how PageRank works.
<br /><br /><br /><strong>Deus ex machina</strong><br /> Google's co-founders kindly provided a short text summing up their innovative (and perhaps secret) technology[5]. In particular, one paragraph seems to offer a brief and simple explanation of how PageRank works:<br /> -<fieldset> - <blockquote><br /><em>PageRank relies on the uniquely democratic nature of the web by using its vast link structure - as an indicator of an individual page's value. In essence, Google interprets a link from page A to page B as - a vote, by page A, for page B. But, Google looks at more than the sheer volume of votes, or links a page - receives; it also analyzes the page that casts the vote. Votes cast by pages that are themselves - "important", weigh more heavily and help to make other pages "important."<br /></em></blockquote> -</fieldset><br /><br /> The first time I read this paragraph, I really experienced a feeling of admiration and ecstasy +<blockquote><br /><em>PageRank relies on the uniquely democratic nature of the web by using its vast link structure + as an indicator of an individual page's value. In essence, Google interprets a link from page A to page B as + a vote, by page A, for page B. But, Google looks at more than the sheer volume of votes, or links a page + receives; it also analyzes the page that casts the vote. Votes cast by pages that are themselves + "important", weigh more heavily and help to make other pages "important."<br /></em></blockquote> +<br /><br /> The first time I read this paragraph, I really experienced a feeling of admiration and ecstasy for these two enlightened minds who decided to bestow their priceless gift on the World Wide Web: a system which gives every page the due importance through a democratic system. Isn't it wonderful?<br /><br /> Of course there's (much) more to it than a short paragraph, and obviously this <em>explanation</em> wasn?t enough for those people (webmasters, SEO
@@ -275,63 +275,6 @@ claiming more than 70MB of RAM, while Firefox normally uses half the amount. Personally, I think it's an interesting
attempt to create a <em>perfect</em> browser, and it enriches Firefox with some new features which either are normally not available or require extensions, but it's not for me.</p> - - -<strong>Summing - up</strong><br /><br />As I said at the beginning (ruining all the suspense), there's no perfect browser; there's -nothing universally accepted by everyone because everyone does different things. Personally, I'd advise using Firefox -for general use, because it offers excellent compatibility, security and features. <br /><br />On the other hand, if you -don't like extensions and you just need something to browse the Internet quickly, without the hassle of having to -download additional components, go for Opera, although there are still some compatibility issues with it that need to be -fixed. <br /><br />For Windows-based geeks, I'd recommend K-meleon: it's fast, simple, effective, and gives you plenty -of things to play with to tweak almost every part of the browser. The project is not dead; a community of people are -using it and providing patches, even if the leading developer is not able to do so.<br /><br />Netscape still needs some -work, but it could be useful for quickly viewing a site on Firefox and IE, for example. It's also a little more -user-friendly than Firefox. Those who are already accustomed to Firefox, however, are more likely to stick with -it.<br /><br />Again, depending on what you do, what your needs are, and even your mood, one browser can be better than -others. Personally, I use a variety of browsers: Firefox mostly, but K-meleon and Opera as well, and I like this -combination as my <em>perfect browser</em>. What about you? <br /><br /><br /> - -<strong>Credits</strong><br />Thanks to -comet for providing appropriate thoughts and opinions regarding the browsers' security. <br /><br /><strong>Notes and - Resources</strong><br /><small><br />[1] Clarification about the 'Gecko' engine: <a - href="http://www.mozilla.org/newlayout/gecko.html">http://www.mozilla.org/newlayout/gecko.html</a><br />[2] 'One - Week with Firefox, its Extensions and Opera', OsNews.com, by Mart'n Marconcini <a - href="http://www.osnews.com/story.php?news_id=7562">http://www.osnews.com/story.php?news_id=7562</a><br />[3] - 'Firefox 1.5 vs Opera 8.5', SonSpring Journal, 09/22/2005 - <a - href="http://sonspring.com/journal/firefox-15-vs-opera-85">http://sonspring.com/journal/firefox-15-vs-opera-85</a><br />[4] - Evolt.com, Browser list - <a href="http://browsers.evolt.org/">http://browsers.evolt.org/</a><br />[5] - HowToCreate.com - Browser Speed Analysis -<a - href="http://www.howtocreate.co.uk/browserSpeed.html#winspeed">http://www.howtocreate.co.uk/browserSpeed.html#winspeed</a><br />[6] - 'Comparison of web browsers', Wikipedia page - <a - href="http://en.wikipedia.org/wiki/Comparison_of_web_browsers">http://en.wikipedia.org/wiki/Comparison_of_web_browsers</a><br />[7] - Slim Browser, Home Page - <a - href="http://www.flashpeak.com/sbrowser/">http://www.flashpeak.com/sbrowser/</a><br />[8] Maxthon, Home Page - - <a href="http://www.maxthon.com/">http://www.maxthon.com/</a><br />[9] AvantBrowser, Home Page - <a - href="http://www.avantbrowser.com/">http://www.avantbrowser.com/</a><br />[10] SeaMonkey Project, Hope Page - <a - href="http://www.mozilla.org/projects/seamonkey/">http://www.mozilla.org/projects/seamonkey/</a><br />[11] - StopIE.com - <a href="http://www.stopie.com/">http://www.stopie.com/</a>, BrowseHappy.com - <a - href="http://browsehappy.com/">http://browsehappy.com/</a><br />[12] Secunia vulnerabilities, Internet Explorer - - <a href="http://secunia.com/product/11/">http://secunia.com/product/11/</a><br />[13] Firefox Home Page - <a - href="http://www.mozilla.org/products/firefox/">http://www.mozilla.org/products/firefox/</a><br />[14] Spread - Firefox website - <a href="http://www.spreadfirefox.com/">http://www.spreadfirefox.com/</a><br />[15] Secunia - vulnerabilities, Mozilla Firefox - <a - href="http://secunia.com/product/4227/">http://secunia.com/product/4227/</a><br />[16] Opera Browser, Official - Website - <a href="http://www.opera.com/">http://www.opera.com/</a><br />[17] Opera becomes free, webpage - <a - href="http://www.opera.com/free">http://www.opera.com/free</a><br />[18] Opera and Firefox extensions - <a - href="http://virtuelvis.com/archives/2005/01/opera-and-firefox-extensions">http://virtuelvis.com/archives/2005/01/opera-and-firefox-extensions</a><br />[19] - How to add 'I'm feeling lucky' to Opera - <a - href="http://my.opera.com/community/forums/topic.dml?id=63620">http://my.opera.com/community/forums/topic.dml?id=63620</a><br />[20] - Writely.com, free online word processor - <a href="http://www.writely.com/">http://www.writely.com/</a><br />[21] - K-meleon Project, Sourceforge - <a - href="http://kmeleon.sourceforge.net/">http://kmeleon.sourceforge.net/</a><br />[22] Secunia vulnerabilities, - K-meleon - <a href="http://secunia.com/product/3684/">http://secunia.com/product/3684/</a><br />[23] Netscape - Browser, Home Page - <a href="http://browser.netscape.com/ns8/">http://browser.netscape.com/ns8/</a><br />[24] - 'Netscape fixes holes in 'security' browser', Zdnet - <a - href="http://www.zdnet.com.au/news/security/0,2000061744,39192767,00.htm">http://www.zdnet.com.au/news/security/0,2000061744,39192767,00.htm</a><br />[25] - Netscape 8 'breaks' IE, Zdnet - <a - href="http://news.zdnet.co.uk/software/applications/0,39020384,39200178,00.htm">http://news.zdnet.co.uk/software/applications/0,39020384,39200178,00.htm</a><br /></small><br /> - <h3>Summing up</h3> <p>As I said at the beginning (ruining all the suspense), there's no perfect browser; there's nothing universally accepted by everyone because everyone does different things. Personally, I'd advise using Firefox for general use,
@@ -4,4 +4,276 @@ content-type: article
timestamp: 1134215728 tags: "writing|internet" ----- -I always liked reading Shakespeare, and I always wanted to have a copy of every one of his plays, tragedies and sonnets on my bookshelf ready for consultation, but such things always seemed unrealistic because I had neither the space for them nor the time to find them all nor the money to spend on them when I did find them. <br />Now I can store the complete works of William Shakespeare directly on my mobile phone, and they take up as little as 1.4 MB compressed...<br /><strong>Origins</strong><br /><br />Even if you never heard the word ?e-book?[1] before, you can probably guess its meaning: <em>electronic book</em>, or a book in digital format. What you probably don't knoe is that people started copying books into digital format nearly as soon as computers were available to the public, and maybe even before: the first <em>e-book</em> was created in 1971.<br /><br />That year, a student at the University of Illinois named Michael Hart was given the equivalent of $100,000,000 (or $100,000, or $1,000,000 - there is no official estimation) in <em>computer time</em>. Basically, since he was friends with some of the operators at the Materials Research Lab, he was given an operator account on the Xerox Sigma V mainframe, which later became one of the 15 nodes that developed into the global network that eventually became the Internet. At that time, having that much computer time at your disposal was indeed a great privilege, and Hart felt that he had to use that time for something useful that could in theory generate a profit - not an easy task when you consider that only a limited amount of people in the world had access to a computer, and that those computers weren?t even connected together. <br /><br />Foreseeing an era where computers where interconnected and regular people had access to them, Michael Hart thought that virtually all texts and books could be made available in digital format, for free, to anyone who wanted to read them. Certainly, such a <em>project</em> seemed quite unrealistic and excessively time consuming at the time; nevertheless, he decided to start copying the first book himself, the Declaration of Independence of the United States, which he was carrying in his backpack.<br /><br />Project Gutenberg[2] was born with that one single text, and it has grown through the years. Today, there are more than 16,000 e-books available to download and read.<br /><br /><br /><strong>What is Project Gutenberg?</strong><br /><br />By that name, Michael Hart probably wanted to define the project?s scope and vision: an idea as revolutionary for the diffusion of literature as the invention of moveable type printing[3] in the 1450s. <br /><br />The mission of the project can be summarized as follows[4]:<br /><br /><div style="text-align: center;"><em> "To encourage the creation and distribution of eBooks."<br /> </em></div><br /><br />In order to achieve this, Project Gutenberg is set up such that <em>anyone</em> can contribute to it, in many different ways. It is run completely by volunteers, hundreds of people around the world who share the same ideals and believe that literature should be freely available to everyone at virtually no cost. <br /><br />The Internet serves this purpose magnificently: it is possible to download all of the over 16,000 free e-books from the Project Gutenberg website[5] in different formats and many different languages[6]!<br /><br />However, having such a large amount of books available within a few clicks can make people forget about how time consuming the process of making one single e-book is: originally, after acquiring a paper copy of the book, Gutenberg?s volunteers had to transcribe it themselves, typing every word from the beginning to the end. Then the book had to be checked for mistakes before it was accepted into the Project. <br /><br />Producing a single e-book can therefore take many people and many hours from beginning to end, and presumably this was one of the reasons why Project Gutenberg was criticized for being more of an utopian ideal than a tangible reality: every year since its creation people have doubted the project, accusing Hart of pursuing an impossible dream, and prophesying that fewer and fewer people would join the team and that there was no future for Project Gutenberg.<br /><br />Oddly enough, they were all wrong: not only is the Project still active today, but the number of books released every year has grown consistently over time, from a few dozen in the early days to thousands per year now.<br /><br /> More and more people became involved, partially because they share the same ideals and partially because it has always been easy to get involved[7]: Project Gutenberg strives to remove all the institutional barriers which could potentially interfere with members? motivation; they try not to impose any restrictions, and they don't support perfectionism. It is believed[8] that there shouldn?t be any <em>proper</em> or <em>standard</em> way to release e-books, but instead many different ways, to appeal to many tastes: the Project doesn?t support any particular standard for releasing ebooks, although it normally takes the simplest path. Therefore, the majority of the books are available in <em>Plain Vanilla ASCII</em>, i.e., texts are written using only ASCII characters, and bold, italicized or underlined words are capitalized instead. While this format has the most limitations, it is also the most portable.<br /><br />At this point, you might wonder why they don't just scan the original books, and make them available as image files or PDF files. While it would be much faster, it also has disadvantages, such as large file size and an inability to be displayed at particular resolutions; a scanned book probably wouldn't be readable on a PDA, mobile phone, or other equally small device. <br /><br />Nonetheless, scanners do play an important part nowadays in the process of making an e-book: texts are no longer copied manually if a printed edition already exists. Instead, they are scanned with OCR[9] and then proofread twice before being accepted. The (un)official procedure recommends scanning at least one page a day, having it proofread once by someone in charge of doing so (a ?junior? proofread), and then again by a more experienced member. This has undoubtedly sped up the process.<br /><br /><br /><strong>Not All Books Are Equal (for now)</strong><br /><br />By looking at some of the titles available on Project Gutenberg, you?ll notice that most of them are <em>classics</em> or relatively old works: for example, you won?t find the latest <em>Harry Potter</em>[10] available for download.<br /><br />Since <em>all</em> of the books at Project Gutenberg are free to download (more details of the license will be given later on), and therefore not subject to fees or copyrights, only books in the public domain[11] can generally be included in the Project.<br /><br />Public domain includes all those works of art whose intellectual property cannot be legally claimed or exploited by any person, institution or legal entity, and therefore belong to all mankind. In the case of books, copyright can expire <em>only if</em> some particular conditions subsist:<br /><br /><ul><br /><li>The work was created and first published before January 1, 1923, or at least 95 years before January 1 of the current year, whichever is later.</li><br /><li>The last surviving author died at least 70 years before January 1 of the current year.</li><br /><li>Neither a </li><em>perpetual copyright</em> is granted by the Berne Convention nor has a particular government (US or EU) passed a copyright term extension.<br /></ul><br /><br />Now we can see why there are not very many <em>new</em> publications available in the project, and that?s really frustrating for Michael Hart and other volunteers:<br /><br /><em> "In the USA, no copyrights will expire from now to 2019!!! It is even much worse in many other countries, where they actually removed 20 years from the public domain. Books that had been legal to publish all of a sudden were not. Friends told me that in Italy, for example, all the great Italian operas that had entered the public domain are no longer there... Same goes for the United Kingdom. Germany increased their copyright term to more than 70 years back in the 1960's. It is a domino effect. Australia is the only country I know of that has officially stated they will not extend the copyright term by 20 years to more than 70."</em>[12]<br /><br />After all these considerations, we can take a closer look at Gutenberg?s license[13] which comes in two different versions: <em>informative</em> and normative (?legalese?, as they call it), the latter of which is the real document. Luckily, the non-legalese version is simple and complete enough: basically PG releases books which are either in the public domain or ? if copyrighted ? the author gave express permission to re-distribute them. The difference lies in the fact that if you remove PG?s trademark and license from a book which is in the public domain, you can re-distribute it freely on your own, but if the book is copyrighted and permission to distribute was given <em>only</em> to PG, you?ll have to contact the author to obtain permission.<br /><br />Furthermore, anybody can use the PG trademark when distributing <em>verbatim</em> copies of a book, with no changes (re-formatting is allowed); if you want to charge money for the copies you distribute, you have to pay royalties to PG.<br /><br /><br /><strong>Satellite Sites and Similar Projects</strong><br /><br />Michael Hart was ? and still is ? an authentic pioneer in his field: he had the idea to create the largest free library on the Internet to <em>?Break Down the Bars of Ignorance and Illiteracy?</em>. A lot of people thought he wouldn?t achieve anything, but his dedication and perseverance were simply so exemplary that more and more people got involved, a few satellite sites were created and similar projects were started in all over the world sharing the same goals.<br /> <br />Hart is obviously aware of the fact that there are also some sites <em>selling</em> e-books, but he explains that neither those sites nor any other free online library should be considered a competitor to Project Gutenberg: they all contribute to the diffusion of e-books. <br /><br />One of the most important <em>satellite site</em> of PG is ?Distributed Proofreading?[14] which is now considered the main source of PG books: every month more than 100 books are proofread by hundreds of volunteers who can register on the site for free and then get added to the project. The key concept of this parallel organization is that a single book can be proofread by more than one person at the same time, and thereby speeding up a project which would be otherwise very difficult to coordinate.<br /><br />Another site which helps the main project is HWG, the HTML Writers Guild[15]. It aims to convert PG?s plain text ebooks into more feature-rich HTML documents: by using a mark-up language it is possible to add footnotes and it can be analyzed easily by automatic tools.<br /><br />Although Project Gutenberg releases well-known books in many languages, a few sites officially affiliated with the project were created to focus particularly on their regional literature and works. That?s the case for both Australia[16] and Germany[17], for example; they both focus on their own national heritage. Regarding the latter, they recently claimed their own copyright for their e-books, and thus a new foundation is in the process of being created: Project Gutenberg Europe[18] which aims, among other things, to address the myriad copyright issues and laws of the EU.<br /><br />Last but not least, there?s an interesting discussion[19] about similarities and differences between Project Gutenberg and Wikisource[20] a Wikipedia[21]?s sister project aiming to create a free repository of texts which are either in the public domain or licensed under the GFDL[22]. <br /><br />Wikisource people obviously noticed that their project was quite similar to PG, but with an important difference: their texts were formatted and freely editable by any user who was able to spot a mistake or inaccuracy; PG doesn?t offer this. In this context, Project Gutenberg was sometimes blamed for allowing inaccurate material to be included in the project: this was due to the fact that even if PG uses Distributed Proofreading website to proofread e-books, this is often not comparable to a wiki system. However, in PG's defense, wiki articles, being much more open, are subject to much more vandalism, and therefore must be more closely watched. One can imagine a high school student changing <em>Hamlet</em> to read "To be or not to be, who gives a crap." <br /><br />However, the members of Project Gutenberg have proposed a sort of mutual cooperation between PG and wikisource: wikisource should maintain a broader scope, focusing not only on literary works but also on quotations and other kind of texts, and at the same time provide some revised edition of some book to Project Gutenberg.<br /><br /><br /><strong>The Future of Project Gutenberg</strong><br /><br />Project Gutenberg demonstrated the ability to grow considerably during its over 30-year existence. During that same time, copyright laws were extended, and some new technologies tried to <em>intimidate</em> the Project, which seems to remain relatively unchanged. However, last year a long-awaited DVD containing all the Project's e-books was released, showing the world that PG can keep up with the progress of technology to a certain extent.<br /> <br />One aspect that makes PG a successful project even today is its ability to adapt: CD-ROMs and a DVD were released, OCR was almost immediately taken into consideration, and since last year, all e-books have been released in both plain text and HTML format: there are still no fixed standards or rigid guidelines, but common sense seems to prevail over chaos, and for now, the system works. <br /><br />So far, Michael Hart showed the entire world that a single person can do <em>a lot</em> when pursuing a noble goal. Call him an idealist, call him a dreamer, but he surely created something able to gratify and motivate him and his fellow volunteers forever:<br /><br /><em>?I can't think of anything more rewarding to do as a career than Project Gutenberg. It is something that will reach more people than any other project in all of history. It is as powerful as The Bomb, but everyone can benefit from it.?</em>[12]<br /><br /><br /><br /><br /><strong>Notes & Further Readings</strong><br /><br />[1] Ebook, Wikipedia page ? <a href="http://en.wikipedia.org/wiki/Ebook">http://en.wikipedia.org/wiki/Ebook</a><br />[2] Project Gutenberg, Wikipedia page - <a href="http://en.wikipedia.org/wiki/Project_Gutenberg">http://en.wikipedia.org/wiki/Project_Gutenberg</a><br />[3] Movable type, Wikipedia page - <a href="http://en.wikipedia.org/wiki/Printing_press">http://en.wikipedia.org/wiki/Printing_press</a><br />[4] Project Gutenberg FAQ0 - <a href="http://www.gutenberg.org/about/faq0">http://www.gutenberg.org/about/faq0</a><br />[5] Project Gutenberg Official Website - <a href="http://www.gutenberg.org">http://www.gutenberg.org</a><br />[6] Project Gutenberg?s catalog - <a href="http://www.gutenberg.org/catalog/">http://www.gutenberg.org/catalog/</a><br />[7] Project Gutenberg?s volunteering page - <a href="http://www.gutenberg.org/info/volunteer">http://www.gutenberg.org/info/volunteer</a><br />[8] Project Gutenberg FAQ3 ? <a href="http://www.gutenberg.org/about/faq3">http://www.gutenberg.org/about/faq3</a><br />[9] Optical Character Recognition, Wikipedia Page ? <a href="http://en.wikipedia.org/wiki/Optical_character_recognition">http://en.wikipedia.org/wiki/Optical_character_recognition</a><br />[10] ?Harry Potter and the half-blood prince?, Scholastic Inc. website - <a href="http://www.scholastic.com/harrypotter/books/prince/index.htm">http://www.scholastic.com/harrypotter/books/prince/index.htm</a><br />[11] Public Domain, Wikipedia Page - <a href="http://en.wikipedia.org/wiki/Public_domain">http://en.wikipedia.org/wiki/Public_domain</a><br />[12] ?The Second Gutenberg Interview with Michael Hart?, Sam Vaknin, Ph.D. - <a href="http://samvak.tripod.com/busiweb29.html">http://samvak.tripod.com/busiweb29.html</a><br />[13] Gutenberg Project license ? <a href="http://www.gutenberg.org/license">http://www.gutenberg.org/license</a><br />[14] Project Gutenberg?s Distributed Proofreading - <a href="http://www.pgdp.net/c/default.php ">http://www.pgdp.net/c/default.php </a><br />[15] HTML Writers Guild Project Gutenberg ? <a href="http://gutenberg.hwg.org/">http://gutenberg.hwg.org/</a> <br />[16] Project Gutenberg Australia ? <a href="http://gutenberg.net.au/">http://gutenberg.net.au/</a><br />[17] Project Gutenberg Germany ? <a href="http://gutenberg.spiegel.de/">http://gutenberg.spiegel.de/</a><br />[18] Project Gutenberg Europe ? <a href="http://gutenberg.nl/">http://gutenberg.nl/</a><br />[19] Wikisource and Project Gutenberg, Wikisource page ? <a href="http://wikisource.org/wiki/Wikisource:Wikisource_and_Project_Gutenberg">http://wikisource.org/wiki/Wikisource:Wikisource_and_Project_Gutenberg</a><br />[20] Wikisource main page ? <a href="http://wikisource.org/wiki/Main_Page">http://wikisource.org/wiki/Main_Page</a><br />[21] Wikipedia main page ? <a href="http://www.wikipedia.org/">http://www.wikipedia.org/</a><br />[22] GNU Free Documentation License ? <a href="http://en.wikipedia.org/wiki/Wikipedia:Text_of_the_GNU_Free_Documentation_License ">http://en.wikipedia.org/wiki/Wikipedia:Text_of_the_GNU_Free_Documentation_License </a><br /> + + +<p> + I always liked reading Shakespeare, and I always wanted to have a copy of every one of his plays, tragedies and + sonnets on my bookshelf ready for consultation, but such things always seemed unrealistic because I had neither the + space for them nor the time to find them all nor the money to spend on them when I did find them. + <br /> + Now I can store the complete works of William Shakespeare directly on my mobile phone, and they take up as little as + 1.4 MB compressed... +</p> +<h3>Origins</h3> +<p> + Even if you never heard the word ?e-book?[1] before, you can probably guess its meaning: <em>electronic book</em>, + or a book in digital format. What you probably don't knoe is that people started copying books into digital format + nearly as soon as computers were available to the public, and maybe even before: the first <em>e-book</em> was + created in 1971. +</p> +<p> + That year, a student at the University of Illinois named Michael Hart was given the equivalent of $100,000,000 (or + $100,000, or $1,000,000 - there is no official estimation) in <em>computer time</em>. Basically, since he was + friends with some of the operators at the Materials Research Lab, he was given an operator account on the Xerox + Sigma V mainframe, which later became one of the 15 nodes that developed into the global network that eventually + became the Internet. At that time, having that much computer time at your disposal was indeed a great privilege, and + Hart felt that he had to use that time for something useful that could in theory generate a profit - not an easy + task when you consider that only a limited amount of people in the world had access to a computer, and that those + computers weren?t even connected together. +</p> +<p> + Foreseeing an era where computers where interconnected and regular people had access to them, Michael Hart thought + that virtually all texts and books could be made available in digital format, for free, to anyone who wanted to read + them. Certainly, such a <em>project</em> seemed quite unrealistic and excessively time consuming at the time; + nevertheless, he decided to start copying the first book himself, the Declaration of Independence of the United + States, which he was carrying in his backpack. +</p> +<p> + Project Gutenberg[2] was born with that one single text, and it has grown through the years. Today, there are more + than 16,000 e-books available to download and read. +</p> + + + +<h3>What is Project Gutenberg?</h3> +<p> + By that name, Michael Hart probably wanted to define the project?s scope and vision: an idea as revolutionary for + the diffusion of literature as the invention of moveable type printing[3] in the 1450s. +</p> +<p> + The mission of the project can be summarized as follows[4]: +</p> +<div style="text-align: center;"><em> "To encourage the creation and distribution of eBooks."<br /> </em></div> +<p> + In order to achieve this, Project Gutenberg is set up such that <em>anyone</em> can contribute to it, in many + different ways. It is run completely by volunteers, hundreds of people around the world who share the same ideals + and believe that literature should be freely available to everyone at virtually no cost. +</p> +<p> + The Internet serves this purpose magnificently: it is possible to download all of the over 16,000 free e-books from + the Project Gutenberg website[5] in different formats and many different languages[6]! +</p> +<p> + However, having such a large amount of books available within a few clicks can make people forget about how time + consuming the process of making one single e-book is: originally, after acquiring a paper copy of the book, + Gutenberg?s volunteers had to transcribe it themselves, typing every word from the beginning to the end. Then the + book had to be checked for mistakes before it was accepted into the Project. +</p> +<p> + Producing a single e-book can therefore take many people and many hours from beginning to end, and presumably this + was one of the reasons why Project Gutenberg was criticized for being more of an utopian ideal than a tangible + reality: every year since its creation people have doubted the project, accusing Hart of pursuing an impossible + dream, and prophesying that fewer and fewer people would join the team and that there was no future for Project + Gutenberg. +</p> +<p> + Oddly enough, they were all wrong: not only is the Project still active today, but the number of books released + every year has grown consistently over time, from a few dozen in the early days to thousands per year now. +</p> +<p> + More and more people became involved, partially because they share the same ideals and partially because it has + always been easy to get involved[7]: Project Gutenberg strives to remove all the institutional barriers which could + potentially interfere with members? motivation; they try not to impose any restrictions, and they don't support + perfectionism. It is believed[8] that there shouldn?t be any <em>proper</em> or <em>standard</em> way to release + e-books, but instead many different ways, to appeal to many tastes: the Project doesn?t support any particular + standard for releasing ebooks, although it normally takes the simplest path. Therefore, the majority of the books + are available in <em>Plain Vanilla ASCII</em>, i.e., texts are written using only ASCII characters, and bold, + italicized or underlined words are capitalized instead. While this format has the most limitations, it is also the + most portable. +</p> +<p> + At this point, you might wonder why they don't just scan the original books, and make them available as image files + or PDF files. While it would be much faster, it also has disadvantages, such as large file size and an inability to + be displayed at particular resolutions; a scanned book probably wouldn't be readable on a PDA, mobile phone, or + other equally small device. +</p> +<p> + Nonetheless, scanners do play an important part nowadays in the process of making an e-book: texts are no longer + copied manually if a printed edition already exists. Instead, they are scanned with OCR[9] and then proofread twice + before being accepted. The (un)official procedure recommends scanning at least one page a day, having it proofread + once by someone in charge of doing so (a ?junior? proofread), and then again by a more experienced member. This has + undoubtedly sped up the process. +</p> + + +<h3>Not All Books Are Equal (for now)</h3> +<p> + By looking at some of the titles available on Project Gutenberg, you?ll notice that most of them are + <em>classics</em> or relatively old works: for example, you won?t find the latest <em>Harry Potter</em>[10] + available for download. +</p> +<p> + Since <em>all</em> of the books at Project Gutenberg are free to download (more details of the license will be given + later on), and therefore not subject to fees or copyrights, only books in the public domain[11] can generally be + included in the Project. +</p> +<p> + Public domain includes all those works of art whose intellectual property cannot be legally claimed or exploited by + any person, institution or legal entity, and therefore belong to all mankind. In the case of books, copyright can + expire <em>only if</em> some particular conditions subsist: +</p> +<ul> + <li>The work was created and first published before January 1, 1923, or at least 95 years before January 1 of the + current year, whichever is later.</li> + <li>The last surviving author died at least 70 years before January 1 of the current year.</li> + <li>Neither a <em>perpetual copyright</em> is granted by the Berne Convention nor has a particular government (US or + EU) passed a copyright term extension.</li> +</ul> +<p> + Now we can see why there are not very many <em>new</em> publications available in the project, and that?s really + frustrating for Michael Hart and other volunteers: +</p> +<em> "In the USA, no copyrights will expire from now to 2019!!! It is even much worse in many other countries, where + they actually removed 20 years from the public domain. Books that had been legal to publish all of a sudden were + not. Friends told me that in Italy, for example, all the great Italian operas that had entered the public domain are + no longer there... Same goes for the United Kingdom. Germany increased their copyright term to more than 70 years + back in the 1960's. It is a domino effect. Australia is the only country I know of that has officially stated they + will not extend the copyright term by 20 years to more than 70."</em>[12] +<p> + After all these considerations, we can take a closer look at Gutenberg?s license[13] which comes in two different + versions: <em>informative</em> and normative (?legalese?, as they call it), the latter of which is the real + document. Luckily, the non-legalese version is simple and complete enough: basically PG releases books which are + either in the public domain or ? if copyrighted ? the author gave express permission to re-distribute them. The + difference lies in the fact that if you remove PG?s trademark and license from a book which is in the public domain, + you can re-distribute it freely on your own, but if the book is copyrighted and permission to distribute was given + <em>only</em> to PG, you?ll have to contact the author to obtain permission. +</p> +<p> + Furthermore, anybody can use the PG trademark when distributing <em>verbatim</em> copies of a book, with no changes + (re-formatting is allowed); if you want to charge money for the copies you distribute, you have to pay royalties to + PG. +</p> + + +<h3>Satellite Sites and Similar Projects</h3> +<p> + Michael Hart was ? and still is ? an authentic pioneer in his field: he had the idea to create the largest free + library on the Internet to <em>?Break Down the Bars of Ignorance and Illiteracy?</em>. A lot of people thought he + wouldn?t achieve anything, but his dedication and perseverance were simply so exemplary that more and more people + got involved, a few satellite sites were created and similar projects were started in all over the world sharing the + same goals. +</p> +<p> + Hart is obviously aware of the fact that there are also some sites <em>selling</em> e-books, but he explains that + neither those sites nor any other free online library should be considered a competitor to Project Gutenberg: they + all contribute to the diffusion of e-books. +</p> +<p> + One of the most important <em>satellite site</em> of PG is ?Distributed Proofreading?[14] which is now considered + the main source of PG books: every month more than 100 books are proofread by hundreds of volunteers who can + register on the site for free and then get added to the project. The key concept of this parallel organization is + that a single book can be proofread by more than one person at the same time, and thereby speeding up a project + which would be otherwise very difficult to coordinate. +</p> +<p> + Another site which helps the main project is HWG, the HTML Writers Guild[15]. It aims to convert PG?s plain text + ebooks into more feature-rich HTML documents: by using a mark-up language it is possible to add footnotes and it can + be analyzed easily by automatic tools. +</p> +<p> + Although Project Gutenberg releases well-known books in many languages, a few sites officially affiliated with the + project were created to focus particularly on their regional literature and works. That?s the case for both + Australia[16] and Germany[17], for example; they both focus on their own national heritage. Regarding the latter, + they recently claimed their own copyright for their e-books, and thus a new foundation is in the process of being + created: Project Gutenberg Europe[18] which aims, among other things, to address the myriad copyright issues and + laws of the EU. +</p> +<p> + Last but not least, there?s an interesting discussion[19] about similarities and differences between Project + Gutenberg and Wikisource[20] a Wikipedia[21]?s sister project aiming to create a free repository of texts which are + either in the public domain or licensed under the GFDL[22]. +</p> +<p> + Wikisource people obviously noticed that their project was quite similar to PG, but with an important difference: + their texts were formatted and freely editable by any user who was able to spot a mistake or inaccuracy; PG doesn?t + offer this. In this context, Project Gutenberg was sometimes blamed for allowing inaccurate material to be included + in the project: this was due to the fact that even if PG uses Distributed Proofreading website to proofread e-books, + this is often not comparable to a wiki system. However, in PG's defense, wiki articles, being much more open, are + subject to much more vandalism, and therefore must be more closely watched. One can imagine a high school student + changing <em>Hamlet</em> to read "To be or not to be, who gives a crap." +</p> +<p> + However, the members of Project Gutenberg have proposed a sort of mutual cooperation between PG and wikisource: + wikisource should maintain a broader scope, focusing not only on literary works but also on quotations and other + kind of texts, and at the same time provide some revised edition of some book to Project Gutenberg. +</p> + +<h3>The Future of Project Gutenberg</h3> +<p> + Project Gutenberg demonstrated the ability to grow considerably during its over 30-year existence. During that same + time, copyright laws were extended, and some new technologies tried to <em>intimidate</em> the Project, which seems + to remain relatively unchanged. However, last year a long-awaited DVD containing all the Project's e-books was + released, showing the world that PG can keep up with the progress of technology to a certain extent. +</p> +<p> + One aspect that makes PG a successful project even today is its ability to adapt: CD-ROMs and a DVD were released, + OCR was almost immediately taken into consideration, and since last year, all e-books have been released in both + plain text and HTML format: there are still no fixed standards or rigid guidelines, but common sense seems to + prevail over chaos, and for now, the system works. +</p> +<p> + So far, Michael Hart showed the entire world that a single person can do <em>a lot</em> when pursuing a noble goal. + Call him an idealist, call him a dreamer, but he surely created something able to gratify and motivate him and his + fellow volunteers forever: +</p> +<em>?I can't think of anything more rewarding to do as a career than Project Gutenberg. It is something that will reach + more people than any other project in all of history. It is as powerful as The Bomb, but everyone can benefit from + it.?</em>[12] + +<h3>Notes & Further Readings</h3> +<ul> + <li>[1] Ebook, Wikipedia page - <a href="http://en.wikipedia.org/wiki/Ebook">http://en.wikipedia.org/wiki/Ebook</a> + </li> + <li>[2] Project Gutenberg, Wikipedia page - <a + href="http://en.wikipedia.org/wiki/Project_Gutenberg">http://en.wikipedia.org/wiki/Project_Gutenberg</a> + </li> + <li>[3] Movable type, Wikipedia page - <a + href="http://en.wikipedia.org/wiki/Printing_press">http://en.wikipedia.org/wiki/Printing_press</a></li> + <li>[4] Project Gutenberg FAQ0 - <a + href="http://www.gutenberg.org/about/faq0">http://www.gutenberg.org/about/faq0</a></li> + <li>[5] Project Gutenberg Official Website - <a href="http://www.gutenberg.org">http://www.gutenberg.org</a></li> + <li>[6] Project Gutenberg?s catalog - <a + href="http://www.gutenberg.org/catalog/">http://www.gutenberg.org/catalog/</a></li> + <li>[7] Project Gutenberg?s volunteering page - <a + href="http://www.gutenberg.org/info/volunteer">http://www.gutenberg.org/info/volunteer</a></li> + <li>[8] Project Gutenberg FAQ3 - <a + href="http://www.gutenberg.org/about/faq3">http://www.gutenberg.org/about/faq3</a></li> + <li>[9] Optical Character Recognition, Wikipedia Page - <a + href="http://en.wikipedia.org/wiki/Optical_character_recognition">http://en.wikipedia.org/wiki/Optical_character_recognition</a> + </li> + <li>[10] ?Harry Potter and the half-blood prince?, Scholastic Inc. website - <a + href="http://www.scholastic.com/harrypotter/books/prince/index.htm">http://www.scholastic.com/harrypotter/books/prince/index.htm</a> + </li> + <li>[11] Public Domain, Wikipedia Page - <a + href="http://en.wikipedia.org/wiki/Public_domain">http://en.wikipedia.org/wiki/Public_domain</a></li> + <li>[12] ?The Second Gutenberg Interview with Michael Hart?, Sam Vaknin, Ph.D. - <a + href="http://samvak.tripod.com/busiweb29.html">http://samvak.tripod.com/busiweb29.html</a></li> + <li>[13] Gutenberg Project license - <a href="http://www.gutenberg.org/license">http://www.gutenberg.org/license</a> + </li> + <li>[14] Project Gutenberg?s Distributed Proofreading - <a + href="http://www.pgdp.net/c/default.php">http://www.pgdp.net/c/default.php</a></li> + <li>[15] HTML Writers Guild Project Gutenberg - <a href="http://gutenberg.hwg.org/">http://gutenberg.hwg.org/</a> + </li> + <li>[16] Project Gutenberg Australia - <a href="http://gutenberg.net.au/">http://gutenberg.net.au/</a></li> + <li>[17] Project Gutenberg Germany - <a href="http://gutenberg.spiegel.de/">http://gutenberg.spiegel.de/</a></li> + <li>[18] Project Gutenberg Europe - <a href="http://gutenberg.nl/">http://gutenberg.nl/</a></li> + <li>[19] Wikisource and Project Gutenberg, Wikisource page - <a + href="http://wikisource.org/wiki/Wikisource:Wikisource_and_Project_Gutenberg">http://wikisource.org/wiki/Wikisource:Wikisource_and_Project_Gutenberg</a> + </li> + <li>[20] Wikisource main page - <a + href="http://wikisource.org/wiki/Main_Page">http://wikisource.org/wiki/Main_Page</a></li> + <li>[21] Wikipedia main page - <a href="http://www.wikipedia.org/">http://www.wikipedia.org/</a></li> + <li>[22] GNU Free Documentation License - <a + href="http://en.wikipedia.org/wiki/Wikipedia:Text_of_the_GNU_Free_Documentation_License">http://en.wikipedia.org/wiki/Wikipedia:Text_of_the_GNU_Free_Documentation_License</a> + </li> +</ul>
@@ -4,4 +4,148 @@ content-type: article
timestamp: 1134215963 tags: "internet|opensource" ----- -I think most of the people who currently use the Internet have tried Microsoft Hotmail[1] at least once. Many of you probably don't use it anymore because you found something better, but the point is that Hotmail has been around for a long time, and so has its authentication method, MSN Passport, which is a universal login system used not only for Hotmail but also for many other non-Microsoft websites and services.<br />If you don't like the idea of using Microsoft-owned technology as an authentication system, we have an alternative for you... <strong>Show me your Passport</strong><br /><fieldset><blockquote>"Create your sign-in credentials (e-mail and password) once, then use them everywhere on the Microsoft Passport Network. You can even set the site to remember your credentials for you!"</blockquote></fieldset><br /><br />This is what the MSN Passport does, in a nutshell: it provides a <em>universal</em> login system so that members only need to remember their email address and one password in order to be authenticated on every site that uses the Passport technology. It has been adopted quite happily by some websites and portals[3], and particularly by merchant sites, who liked the idea of making life easier for their users. So far, so good.<br /><br />Like nearly every Microsoft technology seems to at one point or another, the MSN Passport became an object of criticism and concern, as shown in a 2002 MIT document[4]. The main problem is this: among the data collected by Microsoft upon a user's registration is a significant amount of personal information (such as age, date of birth, and addresses) which is stored on the Microsoft servers. What if someone gains access to that information? Who guarantees that that information will not be used by third parties? <br /><br />Aside from the privacy issues, some people are concerned about the system's internal security and by the fact that the system is entirely dependent on Microsoft servers to work:<br /><br /><fieldset><blockquote>"As more services and components depend on remote servers, functionality can grind to a halt if there is a failure on the centralized Passport system."[5]</blockquote></fieldset><br /><br />People have concerns, but what has been done? Are there any alternatives? Well, yes and no. Apparently the <em>Liberty Alliance Project</em>[6] was created to offer a valid and perhaps more democratic alternative to the Microsoft Passport:<br /><br /><fieldset><blockquote>"The Liberty Alliance Project was formed in September 2001 to serve as the premier open standards organization for federated identity and identity-based services. The Alliance is delivering specifications and guidelines to enable a complete network identity infrastructure that will resolve many of the technology and business issues hindering the deployment of identity-based Web services."[7]</blockquote></fieldset><br /><br />The project's founders (160 IT organizations, including Sun Microsystems and VeriSign) aim to create a <em>distributed</em> authentication system, as opposed to the <em>centralized</em> MSN Passport. This will undoubtedly solve some of the problems, but the system is still under development.<br /><br /><strong>Introducing Project Windstone</strong><br />CyberArmy[8] is obviously like neither Microsoft or Sun Microsystems; it's a community of volunteers whose aim is sharing their knowledge and making the Internet a better place. Volunteers don't get paid, but sometimes something gets done, and some projects are released to the general public. Among these is a system for (if you haven't guessed already)a system for universal user authentication, called Project Windstone[9].<br /><br />Project Windstone was developed by SoundWave on behalf of Special Operations and Security[10] to provide a universal authentication system that is easy to use and deploy on websites and in applications. Furthermore, the Windstone protocol is language-independent and functions via HTTP POST transactions between clients and the Windstone server, so virtually any website coded in any language or any application able to communicate with a web server can implement it.<br /><br />It seems great so far, but what can Windstone be used for? As previously said, it is a system to allow users to authenticate themselves with the same credentials on many different websites and share profiles and information between those websites at the same time. Furthermore, users can send each other private messages that can be retrieved on any website that implements Windstone, with the added benefit of all transactions taking place in a secure and private environment.<br /><br />On second thought, Windstone features seem to lead to some perplexity, especially among users who are particularly concerned about their own privacy: apparently a single centralized server is involved, and users can share their profile and send messages with each other, so what warranties does Windstone offers as far as privacy/security goes? Here's something which should reassure most of us:<br /><br /><ul><br /><li>The information provided by users in their public profiles is entirely up to their discretion: in other words, it's up to the user if they want to list their credit card numbers on their profile or talk about their cat, as the Windstone server itself does not require any specific personal information in order to create a profile.</li><br /><li>The username can be any valid email address submitted by the user.</li><br /><li>User profiles are available only after authentication with the Windstone server, and only if the person requesting the profile already knows the email address used by another user for Windstone services. Currently, Windstone does not implement any form of listing of existing users among the standard commands.</li><br /><li>The password chosen for user authentication is NEVER saved in any form; not within the client applications, not on the central server, and not in cookies. </li><br /><li> Data sent from client to server and vice-versa is encrypted.</li><br /></ul><br /><br /><strong>Some more technical details</strong><br />I am actually planning to implement the system on one of my sites, so I started reading the short but straightforward documentation[11] available on the Windstone site to learn more about how the system works, and it seems quite simple and able to do what it does in a logical way; the Windstone "standard" contains a bunch of commands[12] which are used by the clients (agents) and the server to request information exchange such as requests for initialization, possible server replies, and so on. Commands and data are sent using the following format (excerpt from the official documentation):<br /><br /><em><br />The format of this command string is as follows:<br /><br />AAAA.*BBBBBBBBBB.*CCCC::DDDDDDDDDDDDDDDDDDDD::EEEE::FFFFFFFFFF<br /><br />A. This is the command. Commands tell us what kind of request or response is being made with the command string. It also lets us know how many elements of data to expect (see F).<br /><br />B. This is the agent system identifier. Each website or IEP receives a unique alphanumeric ten (10) character identifier upon registration, which is used to identify this system within the network.<br /><br />C. This is the protocol version number. Generally, the version number will not change much, if at all, but it must be present. The protocol version goes with all command strings to let other systems and the Windstone server know what version of the protocol you are using. If certain versions are incompatible with each other, or if there is an upgrade or change to the protocol you are using, the version number will be used to determine that.<br /><br />D. This is the transaction identifier. Usually, this is not used, so the default information that should go here is six zeros ("000000"). The transaction identifier helps to link command strings into groups for processing and is most often used during the user login process.<br /><br />E. This is the sequence number. The sequence number, in conjunction with the transaction identifier, is used to put grouped command strings into their logical order. The sequence numbers have no specified numbering sequence, default start value, or length limit: the only requirement is that a sequence number must be in order from lowest to highest. When not using a transaction identifier or sequence number, the default information that should go here is a simple "X" (note that when "X" is being used in a command string by itself, it should always be capitalized).<br /><br />F. This is the data section. The data section is the heart of the command string. It is important to note that, at the minimum, all data sections need to be base-64 encoded prior to transmission - at no time should there be information in plain text format in the data section.<br /></em> <br /><br />Obviously, command strings can be manipulated to access each section separately and the manipulation can be done with virtually any programming language used on the client side. <br /><br />Normally, the client will send a command to the Windstone server to start the authentication process and then retrieve some information; the server will reply accordingly to the client's command strings with its own responses wrapped in command strings. Let's suppose a Windstone Agent is being used to perform the following actions:<br /><br />- Initialize the system<br />- perform a login<br />- retrieve user profile from the Windstone server <br /><br />In this simulation I will not use the actual command strings but just the codes for the various commands.<br /><br /><em><span style="text-decoration:underline;">Agent</span>: 0000 :: SETUP_INITIALIZE</em> - The Windstone agent sends a request to the server to initialize the authentication process, supplying the software identifier, the software type ("PC-Based" or "Web-Based"), the command landing URL and the URL to redirect logins to.<br /><br /><em><span style="text-decoration:underline;">Server</span>: 0002 :: SETUP_COMPLETE </em>- Everything looks good to the server, which replies with the following information: Unique agent identifier, primary authentication token, secondary authentication token, activation key, security code, shared encryption key (255 random characters, non-binary), registration completion date and time (epoch). These parameters will be used by the agent afterwards and are necessary to identify the agent on the Windstone server.<br /><br /><em><span style="text-decoration:underline;">Agent</span>: 1102 :: USER_LOGIN_REDIRECT</em> - The agent requests to start the authentication process and sends the email address of the user to the server along with the URL where the user's password will be entered.<br /><br /><br /><em><span style="text-decoration:underline;">Server</span>: 1105 :: USER_AUTH_SAVE</em> - User credentials are checked by the Windstone server. Everything is fine, so the server sends this response to the agent. The response contains the authentication token which will be used to authenticate the user during the session, as well as the user's display name.<br /><br /><em><span style="text-decoration:underline;">Agent</span>: 1107 :: USER_INFO</em> - The agent can now request the user's profile from the Windstone Server.<br /><br /><em><span style="text-decoration:underline;">Server</span>: 1108 :: USER_PROFILE</em> - After checking the user's authentication token, the server can now send the following information to the agent: Email address, display name, user "About Me" text, last login date and time, account created date and time, online status.<br /><br />This is just a simple example of how the Windstone protocol can be used; as mentioned earlier, there are various other commands[12] which can be used to perform various actions. <br /><br /><strong>Development and deployment</strong><br />The Windstone protocol is fully operational and can be implemented on any website or application able to communicate with a web server. The developer made a very basic PHP-based example of an Agent system available online[13]; it may not be a masterpiece of PHP coding (as the developer himself pointed out), but it can be useful in understanding how to develop a Windstone Agent System.<br /><br />If you'd like to start developing your own Agent System or you just want to create a Windstone account, it can be done on the Windstone registration page[14]: you'll be asked to provide an email address, a display name and a profile (the last two can be modified afterwards). Then the system will prompt you for a password, and an email will be sent to the address you provided to confirm and activate your account. Once you have an account, you can login to any website or application implementing the Windstone protocol, such as the Windstone website itself[15].<br /><br />Windstone is certainly not yet comparable to the MSN Passport technology - it's not used by a lot of important sites, and it's much simpler and offers fewer services, but it's undoubtedly an interesting approach to a free to use, secure and private system of universal user authentication.<br />Check it out![9] <br /><br /><strong>Notes and Resources</strong><br />[1] Microsoft Hotmail Service, <a href="http://www.hotmail.com">http://www.hotmail.com</a><br />[2] MSN Passport Network: <a href="https://accountservices.passport.net/ppnetworkhome.srf?vv=320&lc=1033">https://accountservices.passport.net/ppnetworkhome.srf?vv=320&lc=1033</a><br />[3] List of sites using MSN Passport, Passport@everything2: <a href="http://www.everything2.com/index.pl?node=passport">http://www.everything2.com/index.pl?node=passport</a><br />[4] "Microsoft .NET Passport and Wallet: Approach with Caution!", <a href="http://web.mit.edu/ist/isnews/v17/n04/170408.html">http://web.mit.edu/ist/isnews/v17/n04/170408.html</a><br />[5] "Microsoft Hailstorm and Passport", go-mono.com, <a href="http://www.go-mono.com/passport.html">http://www.go-mono.com/passport.html</a><br />[6] Liberty Alliance Project, Official Page, <a href="http://www.projectliberty.org/index.php">http://www.projectliberty.org/index.php</a><br />[7] Liberty Alliance Project, FAQs, <a href="http://www.projectliberty.org/about/faq.php">http://www.projectliberty.org/about/faq.php</a><br />[8] CyberArmy, Official Page, <a href="http://www.cyberarmy.net/">http://www.cyberarmy.net/</a><br />[9] Project Windstone, Official Page, <a href="http://windstone.x-mirror.com/v2/">http://windstone.x-mirror.com/v2/</a><br />[10] Special Operations and Security, official website, <a href="http://sos.x-mirror.com/">http://sos.x-mirror.com/</a><br />[11] Windstone Communications Protocol, Development Whitepaper, <a href="http://windstone.x-mirror.com/v2/development.php">http://windstone.x-mirror.com/v2/development.php</a><br />[12] Windstone Protocol Commands, <a href="http://windstone.x-mirror.com/v2/commands.php">http://windstone.x-mirror.com/v2/commands.php</a><br />[13] Example of PHP Agent System (ZIP file), <a href="http://windstone.x-mirror.com/v2/ws-testbed.zip">http://windstone.x-mirror.com/v2/ws-testbed.zip</a><br />[14] Windstone Registration, <a href="http://windstone.x-mirror.com/v2/register.php">http://windstone.x-mirror.com/v2/register.php</a><br />[15] Windstone Login Page, <a href="http://windstone.x-mirror.com/v2/login.php">http://windstone.x-mirror.com/v2/login.php</a><br /> +I think most of the people who currently use the Internet have tried Microsoft Hotmail[1] at least once. Many of you +probably don't use it anymore because you found something better, but the point is that Hotmail has been around for a +long time, and so has its authentication method, MSN Passport, which is a universal login system used not only for +Hotmail but also for many other non-Microsoft websites and services.<br />If you don't like the idea of using +Microsoft-owned technology as an authentication system, we have an alternative for you... <strong>Show me your + Passport</strong><br /> +<blockquote>"Create your sign-in credentials (e-mail and password) once, then use them everywhere on the Microsoft + Passport Network. You can even set the site to remember your credentials for you!"</blockquote><br /><br />This is +what the MSN Passport does, in a nutshell: it provides a <em>universal</em> login system so that members only need to +remember their email address and one password in order to be authenticated on every site that uses the Passport +technology. It has been adopted quite happily by some websites and portals[3], and particularly by merchant sites, who +liked the idea of making life easier for their users. So far, so good.<br /><br />Like nearly every Microsoft technology +seems to at one point or another, the MSN Passport became an object of criticism and concern, as shown in a 2002 MIT +document[4]. The main problem is this: among the data collected by Microsoft upon a user's registration is a significant +amount of personal information (such as age, date of birth, and addresses) which is stored on the Microsoft servers. +What if someone gains access to that information? Who guarantees that that information will not be used by third +parties? <br /><br />Aside from the privacy issues, some people are concerned about the system's internal security and +by the fact that the system is entirely dependent on Microsoft servers to work:<br /><br /> +<blockquote>"As more services and components depend on remote servers, functionality can grind to a halt if there is a + failure on the centralized Passport system."[5]</blockquote><br /><br />People have concerns, but what has been +done? Are there any alternatives? Well, yes and no. Apparently the <em>Liberty Alliance Project</em>[6] was created to +offer a valid and perhaps more democratic alternative to the Microsoft Passport:<br /><br /> +<blockquote>"The Liberty Alliance Project was formed in September 2001 to serve as the premier open standards + organization for federated identity and identity-based services. The Alliance is delivering specifications and + guidelines to enable a complete network identity infrastructure that will resolve many of the technology and + business issues hindering the deployment of identity-based Web services."[7]</blockquote><br /><br />The project's +founders (160 IT organizations, including Sun Microsystems and VeriSign) aim to create a <em>distributed</em> +authentication system, as opposed to the <em>centralized</em> MSN Passport. This will undoubtedly solve some of the +problems, but the system is still under development.<br /><br /><strong>Introducing Project + Windstone</strong><br />CyberArmy[8] is obviously like neither Microsoft or Sun Microsystems; it's a community of +volunteers whose aim is sharing their knowledge and making the Internet a better place. Volunteers don't get paid, but +sometimes something gets done, and some projects are released to the general public. Among these is a system for (if you +haven't guessed already)a system for universal user authentication, called Project Windstone[9].<br /><br />Project +Windstone was developed by SoundWave on behalf of Special Operations and Security[10] to provide a universal +authentication system that is easy to use and deploy on websites and in applications. Furthermore, the Windstone +protocol is language-independent and functions via HTTP POST transactions between clients and the Windstone server, so +virtually any website coded in any language or any application able to communicate with a web server can implement +it.<br /><br />It seems great so far, but what can Windstone be used for? As previously said, it is a system to allow +users to authenticate themselves with the same credentials on many different websites and share profiles and information +between those websites at the same time. Furthermore, users can send each other private messages that can be retrieved +on any website that implements Windstone, with the added benefit of all transactions taking place in a secure and +private environment.<br /><br />On second thought, Windstone features seem to lead to some perplexity, especially among +users who are particularly concerned about their own privacy: apparently a single centralized server is involved, and +users can share their profile and send messages with each other, so what warranties does Windstone offers as far as +privacy/security goes? Here's something which should reassure most of us:<br /><br /> +<ul><br /> + <li>The information provided by users in their public profiles is entirely up to their discretion: in other words, + it's up to the user if they want to list their credit card numbers on their profile or talk about their cat, as + the Windstone server itself does not require any specific personal information in order to create a profile. + </li><br /> + <li>The username can be any valid email address submitted by the user.</li><br /> + <li>User profiles are available only after authentication with the Windstone server, and only if the person + requesting the profile already knows the email address used by another user for Windstone services. Currently, + Windstone does not implement any form of listing of existing users among the standard commands.</li><br /> + <li>The password chosen for user authentication is NEVER saved in any form; not within the client applications, not + on the central server, and not in cookies. </li><br /> + <li> Data sent from client to server and vice-versa is encrypted.</li><br /> +</ul><br /><br /><strong>Some more technical details</strong><br />I am actually planning to implement the system on one +of my sites, so I started reading the short but straightforward documentation[11] available on the Windstone site to +learn more about how the system works, and it seems quite simple and able to do what it does in a logical way; the +Windstone "standard" contains a bunch of commands[12] which are used by the clients (agents) and the server to request +information exchange such as requests for initialization, possible server replies, and so on. Commands and data are sent +using the following format (excerpt from the official documentation):<br /><br /><em><br />The format of this command + string is as follows:<br /><br />AAAA.*BBBBBBBBBB.*CCCC::DDDDDDDDDDDDDDDDDDDD::EEEE::FFFFFFFFFF<br /><br />A. This + is the command. Commands tell us what kind of request or response is being made with the command string. It also + lets us know how many elements of data to expect (see F).<br /><br />B. This is the agent system identifier. Each + website or IEP receives a unique alphanumeric ten (10) character identifier upon registration, which is used to + identify this system within the network.<br /><br />C. This is the protocol version number. Generally, the version + number will not change much, if at all, but it must be present. The protocol version goes with all command strings + to let other systems and the Windstone server know what version of the protocol you are using. If certain versions + are incompatible with each other, or if there is an upgrade or change to the protocol you are using, the version + number will be used to determine that.<br /><br />D. This is the transaction identifier. Usually, this is not used, + so the default information that should go here is six zeros ("000000"). The transaction identifier helps to link + command strings into groups for processing and is most often used during the user login process.<br /><br />E. This + is the sequence number. The sequence number, in conjunction with the transaction identifier, is used to put grouped + command strings into their logical order. The sequence numbers have no specified numbering sequence, default start + value, or length limit: the only requirement is that a sequence number must be in order from lowest to highest. When + not using a transaction identifier or sequence number, the default information that should go here is a simple "X" + (note that when "X" is being used in a command string by itself, it should always be capitalized).<br /><br />F. + This is the data section. The data section is the heart of the command string. It is important to note that, at the + minimum, all data sections need to be base-64 encoded prior to transmission - at no time should there be information + in plain text format in the data section.<br /></em> <br /><br />Obviously, command strings can be manipulated to +access each section separately and the manipulation can be done with virtually any programming language used on the +client side. <br /><br />Normally, the client will send a command to the Windstone server to start the authentication +process and then retrieve some information; the server will reply accordingly to the client's command strings with its +own responses wrapped in command strings. Let's suppose a Windstone Agent is being used to perform the following +actions:<br /><br />- Initialize the system<br />- perform a login<br />- retrieve user profile from the Windstone +server <br /><br />In this simulation I will not use the actual command strings but just the codes for the various +commands.<br /><br /><em><span style="text-decoration:underline;">Agent</span>: 0000 :: SETUP_INITIALIZE</em> - The +Windstone agent sends a request to the server to initialize the authentication process, supplying the software +identifier, the software type ("PC-Based" or "Web-Based"), the command landing URL and the URL to redirect logins +to.<br /><br /><em><span style="text-decoration:underline;">Server</span>: 0002 :: SETUP_COMPLETE </em>- Everything +looks good to the server, which replies with the following information: Unique agent identifier, primary authentication +token, secondary authentication token, activation key, security code, shared encryption key (255 random characters, +non-binary), registration completion date and time (epoch). These parameters will be used by the agent afterwards and +are necessary to identify the agent on the Windstone server.<br /><br /><em><span + style="text-decoration:underline;">Agent</span>: 1102 :: USER_LOGIN_REDIRECT</em> - The agent requests to start +the authentication process and sends the email address of the user to the server along with the URL where the user's +password will be entered.<br /><br /><br /><em><span style="text-decoration:underline;">Server</span>: 1105 :: + USER_AUTH_SAVE</em> - User credentials are checked by the Windstone server. Everything is fine, so the server sends +this response to the agent. The response contains the authentication token which will be used to authenticate the user +during the session, as well as the user's display name.<br /><br /><em><span + style="text-decoration:underline;">Agent</span>: 1107 :: USER_INFO</em> - The agent can now request the user's +profile from the Windstone Server.<br /><br /><em><span style="text-decoration:underline;">Server</span>: 1108 :: + USER_PROFILE</em> - After checking the user's authentication token, the server can now send the following +information to the agent: Email address, display name, user "About Me" text, last login date and time, account created +date and time, online status.<br /><br />This is just a simple example of how the Windstone protocol can be used; as +mentioned earlier, there are various other commands[12] which can be used to perform various actions. +<br /><br /><strong>Development and deployment</strong><br />The Windstone protocol is fully operational and can be +implemented on any website or application able to communicate with a web server. The developer made a very basic +PHP-based example of an Agent system available online[13]; it may not be a masterpiece of PHP coding (as the developer +himself pointed out), but it can be useful in understanding how to develop a Windstone Agent System.<br /><br />If you'd +like to start developing your own Agent System or you just want to create a Windstone account, it can be done on the +Windstone registration page[14]: you'll be asked to provide an email address, a display name and a profile (the last two +can be modified afterwards). Then the system will prompt you for a password, and an email will be sent to the address +you provided to confirm and activate your account. Once you have an account, you can login to any website or application +implementing the Windstone protocol, such as the Windstone website itself[15].<br /><br />Windstone is certainly not yet +comparable to the MSN Passport technology - it's not used by a lot of important sites, and it's much simpler and offers +fewer services, but it's undoubtedly an interesting approach to a free to use, secure and private system of universal +user authentication.<br />Check it out![9] <br /><br /><strong>Notes and Resources</strong><br />[1] Microsoft Hotmail +Service, <a href="http://www.hotmail.com">http://www.hotmail.com</a><br />[2] MSN Passport Network: <a + href="https://accountservices.passport.net/ppnetworkhome.srf?vv=320&lc=1033">https://accountservices.passport.net/ppnetworkhome.srf?vv=320&lc=1033</a><br />[3] +List of sites using MSN Passport, Passport@everything2: <a + href="http://www.everything2.com/index.pl?node=passport">http://www.everything2.com/index.pl?node=passport</a><br />[4] +"Microsoft .NET Passport and Wallet: Approach with Caution!", <a + href="http://web.mit.edu/ist/isnews/v17/n04/170408.html">http://web.mit.edu/ist/isnews/v17/n04/170408.html</a><br />[5] +"Microsoft Hailstorm and Passport", go-mono.com, <a + href="http://www.go-mono.com/passport.html">http://www.go-mono.com/passport.html</a><br />[6] Liberty Alliance +Project, Official Page, <a + href="http://www.projectliberty.org/index.php">http://www.projectliberty.org/index.php</a><br />[7] Liberty Alliance +Project, FAQs, <a + href="http://www.projectliberty.org/about/faq.php">http://www.projectliberty.org/about/faq.php</a><br />[8] +CyberArmy, Official Page, <a href="http://www.cyberarmy.net/">http://www.cyberarmy.net/</a><br />[9] Project Windstone, +Official Page, <a href="http://windstone.x-mirror.com/v2/">http://windstone.x-mirror.com/v2/</a><br />[10] Special +Operations and Security, official website, <a href="http://sos.x-mirror.com/">http://sos.x-mirror.com/</a><br />[11] +Windstone Communications Protocol, Development Whitepaper, <a + href="http://windstone.x-mirror.com/v2/development.php">http://windstone.x-mirror.com/v2/development.php</a><br />[12] +Windstone Protocol Commands, <a + href="http://windstone.x-mirror.com/v2/commands.php">http://windstone.x-mirror.com/v2/commands.php</a><br />[13] +Example of PHP Agent System (ZIP file), <a + href="http://windstone.x-mirror.com/v2/ws-testbed.zip">http://windstone.x-mirror.com/v2/ws-testbed.zip</a><br />[14] +Windstone Registration, <a + href="http://windstone.x-mirror.com/v2/register.php">http://windstone.x-mirror.com/v2/register.php</a><br />[15] +Windstone Login Page, <a + href="http://windstone.x-mirror.com/v2/login.php">http://windstone.x-mirror.com/v2/login.php</a><br />
@@ -4,6 +4,101 @@ content-type: article
timestamp: 1119989539 tags: "review|webdevelopment|php|databases" ----- -The first and most obvious difference between, say, a C++ programmer and a PHP developer is that the PHP developer needs a server with PHP support up and running somewhere in order to "show" others that the application is working. This normally means that a PHP developer must either have remote access to a server, or have one set up on his machine. Installing and configuring a server can be tricky sometimes, especially if you want to configure it "properly", but in some cases - for Linux/BSD users mainly - there are some pre-configured servers you can download and install. <br /><br />I won't examine all these methods in this article, but I'll describe three alternatives for installing and run a webserver on windows in 10 minutes or less.<br /><br /> + +<p>The first and most obvious difference between, say, a C++ programmer and a PHP developer is that the PHP developer + needs a server with PHP support up and running somewhere in order to "show" others that the application is working. + This normally means that a PHP developer must either have remote access to a server, or have one set up on his + machine. Installing and configuring a server can be tricky sometimes, especially if you want to configure it + "properly", but in some cases - for Linux/BSD users mainly - there are some pre-configured servers you can download + and install.</p> + +<p>I won't examine all these methods in this article, but I'll describe three alternatives for installing and run a + webserver on windows in 10 minutes or less.</p> + +<h3>Preliminary considerations</h3> +<p>Let's assume that you just want to have a server set up on your computer for <em>internal use</em> only, for testing + purposes. That means that you wouldn't need to be concerned about "security" or similar issues - you just want to be + able to run your PHP scripts and access your database(s) quickly and easily.</p> + +<p>As I said earlier, Linux users would probably opt for some package available for their favourite distros - they would + only have to download and install an .rpm or .deb package for (presumably) Apache httpd, PHP and MySQL, and just use + a basic configuration. There are other tools around which can help if you want to compile or configure Apache, but + that is beyond the scope of this article.</p> + +<p>Let's just focus on Windows users, then. Normally they like things that are easy to install and can be configured in + a few minutes <em>maximum</em> or not at all. Finally, let's assume that as a Windows user, you don't want to spend + more money for a new operating system with a bundled server, like Windows 2003, because you can use <a + href="http://www.apache.org">Apache</a> on Windows as well, for free. Having said this, I actually found 3 + possible solutions that are handy for PHP (or Perl) developers who don't want to spend time learning how to + configure a server. There are people like that, including myself to some extent.</p> + + +<h3>WAMPserver</h3> +<p><a href="http://www.wampserver.com">WAMP</a> stands for "Windows Apache MySQL PHP", and I must say that this product + happens to be my choice. The current version, available at the time of writing, offers:</p> +<ul> + <li>PHP 5.0.4</li> + <li>Apache 1.3.33</li> + <li>MySQL 4.1.10a</li> + <li>phpMyadmin 2.6.1-pl3</li> + <li>SQLitemanager 1.0.4</li> +</ul> +<p>This is basically a fully working PHP5 environment, with other tools like phpMyadmin to administer your MySQL + database even more easily (more laziness!), and, if you're into the new functionalities of PHP5, it also comes with + sqlitemanager, a php application similar to phpMyAdmin but for sqlite databases, which are supported by default in + PHP5. You download it, you start the installation program, and it's DONE. That's it. In 5 minutes you have your own + little apache/php/mysql(ite) environment up and running and you can start showing off your sites to your friends and + co-workers right away.</p> +<p>The program also installs two services which can be run at startup, a little icon in the system tray to access all + the tools and, of course, <a href="http://localhost">http://localhost</a> in your favourite browser.</p> +<p>If all this is still not enough for you, and you want more things more easily, you can install addons to set up PHP4 + (and seamlessly switch between the two with a single click!), Perl, Zend Accelerator, and so forth.</p> + +<h3>EasyPHP</h3> +<p>The second suite I will briefly describe is <a href="http://www.easyphp.org">EasyPHP</a>. This is a French project + (like the previous one, actually), which offers PHP4, MySQL and Apache, plus phpMyAdmin to administer the MySQL + databases. However, it doesn't offer PHP5 support yet (so it's not my favourite) and thus there's no sqlite support + either.</p> +<p>Apart from that, it works exactly like WAMP: you download it, you install it, and it's done. Services are installed + and you have - again - your little icon on the system tray to access all its functions and tools. It works well, but + it doesn't seem to have any add-ons available like WAMP does.</p> + + +<h3>XAMPP</h3> +<p>This is by far the most complete distribution of the three I am focusing on. This project is developed by <a + href="http://www.apachefriends.org">Apache Friends</a> and has a lot of features and flavours. XAMPP currently + includes:</p> +<ul> + <li>Apache HTTPD 2.0.54</li> + <li>MySQL 4.1.12</li> + <li>PHP 5.0.4 + 4.3.11 + PEAR + Switch</li> + <li>MiniPerl 5.8.6</li> + <li>Openssl 0.9.7g</li> + <li>PHPMyAdmin 2.6.2-pl1</li> + <li>XAMPP Control Panel 1.0</li> + <li>eAccelerator 0.9.3</li> + <li>Webalizer 2.01-10</li> + <li>Mercury Mail Transport System for Win32 and NetWare Systems v4.01a</li> + <li>FileZilla FTP Server 0.9.8a</li> + <li>SQLite 2.8.15</li> + <li>ADODB 4.63</li> + <li>Zend Optimizer 2.5.7</li> + <li>XAMPP Security for Windows 98, 2000, XP</li> +</ul> +<p>Honestly, you can't ask for more! If by chance you want to run this suite on other platforms, there's a version for + Mac OS X, Solaris, and even Linux.</p> +<p>The installation method for XAMPP is slightly more difficult than the other suites - you actually have to download + and unzip it in a folder of your choice. Then you're off and running.</p> +<p>Unfortunately (or fortunately), there's no icon on the system tray, so you need to actually access <a + href="http://localhost">http://localhost</a> to get a list of services and tools. It also doesn't come with + sqlitemanager, but you can download it and install it in the documents folder (like I did).</p> +<p>I actually use XAMPP - the "lite" edition, which is smaller and has less features - for my USB drive. Since it + doesn't require any services to be installed in order to run, you can simply copy it onto a USB stick and run it + from there!</p> -<h3>Preliminary considerations</h3><br />Let's assume that you just want to have a server set up on your computer for <em>internal use</em> only, for testing purposes. That means that you wouldn't need to be concerned about "security" or similar issues - you just want to be able to run your PHP scripts and access your database(s) quickly and easily. <br /><br />As I said earlier, Linux users would probably opt for some package available for their favourite distros - they would only have to download and install an .rpm or .deb package for (presumably) Apache httpd, PHP and MySQL, and just use a basic configuration. There are other tools around which can help if you want to compile or configure Apache, but that is beyond the scope of this article.<br /><br />Let's just focus on Windows users, then. Normally they like things that are easy to install and can be configured in a few minutes <em>maximum</em> or not at all. Finally, let's assume that as a Windows user, you don't want to spend more money for a new operating system with a bundled server, like Windows 2003, because you can use <a href="http://www.apache.org">Apache</a> on Windows as well, for free. Having said this, I actually found 3 possible solutions that are handy for PHP (or Perl) developers who don't want to spend time learning how to configure a server. There are people like that, including myself to some extent.<br /><br /><br /><h3>WAMPserver</h3><br /><a href="http://www.wampserver.com">WAMP</a> stands for "Windows Apache MySQL PHP", and I must say that this product happens to be my choice. The current version, available at the time of writing, offers:<br /><br />- PHP 5.0.4<br />- Apache 1.3.33<br />- MySQL 4.1.10a<br />- phpMyadmin 2.6.1-pl3<br />- SQLitemanager 1.0.4<br /><br />This is basically a fully working PHP5 environment, with other tools like phpMyadmin to administer your MySQL database even more easily (more laziness!), and, if you're into the new functionalities of PHP5, it also comes with sqlitemanager, a php application similar to phpMyAdmin but for sqlite databases, which are supported by default in PHP5.<br />You download it, you start the installation program, and it's DONE. That's it. In 5 minutes you have your own little apache/php/mysql(ite) environment up and running and you can start showing off your sites to your friends and co-workers right away.<br /><br />The program also installs two services which can be run at startup, a little icon in the system tray to access all the tools and, of course, <a href="http://localhost">http://localhost</a> in your favourite browser.<br /><br />If all this is still not enough for you, and you want more things more easily, you can install addons to set up PHP4 (and seamlessly switch between the two with a single click!), Perl, Zend Accelerator, and so forth.<br /><br /><br /><h3>EasyPHP</h3><br />The second suite I will briefly describe is <a href="http://www.easyphp.org">EasyPHP</a>. This is a French project (like the previous one, actually), which offers PHP4, MySQL and Apache, plus phpMyAdmin to administer the MySQL databases. However, it doesn't offer PHP5 support yet (so it's not my favourite) and thus there's no sqlite support either.<br /><br />Apart from that, it works exactly like WAMP: you download it, you install it, and it's done. Services are installed and you have - again - your little icon on the system tray to access all its functions and tools. It works well, but it doesn't seem to have any add-ons available like WAMP does.<br /><br /><h3>XAMPP</h3><br />This is by far the most complete distribution of the three I am focusing on. This project is developed by <a href="http://www.apachefriends.org">Apache Friends</a> and has a lot of features and flavours. XAMPP currently includes:<br /><br />- Apache HTTPD 2.0.54<br />- MySQL 4.1.12<br />- PHP 5.0.4 + 4.3.11 + PEAR + Switch<br />- MiniPerl 5.8.6<br />- Openssl 0.9.7g<br />- PHPMyAdmin 2.6.2-pl1<br />- XAMPP Control Panel 1.0<br />- eAccelerator 0.9.3<br />- Webalizer 2.01-10<br />- Mercury Mail Transport System for Win32 and NetWare Systems v4.01a<br />- FileZilla FTP Server 0.9.8a<br />- SQLite 2.8.15<br />- ADODB 4.63<br />- Zend Optimizer 2.5.7<br />- XAMPP Security for Windows 98, 2000, XP<br /><br />Honestly, you can't ask for more! If by chance you want to run this suite on other platforms, there's a version for Mac OS X, Solaris, and even Linux.<br /><br />The installation method for XAMPP is slightly more difficult than the other suites - you actually have to download and unzip it in a folder of your choice. Then you're off and running.<br /><br />Unfortunately (or fortunately), there's no icon on the system tray, so you need to actually access <a href="http://localhost">http://localhost</a> to get a list of services and tools. It also doesn't come with sqlitemanager, but you can download it and install it in the documents folder (like I did).<br /><br />I actually use XAMPP - the "lite" edition, which is smaller and has less features - for my USB drive. Since it doesn't require any services to be installed in order to run, you can simply copy it onto a USB stick and run it from there!<br /><br /><h3>Conclusion</h3><br />I'm quite impressed by all of the server packages I reviewed; WAMP and XAMPP in particular. I can now carry around my websites and applications and instantly run them or show them to anyone who has a computer with a USB port.<br /><br />As I said in the beginning, these programs are NOT meant to be used in a production environment or to be accessed publicly, therefore, security is not a consideration here. In my opinion, they are simply excellent for testing purposes, and for now, that's what I need them for.<br /> +<h3>Conclusion</h3> +<p>I'm quite impressed by all of the server packages I reviewed; WAMP and XAMPP in particular. I can now carry around my + websites and applications and instantly run them or show them to anyone who has a computer with a USB port.</p> +<p>As I said in the beginning, these programs are NOT meant to be used in a production environment or to be accessed + publicly, therefore, security is not a consideration here. In my opinion, they are simply excellent for testing + purposes, and for now, that's what I need them for.</p>
@@ -4,4 +4,173 @@ content-type: article
timestamp: 1139156266 tags: "review" ----- -How can I learn how to use Linux? Simple, you grab a copy of any of the twelve thousands different 'distros' available out there, and you install it on your PC, hoping not to damage your existing Windows installation (if any). Or there's a more lazy and safe way, get one of the few dozens of 'Linux live CDs', burn the cd, boot from it, and you're all set...It's true, nowadays the best solutions for Linux newbies is trying out a few <em>live CDs</em> before installing <em>the real deal</em> on their machines: it's safe(r), takes less time and it's much more fun. Yes, some people may object saying that the fun in learning Linux is installing it on your hard drive first, but a few people I know who 'accidentally' overwrote their Master Boot Record or 'accidentally' damaged their Windows installation might disagree there...<br /><br />A live distribution[1] basically is a CD (or DVD or USB drive) containing a fully working operating system - Linux in the specific - which can be run directly from the CD itself and does not require an hard disk installation. The drawback is that normally some part of the operating system are loaded and run from a <em>ram disk </em> and therefore the data written there will be erased once the system reboots. Due to the nature of CDs, saving data on the CD itself is obviously not possible, and this limitation can normally be bypassed by saving changes within a file to store either on your hard drive, remotely, or on some other media which allows read/writing like a floppy disk or USB stick.<br /><br />Linux is well known for the many different distributions available, each with its own features, pros and cons. The same happens for live distros: in the last few years the number grew a lot[2] and nearly all major distributions now have a <em>live</em> counterpart, mostly to allow new users to preview their product.<br /><br />The most famous, and possibly one of the first LiveCD ever made was Knoppix[3], a Debian[4]-based CD featuring a KDE[5] desktop environment and many useful applications <em>squeezed</em> into 700MB of space which can be used as a fully functional operating system. Add to this a truly impressive on-the-fly hardware detection ability, and there's the <em>best</em> (arguably) multi-purpose linux Live distribution ever made.<br />If Knoppix is "so perfect", why do other distributions exist at all? Well, some people noticed that they wanted to remove something from the collection of applications Knoppix included in the default CD, others wanted to add other bits, so soon a long list of Knoppix-based <em>customized</em> distros followed[6]...<br /><br />This is another story, I'd like focus my attention on perhaps the most valid Knoppix-alternative out there: Slax[7].<br /><br /><strong>Size vs. Features</strong><br />Knoppix was the first Live CD I tried, but I didn't like one thing about it: its size. 700MB means one CD, and one CD means that I can't carry it in my pocket now can I? Not literally, anyway, at least not comfortably. So I started looking for a smaller alternative, and I found various possible candidates. Damn Small Linux[8] was one of the most extreme: 50MB in total, nothing more, nothing less, and it worked! Alright, I must say that now it's much better than it was when I first tried it but, it was more or less functional at the time (2003), although relatively new on the scene. <br />I liked it, really but, due to its size self-limitations the user interface wasn't too pretty, and the applications included weren't exactly what I was looking for: when you're used to Firefox (or better, Firebird, at the time) to browse the Net, Dillo[9] doesn't really look exactly appealing and feature-rich - although remarkable for its size. <br /><br />I decided that I wanted something more than that, also because I was planning to burn the live-linux distro on a <em>brand new</em> (at the time) 8cm CD-RW with 180MB of space available. The best solution I could find, at the time and still now, perhaps, was Slackware Live CD, a very promising live distribution based on Slackware Linux[10].<br />I was very impressed at the time, especially for the effort the developer put to create a mini-distribution which is also user-friendly and nice-looking as well, incorporating the KDE Desktop. These are not the only strengths of the project, as we'll see in the next sections but, certainly the first thing everyone can notice. <br /><br />After a while the project changed names and became "Slax", perhaps to create its own identity and expand itself following a different direction than its non-live predecessor: while the 'real' Slackware is often quite cautious on using latest technologies and normally includes <em>stable</em> packages, Slax does quite the opposite, including more recent applications and solutions. <br /> <br /><br /><strong>Overview</strong><br />Slax website[7] evolved quite a bit through the years, and now it's a true example of clarity and exhaustiveness. An essential clean design, access to a lot of information on how to use the live CD, solutions to common problems and also something for developers interested in creating their own live distro: the truly remarkable thing is that the biggest part of the work is done - apparently - by one single person, Tomas Matejicek[11], the founder of the project. <br /><br />The strength of Slax - as I anticipated before - is perhaps its ability to compress a few carefully selected, commonly used applications which allow the user to fully enjoy his live experience in 177MB of space. Certainly the choice of using the K Desktop Environment instead of a more lightweight one like Fluxbox or Xfce may seem illogical, but for sure new Linux users would feel more "at home" with KDE, especially if coming from Windows XP. KDE is by far the most user friendly desktop environment available for Linux, and Slax made it even more user friendly by carefully organizing menus in an optimal way without cluttering the desktop with a myriad of icons and overly-crowded navigation bars.<br />When it comes to the applications included, Slax offers nearly everything the average desktop user needs: word processor (KWord), spreadsheet (KSpread), browser (Konqueror), multimedia player (Kplayer), editors, games and much more[26]! In its simplicity and especially for its size, Slax is a well-rounded, multi-purpose distribution. There's an interesting article available on tuxs.org[12] which documents the author's <em>personal challenge</em> of using <em>only</em> Slax (version 4.1.4 at the time) for a whole week. Surprisingly, the writer was really impressed of the features offered by this little distro: he was able to connect to the Net, browse the web, check his mail, write and do various other "everyday task", with no difficulty or extra hassle.<br /><br />Slax is also <em>very</em> fast: normally some other live CDs compress <em>the whole</em> operating system on a single file, or a few, while Slax developed an optimized modular architecture: groups of programs or even single applications are compressed <em>separately</em> into .mo files: this technique sensibly increases the performance and speed of the operating system: whenever I open KWord, for example, to write an article, the OS will access <em>just</em> the KWord module on the disk, without touching other modules. <br /><em>Surely there's a way to add/remove modules...</em> - Yes, there is, and this will be discussed later on.<br /><br />Finally, like various other live distros, Slax supports some handy "cheatcodes" which can be used to boot customize some options when booting the operating system.<br /><br />Some of the most interesting codes include:<br /><br /><code><br />boot: slax webconfig=passphrase<br />boot: slax webconfig=ask<br /></code><br />This is a recent feature: Slax allows users to save their settings remotely, directly on Slax server. Every user has to choose a 10+ characters password in order to use this feature[27].<br /><br /><code><br />boot: slax toram (just alias for copy2ram)<br />boot: slax copy2ram<br /></code><br />This code can be used to copy the entire operating system to your computer's RAM: this may make the booting process slower, but Slax will run faster than light afterwards (256MB+ ram required)<br /><br /><code><br />boot: slax changes=/dev/device<br /></code><br />Saves changes to a specified device using any linux filesystem, like a hard drive or a usb stick.<br /><br /><code><br />boot: slax load=module<br /></code><br />Load optional modules stored in the /optional/ directory. For further information about modules, see the "Make your own!" section below.<br /><br />For a full list of all Slax cheat codes, see the cheatcodes page[13] on Slax website. <br /><br /><strong>Different flavors</strong><br />I defined Slax a multi-purpose mini distribution, but as always different people have different needs: some users may want to be able to run some windows applications through Wine[14], for example, or may prefer a more lightweight Desktop Environment. The huge - and logical - limitation of all live CDs is that they normally don't offer the possibility of adding applications and packages: when the operating system starts the "root" partition is transferred onto a ramdrive which allows - even if until reboot - read/write access. Although this limitation can be overcome at least through using some of the cheatcodes described before, having the application already installed could be much easier.<br /><br />That's why Slax developers decided to start creating different <em>flavors</em> of Slax. Some of them are not available at the moment (the current slax version at the time of writing is 5.0.6), and others can be already downloaded from the official site[15].<br /><br /><span style="text-decoration:underline;">Slax "Kill Bill"</span> - This is the first Slax customization which became available, and came out more or less at the same time as Tarantino's movie. <em>Bill</em> Gates didn't seem to mind at all, even if this version actually allows users to run <em>some</em> Windows applications like notepad on linux. Basically Wine[15] dosbox[16] and qemu[17] can make this possible, with limitations... nothing too exciting but, definitely fun to try out.<br /><br /><br /><span style="text-decoration:underline;">Slax "Server"</span><br /><fieldset><blockquote>SLAX SRV is a pocket operating system with many internet services ready to use. Includes DNS, DHCP, SMB, HTTP, FTP, MySQL, SMTP, POP3, IMAP, SSH.</blockquote></fieldset><br />Unfortunately, this flavor of Slax is not yet available for download, but some updates concerning its status are available on the developer's TODO list[18]:<br /><br /><em>SE: mysql up and running <br />SE: httpd up and running, with PHP with MySQL <br />SE: DNS server up and running as a cache server <br />SE: DHCP server included but not started automatically, could confuse local network <br />SE: SSH server up and running <br />SE: MAIL server up and running, needs testing <br />SE: FTP server up and running</em><br /><br />This is definitely going to be an interesting project, and I'm really looking forward to it. In the meantime, there are two server-oriented live distribution available, which is also based on Slax: Slampp[19] and in particular Slampp Lite[20]. I tried Slampp Lite and I was really satisfied with its features: support for PHP, Perl, Python on Apache (basically includes XAMPP for Linux[21]), xfce desktop environment, the latest Firefox browser, antivirus, firewall, and more.<br /><br /><span style="text-decoration:underline;">Slax "Popcorn"</span><br />This Slax flavor is more minimalist, and substantially different from the Standard Edition. For a start it features the more lightweight xfce Desktop Environment[22], and thus removes all KDE-based applications making more room for Firefox browser and Abiword, which are not included in the Standard version due to the presence of their <em>KDE counterparts</em> (Konqueror and Kword). <br />Very fast, simple, and fits 128MB: suitable for small USB keys more than anything. <br /><br /><span style="text-decoration:underline;">Slax "Frodo"</span><br />As the name implies, this version is smaller again (47MB), and it's basically the base for all other flavors as it includes just a Linux console and some scripts for hardware detection and setting up the live environment.<br /><br /><strong>Make your own!</strong><br /><em>Nice! But I'd have included X instead of Y, then added Z as well, perhaps...</em><br />That's a common feeling: the truth is that people are never happy with what they get! If you're still not happy with what Slax in all its different flavors can offer you, well, you can make your own. Although some might want to start more or less from scratch, creating <em>Slax-based</em> customizations (this was the only option until the more recent versions), now there's an easier way: modules and the documentation present on the official site is complete enough and describes the necessary steps to take to create, modify and use them[23]. Modules are basically files with .mo extension containing an application which will be loaded by Slax at startup, if placed in the /modules/ directory, or only if required by the user (see the corresponding cheatcode) if placed in the /optional/ directory. The easiest way to create a module which requires no particular skill is converting a Slackware package, by issuing this command:<br /><br /><code>tgz2mo application.tgz application.mo</code> <br /><br />Of course there are other ways to create modules without converting Slackware packages, further details in the documentation[23]. There are also a lot (currently 576!) of user-contributed modules ready for use available for download and hosted on the Slax site[24], the only problem is that inevitably some of them seem to be out-of-date, and not constantly updated by their maintainers.<br /><br />Last but not least, the dream of all Windows users: MySlax Creator and MySlax Modulator[25], which allow Windows users to create their own Slax distribution with custom modules both for CD and USB drive and create Slax modules on windows respectively. Two really nice additions which make this project even more (Windows-)user-friendly!<br /><br /><strong>Conclusions</strong><br />Slax is exactly how advertised on its website: <em>"[a] fast and beautiful Linux operating system which fits on small (3.14") CD-ROM disc"</em>, nothing more, nothing less. Personally, I'd like to emphasize its user-friendliness, as it seems the most valid alternative to Knoppix, and perhaps even better: it does not include <em>as many applications as possible</em> which could confuse Linux neophytes but, just a bunch of useful programs for everyday use to give users a <em>taste</em> of what Linux is capable to do.<br />Normally, as Slax is mostly maintained by one person, Slax releases are not too frequent: normally 2-3 per year maximum. The version which was tested for this article was the 5.0.6 and (un)luckily a new one <em>just came out</em> while I was writing the article: version 5.0.7b is now available for download[15] and features KDE 3.5. A few bugs were discovered immediately after its released and quickly fixed with a patch-module (hence the "b"): This YOUR chance to try it out before I do...<br /><br />Happy Sla<em>x</em>ing! <br /><br /><br />[1]Linux Live CD - Wikipedia: <a href="http://en.wikipedia.org/wiki/Linux_live_cd">http://en.wikipedia.org/wiki/Linux_live_cd</a><br />[2]DrozenTech's LiveCD List: <a href="http://www.frozentech.com/content/livecd.php">http://www.frozentech.com/content/livecd.php</a><br />[3]Knoppix Official Site: <a href="http://www.knoppix.org/">http://www.knoppix.org/</a><br />[4]Debian Official Site: <a href="http://www.debian.org/">http://www.debian.org/</a><br />[5]K Desktop Environment: <a href="http://www.kde.org/">http://www.kde.org/</a><br />[6]Knoppix Customizations: <a href="http://www.knoppix.net/wiki/Knoppix_Customisations">http://www.knoppix.net/wiki/Knoppix_Customisations</a><br />[7]Slax Live CD: <a href="http://slax.linux-live.org">http://slax.linux-live.org</a><br />[8]Damn Small Linux - Official Page: <a href="http://www.damnsmalllinux.org/">http://www.damnsmalllinux.org/</a><br />[9]Dillo Browser, Official Page: <a href="http://www.dillo.org/">http://www.dillo.org/</a><br />[10]Slackware Linux, Official Page: <a href="http://www.slackware.com/">http://www.slackware.com/</a><br />[11]Slax - Developer's page: <a href="http://slax.linux-live.org/credits.php">http://slax.linux-live.org/credits.php</a><br />[12]Barney Matthews, "A week with Slax 4.1.4" - Tuxs.org: <a href="http://www.tuxs.org/slax.htm">http://www.tuxs.org/slax.htm</a><br />[13]Slax cheatcodes: <a href="http://slax.linux-live.org/cheatcodes.php">http://slax.linux-live.org/cheatcodes.php</a><br />[14]Wine HQ: <a href="http://www.winehq.com/">http://www.winehq.com/</a> <br />[15]Slax download page: <a href="http://slax.linux-live.org/download.php">http://slax.linux-live.org/download.php</a><br />[16]Dosbox Project: <a href="http://dosbox.sourceforge.net/news.php?show_news=1">http://dosbox.sourceforge.net/news.php?show_news=1</a><br />[17]Qemu Project: <a href="http://fabrice.bellard.free.fr/qemu/">http://fabrice.bellard.free.fr/qemu/</a><br />[18]Slax TODO list: <a href="http://slax.linux-live.org/todo.php">http://slax.linux-live.org/todo.php</a><br />[19]Slampp Official Page: <a href="http://slampp.abangadek.com/wiki/wikka.php?wakka=HomePage">http://slampp.abangadek.com/wiki/wikka.php?wakka=HomePage</a><br />[20]Slampp Lite page: <a href="http://slampp.abangadek.com/wiki/wikka.php?wakka=SlamppLite">http://slampp.abangadek.com/wiki/wikka.php?wakka=SlamppLite</a><br />[21]XAMPP for Linux: <a href="http://www.apachefriends.org/en/xampp-linux.html">http://www.apachefriends.org/en/xampp-linux.html</a><br />[22]Xfce desktop environment, official page: <a href="http://www.xfce.org">http://www.xfce.org</a><br />[23]Slax Documentation - Modules: <a href="http://slax.linux-live.org/doc_modules.php">http://slax.linux-live.org/doc_modules.php</a><br />[24]Slax modules page: <a href="http://slax.linux-live.org/modules.php">http://slax.linux-live.org/modules.php</a><br />[25]MySlax Projects: <a href="http://myslax.bonsonno.org/">http://myslax.bonsonno.org/</a><br />[26]Slax - installed packages: <a href="http://slax.linux-live.org/installed_packages.txt">http://slax.linux-live.org/installed_packages.txt</a><br />[27]Slax - Webconfig: <a href="http://slax.linux-live.org/webconfig.php">http://slax.linux-live.org/webconfig.php</a><br /> +How can I learn how to use Linux? Simple, you grab a copy of any of the twelve thousands different 'distros' available +out there, and you install it on your PC, hoping not to damage your existing Windows installation (if any). Or there's a +more lazy and safe way, get one of the few dozens of 'Linux live CDs', burn the cd, boot from it, and you're all +set...It's true, nowadays the best solutions for Linux newbies is trying out a few <em>live CDs</em> before installing +<em>the real deal</em> on their machines: it's safe(r), takes less time and it's much more fun. Yes, some people may +object saying that the fun in learning Linux is installing it on your hard drive first, but a few people I know who +'accidentally' overwrote their Master Boot Record or 'accidentally' damaged their Windows installation might disagree +there...<br /><br />A live distribution[1] basically is a CD (or DVD or USB drive) containing a fully working operating +system - Linux in the specific - which can be run directly from the CD itself and does not require an hard disk +installation. The drawback is that normally some part of the operating system are loaded and run from a <em>ram disk +</em> and therefore the data written there will be erased once the system reboots. Due to the nature of CDs, saving data +on the CD itself is obviously not possible, and this limitation can normally be bypassed by saving changes within a file +to store either on your hard drive, remotely, or on some other media which allows read/writing like a floppy disk or USB +stick.<br /><br />Linux is well known for the many different distributions available, each with its own features, pros +and cons. The same happens for live distros: in the last few years the number grew a lot[2] and nearly all major +distributions now have a <em>live</em> counterpart, mostly to allow new users to preview their product.<br /><br />The +most famous, and possibly one of the first LiveCD ever made was Knoppix[3], a Debian[4]-based CD featuring a KDE[5] +desktop environment and many useful applications <em>squeezed</em> into 700MB of space which can be used as a fully +functional operating system. Add to this a truly impressive on-the-fly hardware detection ability, and there's the +<em>best</em> (arguably) multi-purpose linux Live distribution ever made.<br />If Knoppix is "so perfect", why do other +distributions exist at all? Well, some people noticed that they wanted to remove something from the collection of +applications Knoppix included in the default CD, others wanted to add other bits, so soon a long list of Knoppix-based +<em>customized</em> distros followed[6]...<br /><br />This is another story, I'd like focus my attention on perhaps the +most valid Knoppix-alternative out there: Slax[7].<br /><br /><strong>Size vs. Features</strong><br />Knoppix was the +first Live CD I tried, but I didn't like one thing about it: its size. 700MB means one CD, and one CD means that I can't +carry it in my pocket now can I? Not literally, anyway, at least not comfortably. So I started looking for a smaller +alternative, and I found various possible candidates. Damn Small Linux[8] was one of the most extreme: 50MB in total, +nothing more, nothing less, and it worked! Alright, I must say that now it's much better than it was when I first tried +it but, it was more or less functional at the time (2003), although relatively new on the scene. <br />I liked it, +really but, due to its size self-limitations the user interface wasn't too pretty, and the applications included weren't +exactly what I was looking for: when you're used to Firefox (or better, Firebird, at the time) to browse the Net, +Dillo[9] doesn't really look exactly appealing and feature-rich - although remarkable for its size. <br /><br />I +decided that I wanted something more than that, also because I was planning to burn the live-linux distro on a <em>brand + new</em> (at the time) 8cm CD-RW with 180MB of space available. The best solution I could find, at the time and +still now, perhaps, was Slackware Live CD, a very promising live distribution based on Slackware Linux[10].<br />I was +very impressed at the time, especially for the effort the developer put to create a mini-distribution which is also +user-friendly and nice-looking as well, incorporating the KDE Desktop. These are not the only strengths of the project, +as we'll see in the next sections but, certainly the first thing everyone can notice. <br /><br />After a while the +project changed names and became "Slax", perhaps to create its own identity and expand itself following a different +direction than its non-live predecessor: while the 'real' Slackware is often quite cautious on using latest technologies +and normally includes <em>stable</em> packages, Slax does quite the opposite, including more recent applications and +solutions. <br /> <br /><br /><strong>Overview</strong><br />Slax website[7] evolved quite a bit through the years, and +now it's a true example of clarity and exhaustiveness. An essential clean design, access to a lot of information on how +to use the live CD, solutions to common problems and also something for developers interested in creating their own live +distro: the truly remarkable thing is that the biggest part of the work is done - apparently - by one single person, +Tomas Matejicek[11], the founder of the project. <br /><br />The strength of Slax - as I anticipated before - is perhaps +its ability to compress a few carefully selected, commonly used applications which allow the user to fully enjoy his +live experience in 177MB of space. Certainly the choice of using the K Desktop Environment instead of a more lightweight +one like Fluxbox or Xfce may seem illogical, but for sure new Linux users would feel more "at home" with KDE, especially +if coming from Windows XP. KDE is by far the most user friendly desktop environment available for Linux, and Slax made +it even more user friendly by carefully organizing menus in an optimal way without cluttering the desktop with a myriad +of icons and overly-crowded navigation bars.<br />When it comes to the applications included, Slax offers nearly +everything the average desktop user needs: word processor (KWord), spreadsheet (KSpread), browser (Konqueror), +multimedia player (Kplayer), editors, games and much more[26]! In its simplicity and especially for its size, Slax is a +well-rounded, multi-purpose distribution. There's an interesting article available on tuxs.org[12] which documents the +author's <em>personal challenge</em> of using <em>only</em> Slax (version 4.1.4 at the time) for a whole week. +Surprisingly, the writer was really impressed of the features offered by this little distro: he was able to connect to +the Net, browse the web, check his mail, write and do various other "everyday task", with no difficulty or extra +hassle.<br /><br />Slax is also <em>very</em> fast: normally some other live CDs compress <em>the whole</em> operating +system on a single file, or a few, while Slax developed an optimized modular architecture: groups of programs or even +single applications are compressed <em>separately</em> into .mo files: this technique sensibly increases the performance +and speed of the operating system: whenever I open KWord, for example, to write an article, the OS will access +<em>just</em> the KWord module on the disk, without touching other modules. <br /><em>Surely there's a way to add/remove + modules...</em> - Yes, there is, and this will be discussed later on.<br /><br />Finally, like various other live +distros, Slax supports some handy "cheatcodes" which can be used to boot customize some options when booting the +operating system.<br /><br />Some of the most interesting codes +include:<br /><br /><code><br />boot: slax webconfig=passphrase<br />boot: slax webconfig=ask<br /></code><br />This is +a recent feature: Slax allows users to save their settings remotely, directly on Slax server. Every user has to choose a +10+ characters password in order to use this +feature[27].<br /><br /><code><br />boot: slax toram (just alias for copy2ram)<br />boot: slax copy2ram<br /></code><br />This +code can be used to copy the entire operating system to your computer's RAM: this may make the booting process slower, +but Slax will run faster than light afterwards (256MB+ ram +required)<br /><br /><code><br />boot: slax changes=/dev/device<br /></code><br />Saves changes to a specified device +using any linux filesystem, like a hard drive or a usb +stick.<br /><br /><code><br />boot: slax load=module<br /></code><br />Load optional modules stored in the /optional/ +directory. For further information about modules, see the "Make your own!" section below.<br /><br />For a full list of +all Slax cheat codes, see the cheatcodes page[13] on Slax website. <br /><br /><strong>Different flavors</strong><br />I +defined Slax a multi-purpose mini distribution, but as always different people have different needs: some users may want +to be able to run some windows applications through Wine[14], for example, or may prefer a more lightweight Desktop +Environment. The huge - and logical - limitation of all live CDs is that they normally don't offer the possibility of +adding applications and packages: when the operating system starts the "root" partition is transferred onto a ramdrive +which allows - even if until reboot - read/write access. Although this limitation can be overcome at least through using +some of the cheatcodes described before, having the application already installed could be much +easier.<br /><br />That's why Slax developers decided to start creating different <em>flavors</em> of Slax. Some of them +are not available at the moment (the current slax version at the time of writing is 5.0.6), and others can be already +downloaded from the official site[15].<br /><br /><span style="text-decoration:underline;">Slax "Kill Bill"</span> - +This is the first Slax customization which became available, and came out more or less at the same time as Tarantino's +movie. <em>Bill</em> Gates didn't seem to mind at all, even if this version actually allows users to run <em>some</em> +Windows applications like notepad on linux. Basically Wine[15] dosbox[16] and qemu[17] can make this possible, with +limitations... nothing too exciting but, definitely fun to try out.<br /><br /><br /><span + style="text-decoration:underline;">Slax "Server"</span><br /> +<blockquote>SLAX SRV is a pocket operating system with many internet services ready to use. Includes DNS, DHCP, SMB, + HTTP, FTP, MySQL, SMTP, POP3, IMAP, SSH.</blockquote><br />Unfortunately, this flavor of Slax is not yet available +for download, but some updates concerning its status are available on the developer's TODO list[18]:<br /><br /><em>SE: + mysql up and running <br />SE: httpd up and running, with PHP with MySQL <br />SE: DNS server up and running as a + cache server <br />SE: DHCP server included but not started automatically, could confuse local network <br />SE: SSH + server up and running <br />SE: MAIL server up and running, needs testing <br />SE: FTP server up and + running</em><br /><br />This is definitely going to be an interesting project, and I'm really looking forward to it. +In the meantime, there are two server-oriented live distribution available, which is also based on Slax: Slampp[19] and +in particular Slampp Lite[20]. I tried Slampp Lite and I was really satisfied with its features: support for PHP, Perl, +Python on Apache (basically includes XAMPP for Linux[21]), xfce desktop environment, the latest Firefox browser, +antivirus, firewall, and more.<br /><br /><span style="text-decoration:underline;">Slax "Popcorn"</span><br />This Slax +flavor is more minimalist, and substantially different from the Standard Edition. For a start it features the more +lightweight xfce Desktop Environment[22], and thus removes all KDE-based applications making more room for Firefox +browser and Abiword, which are not included in the Standard version due to the presence of their <em>KDE + counterparts</em> (Konqueror and Kword). <br />Very fast, simple, and fits 128MB: suitable for small USB keys more +than anything. <br /><br /><span style="text-decoration:underline;">Slax "Frodo"</span><br />As the name implies, this +version is smaller again (47MB), and it's basically the base for all other flavors as it includes just a Linux console +and some scripts for hardware detection and setting up the live environment.<br /><br /><strong>Make your + own!</strong><br /><em>Nice! But I'd have included X instead of Y, then added Z as well, perhaps...</em><br />That's +a common feeling: the truth is that people are never happy with what they get! If you're still not happy with what Slax +in all its different flavors can offer you, well, you can make your own. Although some might want to start more or less +from scratch, creating <em>Slax-based</em> customizations (this was the only option until the more recent versions), now +there's an easier way: modules and the documentation present on the official site is complete enough and describes the +necessary steps to take to create, modify and use them[23]. Modules are basically files with .mo extension containing an +application which will be loaded by Slax at startup, if placed in the /modules/ directory, or only if required by the +user (see the corresponding cheatcode) if placed in the /optional/ directory. The easiest way to create a module which +requires no particular skill is converting a Slackware package, by issuing this +command:<br /><br /><code>tgz2mo application.tgz application.mo</code> <br /><br />Of course there are other ways to +create modules without converting Slackware packages, further details in the documentation[23]. There are also a lot +(currently 576!) of user-contributed modules ready for use available for download and hosted on the Slax site[24], the +only problem is that inevitably some of them seem to be out-of-date, and not constantly updated by their +maintainers.<br /><br />Last but not least, the dream of all Windows users: MySlax Creator and MySlax Modulator[25], +which allow Windows users to create their own Slax distribution with custom modules both for CD and USB drive and create +Slax modules on windows respectively. Two really nice additions which make this project even more +(Windows-)user-friendly!<br /><br /><strong>Conclusions</strong><br />Slax is exactly how advertised on its website: +<em>"[a] fast and beautiful Linux operating system which fits on small (3.14") CD-ROM disc"</em>, nothing more, nothing +less. Personally, I'd like to emphasize its user-friendliness, as it seems the most valid alternative to Knoppix, and +perhaps even better: it does not include <em>as many applications as possible</em> which could confuse Linux neophytes +but, just a bunch of useful programs for everyday use to give users a <em>taste</em> of what Linux is capable to +do.<br />Normally, as Slax is mostly maintained by one person, Slax releases are not too frequent: normally 2-3 per year +maximum. The version which was tested for this article was the 5.0.6 and (un)luckily a new one <em>just came out</em> +while I was writing the article: version 5.0.7b is now available for download[15] and features KDE 3.5. A few bugs were +discovered immediately after its released and quickly fixed with a patch-module (hence the "b"): This YOUR chance to try +it out before I do...<br /><br />Happy Sla<em>x</em>ing! <br /><br /><br />[1]Linux Live CD - Wikipedia: <a + href="http://en.wikipedia.org/wiki/Linux_live_cd">http://en.wikipedia.org/wiki/Linux_live_cd</a><br />[2]DrozenTech's +LiveCD List: <a + href="http://www.frozentech.com/content/livecd.php">http://www.frozentech.com/content/livecd.php</a><br />[3]Knoppix +Official Site: <a href="http://www.knoppix.org/">http://www.knoppix.org/</a><br />[4]Debian Official Site: <a + href="http://www.debian.org/">http://www.debian.org/</a><br />[5]K Desktop Environment: <a + href="http://www.kde.org/">http://www.kde.org/</a><br />[6]Knoppix Customizations: <a + href="http://www.knoppix.net/wiki/Knoppix_Customisations">http://www.knoppix.net/wiki/Knoppix_Customisations</a><br />[7]Slax +Live CD: <a href="http://slax.linux-live.org">http://slax.linux-live.org</a><br />[8]Damn Small Linux - Official Page: +<a href="http://www.damnsmalllinux.org/">http://www.damnsmalllinux.org/</a><br />[9]Dillo Browser, Official Page: <a + href="http://www.dillo.org/">http://www.dillo.org/</a><br />[10]Slackware Linux, Official Page: <a + href="http://www.slackware.com/">http://www.slackware.com/</a><br />[11]Slax - Developer's page: <a + href="http://slax.linux-live.org/credits.php">http://slax.linux-live.org/credits.php</a><br />[12]Barney Matthews, +"A week with Slax 4.1.4" - Tuxs.org: <a + href="http://www.tuxs.org/slax.htm">http://www.tuxs.org/slax.htm</a><br />[13]Slax cheatcodes: <a + href="http://slax.linux-live.org/cheatcodes.php">http://slax.linux-live.org/cheatcodes.php</a><br />[14]Wine HQ: <a + href="http://www.winehq.com/">http://www.winehq.com/</a> <br />[15]Slax download page: <a + href="http://slax.linux-live.org/download.php">http://slax.linux-live.org/download.php</a><br />[16]Dosbox Project: +<a + href="http://dosbox.sourceforge.net/news.php?show_news=1">http://dosbox.sourceforge.net/news.php?show_news=1</a><br />[17]Qemu +Project: <a href="http://fabrice.bellard.free.fr/qemu/">http://fabrice.bellard.free.fr/qemu/</a><br />[18]Slax TODO +list: <a href="http://slax.linux-live.org/todo.php">http://slax.linux-live.org/todo.php</a><br />[19]Slampp Official +Page: <a + href="http://slampp.abangadek.com/wiki/wikka.php?wakka=HomePage">http://slampp.abangadek.com/wiki/wikka.php?wakka=HomePage</a><br />[20]Slampp +Lite page: <a + href="http://slampp.abangadek.com/wiki/wikka.php?wakka=SlamppLite">http://slampp.abangadek.com/wiki/wikka.php?wakka=SlamppLite</a><br />[21]XAMPP +for Linux: <a + href="http://www.apachefriends.org/en/xampp-linux.html">http://www.apachefriends.org/en/xampp-linux.html</a><br />[22]Xfce +desktop environment, official page: <a href="http://www.xfce.org">http://www.xfce.org</a><br />[23]Slax Documentation - +Modules: <a + href="http://slax.linux-live.org/doc_modules.php">http://slax.linux-live.org/doc_modules.php</a><br />[24]Slax +modules page: <a + href="http://slax.linux-live.org/modules.php">http://slax.linux-live.org/modules.php</a><br />[25]MySlax Projects: +<a href="http://myslax.bonsonno.org/">http://myslax.bonsonno.org/</a><br />[26]Slax - installed packages: <a + href="http://slax.linux-live.org/installed_packages.txt">http://slax.linux-live.org/installed_packages.txt</a><br />[27]Slax +- Webconfig: <a href="http://slax.linux-live.org/webconfig.php">http://slax.linux-live.org/webconfig.php</a><br />