<?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:creativeCommons="http://backend.userland.com/creativeCommonsRssModule"
>

<channel>
	<title>Nethazard.net &#187; GNU/Linux, Free Software &amp; Open Source</title>
	<atom:link href="http://blog.nethazard.net/category/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.nethazard.net</link>
	<description>Gabriel Saldana&#039;s blog about web development, free software and other lifestyle topics</description>
	<lastBuildDate>Wed, 25 Aug 2010 20:57:37 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
<creativeCommons:license>http://creativecommons.org/licenses/by-sa/2.5/mx/</creativeCommons:license>
		<item>
		<title>Happy 17th birthday Debian</title>
		<link>http://blog.nethazard.net/happy-17th-birthday-debian/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</link>
		<comments>http://blog.nethazard.net/happy-17th-birthday-debian/#comments</comments>
		<pubDate>Tue, 17 Aug 2010 02:53:00 +0000</pubDate>
		<dc:creator>Gabriel Saldaña</dc:creator>
				<category><![CDATA[GNU/Linux, Free Software & Open Source]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[gnu/linux]]></category>

		<guid isPermaLink="false">http://blog.nethazard.net/?p=689</guid>
		<description><![CDATA[I just wanted to post a few lines about Debian today since its the 17th anniversary of the project. I haven&#8217;t been a long time Debian user. I started using GNU/Linux as an experimental project back when RedHat was on version 5. Then one day, I purchased my first distribution. Yes, I paid for it [...]


Related posts:<ol><li><a href='http://blog.nethazard.net/my-girlfriends-migration-to-debian/' rel='bookmark' title='Permanent Link: My girlfriend&#8217;s migration to Debian'>My girlfriend&#8217;s migration to Debian</a></li>
<li><a href='http://blog.nethazard.net/debian-lenny-on-dell-xps-m1530/' rel='bookmark' title='Permanent Link: Debian Lenny on Dell XPS m1530'>Debian Lenny on Dell XPS m1530</a></li>
<li><a href='http://blog.nethazard.net/how-to-install-php-pdo-on-debian-lenny/' rel='bookmark' title='Permanent Link: How to install PHP PDO extensions on Debian Lenny'>How to install PHP PDO extensions on Debian Lenny</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://freeculturenews.com/wp-content/uploads/2008/12/debian.png" alt="debian logo" style="float:left;margin:5px;" /></p>

<p>I just wanted to post a few lines about <a href="http://debian.org">Debian</a> today since its the 17th anniversary of the project.  </p>

<p> I haven&#8217;t been a long time Debian user. I started using GNU/Linux as an experimental project back when <a href="http://redhat.com">RedHat</a> was on version 5. Then one day, I purchased my first distribution. Yes, I paid for it even though I knew I could get it for free, I decided to support with some money by buying the discs at a store. The distribution was RedHat 7. Then I went on with <a href="http://fedoraproject.org">Fedora</a> &hellip;and so on. </p>

<p> The thing is that, I never totally stuck using GNU/Linux up until I tried a Debian based distribution: <a href="http://ubuntu.com">Ubuntu</a>. I always got burned by the <a href="http://en.wikipedia.org/wiki/Dependency_hell">RPM hell</a>, so when I switched to using debs and apt-get, I was in heaven. The system was stable, upgrades were easy and I didn&#8217;t have to shake and sweat when I hit the update/upgrade button (or command) like with RPM distros. Other people like <a href="http://catb.org/esr/">Eric S. Raymond</a> has also <a href="http://www.linux.com/archive/articles/114233">talked about this subject</a>. </p>

<p> Then, when I finally switched to Debian thanks to several friend&#8217;s peer pressure (kidding&hellip;or not?), I liked it even more. My computer run faster than with Ubuntu, and I learned new tricks and things that I never noticed on Ubuntu. </p>

<p> Although I still don&#8217;t consider Debian to be as newbie-friendly distro as Ubuntu is, I still recommend it for new (and interested) people that switch to a GNU/Linux system. <a href="http://blog.nethazard.net/my-girlfriends-migration-to-debian/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed">My girlfriend switched and she loves it</a>, and she&#8217;s not very techie or geeky. Also, the lack of some &#8220;user friendlyness&#8221; is actually benefical since that forces the user to learn the system, and not think that computers are &#8220;magic&#8221;. Yes, lack of &#8220;magic&#8221; can be confused with &#8220;annoyance&#8221;, but most things are a few shell or aptitude commands away. </p>

<p> So if you&#8217;re not a Debian user, try it out! Leave the tricycle (ubuntu) and try a real bike (debian)! If you&#8217;re not a GNU/Linux user, try Debian and check out a real, solid, stable operating system&hellip;and learn a few tricks (commands, concepts) on the way. </p>

<p> Not most of the best and popular GNU/Linux distributions base their code on Debian for nothing. Check out why and get involved with the great nice and big <a href="http://www.debian-administration.org/articles/306">Debian community</a>. </p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Share:</strong>
</div>
<ul>
	<li class="sociablefirst"><a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fblog.nethazard.net%2Fhappy-17th-birthday-debian%2F&amp;title=Happy%2017th%20birthday%20Debian&amp;bodytext=%0D%0AI%20just%20wanted%20to%20post%20a%20few%20lines%20about%20Debian%20today%20since%20its%20the%2017th%20anniversary%20of%20the%20project.%20%20%20%20I%20haven%27t%20been%20a%20long%20time%20Debian%20user.%20I%20started%20using%20GNU%2FLinux%20as%20an%20experimental%20project%20back%20when%20RedHat%20was%20on%20version%205.%20Then%20one%20day%2C%20I%20p" title="Digg"><img src="http://blog.nethazard.net/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fblog.nethazard.net%2Fhappy-17th-birthday-debian%2F&amp;title=Happy%2017th%20birthday%20Debian&amp;notes=%0D%0AI%20just%20wanted%20to%20post%20a%20few%20lines%20about%20Debian%20today%20since%20its%20the%2017th%20anniversary%20of%20the%20project.%20%20%20%20I%20haven%27t%20been%20a%20long%20time%20Debian%20user.%20I%20started%20using%20GNU%2FLinux%20as%20an%20experimental%20project%20back%20when%20RedHat%20was%20on%20version%205.%20Then%20one%20day%2C%20I%20p" title="del.icio.us"><img src="http://blog.nethazard.net/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fblog.nethazard.net%2Fhappy-17th-birthday-debian%2F" title="Technorati"><img src="http://blog.nethazard.net/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fblog.nethazard.net%2Fhappy-17th-birthday-debian%2F&amp;title=Happy%2017th%20birthday%20Debian" title="Reddit"><img src="http://blog.nethazard.net/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.nethazard.net%2Fhappy-17th-birthday-debian%2F&amp;title=Happy%2017th%20birthday%20Debian" title="StumbleUpon"><img src="http://blog.nethazard.net/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.nethazard.net%2Fhappy-17th-birthday-debian%2F&amp;t=Happy%2017th%20birthday%20Debian" title="Facebook"><img src="http://blog.nethazard.net/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://meneame.net/submit.php?url=http%3A%2F%2Fblog.nethazard.net%2Fhappy-17th-birthday-debian%2F" title="Meneame"><img src="http://blog.nethazard.net/wp-content/plugins/sociable/images/meneame.png" title="Meneame" alt="Meneame" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.friendfeed.com/share?title=Happy%2017th%20birthday%20Debian&amp;link=http%3A%2F%2Fblog.nethazard.net%2Fhappy-17th-birthday-debian%2F" title="FriendFeed"><img src="http://blog.nethazard.net/wp-content/plugins/sociable/images/friendfeed.png" title="FriendFeed" alt="FriendFeed" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://identi.ca/notice/new?status_textarea=http%3A%2F%2Fblog.nethazard.net%2Fhappy-17th-birthday-debian%2F" title="Identi.ca"><img src="http://blog.nethazard.net/wp-content/plugins/sociable/images/identica.png" title="Identi.ca" alt="Identi.ca" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=Happy%2017th%20birthday%20Debian%20-%20http%3A%2F%2Fblog.nethazard.net%2Fhappy-17th-birthday-debian%2F" title="Twitter"><img src="http://blog.nethazard.net/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a></li>
	<li class="sociablelast"><a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fblog.nethazard.net%2Fhappy-17th-birthday-debian%2F&amp;title=Happy%2017th%20birthday%20Debian&amp;annotation=%0D%0AI%20just%20wanted%20to%20post%20a%20few%20lines%20about%20Debian%20today%20since%20its%20the%2017th%20anniversary%20of%20the%20project.%20%20%20%20I%20haven%27t%20been%20a%20long%20time%20Debian%20user.%20I%20started%20using%20GNU%2FLinux%20as%20an%20experimental%20project%20back%20when%20RedHat%20was%20on%20version%205.%20Then%20one%20day%2C%20I%20p" title="Google Bookmarks"><img src="http://blog.nethazard.net/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a></li>
</ul>
</div>
<img src="http://blog.nethazard.net/?ak_action=api_record_view&id=689&type=feed" alt="" />

<p>Related posts:<ol><li><a href='http://blog.nethazard.net/my-girlfriends-migration-to-debian/' rel='bookmark' title='Permanent Link: My girlfriend&#8217;s migration to Debian'>My girlfriend&#8217;s migration to Debian</a></li>
<li><a href='http://blog.nethazard.net/debian-lenny-on-dell-xps-m1530/' rel='bookmark' title='Permanent Link: Debian Lenny on Dell XPS m1530'>Debian Lenny on Dell XPS m1530</a></li>
<li><a href='http://blog.nethazard.net/how-to-install-php-pdo-on-debian-lenny/' rel='bookmark' title='Permanent Link: How to install PHP PDO extensions on Debian Lenny'>How to install PHP PDO extensions on Debian Lenny</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://blog.nethazard.net/happy-17th-birthday-debian/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/2.5/mx/</creativeCommons:license>
	</item>
		<item>
		<title>Started podcasting</title>
		<link>http://blog.nethazard.net/started-podcasting/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</link>
		<comments>http://blog.nethazard.net/started-podcasting/#comments</comments>
		<pubDate>Mon, 26 Jul 2010 15:00:44 +0000</pubDate>
		<dc:creator>Gabriel Saldaña</dc:creator>
				<category><![CDATA[GNU/Linux, Free Software & Open Source]]></category>
		<category><![CDATA[personal]]></category>

		<guid isPermaLink="false">http://blog.nethazard.net/?p=679</guid>
		<description><![CDATA[So after having planned some podcast projects, I finally started one of them. Its a show in spanish that talks about copyright, software, tech and legal news regarding our freedom. Its been a very interesting project. We talk mostly about Mexican laws and events that affect our freedom through copyright or any tech or data [...]


Related posts:<ol><li><a href='http://blog.nethazard.net/on-my-way-to-consol/' rel='bookmark' title='Permanent Link: on my way to CONSOL'>on my way to CONSOL</a></li>
<li><a href='http://blog.nethazard.net/drm-chat-at-unitec-monterrey/' rel='bookmark' title='Permanent Link: DRM chat at Unitec Monterrey'>DRM chat at Unitec Monterrey</a></li>
<li><a href='http://blog.nethazard.net/free-antivirus-programs-for-windows/' rel='bookmark' title='Permanent Link: Free antivirus programs for Windows'>Free antivirus programs for Windows</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/gabrielsaldana/4709067509/" title="my new audio mixer by gabrielsaldana, on Flickr"><img src="http://farm5.static.flickr.com/4066/4709067509_e469040816.jpg" width="500" height="333" alt="my new audio mixer" /></a></p>

<p>So after having planned some podcast projects, I finally started one of them. Its a show in spanish that talks about copyright, software, tech and legal news regarding our freedom.</p>

<p>Its been a very interesting project. We talk mostly about Mexican laws and events that affect our freedom through copyright or any tech or data law. We also talk about the free software movement in Mexico. Many people in this country seem to think that there are no legal advancement in the tech area, but there is, and it is greatly ignored. That&#8217;s why we decided to start this podcast, so there&#8217;s a place someone talk about these subjects and bring up conversations about that. Also to rise awareness of the free software movement and since its not too geeky-oriented, we use the space to talk about free alternatives to common proprietary software tools or software needs.</p>

<p>You can find the podcast at the <a href="http://sociedadlibre.org">Sociedad Libre</a> website. We stream it live every Wednesday, and you can find the information on how to participate on the <a href="http://sociedadlibre.org/en-vivo/">live show here</a>.</p>

<p>I hope you enjoy it! And let us know what you think by leaving a comment.</p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Share:</strong>
</div>
<ul>
	<li class="sociablefirst"><a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fblog.nethazard.net%2Fstarted-podcasting%2F&amp;title=Started%20podcasting&amp;bodytext=%0D%0A%0D%0ASo%20after%20having%20planned%20some%20podcast%20projects%2C%20I%20finally%20started%20one%20of%20them.%20Its%20a%20show%20in%20spanish%20that%20talks%20about%20copyright%2C%20software%2C%20tech%20and%20legal%20news%20regarding%20our%20freedom.%0D%0A%0D%0AIts%20been%20a%20very%20interesting%20project.%20We%20talk%20mostly%20about%20Mexi" title="Digg"><img src="http://blog.nethazard.net/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fblog.nethazard.net%2Fstarted-podcasting%2F&amp;title=Started%20podcasting&amp;notes=%0D%0A%0D%0ASo%20after%20having%20planned%20some%20podcast%20projects%2C%20I%20finally%20started%20one%20of%20them.%20Its%20a%20show%20in%20spanish%20that%20talks%20about%20copyright%2C%20software%2C%20tech%20and%20legal%20news%20regarding%20our%20freedom.%0D%0A%0D%0AIts%20been%20a%20very%20interesting%20project.%20We%20talk%20mostly%20about%20Mexi" title="del.icio.us"><img src="http://blog.nethazard.net/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fblog.nethazard.net%2Fstarted-podcasting%2F" title="Technorati"><img src="http://blog.nethazard.net/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fblog.nethazard.net%2Fstarted-podcasting%2F&amp;title=Started%20podcasting" title="Reddit"><img src="http://blog.nethazard.net/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.nethazard.net%2Fstarted-podcasting%2F&amp;title=Started%20podcasting" title="StumbleUpon"><img src="http://blog.nethazard.net/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.nethazard.net%2Fstarted-podcasting%2F&amp;t=Started%20podcasting" title="Facebook"><img src="http://blog.nethazard.net/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://meneame.net/submit.php?url=http%3A%2F%2Fblog.nethazard.net%2Fstarted-podcasting%2F" title="Meneame"><img src="http://blog.nethazard.net/wp-content/plugins/sociable/images/meneame.png" title="Meneame" alt="Meneame" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.friendfeed.com/share?title=Started%20podcasting&amp;link=http%3A%2F%2Fblog.nethazard.net%2Fstarted-podcasting%2F" title="FriendFeed"><img src="http://blog.nethazard.net/wp-content/plugins/sociable/images/friendfeed.png" title="FriendFeed" alt="FriendFeed" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://identi.ca/notice/new?status_textarea=http%3A%2F%2Fblog.nethazard.net%2Fstarted-podcasting%2F" title="Identi.ca"><img src="http://blog.nethazard.net/wp-content/plugins/sociable/images/identica.png" title="Identi.ca" alt="Identi.ca" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=Started%20podcasting%20-%20http%3A%2F%2Fblog.nethazard.net%2Fstarted-podcasting%2F" title="Twitter"><img src="http://blog.nethazard.net/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a></li>
	<li class="sociablelast"><a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fblog.nethazard.net%2Fstarted-podcasting%2F&amp;title=Started%20podcasting&amp;annotation=%0D%0A%0D%0ASo%20after%20having%20planned%20some%20podcast%20projects%2C%20I%20finally%20started%20one%20of%20them.%20Its%20a%20show%20in%20spanish%20that%20talks%20about%20copyright%2C%20software%2C%20tech%20and%20legal%20news%20regarding%20our%20freedom.%0D%0A%0D%0AIts%20been%20a%20very%20interesting%20project.%20We%20talk%20mostly%20about%20Mexi" title="Google Bookmarks"><img src="http://blog.nethazard.net/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a></li>
</ul>
</div>
<img src="http://blog.nethazard.net/?ak_action=api_record_view&id=679&type=feed" alt="" />

<p>Related posts:<ol><li><a href='http://blog.nethazard.net/on-my-way-to-consol/' rel='bookmark' title='Permanent Link: on my way to CONSOL'>on my way to CONSOL</a></li>
<li><a href='http://blog.nethazard.net/drm-chat-at-unitec-monterrey/' rel='bookmark' title='Permanent Link: DRM chat at Unitec Monterrey'>DRM chat at Unitec Monterrey</a></li>
<li><a href='http://blog.nethazard.net/free-antivirus-programs-for-windows/' rel='bookmark' title='Permanent Link: Free antivirus programs for Windows'>Free antivirus programs for Windows</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://blog.nethazard.net/started-podcasting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/2.5/mx/</creativeCommons:license>
	</item>
		<item>
		<title>command line tools for web developers</title>
		<link>http://blog.nethazard.net/command-line-tools-for-web-developers/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</link>
		<comments>http://blog.nethazard.net/command-line-tools-for-web-developers/#comments</comments>
		<pubDate>Tue, 15 Jun 2010 15:00:10 +0000</pubDate>
		<dc:creator>Gabriel Saldaña</dc:creator>
				<category><![CDATA[GNU/Linux, Free Software & Open Source]]></category>
		<category><![CDATA[Programming & Web Development]]></category>
		<category><![CDATA[command line]]></category>
		<category><![CDATA[gnu]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[terminal]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://blog.nethazard.net/?p=605</guid>
		<description><![CDATA[Many people are typically afraid of the terminal. Yes, it might look scary for some, retro for others, but for the practical busy programmer, the terminal is the best tool you can have. Lately for my day job, I&#8217;ve been required to work with lots of static web pages, as I&#8217;ve mentioned on several of [...]


Related posts:<ol><li><a href='http://blog.nethazard.net/search-and-replace-recursively-in-multiple-files/' rel='bookmark' title='Permanent Link: Search and replace recursively in multiple files'>Search and replace recursively in multiple files</a></li>
<li><a href='http://blog.nethazard.net/random-links-from-my-bookmarks/' rel='bookmark' title='Permanent Link: Random links from my bookmarks'>Random links from my bookmarks</a></li>
<li><a href='http://blog.nethazard.net/how-to-install-latest-git-on-ubuntu/' rel='bookmark' title='Permanent Link: How to install latest Git on Ubuntu'>How to install latest Git on Ubuntu</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a target="_blank" rel="external" href="http://flic.kr/p/2qMK1"><img src="http://farm1.static.flickr.com/13/16153058_c5fab2cc29_m.jpg" alt="Computer Data Output" /></a></p>

<p>Many people are typically afraid of the terminal. Yes, it might look scary for some, retro for others, but for the practical busy programmer, the terminal is the best tool you can have.</p>

<p>Lately for my day job, I&#8217;ve been required to work with lots of static web pages, as I&#8217;ve mentioned on several of my previous posts. So for my daily tasks, I&#8217;ve been using a lot of command line tools on the terminal that make my work a lot faster.</p>

<p>Here are some of the tools that I&#8217;ve been using and how I&#8217;ve used them:</p>

<ul>
<li><h3>find</h3>
Helps me list and filter certain types of files for processing. For example <code>find . -name *.html</code> This will give me a list of all files with .html extension under the current directory and subdirectories.</li>

<li><h3>sed</h3>
<a target="_blank" rel="external" href="www.gnu.org/software/sed/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed">GNU sed</a> is very handy to do all kinds of text manipulation without having to write a whole script about it. For example one common task would be search and replace a text or regular expression pattern on a file. Example: <code>sed -e "s/My Search/My replace/g" myfile.html</code></li>

<li><h3>xargs</h3>
This is a &#8216;piping&#8217; command, it will take the output of one tool and place it as arguments for the subsequent tool in the line. Example: <code>find . -name *.temp -print0 | xargs sed -n -e "s/Hello/Goodbye/g"</code> This will find all .temp files, then on each of them will search the word &#8220;Hello&#8221; and will replace it with the word &#8220;Goodbye&#8221;.</li>

<li><h3>tidy</h3>

When you have a bunch of legacy HTML code or &#8220;messy&#8221; (X)HTML documents you must parse, a good idea is to first clean up the code before working with it. <a target="_blank" rel="external" href="tidy.sourceforge.net/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed">Tidy</a> is a command line tool that will help you with the task of cleaning, reformatting and indenting any messy (X)HTML document. It even does a good job cleaning MS Word generated HTML files!</li>

<li><h3>GNU make</h3>

This is an &#8220;old school&#8221; tool, for the ones that grew up with web development and away from C/C++ development. <a target="_blank" rel="external"  href="www.gnu.org/software/make/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed">Make</a> is used to automate certain tasks and in a given order, checking for dependancies. In the web development process, I use make to automate repetitive tasks, such as deploying files to the testing server, making a tag in my version control system and publishing the site on the production server, cleaning up temporary files, and so on. So I write a Makefile with these tasks, and every time I have to upload my code to the testing server I only execute something like <code>make upload</code> and it will do the task. For example, cleaning up all temporary files on my project would involve me doing: <code>find . -name *.temp | xargs rm -rf</code>. I can create a Makefile with the following: 
<code>
clean:
        find . -name *.temp | xargs rm -rf
</code>
then every time I need to cleanup my codebase, I simply run <code>make clean</code> Hope you get the idea <img src='http://blog.nethazard.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> 
</li>
<li><h3>git</h3>
My preferred version control system for the past 4 years has been <a target="_blank" rel="external" href="http://git-scm.com/">Git</a>. Its a distributed version control system that is very simple and very practical to use because its extremely fast and doesn&#8217;t get in your way while programming. It has lots of features and tools for the everyday tasks and its a very good practice to version control *all* your projects, even if you&#8217;re the only developer of them. Since its distributed, you don&#8217;t need to setup a server for it and you can replicate your repository on any media and with as many copies you like. Version controlling your projects will save you from troubles like accidentally deleting files, or, using local code branches, you can easily experiment new features without affecting your main &#8220;stable&#8221; version of your code. There&#8217;s a lot to say about version controlling and Git and I guess I haven&#8217;t written about it before (strange since its a big topic for me), so I guess I&#8217;ll put more of these details for another post. Just take my advice, use git and version control all your projects. You&#8217;ll thank me later.</li>

<li><h3>rsync</h3>
<a target="_blank" rel="external" href="http://rsync.samba.org/">Rsync</a> is a great tool to synchronize files and directories from one location to another. This can be on the same machine or on different (remote) machines. The typicall use of rsync is for automated backups. You can use it as so, or you can also use it to mirror your website on another folder or machine. I use it to deploy my files on the testing and/or production servers. This way I don&#8217;t have to be worried about forgetting to upload a file, the whole project can be synchronized with one single command on multiple machines. You can configure rsync to connect through ssh (more on this below) to move your files around in a secure, encrypted file transfer.</li>

<li><h3>ssh &#038; scp</h3>
You definately don&#8217;t want your files to be going through the network in plain sight. I know, some might say: &#8220;who cares?&#8221; but really, its better to be paranoid and careful about your data. You never know. So the best way to transport your files from one machine to another is through a secure encrypted channel. This is what <a target="_blank" rel="external" href="www.openssh.com/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed">SSH</a> does for you. With ssh you can connect securely to your server&#8217;s command line to execute command there, or you can securely copy files from one machine to another using scp.</li>
</ul>

<p>There might be several other tools that I use daily but these are the ones more present in my mind as I&#8217;ve been using them a constantly.</p>

<p>What command line tools do you use for your web development tasks? Do you have other ideas on which the tools listed here can be used? Send me your comments, this might get interesting and useful for all of us.</p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Share:</strong>
</div>
<ul>
	<li class="sociablefirst"><a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fblog.nethazard.net%2Fcommand-line-tools-for-web-developers%2F&amp;title=command%20line%20tools%20for%20web%20developers&amp;bodytext=%0D%0A%0D%0AMany%20people%20are%20typically%20afraid%20of%20the%20terminal.%20Yes%2C%20it%20might%20look%20scary%20for%20some%2C%20retro%20for%20others%2C%20but%20for%20the%20practical%20busy%20programmer%2C%20the%20terminal%20is%20the%20best%20tool%20you%20can%20have.%0D%0A%0D%0ALately%20for%20my%20day%20job%2C%20I%27ve%20been%20required%20to%20work%20with%20lo" title="Digg"><img src="http://blog.nethazard.net/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fblog.nethazard.net%2Fcommand-line-tools-for-web-developers%2F&amp;title=command%20line%20tools%20for%20web%20developers&amp;notes=%0D%0A%0D%0AMany%20people%20are%20typically%20afraid%20of%20the%20terminal.%20Yes%2C%20it%20might%20look%20scary%20for%20some%2C%20retro%20for%20others%2C%20but%20for%20the%20practical%20busy%20programmer%2C%20the%20terminal%20is%20the%20best%20tool%20you%20can%20have.%0D%0A%0D%0ALately%20for%20my%20day%20job%2C%20I%27ve%20been%20required%20to%20work%20with%20lo" title="del.icio.us"><img src="http://blog.nethazard.net/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fblog.nethazard.net%2Fcommand-line-tools-for-web-developers%2F" title="Technorati"><img src="http://blog.nethazard.net/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fblog.nethazard.net%2Fcommand-line-tools-for-web-developers%2F&amp;title=command%20line%20tools%20for%20web%20developers" title="Reddit"><img src="http://blog.nethazard.net/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.nethazard.net%2Fcommand-line-tools-for-web-developers%2F&amp;title=command%20line%20tools%20for%20web%20developers" title="StumbleUpon"><img src="http://blog.nethazard.net/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.nethazard.net%2Fcommand-line-tools-for-web-developers%2F&amp;t=command%20line%20tools%20for%20web%20developers" title="Facebook"><img src="http://blog.nethazard.net/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://meneame.net/submit.php?url=http%3A%2F%2Fblog.nethazard.net%2Fcommand-line-tools-for-web-developers%2F" title="Meneame"><img src="http://blog.nethazard.net/wp-content/plugins/sociable/images/meneame.png" title="Meneame" alt="Meneame" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.friendfeed.com/share?title=command%20line%20tools%20for%20web%20developers&amp;link=http%3A%2F%2Fblog.nethazard.net%2Fcommand-line-tools-for-web-developers%2F" title="FriendFeed"><img src="http://blog.nethazard.net/wp-content/plugins/sociable/images/friendfeed.png" title="FriendFeed" alt="FriendFeed" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://identi.ca/notice/new?status_textarea=http%3A%2F%2Fblog.nethazard.net%2Fcommand-line-tools-for-web-developers%2F" title="Identi.ca"><img src="http://blog.nethazard.net/wp-content/plugins/sociable/images/identica.png" title="Identi.ca" alt="Identi.ca" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=command%20line%20tools%20for%20web%20developers%20-%20http%3A%2F%2Fblog.nethazard.net%2Fcommand-line-tools-for-web-developers%2F" title="Twitter"><img src="http://blog.nethazard.net/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a></li>
	<li class="sociablelast"><a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fblog.nethazard.net%2Fcommand-line-tools-for-web-developers%2F&amp;title=command%20line%20tools%20for%20web%20developers&amp;annotation=%0D%0A%0D%0AMany%20people%20are%20typically%20afraid%20of%20the%20terminal.%20Yes%2C%20it%20might%20look%20scary%20for%20some%2C%20retro%20for%20others%2C%20but%20for%20the%20practical%20busy%20programmer%2C%20the%20terminal%20is%20the%20best%20tool%20you%20can%20have.%0D%0A%0D%0ALately%20for%20my%20day%20job%2C%20I%27ve%20been%20required%20to%20work%20with%20lo" title="Google Bookmarks"><img src="http://blog.nethazard.net/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a></li>
</ul>
</div>
<img src="http://blog.nethazard.net/?ak_action=api_record_view&id=605&type=feed" alt="" />

<p>Related posts:<ol><li><a href='http://blog.nethazard.net/search-and-replace-recursively-in-multiple-files/' rel='bookmark' title='Permanent Link: Search and replace recursively in multiple files'>Search and replace recursively in multiple files</a></li>
<li><a href='http://blog.nethazard.net/random-links-from-my-bookmarks/' rel='bookmark' title='Permanent Link: Random links from my bookmarks'>Random links from my bookmarks</a></li>
<li><a href='http://blog.nethazard.net/how-to-install-latest-git-on-ubuntu/' rel='bookmark' title='Permanent Link: How to install latest Git on Ubuntu'>How to install latest Git on Ubuntu</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://blog.nethazard.net/command-line-tools-for-web-developers/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/2.5/mx/</creativeCommons:license>
	</item>
		<item>
		<title>Emacs Identica-mode microblogging client v1.0 release</title>
		<link>http://blog.nethazard.net/emacs-identica-mode-v1-0-release/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</link>
		<comments>http://blog.nethazard.net/emacs-identica-mode-v1-0-release/#comments</comments>
		<pubDate>Tue, 08 Jun 2010 15:30:38 +0000</pubDate>
		<dc:creator>Gabriel Saldaña</dc:creator>
				<category><![CDATA[Emacs]]></category>
		<category><![CDATA[GNU/Linux, Free Software & Open Source]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[elisp]]></category>
		<category><![CDATA[identica]]></category>
		<category><![CDATA[identica-mode]]></category>

		<guid isPermaLink="false">http://blog.nethazard.net/?p=633</guid>
		<description><![CDATA[I&#8217;m very happy to announce the release 1.0 of the Emacs identica-mode microblogging client. Its been a while since the last release, and its been for a good reason! The main improvements are: HTTP backend rewrite The backend that makes the HTTP connections has been completely rewritten to use url.el mode instead of the previous [...]


Related posts:<ol><li><a href='http://blog.nethazard.net/emacs-identica-mode-version-0-7/' rel='bookmark' title='Permanent Link: Emacs identica-mode version 0.7'>Emacs identica-mode version 0.7</a></li>
<li><a href='http://blog.nethazard.net/emacs-identica-mode-with-multiple-timelines-and-direct-messages/' rel='bookmark' title='Permanent Link: Emacs identica-mode with multiple timelines and direct messages'>Emacs identica-mode with multiple timelines and direct messages</a></li>
<li><a href='http://blog.nethazard.net/identica-mode-for-emacs/' rel='bookmark' title='Permanent Link: Identi.ca mode for Emacs'>Identi.ca mode for Emacs</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a target="_bank" rel="external" href="http://status.net"><img src="http://status.net/sites/default/files/statustheme_logo.png" alt="Status.net logo" style="float:left;margin: 5px;"/></a>
<a target="_bank" rel="external" href="http://gnu.org/software/emacs"><img src="http://www.gnu.org/graphics/gnu-head-sm.jpg" alt="GNU logo" style="float:right;margin:5px;" /></a></p>

<p style="clear:both">I&#8217;m very happy to announce the release 1.0 of the <a href="http://blog.nethazard.net/identica-mode-for-emacs#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed">Emacs identica-mode microblogging client</a>. Its been a while since the last release, and its been for a good reason! The main improvements are:</p>

<ul>
<li><p>HTTP backend rewrite</p>

<p>The backend that makes the HTTP connections has been completely rewritten to use url.el mode instead of the previous networking calls. This has made a big improvement on speed and reliability. Emacs no longer hangs for a while on crappy or slow connections.</p></li>
<li><p>Free network service URL shortening</p>

<p>Support for the FNS URL shortening services <a href="http://ur1.ca">Ur1.ca</a> and <a href="http://2tu.us">TightURL</a> have been added, with Ur1.ca as the default option. Previous services are also available through M-x customize-group identica-mode. Also added support for <a href="http://goo.gl">Google&#8217;s goo.gl url shortening service</a>.</p></li>
<li><p>Support for group and tag timelines</p>

<p>Now you can follow group and tag timelines, pressing C-c C-g for group timeline and C-c C-t for tag timeline. Also, pressing <enter> while the cursor is on a tag, username or group it will switch to that element&#8217;s timeline.</enter></p></li>
<li><p>Added support for unicode named tags and groups</p></li>
</ul>

<p>Basically you&#8217;ll notice a speed and stability improvement overall.</p>

<p>I also want to welcome Jason F. McBrayer and Shyam Karanatt as regular contributors and <a href="https://savannah.nongnu.org/project/memberlist.php?group=identica-mode">members of the Emacs Identica-mode project at Savannah</a>. Hope we can get more contributors to get this project further.</p>

<p><a href="http://blog.nethazard.net/u/1#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed">Download Emacs Identica-mode v1.0</a></p>

<h3>Contribute</h3>

<p>As always, if you have any ideas for features, patches or bug fixes, please add them to the <a href="http://blog.nethazard.net/u/3#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed">identica-mode bug tracking list</a>.</p>

<p>You can also help out if you&#8217;ve liked Emacs identica-mode and have some spare change. It would be great to support this project by making any kind of donation on the &#8220;tip jar&#8221; in appreciation of the hours invested on its development and improvement.</p>

<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_s-xclick"/>
<input type="hidden" name="encrypted" value="-----BEGIN PKCS7-----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-----END PKCS7-----
"/>
<input type="image" src="https://www.paypal.com/en_US/i/btn/btn_donate_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!"/>
<img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1"/>
</form>

<div class="sociable">
<div class="sociable_tagline">
<strong>Share:</strong>
</div>
<ul>
	<li class="sociablefirst"><a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fblog.nethazard.net%2Femacs-identica-mode-v1-0-release%2F&amp;title=Emacs%20Identica-mode%20microblogging%20client%20v1.0%20release&amp;bodytext=%0D%0A%0D%0AI%27m%20very%20happy%20to%20announce%20the%20release%201.0%20of%20the%20Emacs%20identica-mode%20microblogging%20client.%20Its%20been%20a%20while%20since%20the%20last%20release%2C%20and%20its%20been%20for%20a%20good%20reason%21%20The%20main%20improvements%20are%3A%0D%0A%0D%0A-%20HTTP%20backend%20rewrite%0D%0A%0D%0A%20%20The%20backend%20that%20makes%20" title="Digg"><img src="http://blog.nethazard.net/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fblog.nethazard.net%2Femacs-identica-mode-v1-0-release%2F&amp;title=Emacs%20Identica-mode%20microblogging%20client%20v1.0%20release&amp;notes=%0D%0A%0D%0AI%27m%20very%20happy%20to%20announce%20the%20release%201.0%20of%20the%20Emacs%20identica-mode%20microblogging%20client.%20Its%20been%20a%20while%20since%20the%20last%20release%2C%20and%20its%20been%20for%20a%20good%20reason%21%20The%20main%20improvements%20are%3A%0D%0A%0D%0A-%20HTTP%20backend%20rewrite%0D%0A%0D%0A%20%20The%20backend%20that%20makes%20" title="del.icio.us"><img src="http://blog.nethazard.net/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fblog.nethazard.net%2Femacs-identica-mode-v1-0-release%2F" title="Technorati"><img src="http://blog.nethazard.net/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fblog.nethazard.net%2Femacs-identica-mode-v1-0-release%2F&amp;title=Emacs%20Identica-mode%20microblogging%20client%20v1.0%20release" title="Reddit"><img src="http://blog.nethazard.net/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.nethazard.net%2Femacs-identica-mode-v1-0-release%2F&amp;title=Emacs%20Identica-mode%20microblogging%20client%20v1.0%20release" title="StumbleUpon"><img src="http://blog.nethazard.net/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.nethazard.net%2Femacs-identica-mode-v1-0-release%2F&amp;t=Emacs%20Identica-mode%20microblogging%20client%20v1.0%20release" title="Facebook"><img src="http://blog.nethazard.net/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://meneame.net/submit.php?url=http%3A%2F%2Fblog.nethazard.net%2Femacs-identica-mode-v1-0-release%2F" title="Meneame"><img src="http://blog.nethazard.net/wp-content/plugins/sociable/images/meneame.png" title="Meneame" alt="Meneame" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.friendfeed.com/share?title=Emacs%20Identica-mode%20microblogging%20client%20v1.0%20release&amp;link=http%3A%2F%2Fblog.nethazard.net%2Femacs-identica-mode-v1-0-release%2F" title="FriendFeed"><img src="http://blog.nethazard.net/wp-content/plugins/sociable/images/friendfeed.png" title="FriendFeed" alt="FriendFeed" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://identi.ca/notice/new?status_textarea=http%3A%2F%2Fblog.nethazard.net%2Femacs-identica-mode-v1-0-release%2F" title="Identi.ca"><img src="http://blog.nethazard.net/wp-content/plugins/sociable/images/identica.png" title="Identi.ca" alt="Identi.ca" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=Emacs%20Identica-mode%20microblogging%20client%20v1.0%20release%20-%20http%3A%2F%2Fblog.nethazard.net%2Femacs-identica-mode-v1-0-release%2F" title="Twitter"><img src="http://blog.nethazard.net/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a></li>
	<li class="sociablelast"><a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fblog.nethazard.net%2Femacs-identica-mode-v1-0-release%2F&amp;title=Emacs%20Identica-mode%20microblogging%20client%20v1.0%20release&amp;annotation=%0D%0A%0D%0AI%27m%20very%20happy%20to%20announce%20the%20release%201.0%20of%20the%20Emacs%20identica-mode%20microblogging%20client.%20Its%20been%20a%20while%20since%20the%20last%20release%2C%20and%20its%20been%20for%20a%20good%20reason%21%20The%20main%20improvements%20are%3A%0D%0A%0D%0A-%20HTTP%20backend%20rewrite%0D%0A%0D%0A%20%20The%20backend%20that%20makes%20" title="Google Bookmarks"><img src="http://blog.nethazard.net/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a></li>
</ul>
</div>
<img src="http://blog.nethazard.net/?ak_action=api_record_view&id=633&type=feed" alt="" />

<p>Related posts:<ol><li><a href='http://blog.nethazard.net/emacs-identica-mode-version-0-7/' rel='bookmark' title='Permanent Link: Emacs identica-mode version 0.7'>Emacs identica-mode version 0.7</a></li>
<li><a href='http://blog.nethazard.net/emacs-identica-mode-with-multiple-timelines-and-direct-messages/' rel='bookmark' title='Permanent Link: Emacs identica-mode with multiple timelines and direct messages'>Emacs identica-mode with multiple timelines and direct messages</a></li>
<li><a href='http://blog.nethazard.net/identica-mode-for-emacs/' rel='bookmark' title='Permanent Link: Identi.ca mode for Emacs'>Identi.ca mode for Emacs</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://blog.nethazard.net/emacs-identica-mode-v1-0-release/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/2.5/mx/</creativeCommons:license>
	</item>
		<item>
		<title>Search and replace recursively in multiple files</title>
		<link>http://blog.nethazard.net/search-and-replace-recursively-in-multiple-files/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</link>
		<comments>http://blog.nethazard.net/search-and-replace-recursively-in-multiple-files/#comments</comments>
		<pubDate>Tue, 18 May 2010 23:01:36 +0000</pubDate>
		<dc:creator>Gabriel Saldaña</dc:creator>
				<category><![CDATA[GNU/Linux, Free Software & Open Source]]></category>
		<category><![CDATA[Tutorials & Tips]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[command]]></category>
		<category><![CDATA[gnu]]></category>
		<category><![CDATA[sed]]></category>
		<category><![CDATA[text]]></category>

		<guid isPermaLink="false">http://blog.nethazard.net/?p=604</guid>
		<description><![CDATA[Lately I&#8217;ve been working with a lot of static HTML files with lots of repeating text structures. In the past I&#8217;ve talked about editing multiple files with Emacs. This approach works very well when the number of multiple files and text matches in each file is manageable, since you need to confirm pressing &#8220;y&#8221; on [...]


Related posts:<ol><li><a href='http://blog.nethazard.net/emacs-tip-how-to-edit-multiple-files/' rel='bookmark' title='Permanent Link: Emacs tip: How to edit multiple files on several directories in less than a minute'>Emacs tip: How to edit multiple files on several directories in less than a minute</a></li>
<li><a href='http://blog.nethazard.net/command-line-tools-for-web-developers/' rel='bookmark' title='Permanent Link: command line tools for web developers'>command line tools for web developers</a></li>
<li><a href='http://blog.nethazard.net/going-to-drupalcon-2010/' rel='bookmark' title='Permanent Link: Going to DrupalCon 2010'>Going to DrupalCon 2010</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Lately I&#8217;ve been working with a lot of static HTML files with lots of repeating text structures. In the past I&#8217;ve talked about <a href="http://blog.nethazard.net/emacs-tip-how-to-edit-multiple-files/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed">editing multiple files with Emacs</a>. This approach works very well when the number of multiple files and text matches in each file is manageable, since you need to confirm pressing &#8220;y&#8221; on every text match in each file.</p>

<p>On other cases, like the one I had to solve, you can have 84,000 text files where each file can have more than 5 matches. This case, doing it with emacs wouldn&#8217;t reduce much time. For these kind of cases, an &#8220;old&#8221; tool is very handy.</p>

<h3>GNU Sed</h3>

<p>Quoting from the <a href="http://www.gnu.org/software/sed/sed.html">GNU Sed project page</a>, sed is:</p>

<blockquote>
  <p>Sed (streams editor) isn&#8217;t really a true text editor or text processor. Instead, it is used to filter text, i.e., it takes text input and performs some operation (or set of operations) on it and outputs the modified text. Sed is typically used for extracting part of a file using pattern matching or substituting multiple occurrences of a string within a file.</p>
</blockquote>

<p>The way to tell sed to do a search and replace on some given text, the syntax is the following:
<code>sed -n -e 's/regex/text/g' filename</code></p>

<p>The -n switch makes Sed not to output its results to the standard output and overwrite the file with the results. The -e switch specifies that the following string is a command to perform on the file. The regex part is the regular expression to use for searching in your text. The text part is the text you want to replace your search with.</p>

<p>So Sed recieves streams of text as input, makes some operations on it and outputs the results. This way of seeing it, makes it very obvious to understand that the natural way to use it is through bash calls using pipes.</p>

<p>The find tool will help us get a list of all the files that we need to pipe into sed. In the same way we used find from within Emacs, we can call it from bash: <code>find path/to/folder -iname "filenamepattern"</code></p>

<p>So a combination of find with sed can be used in the following way:
<code>find myprojectfolder -iname "*.html" | sed -n -e 's/searchregex/replacementtext/g'</code></p>

<p>As easy as that, and you have edited 84,000 files with one single line of bash.</p>

<p>Hope its useful for anyone. It has been very useful to me. If you have other methods or other sed tips, I&#8217;d like to know in the comments.</p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Share:</strong>
</div>
<ul>
	<li class="sociablefirst"><a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fblog.nethazard.net%2Fsearch-and-replace-recursively-in-multiple-files%2F&amp;title=Search%20and%20replace%20recursively%20in%20multiple%20files&amp;bodytext=Lately%20I%27ve%20been%20working%20with%20a%20lot%20of%20static%20HTML%20files%20with%20lots%20of%20repeating%20text%20structures.%20In%20the%20past%20I%27ve%20talked%20about%20editing%20multiple%20files%20with%20Emacs.%20This%20approach%20works%20very%20well%20when%20the%20number%20of%20multiple%20files%20and%20text%20matches%20in%20each" title="Digg"><img src="http://blog.nethazard.net/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fblog.nethazard.net%2Fsearch-and-replace-recursively-in-multiple-files%2F&amp;title=Search%20and%20replace%20recursively%20in%20multiple%20files&amp;notes=Lately%20I%27ve%20been%20working%20with%20a%20lot%20of%20static%20HTML%20files%20with%20lots%20of%20repeating%20text%20structures.%20In%20the%20past%20I%27ve%20talked%20about%20editing%20multiple%20files%20with%20Emacs.%20This%20approach%20works%20very%20well%20when%20the%20number%20of%20multiple%20files%20and%20text%20matches%20in%20each" title="del.icio.us"><img src="http://blog.nethazard.net/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fblog.nethazard.net%2Fsearch-and-replace-recursively-in-multiple-files%2F" title="Technorati"><img src="http://blog.nethazard.net/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fblog.nethazard.net%2Fsearch-and-replace-recursively-in-multiple-files%2F&amp;title=Search%20and%20replace%20recursively%20in%20multiple%20files" title="Reddit"><img src="http://blog.nethazard.net/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.nethazard.net%2Fsearch-and-replace-recursively-in-multiple-files%2F&amp;title=Search%20and%20replace%20recursively%20in%20multiple%20files" title="StumbleUpon"><img src="http://blog.nethazard.net/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.nethazard.net%2Fsearch-and-replace-recursively-in-multiple-files%2F&amp;t=Search%20and%20replace%20recursively%20in%20multiple%20files" title="Facebook"><img src="http://blog.nethazard.net/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://meneame.net/submit.php?url=http%3A%2F%2Fblog.nethazard.net%2Fsearch-and-replace-recursively-in-multiple-files%2F" title="Meneame"><img src="http://blog.nethazard.net/wp-content/plugins/sociable/images/meneame.png" title="Meneame" alt="Meneame" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.friendfeed.com/share?title=Search%20and%20replace%20recursively%20in%20multiple%20files&amp;link=http%3A%2F%2Fblog.nethazard.net%2Fsearch-and-replace-recursively-in-multiple-files%2F" title="FriendFeed"><img src="http://blog.nethazard.net/wp-content/plugins/sociable/images/friendfeed.png" title="FriendFeed" alt="FriendFeed" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://identi.ca/notice/new?status_textarea=http%3A%2F%2Fblog.nethazard.net%2Fsearch-and-replace-recursively-in-multiple-files%2F" title="Identi.ca"><img src="http://blog.nethazard.net/wp-content/plugins/sociable/images/identica.png" title="Identi.ca" alt="Identi.ca" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=Search%20and%20replace%20recursively%20in%20multiple%20files%20-%20http%3A%2F%2Fblog.nethazard.net%2Fsearch-and-replace-recursively-in-multiple-files%2F" title="Twitter"><img src="http://blog.nethazard.net/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a></li>
	<li class="sociablelast"><a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fblog.nethazard.net%2Fsearch-and-replace-recursively-in-multiple-files%2F&amp;title=Search%20and%20replace%20recursively%20in%20multiple%20files&amp;annotation=Lately%20I%27ve%20been%20working%20with%20a%20lot%20of%20static%20HTML%20files%20with%20lots%20of%20repeating%20text%20structures.%20In%20the%20past%20I%27ve%20talked%20about%20editing%20multiple%20files%20with%20Emacs.%20This%20approach%20works%20very%20well%20when%20the%20number%20of%20multiple%20files%20and%20text%20matches%20in%20each" title="Google Bookmarks"><img src="http://blog.nethazard.net/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a></li>
</ul>
</div>
<img src="http://blog.nethazard.net/?ak_action=api_record_view&id=604&type=feed" alt="" />

<p>Related posts:<ol><li><a href='http://blog.nethazard.net/emacs-tip-how-to-edit-multiple-files/' rel='bookmark' title='Permanent Link: Emacs tip: How to edit multiple files on several directories in less than a minute'>Emacs tip: How to edit multiple files on several directories in less than a minute</a></li>
<li><a href='http://blog.nethazard.net/command-line-tools-for-web-developers/' rel='bookmark' title='Permanent Link: command line tools for web developers'>command line tools for web developers</a></li>
<li><a href='http://blog.nethazard.net/going-to-drupalcon-2010/' rel='bookmark' title='Permanent Link: Going to DrupalCon 2010'>Going to DrupalCon 2010</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://blog.nethazard.net/search-and-replace-recursively-in-multiple-files/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/2.5/mx/</creativeCommons:license>
	</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using disk (user agent is rejected)
Database Caching 87/220 queries in 2.685 seconds using disk

Served from: blog.nethazard.net @ 2010-09-02 17:36:30 -->