<?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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Code Ghar</title>
	<atom:link href="http://codeghar.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://codeghar.wordpress.com</link>
	<description>Code, Scripts, Configurations, and Discussion</description>
	<lastBuildDate>Tue, 24 Jan 2012 11:44:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='codeghar.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Code Ghar</title>
		<link>http://codeghar.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://codeghar.wordpress.com/osd.xml" title="Code Ghar" />
	<atom:link rel='hub' href='http://codeghar.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Making a case for excluding users from open source</title>
		<link>http://codeghar.wordpress.com/2012/01/16/making-a-case-for-excluding-users-from-open-source/</link>
		<comments>http://codeghar.wordpress.com/2012/01/16/making-a-case-for-excluding-users-from-open-source/#comments</comments>
		<pubDate>Mon, 16 Jan 2012 22:52:32 +0000</pubDate>
		<dc:creator>hs</dc:creator>
				<category><![CDATA[discussion]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://codeghar.wordpress.com/?p=771</guid>
		<description><![CDATA[Open source or free software is meant to remove the shackles of proprietary software binding users all over the world. This in itself is a very noble idea and goal. However, it&#8217;s also a very tough goal. Not because people are happy with their shackles but because most people don&#8217;t care about them. I see [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codeghar.wordpress.com&amp;blog=1985485&amp;post=771&amp;subd=codeghar&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Open source or free software is meant to remove the shackles of proprietary software binding users all over the world. This in itself is a very noble idea and goal. However, it&#8217;s also a very tough goal. Not because people are happy with their shackles but because most people don&#8217;t care about them. I see around myself people who want to do stuff and it doesn&#8217;t matter how they do it. Want to watch some TV show online? Pay Netflix, Hulu, whatever, to watch it. Even with all the hoopla about content piracy, people are signing up in droves for these services.</p>
<p>Computers are complex machines. Not everyone can or is willing to understand how they function. All many people want is to be able to fire up a browser and connect with friends/family using Facebook or to sign in to Hotmail every once in a while. They also want to be able to carry a phone that can play music, games, YouTube, etc.</p>
<p>The computer industry, in my very limited knowledge, is very cyclical. But with each cycle more and more people have become users of technology. But if we look at this technology adoption, it has been forced down the throats of people. TV was a simple device but now it&#8217;s a beast; there are so many TVs to choose from, let alone the myriad devices surrounding it. 10 years ago no consumer wanted this but the companies researching and producing these products have forced them onto all consumers. It&#8217;s very rare that you find a good old-fashioned TV anymore. Thus, newer technology is quickly replacing older one even if the consumers are satisfied with their perfectly-fine/working technology.</p>
<p>The proponents of open source and free software need to classify users all over the world first. We all need to know who is already using technology and what they are using it for. We also need to know who isn&#8217;t using technology and how they will use it if they can. I will take the liberty to classify users myself, with a purely subjective and non-scientific point of view.</p>
<p>There are two digital worlds: the haves and the have-nots. For the have-nots, open source and free software is a godsend. They are able to not only use technology but possibly learn how it functions. I believe they are prime candidates to be targeted for open source. On the other hand, the haves already have access to a plethora of technology and a lot of them have no inclination to ever learn more about it.</p>
<p>If you ever want to lose faith in technology-using humanity, head over to <a href="http://www.reddit.com/r/talesfromtechsupport/">Tales from Tech Support</a> or <a href="http://notalwaysright.com/tag/tech-support">Not Always Right</a>. No matter how hard we try, such users will never be able to appreciate the hard work and love put into open source. So isn&#8217;t it better for our sanity to let them be? Just like I have no idea how my car functions or plumbing works or electricity has been implemented in my home, they have no idea how computers function. But there&#8217;s a big difference between computers and cars/plumbing/electricity: their interface is simple enough to learn and repeat over different devices. Computers, on the other hand, have so many interfaces that we can&#8217;t expect everyone to learn them easily. Those willing to put an effort into learning them should be supported and welcomed; others left on their own.</p>
<p>Open source should not aim to take over the world. Open source should aim to make products that proponents of open source want to use. If regular users find benefit in these products, chalk that up as a win. But if the same regular users are not served by open source products, do not chalk it up as a loss. If commercial interests merge with open source interests, more users benefit, but even if they diverge the world doesn&#8217;t necessarily have to end. They keep doing their thing and we keep doing ours. We can continue to scratch our itch and let users decide whether they have the same itch to scratch. We won&#8217;t have many successful commercial ventures this way but at least we will not lose our passion for open source. The same passion we lose when our hard work is questioned for not being as good as shackling proprietary stuff. Open source was and must remain an alternative; if it dominates, well and good, if not, I really don&#8217;t see it as a bad thing.</p>
<br />Filed under: <a href='http://codeghar.wordpress.com/category/discussion/'>discussion</a> Tagged: <a href='http://codeghar.wordpress.com/tag/linux/'>linux</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/codeghar.wordpress.com/771/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/codeghar.wordpress.com/771/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/codeghar.wordpress.com/771/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/codeghar.wordpress.com/771/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/codeghar.wordpress.com/771/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/codeghar.wordpress.com/771/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/codeghar.wordpress.com/771/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/codeghar.wordpress.com/771/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/codeghar.wordpress.com/771/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/codeghar.wordpress.com/771/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/codeghar.wordpress.com/771/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/codeghar.wordpress.com/771/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/codeghar.wordpress.com/771/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/codeghar.wordpress.com/771/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codeghar.wordpress.com&amp;blog=1985485&amp;post=771&amp;subd=codeghar&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://codeghar.wordpress.com/2012/01/16/making-a-case-for-excluding-users-from-open-source/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/71f989105ceedf560923a5bd2b0f6e30?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">hs</media:title>
		</media:content>
	</item>
		<item>
		<title>Automated Customized Debian Installation Using Preseed</title>
		<link>http://codeghar.wordpress.com/2011/12/14/automated-customized-debian-installation-using-preseed/</link>
		<comments>http://codeghar.wordpress.com/2011/12/14/automated-customized-debian-installation-using-preseed/#comments</comments>
		<pubDate>Wed, 14 Dec 2011 18:27:16 +0000</pubDate>
		<dc:creator>hs</dc:creator>
				<category><![CDATA[configuration]]></category>
		<category><![CDATA[debian]]></category>

		<guid isPermaLink="false">http://codeghar.wordpress.com/?p=813</guid>
		<description><![CDATA[I&#8217;ve always wanted to create a custom Debian installer CD with a preseed file for automated installation. This post is the first step in realizing that dream. There are many steps and details involved in the process but creating a CD with a preseed.cfg file is the easiest because it&#8217;s repeatable step-by-step. So that&#8217;s where [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codeghar.wordpress.com&amp;blog=1985485&amp;post=813&amp;subd=codeghar&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve always wanted to create a custom Debian installer CD with a preseed file for automated installation. This post is the first step in realizing that dream. There are many steps and details involved in the process but creating a CD with a preseed.cfg file is the easiest because it&#8217;s repeatable step-by-step. So that&#8217;s where I start my quest.</p>
<p>I tested these steps using a Debian Squeeze 64-bit VM. I downloaded the daily Debian testing netinstall ISO image to use for customization. Therefore, the steps may need to be altered based on the contents of the downloaded CD.</p>
<h3>Install required software</h3>
<p>I found that I needed the following packages to create my customized Debian installer. You may need to install some of the other required packages based on your installation.</p>
<p><code>sudo aptitude install curl</code><br />
<code>sudo aptitude install rsync</code><br />
<code>sudo aptitude install genisoimage</code></p>
<h3>Create directories</h3>
<p>You will need to create some directories for your work. I like to create them all at once.</p>
<p>cg@codeghar:~$ <code>mkdir cgdeb</code><br />
cg@codeghar:~$ <code>cd cgdeb</code><br />
cg@codeghar:~/cgdeb/$ <code>mkdir iso loopdir isofiles workspace</code></p>
<h3>Download testing installer</h3>
<p>cg@codeghar:~/cgdeb/$ <code>cd iso</code></p>
<p>The URL used here may not always work. Your best bet is to download directly from Debian FTP/HTTP site.</p>
<p>cg@codeghar:~/cgdeb/iso$ <code>curl http://hammurabi.acc.umu.se/cdimage/daily-builds/daily/arch-latest/amd64/iso-cd/debian-testing-amd64-netinst.iso -o debian-testing-amd64-netinst.iso</code></p>
<p>cg@codeghar:~/cgdeb/iso$ <code>cd ..</code></p>
<h3>Mount installer ISO and extract files</h3>
<p>cg@codeghar:~/cgdeb$ <code>sudo mount -o loop iso/debian-testing-amd64-netinst.iso loopdir</code><br />
cg@codeghar:~/cgdeb$ <code>rsync -v -a -H --exclude=TRANS.TBL loopdir/ isofiles/</code><br />
cg@codeghar:~/cgdeb$ <code>sudo umount loopdir</code><br />
cg@codeghar:~/cgdeb$ <code>chmod u+w isofiles</code></p>
<h3>Extract initrd.gz</h3>
<p>You need to add your preseed.cfg file to initrd.gz so you first need to extract it.</p>
<p>cg@codeghar:~/cgdeb$ <code>cd workspace</code><br />
cg@codeghar:~/cgdeb/workspace$ <code>gzip -d &lt; ../isofiles/install.amd/initrd.gz | cpio --extract --verbose --make-directories --no-absolute-filenames</code></p>
<h3>Create preseed.cfg file</h3>
<p>You can create the preseed.cfg file in the workspace directory. You can look at the <a href="http://www.debian.org/releases/squeeze/example-preseed.txt">Debian Squeeze preseed example file</a> and customize it for your needs.</p>
<p>cg@codeghar:~/cgdeb/workspace$ <code>vim preseed.cfg</code></p>
<h3>Create new ISO</h3>
<p>Create a new initrd.gz and replace the original one with it.</p>
<p>cg@codeghar:~/cgdeb/workspace$ <code>su -c 'find . | cpio -H newc --create --verbose | gzip -9 &gt; ../isofiles/install.amd/initrd.gz'</code></p>
<p>cg@codeghar:~/cgdeb/workspace$ <code>cd ../isofiles</code></p>
<p>cg@codeghar:~/cgdeb/isofiles$ <code>chmod u+w md5sum.txt</code></p>
<p>Create new md5sum.txt file with updated MD5. You may see an error &#8220;find: File system loop detected; `./debian&#8217; is part of the same file system loop as `.&#8217;.&#8221; but it seems harmless and may be ignored (please correct me if I&#8217;m wrong).</p>
<p>cg@codeghar:~/cgdeb/isofiles$ <code>md5sum `find -follow -type f` &gt; md5sum.txt</code></p>
<p>Finally, create the new customized automated installer ISO.</p>
<p>cg@codeghar:~/cgdeb/isofiles$ <code>sudo genisoimage -o debian-testing-amd64-netinst-custom-preseed.iso -r -J -no-emul-boot -boot-load-size 4 -boot-info-table -b isolinux/isolinux.bin -c isolinux/boot.cat .</code></p>
<h3>Conclusion</h3>
<p>You can burn the ISO to a CD and install from there. When using the installer, use command line install NOT GUI install because we only modified the command line initrd.gz. If you want to use GUI install, I assume you would need to add the preseed.cfg file to that initrd.gz as well.</p>
<h3>Hat Tips</h3>
<p>This post would not have been possible without the following resources.</p>
<p><a href="http://wiki.debian.org/DebianInstaller/Preseed/EditIso">Debian-Installer: How to modify an existing CD image to preseed d-i</a>; <a href="http://d-i.alioth.debian.org/tmp/en.i386/apb.html">Automating the installation using preseeding</a>; <a href="http://www.n0r1sk.com/index.php/Debian_Remaster_Netinstaller_-_Integrate_Firmware_bnx2x_and_Preseed">Debian Remaster Netinstaller &#8211; Integrate Firmware bnx2x and Preseed</a>; <a href="http://www.debianadmin.com/genisoimage-creates-iso-9660-cd-rom-filesystem-images.html">Genisoimage &#8211; Creates ISO-9660 CD-ROM filesystem images</a></p>
<br />Filed under: <a href='http://codeghar.wordpress.com/category/configuration/'>configuration</a> Tagged: <a href='http://codeghar.wordpress.com/tag/debian/'>debian</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/codeghar.wordpress.com/813/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/codeghar.wordpress.com/813/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/codeghar.wordpress.com/813/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/codeghar.wordpress.com/813/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/codeghar.wordpress.com/813/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/codeghar.wordpress.com/813/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/codeghar.wordpress.com/813/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/codeghar.wordpress.com/813/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/codeghar.wordpress.com/813/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/codeghar.wordpress.com/813/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/codeghar.wordpress.com/813/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/codeghar.wordpress.com/813/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/codeghar.wordpress.com/813/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/codeghar.wordpress.com/813/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codeghar.wordpress.com&amp;blog=1985485&amp;post=813&amp;subd=codeghar&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://codeghar.wordpress.com/2011/12/14/automated-customized-debian-installation-using-preseed/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/71f989105ceedf560923a5bd2b0f6e30?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">hs</media:title>
		</media:content>
	</item>
		<item>
		<title>Introduction to Python subprocess module</title>
		<link>http://codeghar.wordpress.com/2011/12/09/introduction-to-python-subprocess-module/</link>
		<comments>http://codeghar.wordpress.com/2011/12/09/introduction-to-python-subprocess-module/#comments</comments>
		<pubDate>Fri, 09 Dec 2011 19:12:14 +0000</pubDate>
		<dc:creator>hs</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://codeghar.wordpress.com/?p=810</guid>
		<description><![CDATA[First off, head over to subprocess — Subprocess management to get all the details. This post will try to provide a gentle introduction to subprocess and my experience using it. There will be some suggestions here that I *think* are correct but be careful when you implement them in your code. Also remember that I [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codeghar.wordpress.com&amp;blog=1985485&amp;post=810&amp;subd=codeghar&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>First off, head over to <a href="http://docs.python.org/release/3.1.3/library/subprocess.html">subprocess — Subprocess management</a> to get all the details. This post will try to provide a gentle introduction to subprocess and my experience using it. There will be some suggestions here that I *think* are correct but be careful when you implement them in your code. Also remember that I wrote and tested this code using Python 3.1 on Debian Squeeze.</p>
<p>First off, I found it better to just use the Popen class and not the convenience functions provided. Using it helped me get a better handle on what&#8217;s going on. Second, learn the difference between Popen.wait() and Popen.communicate(). wait() basically sets Popen.returncode but keeps the stdout and stderr pipes as is. communicate() sets Popen.returncode but also returns stdout and stderr and closes the pipes so you can&#8217;t use them again as stdin for another command.</p>
<p>Third, use the shlex module so that you don&#8217;t have to fight with the command while creating a list to feed to args in Popen.</p>
<pre><code>
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import subprocess
import sys
import shlex
command_line = "sed -e 's/^import dev as settings_file$/import production as settings_file/' test -i"
command_to_run = shlex.split(command_line)
print (command_to_run)
try:
    command_run = subprocess.Popen(command_to_run, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
except:
    raise
command_run_stdout, command_run_stderr = command_run.communicate()
print (command_run.returncode, command_run_stderr.decode('utf-8'))
print (command_run_stdout.decode('utf-8'))
</code></pre>
<p>The preceeding code sample is pretty self-explanatory. I used shlex to create a list from my command string, a list used in the Popen class. I set both stdout and stderr to send their output to pipes. command_run is an object representing the command I ran. Using communicate(), I get three things: returncode (set automatically), stdout (returned by communicate), and stderror (returned by communicate). Since command_run_stdout and command_run_stderr are byte strings, I convert them into UTF-8 before printing.</p>
<p>I will modify the preceeding code so that I can use the stdout and stderr as stdin for another command.</p>
<pre><code>
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import subprocess
import sys
import shlex
command_line = "ls -l"
command_to_run = shlex.split(command_line)
print (command_to_run)
try:
    command_run = subprocess.Popen(command_to_run, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
except:
    raise
command_run.wait()
print (command_run.returncode)
command_to_run_2 = ["grep", "-i", "TOTAL"]
try:
    command_run_2 = subprocess.Popen(command_to_run_2, stdin=command_run.stdout)
except:
    raise
</code></pre>
<p>The biggest difference here was that I used wait() instead of communicate() so that I could use stdout as stdin for the second command.</p>
<p>If you are able to understand these things, I believe you are on your way to writing basic scripts that call out to the shell to do some tasks it&#8217;s best suited to do: run commands.</p>
<br />Filed under: <a href='http://codeghar.wordpress.com/category/code/'>code</a> Tagged: <a href='http://codeghar.wordpress.com/tag/python/'>python</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/codeghar.wordpress.com/810/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/codeghar.wordpress.com/810/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/codeghar.wordpress.com/810/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/codeghar.wordpress.com/810/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/codeghar.wordpress.com/810/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/codeghar.wordpress.com/810/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/codeghar.wordpress.com/810/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/codeghar.wordpress.com/810/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/codeghar.wordpress.com/810/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/codeghar.wordpress.com/810/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/codeghar.wordpress.com/810/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/codeghar.wordpress.com/810/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/codeghar.wordpress.com/810/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/codeghar.wordpress.com/810/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codeghar.wordpress.com&amp;blog=1985485&amp;post=810&amp;subd=codeghar&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://codeghar.wordpress.com/2011/12/09/introduction-to-python-subprocess-module/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/71f989105ceedf560923a5bd2b0f6e30?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">hs</media:title>
		</media:content>
	</item>
		<item>
		<title>I&#8217;m back home with Debian</title>
		<link>http://codeghar.wordpress.com/2011/11/18/im-back-home-with-debian/</link>
		<comments>http://codeghar.wordpress.com/2011/11/18/im-back-home-with-debian/#comments</comments>
		<pubDate>Fri, 18 Nov 2011 19:58:26 +0000</pubDate>
		<dc:creator>hs</dc:creator>
				<category><![CDATA[discussion]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://codeghar.wordpress.com/?p=795</guid>
		<description><![CDATA[I have been struggling with my conscience recently over using Ubuntu as a server. From a technical perspective, it&#8217;s an excellent choice. It has regular releases, can be both stable and cutting edge, has thousands upon thousands of packages, supports a lot of hardware, has a very pragmatic approach to enterprise server requirements, and much, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codeghar.wordpress.com&amp;blog=1985485&amp;post=795&amp;subd=codeghar&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I have been struggling with my conscience recently over using Ubuntu as a server. From a technical perspective, it&#8217;s an excellent choice. It has regular releases, can be both stable and cutting edge, has thousands upon thousands of packages, supports a lot of hardware, has a very pragmatic approach to enterprise server requirements, and much, much more. With all these benefits Ubuntu has been a favorite of mine for a long time. But recently I have been thinking more philosophically.</p>
<p>At its very core Ubuntu is still Debian. Without Debian, Ubuntu would lead a very crippled life. A vast majority of packages in Ubuntu have their origination in Debian. They would have a huge hill to climb if Ubuntu were to start managing all packages themselves. For Canonical this would be a huge cost to bear and for the Ubuntu community a huge task to manage especially when they are poised to take Ubuntu to the masses. This confirms for me the fact that Debian needs to successfully exist for Ubuntu to survive (in the short term) and prosper (in the long term).</p>
<p>I&#8217;m really not concerned with the hoopla surrounding Unity because it&#8217;s an admirable goal for Canonical to push Ubuntu to form factors other than desktops and servers. I may not like the decisions but I want to support the idea behind them: make it easier for organizations to use and support an open source GUI. Just want to make clear that Unity has nothing to do with this post.</p>
<p>Where does Debian fit in today&#8217;s ecosystem? They are not jumping on the cloud bandwagon, they haven&#8217;t made systemd default yet, GNOME 3 is slowly coming to Testing, etc. They are still the strong, stable, dependable distribution they always have been. This stability makes Debian an excellent OS for server use. But not all servers need older and well-tested versions of applications and libraries; some really do need the latest and greatest. Here come the advantages provided by apt pinning: you can choose to use newer versions of some packages while keeping the rest of the system at the stable version.</p>
<p>More than anything else, it&#8217;s the independence of Debian that&#8217;s attractive. Sure you won&#8217;t always get a stable release every two years. You won&#8217;t see Debian pre-installed in your Cisco server. But what you do get is a product above the influence of corporate interests. Debian is truly a community-managed product and one person&#8217;s vision (good or bad) doesn&#8217;t derail the vision of the community. There&#8217;s no possibility of a corporate entity being bought by an anti-Linux entity and then the hard work of free and open source developers being used against them.</p>
<p>I believe in this hostile environment where patents are being used as weapons and shady deals are being forged to undermine the Linux movement (and the greater open source and free movement), independent Linux distributions need to be supported. I count Debian and Mageia as two really good examples of independent distributions and ones I would support as best I can (at least by using these products and not others).</p>
<p>Although there are tons of differences between Debian and other distributions, I&#8217;ll try to list some significant differences (in my view) so others who are looking for a distribution have another point of view when making a decision.</p>
<p><a href="http://www.ubuntu.com/">Ubuntu</a>: It seems to be too reliant on Canonical for its existence; if Canonical doesn&#8217;t exist, Ubuntu will be crippled. Then Canonical has a policy of copyright assignment that just doesn&#8217;t sit well with me.</p>
<p><a href="http://www.fedoraproject.org/">Fedora</a>: It&#8217;s direction is independent but when a user wants to move up from using Fedora as a desktop to RHEL/CentOS on the server, the number of available packages shrinks dramatically. Thus servers have to rely on other repositories like <a href="http://fedoraproject.org/wiki/EPEL">EPEL</a> and <a href="http://iuscommunity.org/">IUS</a>.</p>
<p><a href="http://www.linuxmint.com/">Linux Mint</a>: They are doing great work on the desktop but their <a href="http://blog.linuxmint.com/?p=1851">recent announcement</a> that &#8220;It won’t only be down to donations and sponsorships anymore, your activity on the web, every search query you make and product you buy will help fund our project&#8221; makes we wary of the long-term community-vibe of this project. It&#8217;s still a few developers working on a distribution and although the community has a lot of say in its direction, it&#8217;s still a long way off from being truly community controlled.</p>
<p><a href="http://www.opensuse.org/">openSUSE</a>: I tried openSUSE 12.1 for a few hours and absolutely loved it. It&#8217;s a very polished distribution and has some nice features missing from other distributions. But I still can&#8217;t get over the fact that it&#8217;s still at the mercy of corporate interests, be it Novell or Attachmate. If an independent openSUSE Foundation ever comes to fruition and the community controls the project then I would certainly support and use it more.</p>
<p><a href="http://www.mageia.org/">Mageia</a>: I have used Mageia 1 and it&#8217;s a very good distribution. But it&#8217;s still in its infancy. Many of the packages I would like to use (e.g. Python 3, Virtualenv) were not included in the first release. I have my eyes on this distribution and will certainly give it another try when they release version 2.</p>
<p><a href="http://www.pclinuxos.com/">PCLinuxOS</a>: I am pretty much ignorant when it comes to PCLinuxOS. I have used it for a few hours here and there and liked it. It&#8217;s focused on creating a good desktop distribution so immediately I know that they are not a good choice for a desktop and server ecosystem (within the same distribution). Plus I can&#8217;t figure out if it&#8217;s a small team of independent developers or a corporate entity backing it.</p>
<p>In short, I think I use Debian because it&#8217;s not only a great product for my use cases but also independent. It has the stability of Stable, newness of Testing (plus I feel like I&#8217;m contributing to the next Stable by using Testing), and cutting-edge-ness of Unstable. I can use free software only or I can taint it with non-free codecs, drivers, applications, etc. I can use the Linux kernel or the kFreeBSD one (although I have never tried it in real life). So a user has many choices within the same distribution. When Debian says it&#8217;s a universal OS, these developers and packagers work really hard to mean it.</p>
<br />Filed under: <a href='http://codeghar.wordpress.com/category/discussion/'>discussion</a> Tagged: <a href='http://codeghar.wordpress.com/tag/debian/'>debian</a>, <a href='http://codeghar.wordpress.com/tag/ubuntu/'>ubuntu</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/codeghar.wordpress.com/795/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/codeghar.wordpress.com/795/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/codeghar.wordpress.com/795/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/codeghar.wordpress.com/795/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/codeghar.wordpress.com/795/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/codeghar.wordpress.com/795/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/codeghar.wordpress.com/795/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/codeghar.wordpress.com/795/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/codeghar.wordpress.com/795/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/codeghar.wordpress.com/795/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/codeghar.wordpress.com/795/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/codeghar.wordpress.com/795/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/codeghar.wordpress.com/795/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/codeghar.wordpress.com/795/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codeghar.wordpress.com&amp;blog=1985485&amp;post=795&amp;subd=codeghar&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://codeghar.wordpress.com/2011/11/18/im-back-home-with-debian/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/71f989105ceedf560923a5bd2b0f6e30?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">hs</media:title>
		</media:content>
	</item>
		<item>
		<title>Remote Desktop in Ubuntu 11.10 Oneiric Ocelot</title>
		<link>http://codeghar.wordpress.com/2011/11/15/remote-desktop-in-ubuntu-oneiric-ocelot/</link>
		<comments>http://codeghar.wordpress.com/2011/11/15/remote-desktop-in-ubuntu-oneiric-ocelot/#comments</comments>
		<pubDate>Tue, 15 Nov 2011 21:52:27 +0000</pubDate>
		<dc:creator>hs</dc:creator>
				<category><![CDATA[configuration]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://codeghar.wordpress.com/?p=801</guid>
		<description><![CDATA[I have always used VNC to remotely connect to a Linux desktop. On Windows it&#8217;s been RDP. I came across a much better way than VNC to connect to my Kubuntu desktop: x2go. The application is absolutely wonderful and dead easy to install on Kubuntu. But its documentation is a confusing mess. Fortunately, we don&#8217;t [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codeghar.wordpress.com&amp;blog=1985485&amp;post=801&amp;subd=codeghar&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I have always used VNC to remotely connect to a Linux desktop. On Windows it&#8217;s been RDP. I came across a much better way than VNC to connect to my Kubuntu desktop: <a href="http://www.x2go.org/">x2go</a>. The application is absolutely wonderful and dead easy to install on Kubuntu. But its documentation is a confusing mess. Fortunately, we don&#8217;t really need to use the documentation that much.</p>
<p>There are two components to x2go: client and server. Go to the <a href="http://www.x2go.org/index.php?id=7&amp;L=5">download page</a> to get a client for Windows. To setup the server on Ubuntu you will need to do the following (source: <a href="http://wiki.x2go.org/wiki:x2go-repository-ubuntu">X2go packages for Ubuntu GNU/Linux</a>):</p>
<p>Step 1: Add a PPA respository</p>
<p><code>sudo add-apt-repository ppa:x2go/stable</code></p>
<p>Step 2: Update your package database</p>
<p><code>sudo aptitude update</code></p>
<p>Step 3: Install x2go server</p>
<p><code>sudo aptitude install x2goserver</code></p>
<p>Step 4: (Optional) Install x2go client in case you are using a Linux desktop</p>
<p><code>sudo aptitude install x2goclient</code></p>
<p>That&#8217;s basically all the configuration you need to do.</p>
<p>On your Windows/Linux desktop/workstation, just launch the x2go client and connect to your Ubuntu desktop using the connection profile information it asks for. Just make sure that you have SSH server enabled on your Ubuntu desktop and the firewall is not blocking its port.</p>
<p>Now don&#8217;t think that only Ubuntu can use x2go. All Linux distributions are able to run it but it&#8217;s just easier to install in Ubuntu because of the PPA.</p>
<p>I&#8217;ll also add that if you want to VNC or RDP to a Windows machine, you can use <a href="http://projects.gnome.org/vinagre/">Vinagre</a>. Just do a <code>sudo aptitude install vinagre</code> and you get an excellent remote desktop client.</p>
<br />Filed under: <a href='http://codeghar.wordpress.com/category/configuration/'>configuration</a> Tagged: <a href='http://codeghar.wordpress.com/tag/ubuntu/'>ubuntu</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/codeghar.wordpress.com/801/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/codeghar.wordpress.com/801/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/codeghar.wordpress.com/801/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/codeghar.wordpress.com/801/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/codeghar.wordpress.com/801/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/codeghar.wordpress.com/801/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/codeghar.wordpress.com/801/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/codeghar.wordpress.com/801/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/codeghar.wordpress.com/801/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/codeghar.wordpress.com/801/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/codeghar.wordpress.com/801/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/codeghar.wordpress.com/801/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/codeghar.wordpress.com/801/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/codeghar.wordpress.com/801/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codeghar.wordpress.com&amp;blog=1985485&amp;post=801&amp;subd=codeghar&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://codeghar.wordpress.com/2011/11/15/remote-desktop-in-ubuntu-oneiric-ocelot/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/71f989105ceedf560923a5bd2b0f6e30?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">hs</media:title>
		</media:content>
	</item>
	</channel>
</rss>
