<?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/"
	>

<channel>
	<title>Gubatron.com &#187; Linux</title>
	<atom:link href="http://www.gubatron.com/blog/category/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.gubatron.com/blog</link>
	<description>Another Venezuelan Geek in New York</description>
	<lastBuildDate>Wed, 17 Mar 2010 18:08:29 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Quick N Dirty way to Map Commands to remote servers via ssh</title>
		<link>http://www.gubatron.com/blog/2009/10/10/map-commands-to-servers-via-ssh/</link>
		<comments>http://www.gubatron.com/blog/2009/10/10/map-commands-to-servers-via-ssh/#comments</comments>
		<pubDate>Sat, 10 Oct 2009 18:19:15 +0000</pubDate>
		<dc:creator>gubatron</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Geeklife]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[administration]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[convenience]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[tricks]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.gubatron.com/blog/?p=1457</guid>
		<description><![CDATA[You may be running several independent but similar servers at the same time and wasting time by executing commands in all of them one by one.
Wouldn&#8217;t it be nice to send a command to all of them at once? or to monitor all of them at once.
The following script can be used as a building [...]]]></description>
			<content:encoded><![CDATA[<p>You may be running several independent but similar servers at the same time and wasting time by executing commands in all of them one by one.</p>
<p>Wouldn&#8217;t it be nice to send a command to all of them at once? or to monitor all of them at once.</p>
<p>The following script can be used as a building block to more complex automation tasks for a small size set of servers. (If you&#8217;re managing over 50 servers, I&#8217;d probably consider looking a different way to arrange servers (map/reduce cluster), but if you&#8217;re doing something below that number this might suffice)</p>
<pre>
#!/usr/bin/python                                                                                                                                                                                                                                                      

#########################################################
# Author: Angel Leon (gubatron@gmail.com) - October 2009
#
# Invokes a command locally and invokes the same command
# in all machines under the specified username, servers
#
# Requirement: Have a public ssh_key for that user on all
# the other machines so you don't have to authenticate
# on all the other machines.
#########################################################
import sys
import os

# set the username that has access to all the machines here
user='safeuser'

# add all your server names here
servers=['server1.mydomain.com','server2.mydomain.com','server3.mydomain.com']

if __name__ == "__main__":
  if len(sys.argv) < 2:
    print "Usage: ssh_map_command <cmd>"
    sys.exit(0)

  cmd= ' '.join(sys.argv[1:])

  #Execute locally first
  print cmd
  os.system(cmd)

  #Execute for all the servers in the list
  for server in servers:
    remote_cmd="ssh %s@%s %s" % (user,server,cmd)
    print remote_cmd
    os.system(remote_cmd)
    print
</pre>
<p>Save as ssh_map_command and chmod +x it. </p>
<p><strong>Sample uses</strong><br />
Check the average load of all machines at once (then use output to mitigate high load issues)</p>
<pre>$ ssh_map_command uptime</pre>
<p>Send HUP signal to all your web servers (put it in an alias or other script&#8230; and that&#8217;s how you start building more complex scripts)</p>
<pre>$ ssh_map_command ps aux | grep [l]ighttpd | kill -HUP `awk {'print $2'}`</pre>
<p>Check if processes are alive, check memory usage on processes across different machines, <a href="http://en.wikipedia.org/wiki/Grep" target="_blank" rel="nofollow">grep</a> remote all logs at once, <a href="http://subversion.tigris.org/" target="_blank" rel="nofollow">svn up</a> on all machines, <a href="http://samba.anu.edu.au/rsync/" target="_blank" rel="nofollow">rsync</a> from one to many, hey, you can even <a href="http://en.wikipedia.org/wiki/Tail_%28Unix%29" target="_blank" rel="nofollow">tail -f</a> and grep all the logs at once, you can go nuts with this thing. Depends on what you need to do.</p>
<p><strong>Requirements</strong></p>
<ul>
<li>For convenience you should probably <a href="http://linuxproblem.org/art_9.html" target="_blank" rel="nofollow">set up ssh public/private keys between the main machine and the other machines</a> (or they can all trust each other and you can execute on any) so that you can execute commands on all the machines without having to enter passwords.</li>
<li>Put the script on your $PATH.</li>
<li><a href="http://python.org/" target="_blank" rel="nofollow">python</a></li>
</ul>
<p><strong>Security Advisory</strong><br />
Make sure only the desired user has read/write/execute access to it and keep your private ssh keys safe (preferably only read and execute for the owner, and no permissions whatsoever to anybody else <strong>chmod 500 ssh_mod_map</strong>), if possible change them as often as possible, for it may become a big security whole if an attacker can manage to write code on this script, specially if you have <strong>cronjobs</strong> invoking it. Your attacker would only need to change code here to mess up all of your machines.</p>
<p><strong>Disclaimer and Call for Knowledge</strong><br />
<img src="http://farm4.static.flickr.com/3607/3677330708_6d68fc4ce0_m.jpg" class="alignleft"/>Please, if someone knows of a standard way to map commands to multiple servers, please let me know in the comment section, in my case I needed a solution and I wrote a quick and dirty python script and tried to secure it as best as I could, by no means I&#8217;m saying that this is the best solution to mapping commands, in fact I believe it might be the least efficient way, however it works good enough for my personal needs.</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://twitter.com/home?status=Quick+N+Dirty+way+to+Map+Commands+to+remote+servers+via+ssh+http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F10%2F10%2Fmap-commands-to-servers-via-ssh%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F10%2F10%2Fmap-commands-to-servers-via-ssh%2F&amp;title=Quick+N+Dirty+way+to+Map+Commands+to+remote+servers+via+ssh"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F10%2F10%2Fmap-commands-to-servers-via-ssh%2F&amp;title=Quick+N+Dirty+way+to+Map+Commands+to+remote+servers+via+ssh"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F10%2F10%2Fmap-commands-to-servers-via-ssh%2F&amp;title=Quick+N+Dirty+way+to+Map+Commands+to+remote+servers+via+ssh"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F10%2F10%2Fmap-commands-to-servers-via-ssh%2F&amp;headline=Quick+N+Dirty+way+to+Map+Commands+to+remote+servers+via+ssh"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Quick+N+Dirty+way+to+Map+Commands+to+remote+servers+via+ssh&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F10%2F10%2Fmap-commands-to-servers-via-ssh%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Quick+N+Dirty+way+to+Map+Commands+to+remote+servers+via+ssh&amp;u=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F10%2F10%2Fmap-commands-to-servers-via-ssh%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Quick+N+Dirty+way+to+Map+Commands+to+remote+servers+via+ssh&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F10%2F10%2Fmap-commands-to-servers-via-ssh%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Quick+N+Dirty+way+to+Map+Commands+to+remote+servers+via+ssh&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F10%2F10%2Fmap-commands-to-servers-via-ssh%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Quick+N+Dirty+way+to+Map+Commands+to+remote+servers+via+ssh&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F10%2F10%2Fmap-commands-to-servers-via-ssh%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F10%2F10%2Fmap-commands-to-servers-via-ssh%2F&amp;title=Quick+N+Dirty+way+to+Map+Commands+to+remote+servers+via+ssh&amp;summary=&amp;source="><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F10%2F10%2Fmap-commands-to-servers-via-ssh%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F10%2F10%2Fmap-commands-to-servers-via-ssh%2F&amp;title=Quick+N+Dirty+way+to+Map+Commands+to+remote+servers+via+ssh"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.gubatron.com/blog/2009/10/10/map-commands-to-servers-via-ssh/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ubuntu/Debian Quick Reference: How To Change Your Server&#8217;s UTC Timezone on the command line</title>
		<link>http://www.gubatron.com/blog/2009/10/10/ubuntudebian-quick-reference-how-to-change-your-servers-utc-timezone-on-the-command-line/</link>
		<comments>http://www.gubatron.com/blog/2009/10/10/ubuntudebian-quick-reference-how-to-change-your-servers-utc-timezone-on-the-command-line/#comments</comments>
		<pubDate>Sat, 10 Oct 2009 16:27:00 +0000</pubDate>
		<dc:creator>gubatron</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Geeklife]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[date]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[reference]]></category>
		<category><![CDATA[time]]></category>
		<category><![CDATA[time zone]]></category>
		<category><![CDATA[time zones]]></category>
		<category><![CDATA[timezone]]></category>
		<category><![CDATA[timezones]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[utc]]></category>

		<guid isPermaLink="false">http://www.gubatron.com/blog/?p=1447</guid>
		<description><![CDATA[Just Type&#8230;
sudo dpkg-reconfigure tzdata

&#8230;and follow the instructions on screen.
The process should look something like the following:


Select your Region

Select a city on your time zone

You&#8217;re done.
Tip
You can always check the status of your configuration using
sudo debconf-show tzdata
You could for example map that command via ssh to several machines and grep for &#8220;*&#8221;, that way you could [...]]]></description>
			<content:encoded><![CDATA[<p>Just Type&#8230;<br />
<strong><code>sudo dpkg-reconfigure tzdata</code><br />
</strong></p>
<p>&#8230;and follow the instructions on screen.</p>
<p>The process should look something like the following:</p>
<p><img src="http://www.gubatron.com/blog/wp-content/uploads/2009/10/tzdata_sshot_01.png"/></p>
<p><img src="http://www.gubatron.com/blog/wp-content/uploads/2009/10/tzdata_sshot_02.png"/><br />
Select your Region</p>
<p><img src="http://www.gubatron.com/blog/wp-content/uploads/2009/10/tzdata_sshot_03.png"/><br />
Select a city on your time zone</p>
<p><img src="http://www.gubatron.com/blog/wp-content/uploads/2009/10/tzdata_sshot_04.png"/><br />
You&#8217;re done.</p>
<p><strong>Tip</strong><br />
You can always check the status of your configuration using<br />
<code>sudo debconf-show tzdata</code></p>
<p>You could for example map that command via ssh to several machines and grep for &#8220;*&#8221;, that way you could easily spot servers with wrong timezones very quickly.</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://twitter.com/home?status=Ubuntu%2F...+http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F10%2F10%2Fubuntudebian-quick-reference-how-to-change-your-servers-utc-timezone-on-the-command-line%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F10%2F10%2Fubuntudebian-quick-reference-how-to-change-your-servers-utc-timezone-on-the-command-line%2F&amp;title=Ubuntu%2FDebian+Quick+Reference%3A+How+To+Change+Your+Server%27s+UTC+Timezone+on+the+command+line"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F10%2F10%2Fubuntudebian-quick-reference-how-to-change-your-servers-utc-timezone-on-the-command-line%2F&amp;title=Ubuntu%2FDebian+Quick+Reference%3A+How+To+Change+Your+Server%27s+UTC+Timezone+on+the+command+line"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F10%2F10%2Fubuntudebian-quick-reference-how-to-change-your-servers-utc-timezone-on-the-command-line%2F&amp;title=Ubuntu%2FDebian+Quick+Reference%3A+How+To+Change+Your+Server%27s+UTC+Timezone+on+the+command+line"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F10%2F10%2Fubuntudebian-quick-reference-how-to-change-your-servers-utc-timezone-on-the-command-line%2F&amp;headline=Ubuntu%2FDebian+Quick+Reference%3A+How+To+Change+Your+Server%27s+UTC+Timezone+on+the+command+line"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Ubuntu%2FDebian+Quick+Reference%3A+How+To+Change+Your+Server%27s+UTC+Timezone+on+the+command+line&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F10%2F10%2Fubuntudebian-quick-reference-how-to-change-your-servers-utc-timezone-on-the-command-line%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Ubuntu%2FDebian+Quick+Reference%3A+How+To+Change+Your+Server%27s+UTC+Timezone+on+the+command+line&amp;u=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F10%2F10%2Fubuntudebian-quick-reference-how-to-change-your-servers-utc-timezone-on-the-command-line%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Ubuntu%2FDebian+Quick+Reference%3A+How+To+Change+Your+Server%27s+UTC+Timezone+on+the+command+line&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F10%2F10%2Fubuntudebian-quick-reference-how-to-change-your-servers-utc-timezone-on-the-command-line%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Ubuntu%2FDebian+Quick+Reference%3A+How+To+Change+Your+Server%27s+UTC+Timezone+on+the+command+line&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F10%2F10%2Fubuntudebian-quick-reference-how-to-change-your-servers-utc-timezone-on-the-command-line%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Ubuntu%2FDebian+Quick+Reference%3A+How+To+Change+Your+Server%27s+UTC+Timezone+on+the+command+line&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F10%2F10%2Fubuntudebian-quick-reference-how-to-change-your-servers-utc-timezone-on-the-command-line%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F10%2F10%2Fubuntudebian-quick-reference-how-to-change-your-servers-utc-timezone-on-the-command-line%2F&amp;title=Ubuntu%2FDebian+Quick+Reference%3A+How+To+Change+Your+Server%27s+UTC+Timezone+on+the+command+line&amp;summary=&amp;source="><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F10%2F10%2Fubuntudebian-quick-reference-how-to-change-your-servers-utc-timezone-on-the-command-line%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F10%2F10%2Fubuntudebian-quick-reference-how-to-change-your-servers-utc-timezone-on-the-command-line%2F&amp;title=Ubuntu%2FDebian+Quick+Reference%3A+How+To+Change+Your+Server%27s+UTC+Timezone+on+the+command+line"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.gubatron.com/blog/2009/10/10/ubuntudebian-quick-reference-how-to-change-your-servers-utc-timezone-on-the-command-line/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Check the Top 10 Linux Commands you can&#8217;t live without</title>
		<link>http://www.gubatron.com/blog/2009/09/28/check-the-top-10-linux-commands-you-cant-live-without/</link>
		<comments>http://www.gubatron.com/blog/2009/09/28/check-the-top-10-linux-commands-you-cant-live-without/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 02:36:13 +0000</pubDate>
		<dc:creator>gubatron</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Geeklife]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[commands]]></category>
		<category><![CDATA[favorite]]></category>

		<guid isPermaLink="false">http://www.gubatron.com/blog/?p=1419</guid>
		<description><![CDATA[Type the following on your cmd line (or make into an alias)

cat ~/.bash_history &#124; sort &#124; uniq -c &#124; sort -r &#124; head

In my case they are (for this week)
ls
fg
svnSync (script I created)
stats_fetch; stats_display (other scripts)
cd
crontab -e
ps aux &#124; grep
ssh_map_command (another script)
python
emacs -nw

]]></description>
			<content:encoded><![CDATA[<p>Type the following on your cmd line (or make into an alias)</p>
<pre>
cat ~/.bash_history | sort | uniq -c | sort -r | head
</pre>
<p>In my case they are (for this week)</p>
<pre>ls
fg
svnSync (script I created)
stats_fetch; stats_display (other scripts)
cd
crontab -e
ps aux | grep
ssh_map_command (another script)
python
emacs -nw
</pre>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://twitter.com/home?status=Check+the+Top+10+Linux+Commands+you+can%26%238...+http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F09%2F28%2Fcheck-the-top-10-linux-commands-you-cant-live-without%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F09%2F28%2Fcheck-the-top-10-linux-commands-you-cant-live-without%2F&amp;title=Check+the+Top+10+Linux+Commands+you+can%27t+live+without"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F09%2F28%2Fcheck-the-top-10-linux-commands-you-cant-live-without%2F&amp;title=Check+the+Top+10+Linux+Commands+you+can%27t+live+without"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F09%2F28%2Fcheck-the-top-10-linux-commands-you-cant-live-without%2F&amp;title=Check+the+Top+10+Linux+Commands+you+can%27t+live+without"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F09%2F28%2Fcheck-the-top-10-linux-commands-you-cant-live-without%2F&amp;headline=Check+the+Top+10+Linux+Commands+you+can%27t+live+without"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Check+the+Top+10+Linux+Commands+you+can%27t+live+without&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F09%2F28%2Fcheck-the-top-10-linux-commands-you-cant-live-without%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Check+the+Top+10+Linux+Commands+you+can%27t+live+without&amp;u=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F09%2F28%2Fcheck-the-top-10-linux-commands-you-cant-live-without%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Check+the+Top+10+Linux+Commands+you+can%27t+live+without&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F09%2F28%2Fcheck-the-top-10-linux-commands-you-cant-live-without%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Check+the+Top+10+Linux+Commands+you+can%27t+live+without&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F09%2F28%2Fcheck-the-top-10-linux-commands-you-cant-live-without%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Check+the+Top+10+Linux+Commands+you+can%27t+live+without&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F09%2F28%2Fcheck-the-top-10-linux-commands-you-cant-live-without%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F09%2F28%2Fcheck-the-top-10-linux-commands-you-cant-live-without%2F&amp;title=Check+the+Top+10+Linux+Commands+you+can%27t+live+without&amp;summary=&amp;source="><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F09%2F28%2Fcheck-the-top-10-linux-commands-you-cant-live-without%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F09%2F28%2Fcheck-the-top-10-linux-commands-you-cant-live-without%2F&amp;title=Check+the+Top+10+Linux+Commands+you+can%27t+live+without"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.gubatron.com/blog/2009/09/28/check-the-top-10-linux-commands-you-cant-live-without/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Reference: Linux Network/Bandwidth Monitoring CLI Tools</title>
		<link>http://www.gubatron.com/blog/2009/09/17/reference-linux-networkbandwidth-monitoring-cli-tools/</link>
		<comments>http://www.gubatron.com/blog/2009/09/17/reference-linux-networkbandwidth-monitoring-cli-tools/#comments</comments>
		<pubDate>Thu, 17 Sep 2009 15:17:49 +0000</pubDate>
		<dc:creator>gubatron</dc:creator>
				<category><![CDATA[Geeklife]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[bandwidth]]></category>
		<category><![CDATA[ip]]></category>
		<category><![CDATA[monitoring]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[tcp]]></category>
		<category><![CDATA[udp]]></category>

		<guid isPermaLink="false">http://www.gubatron.com/blog/?p=1399</guid>
		<description><![CDATA[I often want to see how much bandwidth is consumed by my network interfaces and how this is happening. There&#8217;s plenty of tools available in the linux world to monitor your network activity.
If you&#8217;re a Ubuntu or Debian user you can try the ones I use by installing the following packages.

sudo apt-get install iptraf ethstatus [...]]]></description>
			<content:encoded><![CDATA[<p>I often want to see how much bandwidth is consumed by my network interfaces and how this is happening. There&#8217;s plenty of tools available in the linux world to monitor your network activity.</p>
<p>If you&#8217;re a Ubuntu or Debian user you can try the ones I use by installing the following packages.</p>
<pre>
sudo apt-get install <strong>iptraf ethstatus dstat iftop ifstat nload bwm-ng</strong>
</pre>
<p>Then try each one of those on your command line and have fun exploring what they can do.</p>
<p>If they&#8217;re not on the path of your user account, then try them using sudo.<br />
eg. <strong>sudo iftop</strong></p>
<p>If this short list of the tools I use does not satisfy you, I suggest you <a href="http://www.ubuntugeek.com/bandwidth-monitoring-tools-for-linux.html">read this more comprehensive list of monitoring tools</a></p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://twitter.com/home?status=Reference%3A+Linux+Network%2FBandwidth+Monitor...+http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F09%2F17%2Freference-linux-networkbandwidth-monitoring-cli-tools%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F09%2F17%2Freference-linux-networkbandwidth-monitoring-cli-tools%2F&amp;title=Reference%3A+Linux+Network%2FBandwidth+Monitoring+CLI+Tools"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F09%2F17%2Freference-linux-networkbandwidth-monitoring-cli-tools%2F&amp;title=Reference%3A+Linux+Network%2FBandwidth+Monitoring+CLI+Tools"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F09%2F17%2Freference-linux-networkbandwidth-monitoring-cli-tools%2F&amp;title=Reference%3A+Linux+Network%2FBandwidth+Monitoring+CLI+Tools"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F09%2F17%2Freference-linux-networkbandwidth-monitoring-cli-tools%2F&amp;headline=Reference%3A+Linux+Network%2FBandwidth+Monitoring+CLI+Tools"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Reference%3A+Linux+Network%2FBandwidth+Monitoring+CLI+Tools&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F09%2F17%2Freference-linux-networkbandwidth-monitoring-cli-tools%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Reference%3A+Linux+Network%2FBandwidth+Monitoring+CLI+Tools&amp;u=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F09%2F17%2Freference-linux-networkbandwidth-monitoring-cli-tools%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Reference%3A+Linux+Network%2FBandwidth+Monitoring+CLI+Tools&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F09%2F17%2Freference-linux-networkbandwidth-monitoring-cli-tools%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Reference%3A+Linux+Network%2FBandwidth+Monitoring+CLI+Tools&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F09%2F17%2Freference-linux-networkbandwidth-monitoring-cli-tools%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Reference%3A+Linux+Network%2FBandwidth+Monitoring+CLI+Tools&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F09%2F17%2Freference-linux-networkbandwidth-monitoring-cli-tools%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F09%2F17%2Freference-linux-networkbandwidth-monitoring-cli-tools%2F&amp;title=Reference%3A+Linux+Network%2FBandwidth+Monitoring+CLI+Tools&amp;summary=&amp;source="><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F09%2F17%2Freference-linux-networkbandwidth-monitoring-cli-tools%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F09%2F17%2Freference-linux-networkbandwidth-monitoring-cli-tools%2F&amp;title=Reference%3A+Linux+Network%2FBandwidth+Monitoring+CLI+Tools"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.gubatron.com/blog/2009/09/17/reference-linux-networkbandwidth-monitoring-cli-tools/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to make a Quick &amp; Dirty HexViewer &#8211; Updated</title>
		<link>http://www.gubatron.com/blog/2009/04/20/how-to-make-a-quick-dirty-hexviewer-updated/</link>
		<comments>http://www.gubatron.com/blog/2009/04/20/how-to-make-a-quick-dirty-hexviewer-updated/#comments</comments>
		<pubDate>Mon, 20 Apr 2009 12:13:55 +0000</pubDate>
		<dc:creator>gubatron</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[java hex hexviewer programming]]></category>

		<guid isPermaLink="false">http://www.gubatron.com/blog/?p=1269</guid>
		<description><![CDATA[After I received comments from ispak on Flickr I made a few fixes.
ispak pointed out that it was a bad idea reading one byte at the time, also I had a gay ass try/catch that didn&#8217;t catch any exception :p
So now I read 16 byte chunks, and I also take care of the file ending. [...]]]></description>
			<content:encoded><![CDATA[<p>After I received comments from <a rel="nofollow" href="http://www.flickr.com/photos/gubatron/3452721506/">ispak on Flickr</a> I made a few fixes.</p>
<p>ispak pointed out that it was a bad idea reading one byte at the time, also I had a gay ass try/catch that didn&#8217;t catch any exception :p</p>
<p>So now I read 16 byte chunks, and I also take care of the file ending. The previous version used to print the file ending with a bunch of null bytes. Now it stops reading at the end, and formats the output accordingly.</p>
<p>Here&#8217;s the new source:</p>
<pre>
//HexViewer.java
import java.io.*;

public final class HexViewer {
    public final static void printFile(String filePath) {
        try {
            File f = new File(filePath);
            BufferedInputStream bis =
                new BufferedInputStream(new FileInputStream(f));

            byte[] chunk = null;
            int readStatus = 0;
            while (true) {
                chunk = new byte[16];
                readStatus = bis.read(chunk, 0, 16);
                char[] line = new char[16];

                if (readStatus == -1)
                    break;

                for (byte i=0; i < readStatus; i++) {
                    int readByte = (chunk[i] < 0) ? (-1 * (int) chunk[i]) : chunk[i];
                    String paddingZero = (readByte < 16) ? "0" : "";
                    System.out.print(paddingZero + Integer.toHexString(readByte).toUpperCase() + " ");
                    line[i] = (readByte >= 33 &#038;&#038; readByte <= 126) ? (char) readByte : '.';
                }

                //We add some padding to print the text line right below the one above.
                String padding = new String();
                if (readStatus < 16) {
                    for (byte i=0; i < 16-readStatus; i++) {
                        padding += "   ";
                    }
                }

                System.out.println(padding + new String(line));
            }
        } catch (Exception e1) { e1.printStackTrace(); }
    }

    public final static void main(String[] args) {
        if (args.length == 0)
            return;

        printFile(args[0]);
    }
}
</pre>
<p><a href="http://www.flickr.com/photos/gubatron/3458529439/" title="HexViewer - r2 by Gubatron, on Flickr"><img src="http://farm4.static.flickr.com/3486/3458529439_31357e0afe_o.png" width="570" height="641" alt="HexViewer - r2" /></a></p>
<p>And see how it now handles file endings when the file size is not a multiple of 16 :p</p>
<p><a href="http://www.flickr.com/photos/gubatron/3459348222/" title="Picture 2 by Gubatron, on Flickr"><img src="http://farm4.static.flickr.com/3578/3459348222_ee4b427d5e_o.png" width="464" height="91" alt="Picture 2" /></a></p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://twitter.com/home?status=How+to+make+a+Quick+%26%23038%3B+Dirty+HexViewer+%26%238211%3B+U...+http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F04%2F20%2Fhow-to-make-a-quick-dirty-hexviewer-updated%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F04%2F20%2Fhow-to-make-a-quick-dirty-hexviewer-updated%2F&amp;title=How+to+make+a+Quick+%26+Dirty+HexViewer+-+Updated"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F04%2F20%2Fhow-to-make-a-quick-dirty-hexviewer-updated%2F&amp;title=How+to+make+a+Quick+%26+Dirty+HexViewer+-+Updated"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F04%2F20%2Fhow-to-make-a-quick-dirty-hexviewer-updated%2F&amp;title=How+to+make+a+Quick+%26+Dirty+HexViewer+-+Updated"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F04%2F20%2Fhow-to-make-a-quick-dirty-hexviewer-updated%2F&amp;headline=How+to+make+a+Quick+%26+Dirty+HexViewer+-+Updated"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=How+to+make+a+Quick+%26+Dirty+HexViewer+-+Updated&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F04%2F20%2Fhow-to-make-a-quick-dirty-hexviewer-updated%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=How+to+make+a+Quick+%26+Dirty+HexViewer+-+Updated&amp;u=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F04%2F20%2Fhow-to-make-a-quick-dirty-hexviewer-updated%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=How+to+make+a+Quick+%26+Dirty+HexViewer+-+Updated&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F04%2F20%2Fhow-to-make-a-quick-dirty-hexviewer-updated%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=How+to+make+a+Quick+%26+Dirty+HexViewer+-+Updated&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F04%2F20%2Fhow-to-make-a-quick-dirty-hexviewer-updated%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=How+to+make+a+Quick+%26+Dirty+HexViewer+-+Updated&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F04%2F20%2Fhow-to-make-a-quick-dirty-hexviewer-updated%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F04%2F20%2Fhow-to-make-a-quick-dirty-hexviewer-updated%2F&amp;title=How+to+make+a+Quick+%26+Dirty+HexViewer+-+Updated&amp;summary=&amp;source="><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F04%2F20%2Fhow-to-make-a-quick-dirty-hexviewer-updated%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2009%2F04%2F20%2Fhow-to-make-a-quick-dirty-hexviewer-updated%2F&amp;title=How+to+make+a+Quick+%26+Dirty+HexViewer+-+Updated"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.gubatron.com/blog/2009/04/20/how-to-make-a-quick-dirty-hexviewer-updated/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Checking the Speed of your network interface</title>
		<link>http://www.gubatron.com/blog/2008/06/26/checking-the-speed-of-your-network-interface/</link>
		<comments>http://www.gubatron.com/blog/2008/06/26/checking-the-speed-of-your-network-interface/#comments</comments>
		<pubDate>Thu, 26 Jun 2008 13:51:51 +0000</pubDate>
		<dc:creator>gubatron</dc:creator>
				<category><![CDATA[Geeklife]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[bandwidth]]></category>
		<category><![CDATA[check]]></category>
		<category><![CDATA[interface]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[speed]]></category>
		<category><![CDATA[switch]]></category>
		<category><![CDATA[throughput]]></category>
		<category><![CDATA[transfer]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[uplink]]></category>
		<category><![CDATA[verify]]></category>

		<guid isPermaLink="false">http://www.gubatron.com/blog/?p=824</guid>
		<description><![CDATA[I recently requested an upgrade on one of our dedicated server&#8217;s uplink speed, we only had a 10Mbps Uplink, we requested an upgrade to 100Mbps to serve a lot more.
How do you verify the upgrade has been done correctly?
As root, issue the following comand:
# mii-tool
eth0: negotiated 10baseT-FD, link ok
If it doesn&#8217;t work (for debian or [...]]]></description>
			<content:encoded><![CDATA[<p>I recently requested an upgrade on one of our dedicated server&#8217;s uplink speed, we only had a 10Mbps Uplink, we requested an upgrade to 100Mbps to serve a lot more.</p>
<p>How do you verify the upgrade has been done correctly?</p>
<p><strong>As root</strong>, issue the following comand:</p>
<pre># mii-tool
eth0: negotiated 10baseT-FD, link ok</pre>
<p>If it doesn&#8217;t work (for debian or ubuntu), make sure you have installed the net-tools package (The NET-3 networking toolkit)</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://twitter.com/home?status=Checking+the+Speed+of+your+network+interface+http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F06%2F26%2Fchecking-the-speed-of-your-network-interface%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F06%2F26%2Fchecking-the-speed-of-your-network-interface%2F&amp;title=Checking+the+Speed+of+your+network+interface"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F06%2F26%2Fchecking-the-speed-of-your-network-interface%2F&amp;title=Checking+the+Speed+of+your+network+interface"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F06%2F26%2Fchecking-the-speed-of-your-network-interface%2F&amp;title=Checking+the+Speed+of+your+network+interface"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F06%2F26%2Fchecking-the-speed-of-your-network-interface%2F&amp;headline=Checking+the+Speed+of+your+network+interface"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Checking+the+Speed+of+your+network+interface&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F06%2F26%2Fchecking-the-speed-of-your-network-interface%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Checking+the+Speed+of+your+network+interface&amp;u=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F06%2F26%2Fchecking-the-speed-of-your-network-interface%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Checking+the+Speed+of+your+network+interface&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F06%2F26%2Fchecking-the-speed-of-your-network-interface%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Checking+the+Speed+of+your+network+interface&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F06%2F26%2Fchecking-the-speed-of-your-network-interface%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Checking+the+Speed+of+your+network+interface&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F06%2F26%2Fchecking-the-speed-of-your-network-interface%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F06%2F26%2Fchecking-the-speed-of-your-network-interface%2F&amp;title=Checking+the+Speed+of+your+network+interface&amp;summary=&amp;source="><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F06%2F26%2Fchecking-the-speed-of-your-network-interface%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F06%2F26%2Fchecking-the-speed-of-your-network-interface%2F&amp;title=Checking+the+Speed+of+your+network+interface"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.gubatron.com/blog/2008/06/26/checking-the-speed-of-your-network-interface/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Script to automatically detect and ban malicious IPs that try to brute force SSH accounts</title>
		<link>http://www.gubatron.com/blog/2008/05/29/script-to-automatically-detect-and-ban-malicious-ips-that-try-to-brute-force-ssh-accounts/</link>
		<comments>http://www.gubatron.com/blog/2008/05/29/script-to-automatically-detect-and-ban-malicious-ips-that-try-to-brute-force-ssh-accounts/#comments</comments>
		<pubDate>Thu, 29 May 2008 14:01:51 +0000</pubDate>
		<dc:creator>gubatron</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[automatic banning]]></category>
		<category><![CDATA[ban]]></category>
		<category><![CDATA[banning]]></category>
		<category><![CDATA[brute force]]></category>
		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://www.gubatron.com/blog/?p=816</guid>
		<description><![CDATA[We&#8217;ve noticed that most of our servers have been under heavy attack from random IP addresses to break via SSH.
With the help of the last post on how to ban an IP, and the following python script, you&#8217;ll be able to have a cronjob that runs once or twice a day and automagically bans all [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve noticed that most of our servers have been under heavy attack from random IP addresses to break via SSH.</p>
<p>With the help of the last post on how to ban an IP, and the following python script, you&#8217;ll be able to have a cronjob that runs once or twice a day and automagically bans all the offending ips from ever trying to brute force their way in ever again.</p>
<p>touch and make executable a file called &#8220;detect_ssh_hostiles&#8221;</p>
<pre>
touch detect_ssh_hostiles
chmod +x detect_ssh_hostiles
</pre>
<p>Then copy the following code inside:</p>
<pre>
# Usage:
# python detect_ssh_hostiles [auth.log file path]
#
# Requirement: There should be "ban_ip" and "unban_ip" command availability on the path
#
# Note: you gotta have read permissions on the auth.log file and sudo
#       permissions for the script to ban the ips.

#If an IP meets this number of failed login attemmpts it will be banned
BAN_THRESHOLD = 7
SUSPECTS = {}

#Put here IP addresses you trust, could be making genuine login errors
SAFE_IPS = ['81.73.111.49','101.73.111.160','72.31.171.235','72.36.23.234','82.36.180.210','202.132.82.16']

import os
import sys
import re

BANNED = {}
def loadBanned():
  '''
  This function will load all the banned IPS into the BANNED Dict.
  It will also count how many times (by mistake) the same IP has
  been banned, and it will unban it, so that it will appear only once.
  '''
  global BANNED
  command = 'sudo iptables --list --numeric'
  try:
    p = os.popen(command,'rb')
  except Exception,e:
    print e
    sys.exit(1)

  line = '-'

  while line != '':
    line = p.readline().strip()

    if line.startswith("DROP"):
      parts = line.split()
      ip = parts[3]

      #add hit or register banned ip
      if BANNED.has_key(ip):
        BANNED[ip]+=1
      else:
        BANNED[ip]=1

  #Make sure banned IPs are banned only once
  for ip in BANNED:
    if BANNED[ip] > 1:
      print "IP %s has been banned %d times" % (ip, BANNED[ip])
      n=BANNED[ip]-1
      while n > 0:
        os.system("unban_ip %s" % ip)
        print ("unban_ip %s" % ip)
        n=n-1

  p.close()

# ---- here we go ----
loadBanned()

#read auth log
logfile = '/var/log/auth.log'

if len(sys.argv)==2:
  logfile = sys.argv[1]

command = 'grep "Failed password for " %s' % logfile
#print command

try:
  p = os.popen(command,'rb')
except Exception,e:
  print e
  sys.exit(1)

line = "123"

while line != '':
  line = p.readline()

  #Sample line:
  # May 25 03:29:49 main sshd[6933]: Failed password for root from 202.118.236.132 port 54863 ssh2
  pattern = "(.*)(from\s)(\d+\.\d+\.\d+\.\d+)(.*)"
  matchObject = re.match(pattern, line)

  suspect = None
  if matchObject is not None:
    suspect = matchObject.groups()[2]

    #skip safe IPs
    if suspect in SAFE_IPS:
      continue

    if SUSPECTS.has_key(suspect):
      #add a hit
      SUSPECTS[suspect] += 1
    else:
      #add first hit
      SUSPECTS[suspect] = 1

p.close() #close the pipe

print "=="*30

import time
t = time.localtime()
#(2008, 6, 6, 9, 35, 21, 4, 158, 1)

timestr = "%d-%d-%d@%d:%d:%d" % (t[0],t[1],t[2],t[3],t[4],t[5])
print timestr
print "--"*30
if len(SUSPECTS) > 0:
  for suspect in SUSPECTS:
    if SUSPECTS[suspect] >= BAN_THRESHOLD and not BANNED.has_key(suspect):
      print "Banning %s with %d attempts" % (suspect,SUSPECTS[suspect])
      BANNED[suspect]=1
      os.system("ban_ip %s" % suspect)
    elif BANNED.has_key(suspect):
      print "Ip %s has already been banned" % (suspect)
    else:
      print "Suspect candidate? %s with %d attempts" % (suspect,SUSPECTS[suspect])
else:
  print "Found no suspects to ban"

print "=="*30</pre>
<p>Then add this as a cronjob of your root user, and it will automatically ban all those IPs that have tried to break in. See the script for configuration. You can always make some IPs immune to banning by adding them on the SAFE_IPS list.</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://twitter.com/home?status=Script...+http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F05%2F29%2Fscript-to-automatically-detect-and-ban-malicious-ips-that-try-to-brute-force-ssh-accounts%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F05%2F29%2Fscript-to-automatically-detect-and-ban-malicious-ips-that-try-to-brute-force-ssh-accounts%2F&amp;title=Script+to+automatically+detect+and+ban+malicious+IPs+that+try+to+brute+force+SSH+accounts"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F05%2F29%2Fscript-to-automatically-detect-and-ban-malicious-ips-that-try-to-brute-force-ssh-accounts%2F&amp;title=Script+to+automatically+detect+and+ban+malicious+IPs+that+try+to+brute+force+SSH+accounts"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F05%2F29%2Fscript-to-automatically-detect-and-ban-malicious-ips-that-try-to-brute-force-ssh-accounts%2F&amp;title=Script+to+automatically+detect+and+ban+malicious+IPs+that+try+to+brute+force+SSH+accounts"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F05%2F29%2Fscript-to-automatically-detect-and-ban-malicious-ips-that-try-to-brute-force-ssh-accounts%2F&amp;headline=Script+to+automatically+detect+and+ban+malicious+IPs+that+try+to+brute+force+SSH+accounts"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Script+to+automatically+detect+and+ban+malicious+IPs+that+try+to+brute+force+SSH+accounts&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F05%2F29%2Fscript-to-automatically-detect-and-ban-malicious-ips-that-try-to-brute-force-ssh-accounts%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Script+to+automatically+detect+and+ban+malicious+IPs+that+try+to+brute+force+SSH+accounts&amp;u=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F05%2F29%2Fscript-to-automatically-detect-and-ban-malicious-ips-that-try-to-brute-force-ssh-accounts%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Script+to+automatically+detect+and+ban+malicious+IPs+that+try+to+brute+force+SSH+accounts&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F05%2F29%2Fscript-to-automatically-detect-and-ban-malicious-ips-that-try-to-brute-force-ssh-accounts%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Script+to+automatically+detect+and+ban+malicious+IPs+that+try+to+brute+force+SSH+accounts&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F05%2F29%2Fscript-to-automatically-detect-and-ban-malicious-ips-that-try-to-brute-force-ssh-accounts%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Script+to+automatically+detect+and+ban+malicious+IPs+that+try+to+brute+force+SSH+accounts&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F05%2F29%2Fscript-to-automatically-detect-and-ban-malicious-ips-that-try-to-brute-force-ssh-accounts%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F05%2F29%2Fscript-to-automatically-detect-and-ban-malicious-ips-that-try-to-brute-force-ssh-accounts%2F&amp;title=Script+to+automatically+detect+and+ban+malicious+IPs+that+try+to+brute+force+SSH+accounts&amp;summary=&amp;source="><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F05%2F29%2Fscript-to-automatically-detect-and-ban-malicious-ips-that-try-to-brute-force-ssh-accounts%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F05%2F29%2Fscript-to-automatically-detect-and-ban-malicious-ips-that-try-to-brute-force-ssh-accounts%2F&amp;title=Script+to+automatically+detect+and+ban+malicious+IPs+that+try+to+brute+force+SSH+accounts"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.gubatron.com/blog/2008/05/29/script-to-automatically-detect-and-ban-malicious-ips-that-try-to-brute-force-ssh-accounts/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>How to ban/unban ips in linux</title>
		<link>http://www.gubatron.com/blog/2008/05/29/how-to-banunban-ips-in-linux/</link>
		<comments>http://www.gubatron.com/blog/2008/05/29/how-to-banunban-ips-in-linux/#comments</comments>
		<pubDate>Thu, 29 May 2008 14:00:59 +0000</pubDate>
		<dc:creator>gubatron</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Geeklife]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[ban]]></category>
		<category><![CDATA[iptables]]></category>
		<category><![CDATA[unban]]></category>
		<category><![CDATA[utils]]></category>

		<guid isPermaLink="false">http://www.gubatron.com/blog/?p=814</guid>
		<description><![CDATA[In case you&#8217;re not an iptables guru, you might want to create a couple scripts and put em somewhere on your $PATH. I&#8217;ve created two scripts called ban_ip and unban_ip. 
Create a file called ban_ip

touch ban_ip
chmod +x ban_ip

Edit it and copy the following code inside:

#!/bin/bash
sudo iptables -A INPUT -s $1 -j DROP
echo IP Address $1 [...]]]></description>
			<content:encoded><![CDATA[<p>In case you&#8217;re not an iptables guru, you might want to create a couple scripts and put em somewhere on your $PATH. I&#8217;ve created two scripts called <strong>ban_ip</strong> and <strong>unban_ip</strong>. </p>
<p>Create a file called ban_ip</p>
<pre>
touch ban_ip
chmod +x ban_ip
</pre>
<p>Edit it and copy the following code inside:</p>
<pre>
#!/bin/bash
sudo iptables -A INPUT -s $1 -j DROP
echo IP Address $1 has been banned
echo
</pre>
<p>To ban an IP, you must invoke</p>
<pre>ban_ip &lt;someIpAddressHere&gt;</pre>
<p>e.g.</p>
<pre>ban_ip 211.32.44.111</pre>
<p>And the IP will be banned.</p>
<p>Do the same now for the unban_ip script</p>
<pre>
touch unban_ip
chmod +x unban_ip
</pre>
<p>Open your fav. text editor and copy the following code inside:</p>
<pre>
#!/bin/bash
iptables -D INPUT -s $1 -j DROP
echo Unbanned ip $1
echo
</pre>
<p>Save it, and use it.</p>
<p>To unban an IP, you must invoke</p>
<pre>unban_ip &lt;someIpAddressHere&gt;</pre>
<p>e.g.</p>
<pre>unban_ip 211.32.44.111</pre>
<p><strong>Requirements</strong><br />
Have sudo access, have iptables installed.</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://twitter.com/home?status=How+to+ban%2Funban+ips+in+linux+http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F05%2F29%2Fhow-to-banunban-ips-in-linux%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F05%2F29%2Fhow-to-banunban-ips-in-linux%2F&amp;title=How+to+ban%2Funban+ips+in+linux"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F05%2F29%2Fhow-to-banunban-ips-in-linux%2F&amp;title=How+to+ban%2Funban+ips+in+linux"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F05%2F29%2Fhow-to-banunban-ips-in-linux%2F&amp;title=How+to+ban%2Funban+ips+in+linux"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F05%2F29%2Fhow-to-banunban-ips-in-linux%2F&amp;headline=How+to+ban%2Funban+ips+in+linux"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=How+to+ban%2Funban+ips+in+linux&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F05%2F29%2Fhow-to-banunban-ips-in-linux%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=How+to+ban%2Funban+ips+in+linux&amp;u=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F05%2F29%2Fhow-to-banunban-ips-in-linux%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=How+to+ban%2Funban+ips+in+linux&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F05%2F29%2Fhow-to-banunban-ips-in-linux%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=How+to+ban%2Funban+ips+in+linux&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F05%2F29%2Fhow-to-banunban-ips-in-linux%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=How+to+ban%2Funban+ips+in+linux&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F05%2F29%2Fhow-to-banunban-ips-in-linux%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F05%2F29%2Fhow-to-banunban-ips-in-linux%2F&amp;title=How+to+ban%2Funban+ips+in+linux&amp;summary=&amp;source="><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F05%2F29%2Fhow-to-banunban-ips-in-linux%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F05%2F29%2Fhow-to-banunban-ips-in-linux%2F&amp;title=How+to+ban%2Funban+ips+in+linux"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.gubatron.com/blog/2008/05/29/how-to-banunban-ips-in-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FrostWire now available on Gentoo Linux&#8217;s Portage package system</title>
		<link>http://www.gubatron.com/blog/2008/03/26/frostwire-now-available-on-gentoo-linuxs-portage-package-system/</link>
		<comments>http://www.gubatron.com/blog/2008/03/26/frostwire-now-available-on-gentoo-linuxs-portage-package-system/#comments</comments>
		<pubDate>Wed, 26 Mar 2008 12:34:28 +0000</pubDate>
		<dc:creator>gubatron</dc:creator>
				<category><![CDATA[FrostWire]]></category>
		<category><![CDATA[Geeklife]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[emerge]]></category>
		<category><![CDATA[gentoo]]></category>
		<category><![CDATA[portage]]></category>

		<guid isPermaLink="false">http://www.gubatron.com/blog/2008/03/26/frostwire-now-available-on-gentoo-linuxs-portage-package-system/</guid>
		<description><![CDATA[We want to give thanks to William L. Thomson Jr from Gentoo for making FrostWire available to people running Gentoo ~arch or unstable ~x86 or ~amd64.
If you are a Gentoo Linux user you can now just do:
emerge frostwire
And as William says:
it will bring in all deps, compile, install, make desktop menu entries, launcher, etc  [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.gentoo.org/"><img align="right" border="0" style="margin:5px 5px" src="http://farm3.static.flickr.com/2146/2363931646_6ef0ecfb0d_o.png"></a>We want to give thanks to William L. Thomson Jr from Gentoo for making FrostWire available to people running Gentoo ~arch or unstable ~x86 or ~amd64.</p>
<p>If you are a Gentoo Linux user you can now just do:</p>
<p><code>emerge frostwire</code></p>
<p>And as William says:</p>
<blockquote><p>it will bring in all deps, compile, install, make desktop menu entries, launcher, etc  :) </p></blockquote>
<p>If you&#8217;re interested here&#8217;s the <a href="http://sources.gentoo.org/viewcvs.py/gentoo-x86/net-p2p/frostwire/">package</a></p>
<p><strong>About Gentoo</strong></p>
<blockquote><p>The Gentoo Linux operating system (pronounced /ËˆdÊ’É›ntuË/) is a Linux distribution based on the Portage package management system. The development project and its products are named after the Gentoo penguin. Gentoo package management is designed to be modular, portable, easy to maintain, flexible, and optimized for the user&#8217;s machine. Packages are normally built from source code, continuing the tradition of the ports collection, although for convenience, some large software packages are also available as precompiled binaries for various architectures.</p></blockquote>
<p>Source: Wikipedia</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://twitter.com/home?status=FrostWire+now+available+on+Gento...+http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F03%2F26%2Ffrostwire-now-available-on-gentoo-linuxs-portage-package-system%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F03%2F26%2Ffrostwire-now-available-on-gentoo-linuxs-portage-package-system%2F&amp;title=FrostWire+now+available+on+Gentoo+Linux%27s+Portage+package+system"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F03%2F26%2Ffrostwire-now-available-on-gentoo-linuxs-portage-package-system%2F&amp;title=FrostWire+now+available+on+Gentoo+Linux%27s+Portage+package+system"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F03%2F26%2Ffrostwire-now-available-on-gentoo-linuxs-portage-package-system%2F&amp;title=FrostWire+now+available+on+Gentoo+Linux%27s+Portage+package+system"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F03%2F26%2Ffrostwire-now-available-on-gentoo-linuxs-portage-package-system%2F&amp;headline=FrostWire+now+available+on+Gentoo+Linux%27s+Portage+package+system"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=FrostWire+now+available+on+Gentoo+Linux%27s+Portage+package+system&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F03%2F26%2Ffrostwire-now-available-on-gentoo-linuxs-portage-package-system%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=FrostWire+now+available+on+Gentoo+Linux%27s+Portage+package+system&amp;u=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F03%2F26%2Ffrostwire-now-available-on-gentoo-linuxs-portage-package-system%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=FrostWire+now+available+on+Gentoo+Linux%27s+Portage+package+system&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F03%2F26%2Ffrostwire-now-available-on-gentoo-linuxs-portage-package-system%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=FrostWire+now+available+on+Gentoo+Linux%27s+Portage+package+system&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F03%2F26%2Ffrostwire-now-available-on-gentoo-linuxs-portage-package-system%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=FrostWire+now+available+on+Gentoo+Linux%27s+Portage+package+system&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F03%2F26%2Ffrostwire-now-available-on-gentoo-linuxs-portage-package-system%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F03%2F26%2Ffrostwire-now-available-on-gentoo-linuxs-portage-package-system%2F&amp;title=FrostWire+now+available+on+Gentoo+Linux%27s+Portage+package+system&amp;summary=&amp;source="><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F03%2F26%2Ffrostwire-now-available-on-gentoo-linuxs-portage-package-system%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F03%2F26%2Ffrostwire-now-available-on-gentoo-linuxs-portage-package-system%2F&amp;title=FrostWire+now+available+on+Gentoo+Linux%27s+Portage+package+system"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.gubatron.com/blog/2008/03/26/frostwire-now-available-on-gentoo-linuxs-portage-package-system/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What&#8217;s new in FrostWire 4.13.5</title>
		<link>http://www.gubatron.com/blog/2008/02/28/whats-new-in-frostwire-4135/</link>
		<comments>http://www.gubatron.com/blog/2008/02/28/whats-new-in-frostwire-4135/#comments</comments>
		<pubDate>Thu, 28 Feb 2008 17:15:52 +0000</pubDate>
		<dc:creator>gubatron</dc:creator>
				<category><![CDATA[Creative Commons]]></category>
		<category><![CDATA[Free Software]]></category>
		<category><![CDATA[FrostWire]]></category>
		<category><![CDATA[Geeklife]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac OSX]]></category>
		<category><![CDATA[P2P]]></category>
		<category><![CDATA[downloads]]></category>
		<category><![CDATA[file sharing]]></category>
		<category><![CDATA[press release]]></category>
		<category><![CDATA[update]]></category>
		<category><![CDATA[uploads]]></category>

		<guid isPermaLink="false">http://www.gubatron.com/blog/2008/02/28/whats-new-in-frostwire-4135/</guid>
		<description><![CDATA[FOR IMMEDIATE RELEASE:
FrostWire 4.13.5 is now available for MS Windows, Mac OSX and Linux. Major updates improve network bootstraping and peer discovery. 4.13.5 includes improvements on the Chatroom tab, Audio Previews and more. 
Other improvements have taken place for the FrostWire build process (for developers this means true One-Step builds for all versions). Updates on [...]]]></description>
			<content:encoded><![CDATA[<p>FOR IMMEDIATE RELEASE:</p>
<p><a href="http://www.frostwire.com/?id=downloads">FrostWire 4.13.5</a> is now available for MS Windows, Mac OSX and Linux. Major updates improve network bootstraping and peer discovery. 4.13.5 includes improvements on the Chatroom tab, Audio Previews and more. </p>
<p>Other improvements have taken place for the FrostWire build process (for developers this means true One-Step builds for all versions). Updates on translations have been made thanks to the feedback from users in Poland and throughout Latin America. .</p>
<p>In more detail users can expect the following:</p>
<ul>
<li><strong>Faster peer discovery on connection bootstraping.</strong> No more &#8220;Starting Connection&#8230;&#8221; problems, first time users will connect faster without using the official <a href="http://mybloop.com/go/NCh1W7">FixConnecting.zip</a> patch.</li>
</ul>
<ul>
<li><strong>Smiley Support to the chatroom</strong></li>
</ul>
<p>Users can see the available smileys by entering the command<br />
<code>/smileys</code></p>
<p><center><a href="http://www.frostwire.com"><img src="http://farm4.static.flickr.com/3160/2298643034_ddbc01659b_o.png" border="0"/></a></center></p>
<p>Now its possible to see and use Smileys from the <strong>Community Chat</strong> tab, Smiley display can be enabled or disabled from the view menu:<br />
<center><a href="http://www.frostwire.com"><img alt="Show Smileys" title="Show Smileys" src="http://farm4.static.flickr.com/3107/2298384332_07a3e9625d.jpg" border="0"/></a></center></p>
<p>Users can also toggle Smiley display directly from the chat window by typing the command<br />
<code>/tsmileys</code></p>
<p><center><a href="http://www.frostwire.com/"><img border="0" src="http://farm4.static.flickr.com/3109/2297849265_0ddc251e76_o.png"></a></center></p>
<ul>
<li><strong>Fixed wording on Spanish and Polish translations.</strong></li>
</ul>
<p>Bug Fixes and other improvements  for this release also include:</p>
<ul>
<li><strong>FrostWire Message Update System improved.</strong> Per community request, some announcements will not be shown more than once so the user is not annoyed upon every application launch</strong></li>
<li><strong>Fixed bugs on the media player and playlists on Preview.</strong></li>
<li><strong>Fixed bug on search box auto-focusing while a search was running.</strong></li>
<li><strong>Fixed i18n system error for systems which default language is not english</strong></li>
<li>Potential bugs related to deprecated code gone</li>
</ul>
<p>Users can find now by details without the auto-focusing problem.</p>
<p>FrostWire 4.13.5 is expected to be the last of the 4.13.x series.</p>
<p><strong>About FrostWire</strong></p>
<p>FrostWire, a Gnutella Peer-to-Peer client, is a collaborative effort from many Open Source and freelance developers located from all around the world. In late 2005, concerned developers of LimeWire&#8217;s open source community announced the start of a new project fork &#8220;FrostWire&#8221; that would protect the developmental source code of the LimeWire client and any improvements to the Gnutella protocol design. The developers of FrostWire give high regard and respect to the <a href="http://www.frostwire.com/?id=gpl">GNU General Public License</a> and consider it to be the ideal foundation of a creative and free enterprise market.</p>
<ul>
<li><a href="http://www.frostwire.com/?id=linkus">Media Kit / Link Us</a></li>
<li><a href="http://www.frostwire.com/?id=contact">Contact the Team</a></li>
</ul>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://twitter.com/home?status=What%26%238217%3Bs+new+in+FrostWire+4.13.5+http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F02%2F28%2Fwhats-new-in-frostwire-4135%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F02%2F28%2Fwhats-new-in-frostwire-4135%2F&amp;title=What%27s+new+in+FrostWire+4.13.5"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F02%2F28%2Fwhats-new-in-frostwire-4135%2F&amp;title=What%27s+new+in+FrostWire+4.13.5"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F02%2F28%2Fwhats-new-in-frostwire-4135%2F&amp;title=What%27s+new+in+FrostWire+4.13.5"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F02%2F28%2Fwhats-new-in-frostwire-4135%2F&amp;headline=What%27s+new+in+FrostWire+4.13.5"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=What%27s+new+in+FrostWire+4.13.5&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F02%2F28%2Fwhats-new-in-frostwire-4135%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=What%27s+new+in+FrostWire+4.13.5&amp;u=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F02%2F28%2Fwhats-new-in-frostwire-4135%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=What%27s+new+in+FrostWire+4.13.5&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F02%2F28%2Fwhats-new-in-frostwire-4135%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=What%27s+new+in+FrostWire+4.13.5&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F02%2F28%2Fwhats-new-in-frostwire-4135%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=What%27s+new+in+FrostWire+4.13.5&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F02%2F28%2Fwhats-new-in-frostwire-4135%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F02%2F28%2Fwhats-new-in-frostwire-4135%2F&amp;title=What%27s+new+in+FrostWire+4.13.5&amp;summary=&amp;source="><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F02%2F28%2Fwhats-new-in-frostwire-4135%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F02%2F28%2Fwhats-new-in-frostwire-4135%2F&amp;title=What%27s+new+in+FrostWire+4.13.5"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.gubatron.com/blog/2008/02/28/whats-new-in-frostwire-4135/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VIDEO: Linus habla sobre GIT, su &#8220;subversion&#8221; distribuido</title>
		<link>http://www.gubatron.com/blog/2008/02/02/video-linus-habla-sobre-git-su-subversion-distribuido/</link>
		<comments>http://www.gubatron.com/blog/2008/02/02/video-linus-habla-sobre-git-su-subversion-distribuido/#comments</comments>
		<pubDate>Sat, 02 Feb 2008 18:31:14 +0000</pubDate>
		<dc:creator>gubatron</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Videos]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[linus]]></category>
		<category><![CDATA[talk]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://www.gubatron.com/blog/2008/02/02/video-linus-habla-sobre-git-su-subversion-distribuido/</guid>
		<description><![CDATA[Aqui hay un Google talk por el mismisimo Linus, quien habla sobre su nuevo sistema de control de versiones distribuido. El cual promete se mas rapido, distribuido, y ocupar menos espacio. Algunos claman que pudiera utilizarse como un sistema de archivos distribuidos que nos permitira crear sistemas que antes eran inconcebibles.

]]></description>
			<content:encoded><![CDATA[<p>Aqui hay un Google talk por el mismisimo Linus, quien habla sobre su nuevo sistema de control de versiones distribuido. El cual promete se mas rapido, distribuido, y ocupar menos espacio. Algunos claman que pudiera utilizarse como un sistema de archivos distribuidos que nos permitira crear sistemas que antes eran inconcebibles.</p>
<p><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/4XpnKHJAok8&#038;rel=1"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/4XpnKHJAok8&#038;rel=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object></p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://twitter.com/home?status=VIDEO%3A+Linus+habla+sobre+GIT%2C+su+%26%238220%3Bsu...+http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F02%2F02%2Fvideo-linus-habla-sobre-git-su-subversion-distribuido%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F02%2F02%2Fvideo-linus-habla-sobre-git-su-subversion-distribuido%2F&amp;title=VIDEO%3A+Linus+habla+sobre+GIT%2C+su+%22subversion%22+distribuido"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F02%2F02%2Fvideo-linus-habla-sobre-git-su-subversion-distribuido%2F&amp;title=VIDEO%3A+Linus+habla+sobre+GIT%2C+su+%22subversion%22+distribuido"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F02%2F02%2Fvideo-linus-habla-sobre-git-su-subversion-distribuido%2F&amp;title=VIDEO%3A+Linus+habla+sobre+GIT%2C+su+%22subversion%22+distribuido"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F02%2F02%2Fvideo-linus-habla-sobre-git-su-subversion-distribuido%2F&amp;headline=VIDEO%3A+Linus+habla+sobre+GIT%2C+su+%22subversion%22+distribuido"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=VIDEO%3A+Linus+habla+sobre+GIT%2C+su+%22subversion%22+distribuido&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F02%2F02%2Fvideo-linus-habla-sobre-git-su-subversion-distribuido%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=VIDEO%3A+Linus+habla+sobre+GIT%2C+su+%22subversion%22+distribuido&amp;u=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F02%2F02%2Fvideo-linus-habla-sobre-git-su-subversion-distribuido%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=VIDEO%3A+Linus+habla+sobre+GIT%2C+su+%22subversion%22+distribuido&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F02%2F02%2Fvideo-linus-habla-sobre-git-su-subversion-distribuido%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=VIDEO%3A+Linus+habla+sobre+GIT%2C+su+%22subversion%22+distribuido&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F02%2F02%2Fvideo-linus-habla-sobre-git-su-subversion-distribuido%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=VIDEO%3A+Linus+habla+sobre+GIT%2C+su+%22subversion%22+distribuido&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F02%2F02%2Fvideo-linus-habla-sobre-git-su-subversion-distribuido%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F02%2F02%2Fvideo-linus-habla-sobre-git-su-subversion-distribuido%2F&amp;title=VIDEO%3A+Linus+habla+sobre+GIT%2C+su+%22subversion%22+distribuido&amp;summary=&amp;source="><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F02%2F02%2Fvideo-linus-habla-sobre-git-su-subversion-distribuido%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2008%2F02%2F02%2Fvideo-linus-habla-sobre-git-su-subversion-distribuido%2F&amp;title=VIDEO%3A+Linus+habla+sobre+GIT%2C+su+%22subversion%22+distribuido"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.gubatron.com/blog/2008/02/02/video-linus-habla-sobre-git-su-subversion-distribuido/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>ssh-add -l -&gt; Cannot connect to your agent.</title>
		<link>http://www.gubatron.com/blog/2007/09/21/ssh-add-l-cannot-connect-to-your-agent/</link>
		<comments>http://www.gubatron.com/blog/2007/09/21/ssh-add-l-cannot-connect-to-your-agent/#comments</comments>
		<pubDate>Fri, 21 Sep 2007 20:54:45 +0000</pubDate>
		<dc:creator>gubatron</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Geeklife]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.gubatron.com/blog/2007/09/21/ssh-add-l-cannot-connect-to-your-agent/</guid>
		<description><![CDATA[keychain not working for ya&#8230;
you run ssh-agent but ssh-add won&#8217;t add the keys.
This is probably because your SSH_AGENT_PID and SSH_AUTH_SOCK variables are incorrect&#8230;
so I recommend you put something like this on your .bashrc to initialize your ssh-agent correctly:

export SSH_AGENT_PID=
export SSH_AUTH_SOCK=

#make sure no old agents are running
killall ssh-agent

#grab the text output of ssh-agent and evaluate it
#so [...]]]></description>
			<content:encoded><![CDATA[<p>keychain not working for ya&#8230;<br />
you run ssh-agent but ssh-add won&#8217;t add the keys.</p>
<p>This is probably because your SSH_AGENT_PID and SSH_AUTH_SOCK variables are incorrect&#8230;</p>
<p>so I recommend you put something like this on your .bashrc to initialize your ssh-agent correctly:</p>
<pre>
export SSH_AGENT_PID=
export SSH_AUTH_SOCK=

#make sure no old agents are running
killall ssh-agent

#grab the text output of ssh-agent and evaluate it
#so the correct variables are exported
eval `ssh-agent`

#add your private key(s) to the agent
ssh-add ~/.ssh/id_dsa
#ssh-add ~/.ssh/my_other_dsa_key

#at this point the script will ask you for the passwords of your keys
#if you protected them with passwords (recommended)

#list the available keys to make sure they were added
ssh-add -l
</pre>
<p>After this, you should be able to login without a password, on whatever other hosts you put the public keys (at .ssh/authorized_keys or .ssh/authorized_keys2)</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://twitter.com/home?status=ssh-add+-l+-%3E+Cannot+connect+to+your+agent.+http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F09%2F21%2Fssh-add-l-cannot-connect-to-your-agent%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F09%2F21%2Fssh-add-l-cannot-connect-to-your-agent%2F&amp;title=ssh-add+-l+-%3E+Cannot+connect+to+your+agent."><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F09%2F21%2Fssh-add-l-cannot-connect-to-your-agent%2F&amp;title=ssh-add+-l+-%3E+Cannot+connect+to+your+agent."><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F09%2F21%2Fssh-add-l-cannot-connect-to-your-agent%2F&amp;title=ssh-add+-l+-%3E+Cannot+connect+to+your+agent."><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F09%2F21%2Fssh-add-l-cannot-connect-to-your-agent%2F&amp;headline=ssh-add+-l+-%3E+Cannot+connect+to+your+agent."><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=ssh-add+-l+-%3E+Cannot+connect+to+your+agent.&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F09%2F21%2Fssh-add-l-cannot-connect-to-your-agent%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=ssh-add+-l+-%3E+Cannot+connect+to+your+agent.&amp;u=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F09%2F21%2Fssh-add-l-cannot-connect-to-your-agent%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=ssh-add+-l+-%3E+Cannot+connect+to+your+agent.&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F09%2F21%2Fssh-add-l-cannot-connect-to-your-agent%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=ssh-add+-l+-%3E+Cannot+connect+to+your+agent.&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F09%2F21%2Fssh-add-l-cannot-connect-to-your-agent%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=ssh-add+-l+-%3E+Cannot+connect+to+your+agent.&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F09%2F21%2Fssh-add-l-cannot-connect-to-your-agent%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F09%2F21%2Fssh-add-l-cannot-connect-to-your-agent%2F&amp;title=ssh-add+-l+-%3E+Cannot+connect+to+your+agent.&amp;summary=&amp;source="><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F09%2F21%2Fssh-add-l-cannot-connect-to-your-agent%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F09%2F21%2Fssh-add-l-cannot-connect-to-your-agent%2F&amp;title=ssh-add+-l+-%3E+Cannot+connect+to+your+agent."><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.gubatron.com/blog/2007/09/21/ssh-add-l-cannot-connect-to-your-agent/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>svn gotchas: Importing a Folder in one step</title>
		<link>http://www.gubatron.com/blog/2007/09/06/svn-gotchas-importing-a-folder-in-one-step/</link>
		<comments>http://www.gubatron.com/blog/2007/09/06/svn-gotchas-importing-a-folder-in-one-step/#comments</comments>
		<pubDate>Thu, 06 Sep 2007 17:17:40 +0000</pubDate>
		<dc:creator>gubatron</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Geeklife]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.gubatron.com/blog/2007/09/06/svn-gotchas-importing-a-folder-in-one-step/</guid>
		<description><![CDATA[Up until this day when my friend Gabe told me how, I didn&#8217;t know how to import a folder, without doing this first:

svn mkdir svn+ssh://server.com/path/to/repo/myfolder
svn import myFolder svn+ssh://server.com/path/to/repo/myfolder

If I didn&#8217;t do that, If I just imported the local &#8220;myFolder&#8221;, it would end up adding all the files inside the folder and it would not create [...]]]></description>
			<content:encoded><![CDATA[<p>Up until this day when my friend Gabe told me how, I didn&#8217;t know how to import a folder, without doing this first:</p>
<pre>
svn mkdir svn+ssh://server.com/path/to/repo/myfolder
svn import myFolder svn+ssh://server.com/path/to/repo/myfolder
</pre>
<p>If I didn&#8217;t do that, If I just imported the local &#8220;myFolder&#8221;, it would end up adding all the files inside the folder and it would not create the &#8220;myFolder&#8221; inside the repository, creating a total mess.</p>
<p><strong>Here&#8217;s what you do</strong><br />
Forget everything you know about copying folders on the command line, and do this:</p>
<ul>
<li>cd INTO de Local Folder you want to import as a new folder in your repository</li>
<li>svn import REMOTE_SVN_PATH/nameOfYouLocalFolder</li>
</ul>
<p>This will create that folder as needed on the SVN repository and import all the files and folders of the folder where you&#8217;re standing.</p>
<p>Here&#8217;s an example:</p>
<pre>
gubatrons-macbook-pro:~/workspace/ cd <strong>arcturus-jython-console</strong>
gubatrons-macbook-pro:~/workspace/<strong>arcturus-jython-console</strong> gubatron$ svn import svn+ssh://gubatron@myserver/usr/local/svn/repos/labs/arcturus-jython-console -m "A Jython console to test arcturus core object on the fly"
Adding         Main.java
Adding         lib
Adding  (bin)  lib/jython.jar

Committed revision 7409
</pre>
<p>If you svn ls the repo, you&#8217;ll see the new folder &#8220;arcturus-jython-console&#8221; is there (for this example)</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://twitter.com/home?status=svn+gotchas%3A+Importing+a+Folder+in+one+step+http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F09%2F06%2Fsvn-gotchas-importing-a-folder-in-one-step%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F09%2F06%2Fsvn-gotchas-importing-a-folder-in-one-step%2F&amp;title=svn+gotchas%3A+Importing+a+Folder+in+one+step"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F09%2F06%2Fsvn-gotchas-importing-a-folder-in-one-step%2F&amp;title=svn+gotchas%3A+Importing+a+Folder+in+one+step"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F09%2F06%2Fsvn-gotchas-importing-a-folder-in-one-step%2F&amp;title=svn+gotchas%3A+Importing+a+Folder+in+one+step"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F09%2F06%2Fsvn-gotchas-importing-a-folder-in-one-step%2F&amp;headline=svn+gotchas%3A+Importing+a+Folder+in+one+step"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=svn+gotchas%3A+Importing+a+Folder+in+one+step&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F09%2F06%2Fsvn-gotchas-importing-a-folder-in-one-step%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=svn+gotchas%3A+Importing+a+Folder+in+one+step&amp;u=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F09%2F06%2Fsvn-gotchas-importing-a-folder-in-one-step%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=svn+gotchas%3A+Importing+a+Folder+in+one+step&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F09%2F06%2Fsvn-gotchas-importing-a-folder-in-one-step%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=svn+gotchas%3A+Importing+a+Folder+in+one+step&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F09%2F06%2Fsvn-gotchas-importing-a-folder-in-one-step%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=svn+gotchas%3A+Importing+a+Folder+in+one+step&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F09%2F06%2Fsvn-gotchas-importing-a-folder-in-one-step%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F09%2F06%2Fsvn-gotchas-importing-a-folder-in-one-step%2F&amp;title=svn+gotchas%3A+Importing+a+Folder+in+one+step&amp;summary=&amp;source="><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F09%2F06%2Fsvn-gotchas-importing-a-folder-in-one-step%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F09%2F06%2Fsvn-gotchas-importing-a-folder-in-one-step%2F&amp;title=svn+gotchas%3A+Importing+a+Folder+in+one+step"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.gubatron.com/blog/2007/09/06/svn-gotchas-importing-a-folder-in-one-step/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux: Como copiar un archivo a multiples ubicaciones con un solo comando</title>
		<link>http://www.gubatron.com/blog/2007/08/29/linuxcomo-copiar-un-archivo-a-multiples-ubicaciones-con-un-solo-comando/</link>
		<comments>http://www.gubatron.com/blog/2007/08/29/linuxcomo-copiar-un-archivo-a-multiples-ubicaciones-con-un-solo-comando/#comments</comments>
		<pubDate>Wed, 29 Aug 2007 12:38:53 +0000</pubDate>
		<dc:creator>gubatron</dc:creator>
				<category><![CDATA[Geeklife]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.gubatron.com/blog/2007/08/29/linuxcomo-copiar-un-archivo-a-multiples-ubicaciones-con-un-solo-comando/</guid>
		<description><![CDATA[Aprovecho la ocasion para ilustrar un poco el poder del bash a los amigos que recien se unen al mundo de linux. Muchas veces tienes que hacer operaciones en las cuales tienes que tocar multiples archivos, por ejemplo, remplazar un archivo en varios lugares.
Yendo a un ejemplo concreto, El splash screen de FrostWire vive en [...]]]></description>
			<content:encoded><![CDATA[<p>Aprovecho la ocasion para ilustrar un poco el poder del bash a los amigos que recien se unen al mundo de linux. Muchas veces tienes que hacer operaciones en las cuales tienes que tocar multiples archivos, por ejemplo, remplazar un archivo en varios lugares.</p>
<p>Yendo a un ejemplo concreto, El splash screen de FrostWire vive en varios lugares:</p>
<pre>
find . | grep splash | grep -v svn
./lib/themes/pinstripes/default_splash.png
./lib/themes/pinstripes/splash.png
./gui/com/limegroup/gnutella/gui/images/splash.png
./gui/com/limegroup/gnutella/gui/images/default_splash.png
./gui/com/limegroup/gnutella/gui/images/splashpro.png
./gui/com/limegroup/gnutella/gui/images/default_splash_pro.png
</pre>
<p>Todos esos archivos son un mismo archivo con diferente nombre. Hoy tengo que actualizar el splash screen para que aparezca un nuevo numero de version, y es un fastidio hacer cp manualmente para cada uno de ellos&#8230; que hacemos? <strong>un for</strong></p>
<p>Mi archivo nuevo se llama <strong>splash_4.13.3.png</strong> y quiero pegarlo automaticamente sin que se me olvide ninguna URL en todas esas ubicaciones, con esos nombres.</p>
<p>Lo que hacemos es que volvemos a hacer ese grep, y lo metemos en una lista, y luego recorremos esa lista y para cada elemento de la lista hacemos <strong>cp splash_4.13.3.png $elemento</strong></p>
<p>Veamos:</p>
<pre>

for elemento in `find . | grep splash | grep -v svn`; do cp splash_4.13.3.png $elemento; done;
</pre>
<p>Para los amigos nuevos con bash, el uso de las comillas simples hacia atras ejecuta el string. Luego el for se ejecuta en cada uno de los elementos de esa lista generada por el find | grep.</p>
<p>Espero que les sea de utilidad.</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://twitter.com/home?status=Linux%3A+Como+copiar+un+ar...+http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F08%2F29%2Flinuxcomo-copiar-un-archivo-a-multiples-ubicaciones-con-un-solo-comando%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F08%2F29%2Flinuxcomo-copiar-un-archivo-a-multiples-ubicaciones-con-un-solo-comando%2F&amp;title=Linux%3A+Como+copiar+un+archivo+a+multiples+ubicaciones+con+un+solo+comando"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F08%2F29%2Flinuxcomo-copiar-un-archivo-a-multiples-ubicaciones-con-un-solo-comando%2F&amp;title=Linux%3A+Como+copiar+un+archivo+a+multiples+ubicaciones+con+un+solo+comando"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F08%2F29%2Flinuxcomo-copiar-un-archivo-a-multiples-ubicaciones-con-un-solo-comando%2F&amp;title=Linux%3A+Como+copiar+un+archivo+a+multiples+ubicaciones+con+un+solo+comando"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F08%2F29%2Flinuxcomo-copiar-un-archivo-a-multiples-ubicaciones-con-un-solo-comando%2F&amp;headline=Linux%3A+Como+copiar+un+archivo+a+multiples+ubicaciones+con+un+solo+comando"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Linux%3A+Como+copiar+un+archivo+a+multiples+ubicaciones+con+un+solo+comando&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F08%2F29%2Flinuxcomo-copiar-un-archivo-a-multiples-ubicaciones-con-un-solo-comando%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Linux%3A+Como+copiar+un+archivo+a+multiples+ubicaciones+con+un+solo+comando&amp;u=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F08%2F29%2Flinuxcomo-copiar-un-archivo-a-multiples-ubicaciones-con-un-solo-comando%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Linux%3A+Como+copiar+un+archivo+a+multiples+ubicaciones+con+un+solo+comando&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F08%2F29%2Flinuxcomo-copiar-un-archivo-a-multiples-ubicaciones-con-un-solo-comando%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Linux%3A+Como+copiar+un+archivo+a+multiples+ubicaciones+con+un+solo+comando&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F08%2F29%2Flinuxcomo-copiar-un-archivo-a-multiples-ubicaciones-con-un-solo-comando%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Linux%3A+Como+copiar+un+archivo+a+multiples+ubicaciones+con+un+solo+comando&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F08%2F29%2Flinuxcomo-copiar-un-archivo-a-multiples-ubicaciones-con-un-solo-comando%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F08%2F29%2Flinuxcomo-copiar-un-archivo-a-multiples-ubicaciones-con-un-solo-comando%2F&amp;title=Linux%3A+Como+copiar+un+archivo+a+multiples+ubicaciones+con+un+solo+comando&amp;summary=&amp;source="><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F08%2F29%2Flinuxcomo-copiar-un-archivo-a-multiples-ubicaciones-con-un-solo-comando%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F08%2F29%2Flinuxcomo-copiar-un-archivo-a-multiples-ubicaciones-con-un-solo-comando%2F&amp;title=Linux%3A+Como+copiar+un+archivo+a+multiples+ubicaciones+con+un+solo+comando"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.gubatron.com/blog/2007/08/29/linuxcomo-copiar-un-archivo-a-multiples-ubicaciones-con-un-solo-comando/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Check if your PHP&#8217;s diff syntax isn&#8217;t breaking</title>
		<link>http://www.gubatron.com/blog/2007/08/11/check-if-your-phps-diff-syntax-isnt-breaking/</link>
		<comments>http://www.gubatron.com/blog/2007/08/11/check-if-your-phps-diff-syntax-isnt-breaking/#comments</comments>
		<pubDate>Sat, 11 Aug 2007 19:34:54 +0000</pubDate>
		<dc:creator>gubatron</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Geeklife]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.gubatron.com/blog/2007/08/11/check-if-your-phps-diff-syntax-isnt-breaking/</guid>
		<description><![CDATA[Say you&#8217;re working on emacs, without any kind of syntax checking, and you don&#8217;t want to commit your code cause you might have syntax errors.
If you&#8217;re smart, the best way to know what files you actually changed, is using 

svn diff &#124; grep +++

(that is, if you&#8217;re using subversion, which I hope you are)
then you&#8217;d [...]]]></description>
			<content:encoded><![CDATA[<p>Say you&#8217;re working on emacs, without any kind of syntax checking, and you don&#8217;t want to commit your code cause you might have syntax errors.</p>
<p>If you&#8217;re smart, the best way to know what files you actually changed, is using </p>
<pre>
svn diff | grep +++
</pre>
<p>(that is, if you&#8217;re using subversion, which I hope you are)</p>
<p>then you&#8217;d have to do, </p>
<pre>
php -l <file>
</pre>
<p>on each one of the files&#8230;</p>
<p>well, that looks like a script to me.</p>
<p>Add the following script to your path, name it&#8230; checkdiffsyntax</p>
<pre>
#!/bin/bash

#Put all the files that changed on a temp file and then dump them into a MYBLOOP_DIFF_FILES variable
TMP_FILE=/tmp/changed_${USER}
svn diff | grep +++ | awk {'print $2'} > ${TMP_FILE}; export MYBLOOP_DIFF_FILES=`cat ${TMP_FILE}`

for file in $MYBLOOP_DIFF_FILES
do
  php -l $file
done

rm ${TMP_FILE}
</pre>
<p><strong>UPDATE</strong><br />
I learn how to use <strong>for</strong> as a one liner on bash, and also how to do this without dumping the filepaths to a file which gets fed into a string&#8230; now it just goes straight from awk into the for loop, sick. I will leave the example above for future reference in case you need how to put the contents of a file on a variable and then reading from them</p>
<p>New script looks like this now, one liner.</p>
<pre>
svn diff | grep +++ | for file in `awk {'print $2'}`; do echo ${file}; php -l ${file}; done
</pre>
<p>chmod 777 it, and you&#8217;re ready to go.</p>
<p>Should look like this when you run it</p>
<pre>
angel@foobar:~/public_html$ checkdiffsyntax
No syntax errors detected in members/ajax/mashup.php
No syntax errors detected in foo/mashups/twitter/twitter.php
No syntax errors detected in foo/classes/utils.php
No syntax errors detected in foo/classes/user.php
</pre>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://twitter.com/home?status=Check+if+your+PHP%26%238217%3Bs+diff+syntax+isn%26%238217%3Bt+b...+http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F08%2F11%2Fcheck-if-your-phps-diff-syntax-isnt-breaking%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F08%2F11%2Fcheck-if-your-phps-diff-syntax-isnt-breaking%2F&amp;title=Check+if+your+PHP%27s+diff+syntax+isn%27t+breaking"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F08%2F11%2Fcheck-if-your-phps-diff-syntax-isnt-breaking%2F&amp;title=Check+if+your+PHP%27s+diff+syntax+isn%27t+breaking"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F08%2F11%2Fcheck-if-your-phps-diff-syntax-isnt-breaking%2F&amp;title=Check+if+your+PHP%27s+diff+syntax+isn%27t+breaking"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F08%2F11%2Fcheck-if-your-phps-diff-syntax-isnt-breaking%2F&amp;headline=Check+if+your+PHP%27s+diff+syntax+isn%27t+breaking"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Check+if+your+PHP%27s+diff+syntax+isn%27t+breaking&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F08%2F11%2Fcheck-if-your-phps-diff-syntax-isnt-breaking%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Check+if+your+PHP%27s+diff+syntax+isn%27t+breaking&amp;u=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F08%2F11%2Fcheck-if-your-phps-diff-syntax-isnt-breaking%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Check+if+your+PHP%27s+diff+syntax+isn%27t+breaking&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F08%2F11%2Fcheck-if-your-phps-diff-syntax-isnt-breaking%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Check+if+your+PHP%27s+diff+syntax+isn%27t+breaking&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F08%2F11%2Fcheck-if-your-phps-diff-syntax-isnt-breaking%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Check+if+your+PHP%27s+diff+syntax+isn%27t+breaking&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F08%2F11%2Fcheck-if-your-phps-diff-syntax-isnt-breaking%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F08%2F11%2Fcheck-if-your-phps-diff-syntax-isnt-breaking%2F&amp;title=Check+if+your+PHP%27s+diff+syntax+isn%27t+breaking&amp;summary=&amp;source="><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F08%2F11%2Fcheck-if-your-phps-diff-syntax-isnt-breaking%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F08%2F11%2Fcheck-if-your-phps-diff-syntax-isnt-breaking%2F&amp;title=Check+if+your+PHP%27s+diff+syntax+isn%27t+breaking"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.gubatron.com/blog/2007/08/11/check-if-your-phps-diff-syntax-isnt-breaking/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apache2: EnableSendFile</title>
		<link>http://www.gubatron.com/blog/2007/08/07/apache2-enablesendfile/</link>
		<comments>http://www.gubatron.com/blog/2007/08/07/apache2-enablesendfile/#comments</comments>
		<pubDate>Tue, 07 Aug 2007 16:23:44 +0000</pubDate>
		<dc:creator>gubatron</dc:creator>
				<category><![CDATA[Geeklife]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.gubatron.com/blog/2007/08/07/apache2-enablesendfile/</guid>
		<description><![CDATA[Aunque no recomiendo apache para servir archivos estaticos (demasiado overhead, es mejor que le eches un ojo a nginx o a lighttpd), encontre hoy una directiva que puede eliminar un poco el overhead al hacer una llamada directa al sistema -> sendfile.
De momento lo que hice en uno de los servidores fue muy sencillo:

sudo apt-get [...]]]></description>
			<content:encoded><![CDATA[<p>Aunque no recomiendo apache para servir archivos estaticos (demasiado overhead, es mejor que le eches un ojo a nginx o a lighttpd), encontre hoy una directiva que puede eliminar un poco el overhead al hacer una llamada directa al sistema -> sendfile.</p>
<p>De momento lo que hice en uno de los servidores fue muy sencillo:</p>
<pre>
sudo apt-get install sendfile
</pre>
<p>Agregamos la directiva en /etc/apache2/apache2.conf</p>
<pre>
EnableSendFile On
</pre>
<p>(Puedes poner esta directiva solo en algun directorio, si lo deseas solo en un directorio)</p>
<p>Reseteamos el servidor</p>
<pre>
sudo kill -HUP <#proceso_principal_apache>
</pre>
<p>Chequeamos que no haya pasado ningun error con la configuracion</p>
<pre>
tail -f /var/log/apache2/error.log

[Tue Aug 07 08:11:30 2007] [notice] SIGHUP received.  Attempting to restart
[Tue Aug 07 08:11:33 2007] [notice] Apache/2.2.3 (Ubuntu) configured -- resuming normal operations
</pre>
<p>Supongo que ahora esta funcionando con sendfile, noto menos tiempo de espera para recibir el archivo.</p>
<p>Si alguien tiene algo que comentar sobre EnableSendFile, bienvenido, primera vez que lo pruebo, aunque brevemente pq montamos nginex en esa maquina a los 10minutos de probar esto. :(</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://twitter.com/home?status=Apache2%3A+EnableSendFile+http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F08%2F07%2Fapache2-enablesendfile%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F08%2F07%2Fapache2-enablesendfile%2F&amp;title=Apache2%3A+EnableSendFile"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F08%2F07%2Fapache2-enablesendfile%2F&amp;title=Apache2%3A+EnableSendFile"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F08%2F07%2Fapache2-enablesendfile%2F&amp;title=Apache2%3A+EnableSendFile"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F08%2F07%2Fapache2-enablesendfile%2F&amp;headline=Apache2%3A+EnableSendFile"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Apache2%3A+EnableSendFile&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F08%2F07%2Fapache2-enablesendfile%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Apache2%3A+EnableSendFile&amp;u=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F08%2F07%2Fapache2-enablesendfile%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Apache2%3A+EnableSendFile&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F08%2F07%2Fapache2-enablesendfile%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Apache2%3A+EnableSendFile&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F08%2F07%2Fapache2-enablesendfile%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Apache2%3A+EnableSendFile&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F08%2F07%2Fapache2-enablesendfile%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F08%2F07%2Fapache2-enablesendfile%2F&amp;title=Apache2%3A+EnableSendFile&amp;summary=&amp;source="><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F08%2F07%2Fapache2-enablesendfile%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F08%2F07%2Fapache2-enablesendfile%2F&amp;title=Apache2%3A+EnableSendFile"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.gubatron.com/blog/2007/08/07/apache2-enablesendfile/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2 Linux Commands I always forget</title>
		<link>http://www.gubatron.com/blog/2007/08/03/2-linux-commands-i-always-forget/</link>
		<comments>http://www.gubatron.com/blog/2007/08/03/2-linux-commands-i-always-forget/#comments</comments>
		<pubDate>Fri, 03 Aug 2007 20:23:38 +0000</pubDate>
		<dc:creator>gubatron</dc:creator>
				<category><![CDATA[Geeklife]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.gubatron.com/blog/2007/08/03/2-linux-commands-i-always-forget/</guid>
		<description><![CDATA[
ldd
ldd is good when you need to know what shared dependencies has an executable file. For example.

angel@mbweb1:/bin$ ldd /bin/bash
        libncurses.so.5 => /lib/libncurses.so.5 (0x00002ac651098000)
        libdl.so.2 => /lib/libdl.so.2 (0x00002ac6512f4000)
        libc.so.6 => /lib/libc.so.6 (0x00002ac6514f8000)
    [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://farm2.static.flickr.com/1003/719169325_64b79209c0.jpg?v=0" alt="Taken on the museum of sex in paris"/></p>
<p><strong>ldd</strong></p>
<p>ldd is good when you need to know what shared dependencies has an executable file. For example.</p>
<pre>
angel@mbweb1:/bin$ ldd /bin/bash
        libncurses.so.5 => /lib/libncurses.so.5 (0x00002ac651098000)
        libdl.so.2 => /lib/libdl.so.2 (0x00002ac6512f4000)
        libc.so.6 => /lib/libc.so.6 (0x00002ac6514f8000)
        /lib64/ld-linux-x86-64.so.2 (0x00002ac650e7b000)
</pre>
<p><strong>ltrace</strong></p>
<p>As seen in the manual:</p>
<blockquote><p>ltrace  is  a  program  that simply runs the specified command until it exits.  It intercepts and records the dynamic library calls which are called by the executed process and the signals which are received by that process.  It can also intercept and  print  the system calls executed by the program.</p></blockquote>
<p>Here&#8217;s some sample output of ltrace</p>
<pre>
ltrace -p 929
--- SIGSTOP (Stopped (signal)) ---
--- SIGSTOP (Stopped (signal)) ---
fcntl(10, 4, 2050, 12, 0)                                                              = 0
accept(10, 0x7fffb0855b30, 0x7fffb08557ac, -1, 0)                                      = 76
fcntl(10, 4, 2, 0, 0)                                                                  = 0
signal(17, NULL)                                                                       = NULL
request_init(0x7fffb08557b0, 2, 0x7fffb0857ac5, 1, 76)                                 = 0x7fffb08557b0
sock_host(0x7fffb08557b0, 0, 0x7fffb08555d8, 40, 0x7fffb085583a)                       = 0
hosts_access(0x7fffb08557b0, 0x2b0bfaa95580, 0x7fffb0853648, -1, 0x7fffb085583a)       = 1
getsockname(76, 0x7fffb0855b20, 0x7fffb08557ac, 0x2aaab0000000, 0x2aaab0017ea0)        = 0
malloc(8496)                                                                           = 0x2aaab01857b0
malloc(256)                                                                            = 0x2aaab000b490
malloc(256)                                                                            = 0x2aaab000b5a0
memset(0x2aaab0186678, '\000', 472)                                                    = 0x2aaab0186678
memset(0x2aaab0186b48, '\000', 72)                                                     = 0x2aaab0186b48
memset(0x2aaab0186558, '\000', 72)                                                     = 0x2aaab0186558
memset(0x2aaab0186608, '\000', 112)                                                    = 0x2aaab0186608
pthread_mutex_init(0x2aaab01863c0, 0xda6668, 0, 0x2aaab0186678, 0)                     = 0
pthread_mutex_lock(0xd94200, 0xda6668, 0, 0x2aaab0186678, 0xda6668)                    = 0
memcpy(0x2aaab0185c68, "", 528)                                                        = 0x2aaab0185c68
malloc(41)                                                                             = 0x2aaab0002f80
memcpy(0x2aaab0002fa0, "%H:%i:%s", 8)                                                  = 0x2aaab0002fa0
malloc(41)                                                                             = 0x2aaab00646e0
memcpy(0x2aaab0064700, "%Y-%m-%d", 8)                                                  = 0x2aaab0064700
malloc(50)                                                                             = 0x2aaab0064720
memcpy(0x2aaab0064740, "%Y-%m-%d %H:%i:%s", 17)                                        = 0x2aaab0064740
pthread_mutex_unlock(0xd94200, 0xdaaab1, 17, 0, 64)                                    = 0
strcmp("latin1", "utf8")                                                               = -1
memset(0x2aaab0185e78, '\000', 1312)                                                   = 0x2aaab0185e78
malloc(1040)                                                                           = 0x2aaab00576e0
malloc(256)                                                                            = 0x2aaab0017ea0
pthread_mutex_lock(0xd93f00, 0x2aaab0185bf8, 0, 704, 128)                              = 0
pthread_mutex_unlock(0xd93f00, 0x2aaab0185bf8, 0x3252d661, 1, 128)                     = 0
pthread_self(0x2aaab0186398, 0x2aab7963b5ce, 0x39988b2e, 0xf9988b2b, 0xd93f00)         = 0x2b0bfbde9e70
pthread_self(0x2aaab0186398, 0x2aab7963b5ce, 0x39988b2e, 0xf9988b2b, 0xd93f00)         = 0x2b0bfbde9e70
malloc(240)                                                                            = 0x2aaab0017d20
memset(0x2aaab0017d20, '\000', 240)                                                    = 0x2aaab0017d20
sprintf("", "")                                                                        = 11
fcntl(76, 4, 0, 0x7fffb0855450, 0)                                                     = 0
fcntl(76, 3, 0, -1, 0)                                                                 = 2
malloc(16391)                                                                          = 0x2aaab0131590
fcntl(76, 4, 2050, 0, 0x200000)                                                        = 0
setsockopt(76, 0, 1, 0x7fffb0855634, 4)                                                = 0
setsockopt(76, 6, 1, 0x7fffb0855634, 4)                                                = 0
pthread_mutex_lock(0xd93f00, 6, 501, -1, 4)                                            = 0
pthread_cond_signal(0xd94920, 6, 0x2aaab01857c0, 0, 4)                                 = 0
pthread_mutex_unlock(0xd93f00, 5, 1, -1, 0xd94920)                                     = 0
select(13, 0x7fffb0855720, 0, 0, 0)                                                    = 1
fcntl(10, 4, 2050, 12, 0)                                                              = 0
accept(10, 0x7fffb0855b30, 0x7fffb08557ac, -1, 0)                                      = 80
fcntl(10, 4, 2, 0, 0)                                                                  = 0
signal(17, NULL)                                                                       = NULL
request_init(0x7fffb08557b0, 2, 0x7fffb0857ac5, 1, 80)                                 = 0x7fffb08557b0
sock_host(0x7fffb08557b0, 0, 0x7fffb08555d8, 40, 0x7fffb085583a)                       = 0
hosts_access(0x7fffb08557b0, 0x2b0bfaa95580, 0x7fffb0853648, -1, 0x7fffb085583a)       = 1
getsockname(80, 0x7fffb0855b20, 0x7fffb08557ac, 0x2aaab0000000, 0x2aaab0017fb0)        = 0
malloc(8496)                                                                           = 0x2aaab01355a0
malloc(256)                                                                            = 0x2aaab0017fb0
malloc(256)                                                                            = 0x2aaab00180c0
memset(0x2aaab0136468, '\000', 472)                                                    = 0x2aaab0136468
...
</pre>
<p><strong>strace</strong></p>
<p>the same as ltrace, but only for system calls.</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://twitter.com/home?status=2+Linux+Commands+I+always+forget+http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F08%2F03%2F2-linux-commands-i-always-forget%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F08%2F03%2F2-linux-commands-i-always-forget%2F&amp;title=2+Linux+Commands+I+always+forget"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F08%2F03%2F2-linux-commands-i-always-forget%2F&amp;title=2+Linux+Commands+I+always+forget"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F08%2F03%2F2-linux-commands-i-always-forget%2F&amp;title=2+Linux+Commands+I+always+forget"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F08%2F03%2F2-linux-commands-i-always-forget%2F&amp;headline=2+Linux+Commands+I+always+forget"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=2+Linux+Commands+I+always+forget&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F08%2F03%2F2-linux-commands-i-always-forget%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=2+Linux+Commands+I+always+forget&amp;u=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F08%2F03%2F2-linux-commands-i-always-forget%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=2+Linux+Commands+I+always+forget&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F08%2F03%2F2-linux-commands-i-always-forget%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=2+Linux+Commands+I+always+forget&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F08%2F03%2F2-linux-commands-i-always-forget%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=2+Linux+Commands+I+always+forget&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F08%2F03%2F2-linux-commands-i-always-forget%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F08%2F03%2F2-linux-commands-i-always-forget%2F&amp;title=2+Linux+Commands+I+always+forget&amp;summary=&amp;source="><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F08%2F03%2F2-linux-commands-i-always-forget%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F08%2F03%2F2-linux-commands-i-always-forget%2F&amp;title=2+Linux+Commands+I+always+forget"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.gubatron.com/blog/2007/08/03/2-linux-commands-i-always-forget/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Bjarne Stroustrup at Google NY, July 31st 2007</title>
		<link>http://www.gubatron.com/blog/2007/07/31/bjarne-stroustrup-at-google-ny-july-31st-2007/</link>
		<comments>http://www.gubatron.com/blog/2007/07/31/bjarne-stroustrup-at-google-ny-july-31st-2007/#comments</comments>
		<pubDate>Wed, 01 Aug 2007 03:00:33 +0000</pubDate>
		<dc:creator>gubatron</dc:creator>
				<category><![CDATA[Diary]]></category>
		<category><![CDATA[Geeklife]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[New York City Life]]></category>
		<category><![CDATA[Opinions]]></category>

		<guid isPermaLink="false">http://www.gubatron.com/blog/2007/07/31/bjarne-stroustrup-at-google-ny-july-31st-2007/</guid>
		<description><![CDATA[
Tonight, July 31st of 2007 I had the privilege of attending a talk by the man himself, the creator of the C++ language, Bjarne Stroustrup.

He was sharing with us how things are going for the next version of C++0x &#8211; The 0x stands for a possible year of this decade where it will be released.
One [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://farm2.static.flickr.com/1128/968223347_77eafa5c19.jpg?v=0" /></p>
<p>Tonight, July 31st of 2007 I had the privilege of attending a talk by the man himself, the creator of the C++ language, Bjarne Stroustrup.</p>
<p><img src="http://farm2.static.flickr.com/1286/968223285_d3ed21b818.jpg?v=0"/></p>
<p>He was sharing with us how things are going for the next version of C++0x &#8211; The 0x stands for a possible year of this decade where it will be released.</p>
<p>One of the interesting things that happened to me at this meeting was to finally have the honor of meeting Sebastian Delmont, and oh, those 3 geeky Red Hat guys, wonder if they were actually part of Red Hat or just hardcore fans, good thing I was wearing my Ubuntu shirt to represent for the Ubunteros.</p>
<p><img src="http://farm2.static.flickr.com/1095/968223445_3c121541b0.jpg?v=0" /></p>
<p>As for C++0x, I guess my thoughts aren&#8217;t that deep, I honestly don&#8217;t care much about C++ <strong>at this point in my life</strong>, and it seems it&#8217;s an old language striving hard to keep the pace with newer features found in new languages. It seems its very hard to reach consensus on the C++ board, and its very hard to accept new features given the language is already too big, its also funny to see that everything that gets hughe (millions of people use it), will always have problems in terms of adapting to new conditions or injecting innovation to itself. Bjarne created the language around 25 years ago, and there are features that only now he&#8217;s finally been able to get accepted for this version. C++ however, we must admit is a language that&#8217;s heavily used, (but I think by end users, not the software engineering community), on software like Photoshop, Google search engine, and the Mars rovers (these were the examples Bjarnes kept bringing again and again, I would also be proud of course).</p>
<p>For me, I&#8217;ll stick to Python, Nasa&#8217;s been using it too for quite a while, the same with Google and many other applications, hey, YouTube&#8217;s backend runs in python.</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://twitter.com/home?status=Bjarne+Stroustrup+at+Google+NY%2C+July+31st+2007+http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F31%2Fbjarne-stroustrup-at-google-ny-july-31st-2007%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F31%2Fbjarne-stroustrup-at-google-ny-july-31st-2007%2F&amp;title=Bjarne+Stroustrup+at+Google+NY%2C+July+31st+2007"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F31%2Fbjarne-stroustrup-at-google-ny-july-31st-2007%2F&amp;title=Bjarne+Stroustrup+at+Google+NY%2C+July+31st+2007"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F31%2Fbjarne-stroustrup-at-google-ny-july-31st-2007%2F&amp;title=Bjarne+Stroustrup+at+Google+NY%2C+July+31st+2007"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F31%2Fbjarne-stroustrup-at-google-ny-july-31st-2007%2F&amp;headline=Bjarne+Stroustrup+at+Google+NY%2C+July+31st+2007"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Bjarne+Stroustrup+at+Google+NY%2C+July+31st+2007&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F31%2Fbjarne-stroustrup-at-google-ny-july-31st-2007%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Bjarne+Stroustrup+at+Google+NY%2C+July+31st+2007&amp;u=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F31%2Fbjarne-stroustrup-at-google-ny-july-31st-2007%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Bjarne+Stroustrup+at+Google+NY%2C+July+31st+2007&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F31%2Fbjarne-stroustrup-at-google-ny-july-31st-2007%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Bjarne+Stroustrup+at+Google+NY%2C+July+31st+2007&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F31%2Fbjarne-stroustrup-at-google-ny-july-31st-2007%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Bjarne+Stroustrup+at+Google+NY%2C+July+31st+2007&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F31%2Fbjarne-stroustrup-at-google-ny-july-31st-2007%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F31%2Fbjarne-stroustrup-at-google-ny-july-31st-2007%2F&amp;title=Bjarne+Stroustrup+at+Google+NY%2C+July+31st+2007&amp;summary=&amp;source="><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F31%2Fbjarne-stroustrup-at-google-ny-july-31st-2007%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F31%2Fbjarne-stroustrup-at-google-ny-july-31st-2007%2F&amp;title=Bjarne+Stroustrup+at+Google+NY%2C+July+31st+2007"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.gubatron.com/blog/2007/07/31/bjarne-stroustrup-at-google-ny-july-31st-2007/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Nueva franela Ubuntu</title>
		<link>http://www.gubatron.com/blog/2007/07/31/nueva-franela-ubuntu/</link>
		<comments>http://www.gubatron.com/blog/2007/07/31/nueva-franela-ubuntu/#comments</comments>
		<pubDate>Tue, 31 Jul 2007 12:40:49 +0000</pubDate>
		<dc:creator>gubatron</dc:creator>
				<category><![CDATA[Diary]]></category>
		<category><![CDATA[Geeklife]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.gubatron.com/blog/2007/07/31/nueva-franela-ubuntu/</guid>
		<description><![CDATA[Acaba de llegar mi nueva franela con el logo de Ubuntu. Puedes hacer franelas como estas en spreadshirt.com

]]></description>
			<content:encoded><![CDATA[<p>Acaba de llegar mi nueva franela con el logo de Ubuntu. Puedes hacer franelas como estas en spreadshirt.com</p>
<p><center><img src="http://farm2.static.flickr.com/1147/962523918_740196ec6c.jpg?v=0"/></p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://twitter.com/home?status=Nueva+franela+Ubuntu+http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F31%2Fnueva-franela-ubuntu%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F31%2Fnueva-franela-ubuntu%2F&amp;title=Nueva+franela+Ubuntu"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F31%2Fnueva-franela-ubuntu%2F&amp;title=Nueva+franela+Ubuntu"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F31%2Fnueva-franela-ubuntu%2F&amp;title=Nueva+franela+Ubuntu"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F31%2Fnueva-franela-ubuntu%2F&amp;headline=Nueva+franela+Ubuntu"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Nueva+franela+Ubuntu&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F31%2Fnueva-franela-ubuntu%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Nueva+franela+Ubuntu&amp;u=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F31%2Fnueva-franela-ubuntu%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Nueva+franela+Ubuntu&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F31%2Fnueva-franela-ubuntu%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Nueva+franela+Ubuntu&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F31%2Fnueva-franela-ubuntu%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Nueva+franela+Ubuntu&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F31%2Fnueva-franela-ubuntu%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F31%2Fnueva-franela-ubuntu%2F&amp;title=Nueva+franela+Ubuntu&amp;summary=&amp;source="><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F31%2Fnueva-franela-ubuntu%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F31%2Fnueva-franela-ubuntu%2F&amp;title=Nueva+franela+Ubuntu"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.gubatron.com/blog/2007/07/31/nueva-franela-ubuntu/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Python Reference: Binary Operators</title>
		<link>http://www.gubatron.com/blog/2007/07/28/python-reference-binary-operators/</link>
		<comments>http://www.gubatron.com/blog/2007/07/28/python-reference-binary-operators/#comments</comments>
		<pubDate>Sat, 28 Jul 2007 15:43:48 +0000</pubDate>
		<dc:creator>gubatron</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Geeklife]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.gubatron.com/blog/2007/07/28/python-reference-binary-operators/</guid>
		<description><![CDATA[Python binary operators are pretty much the same as in any other language, however I notice most programmers tend to waste a lot of memory by creating lots and lots of properties say in DB tables, or Objects and using the wrong datatypes. I think its elegant to use the concept of binary flags, for [...]]]></description>
			<content:encoded><![CDATA[<p>Python binary operators are pretty much the same as in any other language, however I notice most programmers tend to waste a lot of memory by creating lots and lots of properties say in DB tables, or Objects and using the wrong datatypes. I think its elegant to use the concept of binary flags, for example, if you have an object that has around 8 or 16 boolean properties, you can store their state in 1 byte or 2 bytes (1 char or 2 char fields), and turn on/off the bits on those fields.</p>
<p>Usually, if you have a binary field, and you want to, turn on bits, toggle bits, and check bits, you do the following.</p>
<p>Suppose &#8220;config&#8221; is an 8 bit number, and you want to modify this bits individually, say config=4 (0b100) and you want to turn on the rightmost bit to have 0b101 (which is a 5) you could do the following</p>
<pre>
>>> #Uses the | operator
... def turnBitOn(config, binaryFlag):
...   return config | binaryFlag
...
>>> config = 4
>>> config = turnBitOn(config,1)
>>> print config
5
</pre>
<p>If you want to check if a Bit is turned on, just use the &#8220;&#038;&#8221; operator, if the result is the same as the bit you&#8217;re comparing, then its turned on.</p>
<pre>
>>> def checkBit(config,binaryFlag):
...   return binaryFlag == config &#038; binaryFlag
...
>>> print checkBit(config,1)
True
>>> print checkBit(config,2) #checks 0b010 in 0b101
False
</pre>
<p>What if you just want to toggle a bit, no matter what&#8217;s in there?<br />
Just use binary XOR, the &#8220;^&#8221; operator.</p>
<pre>
>>> def toggleBit(config,binaryFlag):
...   return config ^ binaryFlag
...
>>> print config
5
>>> config = toggleBit(config,1)
>>> print config
4
>>> config = toggleBit(config,1)
>>> print config
5
</pre>
<p>And now, the last basic operation would be to turn off a bit. For this, you should do a NAND operation. The Binary Not in python as in most programming languages is the &#8220;~&#8221; operator. This is how you can use it to turn off bits.</p>
<p>You have to do it in conjunction with the &#038; operator, sort of doing a NAND</p>
<pre>
>>> 5 &#038; (~1)
4
>>> 5 &#038;~ 1
4
</pre>
<p>So we could define our turnOffBit function as follows:</p>
<pre>
>>> def turnOffBit(config,binaryFlag):
...   return config &#038; (~binaryFlag)
...
>>> print config
5
>>> config = turnOffBit(config,1)
>>> print config
4
>>> config = turnOffBit(config,1)
>>> print config
4
</pre>
<p>Hope this makes a good reference for those trying to make the most out of their bytes.</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://twitter.com/home?status=Python+Reference%3A+Binary+Operators+http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F28%2Fpython-reference-binary-operators%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F28%2Fpython-reference-binary-operators%2F&amp;title=Python+Reference%3A+Binary+Operators"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F28%2Fpython-reference-binary-operators%2F&amp;title=Python+Reference%3A+Binary+Operators"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F28%2Fpython-reference-binary-operators%2F&amp;title=Python+Reference%3A+Binary+Operators"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F28%2Fpython-reference-binary-operators%2F&amp;headline=Python+Reference%3A+Binary+Operators"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Python+Reference%3A+Binary+Operators&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F28%2Fpython-reference-binary-operators%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Python+Reference%3A+Binary+Operators&amp;u=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F28%2Fpython-reference-binary-operators%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Python+Reference%3A+Binary+Operators&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F28%2Fpython-reference-binary-operators%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Python+Reference%3A+Binary+Operators&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F28%2Fpython-reference-binary-operators%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Python+Reference%3A+Binary+Operators&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F28%2Fpython-reference-binary-operators%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F28%2Fpython-reference-binary-operators%2F&amp;title=Python+Reference%3A+Binary+Operators&amp;summary=&amp;source="><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F28%2Fpython-reference-binary-operators%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F28%2Fpython-reference-binary-operators%2F&amp;title=Python+Reference%3A+Binary+Operators"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.gubatron.com/blog/2007/07/28/python-reference-binary-operators/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Python: How to debug HTTP while using urllib2</title>
		<link>http://www.gubatron.com/blog/2007/07/27/python-how-to-debug-http-while-using-urllib2/</link>
		<comments>http://www.gubatron.com/blog/2007/07/27/python-how-to-debug-http-while-using-urllib2/#comments</comments>
		<pubDate>Fri, 27 Jul 2007 15:36:58 +0000</pubDate>
		<dc:creator>gubatron</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Geeklife]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.gubatron.com/blog/2007/07/27/python-how-to-debug-http-while-using-urllib2/</guid>
		<description><![CDATA[
...
import urllib
import urllib2

#this is just to prepare a dynamic uri (this is actual code from a system I'm building, sorry)
fileDownloadServiceURL = '%s://%s:%s/%s' % (transport,server,port,pathToController)
postData = {'URI':fileUri} #add more post stuff here
postData = urllib.urlencode(postData) #make sure you encode your post data

#add some custom headers if you need them
headers={"Host": server+':'+port,"Cookie":"JSESSIONID="+sessionId,"User-Agent":"Name of your User-Agent Here"}

#prepare your request, with [...]]]></description>
			<content:encoded><![CDATA[<pre>
...
import urllib
import urllib2

#this is just to prepare a dynamic uri (this is actual code from a system I'm building, sorry)
fileDownloadServiceURL = '%s://%s:%s/%s' % (transport,server,port,pathToController)
postData = {'URI':fileUri} #add more post stuff here
postData = urllib.urlencode(postData) #make sure you encode your post data

#add some custom headers if you need them
headers={"Host": server+':'+port,"Cookie":"JSESSIONID="+sessionId,"User-Agent":"Name of your User-Agent Here"}

#prepare your request, with headers and post data
req = urllib2.Request(fileDownloadServiceURL,postData,headers)

#and this is the magic. Create a HTTPHandler object and put its debug level to 1
httpHandler = urllib2.HTTPHandler()
httpHandler.set_http_debuglevel(1)

#Instead of using urllib2.urlopen, create an opener, and pass the HTTPHandler
#and any other handlers... to it.
opener = urllib2.build_opener(httpHandler)

#User your opener to open the Request.
urlHandle = opener.open(req)

#you'll end up with a file-like object... which I called urlHandle
...
</pre>
<p>The ouput will have useful debugging info about the HTTP connection.</p>
<pre>
connect: (localhost, 8080)
send: u'POST /arcturus-web/fileVariableDownload.service HTTP/1.1\r\nAccept-Encoding: identity\r\nContent-Length: 57\r\nConnection: close\r\nUser-Agent: Temboo Twyla/Arcturus HTTP Downloader\r\nHost: localhost:8080\r\nCookie: JSESSIONID=1b8xl8nozb2i\r\nContent-Type: application/x-www-form-urlencoded\r\n\r\n'
send: 'URI=temboo%3A%2F%2Fwww.one.com%2Ffiles.f%2Fmapping1.m.var'
reply: 'HTTP/1.1 200 OK\r\n'
header: Content-Language: en-US
header: Content-Type: text/html; charset=ISO-8859-1
header: Connection: close
header: Server: Jetty(6.0.2)
</pre>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://twitter.com/home?status=Python%3A+How+to+debug+HTTP+while+using+urllib2+http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F27%2Fpython-how-to-debug-http-while-using-urllib2%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F27%2Fpython-how-to-debug-http-while-using-urllib2%2F&amp;title=Python%3A+How+to+debug+HTTP+while+using+urllib2"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F27%2Fpython-how-to-debug-http-while-using-urllib2%2F&amp;title=Python%3A+How+to+debug+HTTP+while+using+urllib2"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F27%2Fpython-how-to-debug-http-while-using-urllib2%2F&amp;title=Python%3A+How+to+debug+HTTP+while+using+urllib2"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F27%2Fpython-how-to-debug-http-while-using-urllib2%2F&amp;headline=Python%3A+How+to+debug+HTTP+while+using+urllib2"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Python%3A+How+to+debug+HTTP+while+using+urllib2&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F27%2Fpython-how-to-debug-http-while-using-urllib2%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Python%3A+How+to+debug+HTTP+while+using+urllib2&amp;u=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F27%2Fpython-how-to-debug-http-while-using-urllib2%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Python%3A+How+to+debug+HTTP+while+using+urllib2&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F27%2Fpython-how-to-debug-http-while-using-urllib2%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Python%3A+How+to+debug+HTTP+while+using+urllib2&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F27%2Fpython-how-to-debug-http-while-using-urllib2%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Python%3A+How+to+debug+HTTP+while+using+urllib2&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F27%2Fpython-how-to-debug-http-while-using-urllib2%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F27%2Fpython-how-to-debug-http-while-using-urllib2%2F&amp;title=Python%3A+How+to+debug+HTTP+while+using+urllib2&amp;summary=&amp;source="><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F27%2Fpython-how-to-debug-http-while-using-urllib2%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F27%2Fpython-how-to-debug-http-while-using-urllib2%2F&amp;title=Python%3A+How+to+debug+HTTP+while+using+urllib2"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.gubatron.com/blog/2007/07/27/python-how-to-debug-http-while-using-urllib2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to update the location of your subversion Repo without checking out again everything</title>
		<link>http://www.gubatron.com/blog/2007/07/10/how-to-update-the-location-of-your-subversion-repo-without-checking-out-again-everything/</link>
		<comments>http://www.gubatron.com/blog/2007/07/10/how-to-update-the-location-of-your-subversion-repo-without-checking-out-again-everything/#comments</comments>
		<pubDate>Wed, 11 Jul 2007 02:47:56 +0000</pubDate>
		<dc:creator>gubatron</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Geeklife]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.gubatron.com/blog/2007/07/10/how-to-update-the-location-of-your-subversion-repo-without-checking-out-again-everything/</guid>
		<description><![CDATA[So you checked out code from a place, and whoever runs your subversion server decided to change the URL, or decided to switch from http:// to https:// or to svn+ssh:// &#8230; If you&#8217;re a noob, you&#8217;ll probably just checkout everything again.
Next time this happens just use svn switch
Here&#8217;s an example of real life when sourceforge [...]]]></description>
			<content:encoded><![CDATA[<p>So you checked out code from a place, and whoever runs your subversion server decided to change the URL, or decided to switch from http:// to https:// or to svn+ssh:// &#8230; If you&#8217;re a noob, you&#8217;ll probably just checkout everything again.</p>
<p>Next time this happens just use <strong>svn switch</strong></p>
<p>Here&#8217;s an example of real life when sourceforge updated the urls of their svn repos, this is what I had to do:</p>
<pre>
svn switch --relocate 

https://svn.sourceforge.net/svnroot/frostwire/trunk

http://frostwire.svn.sourceforge.net/svnroot/frostwire/trunk
</pre>
<p>* That command is supposed to be all in one line of course, its written like that for formatting purposes of this blog.</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://twitter.com/home?status=How+to+...+http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F10%2Fhow-to-update-the-location-of-your-subversion-repo-without-checking-out-again-everything%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F10%2Fhow-to-update-the-location-of-your-subversion-repo-without-checking-out-again-everything%2F&amp;title=How+to+update+the+location+of+your+subversion+Repo+without+checking+out+again+everything"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F10%2Fhow-to-update-the-location-of-your-subversion-repo-without-checking-out-again-everything%2F&amp;title=How+to+update+the+location+of+your+subversion+Repo+without+checking+out+again+everything"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F10%2Fhow-to-update-the-location-of-your-subversion-repo-without-checking-out-again-everything%2F&amp;title=How+to+update+the+location+of+your+subversion+Repo+without+checking+out+again+everything"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F10%2Fhow-to-update-the-location-of-your-subversion-repo-without-checking-out-again-everything%2F&amp;headline=How+to+update+the+location+of+your+subversion+Repo+without+checking+out+again+everything"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=How+to+update+the+location+of+your+subversion+Repo+without+checking+out+again+everything&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F10%2Fhow-to-update-the-location-of-your-subversion-repo-without-checking-out-again-everything%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=How+to+update+the+location+of+your+subversion+Repo+without+checking+out+again+everything&amp;u=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F10%2Fhow-to-update-the-location-of-your-subversion-repo-without-checking-out-again-everything%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=How+to+update+the+location+of+your+subversion+Repo+without+checking+out+again+everything&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F10%2Fhow-to-update-the-location-of-your-subversion-repo-without-checking-out-again-everything%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=How+to+update+the+location+of+your+subversion+Repo+without+checking+out+again+everything&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F10%2Fhow-to-update-the-location-of-your-subversion-repo-without-checking-out-again-everything%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=How+to+update+the+location+of+your+subversion+Repo+without+checking+out+again+everything&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F10%2Fhow-to-update-the-location-of-your-subversion-repo-without-checking-out-again-everything%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F10%2Fhow-to-update-the-location-of-your-subversion-repo-without-checking-out-again-everything%2F&amp;title=How+to+update+the+location+of+your+subversion+Repo+without+checking+out+again+everything&amp;summary=&amp;source="><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F10%2Fhow-to-update-the-location-of-your-subversion-repo-without-checking-out-again-everything%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F07%2F10%2Fhow-to-update-the-location-of-your-subversion-repo-without-checking-out-again-everything%2F&amp;title=How+to+update+the+location+of+your+subversion+Repo+without+checking+out+again+everything"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.gubatron.com/blog/2007/07/10/how-to-update-the-location-of-your-subversion-repo-without-checking-out-again-everything/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Trabaja como desarrollador de software en New York</title>
		<link>http://www.gubatron.com/blog/2007/06/06/trabaja-como-desarrollador-de-software-en-new-york/</link>
		<comments>http://www.gubatron.com/blog/2007/06/06/trabaja-como-desarrollador-de-software-en-new-york/#comments</comments>
		<pubDate>Wed, 06 Jun 2007 12:39:38 +0000</pubDate>
		<dc:creator>gubatron</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Geeklife]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[New York City Life]]></category>

		<guid isPermaLink="false">http://www.gubatron.com/blog/2007/06/06/trabaja-como-desarrollador-de-software-en-new-york/</guid>
		<description><![CDATA[Todas las semanas me llegan multiples correos de reclutadores ofertando excelentes posiciones en New York y zonas cercanas.
En muchos de los casos me llaman por telefono, y me preguntan si conozco personas que pueden llenar esas posiciones, mi respuesta es &#8220;No, but I know a lot of talent in South America, if your company can [...]]]></description>
			<content:encoded><![CDATA[<p>Todas las semanas me llegan multiples correos de reclutadores ofertando excelentes posiciones en New York y zonas cercanas.<br />
En muchos de los casos me llaman por telefono, y me preguntan si conozco personas que pueden llenar esas posiciones, mi respuesta es &#8220;No, but I know a lot of talent in South America, if your company can sponsor H1b then I can give you talent&#8221;</p>
<p><img src="http://farm1.static.flickr.com/230/510472682_9b514dd656.jpg?v=0"/></p>
<p>Supongo que en Venezuela y otros paises como Colombia, Chile, Mexico, Peru, etc. hay mucho talento mal pagado, esclavizado por menos de $1000 al mes, creo que si estas leyendo esto y quieres aprovechar tu talento al maximo, deberias empezar por unirte a la lista de correos que he creado, donde todas las semanas envio las descripciones de las oportunidades e informacion de contacto.</p>
<p>La lista de correos te servira ademas para ver que competencias debes pulir o aprender si quieres venir a USA, mas especificamente a New York a trabajar como desarrollador. Con 1 o 2 anos de experiencia puedes aspirar sueldos que empiezan por $50mil al ano, el limite del sueldo depende de lo pilas que seas, pero ya con unos 3 anos de experiencia aqui, estaras rondando facilmente los $100mil anuales o mas, todo depende la dificultad de lo que desees hacer. Se que si te metes en el area de finanzas (que es lo que mas se consigue aqui en NY), programando en lenguajes como C++ (multihilos), o en J2EE las pagas llegan facilmente a los $150k anuales. De todos modos hay muchas oportunidades para otras tecnologias mas suaves y practicas como Python, Ruby, PHP, y por supuesto para otras no tan practicas como .NET ;)</p>
<p>Aqui la direccion del grupo<br />
<a href="http://groups.google.com/group/nycsoftwarejobs">http://groups.google.com/group/nycsoftwarejobs</a></p>
<p>Solo unete y empezaras a recibir los mensajes, supongo que tambien puedes suscribirte al feed RSS.</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://twitter.com/home?status=Trabaja+como+desarrollador+de+software+en+New...+http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F06%2F06%2Ftrabaja-como-desarrollador-de-software-en-new-york%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F06%2F06%2Ftrabaja-como-desarrollador-de-software-en-new-york%2F&amp;title=Trabaja+como+desarrollador+de+software+en+New+York"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F06%2F06%2Ftrabaja-como-desarrollador-de-software-en-new-york%2F&amp;title=Trabaja+como+desarrollador+de+software+en+New+York"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F06%2F06%2Ftrabaja-como-desarrollador-de-software-en-new-york%2F&amp;title=Trabaja+como+desarrollador+de+software+en+New+York"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F06%2F06%2Ftrabaja-como-desarrollador-de-software-en-new-york%2F&amp;headline=Trabaja+como+desarrollador+de+software+en+New+York"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Trabaja+como+desarrollador+de+software+en+New+York&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F06%2F06%2Ftrabaja-como-desarrollador-de-software-en-new-york%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Trabaja+como+desarrollador+de+software+en+New+York&amp;u=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F06%2F06%2Ftrabaja-como-desarrollador-de-software-en-new-york%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Trabaja+como+desarrollador+de+software+en+New+York&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F06%2F06%2Ftrabaja-como-desarrollador-de-software-en-new-york%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Trabaja+como+desarrollador+de+software+en+New+York&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F06%2F06%2Ftrabaja-como-desarrollador-de-software-en-new-york%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Trabaja+como+desarrollador+de+software+en+New+York&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F06%2F06%2Ftrabaja-como-desarrollador-de-software-en-new-york%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F06%2F06%2Ftrabaja-como-desarrollador-de-software-en-new-york%2F&amp;title=Trabaja+como+desarrollador+de+software+en+New+York&amp;summary=&amp;source="><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F06%2F06%2Ftrabaja-como-desarrollador-de-software-en-new-york%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F06%2F06%2Ftrabaja-como-desarrollador-de-software-en-new-york%2F&amp;title=Trabaja+como+desarrollador+de+software+en+New+York"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.gubatron.com/blog/2007/06/06/trabaja-como-desarrollador-de-software-en-new-york/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>How to update file timestamps in Python</title>
		<link>http://www.gubatron.com/blog/2007/05/29/how-to-update-file-timestamps-in-python/</link>
		<comments>http://www.gubatron.com/blog/2007/05/29/how-to-update-file-timestamps-in-python/#comments</comments>
		<pubDate>Wed, 30 May 2007 01:06:30 +0000</pubDate>
		<dc:creator>gubatron</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Geeklife]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.gubatron.com/blog/2007/05/29/how-to-update-file-timestamps-in-python/</guid>
		<description><![CDATA[Sometimes you can be real picky like me about timestamps of files, for example, during my wedding we had a few digital cameras, and one of the cameras had its internal clock 4 hours behind. So what better way for a lazy guy like you to change timestamps than writing a short python script to [...]]]></description>
			<content:encoded><![CDATA[<p>Sometimes you can be real picky like me about timestamps of files, for example, during my wedding we had a few digital cameras, and one of the cameras had its internal clock 4 hours behind. So what better way for a lazy guy like you to change timestamps than writing a short python script to fix the problem.</p>
<p><img src="http://farm1.static.flickr.com/199/510507306_179804ba0b.jpg?v=0"/></p>
<p>I wrote this script on the same folder where the pictures with the lagged modification times existed:</p>
<pre>
import os
import time
from stat import *

#returns a list of all the files on the current directory
files = os.listdir('.')

for f in files:
  #my folder has some jpegs and raw images
  if f.lower().endswith('jpg') or f.lower().endswith('crw'):
    st = os.stat(f)
    atime = st[ST_ATIME] #access time
    mtime = st[ST_MTIME] #modification time

    new_mtime = mtime + (4*3600) #new modification time

    #modify the file timestamp
    os.utime(f,(atime,new_mtime))
</pre>
<p>Very nice, I like</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://twitter.com/home?status=How+to+update+file+timestamps+in+Python+http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F29%2Fhow-to-update-file-timestamps-in-python%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F29%2Fhow-to-update-file-timestamps-in-python%2F&amp;title=How+to+update+file+timestamps+in+Python"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F29%2Fhow-to-update-file-timestamps-in-python%2F&amp;title=How+to+update+file+timestamps+in+Python"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F29%2Fhow-to-update-file-timestamps-in-python%2F&amp;title=How+to+update+file+timestamps+in+Python"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F29%2Fhow-to-update-file-timestamps-in-python%2F&amp;headline=How+to+update+file+timestamps+in+Python"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=How+to+update+file+timestamps+in+Python&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F29%2Fhow-to-update-file-timestamps-in-python%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=How+to+update+file+timestamps+in+Python&amp;u=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F29%2Fhow-to-update-file-timestamps-in-python%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=How+to+update+file+timestamps+in+Python&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F29%2Fhow-to-update-file-timestamps-in-python%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=How+to+update+file+timestamps+in+Python&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F29%2Fhow-to-update-file-timestamps-in-python%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=How+to+update+file+timestamps+in+Python&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F29%2Fhow-to-update-file-timestamps-in-python%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F29%2Fhow-to-update-file-timestamps-in-python%2F&amp;title=How+to+update+file+timestamps+in+Python&amp;summary=&amp;source="><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F29%2Fhow-to-update-file-timestamps-in-python%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F29%2Fhow-to-update-file-timestamps-in-python%2F&amp;title=How+to+update+file+timestamps+in+Python"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.gubatron.com/blog/2007/05/29/how-to-update-file-timestamps-in-python/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Recordando algoritmos, Quicksort</title>
		<link>http://www.gubatron.com/blog/2007/05/17/recordando-algoritmos-quicksort/</link>
		<comments>http://www.gubatron.com/blog/2007/05/17/recordando-algoritmos-quicksort/#comments</comments>
		<pubDate>Thu, 17 May 2007 17:36:27 +0000</pubDate>
		<dc:creator>gubatron</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Geeklife]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.gubatron.com/blog/2007/05/17/recordando-algoritmos-quicksort/</guid>
		<description><![CDATA[Leyendo no se que en internet, lei mencionar algo sobre preguntas de entrevistas de trabajo, y mencionaron que siempre es bueno saber como funciona Quicksort. Por algun motivo, el algoritmo de ordenamiento que siempre recuerdo es Bubble sort, pero todos sabemos que no es el mejor. So decidi repasar y leer como funciona quicksort.
Para los [...]]]></description>
			<content:encoded><![CDATA[<p>Leyendo no se que en internet, lei mencionar algo sobre preguntas de entrevistas de trabajo, y mencionaron que siempre es bueno saber como funciona Quicksort. Por algun motivo, el algoritmo de ordenamiento que siempre recuerdo es Bubble sort, pero todos sabemos que no es el mejor. So decidi repasar y <a href="http://en.wikipedia.org/wiki/Quicksort">leer como funciona quicksort</a>.</p>
<p>Para los que no recuerdan quicksort es simplemente hacer 3 listas con la lista principal [PRINCIPAL]. Estas listas se generan bajo un criterio bien sencillo. Elige un numero cualquiera del arreglo, la primera lista tendra todos los numeros menores a ese numero [MENORES]. La segunda lista tendra todos los numeros que sean de igual valor a ese numero [IGUALES], y la tercera los mayores [MAYORES].</p>
<p>Una vez que tienes estas 3 listas, el resultado de Quicksort es el siquiente (Donde ++ es concatenar una lista):</p>
<blockquote><p>Quicksort([MENORES]) ++ [IGUALES] ++ Quicksort([MAYORES])</p></blockquote>
<p>Como veras, el algoritmo es recursivo, y llegara el momento que no encuentres numeros menores, iguales o mayores, asi que cuando Quicksort recibe una lista de un solo elemento, devuelve ese elemento.</p>
<p>En python esto sale en 4 lineas con list comprehension, literalmente:</p>
<pre>
def qs(lista):
   if len(lista) <= 1: return lista
   p = lista[0] #el pivote
   return qs([x for x in lista if x < p]) + [x for x in lista if x == p] + qs([x for x in lista if x > p])
</pre>
<p>Pudieras aplicar este algoritmo a cualquier tipo de objeto en Python si para ese objeto defines las funciones de comparacion.<br />
Demasiado arrecho, viva python.</p>
<p>PS: Despues de escribir esto, encontre una implementacion aun mas corta, en la que no utilizan list comprehension, utilizan<br />
funciones lambda, en vez de hacer [x for x in lista if x < pivote] hacen  filter(lambda x,y=pivote: x < y,lista), eso devuelve los elementos que cumplen con la funcion lambda en la lista, es decir   filter(funcion, lista)</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://twitter.com/home?status=Recordando+algoritmos%2C+Quicksort+http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F17%2Frecordando-algoritmos-quicksort%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F17%2Frecordando-algoritmos-quicksort%2F&amp;title=Recordando+algoritmos%2C+Quicksort"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F17%2Frecordando-algoritmos-quicksort%2F&amp;title=Recordando+algoritmos%2C+Quicksort"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F17%2Frecordando-algoritmos-quicksort%2F&amp;title=Recordando+algoritmos%2C+Quicksort"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F17%2Frecordando-algoritmos-quicksort%2F&amp;headline=Recordando+algoritmos%2C+Quicksort"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Recordando+algoritmos%2C+Quicksort&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F17%2Frecordando-algoritmos-quicksort%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Recordando+algoritmos%2C+Quicksort&amp;u=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F17%2Frecordando-algoritmos-quicksort%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Recordando+algoritmos%2C+Quicksort&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F17%2Frecordando-algoritmos-quicksort%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Recordando+algoritmos%2C+Quicksort&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F17%2Frecordando-algoritmos-quicksort%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Recordando+algoritmos%2C+Quicksort&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F17%2Frecordando-algoritmos-quicksort%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F17%2Frecordando-algoritmos-quicksort%2F&amp;title=Recordando+algoritmos%2C+Quicksort&amp;summary=&amp;source="><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F17%2Frecordando-algoritmos-quicksort%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F17%2Frecordando-algoritmos-quicksort%2F&amp;title=Recordando+algoritmos%2C+Quicksort"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.gubatron.com/blog/2007/05/17/recordando-algoritmos-quicksort/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ejemplo de automatizacion entre 2 maquinas remotas con bash scripting y Python</title>
		<link>http://www.gubatron.com/blog/2007/05/10/ejemplo-de-automatizacion-entre-2-maquinas-remotas-con-bash-scripting-y-python/</link>
		<comments>http://www.gubatron.com/blog/2007/05/10/ejemplo-de-automatizacion-entre-2-maquinas-remotas-con-bash-scripting-y-python/#comments</comments>
		<pubDate>Thu, 10 May 2007 14:24:55 +0000</pubDate>
		<dc:creator>gubatron</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Geeklife]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac OSX]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.gubatron.com/blog/2007/05/10/ejemplo-de-automatizacion-entre-2-maquinas-remotas-con-bash-scripting-y-python/</guid>
		<description><![CDATA[Para los amigos que se inician en el mundo *nix, ya sea con su nueva Mac, o con una PC corriendo Linux,
les recomiendo que aprendan a manejar bien los siguientes lenguajes, y el mundo sera suyo:
- bash scripting (aliases, variables, exports, iteraciones, condicionales)
- python (para programar logica mas compleja y portatil en cualquier sistema operativo)
- [...]]]></description>
			<content:encoded><![CDATA[<p>Para los amigos que se inician en el mundo *nix, ya sea con su nueva Mac, o con una PC corriendo Linux,<br />
les recomiendo que aprendan a manejar bien los siguientes lenguajes, y el mundo sera suyo:</p>
<p>- <strong>bash scripting</strong> (aliases, variables, exports, iteraciones, condicionales)<br />
- <strong>python</strong> (para programar logica mas compleja y portatil en cualquier sistema operativo)<br />
- Uso de comandos como grep, egrep, awk (editor de streams) entre otros<br />
- Expresiones regulares</p>
<p>En wedoit4you.com hicimos un simple script que va logeando visitas desde los blogs registrados.<br />
Los blogeros ponen un pedacito de javascript, que al ser invocado, escribe una entrada en un log en el servidor.</p>
<p>Luego tenemos un script que analiza ese log, elimina cualquier intento de hacer muchos clicks, etc. etc.<br />
Ese script se encarga luego de hacer matching de las URLs entrantes, con las URLs de los posts que wedoit4you.com<br />
ya leyo. Este script lamentablemente tarda mucho en analizar mas de 150mb de data, mas lo que haya en el log,<br />
y Dreamhost lo mata si dura mas de un minuto, o si hay mas de N procesos corriendo.</p>
<p>Que hacemos entonces?</p>
<p>Ponemos ese script en una maquina local, donde tenemos todo el cpu, y hacemos que el servidor a ciertas horas<br />
del dia, haga un mysqldump de las tablas que me interesan (BLOGS, BLOG_POSTS, POST_HITS) y meta eso en un archivo<br />
disponible via HTTP.</p>
<p><code><br />
#!/bin/bash<br />
DUMP_DIR=/home/cuenta_en_server/sitio.com/temp/<br />
SQL_FILE_NAME=clicktrackr_dump.sql<br />
SQL_FILE=${DUMP_DIR}/${SQL_FILE_NAME}<br />
TGZ_FILE=${SQL_FILE_FNAME}.tar.gz<br />
mysqldump bd_en_servidor BLOGS BLOG_POSTS POST_HITS > ${SQL_FILE}<br />
cd ${DUMP_DIR}<br />
pwd<br />
echo Making tar<br />
tar cfz ${TGZ_FILE} ${SQL_FILE}<br />
echo Tar with SQL dump ready to be downloaded.<br />
echo Finished.<br />
</code></p>
<p>Este script corre digamos a las 4am en el servidor.</p>
<p><strong>Luego desde la casa</strong><br />
Luego en la maquina local corre un cronjob a las 4:30am, En mi caso una apple iMac Intel, y he aqui el poder de tener una Mac basada en Unix, y no la cagada de windows de mierda.</p>
<p>Hice sencillo bash script que se baja ese dump de la base de datos, y se baja el log del clickTracker para hacer los calculos en mi cpu,<br />
(con el cual hago lo que me da la gana), los calculos son realizados con un script en python (click_tracker.py, incluido al final)<br />
y una vez que termina de calcular, hace ftp de vuelta hacia el servidor y sube un archivo SQL<br />
con instrucciones SQL para que se actualizen los hits de los posts. Este archivo de lolas que no lo subo a un directorio disponible en apache<br />
pq alguien podria meterse con el y alterarnos los hits&#8230; Este Script local luce asi:</p>
<p><code><br />
#!/bin/bash<br />
rm /Users/gubatron/clicktrackr/*.tar.gz<br />
rm /Users/gubatron/clicktrackr/*.sql<br />
rm /Users/gubatron/clicktrackr/*.dat<br />
rm /Users/gubatron/clicktrackr/*.log<br />
echo "Downloading dump from server..."<br />
wget http://www.wedoit4you.com/dir_del_dump/clicktrackr_dump.sql.tar.gz -O /Users/gubatron/clicktrackr/clicktrackr_dump.sql.tar.gz<br />
cd /Users/gubatron/clicktrackr/<br />
echo "Uncompressing Dump..."<br />
tar xfz clicktrackr_dump.sql.tar.gz<br />
echo "Loading data in MySQL"<br />
mysql --user=usuario --password=password --database=bd_local < clicktrackr_dump.sql<br />
echo "Downloading latest tracker.log"<br />
wget http://www.wedoit4you.com/xxxxxxxxx/logs/tracker.log -O /Users/gubatron/clicktrackr/tracker.log<br />
echo "Crunching Data with python script"<br />
python click_tracker.py<br />
echo "Compressing data crunched"<br />
tar cvfz clicktrackr_update_tables.sql.tar.gz clicktrackr_update_tables.sql<br />
echo "Uploading data"<br />
#then upload tar.gz clicktrackr_update_tables.sql<br />
ftp -u ftp://usuario:password@wedoit4you.com/directorioNoAccesiblePorApache/ clicktrackr_update_tables.sql.tar.gz<br />
echo "Finished"<br />
</code></p>
<p>La salida de este script cuando se ejecuta es similar ea esto<br />
<code><br />
imac:~ gubatron$ clicktrackr_processing<br />
Downloading dump from server...<br />
--09:45:14--  http://www.wedoit4you.com/xxxxxxx/clicktrackr_dump.sql.tar.gz<br />
           => `/Users/gubatron/clicktrackr/clicktrackr_dump.sql.tar.gz'<br />
Resolving www.wedoit4you.com... 208.113.146.143<br />
Connecting to www.wedoit4you.com|208.113.146.143|:80... connected.<br />
HTTP request sent, awaiting response... 200 OK<br />
Length: 41,227,814 [application/x-tar]</p>
<p>100%[====================================&gt;] 41,227,814    86.84K/s    ETA 00:00</p>
<p>09:53:18 (83.35 KB/s) - `/Users/gubatron/clicktrackr/clicktrackr_dump.sql.tar.gz' saved [41227814/41227814]</p>
<p>Uncompressing Dump...<br />
Loading data in MySQL<br />
/Users/gubatron/bin/clicktrackr_processing: line 12: clicktrackr_dump.sql: No such file or directory<br />
Downloading latest tracker.log<br />
--09:53:20--  http://www.wedoit4you.com/xxxxxxxxxxxxxx/tracker.log<br />
           =&gt; `/Users/gubatron/clicktrackr/tracker.log'<br />
Resolving www.wedoit4you.com... 208.113.146.143<br />
Connecting to www.wedoit4you.com|208.113.146.143|:80... connected.<br />
HTTP request sent, awaiting response... 200 OK<br />
Length: 3,220 [text/plain]</p>
<p>100%[====================================&gt;] 3,220         --.--K/s             </p>
<p>09:53:23 (33.72 KB/s) - `/Users/gubatron/clicktrackr/tracker.log' saved [3220/3220]</p>
<p>Crunching Data with python script<br />
/Users/gubatron/clicktrackr<br />
No timestamp from last time found.<br />
Loading data from ClickTrackr log...<br />
Saving ClickTrackr data to File...<br />
Saving completed.<br />
Loading Blogs and Last Posts from DB<br />
Saving Blogs to File...<br />
Saving completed.<br />
Loading Posts from DB...<br />
Saving Posts from DB on file<br />
Saving completed.<br />
Crunching data...<br />
0 converted from blog to last post<br />
Didnt find total 11 urls.<br />
Didn't find distinct 11 urls.<br />
Saving crunched data...<br />
Data saved.<br />
Writing SQL...<br />
Finished Writing SQL<br />
Wrote last timestamp.<br />
Compressing data crunched<br />
clicktrackr_update_tables.sql -&gt; clicktrackr_update_tables.sql.tar.gz<br />
Uploading data<br />
Connected to wedoit4you.com.<br />
220 ProFTPD 1.3.0rc2 Server (DreamHost FTP) [208.113.146.143]<br />
331 Password required for wedoit4y.<br />
230 User wedoit4y logged in.<br />
Remote system type is UNIX.<br />
Using binary mode to transfer files.<br />
200 Type set to I<br />
250 CWD command successful<br />
local: clicktrackr_update_tables.sql.tar.gz remote: clicktrackr_update_tables.sql.tar.gz<br />
229 Entering Extended Passive Mode (|||57539|)<br />
150 Opening BINARY mode data connection for clicktrackr_update_tables.sql.tar.gz<br />
100% |*************************************|   550 KB  155.72 KB/s    00:03<br />
226 Transfer complete.<br />
563661 bytes sent in 00:03 (143.48 KB/s)<br />
Finished<br />
</code></p>
<p>Una vez que la data fue procesada y FTPeada al servidor, hay otro cronjob que corre una hora mas<br />
tarde, y este asume que el nuevo archivo con la data procesada estara ahi, podriamos agregarle mas<br />
checks, utilizando "stat" y anotando el ultimo timestamp del sql utlizado la vez anterior cosa que no<br />
volvamos a anotar los hits del dia anterior...</p>
<p>Asi luce el script para actualizar finalmente en el servidor:</p>
<p><code><br />
#!/bin/bash<br />
DIR_PRIVADO=/home/usuario/dirPrivado<br />
PATH_DEL_TRACKER_LOG=/home/usuario/algunaCarpeta/tracker.log<br />
cd ${DIR_PRIVADO}<br />
rm *.sql<br />
tar xvfz clicktrackr_update_tables.sql.tar.gz<br />
mysql bd_en_servidor < ${DIR_PRIVADO}/clicktrackr_update_tables.sql<br />
rm *.tar.gz<br />
rm *.sql<br />
rm<br />
touch ${PATH_DEL_TRACKER_LOG}<br />
chmod 777 ${PATH_DEL_TRACKER_LOG}<br />
</code></p>
<p>Si tienes curiosidad de ver como cruncheo la data localmente, aqui esta el codigo en python.<br />
(Es aun un trabajo en progreso)<br />
<code>
<pre>
#!/home/wedoit4y/bin/python/bin/python2.5
# This is the script that processes the ClickTrackr Log
import os
import sys
import pickle
import time

#NAMES OF FILES WHERE WE'LL STORE THE DIFFERENT STAGES OF RETRIEVED
#AND PROCESSED DATA.

#File that holds a dictionary with URLs and HITs we got from the original log file
FILE_MAX_AGE=3600*1
FILE_TIMESTAMP="clicktrackr_last_timestamp.dat"
FILE_001="clicktrackr_001_url_hits.dat"
FILE_002="clicktrackr_002_blogs_lastposts.dat"
FILE_003="clicktrackr_003_posts_hits.dat"
FILE_004="clicktrackr_004_processed_hits.dat" #...and urls not found
FILE_SQL="clicktrackr_update_tables.sql"

try:
    import snowrss_config
    from snowrss_config import getDbCursor
    #from snowrss import *
except Exception,e:
    print "Could not import snowrss_config [%s]" % e
    sys.exit()

def dbExec(sql):
    """Give it some SQL and it will return the returning cursor"""
    try:
        cursor = getDbCursor()
        cursor.execute(sql)
        cursor.connection.close()
    except Exception, e:
        #MySQL has gone away
        print 'dbExec(%s): ' % unicode(sql)
        print e
        return None
    return cursor

def isFileFresh(fileName):
    """
    Returns True if the file is still good to be used.
    Othewise returns false
    """
    try:
        file_stat = os.stat(fileName)
        file_age = time.time() - file_stat.st_mtime
        if file_age > FILE_MAX_AGE:
            return False
        return True
    except:
        return False

def getData(line):
    """Returns a dict with, IP, Timestamp, URL and User Agent if found

    Parameters
        line - A Line with a ClickTracker log entry

    Output
        {'ip':...,'timestamp':...,'url':....,'ua':...}
        ip-> IP Addres
        time -> Time of the event
        url -> Referer Url
        ua -> User Agent of the rerferer user
    """
    l = line.split()
    result = {}
    result['ip']=l[0]
    result['time']=l[1]
    result['url']=l[2]

    result['ua']='N/A'
    if len(l)>3:
        rest = l[3:]
        ua_name = ''
        for b in rest:
            ua_name = ua_name + ' ' + b
        result['ua'] = ua_name

    return result

#Maximum time to count a click from the same IP on the same URL
TIME_BETWEEN_CLICKS = 12*3600

#On the last run (if finished, we write down the time of the last timestamp on file)
#If we did finish a run, we'll get this number from the timestamp file, and we'll ignore
#all previous log entries to that timestamp.
LAST_TIMESTAMP = None
POSSIBLE_LAST_TIMESTAMP = None

try:
    f = fopen(FILE_TIMESTAMP,"rb")
    LAST_TIMESTAMP = pickle.load(f)
    LAST_TIMESTAMP = long(LAST_TIMESTAMP)
    f.close()
except:
    print "No timestamp from last time found."

urls = {}
urls_not_found = {}
LOG_CLICK_TRACKER='tracker.log'

#check if there is a version of the log file backed that's still good enough to be used.
USABLE_LOG_FILE = LOG_CLICK_TRACKER

#use a copy of the log if we got some pickled data
if isFileFresh(LOG_CLICK_TRACKER + '.last') and isFileFresh(FILE_001):
    USABLE_LOG_FILE = LOG_CLICK_TRACKER + ".last"

IGNORED_ENTRIES = 0
if not isFileFresh(FILE_001):

    #open the tracker log (current or old)
    print "Loading data from ClickTrackr log..."
    f = open(USABLE_LOG_FILE,'r')

    f.seek(0,2)
    eof = f.tell()
    f.seek(0)

    while f.tell() < eof:
        entry = getData(f.readline())

        url = entry['url']
        ip = entry['ip']
        timestamp = entry['time']

        if LAST_TIMESTAMP is not None and long(timestamp) < LAST_TIMESTAMP:
            print "i",
            IGNORED_ENTRIES += 1
            continue

        POSSIBLE_LAST_TIMESTAMP = long(timestamp)

        if not url.startswith('http') or \
           url.startswith('http://babelfish.altavista.com') or \
           url.startswith('http://6'):
            #IGNORED_ENTRIES += 1
            continue

        #Ask if this URL is already there
        if urls.has_key(url):
            #Ask if this IP is already there
            if urls[url].has_key(ip):
                #Get the last time stamp inside this IP
                times = urls[url][ip]
                last_time = times[len(times)-1]
                delta_time = long(timestamp) - long(last_time)
                #If its been more than acceptable time
                if delta_time >= TIME_BETWEEN_CLICKS:
                    urls[url][ip].append(timestamp)

                    hits = 0
                    for ipbuffer in urls[url]:
                        if ipbuffer == 'hits': #just count the keys that are not 'hits'
                            continue
                        hits += len(urls[url][ipbuffer])

                    urls[url]['hits'] = hits
            else:
                urls[url][ip] = [timestamp]
                urls[url]['hits'] = 1
        else:
            urls[url]={}
            urls[url][ip] = [timestamp]
            urls[url]['hits']=1
    f.close()

    urls['POSSIBLE_LAST_TIMESTAMP'] = POSSIBLE_LAST_TIMESTAMP

    #we serialize this data for later
    if IGNORED_ENTRIES > 0:
        print "Ignored %d entries." % IGNORED_ENTRIES

    print "Saving ClickTrackr data to File..."
    f = file(FILE_001,"wb")
    pickle.dump(urls,f)
    f.close()
    print "Saving completed."

    #we make a backup of the current ClickTrackr log (.last), in case we need to run again
    #we can diff with this to know from where to relog in the future
    os.system("cp %s %s" % (LOG_CLICK_TRACKER,LOG_CLICK_TRACKER + ".last"))
else:
    #we unserialize the data
    print "Loading ClickTrackr data from existing file..."
    f = file(FILE_001,"rb")
    urls = pickle.load(f)
    f.close()
    POSSIBLE_LAST_TIMESTAMP = urls.pop('POSSIBLE_LAST_TIMESTAMP') #we popup so we have only urls and we dont modify further down
    print "Loading completed."

#LOAD ALL BLOG POST URLS, IDS AND CURRENT NUMBER OF HITS.
blog_urls = {} #blogs hashed by their urls, Buckets have {'post_id':<last_post_id>,'post_link':<last_post_link>}
blog_ids = {} #blogs hashed by their ids, Buckets have {'post_id':<last_post_id>,'post_link':<last_post_link>}
if not isFileFresh(FILE_002):
    print "Loading Blogs and Last Posts from DB"
    sql = "SELECT Blog_pk_id, Blog_url FROM BLOGS WHERE Blog_active=1;"
    cursor = dbExec(sql)
    results = cursor.fetchall()

    for r in results:
        #Get the ID of the last post on each blog"
        sql = u"SELECT BP_pk_id,BP_link FROM BLOG_POSTS WHERE BP_fk_blog_id = %d ORDER BY BP_pk_id DESC LIMIT 1" % (r['Blog_pk_id']);
        cursor = dbExec(sql)
        last_post = cursor.fetchone()

        if last_post:
            blog_urls[r['Blog_url']] = {'post_id':last_post['BP_pk_id'],'post_link':last_post['BP_link']}
            blog_ids[r['Blog_pk_id']] = {'post_id':last_post['BP_pk_id'],'post_link':last_post['BP_link']}

    #serialize blog_urls and blog_ids
    print "Saving Blogs to File..."
    f = file(FILE_002,"wb")
    pickle.dump(blog_urls,f)
    pickle.dump(blog_ids,f)
    f.close()
    print "Saving completed."
else:
    #load blog_urls from serialized data
    print "Loading Blogs and Last Posts from File..."
    f = file(FILE_002,"rb")
    blog_urls = pickle.load(f)
    blog_ids = pickle.load(f)
    f.close()
    print "Loading completed."

#LOAD ALL BLOG_POSTS URL AND ITS HITS
post_hits = {} #posts hashed by url, Buckets have (post_id, post_hits, blog_id)
if not isFileFresh(FILE_003):
    print "Loading Posts from DB..."
    sql = "SELECT SQL_CACHE BP_link, BP_pk_id, BP_fk_blog_id, PH_hits "
    sql += "FROM BLOG_POSTS LEFT JOIN POST_HITS ON BP_pk_id = PH_fk_post_id;"
    cursor = dbExec(sql)
    results = cursor.fetchall()

    for r in results:
        #hits might be null, if the post has never been reached on our page
        hit_count = int(r['PH_hits']) if r['PH_hits'] is not None else 0
        post_hits[r['BP_link']] = {'post_id':int(r['BP_pk_id']),
                                   'post_hits':hit_count,
                                   'blog_id':r['BP_fk_blog_id']}

    #now get the blog_posts
    print "Saving Posts from DB on file"
    f = file(FILE_003,"wb")
    pickle.dump(post_hits,f)
    f.close()
    print "Saving completed."
else:
    print "Loading Posts from File..."
    f = file(FILE_003,"rb")
    post_hits = pickle.load(f)
    f.close()
    print "Loading completed."

# The stars of the game are:
# - urls {<url>:{'ip':<ip>,'hits':<hits>}} //The urls and how many hits we got from the click trackr log
# - blog_urls {<url>:{'post_id':<last_post_id>,'post_link':<last_post_link>}} //urls of blogs, holding each a tuple with last post info
# - post_hits {<url>:{'post_id':
<post_id>,'post_hits':
<post_hits>,'blog_id':<blog_id>]} //urls and hit info of all posts
# - urls_not_found {'<url>':<no_times_found_in_log>}
if not isFileFresh(FILE_004):
    total_not_found = 0
    distinct_not_found = 0
    total_converted = 0

    converting_blog_url_to_post_url = False

    print "Crunching data..."
    for url in urls:
	#if the current url is the home of a blog
        #we try to see if the blog has any hits.
	if blog_urls.has_key(url):
            url = blog_urls[url]['post_link']
            converting_blog_url_to_post_url = True

        #if you find a direct match add the hits right away
        if post_hits.has_key(url):
	    new_hits = 0
	    if urls.has_key(url) and urls[url].has_key('hits'):
                new_hits = urls[url]['hits']
                if converting_blog_url_to_post_url:
                    total_converted+=1
                    print "!",

            old_hits = 0
            if post_hits[url].has_key('post_hits'):
                old_hits = post_hits[url]['post_hits']

            total_hits = new_hits + old_hits

            #finally update post_hits arrays.
            post_hits[url]['post_hits'] = total_hits
            str_a = "(%(post_id)d):%(post_hits)d:" % post_hits[url]
            str_b = "%d+%d)" % (new_hits,old_hits)
            str_c = str_a + str_b
            print str_c,
        else:
            if urls_not_found.has_key(url):
                urls_not_found[url] += 1
            else:
                urls_not_found[url]=1
                distinct_not_found +=1
            total_not_found += 1
            print "-",

    print
    print "%d converted from blog to last post" % total_converted
    print "Didnt find total %d urls." % total_not_found
    print "Didn't find distinct %d urls." % distinct_not_found

    #serialize processed data in file 4
    print "Saving crunched data..."
    f = file(FILE_004,"wb")
    pickle.dump(post_hits,f)
    pickle.dump(urls_not_found,f)
    f.close()
    print "Data saved."
else:
    print "Loading Previously Crunched Data..."
    f = file(FILE_004,"rb")
    post_hits = pickle.load(f)
    urls_not_found = pickle.load(f)
    f.close
    print "Loading completed."

    #If we can't find it on the blog posts, we could try to
    #slim the URL of this url too http://servername.com/folder
    #and look up on the blog url

    #if nothing, we slim down to http://servername.com

    #if in any of these 2 cases we find a match then
    #we add a hit on the last post of this blog

    #the output of this file should be for now a file with SQL insert statements
print len(post_hits)

#Generate SQL output from post_hits array
# - post_hits {<url>:{'post_id':
<post_id>,'post_hits':
<post_hits>,'blog_id':<blog_id>]}
print "Writing SQL..."
f = file(FILE_SQL,"wb")
for url in post_hits:
    post_id = post_hits[url]['post_id']
    hits = post_hits[url]['post_hits']
    f.writelines("UPDATE POST_HITS SET PH_hits = %d WHERE PH_fk_post_id = %d;\n" % (hits,post_id))
f.close()
print "Finished Writing SQL"

#If we make it all the way till here, we write down the new LAST_TIMESTAMP
if POSSIBLE_LAST_TIMESTAMP is not None:
    f = file(FILE_TIMESTAMP,"wb")
    pickle.dump(POSSIBLE_LAST_TIMESTAMP,f)
    f.close()
    print "Wrote last timestamp."
else:
    print "Did not write LAST timestamp."

for u in urls_not_found:
    print u
</pre>
<p></code></p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://twitter.com/home?status=Ejemplo+de+automa...+http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F10%2Fejemplo-de-automatizacion-entre-2-maquinas-remotas-con-bash-scripting-y-python%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F10%2Fejemplo-de-automatizacion-entre-2-maquinas-remotas-con-bash-scripting-y-python%2F&amp;title=Ejemplo+de+automatizacion+entre+2+maquinas+remotas+con+bash+scripting+y+Python"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F10%2Fejemplo-de-automatizacion-entre-2-maquinas-remotas-con-bash-scripting-y-python%2F&amp;title=Ejemplo+de+automatizacion+entre+2+maquinas+remotas+con+bash+scripting+y+Python"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F10%2Fejemplo-de-automatizacion-entre-2-maquinas-remotas-con-bash-scripting-y-python%2F&amp;title=Ejemplo+de+automatizacion+entre+2+maquinas+remotas+con+bash+scripting+y+Python"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F10%2Fejemplo-de-automatizacion-entre-2-maquinas-remotas-con-bash-scripting-y-python%2F&amp;headline=Ejemplo+de+automatizacion+entre+2+maquinas+remotas+con+bash+scripting+y+Python"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Ejemplo+de+automatizacion+entre+2+maquinas+remotas+con+bash+scripting+y+Python&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F10%2Fejemplo-de-automatizacion-entre-2-maquinas-remotas-con-bash-scripting-y-python%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Ejemplo+de+automatizacion+entre+2+maquinas+remotas+con+bash+scripting+y+Python&amp;u=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F10%2Fejemplo-de-automatizacion-entre-2-maquinas-remotas-con-bash-scripting-y-python%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Ejemplo+de+automatizacion+entre+2+maquinas+remotas+con+bash+scripting+y+Python&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F10%2Fejemplo-de-automatizacion-entre-2-maquinas-remotas-con-bash-scripting-y-python%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Ejemplo+de+automatizacion+entre+2+maquinas+remotas+con+bash+scripting+y+Python&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F10%2Fejemplo-de-automatizacion-entre-2-maquinas-remotas-con-bash-scripting-y-python%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Ejemplo+de+automatizacion+entre+2+maquinas+remotas+con+bash+scripting+y+Python&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F10%2Fejemplo-de-automatizacion-entre-2-maquinas-remotas-con-bash-scripting-y-python%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F10%2Fejemplo-de-automatizacion-entre-2-maquinas-remotas-con-bash-scripting-y-python%2F&amp;title=Ejemplo+de+automatizacion+entre+2+maquinas+remotas+con+bash+scripting+y+Python&amp;summary=&amp;source="><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F10%2Fejemplo-de-automatizacion-entre-2-maquinas-remotas-con-bash-scripting-y-python%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F10%2Fejemplo-de-automatizacion-entre-2-maquinas-remotas-con-bash-scripting-y-python%2F&amp;title=Ejemplo+de+automatizacion+entre+2+maquinas+remotas+con+bash+scripting+y+Python"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.gubatron.com/blog/2007/05/10/ejemplo-de-automatizacion-entre-2-maquinas-remotas-con-bash-scripting-y-python/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP, ordenando un arreglo de Objetos, y utilizando funciones dentro de funciones.</title>
		<link>http://www.gubatron.com/blog/2007/05/06/php-ordenando-un-arreglos-de-objectos-y-utilizando-funciones-dentro-de-funciones/</link>
		<comments>http://www.gubatron.com/blog/2007/05/06/php-ordenando-un-arreglos-de-objectos-y-utilizando-funciones-dentro-de-funciones/#comments</comments>
		<pubDate>Sun, 06 May 2007 11:10:51 +0000</pubDate>
		<dc:creator>gubatron</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Geeklife]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.gubatron.com/blog/2007/05/06/php-ordenando-un-arreglos-de-objectos-y-utilizando-funciones-dentro-de-funciones/</guid>
		<description><![CDATA[
No fue hasta que programe en Python que me habia pillado que podia definir funciones dentro de funciones en PHP. Hoy tuve que arreglar un defecto en el home de wedoit4you.com del cual algunos bloggers se estaban aprovechando para permanecer en el home. Los articulos aparecen ordenados por fecha de publicacion, y algunos estaban publicando [...]]]></description>
			<content:encoded><![CDATA[<p><center><a href="http://flickr.com/photos/gubatron/486226982/"><img src="http://farm1.static.flickr.com/194/486226982_aa65be1753_o.png" border="0"/></a></center></p>
<p>No fue hasta que programe en Python que me habia pillado que podia definir funciones dentro de funciones en PHP. Hoy tuve que arreglar un defecto en el home de wedoit4you.com del cual algunos bloggers se estaban aprovechando para permanecer en el home. Los articulos aparecen ordenados por fecha de publicacion, y algunos estaban publicando con fechas en el futuro, inclusive abusando y poniendo fechas a fin de mes.</p>
<p>So, en mi clase &#8220;BlogPost&#8221;, puse un metodo &#8220;getTimestamp()&#8221;, si la fecha interna en el objeto esta en el futuro, y no es uno de los blogs a los cuales les paso la gracia&#8230;<br />
Penalizo la fecha del post, y le resto 24 horas a la ultima hora en que se actualizo el Blog.</p>
<p>Pero esto no me resuelve por completo el problema puesto que los posts se leen direct tv de una tabla, y el query ordena por timestamp, el resultado de mi funcion &#8220;getPosts&#8221; es un arreglo de Objetos, y lo ideal era tener esos objetos ordenados dependiendo de la funcion &#8220;getTimestamp()&#8221; en cada objeto &#8220;BlogPost&#8221;</p>
<p>La foto que ven arriba muestra como utilizo la funcion &#8220;usort&#8221; para ordenar (por referencia) el arreglo resultante. La funcion recibe una referencia al arreglo de objetos, y el nombre de una funcion a la cual hacer callback al momento de comparar. La funcion de callback debe recibir 2 objetos como parametro, y luego devolver un numero que represente si el primer parametro es menor o mayor que el segundo parametro. ( < que cero si es menor, cero si son iguales, > que cero si es mayor).</p>
<p>En mi caso llame esta funcion &#8220;cmp&#8221;, pero no la defini afuera de la clase nisiquiera, la defini ahi mismo dentro de la funcion. Si ven la logica de mi funcion el resultado es alrevez puesto que quiero ordenar de manera decrescente.</p>
<p>Espero que alguien haya leido esto si necesita ordenar arreglos.</p>
<p>En cuanto al scoping de las funciones internas, no se que sucederia si hubiese otra funcion llamada igual en el path, supongo que el interprete busca primero en el stack, y encontraria la funcion definida dentro de la funcion actual. Imagino que al terminar de ejecutarse esta funcion, podria no estar diponible para mas nadie. Se que en python puedes hacer Clases dentro de clases, funciones dentro de funciones. En el caso de Clases dentro de Clases, puedes hacer.   Objeto.SubObjeto.metodo(), en el caso de funciones dentro de funciones, creo que no tiene sentido hacer algo como  Objeto.function.subFuncion(), ya que las funciones necesitan parametros, pero seria cuestion de probar a ver, quizas funciona, dado que en python todo es un objeto. Alguien que me eche el cuento para PHP.</p>
<p>(el screenshot fue tomado de emacs en el terminal de OSX Tiger)</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://twitter.com/home?status=PHP%2C+ordenando+...+http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F06%2Fphp-ordenando-un-arreglos-de-objectos-y-utilizando-funciones-dentro-de-funciones%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F06%2Fphp-ordenando-un-arreglos-de-objectos-y-utilizando-funciones-dentro-de-funciones%2F&amp;title=PHP%2C+ordenando+un+arreglo+de+Objetos%2C+y+utilizando+funciones+dentro+de+funciones."><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F06%2Fphp-ordenando-un-arreglos-de-objectos-y-utilizando-funciones-dentro-de-funciones%2F&amp;title=PHP%2C+ordenando+un+arreglo+de+Objetos%2C+y+utilizando+funciones+dentro+de+funciones."><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F06%2Fphp-ordenando-un-arreglos-de-objectos-y-utilizando-funciones-dentro-de-funciones%2F&amp;title=PHP%2C+ordenando+un+arreglo+de+Objetos%2C+y+utilizando+funciones+dentro+de+funciones."><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F06%2Fphp-ordenando-un-arreglos-de-objectos-y-utilizando-funciones-dentro-de-funciones%2F&amp;headline=PHP%2C+ordenando+un+arreglo+de+Objetos%2C+y+utilizando+funciones+dentro+de+funciones."><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=PHP%2C+ordenando+un+arreglo+de+Objetos%2C+y+utilizando+funciones+dentro+de+funciones.&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F06%2Fphp-ordenando-un-arreglos-de-objectos-y-utilizando-funciones-dentro-de-funciones%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=PHP%2C+ordenando+un+arreglo+de+Objetos%2C+y+utilizando+funciones+dentro+de+funciones.&amp;u=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F06%2Fphp-ordenando-un-arreglos-de-objectos-y-utilizando-funciones-dentro-de-funciones%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=PHP%2C+ordenando+un+arreglo+de+Objetos%2C+y+utilizando+funciones+dentro+de+funciones.&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F06%2Fphp-ordenando-un-arreglos-de-objectos-y-utilizando-funciones-dentro-de-funciones%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=PHP%2C+ordenando+un+arreglo+de+Objetos%2C+y+utilizando+funciones+dentro+de+funciones.&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F06%2Fphp-ordenando-un-arreglos-de-objectos-y-utilizando-funciones-dentro-de-funciones%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=PHP%2C+ordenando+un+arreglo+de+Objetos%2C+y+utilizando+funciones+dentro+de+funciones.&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F06%2Fphp-ordenando-un-arreglos-de-objectos-y-utilizando-funciones-dentro-de-funciones%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F06%2Fphp-ordenando-un-arreglos-de-objectos-y-utilizando-funciones-dentro-de-funciones%2F&amp;title=PHP%2C+ordenando+un+arreglo+de+Objetos%2C+y+utilizando+funciones+dentro+de+funciones.&amp;summary=&amp;source="><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F06%2Fphp-ordenando-un-arreglos-de-objectos-y-utilizando-funciones-dentro-de-funciones%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F06%2Fphp-ordenando-un-arreglos-de-objectos-y-utilizando-funciones-dentro-de-funciones%2F&amp;title=PHP%2C+ordenando+un+arreglo+de+Objetos%2C+y+utilizando+funciones+dentro+de+funciones."><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.gubatron.com/blog/2007/05/06/php-ordenando-un-arreglos-de-objectos-y-utilizando-funciones-dentro-de-funciones/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Will there be a Joost client for Linux?</title>
		<link>http://www.gubatron.com/blog/2007/05/01/will-there-be-a-joost-client-for-linux/</link>
		<comments>http://www.gubatron.com/blog/2007/05/01/will-there-be-a-joost-client-for-linux/#comments</comments>
		<pubDate>Wed, 02 May 2007 01:30:06 +0000</pubDate>
		<dc:creator>gubatron</dc:creator>
				<category><![CDATA[Geeklife]]></category>
		<category><![CDATA[Joost]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.gubatron.com/blog/2007/05/01/will-there-be-a-joost-client-for-linux/</guid>
		<description><![CDATA[&#8220;Yes, a Linux version is in the works. &#8221;
Taken from Joost Forums
]]></description>
			<content:encoded><![CDATA[<p>&#8220;Yes, a Linux version is in the works. &#8221;<br />
<a href="http://www.joost.com/support/faq/Feature-requests.html#Will-there-be-a-Joost-client-for-Linux">Taken from Joost Forums</a></p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://twitter.com/home?status=Will+there+be+a+Joost+client+for+Linux%3F+http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F01%2Fwill-there-be-a-joost-client-for-linux%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F01%2Fwill-there-be-a-joost-client-for-linux%2F&amp;title=Will+there+be+a+Joost+client+for+Linux%3F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F01%2Fwill-there-be-a-joost-client-for-linux%2F&amp;title=Will+there+be+a+Joost+client+for+Linux%3F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F01%2Fwill-there-be-a-joost-client-for-linux%2F&amp;title=Will+there+be+a+Joost+client+for+Linux%3F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F01%2Fwill-there-be-a-joost-client-for-linux%2F&amp;headline=Will+there+be+a+Joost+client+for+Linux%3F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Will+there+be+a+Joost+client+for+Linux%3F&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F01%2Fwill-there-be-a-joost-client-for-linux%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Will+there+be+a+Joost+client+for+Linux%3F&amp;u=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F01%2Fwill-there-be-a-joost-client-for-linux%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Will+there+be+a+Joost+client+for+Linux%3F&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F01%2Fwill-there-be-a-joost-client-for-linux%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Will+there+be+a+Joost+client+for+Linux%3F&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F01%2Fwill-there-be-a-joost-client-for-linux%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Will+there+be+a+Joost+client+for+Linux%3F&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F01%2Fwill-there-be-a-joost-client-for-linux%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F01%2Fwill-there-be-a-joost-client-for-linux%2F&amp;title=Will+there+be+a+Joost+client+for+Linux%3F&amp;summary=&amp;source="><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F01%2Fwill-there-be-a-joost-client-for-linux%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F05%2F01%2Fwill-there-be-a-joost-client-for-linux%2F&amp;title=Will+there+be+a+Joost+client+for+Linux%3F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.gubatron.com/blog/2007/05/01/will-there-be-a-joost-client-for-linux/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Bash Alias &#8211; &#8220;svn_diff_counter&#8221;: Count lines added and removed</title>
		<link>http://www.gubatron.com/blog/2007/04/30/bash-alias-svn_diff_counter-count-lines-added-and-removed/</link>
		<comments>http://www.gubatron.com/blog/2007/04/30/bash-alias-svn_diff_counter-count-lines-added-and-removed/#comments</comments>
		<pubDate>Mon, 30 Apr 2007 16:25:43 +0000</pubDate>
		<dc:creator>gubatron</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Geeklife]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.gubatron.com/blog/2007/04/30/bash-alias-svn_diff_counter-count-lines-added-and-removed/</guid>
		<description><![CDATA[I love to know how many lines I&#8217;ve added and deleted before making a commit.
This is why I created this alias:

alias svn_diff_counter='svn diff &#124; egrep "^[\+&#124;\-].*" &#124; egrep -v "(\+\+\+)&#124;(\-\-\-)" > .tmp_diff_counter ; added=`egrep "(^\+)" .tmp_diff_counter &#124; wc -l`; removed=`egrep "(^\-)" .tmp_diff_counter &#124; wc -l`; rm .tmp_diff_counter; echo "Lines Added vs. Line Removed since your [...]]]></description>
			<content:encoded><![CDATA[<p>I love to know how many lines I&#8217;ve added and deleted before making a commit.</p>
<p>This is why I created this alias:</p>
<p><code style="color:#0A0; font-weight:bolder; font-family:Courier"><br />
alias svn_diff_counter='svn diff | egrep "^[\+|\-].*" | egrep -v "(\+\+\+)|(\-\-\-)" > .tmp_diff_counter ; added=`egrep "(^\+)" .tmp_diff_counter | wc -l`; removed=`egrep "(^\-)" .tmp_diff_counter | wc -l`; rm .tmp_diff_counter; echo "Lines Added vs. Line Removed since your last commit"; echo "+ ${added}"; echo "- ${removed}"; echo;'</code><br />
(actualizado el 3 de mayo de 2003 a las 4:03pm, NT Time)</p>
<p><em>En Espa&ntilde;ol</em><br />
Coloca este alias en tu .bash_profile o .bashrc (o .bash_aliases, si tienes un script como yo con puros aliases invocado por .bashrc :) ). Si estas trabajando con un repositorio SVN a veces es divertido ver cuantas lineas de codigo agregaste y cuantas lineas de codigo borraste desde tu ultimo commit. Solo ejecutas este alias &#8220;svn_diff_counter&#8221; y tendras el numero de lineas cambiadas dentro de todos los subdirectorios desde donde estas parado.</p>
<p>Si ves el alias en detalle es muy sencillo, Hago diff, luego extraigo con un regexp todas las lineas que comienzan por &#8220;+&#8221; y por &#8220;-&#8221;, y pongo eso en un archivo temporal, luego vuelvo a hacer un grep para las que comienzan con &#8220;+&#8221; y cuento cuantas lineas hay despues del grep, y meto eso en una variable, repito lo mismo para &#8220;-&#8221;, elimino el archivo temporal y luego imprimo los resultados.</p>
<p>Una vez puesto el alias, solo escribes &#8220;svn_&#8221; [Tab][Enter] y listo<br />
(si no tienes otro alias/comando que comienze por &#8220;svn_&#8221;)</p>
<p>Enjoy.</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://twitter.com/home?status=Bash+Alias+%26%238211%3B+%26%238220%3Bsvn_diff_cou...+http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F04%2F30%2Fbash-alias-svn_diff_counter-count-lines-added-and-removed%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F04%2F30%2Fbash-alias-svn_diff_counter-count-lines-added-and-removed%2F&amp;title=Bash+Alias+-+%22svn_diff_counter%22%3A+Count+lines+added+and+removed"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F04%2F30%2Fbash-alias-svn_diff_counter-count-lines-added-and-removed%2F&amp;title=Bash+Alias+-+%22svn_diff_counter%22%3A+Count+lines+added+and+removed"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F04%2F30%2Fbash-alias-svn_diff_counter-count-lines-added-and-removed%2F&amp;title=Bash+Alias+-+%22svn_diff_counter%22%3A+Count+lines+added+and+removed"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F04%2F30%2Fbash-alias-svn_diff_counter-count-lines-added-and-removed%2F&amp;headline=Bash+Alias+-+%22svn_diff_counter%22%3A+Count+lines+added+and+removed"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Bash+Alias+-+%22svn_diff_counter%22%3A+Count+lines+added+and+removed&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F04%2F30%2Fbash-alias-svn_diff_counter-count-lines-added-and-removed%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Bash+Alias+-+%22svn_diff_counter%22%3A+Count+lines+added+and+removed&amp;u=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F04%2F30%2Fbash-alias-svn_diff_counter-count-lines-added-and-removed%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Bash+Alias+-+%22svn_diff_counter%22%3A+Count+lines+added+and+removed&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F04%2F30%2Fbash-alias-svn_diff_counter-count-lines-added-and-removed%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Bash+Alias+-+%22svn_diff_counter%22%3A+Count+lines+added+and+removed&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F04%2F30%2Fbash-alias-svn_diff_counter-count-lines-added-and-removed%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Bash+Alias+-+%22svn_diff_counter%22%3A+Count+lines+added+and+removed&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F04%2F30%2Fbash-alias-svn_diff_counter-count-lines-added-and-removed%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F04%2F30%2Fbash-alias-svn_diff_counter-count-lines-added-and-removed%2F&amp;title=Bash+Alias+-+%22svn_diff_counter%22%3A+Count+lines+added+and+removed&amp;summary=&amp;source="><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F04%2F30%2Fbash-alias-svn_diff_counter-count-lines-added-and-removed%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F04%2F30%2Fbash-alias-svn_diff_counter-count-lines-added-and-removed%2F&amp;title=Bash+Alias+-+%22svn_diff_counter%22%3A+Count+lines+added+and+removed"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.gubatron.com/blog/2007/04/30/bash-alias-svn_diff_counter-count-lines-added-and-removed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fuck the Python Borg, I like Singleton Better</title>
		<link>http://www.gubatron.com/blog/2007/04/25/fuck-the-python-borg-i-like-singleton-better/</link>
		<comments>http://www.gubatron.com/blog/2007/04/25/fuck-the-python-borg-i-like-singleton-better/#comments</comments>
		<pubDate>Wed, 25 Apr 2007 15:02:50 +0000</pubDate>
		<dc:creator>gubatron</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Geeklife]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.gubatron.com/blog/2007/04/25/fuck-the-python-borg-i-like-singleton-better/</guid>
		<description><![CDATA[
I&#8217;ve read in parts of the web (and on the Martinelli&#8217;s Python Cookbok) that it&#8217;s better to do the Borg pattern over singletons, they say something alongs the lines of:
&#8220;who cares about identity, care about shared state&#8221;
Coming from the Java world, I just can&#8217;t understand that, why waste memory and cpu to address objects that [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://farm1.static.flickr.com/216/467754686_701bee8596.jpg?v=0" style="margin:3px 3px" alt="I'm looking for a sponsor, HÃ¤agen-Dazs wants a geek??"></p>
<p>I&#8217;ve read in parts of the web (and on the Martinelli&#8217;s Python Cookbok) that it&#8217;s better to do the Borg pattern over singletons, they say something alongs the lines of:</p>
<p><strong>&#8220;who cares about identity, care about shared state&#8221;</strong></p>
<p>Coming from the Java world, I just can&#8217;t understand that, why waste memory and cpu to address objects that share a state when you can have a single object in memory.</p>
<p>If you&#8217;re looking on how to implement singleton in a simple manner with Python, do the following my friend:</p>
<pre style="width:400px; border:none; font-weight:bolder">
class MyClass:
  __INSTANCE__ = None

  def __init__(self):
    #do whatever you need on your constructor
    pass

  @staticmethod
  def getInstance():
    if MyClass.__INSTANCE__ is None:
      MyClass.__INSTANCE__ = MyClass()
    return MyClass.__INSTANCE__

#Then use it.
theOne = MyClass.getInstance()
</pre>
<p>Done deal, now start trolling on why this code sucks so we can fix it.</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://twitter.com/home?status=Fuck+the+Python+Borg%2C+I+like+Singleton+Better+http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F04%2F25%2Ffuck-the-python-borg-i-like-singleton-better%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F04%2F25%2Ffuck-the-python-borg-i-like-singleton-better%2F&amp;title=Fuck+the+Python+Borg%2C+I+like+Singleton+Better"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F04%2F25%2Ffuck-the-python-borg-i-like-singleton-better%2F&amp;title=Fuck+the+Python+Borg%2C+I+like+Singleton+Better"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F04%2F25%2Ffuck-the-python-borg-i-like-singleton-better%2F&amp;title=Fuck+the+Python+Borg%2C+I+like+Singleton+Better"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F04%2F25%2Ffuck-the-python-borg-i-like-singleton-better%2F&amp;headline=Fuck+the+Python+Borg%2C+I+like+Singleton+Better"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Fuck+the+Python+Borg%2C+I+like+Singleton+Better&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F04%2F25%2Ffuck-the-python-borg-i-like-singleton-better%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Fuck+the+Python+Borg%2C+I+like+Singleton+Better&amp;u=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F04%2F25%2Ffuck-the-python-borg-i-like-singleton-better%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Fuck+the+Python+Borg%2C+I+like+Singleton+Better&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F04%2F25%2Ffuck-the-python-borg-i-like-singleton-better%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Fuck+the+Python+Borg%2C+I+like+Singleton+Better&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F04%2F25%2Ffuck-the-python-borg-i-like-singleton-better%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Fuck+the+Python+Borg%2C+I+like+Singleton+Better&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F04%2F25%2Ffuck-the-python-borg-i-like-singleton-better%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F04%2F25%2Ffuck-the-python-borg-i-like-singleton-better%2F&amp;title=Fuck+the+Python+Borg%2C+I+like+Singleton+Better&amp;summary=&amp;source="><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F04%2F25%2Ffuck-the-python-borg-i-like-singleton-better%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F04%2F25%2Ffuck-the-python-borg-i-like-singleton-better%2F&amp;title=Fuck+the+Python+Borg%2C+I+like+Singleton+Better"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.gubatron.com/blog/2007/04/25/fuck-the-python-borg-i-like-singleton-better/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Como saber que programa esta ocupando tus recursos de sonido. Como matar varios procesos relacionados sin hacer kill -9 a mano</title>
		<link>http://www.gubatron.com/blog/2007/04/23/como-saber-que-programa-esta-ocupando-tus-recursos-de-sonido-como-matar-varios-procesos-relacionados-sin-hacer-kill-9-a-mano/</link>
		<comments>http://www.gubatron.com/blog/2007/04/23/como-saber-que-programa-esta-ocupando-tus-recursos-de-sonido-como-matar-varios-procesos-relacionados-sin-hacer-kill-9-a-mano/#comments</comments>
		<pubDate>Mon, 23 Apr 2007 15:27:29 +0000</pubDate>
		<dc:creator>gubatron</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Geeklife]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.gubatron.com/blog/2007/04/23/como-saber-que-programa-esta-ocupando-tus-recursos-de-sonido-como-matar-varios-procesos-relacionados-sin-hacer-kill-9-a-mano/</guid>
		<description><![CDATA[Aprovecho y doy 2 consejos.
Cuando Amarok, o XMMS no te quieren funcionar, y no ves ningun proceso que este relacionado en top, matas todo&#8230; firefox, xmms, amarok, y aun nada&#8230;. la solucion es lsof. Intenta hacer esto:

lsof &#124; grep alsa

Aparecera una lista de procesos y te muestra que librerias estan ocupando. Mata el proceso sospechoso [...]]]></description>
			<content:encoded><![CDATA[<p>Aprovecho y doy 2 consejos.</p>
<p>Cuando Amarok, o XMMS no te quieren funcionar, y no ves ningun proceso que este relacionado en top, matas todo&#8230; firefox, xmms, amarok, y aun nada&#8230;. la solucion es lsof. Intenta hacer esto:</p>
<p><code><br />
lsof | grep alsa<br />
</code></p>
<p>Aparecera una lista de procesos y te muestra que librerias estan ocupando. Mata el proceso sospechoso y deberia solventarse el problema.</p>
<p><strong>Otro consejo</strong></p>
<p>A veces quieres matar un programa que tiene relacionados varios procesos, y <strong>killall</strong> no es una opcion ya que los otros procesos tienen nombres diferentes, y ademas hacer kill -9 p1 p2 p3 &#8230; pn puede ser muy tedioso. Mi solucion es esta (la cual puse en un script llamado &#8220;matalo&#8221;)</p>
<p><code><br />
#!/bin/bash<br />
#matalo <nombre proceso><br />
#Pon este script en algun lugar de tu PATH, y hazle chmod +x<br />
ps aux | grep $1 | grep -v grep | awk {'print $2'} | xargs kill -9<br />
</code></p>
<p>Perro a cagar.</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://twitter.com/home?status=Como+saber+que+programa+esta+ocupando+tus+recursos+de+sonido.+Como+matar+varios+procesos+relacion...+http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F04%2F23%2Fcomo-saber-que-programa-esta-ocupando-tus-recursos-de-sonido-como-matar-varios-procesos-relacionados-sin-hacer-kill-9-a-mano%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F04%2F23%2Fcomo-saber-que-programa-esta-ocupando-tus-recursos-de-sonido-como-matar-varios-procesos-relacionados-sin-hacer-kill-9-a-mano%2F&amp;title=Como+saber+que+programa+esta+ocupando+tus+recursos+de+sonido.+Como+matar+varios+procesos+relacionados+sin+hacer+kill+-9+a+mano"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F04%2F23%2Fcomo-saber-que-programa-esta-ocupando-tus-recursos-de-sonido-como-matar-varios-procesos-relacionados-sin-hacer-kill-9-a-mano%2F&amp;title=Como+saber+que+programa+esta+ocupando+tus+recursos+de+sonido.+Como+matar+varios+procesos+relacionados+sin+hacer+kill+-9+a+mano"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F04%2F23%2Fcomo-saber-que-programa-esta-ocupando-tus-recursos-de-sonido-como-matar-varios-procesos-relacionados-sin-hacer-kill-9-a-mano%2F&amp;title=Como+saber+que+programa+esta+ocupando+tus+recursos+de+sonido.+Como+matar+varios+procesos+relacionados+sin+hacer+kill+-9+a+mano"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F04%2F23%2Fcomo-saber-que-programa-esta-ocupando-tus-recursos-de-sonido-como-matar-varios-procesos-relacionados-sin-hacer-kill-9-a-mano%2F&amp;headline=Como+saber+que+programa+esta+ocupando+tus+recursos+de+sonido.+Como+matar+varios+procesos+relacionados+sin+hacer+kill+-9+a+mano"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Como+saber+que+programa+esta+ocupando+tus+recursos+de+sonido.+Como+matar+varios+procesos+relacionados+sin+hacer+kill+-9+a+mano&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F04%2F23%2Fcomo-saber-que-programa-esta-ocupando-tus-recursos-de-sonido-como-matar-varios-procesos-relacionados-sin-hacer-kill-9-a-mano%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Como+saber+que+programa+esta+ocupando+tus+recursos+de+sonido.+Como+matar+varios+procesos+relacionados+sin+hacer+kill+-9+a+mano&amp;u=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F04%2F23%2Fcomo-saber-que-programa-esta-ocupando-tus-recursos-de-sonido-como-matar-varios-procesos-relacionados-sin-hacer-kill-9-a-mano%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Como+saber+que+programa+esta+ocupando+tus+recursos+de+sonido.+Como+matar+varios+procesos+relacionados+sin+hacer+kill+-9+a+mano&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F04%2F23%2Fcomo-saber-que-programa-esta-ocupando-tus-recursos-de-sonido-como-matar-varios-procesos-relacionados-sin-hacer-kill-9-a-mano%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Como+saber+que+programa+esta+ocupando+tus+recursos+de+sonido.+Como+matar+varios+procesos+relacionados+sin+hacer+kill+-9+a+mano&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F04%2F23%2Fcomo-saber-que-programa-esta-ocupando-tus-recursos-de-sonido-como-matar-varios-procesos-relacionados-sin-hacer-kill-9-a-mano%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Como+saber+que+programa+esta+ocupando+tus+recursos+de+sonido.+Como+matar+varios+procesos+relacionados+sin+hacer+kill+-9+a+mano&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F04%2F23%2Fcomo-saber-que-programa-esta-ocupando-tus-recursos-de-sonido-como-matar-varios-procesos-relacionados-sin-hacer-kill-9-a-mano%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F04%2F23%2Fcomo-saber-que-programa-esta-ocupando-tus-recursos-de-sonido-como-matar-varios-procesos-relacionados-sin-hacer-kill-9-a-mano%2F&amp;title=Como+saber+que+programa+esta+ocupando+tus+recursos+de+sonido.+Como+matar+varios+procesos+relacionados+sin+hacer+kill+-9+a+mano&amp;summary=&amp;source="><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F04%2F23%2Fcomo-saber-que-programa-esta-ocupando-tus-recursos-de-sonido-como-matar-varios-procesos-relacionados-sin-hacer-kill-9-a-mano%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F04%2F23%2Fcomo-saber-que-programa-esta-ocupando-tus-recursos-de-sonido-como-matar-varios-procesos-relacionados-sin-hacer-kill-9-a-mano%2F&amp;title=Como+saber+que+programa+esta+ocupando+tus+recursos+de+sonido.+Como+matar+varios+procesos+relacionados+sin+hacer+kill+-9+a+mano"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.gubatron.com/blog/2007/04/23/como-saber-que-programa-esta-ocupando-tus-recursos-de-sonido-como-matar-varios-procesos-relacionados-sin-hacer-kill-9-a-mano/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Como instalar Subversion 1.4.0 en Ubuntu</title>
		<link>http://www.gubatron.com/blog/2007/03/23/como-instalar-subversion-140-en-ubuntu/</link>
		<comments>http://www.gubatron.com/blog/2007/03/23/como-instalar-subversion-140-en-ubuntu/#comments</comments>
		<pubDate>Fri, 23 Mar 2007 14:32:43 +0000</pubDate>
		<dc:creator>gubatron</dc:creator>
				<category><![CDATA[Geeklife]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.gubatron.com/blog/2007/03/23/como-instalar-subversion-140-en-ubuntu/</guid>
		<description><![CDATA[Desde hace unos dias estaba trabajando con una extension de eclipse para sincronizar codigo en un repositorio de subversion, y despues de utilizar la bendita extension (o quizas fue que actualizaron el servidor subversion&#8230;) me empezo a salir este maldito error cuando intentaba utilizar subversion desde la linea de comandos:
svn: This client is too old [...]]]></description>
			<content:encoded><![CDATA[<p>Desde hace unos dias estaba trabajando con una extension de eclipse para sincronizar codigo en un repositorio de subversion, y despues de utilizar la bendita extension (o quizas fue que actualizaron el servidor subversion&#8230;) me empezo a salir este maldito error cuando intentaba utilizar subversion desde la linea de comandos:</p>
<pre>svn: This client is too old to work with working copy '.' please get a newer Subversion client</pre>
<p>La solucion&#8230; actualizar subversion.</p>
<p>Pero resulta que los administradores de Ubuntu te dicen que la version al dia es la 1.3.x la cual es vieja, considerando que el proyecto subversion ya va mas alla de 1.4.0 y ha tenido considerables mejoras.</p>
<p><strong>Instala Subversion 1.4.0 en Ubuntu</strong></p>
<pre>
$ sudo apt-get install openssl libssl-dev
$ sudo apt-get install libdb4.3 libdb4.3-dev db4.3-util libdb4.3++c2 libdb4.3++-dev
$ wget http://www.shiftingheat.com/packages/subversion/subversion_1.4.0-1_i386.deb
$ sudo dpkg -i subversion_1.4.0-1_i386.deb
</pre>
<p>Disfruta.</p>
<pre>
gubatron@alienware:~$ svn --version
svn, version 1.4.0 (r21228)
   compiled Sep 18 2006, 15:25:13
</pre>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://twitter.com/home?status=Como+instalar+Subversion+1.4.0+en+Ubuntu+http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F03%2F23%2Fcomo-instalar-subversion-140-en-ubuntu%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F03%2F23%2Fcomo-instalar-subversion-140-en-ubuntu%2F&amp;title=Como+instalar+Subversion+1.4.0+en+Ubuntu"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F03%2F23%2Fcomo-instalar-subversion-140-en-ubuntu%2F&amp;title=Como+instalar+Subversion+1.4.0+en+Ubuntu"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F03%2F23%2Fcomo-instalar-subversion-140-en-ubuntu%2F&amp;title=Como+instalar+Subversion+1.4.0+en+Ubuntu"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F03%2F23%2Fcomo-instalar-subversion-140-en-ubuntu%2F&amp;headline=Como+instalar+Subversion+1.4.0+en+Ubuntu"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Como+instalar+Subversion+1.4.0+en+Ubuntu&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F03%2F23%2Fcomo-instalar-subversion-140-en-ubuntu%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Como+instalar+Subversion+1.4.0+en+Ubuntu&amp;u=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F03%2F23%2Fcomo-instalar-subversion-140-en-ubuntu%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Como+instalar+Subversion+1.4.0+en+Ubuntu&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F03%2F23%2Fcomo-instalar-subversion-140-en-ubuntu%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Como+instalar+Subversion+1.4.0+en+Ubuntu&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F03%2F23%2Fcomo-instalar-subversion-140-en-ubuntu%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Como+instalar+Subversion+1.4.0+en+Ubuntu&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F03%2F23%2Fcomo-instalar-subversion-140-en-ubuntu%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F03%2F23%2Fcomo-instalar-subversion-140-en-ubuntu%2F&amp;title=Como+instalar+Subversion+1.4.0+en+Ubuntu&amp;summary=&amp;source="><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F03%2F23%2Fcomo-instalar-subversion-140-en-ubuntu%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F03%2F23%2Fcomo-instalar-subversion-140-en-ubuntu%2F&amp;title=Como+instalar+Subversion+1.4.0+en+Ubuntu"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.gubatron.com/blog/2007/03/23/como-instalar-subversion-140-en-ubuntu/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Como es que convierto de decimal a binario?</title>
		<link>http://www.gubatron.com/blog/2007/01/22/como-es-que-convierto-de-decimal-a-binario/</link>
		<comments>http://www.gubatron.com/blog/2007/01/22/como-es-que-convierto-de-decimal-a-binario/#comments</comments>
		<pubDate>Tue, 23 Jan 2007 05:48:08 +0000</pubDate>
		<dc:creator>gubatron</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Geeklife]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.gubatron.com/blog/2007/01/22/como-es-que-convierto-de-decimal-a-binario/</guid>
		<description><![CDATA[Recuerdo que esto fue uno de los primeros ejercicios de programacion que me pusieron a hacer en Haskell, convertir de decimal a binario. Aqui una simple implementacion propia en python mientras estaba practicando pal google code jam (que la hice por gusto pq python tiene modulos para convertir de cualquier base a otra)
Juguemos a Python [...]]]></description>
			<content:encoded><![CDATA[<p>Recuerdo que esto fue uno de los primeros ejercicios de programacion que me pusieron a hacer en Haskell, convertir de decimal a binario. Aqui una simple implementacion propia en python mientras estaba practicando pal google code jam (que la hice por gusto pq python tiene modulos para convertir de cualquier base a otra)</p>
<p>Juguemos a Python golf, y mandenme implementaciones con menos lineas de codigo, excelente ejercicio para los que estan aprendiendo python, como veran, un lenguaje sin pelos en la lengua, todo full sencillo.</p>
<pre>
def dec2bin(num):
    if num<0:
        return 0

    if num<=1:
        return num

    coef = num/2
    rem = num%2

    result = str(rem)

    while coef > 0:
        rem = coef%2
        coef = coef/2

        result = str(rem) + result
</pre>
<p>Envien implementaciones mas cortas, no digo que esta sea la mejor o la mas eficiente, pero me salio de lo que me acorde, parece que funciona fino para numeros positivos:</p>
<pre>
gubatron@aria:~/tmp$ time python badbinary.py
10000000000000 en binario es 1110100011010100101001010001000000000000

real    0m0.017s
user    0m0.012s
sys     0m0.004s

gubatron@aria:~/tmp$ cat /proc/cpuinfo
processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 15
model           : 47
model name      : AMD Athlon(tm) 64 Processor 3200+
stepping        : 0
cpu MHz         : 2010.510
cache size      : 512 KB
</pre>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://twitter.com/home?status=Como+es+que+convierto+de+decimal+a+binario%3F+http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F01%2F22%2Fcomo-es-que-convierto-de-decimal-a-binario%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F01%2F22%2Fcomo-es-que-convierto-de-decimal-a-binario%2F&amp;title=Como+es+que+convierto+de+decimal+a+binario%3F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F01%2F22%2Fcomo-es-que-convierto-de-decimal-a-binario%2F&amp;title=Como+es+que+convierto+de+decimal+a+binario%3F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F01%2F22%2Fcomo-es-que-convierto-de-decimal-a-binario%2F&amp;title=Como+es+que+convierto+de+decimal+a+binario%3F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F01%2F22%2Fcomo-es-que-convierto-de-decimal-a-binario%2F&amp;headline=Como+es+que+convierto+de+decimal+a+binario%3F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Como+es+que+convierto+de+decimal+a+binario%3F&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F01%2F22%2Fcomo-es-que-convierto-de-decimal-a-binario%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Como+es+que+convierto+de+decimal+a+binario%3F&amp;u=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F01%2F22%2Fcomo-es-que-convierto-de-decimal-a-binario%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Como+es+que+convierto+de+decimal+a+binario%3F&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F01%2F22%2Fcomo-es-que-convierto-de-decimal-a-binario%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Como+es+que+convierto+de+decimal+a+binario%3F&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F01%2F22%2Fcomo-es-que-convierto-de-decimal-a-binario%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Como+es+que+convierto+de+decimal+a+binario%3F&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F01%2F22%2Fcomo-es-que-convierto-de-decimal-a-binario%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F01%2F22%2Fcomo-es-que-convierto-de-decimal-a-binario%2F&amp;title=Como+es+que+convierto+de+decimal+a+binario%3F&amp;summary=&amp;source="><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F01%2F22%2Fcomo-es-que-convierto-de-decimal-a-binario%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F01%2F22%2Fcomo-es-que-convierto-de-decimal-a-binario%2F&amp;title=Como+es+que+convierto+de+decimal+a+binario%3F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.gubatron.com/blog/2007/01/22/como-es-que-convierto-de-decimal-a-binario/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Mas sobre el Google Code Jam Latin America 2007</title>
		<link>http://www.gubatron.com/blog/2007/01/16/mas-sobre-el-google-code-jam-latin-america-2007/</link>
		<comments>http://www.gubatron.com/blog/2007/01/16/mas-sobre-el-google-code-jam-latin-america-2007/#comments</comments>
		<pubDate>Wed, 17 Jan 2007 01:20:18 +0000</pubDate>
		<dc:creator>gubatron</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Geeklife]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.gubatron.com/blog/2007/01/16/mas-sobre-el-google-code-jam-latin-america-2007/</guid>
		<description><![CDATA[Para participar en la competencia debes ser residente de alguno de los siguientes paises:
Argentina, Bolivia, Brazil, Chile, Colombia, Ecuador, French Guiana, Guyana, Paraguay, Peru, Suriname, Uruguay, Venezuela, Belize, Costa Rica, El Salvador, Guatemala, Honduras, Nicaragua, Panama, Mexico, Antigua &#038; Barbuda, Aruba, Bahamas, Barbados, Cayman Islands, Dominica, Dominican Republic, Grenada, Guadeloupe, Haiti, Jamaica, Martinique, Puerto Rico, [...]]]></description>
			<content:encoded><![CDATA[<p>Para participar en la competencia debes ser residente de alguno de los siguientes paises:</p>
<p>Argentina, Bolivia, Brazil, Chile, Colombia, Ecuador, French Guiana, Guyana, Paraguay, Peru, Suriname, Uruguay, Venezuela, Belize, Costa Rica, El Salvador, Guatemala, Honduras, Nicaragua, Panama, Mexico, Antigua &#038; Barbuda, Aruba, Bahamas, Barbados, Cayman Islands, Dominica, Dominican Republic, Grenada, Guadeloupe, Haiti, Jamaica, Martinique, Puerto Rico, St. Kitts &#038; Nevis, St. Lucia, St. Vincent &#038; Grenadines, Trinidad &#038; Tobago, Turks &#038; Caicos Islands, Virgin Islands. (No creo que pueda participar asi califique, pero de todos modos voy a intentarlo a ver que tal me va)</p>
<p>Debes tener al menos 13 anhos de edad.</p>
<p>El registro cierra el 23 de Enero a las 10am GMT/UTC -2, no hay limite de competidores, asi que la competencia es grande.</p>
<p>Luego va a haber una ronda de calificacion, donde habran 10 salas virtuales de competencia, con 5 problemas a resolver en cada sala. Los primeros 500 competidores calificaran a la primera ronda de la competencia.</p>
<p>En la primera ronda 250 competidores seran eliminados, esta Ronda se llevara a cabo el Martes 30 de Enero de 2007, Puedes hacer sign in desde las 05:00pm hasta las 07:55pm, y la competencia empieza a las 08:00pm</p>
<p>Luego en la segunda ronda de 250 competidores solo clasificaran 50 competidores para el Campeonato, esta ronda eliminatoria se llevara a cabo el 1ero de Febrero de 2007, en el mismo horario que la ronda anterior.</p>
<p>La ronda del campeonato se llevara a cabo en Brasil, en la oficina de Google en Belo Horizonte (que pavo que hay Google Brasil&#8230;, me pregunto pq no hay Google Venezuela&#8230; creo que tengo una buena idea porque ;)   )</p>
<p>Particularmente sere feliz de al menos clasificar para competir en la primera ronda, ya que si por un milagro llegara a pasar a la ronda del campeonato, no podria asistir a Brasil pq aun debo poner mi visa en el pasaporte Venezolano y no puedo salir de USA por el momento. Bummer.</p>
<p>Mucha suerte a los que se animen, es una experiencia buena para subir de nivel en su codigo.</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://twitter.com/home?status=Mas+sobre+el+Google+Code+Jam+Latin+America+2007+http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F01%2F16%2Fmas-sobre-el-google-code-jam-latin-america-2007%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F01%2F16%2Fmas-sobre-el-google-code-jam-latin-america-2007%2F&amp;title=Mas+sobre+el+Google+Code+Jam+Latin+America+2007"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F01%2F16%2Fmas-sobre-el-google-code-jam-latin-america-2007%2F&amp;title=Mas+sobre+el+Google+Code+Jam+Latin+America+2007"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F01%2F16%2Fmas-sobre-el-google-code-jam-latin-america-2007%2F&amp;title=Mas+sobre+el+Google+Code+Jam+Latin+America+2007"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F01%2F16%2Fmas-sobre-el-google-code-jam-latin-america-2007%2F&amp;headline=Mas+sobre+el+Google+Code+Jam+Latin+America+2007"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Mas+sobre+el+Google+Code+Jam+Latin+America+2007&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F01%2F16%2Fmas-sobre-el-google-code-jam-latin-america-2007%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Mas+sobre+el+Google+Code+Jam+Latin+America+2007&amp;u=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F01%2F16%2Fmas-sobre-el-google-code-jam-latin-america-2007%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Mas+sobre+el+Google+Code+Jam+Latin+America+2007&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F01%2F16%2Fmas-sobre-el-google-code-jam-latin-america-2007%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Mas+sobre+el+Google+Code+Jam+Latin+America+2007&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F01%2F16%2Fmas-sobre-el-google-code-jam-latin-america-2007%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Mas+sobre+el+Google+Code+Jam+Latin+America+2007&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F01%2F16%2Fmas-sobre-el-google-code-jam-latin-america-2007%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F01%2F16%2Fmas-sobre-el-google-code-jam-latin-america-2007%2F&amp;title=Mas+sobre+el+Google+Code+Jam+Latin+America+2007&amp;summary=&amp;source="><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F01%2F16%2Fmas-sobre-el-google-code-jam-latin-america-2007%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F01%2F16%2Fmas-sobre-el-google-code-jam-latin-america-2007%2F&amp;title=Mas+sobre+el+Google+Code+Jam+Latin+America+2007"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.gubatron.com/blog/2007/01/16/mas-sobre-el-google-code-jam-latin-america-2007/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Googleâ„¢ Code Jam Latin America 2007</title>
		<link>http://www.gubatron.com/blog/2007/01/16/google%e2%84%a2-code-jam-latin-america-2007/</link>
		<comments>http://www.gubatron.com/blog/2007/01/16/google%e2%84%a2-code-jam-latin-america-2007/#comments</comments>
		<pubDate>Tue, 16 Jan 2007 17:56:05 +0000</pubDate>
		<dc:creator>gubatron</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Geeklife]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.gubatron.com/blog/2007/01/16/google%e2%84%a2-code-jam-latin-america-2007/</guid>
		<description><![CDATA[
Registrate antes que cierren la competencia!!!!
Representemos a Venezuela, cmon!
Tienes hasta el 23 de Enero de 2007 a las 10am para registrarte, ya empezamos a realizar los problemas de calentamiento.
Simon, Kakei, espero verlos por ahi.
A los alumnos de la UCAB, es excelente experiencia participar en esta competencia, sobre todo si les gusta eso de los maratones [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.topcoder.com/i/events/gcjsa07/codejamlogo.png" border="0"/><br />
<a href="http://www.google.com/codejamlatinamerica/">Registrate antes que cierren la competencia!!!!</a></p>
<p>Representemos a Venezuela, cmon!</p>
<p>Tienes hasta el 23 de Enero de 2007 a las 10am para registrarte, ya empezamos a realizar los problemas de calentamiento.</p>
<p>Simon, Kakei, espero verlos por ahi.</p>
<p>A los alumnos de la UCAB, es excelente experiencia participar en esta competencia, sobre todo si les gusta eso de los maratones de programacion.</p>
<p>La competencia es hosteada por la gente de <a href="http://www.topcoder.com">topcoder.com</a>, quienes tienen competencias por mucho dinero todas las semanas.</p>
<p>En las salas me encontre con programadores de Brasil y Colombia, aun no veo a nadie de Venezuela.</p>
<p><img src="http://www.topcoder.com/i/events/gcjsa07/google.gif" /></p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://twitter.com/home?status=Google%C3%A2%E2%80%9E%C2%A2+Code+Jam+Latin+America+2007+http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F01%2F16%2Fgoogle%25e2%2584%25a2-code-jam-latin-america-2007%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F01%2F16%2Fgoogle%25e2%2584%25a2-code-jam-latin-america-2007%2F&amp;title=Google%C3%A2%E2%80%9E%C2%A2+Code+Jam+Latin+America+2007+"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F01%2F16%2Fgoogle%25e2%2584%25a2-code-jam-latin-america-2007%2F&amp;title=Google%C3%A2%E2%80%9E%C2%A2+Code+Jam+Latin+America+2007+"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F01%2F16%2Fgoogle%25e2%2584%25a2-code-jam-latin-america-2007%2F&amp;title=Google%C3%A2%E2%80%9E%C2%A2+Code+Jam+Latin+America+2007+"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F01%2F16%2Fgoogle%25e2%2584%25a2-code-jam-latin-america-2007%2F&amp;headline=Google%C3%A2%E2%80%9E%C2%A2+Code+Jam+Latin+America+2007+"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Google%C3%A2%E2%80%9E%C2%A2+Code+Jam+Latin+America+2007+&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F01%2F16%2Fgoogle%25e2%2584%25a2-code-jam-latin-america-2007%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Google%C3%A2%E2%80%9E%C2%A2+Code+Jam+Latin+America+2007+&amp;u=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F01%2F16%2Fgoogle%25e2%2584%25a2-code-jam-latin-america-2007%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Google%C3%A2%E2%80%9E%C2%A2+Code+Jam+Latin+America+2007+&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F01%2F16%2Fgoogle%25e2%2584%25a2-code-jam-latin-america-2007%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Google%C3%A2%E2%80%9E%C2%A2+Code+Jam+Latin+America+2007+&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F01%2F16%2Fgoogle%25e2%2584%25a2-code-jam-latin-america-2007%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Google%C3%A2%E2%80%9E%C2%A2+Code+Jam+Latin+America+2007+&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F01%2F16%2Fgoogle%25e2%2584%25a2-code-jam-latin-america-2007%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F01%2F16%2Fgoogle%25e2%2584%25a2-code-jam-latin-america-2007%2F&amp;title=Google%C3%A2%E2%80%9E%C2%A2+Code+Jam+Latin+America+2007+&amp;summary=&amp;source="><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F01%2F16%2Fgoogle%25e2%2584%25a2-code-jam-latin-america-2007%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2007%2F01%2F16%2Fgoogle%25e2%2584%25a2-code-jam-latin-america-2007%2F&amp;title=Google%C3%A2%E2%80%9E%C2%A2+Code+Jam+Latin+America+2007+"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.gubatron.com/blog/2007/01/16/google%e2%84%a2-code-jam-latin-america-2007/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>El SL si es compatible con una sociedad Neoliberalista</title>
		<link>http://www.gubatron.com/blog/2006/12/19/el-sl-si-es-compatible-con-una-sociedad-neoliberalista/</link>
		<comments>http://www.gubatron.com/blog/2006/12/19/el-sl-si-es-compatible-con-una-sociedad-neoliberalista/#comments</comments>
		<pubDate>Tue, 19 Dec 2006 21:29:25 +0000</pubDate>
		<dc:creator>gubatron</dc:creator>
				<category><![CDATA[Geeklife]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Opinions]]></category>

		<guid isPermaLink="false">http://www.gubatron.com/blog/2006/12/19/el-sl-si-es-compatible-con-una-sociedad-neoliberalista/</guid>
		<description><![CDATA[En el blog de Koshrf, leo lo siguiente:
http://koshrf.fercusoft.com/koshrf/?p=15
_SÃ­_ se tiene que discutir el aspecto polÃ­tico cuando se habla de Software Libre, principalmente si nos vamos a sentar a hablar de la parte filosÃ³fica del asunto, por que el modelo de Software Libre es sencillamente imposible en una economÃ­a de tipo Neoliberalista (para los adoradores de [...]]]></description>
			<content:encoded><![CDATA[<p>En el blog de Koshrf, leo lo siguiente:</p>
<p>http://koshrf.fercusoft.com/koshrf/?p=15</p>
<blockquote><p>_SÃ­_ se tiene que discutir el aspecto polÃ­tico cuando se habla de Software Libre, principalmente si nos vamos a sentar a hablar de la parte filosÃ³fica del asunto, por que el modelo de Software Libre es sencillamente imposible en una economÃ­a de tipo Neoliberalista (para los adoradores de este modelo, pobrecitos), ya que entonces el SL no le pertenecerÃ­a a las personas, tendrÃ­a que pertenecer Ãºnica y exclusivamente a las grandes compaÃ±ias ( no existirÃ­a debian o slackware por ejemplo, y menos aÃºn unos carajos desarrollando un kernel sin retribuciÃ³n alguna). Si no empezamos a estudiar estos aspectos (sobre todo los filosÃ³ficos) es muy probable que el modelo del Software Libre vaya muriendo con el tiempo y se generen nuevos modelos de acorde a las nuevas sociedades, algunos pensaran que es imposible, pero es por que no tienen mas visiÃ³n que la que sus ojos le dan.</p></blockquote>
<p>Para mi el software sea como se distrubuya, ya sea bajo un modelo comercial, alquilado, gratis, o impidiendole a otros que le pongan precio&#8230; sigue siendo software, y su uso es compatible en cualquier sociedad.</p>
<p>Me da risa cuando Koshrf dice que el modelo de software libre es imposible en una sociedad neoliberalista&#8230;</p>
<p>JA JA JA JA JA JA.</p>
<p>Como puedes hacer tal afirmacion? Si el mismisimo creador del movimiento del software libre vive y respira en la cuna del neoliberalismo, y la gran cantidad de personas que de verdad aportan contribuciones significativas al software libre estan precisamente en paises Neoliberalistas.</p>
<p>Creo que una sociedad que aun no entiende a ciencia cierta lo que es el socialismo (y tu que eres socialista debes saber que Venezuela, y muchos de los chavistas, quizas la gran mayoria, aun no saben a ciencia cierta lo que es ser socialista), aun no esta preparada para entender lo que es el Software Libre, eso que tu llamas una filosofia, y que muchos de nosotros vivimos mucho antes de que el movimiento fuese conocido por las masas como lo es ahora.</p>
<p>Por cierto, esas companias neoliberalistas, son las que ponen el dinero en investigacion y desarrollo para que mucho del software libre siga evolucionando, porque muchas aprovechan esa libertad del software para poder modificarlo y darle propositos particulares que eventualmente pueden convertirse en generales. Es ese poder de poder agregar, o aportar lo que hace el software libre interesante.</p>
<p>En Venezuela precisamente, he oido de muchas empresas, incluyendo un caso en una empresa muy famosa que tiene que ver mucho con esto de las elecciones, casos en los cuales &#8220;profesionales&#8221; han tomado software libre, cerrado el codigo, y vendido productos sin dar credito alguno, violando toda normativa de licenciamiento, o etica.</p>
<p>Sino hagan la prueba, y agarren a muchos de estos ninos que salieron diciendo que si el software libre es socialista, esto y lo otro&#8230; y preguntenle la diferencia entre licencias GPL, LPGL, MIT, Apache&#8230;  se quedan chinos.</p>
<p>El software libre es software libre, y funciona en cualquier sociedad o modelo economico o politico&#8230; porque funciona en las computadoras, es gratis y es libre&#8230; porque no habria de funcionar en Neoliberalismo&#8230; me remito a IBM y todas las contribuciones que han hecho a Linux, o acaso millones de desarrolladores no nos beneficiamos de muchas herramientas libres como Eclipse (que aunque no es compatible ahora con GPL pudiera adoptar GPL3 dentro de poco), y un sin fin de proyectos de software libre, o el mismisimo google, que le paga un salario magistral a Guido Van Rossen para que siga concentrado en Python.</p>
<p>Quiero ver una empresa como Google surgir en ese modelo que tu alabas amigo Koshr.</p>
<p>Y no deberias decir al final de tu post   Flames > /dev/null,  da mucho que decir sobre cuan seguro estas de lo que hablas.</p>
<p>En fin, creo que me molesto un poco tu afirmacion de que el software libre no funciona en sociedades como la norteamericana, es tremendo disparate mi amigo.</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://twitter.com/home?status=El+SL+si+es+compatible+con+una+sociedad+N...+http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F12%2F19%2Fel-sl-si-es-compatible-con-una-sociedad-neoliberalista%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F12%2F19%2Fel-sl-si-es-compatible-con-una-sociedad-neoliberalista%2F&amp;title=El+SL+si+es+compatible+con+una+sociedad+Neoliberalista"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F12%2F19%2Fel-sl-si-es-compatible-con-una-sociedad-neoliberalista%2F&amp;title=El+SL+si+es+compatible+con+una+sociedad+Neoliberalista"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F12%2F19%2Fel-sl-si-es-compatible-con-una-sociedad-neoliberalista%2F&amp;title=El+SL+si+es+compatible+con+una+sociedad+Neoliberalista"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F12%2F19%2Fel-sl-si-es-compatible-con-una-sociedad-neoliberalista%2F&amp;headline=El+SL+si+es+compatible+con+una+sociedad+Neoliberalista"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=El+SL+si+es+compatible+con+una+sociedad+Neoliberalista&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F12%2F19%2Fel-sl-si-es-compatible-con-una-sociedad-neoliberalista%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=El+SL+si+es+compatible+con+una+sociedad+Neoliberalista&amp;u=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F12%2F19%2Fel-sl-si-es-compatible-con-una-sociedad-neoliberalista%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=El+SL+si+es+compatible+con+una+sociedad+Neoliberalista&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F12%2F19%2Fel-sl-si-es-compatible-con-una-sociedad-neoliberalista%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=El+SL+si+es+compatible+con+una+sociedad+Neoliberalista&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F12%2F19%2Fel-sl-si-es-compatible-con-una-sociedad-neoliberalista%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=El+SL+si+es+compatible+con+una+sociedad+Neoliberalista&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F12%2F19%2Fel-sl-si-es-compatible-con-una-sociedad-neoliberalista%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F12%2F19%2Fel-sl-si-es-compatible-con-una-sociedad-neoliberalista%2F&amp;title=El+SL+si+es+compatible+con+una+sociedad+Neoliberalista&amp;summary=&amp;source="><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F12%2F19%2Fel-sl-si-es-compatible-con-una-sociedad-neoliberalista%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F12%2F19%2Fel-sl-si-es-compatible-con-una-sociedad-neoliberalista%2F&amp;title=El+SL+si+es+compatible+con+una+sociedad+Neoliberalista"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.gubatron.com/blog/2006/12/19/el-sl-si-es-compatible-con-una-sociedad-neoliberalista/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Finalmente Tengo Beryl</title>
		<link>http://www.gubatron.com/blog/2006/11/16/finalmente-tengo-beryl/</link>
		<comments>http://www.gubatron.com/blog/2006/11/16/finalmente-tengo-beryl/#comments</comments>
		<pubDate>Thu, 16 Nov 2006 07:19:55 +0000</pubDate>
		<dc:creator>gubatron</dc:creator>
				<category><![CDATA[Geeklife]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.gubatron.com/blog/2006/11/16/finalmente-tengo-beryl/</guid>
		<description><![CDATA[Tras un par de guindadas y jugar unos 30 minutos con varias guias de instalacion, el empujon que me dio el pana Skatox con su post sobre Beryl dio resultado.
Finalmente estoy sacandole provecho a la tjta 3d que le compre a esta maquina.
Beryl con dual screen es todo un espectaculo, vean por uds mismos, disculpen [...]]]></description>
			<content:encoded><![CDATA[<p>Tras un par de guindadas y jugar unos 30 minutos con varias guias de instalacion, el empujon que me dio el pana <a href="http://www.skatox.co.ve/">Skatox</a> con su post sobre Beryl dio resultado.</p>
<p>Finalmente estoy sacandole provecho a la tjta 3d que le compre a esta maquina.</p>
<p>Beryl con dual screen es todo un espectaculo, vean por uds mismos, disculpen el video si se sale del frame, pero estaba grabando con la camara en el cuello pq necesitaba utilizar las dos manos para hacer el demo y no tenia nadie a la mano que sostuviera la camara&#8230;</p>
<p><object width="425" height="350"><param name="movie" value="http://www.youtube.com/v/FE9Dpf2u7zs"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/FE9Dpf2u7zs" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></embed></object><br />
(Hice la explicacion en ingles para agarrar mayor audiencia)</p>
<p>Vean el <a href="http://www.wedoit4you.com/news4you/redirect.php?title=Beryl+sin+XGL+%28con+los+Nuevos+drivers+NVIDIA%29&#038;post_id=188435&#038;query=INDEX_MAIN_TITLE">articulo de Skatox</a> si quieren montar Beryl, vale la pena.</p>
<p>Ojo, van a pasar mas de hora y media jugando con todas las configuraciones, y customizando su perfil.</p>
<p>Mis efectos favoritos son los de Zoom pq estoy ciego e perinola, los que permiten mostrar todas las ventanas que tienes abiertas, y por supuesto el cubo que es alucinante. Sobre todo si tienes por ejemplo, un video corriendo en una ventana en otro escritorio, y suena algo interesante, presionas Ctrl+Alt+Click izquierdo, y de forma intuitiva mueves el mouse en esa direccion, y es como si estuvieras volteando la cabeza a un lado del cuarto para ver lo que sale en el video del otro escritorio, muy muy pavo.</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://twitter.com/home?status=Finalmente+Tengo+Beryl+http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F11%2F16%2Ffinalmente-tengo-beryl%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F11%2F16%2Ffinalmente-tengo-beryl%2F&amp;title=Finalmente+Tengo+Beryl"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F11%2F16%2Ffinalmente-tengo-beryl%2F&amp;title=Finalmente+Tengo+Beryl"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F11%2F16%2Ffinalmente-tengo-beryl%2F&amp;title=Finalmente+Tengo+Beryl"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F11%2F16%2Ffinalmente-tengo-beryl%2F&amp;headline=Finalmente+Tengo+Beryl"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Finalmente+Tengo+Beryl&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F11%2F16%2Ffinalmente-tengo-beryl%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Finalmente+Tengo+Beryl&amp;u=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F11%2F16%2Ffinalmente-tengo-beryl%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Finalmente+Tengo+Beryl&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F11%2F16%2Ffinalmente-tengo-beryl%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Finalmente+Tengo+Beryl&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F11%2F16%2Ffinalmente-tengo-beryl%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Finalmente+Tengo+Beryl&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F11%2F16%2Ffinalmente-tengo-beryl%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F11%2F16%2Ffinalmente-tengo-beryl%2F&amp;title=Finalmente+Tengo+Beryl&amp;summary=&amp;source="><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F11%2F16%2Ffinalmente-tengo-beryl%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F11%2F16%2Ffinalmente-tengo-beryl%2F&amp;title=Finalmente+Tengo+Beryl"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.gubatron.com/blog/2006/11/16/finalmente-tengo-beryl/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Como actualizar a Ubuntu Edgy Eft</title>
		<link>http://www.gubatron.com/blog/2006/10/27/como-actualizar-a-ubuntu-edgy-eft/</link>
		<comments>http://www.gubatron.com/blog/2006/10/27/como-actualizar-a-ubuntu-edgy-eft/#comments</comments>
		<pubDate>Fri, 27 Oct 2006 16:44:22 +0000</pubDate>
		<dc:creator>gubatron</dc:creator>
				<category><![CDATA[Geeklife]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.gubatron.com/blog/2006/10/27/como-actualizar-a-ubuntu-edgy-eft/</guid>
		<description><![CDATA[
Saludos, a continuacion instrucciones para actualizar Dapper a Edgy Eft (6.10) utilizando apt-get
Edita tu /etc/apt/sources.list como super usuario.
(Ej. sudo emacs /etc/apt/sources.list)
Haz search-replace de &#8216;dapper&#8217; por &#8216;edgy&#8217;
Si no tienes emacs puedes simplemente utilizar sed y hacer el remplazo asi:
sudo sed -e &#8217;s/\sdapper/ edgy/g&#8217; -i /etc/apt/sources.list
Ahora debes bajarte los nuevos paquetes haciendo:
sudo apt-get update
Una vez que tienes [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://static.flickr.com/35/71573955_f418d8b6d9.jpg?v=0" /></p>
<p>Saludos, a continuacion instrucciones para actualizar Dapper a Edgy Eft (6.10) utilizando apt-get</p>
<p>Edita tu /etc/apt/sources.list como super usuario.<br />
(Ej. sudo emacs /etc/apt/sources.list)</p>
<p>Haz search-replace de &#8216;dapper&#8217; por &#8216;edgy&#8217;</p>
<p>Si no tienes emacs puedes simplemente utilizar sed y hacer el remplazo asi:</p>
<p><strong>sudo sed -e &#8217;s/\sdapper/ edgy/g&#8217; -i /etc/apt/sources.list</strong></p>
<p>Ahora debes bajarte los nuevos paquetes haciendo:</p>
<p><strong>sudo apt-get update</strong></p>
<p>Una vez que tienes todos los paquetes, es hora de descargar todo lo nuevo haciendo un upgrade a tu distribucion:</p>
<p><strong>sudo apt-get dist-upgrade</strong></p>
<p>Asegurate que todo haya terminado bien con los siguientes comandos.</p>
<p><strong>sudo apt-get -f install</p>
<p>sudo dpkg â€“configure -a</strong></p>
<p>Reinicia para que todos los cambios surgan efecto.</p>
<p>Disfruta.</p>
<p>No dejes de escucharme en el <a href="http://www.wedoit4you.com/podcast">podcast de wedoit4you.com</a></p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://twitter.com/home?status=Como+actualizar+a+Ubuntu+Edgy+Eft+http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F10%2F27%2Fcomo-actualizar-a-ubuntu-edgy-eft%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F10%2F27%2Fcomo-actualizar-a-ubuntu-edgy-eft%2F&amp;title=Como+actualizar+a+Ubuntu+Edgy+Eft"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F10%2F27%2Fcomo-actualizar-a-ubuntu-edgy-eft%2F&amp;title=Como+actualizar+a+Ubuntu+Edgy+Eft"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F10%2F27%2Fcomo-actualizar-a-ubuntu-edgy-eft%2F&amp;title=Como+actualizar+a+Ubuntu+Edgy+Eft"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F10%2F27%2Fcomo-actualizar-a-ubuntu-edgy-eft%2F&amp;headline=Como+actualizar+a+Ubuntu+Edgy+Eft"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Como+actualizar+a+Ubuntu+Edgy+Eft&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F10%2F27%2Fcomo-actualizar-a-ubuntu-edgy-eft%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Como+actualizar+a+Ubuntu+Edgy+Eft&amp;u=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F10%2F27%2Fcomo-actualizar-a-ubuntu-edgy-eft%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Como+actualizar+a+Ubuntu+Edgy+Eft&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F10%2F27%2Fcomo-actualizar-a-ubuntu-edgy-eft%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Como+actualizar+a+Ubuntu+Edgy+Eft&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F10%2F27%2Fcomo-actualizar-a-ubuntu-edgy-eft%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Como+actualizar+a+Ubuntu+Edgy+Eft&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F10%2F27%2Fcomo-actualizar-a-ubuntu-edgy-eft%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F10%2F27%2Fcomo-actualizar-a-ubuntu-edgy-eft%2F&amp;title=Como+actualizar+a+Ubuntu+Edgy+Eft&amp;summary=&amp;source="><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F10%2F27%2Fcomo-actualizar-a-ubuntu-edgy-eft%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F10%2F27%2Fcomo-actualizar-a-ubuntu-edgy-eft%2F&amp;title=Como+actualizar+a+Ubuntu+Edgy+Eft"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.gubatron.com/blog/2006/10/27/como-actualizar-a-ubuntu-edgy-eft/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Como matar varios procesos cuando killall no es una opcion.</title>
		<link>http://www.gubatron.com/blog/2006/08/15/como-matar-varios-procesos-cuando-killall-no-es-una-opcion/</link>
		<comments>http://www.gubatron.com/blog/2006/08/15/como-matar-varios-procesos-cuando-killall-no-es-una-opcion/#comments</comments>
		<pubDate>Wed, 16 Aug 2006 01:05:15 +0000</pubDate>
		<dc:creator>gubatron</dc:creator>
				<category><![CDATA[Geeklife]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.gubatron.com/blog/2006/08/15/como-matar-varios-procesos-cuando-killall-no-es-una-opcion/</guid>
		<description><![CDATA[A veces tienes un cronjob que se queda pegado por mucho rato, cuando haces
Code:
ps aux &#124; grep miPrograma
tienes un monton de instancias pegadas!!
Intentas hacer
killall miPrograma
pero no funciona porque quizas es un programa que estas arrancando con un interprete, como python, o php, o perl.
Ni de vaina puedes hacer
killall php
porque hay otros procesos por ahi que [...]]]></description>
			<content:encoded><![CDATA[<p>A veces tienes un cronjob que se queda pegado por mucho rato, cuando haces<br />
Code:<br />
ps aux | grep miPrograma<br />
tienes un monton de instancias pegadas!!</p>
<p>Intentas hacer</p>
<p><code>killall miPrograma</code></p>
<p>pero no funciona porque quizas es un programa que estas arrancando con un interprete, como python, o php, o perl.</p>
<p>Ni de vaina puedes hacer</p>
<p><code>killall php</code></p>
<p>porque hay otros procesos por ahi que necesitas corriendo&#8230; que haces?</p>
<p><code>ps aux | egrep miPrograma | awk {'print $2'} | xargs kill -KILL</code></p>
<p>Esta es la explicacion de los comandos utilizados.</p>
<p>ps aux, lista los procesos<br />
egrep, filtra aquellos procesos que te intersan<br />
awk {&#8216;print $2&#8242;}, imprime la segunda columna del proceso listado, es decir el PID<br />
xargs kill -KILL, agarra la salida de awk, y la pasa como parametro a kill</p>
<p>Puedes poner esto en un script bash o en un alias, y tener tu propio myKillall
<programa>, y perro a cagar.</p>
<p>Viva Linux.</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://twitter.com/home?status=Como+matar+varios+procesos+cuando+kil...+http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F08%2F15%2Fcomo-matar-varios-procesos-cuando-killall-no-es-una-opcion%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F08%2F15%2Fcomo-matar-varios-procesos-cuando-killall-no-es-una-opcion%2F&amp;title=Como+matar+varios+procesos+cuando+killall+no+es+una+opcion."><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F08%2F15%2Fcomo-matar-varios-procesos-cuando-killall-no-es-una-opcion%2F&amp;title=Como+matar+varios+procesos+cuando+killall+no+es+una+opcion."><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F08%2F15%2Fcomo-matar-varios-procesos-cuando-killall-no-es-una-opcion%2F&amp;title=Como+matar+varios+procesos+cuando+killall+no+es+una+opcion."><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F08%2F15%2Fcomo-matar-varios-procesos-cuando-killall-no-es-una-opcion%2F&amp;headline=Como+matar+varios+procesos+cuando+killall+no+es+una+opcion."><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Como+matar+varios+procesos+cuando+killall+no+es+una+opcion.&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F08%2F15%2Fcomo-matar-varios-procesos-cuando-killall-no-es-una-opcion%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Como+matar+varios+procesos+cuando+killall+no+es+una+opcion.&amp;u=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F08%2F15%2Fcomo-matar-varios-procesos-cuando-killall-no-es-una-opcion%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Como+matar+varios+procesos+cuando+killall+no+es+una+opcion.&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F08%2F15%2Fcomo-matar-varios-procesos-cuando-killall-no-es-una-opcion%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Como+matar+varios+procesos+cuando+killall+no+es+una+opcion.&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F08%2F15%2Fcomo-matar-varios-procesos-cuando-killall-no-es-una-opcion%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Como+matar+varios+procesos+cuando+killall+no+es+una+opcion.&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F08%2F15%2Fcomo-matar-varios-procesos-cuando-killall-no-es-una-opcion%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F08%2F15%2Fcomo-matar-varios-procesos-cuando-killall-no-es-una-opcion%2F&amp;title=Como+matar+varios+procesos+cuando+killall+no+es+una+opcion.&amp;summary=&amp;source="><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F08%2F15%2Fcomo-matar-varios-procesos-cuando-killall-no-es-una-opcion%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F08%2F15%2Fcomo-matar-varios-procesos-cuando-killall-no-es-una-opcion%2F&amp;title=Como+matar+varios+procesos+cuando+killall+no+es+una+opcion."><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.gubatron.com/blog/2006/08/15/como-matar-varios-procesos-cuando-killall-no-es-una-opcion/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Instalar Linux Ubuntu es mas f&#225;cil y r&#225;pido que instalar Windows XP</title>
		<link>http://www.gubatron.com/blog/2006/07/28/instalar-linux-ubuntu-es-mas-fcil-y-rpido-que-instalar-windows-xp/</link>
		<comments>http://www.gubatron.com/blog/2006/07/28/instalar-linux-ubuntu-es-mas-fcil-y-rpido-que-instalar-windows-xp/#comments</comments>
		<pubDate>Fri, 28 Jul 2006 12:09:00 +0000</pubDate>
		<dc:creator>gubatron</dc:creator>
				<category><![CDATA[Geeklife]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.gubatron.com/blog/2006/07/28/instalar-linux-ubuntu-es-mas-fcil-y-rpido-que-instalar-windows-xp/</guid>
		<description><![CDATA[
Sin tener nada puedes meter el CD de instalacion y ver si funciona, sin tener que instalarlo, luego puedes correr el CD desde ahi. No entiendes?
Observa. La instalacion dura aproximadamente unos 20 a 25 minutos en un AMD64 de 2.0Ghz.
]]></description>
			<content:encoded><![CDATA[<p><object width="425" height="350"><param name="movie" value="http://www.youtube.com/v/H2cgtwdnIRI"></param><embed src="http://www.youtube.com/v/H2cgtwdnIRI" type="application/x-shockwave-flash" width="425" height="350"></embed></object></p>
<p>Sin tener nada puedes meter el CD de instalacion y ver si funciona, sin tener que instalarlo, luego puedes correr el CD desde ahi. No entiendes?<br />
Observa. La instalacion dura aproximadamente unos 20 a 25 minutos en un AMD64 de 2.0Ghz.</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://twitter.com/home?status=Instalar+Linux+Ubuntu+es+mas+f...+http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F07%2F28%2Finstalar-linux-ubuntu-es-mas-fcil-y-rpido-que-instalar-windows-xp%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F07%2F28%2Finstalar-linux-ubuntu-es-mas-fcil-y-rpido-que-instalar-windows-xp%2F&amp;title=Instalar+Linux+Ubuntu+es+mas+f%26aacute%3Bcil+y+r%26aacute%3Bpido+que+instalar+Windows+XP"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F07%2F28%2Finstalar-linux-ubuntu-es-mas-fcil-y-rpido-que-instalar-windows-xp%2F&amp;title=Instalar+Linux+Ubuntu+es+mas+f%26aacute%3Bcil+y+r%26aacute%3Bpido+que+instalar+Windows+XP"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F07%2F28%2Finstalar-linux-ubuntu-es-mas-fcil-y-rpido-que-instalar-windows-xp%2F&amp;title=Instalar+Linux+Ubuntu+es+mas+f%26aacute%3Bcil+y+r%26aacute%3Bpido+que+instalar+Windows+XP"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F07%2F28%2Finstalar-linux-ubuntu-es-mas-fcil-y-rpido-que-instalar-windows-xp%2F&amp;headline=Instalar+Linux+Ubuntu+es+mas+f%26aacute%3Bcil+y+r%26aacute%3Bpido+que+instalar+Windows+XP"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Instalar+Linux+Ubuntu+es+mas+f%26aacute%3Bcil+y+r%26aacute%3Bpido+que+instalar+Windows+XP&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F07%2F28%2Finstalar-linux-ubuntu-es-mas-fcil-y-rpido-que-instalar-windows-xp%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Instalar+Linux+Ubuntu+es+mas+f%26aacute%3Bcil+y+r%26aacute%3Bpido+que+instalar+Windows+XP&amp;u=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F07%2F28%2Finstalar-linux-ubuntu-es-mas-fcil-y-rpido-que-instalar-windows-xp%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Instalar+Linux+Ubuntu+es+mas+f%26aacute%3Bcil+y+r%26aacute%3Bpido+que+instalar+Windows+XP&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F07%2F28%2Finstalar-linux-ubuntu-es-mas-fcil-y-rpido-que-instalar-windows-xp%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Instalar+Linux+Ubuntu+es+mas+f%26aacute%3Bcil+y+r%26aacute%3Bpido+que+instalar+Windows+XP&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F07%2F28%2Finstalar-linux-ubuntu-es-mas-fcil-y-rpido-que-instalar-windows-xp%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Instalar+Linux+Ubuntu+es+mas+f%26aacute%3Bcil+y+r%26aacute%3Bpido+que+instalar+Windows+XP&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F07%2F28%2Finstalar-linux-ubuntu-es-mas-fcil-y-rpido-que-instalar-windows-xp%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F07%2F28%2Finstalar-linux-ubuntu-es-mas-fcil-y-rpido-que-instalar-windows-xp%2F&amp;title=Instalar+Linux+Ubuntu+es+mas+f%26aacute%3Bcil+y+r%26aacute%3Bpido+que+instalar+Windows+XP&amp;summary=&amp;source="><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F07%2F28%2Finstalar-linux-ubuntu-es-mas-fcil-y-rpido-que-instalar-windows-xp%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F07%2F28%2Finstalar-linux-ubuntu-es-mas-fcil-y-rpido-que-instalar-windows-xp%2F&amp;title=Instalar+Linux+Ubuntu+es+mas+f%26aacute%3Bcil+y+r%26aacute%3Bpido+que+instalar+Windows+XP"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.gubatron.com/blog/2006/07/28/instalar-linux-ubuntu-es-mas-fcil-y-rpido-que-instalar-windows-xp/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Trac + SVN : The best shit ever for your software project</title>
		<link>http://www.gubatron.com/blog/2006/06/21/trac-svn-the-best-shit-ever-for-your-software-project/</link>
		<comments>http://www.gubatron.com/blog/2006/06/21/trac-svn-the-best-shit-ever-for-your-software-project/#comments</comments>
		<pubDate>Thu, 22 Jun 2006 02:19:36 +0000</pubDate>
		<dc:creator>gubatron</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Geeklife]]></category>
		<category><![CDATA[Gubatron]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Random Stuff]]></category>

		<guid isPermaLink="false">http://www.gubatron.com/blog/?p=330</guid>
		<description><![CDATA[
The company I came to work for knew I had some experience with subversion (back at LimeWire and with the migration of Frostwire&#8217;s CVS Repo no SourceForge.net to Subversion) so that&#8217;s one of the first things I did here.
Subversion is a pretty useful tool, specially if you play with the hooks, e.g., send emails to [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.edgewall.com/gfx/trac_logo.png"></p>
<p>The company I came to work for knew I had some experience with subversion (back at <a href="http://www.limewire.com">LimeWire</a> and with the migration of <a href="http://www.frostwire.com">Frostwire&#8217;s</a> CVS Repo no <a href="http://www.sf.net">SourceForge.net</a> to Subversion) so that&#8217;s one of the first things I did here.</p>
<p>Subversion is a pretty useful tool, specially if you play with the hooks, e.g., send emails to members of the teams on post-commit, or update a common sandbox on post-commit so that everyone can see how the trunk of your repository is at the moment (stable or not)&#8230;</p>
<p>But it&#8217;s not nearly as cool if you&#8217;re not using Trac to manage the project.</p>
<p>We needed a simple tool to handle Bug tracking, and this Tool has become my addiction ever since I finished configuring it, now I use it as a personal &#8220;post-it&#8221; tool, no more KDE Yellow post it notes (yeah, I quit a long time ago on the real post it notes), now I write everything down on Trac, and I pretty much have two geek addictions when it comes to work now:</p>
<li>Try to clean all my tickets</li>
<li>See how many commits and lines of code I added/removed throuout the day</li>
<p>The results are you&#8217;re being very productive and procastinate on crap like email, irc or IM.</p>
<p>I stopped people comming to my desk, now they have to enter a ticket, and it seems people are liking the mix of svn+trac a lot. Even the graphic designers are using their command line on the macs to do their commits and we get all the diffs by mail. All this happened in like 3 weeks, pretty amazing acceptance to change where I work.</p>
<p>but this post, is not to advertise or evangelize the tools I use for work (although so far I hope I got you pumped on using trac and subversion if you even know what I&#8217;m talking about), it&#8217;s to document how the hell I installed it.</p>
<p>Installing trac was a painful process, I admit, and I&#8217;m still not done, just today I&#8217;m installing my first plugins, but so far, I have it set so that, we have &#8216;user accounts&#8217;, we can browse our repository and diffs through trac, and we can make references to revision changes on the wiki (cause yes, trac is also a wiki, so we&#8217;re also using it as our new intranet web page) just by putting something like &#8216;r35&#8242; , and that will automatically make a link when you submit a ticket or save a wiki page to the diff on r35.</p>
<p>So before you hate me, know in advanced something I hated.</p>
<p><strong>If you intend to use trac with subversion, trac must be on the same machine</strong></p>
<p>Yes, it still doesn&#8217;t support browsing a remote repository. So what did I do?</p>
<p>I have a cronjob that rsyncs the repository every 5 minutes. You can also have it the other way if the server where the repository isn&#8217;t as loaded as ours, you can do the rsync to the machine where trac lives on the subversion hook for post-commit.</p>
<p>So here is the entries I put on my apache2.conf on the machine that runs trac.<br />
<code><br />
   #Mod python configuration<br />
   SetHandler mod_python<br />
   PythonHandler trac.web.modpython_frontend<br />
   PythonOption TracEnv /var/www/trac_projects/flycell<br />
   PythonOption TracUriRoot /trac/flycell</p>
<p>   #Authentication configuration<br />
   AuthType Basic<br />
   AuthName "Trac at Flycell.com"</p>
<p>   #Our password file<br />
   AuthUserFile /var/www/trac_projects/flycell/conf/auth_file</p>
<p>   Require valid-user</p>
<p>   #Authentication configuration<br />
   AuthType Basic<br />
   AuthName "Trac at Flycell.com"</p>
<p>   #Our password file<br />
   AuthUserFile /var/www/trac_projects/flycell/conf/auth_file</p>
<p>   Require valid-user</p>
<p>  DAV svn<br />
  SVNPath /flycell_rsynced_svn</p>
<p></code></p>
<p>And here&#8217;s what&#8217;s on my trac.ini<br />
<code><br />
[wiki]<br />
ignore_missing_pages = false</p>
<p>[changeset]<br />
max_diff_bytes = 10000000<br />
wiki_format_messages = true<br />
max_diff_files = 0</p>
<p>[logging]<br />
log_file = trac.log<br />
log_level = DEBUG<br />
log_type = stderr</p>
<p>[trac]<br />
default_charset = iso-8859-15<br />
ignore_auth_case = false<br />
permission_store = DefaultPermissionStore<br />
check_auth_ip = true<br />
database = sqlite:db/trac.db<br />
authz_module_name =<br />
templates_dir = /usr/share/trac/templates<br />
default_handler = WikiModule<br />
base_url = http://192.168.208.230/trac/flycell<br />
metanav = login,logout,settings,help,about<br />
htdocs_location =<br />
mainnav = wiki,timeline,roadmap,browser,tickets,newticket,search<br />
repository_type = svn<br />
repository_dir = /flycell_rsynced_svn/trunk/1.0/<br />
authz_file = /var/www/trac_projects/flycell/conf/auth_file<br />
authz_module_name = flycell_svn_repo</p>
<p>[project]<br />
url = http://192.168.208.230:8000<br />
icon = common/trac.ico<br />
name = Flycell.com<br />
descr = Flycell.com Project Management<br />
footer = Visit the Trac open source project at<br /><a href="http://trac.edgewall.com/">http://trac.edgewall.com/</a></p>
<p>[notification]<br />
always_notify_owner = true<br />
smtp_always_cc = true<br />
smtp_password =<br />
smtp_enabled = true<br />
smtp_replyto =<br />
smtp_port = 25<br />
always_notify_reporter = true<br />
smtp_from = trac-do-not-reply@flycell.com<br />
smtp_server = mail.flycell.com<br />
smtp_always_bcc = me@flycell.com someone@flycell.com<br />
mime_encoding = base64<br />
maxheaderlen = 160<br />
use_public_cc = true<br />
smtp_user =</p>
<p>[header_logo]<br />
src = http://www.flycell.com/template/shared/images/logo.gif<br />
alt =<br />
height = 63<br />
link = ./<br />
width = 157</p>
<p>[mimeviewer]<br />
php_path = php<br />
enscript_path = enscript<br />
tab_width = 8<br />
max_preview_size = 262144</p>
<p>[attachment]<br />
render_unsafe_content = false<br />
max_size = 262144</p>
<p>[timeline]<br />
changeset_show_files = 0<br />
ticket_show_details = false<br />
default_daysback = 30<br />
changeset_long_messages = false</p>
<p>[ticket]<br />
default_version =<br />
default_component = flycell.com<br />
default_type = defect<br />
restrict_owner = false<br />
default_milestone =<br />
default_priority = major</p>
<p>[browser]<br />
hide_properties = svk:merge<br />
downloadable_paths = ['/trunk', '/branches/*', '/tags/*']<br />
</code></p>
<p>That trac ini took a long time to figure out, specially for the subversion repository, until I found out It couldn&#8217;t work remotely, then I had permission problems  that I finally resolved after hours and hours of googling that I had to have this at the end of my authz_file&#8230;.</p>
<p><code><br />
[auth]<br />
usernameHere:z6unzMUVK6s.o<br />
anotherUserHere:dkajsl22dsjkl</p>
<p>[flycell_svn_repo:/]<br />
* = rw<br />
</code></p>
<p>The [auth] section of that file, contains users and crypted passwords created with<br />
<code><br />
htpasswd2 -nb username passwordhere<br />
</code></p>
<p>I basically copied and pasted the output on that file, and that served as my .htpasswd file for a while, until I knew that It had to have the name of the repository there&#8230; as specified on the trac.ini</p>
<p>They should make all this more clear, thank god there are other geeks like me who like to document stuff.</p>
<p>Hope you find this post useful in the future if configuring trac.</p>
<p>I&#8217;m not gonna cover how to install the plugins cause I&#8217;m not done yet with that, but it&#8217;s going smooth, just know that you&#8217;ll need to install a <a href="http://peak.telecommunity.com/dist/ez_setup.py">script</a> before hand. I actually installed already the TracWebAdmin cause I need to give people access to the management of trac and I don&#8217;t want to have them on the console cause they&#8217;ll get lost.</p>
<p>Enjoy</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://twitter.com/home?status=Trac+%2B+SVN+%3A+The+best+shit+ever+for+your+s...+http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F06%2F21%2Ftrac-svn-the-best-shit-ever-for-your-software-project%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F06%2F21%2Ftrac-svn-the-best-shit-ever-for-your-software-project%2F&amp;title=Trac+%2B+SVN+%3A+The+best+shit+ever+for+your+software+project"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F06%2F21%2Ftrac-svn-the-best-shit-ever-for-your-software-project%2F&amp;title=Trac+%2B+SVN+%3A+The+best+shit+ever+for+your+software+project"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F06%2F21%2Ftrac-svn-the-best-shit-ever-for-your-software-project%2F&amp;title=Trac+%2B+SVN+%3A+The+best+shit+ever+for+your+software+project"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F06%2F21%2Ftrac-svn-the-best-shit-ever-for-your-software-project%2F&amp;headline=Trac+%2B+SVN+%3A+The+best+shit+ever+for+your+software+project"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Trac+%2B+SVN+%3A+The+best+shit+ever+for+your+software+project&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F06%2F21%2Ftrac-svn-the-best-shit-ever-for-your-software-project%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Trac+%2B+SVN+%3A+The+best+shit+ever+for+your+software+project&amp;u=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F06%2F21%2Ftrac-svn-the-best-shit-ever-for-your-software-project%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Trac+%2B+SVN+%3A+The+best+shit+ever+for+your+software+project&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F06%2F21%2Ftrac-svn-the-best-shit-ever-for-your-software-project%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Trac+%2B+SVN+%3A+The+best+shit+ever+for+your+software+project&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F06%2F21%2Ftrac-svn-the-best-shit-ever-for-your-software-project%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Trac+%2B+SVN+%3A+The+best+shit+ever+for+your+software+project&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F06%2F21%2Ftrac-svn-the-best-shit-ever-for-your-software-project%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F06%2F21%2Ftrac-svn-the-best-shit-ever-for-your-software-project%2F&amp;title=Trac+%2B+SVN+%3A+The+best+shit+ever+for+your+software+project&amp;summary=&amp;source="><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F06%2F21%2Ftrac-svn-the-best-shit-ever-for-your-software-project%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F06%2F21%2Ftrac-svn-the-best-shit-ever-for-your-software-project%2F&amp;title=Trac+%2B+SVN+%3A+The+best+shit+ever+for+your+software+project"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.gubatron.com/blog/2006/06/21/trac-svn-the-best-shit-ever-for-your-software-project/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My Favorite Konsole Custom Keyboard Shortcuts</title>
		<link>http://www.gubatron.com/blog/2006/06/09/my-favorite-konsole-custom-keyboard-shortcuts/</link>
		<comments>http://www.gubatron.com/blog/2006/06/09/my-favorite-konsole-custom-keyboard-shortcuts/#comments</comments>
		<pubDate>Fri, 09 Jun 2006 23:00:03 +0000</pubDate>
		<dc:creator>gubatron</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Diary]]></category>
		<category><![CDATA[Geeklife]]></category>
		<category><![CDATA[Gubatron]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Random Stuff]]></category>

		<guid isPermaLink="false">http://www.gubatron.com/blog/?p=323</guid>
		<description><![CDATA[
F2:  Rename Session
F11: Full Screen Mode
Shift+Up : New Session
Shift+Down: Close Session
Shift+Right: Go to Next Session
Shift+Left: Go to Right Session
Gotta love KDE&#8217;s Konsole.
]]></description>
			<content:encoded><![CDATA[<p><img src="http://static.flickr.com/67/163671444_25ca590085.jpg?v=0"></p>
<p><strong>F2</strong>:  Rename Session<br />
<strong>F11</strong>: Full Screen Mode<br />
<strong>Shift+Up</strong> : New Session<br />
<strong>Shift+Down</strong>: Close Session<br />
<strong>Shift+Right</strong>: Go to Next Session<br />
<strong>Shift+Left</strong>: Go to Right Session</p>
<p>Gotta love KDE&#8217;s Konsole.</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://twitter.com/home?status=My+Favorite+Konsole+Custom+Keyboard+Shortcuts+http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F06%2F09%2Fmy-favorite-konsole-custom-keyboard-shortcuts%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F06%2F09%2Fmy-favorite-konsole-custom-keyboard-shortcuts%2F&amp;title=My+Favorite+Konsole+Custom+Keyboard+Shortcuts"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F06%2F09%2Fmy-favorite-konsole-custom-keyboard-shortcuts%2F&amp;title=My+Favorite+Konsole+Custom+Keyboard+Shortcuts"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F06%2F09%2Fmy-favorite-konsole-custom-keyboard-shortcuts%2F&amp;title=My+Favorite+Konsole+Custom+Keyboard+Shortcuts"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F06%2F09%2Fmy-favorite-konsole-custom-keyboard-shortcuts%2F&amp;headline=My+Favorite+Konsole+Custom+Keyboard+Shortcuts"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=My+Favorite+Konsole+Custom+Keyboard+Shortcuts&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F06%2F09%2Fmy-favorite-konsole-custom-keyboard-shortcuts%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=My+Favorite+Konsole+Custom+Keyboard+Shortcuts&amp;u=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F06%2F09%2Fmy-favorite-konsole-custom-keyboard-shortcuts%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=My+Favorite+Konsole+Custom+Keyboard+Shortcuts&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F06%2F09%2Fmy-favorite-konsole-custom-keyboard-shortcuts%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=My+Favorite+Konsole+Custom+Keyboard+Shortcuts&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F06%2F09%2Fmy-favorite-konsole-custom-keyboard-shortcuts%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=My+Favorite+Konsole+Custom+Keyboard+Shortcuts&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F06%2F09%2Fmy-favorite-konsole-custom-keyboard-shortcuts%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F06%2F09%2Fmy-favorite-konsole-custom-keyboard-shortcuts%2F&amp;title=My+Favorite+Konsole+Custom+Keyboard+Shortcuts&amp;summary=&amp;source="><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F06%2F09%2Fmy-favorite-konsole-custom-keyboard-shortcuts%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F06%2F09%2Fmy-favorite-konsole-custom-keyboard-shortcuts%2F&amp;title=My+Favorite+Konsole+Custom+Keyboard+Shortcuts"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.gubatron.com/blog/2006/06/09/my-favorite-konsole-custom-keyboard-shortcuts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Un Tip Moribundo de KDE (dcop)</title>
		<link>http://www.gubatron.com/blog/2006/06/07/un-tip-moribundo-de-kde-dcop/</link>
		<comments>http://www.gubatron.com/blog/2006/06/07/un-tip-moribundo-de-kde-dcop/#comments</comments>
		<pubDate>Thu, 08 Jun 2006 03:59:27 +0000</pubDate>
		<dc:creator>gubatron</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Geeklife]]></category>
		<category><![CDATA[Gubatron]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.gubatron.com/blog/?p=322</guid>
		<description><![CDATA[En un episodio del podcast de wedoit4you.com mencione que uno de los atractivos de KDE es su poder de integracion, en el episodio pasado comente nuevamente sobre el tema y hable de DCOP en KDE.
Creo que es hora que ilustre un poco mas como utilizar DCOP (que va a ser remplazado por DBUS y que [...]]]></description>
			<content:encoded><![CDATA[<p>En un episodio del <a href="http://www.wedoit4you.com/podcast">podcast de wedoit4you.com</a> mencione que uno de los atractivos de KDE es su poder de integracion, en el episodio pasado comente nuevamente sobre el tema y hable de DCOP en KDE.</p>
<p>Creo que es hora que ilustre un poco mas como utilizar DCOP (que va a ser remplazado por DBUS y que aun no le he echado mano).</p>
<p>Supon que quieres utilizar Ctrl+Alt+M para mostrar el escritorio, pon que no ten gusta tener que hacer click en el boton opcional que puedes poner en el kicker de KDE.</p>
<p>Sencillo, puedes acceder a esa funcionalidad del kicker, via dcop.</p>
<p>Si quieres hacerlo de manera grafica puedes abrir <strong>kdcop</strong> y explorar todos los metodos<br />
disponibles del Kicker.</p>
<p>Vas a encontrar lo siguiente.<br />
<img src="http://static.flickr.com/46/162581381_c7d61ba5db_o.png" /></p>
<p>Si ejecutas ese metodo <strong>toggleShowDesktop()</strong> vas a esconder o mostrar todas las ventanas. Nice no?</p>
<p>Como accedes esto via linea de comandos&#8230;</p>
<p>Juega un poco, y siente el poder:</p>
<p>Si hacemos unicamente <strong>dcop</strong><br />
<code><br />
anleon@ubuntu:~$ dcop<br />
konqueror-24277<br />
kwin<br />
kicker<br />
katapult-7854<br />
konsole-7907<br />
amarok<br />
kded<br />
katapult-7816<br />
knotify<br />
kio_uiserver<br />
kcookiejar<br />
klauncher<br />
knotes<br />
khotkeys<br />
kopete<br />
kbluetoothd<br />
kdesktop<br />
klipper<br />
ksmserver<br />
kaccess<br />
</code></p>
<p>Nos mostrara una lista de programas que estan registrados en DCOP. Si quiero ver lo que hay adentro del kicker por ejemplo (El kicker es la barra donde tenemos los iconos, y programas abiertos)</p>
<p><code><br />
anleon@ubuntu:~$ dcop kicker<br />
qt<br />
0x82a5a7c<br />
0x82b7d04<br />
ClockApplet<br />
KDirNotify-1<br />
KIO::Observer<br />
KIO::Scheduler<br />
MainApplication-Interface<br />
MenuManager<br />
Mixer0<br />
Panel (default)<br />
kicker<br />
ksycoca<br />
</code></p>
<p>Veo que kicker, tiene un objeto &#8220;kicker&#8221; quizas este es el handle al Kicker como tal, veamos</p>
<p><code><br />
anleon@ubuntu:~$ dcop kicker kicker<br />
QCStringList interfaces()<br />
QCStringList functions()<br />
void configure()<br />
void restart()<br />
void addExtension(QString desktopFile)<br />
void popupKMenu(QPoint globalPos)<br />
void clearQuickStartMenu()<br />
bool highlightMenuItem(QString menuId)<br />
void showKMenu()<br />
void toggleShowDesktop()<br />
bool desktopShowing()<br />
void showConfig(QString config,int page)<br />
void showTaskBarConfig()<br />
void configureMenubar()<br />
</code></p>
<p>Y ya tienen la idea&#8230;(dcop kicker kicker toggleShowDesktop) y ya se pueden imaginar lo pansa que pudo ser programar ese KDCOP, aunque estoy seguro que ellos utilizaron directamente la API de DCOP para mostrarte todo lo que esta disponible.</p>
<p>Entonces&#8230; supon que quieres por ejemplo, de una forma bien rebuscada, poner en Ctrl+Alt+M que se muestre o se escondan las ventanas abiertas&#8230;</p>
<p>Una forma podria ser, haces un programita bash en un directorio ~/bin que usas generalmente para utilidades creadas por ti&#8230;..</p>
<p><code><br />
anleon@ubuntu:~$  cat ~/bin/toogleDesktop.sh<br />
#!/bin/bash<br />
dcop kicker kicker toggleShowDesktop<br />
(Presiona Ctrl+D para guardar)</p>
<p>anleon@ubuntu:~$ chmod +x ~/bin/toggleDesktop.sh<br />
</code></p>
<p>Total que tienes tu tonto programa, si quieres lo ejecutas</p>
<p><code><br />
anleon@ubuntu:~$ ./bin/toggleDesktop.sh<br />
</code></p>
<p>Magia!, se esconden, o se muestran las ventanas, vuelve a intentar para que veas.</p>
<p>Empiezas a ver el poder&#8230;</p>
<p>Ahora simplemente agrega este programa al submenu de utilidades de KDE (Si, donde esta la K, dale click,<br />
y luego dale click derecho al menu de utilidades &#8220;Edit Menu&#8221;&#8230;), y asignale una combinacion de teclas Ctrl+Alt+M, y listo.</p>
<p>Ahora solo deja volar tu imaginacion, e imaginate todo lo que le puedes agregar a tu aplicacion, puedes interactuar con muchos programas que estan instalados en tu maquina con simples llamadas DCOP.</p>
<p>Ahora&#8230; el equipo de KDE anuncio recientemente que DCOP esta descontinuado (awww), pero al menos tienes una idea de que se trata, y ahora KDE va a utilizar D-BUS.</p>
<p>Voy a investigar al respecto, y cuando tenga un ejemplo de como utilizarlo, escribo un tutorial similar a este.</p>
<p>Saludos.</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://twitter.com/home?status=Un+Tip+Moribundo+de+KDE+%28dcop%29+http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F06%2F07%2Fun-tip-moribundo-de-kde-dcop%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F06%2F07%2Fun-tip-moribundo-de-kde-dcop%2F&amp;title=Un+Tip+Moribundo+de+KDE+%28dcop%29"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F06%2F07%2Fun-tip-moribundo-de-kde-dcop%2F&amp;title=Un+Tip+Moribundo+de+KDE+%28dcop%29"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F06%2F07%2Fun-tip-moribundo-de-kde-dcop%2F&amp;title=Un+Tip+Moribundo+de+KDE+%28dcop%29"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F06%2F07%2Fun-tip-moribundo-de-kde-dcop%2F&amp;headline=Un+Tip+Moribundo+de+KDE+%28dcop%29"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Un+Tip+Moribundo+de+KDE+%28dcop%29&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F06%2F07%2Fun-tip-moribundo-de-kde-dcop%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Un+Tip+Moribundo+de+KDE+%28dcop%29&amp;u=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F06%2F07%2Fun-tip-moribundo-de-kde-dcop%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Un+Tip+Moribundo+de+KDE+%28dcop%29&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F06%2F07%2Fun-tip-moribundo-de-kde-dcop%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Un+Tip+Moribundo+de+KDE+%28dcop%29&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F06%2F07%2Fun-tip-moribundo-de-kde-dcop%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Un+Tip+Moribundo+de+KDE+%28dcop%29&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F06%2F07%2Fun-tip-moribundo-de-kde-dcop%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F06%2F07%2Fun-tip-moribundo-de-kde-dcop%2F&amp;title=Un+Tip+Moribundo+de+KDE+%28dcop%29&amp;summary=&amp;source="><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F06%2F07%2Fun-tip-moribundo-de-kde-dcop%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F06%2F07%2Fun-tip-moribundo-de-kde-dcop%2F&amp;title=Un+Tip+Moribundo+de+KDE+%28dcop%29"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.gubatron.com/blog/2006/06/07/un-tip-moribundo-de-kde-dcop/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>KDE Multimedia 2006</title>
		<link>http://www.gubatron.com/blog/2006/05/24/kde-multimedia-2006/</link>
		<comments>http://www.gubatron.com/blog/2006/05/24/kde-multimedia-2006/#comments</comments>
		<pubDate>Thu, 25 May 2006 00:03:28 +0000</pubDate>
		<dc:creator>gubatron</dc:creator>
				<category><![CDATA[Geeklife]]></category>
		<category><![CDATA[Gubatron]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Random Stuff]]></category>

		<guid isPermaLink="false">http://www.gubatron.com/blog/?p=317</guid>
		<description><![CDATA[I hope my friend Kakei reads this post, we sure have complained a lot about Linux&#8217;s multimedia support, this way he&#8217;ll know something is being done. Look!
From the 26th to the 28th of May, an international KDE developer meeting about multimedia will take place in the Annahoeve in the Netherlands. Its aim will be to [...]]]></description>
			<content:encoded><![CDATA[<p>I hope my friend <a href="http://www.kakei.us">Kakei</a> reads this post, we sure have complained a lot about Linux&#8217;s multimedia support, this way he&#8217;ll know something is being done. Look!</p>
<blockquote><p>From the 26th to the 28th of May, an <a href="http://www.kde.nl/agenda/2006-05-k3m/index-en.php">international KDE developer meeting about multimedia</a> will take place in the Annahoeve in the Netherlands. Its aim will be to make the pervasive role of multimedia less of a burden to manage for users and developers.</p>
<p>People experience multimedia every day. Sound and animation are as common as written text. With the advent of more powerfull desktop computers, users want to be able to have the same experience while working at their computer as in real life. They want to play and organize their favorite music, watch a movie, and burn their own CDs and DVDs without having to put great effort into getting the respective applications to work. A professional desktop environment should aim to offer these by default, with good support for the majority of possible hardware configurations, in order to gain a solid user base.</p></blockquote>
<p><img src="http://static.flickr.com/33/37230191_7fc7081016_m.jpg">So I found out about this through the <a href="http://amarok.kde.org">amarok</a> <a href="http://amarok.kde.org/blog/archives/92-gearing-up.html">developer list</a>, some of the team members are arranging meetings in Amsterdam, Hostel rooms, presentations,etc. Must be very exciting to be there for the KDE Multimedia 2006.</p>
<p>It&#8217;s amazing how such a great system is put together with people from all over the world.</p>
<p>The <a href="http://www.kde.nl/agenda/2006-05-k3m/agenda.php?lang=en">Agenda</a> reminds me of the <a href="http://flickr.com/photos/tags/snowsprint2006">Plone Sprint I attended in Austria in February this year</a>. Coding, Fun, Coding, a few informal presentations of what teams are working on, and at the end of the day wrap ups where everybody says what they&#8217;ve accomplished, plus also discussing and asking question to teams doing related work. Wish I could be there on the KDE Multimedia 2006, but first I guess I should become a KDE dev. :p</p>
<p>Hopefully we&#8217;ll do something similar for ,<a href="http://www.frostwire.com">Frostwire</a> in the future.</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://twitter.com/home?status=KDE+Multimedia+2006+http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F05%2F24%2Fkde-multimedia-2006%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F05%2F24%2Fkde-multimedia-2006%2F&amp;title=KDE+Multimedia+2006"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F05%2F24%2Fkde-multimedia-2006%2F&amp;title=KDE+Multimedia+2006"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F05%2F24%2Fkde-multimedia-2006%2F&amp;title=KDE+Multimedia+2006"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F05%2F24%2Fkde-multimedia-2006%2F&amp;headline=KDE+Multimedia+2006"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=KDE+Multimedia+2006&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F05%2F24%2Fkde-multimedia-2006%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=KDE+Multimedia+2006&amp;u=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F05%2F24%2Fkde-multimedia-2006%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=KDE+Multimedia+2006&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F05%2F24%2Fkde-multimedia-2006%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=KDE+Multimedia+2006&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F05%2F24%2Fkde-multimedia-2006%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=KDE+Multimedia+2006&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F05%2F24%2Fkde-multimedia-2006%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F05%2F24%2Fkde-multimedia-2006%2F&amp;title=KDE+Multimedia+2006&amp;summary=&amp;source="><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F05%2F24%2Fkde-multimedia-2006%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F05%2F24%2Fkde-multimedia-2006%2F&amp;title=KDE+Multimedia+2006"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.gubatron.com/blog/2006/05/24/kde-multimedia-2006/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Episodio 0015 &#8211; El poder de KDE Desktop con Simon Castillo (Especial de una hora)</title>
		<link>http://www.gubatron.com/blog/2006/05/18/episodio-0015-el-poder-de-kde-desktop-con-simon-castillo-especial-de-una-hora/</link>
		<comments>http://www.gubatron.com/blog/2006/05/18/episodio-0015-el-poder-de-kde-desktop-con-simon-castillo-especial-de-una-hora/#comments</comments>
		<pubDate>Thu, 18 May 2006 11:34:41 +0000</pubDate>
		<dc:creator>gubatron</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Geeklife]]></category>
		<category><![CDATA[Gubatron]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Podcast]]></category>

		<guid isPermaLink="false">http://www.gubatron.com/blog/?p=314</guid>
		<description><![CDATA[
En este episodio tenemos un invitado especial, el joven venezolano Simon Castillo discute con nosotros sobre el verdadero poder de KDE y sus ventajas sobre Gnome. Simon era un empedernido Gnomero hasta que tras escuchar nuestras recomendaciones decidio hacer una prueba de &#8220;supervivencia&#8221;, utilizar aplicaciones KDE unicamente durante 7 dias, cero aplicaciones basadas en GTK.
Hablamos [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://static.flickr.com/55/140142043_91084e984d.jpg?v=0" /></p>
<p>En este episodio tenemos un invitado especial, el joven venezolano <a href="http://www.simoncastillo.com">Simon Castillo</a> discute con nosotros sobre el verdadero poder de KDE y sus ventajas sobre Gnome. Simon era un empedernido Gnomero hasta que tras escuchar nuestras recomendaciones decidio hacer una prueba de &#8220;supervivencia&#8221;, utilizar aplicaciones KDE unicamente durante 7 dias, cero aplicaciones basadas en GTK.</p>
<p>Hablamos de:</p>
<ul>
<li>KControl</li>
<li>Konqueror Keywords</li>
<li>K3B</li>
<li>KIOSlave</li>
<li>Integracion y Consistencia de KDE</li>
<li>Krita</li>
<li>Facilidad de Personalizaci&oacute;n &#8211; Keybindings y Temas</li>
<li>Multimedia</li>
<li>KDE4</li>
<li>Karbon14</li>
<li>Arch Linux</li>
<li>Multimedia (Amarok)</li>
<li>Katapult</li>
</ul>
<p>Ademas de eso, tenemos las noticias mas calientes sobre Google y nuevos lanzamientos, Yahoo! con su Yahoo! Mail Beta ahora al publico, ademas de sus cambios en Flickr.com (Gamma). Algunos detalles sobre <a href="http://www.planetaligero.com" title="Mas detalles en el podcast de PlanetaLigero.com">la nueva MacBook PRO, y mucho mas.</a>.</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://twitter.com/home?status=Episodio+0015+%26%2382...+http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F05%2F18%2Fepisodio-0015-el-poder-de-kde-desktop-con-simon-castillo-especial-de-una-hora%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F05%2F18%2Fepisodio-0015-el-poder-de-kde-desktop-con-simon-castillo-especial-de-una-hora%2F&amp;title=Episodio+0015+-+El+poder+de+KDE+Desktop+con+Simon+Castillo+%28Especial+de+una+hora%29"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F05%2F18%2Fepisodio-0015-el-poder-de-kde-desktop-con-simon-castillo-especial-de-una-hora%2F&amp;title=Episodio+0015+-+El+poder+de+KDE+Desktop+con+Simon+Castillo+%28Especial+de+una+hora%29"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F05%2F18%2Fepisodio-0015-el-poder-de-kde-desktop-con-simon-castillo-especial-de-una-hora%2F&amp;title=Episodio+0015+-+El+poder+de+KDE+Desktop+con+Simon+Castillo+%28Especial+de+una+hora%29"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F05%2F18%2Fepisodio-0015-el-poder-de-kde-desktop-con-simon-castillo-especial-de-una-hora%2F&amp;headline=Episodio+0015+-+El+poder+de+KDE+Desktop+con+Simon+Castillo+%28Especial+de+una+hora%29"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Episodio+0015+-+El+poder+de+KDE+Desktop+con+Simon+Castillo+%28Especial+de+una+hora%29&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F05%2F18%2Fepisodio-0015-el-poder-de-kde-desktop-con-simon-castillo-especial-de-una-hora%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Episodio+0015+-+El+poder+de+KDE+Desktop+con+Simon+Castillo+%28Especial+de+una+hora%29&amp;u=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F05%2F18%2Fepisodio-0015-el-poder-de-kde-desktop-con-simon-castillo-especial-de-una-hora%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Episodio+0015+-+El+poder+de+KDE+Desktop+con+Simon+Castillo+%28Especial+de+una+hora%29&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F05%2F18%2Fepisodio-0015-el-poder-de-kde-desktop-con-simon-castillo-especial-de-una-hora%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Episodio+0015+-+El+poder+de+KDE+Desktop+con+Simon+Castillo+%28Especial+de+una+hora%29&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F05%2F18%2Fepisodio-0015-el-poder-de-kde-desktop-con-simon-castillo-especial-de-una-hora%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Episodio+0015+-+El+poder+de+KDE+Desktop+con+Simon+Castillo+%28Especial+de+una+hora%29&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F05%2F18%2Fepisodio-0015-el-poder-de-kde-desktop-con-simon-castillo-especial-de-una-hora%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F05%2F18%2Fepisodio-0015-el-poder-de-kde-desktop-con-simon-castillo-especial-de-una-hora%2F&amp;title=Episodio+0015+-+El+poder+de+KDE+Desktop+con+Simon+Castillo+%28Especial+de+una+hora%29&amp;summary=&amp;source="><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F05%2F18%2Fepisodio-0015-el-poder-de-kde-desktop-con-simon-castillo-especial-de-una-hora%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F05%2F18%2Fepisodio-0015-el-poder-de-kde-desktop-con-simon-castillo-especial-de-una-hora%2F&amp;title=Episodio+0015+-+El+poder+de+KDE+Desktop+con+Simon+Castillo+%28Especial+de+una+hora%29"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.gubatron.com/blog/2006/05/18/episodio-0015-el-poder-de-kde-desktop-con-simon-castillo-especial-de-una-hora/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing X11 for Mac OS from the CD</title>
		<link>http://www.gubatron.com/blog/2006/04/05/installing-x11-for-mac-os-from-the-cd/</link>
		<comments>http://www.gubatron.com/blog/2006/04/05/installing-x11-for-mac-os-from-the-cd/#comments</comments>
		<pubDate>Wed, 05 Apr 2006 21:36:34 +0000</pubDate>
		<dc:creator>gubatron</dc:creator>
				<category><![CDATA[Geeklife]]></category>
		<category><![CDATA[Gubatron]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac OSX]]></category>

		<guid isPermaLink="false">http://www.gubatron.com/blog/?p=285</guid>
		<description><![CDATA[So I wanted to use the GIMP, and OpenOffice, being a good Open Source boy on the new iMac.

The only problem is that you need to have X11 installed.
So first thing you do, is you google and you find this page:
http://www.apple.com/downloads/macosx/apple/x11formacosx.html
which has a 43mb installer that at least for me errored out saying I had [...]]]></description>
			<content:encoded><![CDATA[<p>So I wanted to use the GIMP, and OpenOffice, being a good Open Source boy on the new iMac.</p>
<p align="center"><img src="http://static.flickr.com/41/123741390_13c1b1a2da.jpg?v=0" /></p>
<p>The only problem is that you need to have X11 installed.</p>
<p>So first thing you do, is you google and you find this page:</p>
<p><a href="http://www.apple.com/downloads/macosx/apple/x11formacosx.html">http://www.apple.com/downloads/macosx/apple/x11formacosx.html</a></p>
<p>which has a 43mb installer that at least for me errored out saying I had something newer installed. Then all READMEs say that if you have Tiger installed you need to install X11 from the Mac OSX installation disc.</p>
<p>If you go to the disc and try to install from the <b>Install Bundled Software Only </b>you are not going to find it.</p>
<p>After wasting time, I found a the silver bullet on the disc:</p>
<p><b><font color="#000066">/System/Installation/Packages/X11User.pkg</font></b></p>
<p>Then after I installed, on the Root of the Disc I saw another Icon called &quot;<b>Optional Installs</b>&quot;, guess what? It was there also&#8230;</p>
<p>Anyway, I hope you find this post if you&#39;re in the same trouble I didn&#39;t read anything on apple&#39;s site on how to get to it on the disc.</p>
<p>Oh, and one cool thing you get by installing X11 -&gt; xterm (yay!)</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://twitter.com/home?status=Installing+X11+for+Mac+OS+from+the+CD+http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F04%2F05%2Finstalling-x11-for-mac-os-from-the-cd%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F04%2F05%2Finstalling-x11-for-mac-os-from-the-cd%2F&amp;title=Installing+X11+for+Mac+OS+from+the+CD"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F04%2F05%2Finstalling-x11-for-mac-os-from-the-cd%2F&amp;title=Installing+X11+for+Mac+OS+from+the+CD"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F04%2F05%2Finstalling-x11-for-mac-os-from-the-cd%2F&amp;title=Installing+X11+for+Mac+OS+from+the+CD"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F04%2F05%2Finstalling-x11-for-mac-os-from-the-cd%2F&amp;headline=Installing+X11+for+Mac+OS+from+the+CD"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Installing+X11+for+Mac+OS+from+the+CD&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F04%2F05%2Finstalling-x11-for-mac-os-from-the-cd%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Installing+X11+for+Mac+OS+from+the+CD&amp;u=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F04%2F05%2Finstalling-x11-for-mac-os-from-the-cd%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Installing+X11+for+Mac+OS+from+the+CD&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F04%2F05%2Finstalling-x11-for-mac-os-from-the-cd%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Installing+X11+for+Mac+OS+from+the+CD&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F04%2F05%2Finstalling-x11-for-mac-os-from-the-cd%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Installing+X11+for+Mac+OS+from+the+CD&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F04%2F05%2Finstalling-x11-for-mac-os-from-the-cd%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F04%2F05%2Finstalling-x11-for-mac-os-from-the-cd%2F&amp;title=Installing+X11+for+Mac+OS+from+the+CD&amp;summary=&amp;source="><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F04%2F05%2Finstalling-x11-for-mac-os-from-the-cd%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F04%2F05%2Finstalling-x11-for-mac-os-from-the-cd%2F&amp;title=Installing+X11+for+Mac+OS+from+the+CD"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.gubatron.com/blog/2006/04/05/installing-x11-for-mac-os-from-the-cd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Podcast Episodio 004 &#8211; Michael Kakei me entrevista sobre OpenSource via Skype</title>
		<link>http://www.gubatron.com/blog/2006/04/02/podcast-episodio-004-michael-kakei-me-entrevista-sobre-opensource-via-skype/</link>
		<comments>http://www.gubatron.com/blog/2006/04/02/podcast-episodio-004-michael-kakei-me-entrevista-sobre-opensource-via-skype/#comments</comments>
		<pubDate>Mon, 03 Apr 2006 00:55:41 +0000</pubDate>
		<dc:creator>gubatron</dc:creator>
				<category><![CDATA[Geeklife]]></category>
		<category><![CDATA[Gubatron]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Opinions]]></category>
		<category><![CDATA[Podcast]]></category>

		<guid isPermaLink="false">http://www.gubatron.com/blog/?p=283</guid>
		<description><![CDATA[Escuchalo en tu web browser sin esperar descarga
(descarga el mp3 o stream con VLC)
Este es el primer podcast en espa&#241;ol. El tecnologo Kakei (kakei.us) me hace una entrevista desde Maracaibo,VE a Jersey City, NJ via Skype, una entrevista uno a uno sobre la experiencia del software libre, sus ventajas, proyectos mas revolucionarios del software libre. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.gubatron.com/blog/?page_id=301">Escuchalo en tu web browser sin esperar descarga</a></p>
<p>(descarga el <a href="http://wedoit4you.com/podcasts/mp3/episode_04_gubatron__kakei_me_entrevista.mp3">mp3</a> o <a href="http://wedoit4you.com/podcasts/m4a/episode_04_gubatron__kakei_me_entrevista.m4a">stream</a> con <a href="http://www.videolan.org/vlc/">VLC</a>)</p>
<p><img src="http://static.flickr.com/48/121528747_9392096a31_m.jpg" align="left" />Este es el primer podcast en espa&ntilde;ol. El tecnologo <a href="http://www.kakei.us">Kakei (kakei.us)</a> me hace una entrevista desde Maracaibo,VE a Jersey City, NJ via <a href="http://www.skype.com">Skype</a>, una entrevista uno a uno sobre la experiencia del software libre, sus ventajas, proyectos mas revolucionarios del software libre. Tambien pueden escuchar mis opiniones sobre Aplicaciones Multiplataformas, Windows Vista, La Web 2.0 y el futuro del web (con <a href="http://www.xulplanet.com">XUL</a>), mi experiencia con <a href="http://www.limewire.com">LimeWire</a>, que pasaria si Windows fuese software libre,  iPod, <a href="http://www.origamiproject.com/2/">Origami</a>, Blogs, Apple usando procesadores Intel, <a href="http://www.python.org">Python</a> y m&aacute;s.<br />
(La musica de fondo que escuchaba mientras haciamos la entrevista es de los grupos <a href="http://www.gotanproject.com">Gotan Project</a>, <a href="http://www.beneventorussoduo.com/">Benevento Russo Duo</a>, <a href="http://www.amigosinvisibles.com/">Amigos Invisibles</a> y <a href="http://www.pacodelucia.org/">Paco de Lucia</a>)</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://twitter.com/home?status=Podcast+Episodio+004...+http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F04%2F02%2Fpodcast-episodio-004-michael-kakei-me-entrevista-sobre-opensource-via-skype%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F04%2F02%2Fpodcast-episodio-004-michael-kakei-me-entrevista-sobre-opensource-via-skype%2F&amp;title=Podcast+Episodio+004+-+Michael+Kakei+me+entrevista+sobre+OpenSource+via+Skype"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F04%2F02%2Fpodcast-episodio-004-michael-kakei-me-entrevista-sobre-opensource-via-skype%2F&amp;title=Podcast+Episodio+004+-+Michael+Kakei+me+entrevista+sobre+OpenSource+via+Skype"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F04%2F02%2Fpodcast-episodio-004-michael-kakei-me-entrevista-sobre-opensource-via-skype%2F&amp;title=Podcast+Episodio+004+-+Michael+Kakei+me+entrevista+sobre+OpenSource+via+Skype"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F04%2F02%2Fpodcast-episodio-004-michael-kakei-me-entrevista-sobre-opensource-via-skype%2F&amp;headline=Podcast+Episodio+004+-+Michael+Kakei+me+entrevista+sobre+OpenSource+via+Skype"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Podcast+Episodio+004+-+Michael+Kakei+me+entrevista+sobre+OpenSource+via+Skype&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F04%2F02%2Fpodcast-episodio-004-michael-kakei-me-entrevista-sobre-opensource-via-skype%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Podcast+Episodio+004+-+Michael+Kakei+me+entrevista+sobre+OpenSource+via+Skype&amp;u=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F04%2F02%2Fpodcast-episodio-004-michael-kakei-me-entrevista-sobre-opensource-via-skype%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Podcast+Episodio+004+-+Michael+Kakei+me+entrevista+sobre+OpenSource+via+Skype&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F04%2F02%2Fpodcast-episodio-004-michael-kakei-me-entrevista-sobre-opensource-via-skype%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Podcast+Episodio+004+-+Michael+Kakei+me+entrevista+sobre+OpenSource+via+Skype&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F04%2F02%2Fpodcast-episodio-004-michael-kakei-me-entrevista-sobre-opensource-via-skype%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Podcast+Episodio+004+-+Michael+Kakei+me+entrevista+sobre+OpenSource+via+Skype&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F04%2F02%2Fpodcast-episodio-004-michael-kakei-me-entrevista-sobre-opensource-via-skype%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F04%2F02%2Fpodcast-episodio-004-michael-kakei-me-entrevista-sobre-opensource-via-skype%2F&amp;title=Podcast+Episodio+004+-+Michael+Kakei+me+entrevista+sobre+OpenSource+via+Skype&amp;summary=&amp;source="><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F04%2F02%2Fpodcast-episodio-004-michael-kakei-me-entrevista-sobre-opensource-via-skype%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F04%2F02%2Fpodcast-episodio-004-michael-kakei-me-entrevista-sobre-opensource-via-skype%2F&amp;title=Podcast+Episodio+004+-+Michael+Kakei+me+entrevista+sobre+OpenSource+via+Skype"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.gubatron.com/blog/2006/04/02/podcast-episodio-004-michael-kakei-me-entrevista-sobre-opensource-via-skype/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nice to see my code being used.</title>
		<link>http://www.gubatron.com/blog/2006/01/25/nice-to-see-my-code-being-used/</link>
		<comments>http://www.gubatron.com/blog/2006/01/25/nice-to-see-my-code-being-used/#comments</comments>
		<pubDate>Wed, 25 Jan 2006 20:19:45 +0000</pubDate>
		<dc:creator>gubatron</dc:creator>
				<category><![CDATA[Diary]]></category>
		<category><![CDATA[Gubatron]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Random Stuff]]></category>

		<guid isPermaLink="false">http://www.gubatron.com/blog/?p=245</guid>
		<description><![CDATA[Some time ago, I created a simple PHP Script that creates thumbnails out of the pictures inside a folder, put&#8217;s a textwater mark on the pictures, and creates a browsable thumbnail page, on which you can click on the pictures, and go back and forward, and back to the thumbnail table. (Everything is done on [...]]]></description>
			<content:encoded><![CDATA[<p>Some time ago, I created a simple PHP Script that creates thumbnails out of the pictures inside a folder, put&#8217;s a textwater mark on the pictures, and creates a browsable thumbnail page, on which you can click on the pictures, and go back and forward, and back to the thumbnail table. (Everything is done on the fly though, the thumbnails aren&#8217;t saved)<br />
I pasted this script <a href="http://no.php.net/imagecreatefromjpeg">here</a>, and it&#8217;s nice to see people I don&#8217;t even know who are using it and <a href="http://www.issociate.de/board/post/296050/image_manipulation_in_safe_mode.html">recommending it</a>, and hopefully hacking it for their own needs. Let&#8217;s hope I can keep sharing more useful stuff in the future.</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://twitter.com/home?status=Nice+to+see+my+code+being+used.+http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F01%2F25%2Fnice-to-see-my-code-being-used%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F01%2F25%2Fnice-to-see-my-code-being-used%2F&amp;title=Nice+to+see+my+code+being+used."><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F01%2F25%2Fnice-to-see-my-code-being-used%2F&amp;title=Nice+to+see+my+code+being+used."><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F01%2F25%2Fnice-to-see-my-code-being-used%2F&amp;title=Nice+to+see+my+code+being+used."><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F01%2F25%2Fnice-to-see-my-code-being-used%2F&amp;headline=Nice+to+see+my+code+being+used."><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Nice+to+see+my+code+being+used.&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F01%2F25%2Fnice-to-see-my-code-being-used%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Nice+to+see+my+code+being+used.&amp;u=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F01%2F25%2Fnice-to-see-my-code-being-used%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Nice+to+see+my+code+being+used.&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F01%2F25%2Fnice-to-see-my-code-being-used%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Nice+to+see+my+code+being+used.&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F01%2F25%2Fnice-to-see-my-code-being-used%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Nice+to+see+my+code+being+used.&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F01%2F25%2Fnice-to-see-my-code-being-used%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F01%2F25%2Fnice-to-see-my-code-being-used%2F&amp;title=Nice+to+see+my+code+being+used.&amp;summary=&amp;source="><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F01%2F25%2Fnice-to-see-my-code-being-used%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F01%2F25%2Fnice-to-see-my-code-being-used%2F&amp;title=Nice+to+see+my+code+being+used."><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.gubatron.com/blog/2006/01/25/nice-to-see-my-code-being-used/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Things I&#8217;d like to do:</title>
		<link>http://www.gubatron.com/blog/2006/01/25/things-id-like-to-do/</link>
		<comments>http://www.gubatron.com/blog/2006/01/25/things-id-like-to-do/#comments</comments>
		<pubDate>Wed, 25 Jan 2006 12:13:38 +0000</pubDate>
		<dc:creator>gubatron</dc:creator>
				<category><![CDATA[Diary]]></category>
		<category><![CDATA[Gubatron]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Random Stuff]]></category>

		<guid isPermaLink="false">http://www.gubatron.com/blog/?p=244</guid>
		<description><![CDATA[I&#8217;ll put the list of things I&#8217;d like to do (code wise) to the public to see If I&#8217;m a bit embarrased and actually do em instead of talking about them:

- Release a new version of wedoit4you.com, or fix the current one so the interface is cleaner, faster, and it has an XML output for [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ll put the list of things I&#8217;d like to do (code wise) to the public to see If I&#8217;m a bit embarrased and actually do em instead of talking about them:</p>
<p><span id="more-244"></span></p>
<p>- Release a new version of wedoit4you.com, or fix the current one so the interface is cleaner, faster, and it has an XML output for every lyric so that every mp3 player software company gets interested on my XMLLyric format and everyone can have lyrics of their favorite songs, also for this create an XMLRPC way to insert Lyrics, (I think I almost got this one figured out, today I created my first XMLRPC server and it was a piece of cake, hmm, maybe all the lyrics stuff should be done through XMLRPC instead) [The Whole Lyrics stuff is up there, mp3 players can fetch lyrics from wedoit4you.com freely]<br />
- Make the Lyrics wikiable, in the sense that anyone could fix them, and the owner could roll back versions in case someone deleted the lyrics. [not done yet]<br />
- Finish the blog aggregator service for wedoit4you so that we can finally have automated news on the site, and it remains up 2 date everyday. That way I can keep writing on my blog and on linuxmachos.org and all my stuff will be there too. [finished and getting fancier and fancier everyday]<br />
- Start venelugs.org!!! [not started]<br />
- Finish the translation tool for the limewire project, this time using Tkinter (python) and XMLRPC (it&#8217;s on it&#8217;s way). We need to have LimeWire in many other languages, translators are welcome :)Â  [guess I'll do this with rosetta]<br />
- Finish my gnutella crawler and add it a simple magnet server, and even try to do searches on the network, maybe I could create a Creative Commons search engine, or index on the Gnutella network. I have 2 unfinished versions of the crawler, one in C++ with the Qt Libraries, and another which is a bit more complete in PHP5. For both I promess to release the source code (if it&#8217;s decent enough) [done with the http version of the crawler, about to begin with the magnetserver]</p>
<p>- Do a page with google maps where I can click and save all the cities I&#8217;ve been in my life. Then do this multiuser, and probably add it as a service to wedoit4you.com so that people can brag about where they&#8217;ve been or at least see how much of the world they still have to see. Having this info about many people could be useful for something, maybe to find people that have gone to the same place that you have around the same dates would be interesting for friendship, business, or who knows&#8230;just for fun. (maybe won&#8217;t d this, but it&#8217;s a cool idea)<br />
- On the google maps note, grab whatever I was doing with the subways, and one day at least use the data I have about all the stations in manhattan and draw the subway lines, with the intention of making a page that tells you what trains to take to go from one place to another&#8230; although some already implemented one thing and the other thing (whithout gmaps&#8230; the first guy will probably add the rest before I have time to do this) [dropping this one, there's work underway by some other people on this, can't waste time, but it would've been fun]<br />
- Find some decent excuse to code in C++, I&#8217;ve been reading books on C++ for over 6 months now, been reading C++ Qt3, Beginning Open GL, And the C++ Primer, finally understood a lot of shit that I didn&#8217;t fully understand (like pointers and references, const, inline methods, mutable, class templates, operator overloading, and so much more), what an interesting language, wish I had the chance to work with it for real, but it seems all the stuff I gotta do is just easier to do with scripting languages like PHP, Python, Ruby.</p>
<p>- Install the Mail Server in wedoit4you.com [help, someone help with this, got no time for dicking around with the server anymore]<br />
- One day launch magnetmix.com :(  (see it <a href="http://www.magnetmix.com/beta">here</a> waiting to be launched)</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://twitter.com/home?status=Things+I%26%238217%3Bd+like+to+do%3A+http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F01%2F25%2Fthings-id-like-to-do%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F01%2F25%2Fthings-id-like-to-do%2F&amp;title=Things+I%26%238217%3Bd+like+to+do%3A"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F01%2F25%2Fthings-id-like-to-do%2F&amp;title=Things+I%26%238217%3Bd+like+to+do%3A"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F01%2F25%2Fthings-id-like-to-do%2F&amp;title=Things+I%26%238217%3Bd+like+to+do%3A"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F01%2F25%2Fthings-id-like-to-do%2F&amp;headline=Things+I%26%238217%3Bd+like+to+do%3A"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Things+I%26%238217%3Bd+like+to+do%3A&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F01%2F25%2Fthings-id-like-to-do%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Things+I%26%238217%3Bd+like+to+do%3A&amp;u=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F01%2F25%2Fthings-id-like-to-do%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Things+I%26%238217%3Bd+like+to+do%3A&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F01%2F25%2Fthings-id-like-to-do%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Things+I%26%238217%3Bd+like+to+do%3A&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F01%2F25%2Fthings-id-like-to-do%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Things+I%26%238217%3Bd+like+to+do%3A&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F01%2F25%2Fthings-id-like-to-do%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F01%2F25%2Fthings-id-like-to-do%2F&amp;title=Things+I%26%238217%3Bd+like+to+do%3A&amp;summary=&amp;source="><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F01%2F25%2Fthings-id-like-to-do%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F01%2F25%2Fthings-id-like-to-do%2F&amp;title=Things+I%26%238217%3Bd+like+to+do%3A"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.gubatron.com/blog/2006/01/25/things-id-like-to-do/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Open Sourcing since the early days</title>
		<link>http://www.gubatron.com/blog/2006/01/11/open-sourcing-since-the-early-days/</link>
		<comments>http://www.gubatron.com/blog/2006/01/11/open-sourcing-since-the-early-days/#comments</comments>
		<pubDate>Thu, 12 Jan 2006 03:46:12 +0000</pubDate>
		<dc:creator>gubatron</dc:creator>
				<category><![CDATA[Gubatron]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Random Stuff]]></category>

		<guid isPermaLink="false">http://www.gubatron.com/blog/?p=235</guid>
		<description><![CDATA[Back in 1998 I was on my first year of Software Engineering in UCAB, our Algorithms and Programming I (by Prof. Omar Mendez and Alvaro RebÃ³n) course was dictated using a functional language which at the time sounded esotheric to us, Haskell. (I&#8217;m glad I started with Haskell, We knew how to break things into [...]]]></description>
			<content:encoded><![CDATA[<p>Back in 1998 I was on my first year of Software Engineering in <a href="http://www.ucab.edu.ve/ucabnuevo/index.php?load=planestudios2005.htm&amp;seccion=182">UCAB</a>, our <strong>Algorithms and Programming I</strong> (by Prof. Omar Mendez and Alvaro RebÃ³n) course was dictated using a functional language which at the time sounded esotheric to us, Haskell. (I&#8217;m glad I started with Haskell, We knew how to break things into functions, and understood concepts like recursion very easily because of that headstart, later on we continued with Modula, Pascal, C, C++ and Java)</p>
<p>After I finished the course and my first project (A France 98 Soccer Worldcup Sim), I decided to write a guide with tricks and tips to code projects in Haskell, since the course didn&#8217;t go down to the coding details as much as I would&#8217;ve wanted it. Back then I didn&#8217;t know words like &#8216;best practices&#8217;, &#8216;documentation&#8217; or &#8216;open source&#8217;, all I knew is that it was stupid hiding code since we weren&#8217;t building rockets or guns, and that everyone should make use of those things I knew would work for them.</p>
<p>Of course I was a student, and broke, and I managed to sell a few of them ;)</p>
<p>You can download it for free, you can do whatever you want with it. It&#8217;s in spanish though.</p>
<p><a href="http://www.gubatron.com/blog/wp-content/uploads/guia_de_haskell.pdf">Free Haskell Guide by Gubatron &#8211; Oct 1998 &#8211; Spanish</a></p>
<p>(For those who know me from UCAB, Don&#8217;t miss the &#8216;Thank You&#8217; notes at the end of the document)</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://twitter.com/home?status=Open+Sourcing+since+the+early+days+http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F01%2F11%2Fopen-sourcing-since-the-early-days%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F01%2F11%2Fopen-sourcing-since-the-early-days%2F&amp;title=Open+Sourcing+since+the+early+days"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F01%2F11%2Fopen-sourcing-since-the-early-days%2F&amp;title=Open+Sourcing+since+the+early+days"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F01%2F11%2Fopen-sourcing-since-the-early-days%2F&amp;title=Open+Sourcing+since+the+early+days"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F01%2F11%2Fopen-sourcing-since-the-early-days%2F&amp;headline=Open+Sourcing+since+the+early+days"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Open+Sourcing+since+the+early+days&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F01%2F11%2Fopen-sourcing-since-the-early-days%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Open+Sourcing+since+the+early+days&amp;u=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F01%2F11%2Fopen-sourcing-since-the-early-days%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Open+Sourcing+since+the+early+days&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F01%2F11%2Fopen-sourcing-since-the-early-days%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Open+Sourcing+since+the+early+days&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F01%2F11%2Fopen-sourcing-since-the-early-days%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Open+Sourcing+since+the+early+days&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F01%2F11%2Fopen-sourcing-since-the-early-days%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F01%2F11%2Fopen-sourcing-since-the-early-days%2F&amp;title=Open+Sourcing+since+the+early+days&amp;summary=&amp;source="><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F01%2F11%2Fopen-sourcing-since-the-early-days%2F"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.gubatron.com%2Fblog%2F2006%2F01%2F11%2Fopen-sourcing-since-the-early-days%2F&amp;title=Open+Sourcing+since+the+early+days"><img class="lightsocial_img" src="http://www.gubatron.com/blog/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.gubatron.com/blog/2006/01/11/open-sourcing-since-the-early-days/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->