<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	>

<channel>
	<title>CodingExperiments.com</title>
	<atom:link href="http://codingexperiments.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://codingexperiments.com</link>
	<description>Linux, PHP, and the blogosphere</description>
	<pubDate>Wed, 01 Jul 2009 00:09:56 +0000</pubDate>
	<generator>http://wordpress.org/?v=abc</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>From Frankenstein to the Singularity: The Story of Artificial Intelligence &#8212; Part One</title>
		<link>http://codingexperiments.com/from-frankenstein-to-the-singularity-the-story-of-artificial-intelligence-part-one/</link>
		<comments>http://codingexperiments.com/from-frankenstein-to-the-singularity-the-story-of-artificial-intelligence-part-one/#comments</comments>
		<pubDate>Wed, 03 Jun 2009 01:01:39 +0000</pubDate>
		<dc:creator>Rishabh Mishra</dc:creator>
		
		<category><![CDATA[Facts]]></category>

		<category><![CDATA[artificial intelligence]]></category>

		<category><![CDATA[history]]></category>

		<guid isPermaLink="false">http://codingexperiments.com/?p=756</guid>
		<description><![CDATA[Artificial intelligence is a field that many think began in 1956. However, the basic idea of a humans creating some sort of intelligent being has been around for thousands of years. This is the first post in a series that will dive deep into the history of artificial intelligence and explain the milestones that have gotten computers to the state that they are in today.]]></description>
			<content:encoded><![CDATA[<p><em>This is the first in a series describing the past, present, and future of artificial intelligence. Check back to find more posts.</em></p>
<p>When asked about the meaning of life, digital physics pioneer Edward Fredkin responded, &#8220;I think our mission is to create artificial intelligence. It&#8217;s the next step in evolution&#8221; (Wright 80). Artificial intelligence, defined by Princeton&#8217;s Wordnet is, &#8220;the branch of computer science that deal with writing computer programs that can solve problems creatively&#8221; (&#8221;Princeton University,&#8221; par. 1). Fredkin apparently thinks that artificial intelligence is in our future, but what about our past and present? The general concept of making sentient machines has been around for thousands of years, and studying it reflects on who we are as sentient beings. The short, yet paradoxically long, history of artificial intelligence, or AI, can be divided into three main parts: artificial intelligence before the electromagnetic computer, the birth of artificial intelligence (officially 1956), and more recent developments in the field.</p>
<p>First, due to relatively undeveloped technology in the field of computing for most of human history, concepts in artificial intelligence were generally first found in literature and folk tales. In the <em>AI Magazine</em> article, &#8220;A (Very) Brief History of Artificial Intelligence,&#8221; Bruce G. Buchanan writes &#8220;Philosophers have floated the possibility of intelligent machines as a literary device to help us define what it means to be human&#8221; (53). One literary example is Mary Shelley&#8217;s original story of Dr. Frankenstein&#8217;s monster. The story illustrates a fictional form of artificial intelligence. The creation of Dr. Victor Frankenstein displays a variety of sentient—even human—behavior. For example, the monster feels misery and even requests that his creator build him a soul mate (McCorduck 20). In addition, there were a variety of literary works that included the concept of intelligent machines. Jean-Paul Richter&#8217;s obscure story, &#8220;The Death of an Angel,&#8221; inspired E.T.A. Hoffman&#8217;s, &#8220;The Sandman,&#8221; the latter being a story with robotic female characters. Hoffman&#8217;s work also inspired other individuals (15). The concepts of artificial intelligence have been around for hundreds of years before the field received its name.</p>
<p>But regardless of how primitive the technology was before the modern computing age, there was at least one notable attempt to create a machine that theoretically could achieve intelligence. For example, the Analytical Engine was a machine thought of by Charles Babbage in the nineteenth century. The idea behind the Engine was that it could be programmed to solve any possible logical or computational problem, possibly even including those that would give the machine sentience. Unfortunately, due to the state of technology at the time, Babbage failed to complete an implementation of the machine (Kurzweil 165-6). Of course, not all of the academic attempts that would have brought society closer to intelligent creations were actual machines. Approximately at the same time as Babbage, mathematician George Boole was attempting to figure out the governing rules of thought, and to express thought in symbols. Boole&#8217;s laws of thought eventually contributed to the rise of the modern computer (Gardner 142-3). Before Boole was the scientist Gottfried Wilhelm Leibniz. During the late 1600&#8217;s and early 1700&#8217;s, he theorized about creating an algebra of thought, which he described as a <em>calculus ratiocinator</em>. Scientists would be able to clearly and rationally communicate with each other, and theoretically communicate with calculating machines too. Hundreds of years later, modern artificial intelligence researchers were interested by the problems that Leibniz worked on (McCorduck 33). Scientists have always been attempting to make the field of artificial intelligence jump from a fantasy to a reality. Therefore, there have been many very serious scientific attempts to get closer to an artificial intelligence, but only very recently have researchers have had much luck.</p>
<p>In the next section of this series, the history of artificial intelligence will get more spicy as the invention of the modern computer will be covered.</p>
<p><em>(Want the cited sources? <a title="Works Cited" href="/artificial_intelligence/works_cited.html">Find them here</a>.)</em></p>
]]></content:encoded>
			<wfw:commentRss>http://codingexperiments.com/from-frankenstein-to-the-singularity-the-story-of-artificial-intelligence-part-one/feed/</wfw:commentRss>
		</item>
		<item>
		<title>&#8220;Why Is It Special?&#8221; And Seven More Questions the Non-Technical Windows User Has about Linux</title>
		<link>http://codingexperiments.com/why-is-it-special-and-seven-more-questions-the-non-technical-windows-user-has-about-linux/</link>
		<comments>http://codingexperiments.com/why-is-it-special-and-seven-more-questions-the-non-technical-windows-user-has-about-linux/#comments</comments>
		<pubDate>Sun, 17 May 2009 02:30:51 +0000</pubDate>
		<dc:creator>Rishabh Mishra</dc:creator>
		
		<category><![CDATA[Linux]]></category>

		<category><![CDATA[newbies]]></category>

		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://codingexperiments.com/?p=772</guid>
		<description><![CDATA[This post gives seven questions that computer users new to Linux may ask, and the best way for a seasoned Linux user to answer them.]]></description>
			<content:encoded><![CDATA[<p>Your common, non-technical Windows user has most likely not heard anything more than a cursory mention about Linux. They have questions about Linux that are not always answered easily. Many experienced Linux users are not able to answer questions that interested Windows users have in a manner that the latter party can easily grasp. This post is written to hopefully instruct Linux enthusiasts on how to explain Linux to nontechnical users.</p>
<p><strong>Question 1: Why is Linux so special compared to Windows or Mac?</strong></p>
<p><strong>How to answer:</strong> If you&#8217;re being asked this question, you or somebody else has probably been over-exaggerating the awesomeness of Linux when speaking to the inquirer. However, to answer this, simply explain that people all around the world have come together to create a wonderful computing experience that can be legally downloaded for free; they&#8217;re giving it away.</p>
<p><strong>Question 2: This whole open-source thing sounds like Wikipedia, and Wikipedia is full of vandalism. Is Linux safe?</strong></p>
<p><strong>How to answer:</strong> Explain that in Wikipedia, you can make changes without the permission of anybody; people come look at your change later. To make a change to the <em>official</em> Linux kernel, one has to discuss the change for quite a while in advance. Remember to tell them that one can make unofficial Linux-based kernels, and the most popular unofficial kernels (such as those available in Debian, SuSE, or Red Hat) are also somewhat protective of the changes that can be made.</p>
<p>In addition, I advise you to not defend Wikipedia, because that is another battle.</p>
<p><strong>Question 3: Windows works fine; why should I switch?</strong></p>
<p><strong>How to answer:</strong> This is somewhat dangerous territory. The best answer is telling them that they don&#8217;t have to switch. After all, maybe Windows really is the operating system that they should be using. But don&#8217;t forget to remind them about Linux&#8217;s security.</p>
<p><strong>Question 4: If I install Linux on my computer that has Windows, I&#8217;m not actually saving any money. Why do I install Linux, then?</strong></p>
<p><strong>How to answer:</strong> Tell them of the security benefits. Explain that, in the world of online banking, security is something that should especially be worried about.</p>
<p>In addition, you can point them to various places where they can purchase a Linux computer if they are in the market for a new machine. For example, you can point out <a title="Dell.com: Dell PCs Featuring Ubuntu" href="http://www.dell.com/content/topics/segtopic.aspx/linux_3x?c=us&amp;cs=19">Dell&#8217;s Ubuntu line</a>.</p>
<p><strong>Question 5: What is the easiest way I can try out Linux?</strong></p>
<p><strong>How to answer:</strong> The below list describes, from easiest to most difficult, ways to try out the Linux desktop, or something that feels like a Linux desktop.</p>
<ol>
<li>Install Windows-equivalents of popular Linux desktop applications, such as:
<ul>
<li>GIMP</li>
<li>Pidgin</li>
<li>Geany</li>
<li>Inkscape</li>
<li>Firefox</li>
<li>OpenOffice</li>
</ul>
<p>Remember to tell them that this isn&#8217;t actually Linux, but it feels like it.</li>
<li><a title="Wubi - Ubuntu Installer for Windows" href="http://wubi-installer.org/">Wubi</a> &#8212; A tool to run Ubuntu from within Windows.</li>
<li>A live CD. Remember to tell them that the live CD does not change their Windows installation, as the above two options do. This is generally more difficult if the user burns his or her own live CD. If the user is capable of getting or buying a live CD from you, or another party. Canonical, for example, will <a title="Shipit.Ubuntu.Com: Request an Ubuntu CD" href="https://shipit.ubuntu.com/">ship you a free Ubuntu CD</a>&#8211;though it may take you a long while to receive it.</li>
<li>Installing a popular Linux distribution for themselves.</li>
</ol>
<p><strong>Question 6: How do I choose a distribution of Linux? There are so many!</strong></p>
<p><strong>How to answer:</strong> Every true Linux enthusiast has got complex feelings about various distributions. In the past, I have written a post about this issue, and <a title="CodingExperiments.Com: Why [New] Linux Users Should Try Ubuntu First" href="http://codingexperiments.com/why-linux-users-should-try-ubuntu-first/">have told enthusiasts to just recommend Ubuntu</a>. I don&#8217;t say to recommend Ubuntu for technical reasons, but to recommend it for support, marketing, and other non-technical reasons. I admit my opinion is controversial, but simply recommending Ubuntu makes the sea of distributions somewhat less intimidating.</p>
<p><strong>Question 7: How do I choose a desktop environment? There are so many!</strong></p>
<p><strong>How to answer:</strong> This is a bit tricky. What desktop environment I recommend really depends on my mood, the time of day, and what /dev/urandom outputs.</p>
<p>Right now, I believe <a title="Xfce.org: Xfce" href="http://www.xfce.org/">Xfce</a> has an excellent future for being the newbie user&#8217;s Linux desktop. <a title="Xubuntu.org: Xubuntu Home Page" href="http://www.xubuntu.org/">Xubuntu</a> is an Ubuntu spin-off that provides the Xfce desktop.</p>
<p><strong>Question 8: Why do you talk about Linux so much?</strong></p>
<p><strong>How to answer:</strong> This is probably another sign that you should scale back on your Linux discussions. Choose a simple expression to capture why you like Linux so much. A personal favorite of mine is that I want to, &#8220;share the love.&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://codingexperiments.com/why-is-it-special-and-seven-more-questions-the-non-technical-windows-user-has-about-linux/feed/</wfw:commentRss>
		</item>
		<item>
		<title>State of the GNU/Linux Desktop 2009 Part 3/4: Infrastructural Enhancements</title>
		<link>http://codingexperiments.com/state-of-the-gnulinux-desktop-2009-part-34-infrastructural-enhancements/</link>
		<comments>http://codingexperiments.com/state-of-the-gnulinux-desktop-2009-part-34-infrastructural-enhancements/#comments</comments>
		<pubDate>Wed, 13 May 2009 03:02:08 +0000</pubDate>
		<dc:creator>i80and</dc:creator>
		
		<category><![CDATA[Linux]]></category>

		<category><![CDATA[Security]]></category>

		<category><![CDATA[apparmor]]></category>

		<category><![CDATA[dac]]></category>

		<category><![CDATA[ext3]]></category>

		<category><![CDATA[ext4]]></category>

		<category><![CDATA[filesystem]]></category>

		<category><![CDATA[gcc]]></category>

		<category><![CDATA[graphite]]></category>

		<category><![CDATA[infrastructure]]></category>

		<category><![CDATA[lsm]]></category>

		<category><![CDATA[mac]]></category>

		<category><![CDATA[parallel]]></category>

		<category><![CDATA[reiserfs]]></category>

		<category><![CDATA[selinux]]></category>

		<category><![CDATA[smack]]></category>

		<category><![CDATA[tomoyo]]></category>

		<category><![CDATA[xfs]]></category>

		<guid isPermaLink="false">http://codingexperiments.com/?p=762</guid>
		<description><![CDATA[The Free Linux desktop has got quite a bit of stuff under the hood. Read on to find the details of the latest tweaks and fixes to the powerful system.]]></description>
			<content:encoded><![CDATA[<p><em>Again, apologies for the much delayed posting.  Finals together with the sluggishness of my backup computer made me unable to write this until now.<br />
</em></p>
<p>For those who don&#8217;t remember, we are in the middle of a series on what interesting developments and capabilities are ongoing within the Free Desktop to improve its fitness for both personal and enterprise usage.</p>
<h3>Infrastructural Enhancements</h3>
<p>This category of purely under-the-hood work is not immediately obvious and thus is often under-appreciated, but yields many useful improvements to the Free Desktop.</p>
<p>One notable entry here is automatic code parallelization in <a href="http://gcc.gnu.org/">GCC</a> (the main compiler on Linux) through <a href="http://gcc.gnu.org/wiki/Graphite">Graphite</a>, which should lead to significant performance improvements for all programs on computers with multiple processing cores.  Of course, the scope of what can be done is limited due to this sort of conversion requiring a higher-level view of what a block of code is <em>meant</em> to do, but nevertheless this is very much a welcome feature that will keep our beloved compiler in line with the current state of compiler technology.</p>
<p>Filesystems have always been an area of interest for the Free desktop; from the plain-spoken and default ext3 to the fast ReiserFS and SGI XFS, Linux especially has always had a variety of powerful filesystems available for any task.  The march of progress has thankfully not left this critical job by the wayside.  ext4, the successor to ext3 featuring much improved performance through more flexible filesystem clustering through <em>extents</em>, and new features such as defragmentation support and checksumming of filesystem journals for increased reliability became stable in Linux 2.6.28.<a href="http://kernelnewbies.org/Linux_2_6_28#head-42f34a57c528b1f7aa8ca5c7a4d6291d76922eee">[22]</a><a href="http://www.phoronix.com/scan.php?page=article&amp;item=ext4_benchmarks&amp;num=9">[23]</a> Fedora 11 is going to include it included by default, which should come as either a pleasant or a terrifying prospect depending on one&#8217;s view on stability.<a href="http://fedoraproject.org/wiki/Ext4_in_Fedora_11">[24]</a> I&#8217;d say that I&#8217;m psyched, but I&#8217;m using it right now on my <a href="http://www.archlinux.org/">Arch Linux</a> installation so such a statement would be misleading.</p>
<p>However, by the ext4 project leader&#8217;s (Theodore Ts&#8217;o) own admission, ext4 is not revolutionary enough.<a href="http://www.h-online.com/news/Kernel-Log-Ext4-completes-development-phase-as-interim-step-to-btrfs--/111742">[25]</a> The next major filesystem on the horizon is <a href="http://btrfs.wiki.kernel.org/index.php/Main_Page">btrfs</a>, designed to overcome many of the limitations of ext3 and ext4 in filesystem size and administration.<a href="http://www.internetnews.com/dev-news/article.php/3781676/A%20Better%20File%20System%20for%20Linux.htm">[26]</a> Among the interesting features it will bring will be transparent checksumming and compression for files, defragmentation and filesystem checking while the filesystem is mounted, and more sophisticated data striping.  If you&#8217;re keen to try it out, it should be included with Fedora 11, but be warned that the filesystem format is not yet stabilized or optimized and thus your data may be prematurely ended.<a href="http://www.phoronix.com/scan.php?page=article&amp;item=btrfs_benchmarks&amp;num=1">[27]</a></p>
<h4>Security</h4>
<p>The infamous security framework soap opera is still going on, of course, with the usual politics and petty bickering within the Linux kernel development community.  Although the free desktop takes much well-deserved pride in its security, the Unix-like user-group-other security model (Discretionary Access Control, or DAC) traditionally used for managing permissions has proven to be both insecure and distinctly un-Unix-like.  Not only was it crafted before any concept of wide networking had really been established, but it also far too permissive and course-grained in its management.  Hence the need for a new security system that builds on top of the traditional model; there are many competing modules alive in the ecosystem, but it remains to be seen which (if any; after all, FLOSS is all about choice) will prevail.  An important thing to be aware of within this realm is the <a href="http://lsm.immunix.org/">LSM</a>, or the Linux Security Modules; a common Mandatory Access Control (MAC) security framework API within the kernel.</p>
<p><a href="http://www.ibm.com/developerworks/library/l-posixcap.html">POSIX File Capabilities</a>, while not strictly a security framework, are a minimalistic approach to security available since Linux 2.6.24.  Basically, they use the extended attribute system of modern filesystems such as ext3, ext4, btrfs, etc. to allow a program to do tasks that would traditionally require root permissions.  Far short of being a clone of the classic SETUID bit that forces a program to be run as root (an over-simplification), it instead limits what a program can do to the minimum that is needed.  The implications of this are invasive and far-reaching; for instance, using file capabilities it is no longer necessary to be root in order to burn an optical disk.  <a href="http://lwn.net/Articles/256519/">LWN </a>as always has a good read on the topic.</p>
<p><a href="http://www.nsa.gov/research/selinux/index.shtml">SELinux</a> (Security Enhanced Linux) is another security framework, only instead of merely being an extra set of permission bits it is a full-blown MAC solution.  Developed by the National Security Agency in 2000, SELinux was the first major security framework available for Linux and is now used most notably by <a href="http://www.redhat.com/">Red Hat</a> and <a href="http://fedoraproject.org/">Fedora</a>.  Although it is generally considered quite secure because it uses an inode-based system instead of filenames (avoiding issues of different restrictions referring to the same file), it is also notorious for being a nightmare to configure.<a href="http://kerneltrap.org/Linux/Pluggable_Security">[28]<br />
</a></p>
<p>AppArmor is the main competitor to SELinux, developed originally by Immunix but later released and maintained by <a href="http://www.novell.com/home/index.html">Novell </a>after they perchased the former.<a href="http://www.novell.com/news/press/novell_acquires_immunix_delivers_industrys_best_application_security_for_linux">[29]</a> It is currently used by most notably by <a href="http://www.opensuse.org/en/">OpenSUSE </a>and <a href="http://www.ubuntu.com/">Ubuntu</a>, presumably due to its ease of configuration compared to SELinux.  However, it is considered less secure due to its reliance on filenames instead of filesystem objects, and thus there has been a great deal of controversy both petty and significant to the point that Linus Torvalds himself has had to step into the fray despite his self-proclaimed disinterest in security frameworks.<a href="http://kerneltrap.org/Linux/Pluggable_Security">[28]</a> Like SELinux, it is a MAC security framework using LSM, but unlike it, AppArmor has failed to be merged into the mainline kernel tree due to both technical troubles and political infighting.<a href="http://lwn.net/Articles/277833/">[29]</a></p>
<p><a href="http://lwn.net/Articles/244531/">SMACK </a> (Simplified Mandatory Access Control Kernel) is a much more recent entry into the security game available since Linux 2.6.25 that promises drastically simpler configuration at the cost of less power and capabilities compared to SELinux.  In addition to eased configuration, it apparently also uses a hybrid approach to the inode/path debate.<a href="http://www.fsckin.com/2007/10/09/smack-for-linux-explained-in-plain-english/">[30]</a></p>
<p>Lastly, <a href="http://lwn.net/Articles/277833/">TOMOYO </a>is the latest entry to this&#8230; active&#8230; environment of security frameworks.  It is not yet available in a stable kernel release, but should be available in Linux 2.6.30.  Much like AppArmor, it uses pathnames as its basis for handling files, but among other things is designed to be more robust by working around weaknesses in LSM allowing more intellegent handling of file objects.</p>
]]></content:encoded>
			<wfw:commentRss>http://codingexperiments.com/state-of-the-gnulinux-desktop-2009-part-34-infrastructural-enhancements/feed/</wfw:commentRss>
		</item>
		<item>
		<title>State of the GNU/Linux Desktop 2009 Part 2/4: Hardware Support</title>
		<link>http://codingexperiments.com/state-of-the-gnulinux-desktop-2009-part-24-hardware-support/</link>
		<comments>http://codingexperiments.com/state-of-the-gnulinux-desktop-2009-part-24-hardware-support/#comments</comments>
		<pubDate>Fri, 01 May 2009 03:32:20 +0000</pubDate>
		<dc:creator>i80and</dc:creator>
		
		<category><![CDATA[Linux]]></category>

		<category><![CDATA[hardware]]></category>

		<category><![CDATA[networking]]></category>

		<category><![CDATA[nvidia]]></category>

		<guid isPermaLink="false">http://codingexperiments.com/?p=741</guid>
		<description><![CDATA[Because CodingExperiments is a blog with a strong Linux focus, we bring you the third part in blogger i80and's great series about the modern Linux desktop. Covered in this installment is all about recent developments in GNU/Linux hardware support.]]></description>
			<content:encoded><![CDATA[<p><em>Apologies for the late posting; a mixture of hardware woes and scheduling issues  made getting this post out difficult.</em></p>
<p>As mentioned in part one of this series, despite the legendary pace of development in the Open Source community, it can be difficult to keep tabs on what is being worked on.  I don&#8217;t claim to know about everything, or even most things; I do however enjoy tracking these things in my free time, and would like to share what I know to those who don&#8217;t share my passion.</p>
<p>Arguably, multimedia is just a subdivision of hardware support, another area where Free operating systems have suffered from a lack of attention.  Luckily, vows of support have been sworn recently from AMD/ATI, and Intel has continued on their legendary campaign of support for Linux.  This along with more mundane evolutionary work with corporate support and the diligent work of many kernel hackers has led to a much more usable system with a bright future.</p>
<p>Webcam support has gone through several drastic improvements in the past year starting with the release of Linux 2.6.26 introducing a driver supporting all USB video input devices.<a href="http://kernelnewbies.org/Linux_2_6_26#head-6d4ee1ddea983f5c8ac491b8685a94ea6fa4132b">[13]</a> This success was built upon with Linux 2.6.27 with the introduction of a driver for another popular device.  As a result, most webcams are now supported on Linux.<a href="http://kernelnewbies.org/Linux_2_6_27#head-8ef43d187b8ff45c6f6cd57f45c000ae9934be54">[14]</a></p>
<p>The Free Software community has long had a love-hate relationship to <a href="http://www.nvidia.com/page/home.html">NVIDIA</a>, loving them for their relatively superior graphics drivers yet hating them for their bugs and refusal to play nice with their philosophical demands.  This situation has not changed on NVIDIA&#8217;s side of the court, but a small team of Free Software enthusiasts finally threw up their hands and began development of the <a href="http://nouveau.freedesktop.org/wiki/">nouveau</a> project: an attempt to design a fully FLOSS driver for NVIDIA-based graphics chipsets.  They have made good progress, and most devices are now supported with full 2D acceleration, with a start on 3D for some devices.<a href="http://nouveau.freedesktop.org/wiki/FeatureMatrix">[15]</a> Interestingly, their 3D driver development is now entirely done in Gallium3D.  It&#8217;s worth noting that as mentioned above, NVIDIA has released a video decoding framework called VDPAU.</p>
<p>The situation for ATI has been a complete reversal, however.  After AMD bought them out in 2006, they swore to release documentation and fund development for their new devices.<a href="http://www.amd.com/us-en/0,,3715_14197_14198,00.html?redir=goBG01">[16]</a><a href="http://www.linux.com/feature/119049">[17]</a> This resulted in not only such radical developments as same-day Linux support but also the official funding of a new open-source driver, <a href="http://www.x.org/wiki/radeonhd">radeonhd</a>.  As a result of this, ATI cards are now well-supported both with and without proprietary drivers, even with a video decoding framework called XvBA.</p>
<p>A similar effort has come across from <a href="http://www.s3graphics.com/">S3 Graphics</a>, the maker of graphics chipsets closely associated with <a href="http://via.com.tw/en/index.jsp">VIA</a>.<a href="http://www.phoronix.com/scan.php?page=article&amp;item=s3_linux_ogl3_vaapi&amp;num=1">[18]</a> However, their pledge of Linux support has so far been somewhat unsubstantiated, especially in terms of open-source support.  The video decoding acceleration framework they chose to implement for their Chrome 500 driver was Intel&#8217;s VA-API.</p>
<p><a href="http://www.broadcom.com/">Broadcom</a>, the extremely popular manufacturer of network equipment, still has patchy support on Linux for their WiFi chipsets.  Although there is a driver&#8211;b43&#8211;in the mainline kernel since Linux 2.6.24 (succeeding the earlier bcm43xx driver), the firmware needed to actually initialize and run the device is not open-source and cannot be distributed.<a href="http://kernelnewbies.org/Linux_2_6_24#head-62e9ebf067c978bbf70898986c0aa3904d1a3543">[19]</a><a href="http://linuxwireless.org/en/users/Drivers/b43#caveats">[20]</a> As a result, it is impossible to use Broadcom WiFi devices on a fully Free system, and it is even impractical&#8211;if not impossible&#8211;on many systems.  Some distributions such as <a href="http://www.ubuntu.com/">Ubuntu</a> have an automatic setup system for this, but it&#8217;s not guaranteed to work.</p>
<p>On the note of wireless networking, there is a development worth noting although it occurred a while back.  A somewhat revolutionary update, it dates way back to Linux 2.6.22, and concerns the <a href="http://linuxwireless.org/en/developers/Documentation/mac80211">complete rewrite</a> of how WiFi is done in Linux by the company <a href="http://www.devicescape.com/">DeviceScape</a>.<a href="http://kernelnewbies.org/Linux_2_6_22#head-1498b990e997cc0e95dbfa9047e7ebe8d84847cc">[21]</a> This is a mostly internal change, but allows for cleaner and more rapid wireless driver development.  It replaces the much older <a href="http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Linux.Wireless.Extensions.html">Wireless-Extensions</a> kernel subsystem developed in 1997 to accomplish a similar goal.  Because of this fundamental internal API change, it may be that iwconfig and like utilities introduced with Wireless-Extensions are deprecated and may not work with newer drivers; iw its its replacement.<a href="http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Linux.Wireless.Extensions.html">[22]</a><a href="http://linuxwireless.org/en/users/Documentation/iw">[23]</a></p>
<p>Lastly, support for WiMAX has been added to Linux as of the 2.6.29 release through a set of patches donated by Intel.<a href="http://kernelnewbies.org/Linux_2_6_29#head-f9ec1e729412d27d5e330cbe4448c751efcf02f2">[24]</a> WiMAX is a new wireless networking standard designed for much higher transmission speeds and range compared to WiFi, and is necessary both as a mobility innovation and as a method of internet delivery.</p>
]]></content:encoded>
			<wfw:commentRss>http://codingexperiments.com/state-of-the-gnulinux-desktop-2009-part-24-hardware-support/feed/</wfw:commentRss>
		</item>
		<item>
		<title>State of the GNU/Linux Desktop 2009 Part 1/4: Multimedia</title>
		<link>http://codingexperiments.com/state-of-the-gnulinux-desktop-2009-part-14-multimedia/</link>
		<comments>http://codingexperiments.com/state-of-the-gnulinux-desktop-2009-part-14-multimedia/#comments</comments>
		<pubDate>Wed, 29 Apr 2009 17:44:02 +0000</pubDate>
		<dc:creator>i80and</dc:creator>
		
		<category><![CDATA[Linux]]></category>

		<category><![CDATA[ALSA]]></category>

		<category><![CDATA[Debian]]></category>

		<category><![CDATA[Fedora]]></category>

		<category><![CDATA[Fluendo]]></category>

		<category><![CDATA[Gallium3D]]></category>

		<category><![CDATA[GStreamer]]></category>

		<category><![CDATA[Mesa]]></category>

		<category><![CDATA[modesetting]]></category>

		<category><![CDATA[OpenGL]]></category>

		<category><![CDATA[OSS]]></category>

		<category><![CDATA[Plymouth]]></category>

		<category><![CDATA[State of the Desktop]]></category>

		<category><![CDATA[Unix]]></category>

		<category><![CDATA[VDPAU]]></category>

		<category><![CDATA[Wayland]]></category>

		<category><![CDATA[X.org]]></category>

		<category><![CDATA[Xv]]></category>

		<category><![CDATA[XvBA]]></category>

		<category><![CDATA[XvMC]]></category>

		<guid isPermaLink="false">http://codingexperiments.com/?p=723</guid>
		<description><![CDATA[This is the start of a four-part series covering the modern world of the GNU/Linux desktop. Covered in this initial installment is multimedia; often a touchy issue in the world of Linux.]]></description>
			<content:encoded><![CDATA[<p><a href="http://debian.org/">Debian GNU/Linux</a> 4.0 contained over 283 million lines of code, and the <a href="http://kernel.org/">Linux kernel</a> development mailing list is of such high message density that even Linus Torvalds himself reads only a fraction of the messages that daily flood the development process.<a href="http://groups.google.com/group/fa.linux.kernel/msg/fa3aed8febef2c79?pli=1">[0]</a><a href="http://en.wikipedia.org/wiki/Linux#Copyright_and_naming">[1]</a> Unless one wants to spend their entire lives trawling untold hundreds of mailing lists, they cannot keep track of what is being developed.  My intention is to give a summary of what interesting features are being developed in the Free Desktop, especially involving Linux, that I&#8217;m aware of to the un-obsessed.  My intention is <em>not</em> to give comprehensive technical reviews, however; only an introduction to each development.</p>
<p>Areas of important development in the overall Free Desktop ecosystem can be broken down into several main areas: multimedia, hardware support, infrastructural enhancements, and usability work, and I intend to cover each of these broad categories in the next couple of days.</p>
<p>To open, multimedia has always been the main weakness of the Free Desktop; from patchy and inconsistent audio stacks to unreliable and sluggish graphics subsystems, this is been a major beef for gamers and enthusiasts alike.</p>
<p><a href="http://www.tungstengraphics.com/wiki/index.php/Gallium3D">Gallium3D </a>is a new API- and operating system-independent driver and purely shader-based stack for 3D video subsystems that has been undergoing much work and has been a major hotspot of thought for the free desktop, especially Linux.  It will eventually replace <a href="http://www.mesa3d.org/">Mesa</a>, the current OpenGL implementation providing 3D acceleration on X.org.  While at first glance it appears to be mainly an under-the-hood change, it does have much relevancy to the end-user.  As well as allowing more rapid support of graphics hardware and less buggy drivers because of a more clean codebase, it will also provide driver-neutral video acceleration.<a href="http://www.phoronix.com/scan.php?page=news_item&amp;px=NjU3Nw">[2]</a> A usable but early version should be part of the Mesa 7.5 release.<a href="http://www.phoronix.com/scan.php?page=news_item&amp;px=NzE4OQ">[3]</a></p>
<p>On the note of video acceleration, this is also an active area of development.  Xv, or the X-Video Extension, was the classical method of this and is still frequently used.  However, despite (and also because of) its maturity, Xv is hardly ideal as it only accelerates resizing and color manipulation in video and does not concern itself with decoding video.  This makes it mostly worthless for modern video.  XvMC, or the X-Video Motion Compensation Extension, is a later extension that also leverages the graphics card to offload some parts of MPEG-2 decoding.  This is mostly worthless for modern systems, however, as not only are there many bugs with XvMC but also because of its lack of support for more modern video compression systems.<a href="http://en.wikipedia.org/w/index.php?title=X-Video_Motion_Compensation&amp;oldid=285265442#Current_limitations">[4]</a> Fortunately, the Free Software community has not been idle; Intel&#8217;s <a href="http://www.freedesktop.org/wiki/Software/vaapi">VA-API</a>, or the Video Acceleration API, is currently the favored player by some.  Not only is it an actively developed library and standard supporting a variety of video decoding tasks in modern codecs such as MPEG-4.  Natively it is only supported by the Intel Poulsbo and several S3 Chrome graphics chipsets, but it can use NVIDIA&#8217;s reportedly excellent <a href="http://http.download.nvidia.com/XFree86/vdpau/doxygen/html/index.html">VDPAU</a> (Video Decode and Presentation API for UNIX) and AMD/ATI&#8217;s XvBA (X-Video Bitstream Acceleration) libraries as back-ends allowing any program supporting VA-API to accelerate decoding on most hardware.<a href="http://www.phoronix.com/scan.php?page=article&amp;item=xorg_vdpau_vaapi&amp;num=1">[5]<br />
</a></p>
<p><a href="http://fedoraproject.org/wiki/Features/KernelModesetting">Kernel Modesetting</a> is an important feature that has been under development for several years now, and was finally released for Intel graphics chipsets in Linux 2.6.29.<a href="http://kernelnewbies.org/Linux_2_6_29#head-e1bab8dc862e3b477cc38d87e8ddc779a66509d1">[6]</a> &#8220;Mode-setting&#8221; refers to the act of activating the graphics card on a display with a certain resolution and color mode, and prior to kernel mode-setting this was a complex dance between kernel and userspace that lead to much instability when switching virtual terminals, starting the X.org server, and resuming the system from a state of suspension.  Eventually, kernel mode-setting will also lead to a flicker-free boot process as seen in <a href="http://fedoraproject.org/wiki/Features/BetterStartup">Fedora Plymouth</a>.</p>
<p>As substandard as the graphics subsystem of the Free Desktop has been historically, the audio stack has been&#8230; worse.  The <a href="http://www.opensound.com/oss.html">Open Sound System</a> was the historical API for handling audio on all major UNIXes for years, but eventually development went proprietary and the open source version began to suffer from severe dust collection and a lack of modern features such as hardware audio mixing.  Linux 2.6 was therefore released with its own sound API: <a href="http://www.alsa-project.org/main/index.php/Main_Page">ALSA</a> (Advanced Linux Sound Architecture).  Unfortunately, ALSA is to this day notoriously messy in both its API and in its documentation.<a href="http://4front-tech.com/hannublog/?p=5">[7]</a> The situation is however convoluted by the frequency of OSS apps forced to use ALSA&#8217;s emulation layer.  The end result is&#8230; messy and buggy.  <a href="http://pulseaudio.org/">PulseAudio</a> is a sound server designed to repair the situation.  The theory is that instead of having applications directly work with the soundcard, requests are routed through PulseAudio allowing not only better application coexistence but also more advanced capabilities such as playing audio across a network.  For a while, its adoption was hampered by high latency, bugs, and incompatibility with all ALSA applications, but it is now the de-facto standard for audio on Linux.<a href="http://www.phoronix.com/scan.php?page=news_item&amp;px=Njc2NQ">[8]</a> However, it is worth noting that OSS has since gone open-source again, and although I have not used it myself, reportedly it is quite superior to ALSA.<a href="http://insanecoding.blogspot.com/2007/05/sorry-state-of-sound-in-linux.html">[9]</a></p>
<p>Media playback, especially MP3 and DVD playback, has been another area in need of attention for years.  However, recently the situation here has improved in part due to the emergence of <a href="http://gstreamer.freedesktop.org/">GStreamer</a>, a fairly solid and extremely powerful multimedia framework.  Prior to this, <a href="http://www.xine-project.org/home">xine</a> and <a href="http://www.mplayerhq.hu/">MPlayer</a> were the main multimedia frameworks; while good applications in their own right, they tend to be suboptimal for writing new players.  <a href="http://www.fluendo.com/">Fluendo</a> was then founded to sell fully legal and licensed multimedia codecs for it, filling an important hole in the Free Desktop ecosystem.  In addition to this, they released an MP3 playback codec for free, and are currently attempting to get the rights to develop a legal DVD playback library.<a href="http://www.fluendo.com/shop/product/fluendo-mp3-decoder/">[10]</a><a href="http://www.osnews.com/story/8218/Interview_with_CEO_and_co-founder_of_Fluendo_Julien_Moutte/page2/">[11]</a> Don&#8217;t get too excited yet, though; as of 2008, they were still attempting to get it approved by the DVD consortium.<a href="http://elisa.fluendo.com/forums/viewtopic.php?id=148">[12]</a></p>
<p><a href="http://cgit.freedesktop.org/~krh/wayland/tree/NOTES">Wayland</a> is, to me, one of the most interesting developments here.  The <a href="http://www.x.org/wiki/">X.org</a> display server implementing the X11 display protocol is notoriously buggy and heavy compared to what is needed.  Essentially, Wayland is a compositing display server that throws out everything that isn&#8217;t needed on a modern system.  This is of course most immediately useful on mobile devices where the overhead incurred by a full-blown X11 server would be impractical, but it also brings a refreshing simplicity to a standard desktop system as well.  Perhaps most interestingly, Wayland also allows running multiple full-blown X11 sessions within a Wayland window.<a href="http://hoegsberg.blogspot.com/2008/12/two-x-servers-and-microphone.html">[13]</a></p>
<p>EDIT: There appears to be a nice write-up of X.org&#8217;s recent work <a href="http://www.freesoftwaremagazine.com/columns/the_new_xorg_features">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://codingexperiments.com/state-of-the-gnulinux-desktop-2009-part-14-multimedia/feed/</wfw:commentRss>
		</item>
		<item>
		<title>They Just Never Learn; Google Docs Gives Yet Another Example of Why Cloud Computing Is Dangerous</title>
		<link>http://codingexperiments.com/they-just-never-learn-google-docs-gives-yet-another-example-of-why-cloud-computing-is-dangerous/</link>
		<comments>http://codingexperiments.com/they-just-never-learn-google-docs-gives-yet-another-example-of-why-cloud-computing-is-dangerous/#comments</comments>
		<pubDate>Sun, 29 Mar 2009 20:30:12 +0000</pubDate>
		<dc:creator>Rishabh Mishra</dc:creator>
		
		<category><![CDATA[Google]]></category>

		<category><![CDATA[web 2.0]]></category>

		<category><![CDATA[Cloud Computing]]></category>

		<category><![CDATA[Google Docs]]></category>

		<guid isPermaLink="false">http://codingexperiments.com/?p=709</guid>
		<description><![CDATA[This post, now having been proven to be somewhat wrong, is yet another Stallman-like CodingExperiments warning about the dangers of cloud computing. Regardless of the details, we still strongly suggest that you put your data on hard drives that you have control over.]]></description>
			<content:encoded><![CDATA[<p><em>In this post, cloud computing is defined as the use of web applications such as Google Docs.</em></p>
<p>I&#8217;ve written <a title="CodingExperiments: Why Web 2.0 Applications Deserve the Permanent Beta" href="http://codingexperiments.com/why-web-20-applications-deserve-the-permanent-beta/">a post about why cloud computing is dangerous</a>.</p>
<p>I&#8217;ve written <a title="CodingExperiments: The Danger of Web Apps; How a Bug in Gmail Locked up My Account" href="http://codingexperiments.com/the-danger-of-web-apps-how-a-bug-in-gmail-locked-up-my-account/">another post about why cloud computing is dangerous</a>.</p>
<p>And now I&#8217;ve written EVEN another post about why cloud computing is dangerous, and that post is the one you are reading right now.</p>
<p>But regardless of my opinions on cloud computing, I felt that completely abandoning cloud computing or creating one&#8217;s own miniature cloud would be too difficult for nontechnical users. Perhaps the nontechnical users should avoid trusting random startups with data, but keep using the services of larger providers, like Google. Such larger providers couldn&#8217;t possibly be a poor choice to keep one&#8217;s data, right?</p>
<p>Well, apparently I&#8217;ve been proven wrong.</p>
<p><a title="Peekay: Security issues with Google Docs" href="http://peekay.org/2009/03/26/security-issues-with-google-docs/">A security flaw has been found in Google Docs</a>. Don&#8217;t get the idea that this is a small flaw; a minuscule crack in a great wall. Sticking with the wall metaphor, the security issue with Google Docs is a massive, gaping chasm where a wall should be. Sure, Google has well-read engineers that can quickly patch up security holes, but apparently the same excellent engineers could not have patched up the security issue in the first place<sup>1</sup>.</p>
<p>This raises an important question: <strong>If Google&#8217;s world-class engineers cannot prevent a user&#8217;s data from being stolen, who can?</strong></p>
<p>Well, actually, anybody can prevent a user&#8217;s data from being stolen. Not putting the data online (even in a private online place) results makes it far more difficult to steal the data.</p>
<p>Granted, data often <em>has</em> to be put online for collaboration purposes, but there are still more secure ways to hold important data online. For a few USD a month, one can obtain a shared web hosting plan to install wiki software on<sup>2</sup>. The shared host should also provide support and features to help one secure his or her data<sup>3</sup>. Keep in mind that with shared hosting, one&#8217;s data is still on far-away servers, but one gets partial control of the system.</p>
<p>Now, I would like to finalize in saying that there is nothing wrong in using Google Docs or even a random startup&#8217;s cloud computing services; neither must be completely abandoned.If you are fine with anybody in the world reading what you put on far-away servers beyond your (at least partial) control, and are prepared for the unlikely situation that you lose your data, there is no harm in cloud computing.</p>
<p><em><sup>1</sup> I would like to point out that the engineers are Google are far better programmers than me, so this should be considered as an insult or a claim of superiority. I deeply respect the Google engineers, but do not think that far-off servers are a good place to store one&#8217;s data.</em></p>
<p><em><sup>2</sup> It is possible that there is a security flaw in the wiki software that one may put on a shared hosting server, but choosing open-source wiki software and using good security practices should hopefully mitigate this.</em></p>
<p><em><sup>3</sup> Granted, with a shared hosting plan, it is possible for the system administrator to look at your files, but the risk of having your data stolen is still lower with a reputable hosting company than a random startup.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://codingexperiments.com/they-just-never-learn-google-docs-gives-yet-another-example-of-why-cloud-computing-is-dangerous/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Does the Linux Desktop Need to Be Revolutionized Android-style?</title>
		<link>http://codingexperiments.com/does-the-linux-desktop-need-to-be-revolutionized-android-style/</link>
		<comments>http://codingexperiments.com/does-the-linux-desktop-need-to-be-revolutionized-android-style/#comments</comments>
		<pubDate>Sun, 29 Mar 2009 20:30:09 +0000</pubDate>
		<dc:creator>Rishabh Mishra</dc:creator>
		
		<category><![CDATA[Google]]></category>

		<category><![CDATA[Linux]]></category>

		<category><![CDATA[community]]></category>

		<category><![CDATA[Google Android]]></category>

		<category><![CDATA[openmoko]]></category>

		<guid isPermaLink="false">http://codingexperiments.com/?p=706</guid>
		<description><![CDATA[Linux-based phone operating systems Google Android and Openmoko Linux are compared and contrasted in a debate about whether Linux should shed the diversity--and the history--in a bid to on the desktop, laptop, and netbook.]]></description>
			<content:encoded><![CDATA[<p>So, a few days ago, I got a spankin&#8217; new T-Mobile G1. This has resulted in a lot of hands-on experience with the user interface of Google&#8217;s Android platform. I can&#8217;t help but compare the Android OS to <a href="http://en.wikipedia.org/wiki/Openmoko_Linux">Openmoko Linux</a>. After all, both use Linux kernels.</p>
<p>No offense to the Openmoko developers, but I think that Openmoko pales when compared to Android. Below are reviews of two Openmoko user interfaces.<br />
<object width="400" height="302" data="http://vimeo.com/moogaloop.swf?clip_id=1366042&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=1366042&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /></object><br />
<a href="http://vimeo.com/1366042">OpenMoko Train Wreck</a> from <a href="http://vimeo.com/user466448">Dave Fayram</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p><object width="400" height="302" data="http://vimeo.com/moogaloop.swf?clip_id=1366923&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=1366923&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /></object><br />
<a href="http://vimeo.com/1366923">More OpenMoko Train Wrecking (Now with Qt!)</a> from <a href="http://vimeo.com/user466448">Dave Fayram</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p>The main problem I see with Openmoko is that it has attempted to borrow too much from desktop Linux. For example, Openmoko uses the X11 protocol, which is far too bloated for a mobile device. Because Openmoko borrows so much from desktop Linux, some of the problems of desktop Linux have been inherited by Openmoko, and the less-powerful hardware of mobile devices makes the problems worse.</p>
<p>In contrast, the Android platform uses more of their own code, and I think the results are visibly better.</p>
<p>At the same time, there is talk of Android on netbooks, because Android beautifully does many of the things that you would expect from a typical netbook.</p>
<p>Combine all of this, and you get an interesting question.</p>
<p>What if, Android, having shed the problems of an Openmoko-style phone operating system, overtakes traditional flavors of Linux in netbook marketshare?</p>
<p>It could happen.</p>
<p>If it <em>does</em> happen, could the same Android-style wheel-reinventing bring Linux more marketshare in the area of more powerful laptops and desktop computers? After all, didn&#8217;t Apple do the same thing by creating Mac OS X from FreeBSD?</p>
<p>Perhaps desktop Linux needs to see the same Android-style revolution. Android itself will probably not expand beyond the netbook.  It remove the need for &#8220;<a title="CodingExperiments: Look at This, Mac Users! User Interfaces on the Linux Desktop Can Have Consistency!" href="http://codingexperiments.com/look-at-this-mac-users-user-interfaces-on-the-linux-desktop-can-have-consistency/">creative&#8221; methods to bring a system to visual consistency</a>.</p>
<p>I believe open source software can easily be superior than a costly, proprietary equivalent, but perhaps the fact that many communities are involved in working with desktop Linux has been harming it&#8217;s ascent to the common user&#8217;s desktop.</p>
]]></content:encoded>
			<wfw:commentRss>http://codingexperiments.com/does-the-linux-desktop-need-to-be-revolutionized-android-style/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Why [New] Linux Users Should Try Ubuntu First</title>
		<link>http://codingexperiments.com/why-linux-users-should-try-ubuntu-first/</link>
		<comments>http://codingexperiments.com/why-linux-users-should-try-ubuntu-first/#comments</comments>
		<pubDate>Fri, 27 Feb 2009 03:26:08 +0000</pubDate>
		<dc:creator>Rishabh Mishra</dc:creator>
		
		<category><![CDATA[Linux]]></category>

		<category><![CDATA[newbies]]></category>

		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://codingexperiments.com/?p=673</guid>
		<description><![CDATA[A controversial post that states that new users should--not abandon other options--but try Ubuntu Linux first. Popularity, large repositories, and media coverage are seldom ever used to choose a Linux distribution, but I believe that these are good reasons for Ubuntu to be recommended to beginners.]]></description>
			<content:encoded><![CDATA[<p><em>Note: This post was originally published without the word &#8220;new&#8221; in the title. As the brackets denote, this error has been corrected.</em></p>
<p>If I had a penny for every seasoned Linux user whose eyes are currently bulging in anger at this title, I would have&#8230; still not much money, considering the poor level of web traffic this blog gets. But if you are among those that sharply disagree with me, hear me out so you can more finely craft your criticizing comment.</p>
<p>Below are some reasons why Ubuntu should generally be the distro that new Linux users try first.</p>
<h2>Popularity</h2>
<h3>Large number of users, especially new users</h3>
<p><img class="alignnone" title="Three people standing on the Ubuntu logo" src="/images/ubuntu_for_new_linux_users/ubuntu.jpg" alt="" width="300" height="369" /></p>
<p>Ubuntu&#8217;s community is unlike many other Linux distributions in the sense that it is so much larger than the communities of other distributions. Ubuntu&#8217;s community is also unusual in the sense that a good chunk of it is made up of converted Windows users.</p>
<p>As some successful drug rehabilitation programs have recovering addicts talk to those that have successfully broken the addiction<sup> [citation needed]</sup>, it is also useful for a person considering switching to Linux to talk to a recent successful Linux-convert. Ubuntu can supply large masses of those recent-Linux-converts.</p>
<h3>Large number of Ubuntu-specific tutorials</h3>
<p>New Linux users attempting to solve a problem with their system will usually need to follow a tutorial or advice that it specific to their system (distribution, desktop environment, and so forth) as they cannot be expected to <em>translate</em> a tutorial for their distribution (example: using different package management systems to install the same software).</p>
<p>Thus, Linux users need to learn concepts on-the-go because they don&#8217;t have the time to stop and sit down to learn these concepts. After all, a newbie Linux user that is desperate to get X.org working in order to finish a report will not be willing to sit down and learn the syntax for the X11 configuration file (<em>/etc/X11/xorg.conf</em>).</p>
<p>The large number of Ubuntu specific tutorials reduces an Ubuntu user&#8217;s need to translate a tutorial for his or her system, resulting in <em>getting the job done in the least amount of time as possible</em>. While being knowledgeable about one&#8217;s operating system is important, when one&#8217;s printer is in immediate need of fixing is a bad time to have to learn about one&#8217;s operating system.</p>
<h2>Large repositories</h2>
<h3>One place to find software</h3>
<p>One of the reasons that Linux users constantly trumpet about their operating system is because of the brilliant invention that a package manager is. Now, a package manager is more useful and easy-to-use when there are large repositories backing the package manager.</p>
<p>Some distributions, like OpenSUSE, just don&#8217;t have that much in their default repositories compared to Ubuntu*.</p>
<p><em>* It depends on how you look at it. I am only counting the packages that one can find in the default repositories, but OpenSUSE uses may want to include the packages in the OpenSUSE Build Service.</em></p>
<h3>No hunting and/or compiling dependencies</h3>
<p>Sorry for picking on OpenSUSE, but I&#8217;ve noticed that I&#8217;ll frequently attempt to install a package in the repositories, but then discover that a dependency outside the repositories is needed. I&#8217;m not sure whether or not this occurs with Ubuntu&#8217;s default repositories, but it has not happened to me. The concept of dependencies is immensely confusing to former Windows users, who are used to going to <a href="http://www.download.com/windows/">Download.com</a> and running installers.</p>
<h2>Media coverage</h2>
<p><em>(This is somewhat along the lines of the Popularity section)</em></p>
<p>To the seasoned Linux user sadly shaking his or head at this blog post, stating that media coverage of Ubuntu is a reason that it should be recommended to users switching to Linux is silly.</p>
<p>How I see it is that attempting to get a Windows user to use a lesser-known Linux distribution is a bit scary for the Windows user. From the viewpoint of the Windows user, another person is offering some strange operating system that will provide some benefits that the Windows user doesn&#8217;t understand completely.</p>
<p>The difference with Ubuntu is that there is a much greater chance that the Windows user has heard of it, thus the Windows user thinks that he is trying out something safe and beneficial, rather than entering a strange and possibly dangerous (to the Windows user&#8217;s hard drive) world. It is important to remember that the attitude that a former Windows user approaches Linux with can affect his or her feelings regarding Linux.</p>
<h2>Final notes</h2>
<p>I don&#8217;t mean to say that all users should use Ubuntu.</p>
<p>I don&#8217;t mean to say that Ubuntu works for all users.</p>
<p>I don&#8217;t mean to say that a user should try Ubuntu, even if it is explicitly obvious that Ubuntu will not fit the user&#8217;s needs (Example: Running on very old hardware).</p>
<p>I don&#8217;t mean to say that other desktop Linux distributions are terrible. I&#8217;m writing this on OpenSUSE 11.1 because of Ubuntu problems.</p>
<p>I don&#8217;t mean to say that Ubuntu is technologically superior to other Linux distributions.</p>
<p>And lastly, I understand that diversity is an important part of Linux.</p>
<p>But regardless of all that, I think that if a user could face a difficult time choosing Linux distros, Ubuntu should be the first, but not always the only, path taken.</p>
<p>UPDATE: If you want to see somebody with superior writing skill make similar points, you can check out MaximumPC&#8217;s article called &#8220;<a title="MaximumPC: Why (almost) Everyone Should Try Ubuntu" href="http://www.maximumpc.com/article/why_almost_everyone_should_try_ubuntu">Why (almost) Everyone Should Try Ubuntu</a>&#8220;</p>
]]></content:encoded>
			<wfw:commentRss>http://codingexperiments.com/why-linux-users-should-try-ubuntu-first/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Safe Passwords</title>
		<link>http://codingexperiments.com/safe-passwords/</link>
		<comments>http://codingexperiments.com/safe-passwords/#comments</comments>
		<pubDate>Fri, 13 Feb 2009 23:57:34 +0000</pubDate>
		<dc:creator>freezewarp</dc:creator>
		
		<category><![CDATA[Security]]></category>

		<category><![CDATA[passwords]]></category>

		<guid isPermaLink="false">http://codingexperiments.com/?p=676</guid>
		<description><![CDATA[There are so many other posts on the Internet that implore users to use safe passwords, yet so few users actually do so. If you are so inclined, you may read this post to discover how secure--or insecure--your passwords are, and what you should do to fix them.]]></description>
			<content:encoded><![CDATA[<p>Recently the database at PHPBB.com was hacked, exposing the passwords of all 20,000 users on the popular site. Of course, PHPBB.com is mainly used as a trouble-shooting forum for the software itself. This basically means that most people registered there will probably be fairly tech-literate. However, you wouldn&#8217;t think so based on the red-alert list of passwords. The number one password was &#8220;123456&#8243;, followed by &#8220;password&#8221;, then &#8220;12345678&#8243;.  &#8220;1234&#8243;, and a word which would be best left unsaid to preserve the integrity of this site.</p>
<p>So, why such poor passwords? Well, people probably don&#8217;t feel that their account will ever be hacked (and in this case it was the whole forum that was), or at least worth hacking. However, you should always play it safe and go with a good password. Though for many people these key points will be common sense, I feel they are worth some ink:</p>
<ol>
<li>Compose your password of upper and lowercase letters, numbers, and special characters (!@#$%^&amp;*&lt;&gt;|{}).</li>
<li>If you are good at remembering, choose random strings (ek:yqEO*&gt;#6hWb) or, if you (like myself) could never remember that, then go with l33t speak; replace letters with similar looking special characters and numbers. Also use a pattern to alternate lower and uppercase letters. Also make sure that the phrase you base it off is not common, like password (so don&#8217;t go with p@5sW()P,d).</li>
<li>Avoid using patterns on the keyboard, like !@#$%^&amp;*(), 134567890, qwertyui, asdfghj, zxcvbn, qazwsxedc, and the list goes on.</li>
<li>Always make sure to use different passwords for different sites, just in case one of the logins is discovered.</li>
<li>If you have a problem remembering passwords, don&#8217;t store a list electronically. Instead, keep all logins on physical paper and locked in a safe. Certainly don&#8217;t use the key-under-the-mat trick, or, in this case, store your password on the back of your computer or under your keyboard.</li>
<li>Don&#8217;t tell anyone else your passwords. Obviously, there are people you can probably trust (like your best friend since junior high school), but still be careful.</li>
<li>Be extra careful with sites containing sensitive information, like bank accounts. To a lesser extent, sites like Facebook and Myspace should also be closely guarded.</li>
<li>Finally, change your password every so often.</li>
</ol>
<p>Really, to sum things up, use common sense and you should be safe.</p>
]]></content:encoded>
			<wfw:commentRss>http://codingexperiments.com/safe-passwords/feed/</wfw:commentRss>
		</item>
		<item>
		<title>The Dangers of Telling a User Switching to Linux That &#8220;Linux Is Just like Windows&#8221;</title>
		<link>http://codingexperiments.com/the-dangers-of-telling-a-user-switching-to-linux-that-linux-is-just-like-windows/</link>
		<comments>http://codingexperiments.com/the-dangers-of-telling-a-user-switching-to-linux-that-linux-is-just-like-windows/#comments</comments>
		<pubDate>Sun, 18 Jan 2009 19:54:29 +0000</pubDate>
		<dc:creator>Rishabh Mishra</dc:creator>
		
		<category><![CDATA[Linux]]></category>

		<category><![CDATA[Microsoft]]></category>

		<category><![CDATA[Microsoft Windows]]></category>

		<category><![CDATA[newbies]]></category>

		<guid isPermaLink="false">http://codingexperiments.com/?p=648</guid>
		<description><![CDATA[Linux is not like Windows, but many Linux users attempt to convert Windows users over by making the Linux experience as Windows-y as possible. This is a dangerous policy, and the post details why.]]></description>
			<content:encoded><![CDATA[<p>Many Linux users, including myself, are quite desperate to get people to switch to Linux, or at least use more open-source software.</p>
<p>Nothing wrong with that. The problem comes in when Linux users say the wrong things in an attempt to convert other users to Linux. The latest example of such a mistake is the tale of Abbie Schubert, a Wisconsin woman that dropped out of college due to troubles with Ubuntu. From the article, <a href="http://www.wkowtv.com/Global/story.asp?S=9667184">Woman blames Dell for missing online classes</a>, describing this:</p>
<blockquote><p>Schubert says she never heard of Ubuntu until learning that she accidentally bought it.  She called Dell the very next day and says the representative told her there was still time to change back to Windows.</p>
<p>But she says Dell discouraged her.</p>
<p>&#8220;The person I was talking to said Ubuntu was great, college students loved it, it was compatible with everything I needed,&#8221; said Schubert.</p>
<p>So she stuck with it.</p>
<p>Later, she discovered Ubuntu might look like Windows, but it doesn&#8217;t always act like it.</p>
<p>Her Verizon High-Speed Internet CD won&#8217;t load, so she can&#8217;t access the internet.  She also can&#8217;t install Microsoft Word, which she says is a requirement for MATC&#8217;s online classes.</p></blockquote>
<p>This story is similar to so many other stories as it fits this general framework:</p>
<ol>
<li>Average computer user gets a Linux computer, expecting a Windows one.</li>
<li>Average computer user is told that &#8220;Linux is just like Windows&#8221; (or some variation of the phrase). In the example story, the representative, by saying that &#8220;[Ubuntu] was compatible with everything [Schubert] needed,&#8221; implied that tasks could be completed on Ubuntu <em>in the same manner</em> as the task would be completed on Windows</li>
<li>Average computer user gives Linux a chance, and is disappointed because something went wrong.</li>
<li>Average computer user now does not trust Linux.</li>
</ol>
<p>In this cycle, the second step is what really damages the reputation of Linux. Rather than saying &#8220;Linux is just like Windows,&#8221; what should be said is, &#8220;Linux can do everything Windows can, but a little differently. Once you get the hang of it, you&#8217;ll save time and money. Let me help you get started.&#8221;</p>
<p>Note: If you happen to be interested, read the <a title="Ubuntu on the Brain: from WKOWTV.com's &quot;Behind the News&quot; blog." href="http://www.wkowtv.com/Global/story.asp?S=9680186">followup article about Ubuntu</a>, from the news organization that wrote the above article</p>
]]></content:encoded>
			<wfw:commentRss>http://codingexperiments.com/the-dangers-of-telling-a-user-switching-to-linux-that-linux-is-just-like-windows/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
