<?xml version="1.0" encoding="utf-8"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">

<channel>
        <title>Planeta #linux irc.powers.cl</title>
        <link>http://planetalinux.powers.cl/</link>
        <language>en</language>
        <description>Planeta canal #linux irc.powers.cl - http://planetalinux.powers.cl/</description>

	<item>
		<title>Matias Fernandez: radixcl: I just unlocked the Level 2 "Swimmies" badge on @foursquare! In it to win it! http://t.co/fYplhqNt</title>
		<link>http://twitter.com/radixcl/statuses/166241798249918465</link>
		<description><![CDATA[radixcl: I just unlocked the Level 2 "Swimmies" badge on @foursquare! In it to win it! http://t.co/fYplhqNt]]></description>
		<pubDate>Sun, 05 Feb 2012 19:28:27 +0000</pubDate>
	</item>
		<item>
		<title>Matias Fernandez: radixcl: RT @cristobalrojas: Ese maricon del Cokep es TT y Bielsa no. Todos ustedes son una mierda.</title>
		<link>http://twitter.com/radixcl/statuses/165939178129981440</link>
		<description><![CDATA[radixcl: RT @cristobalrojas: Ese maricon del Cokep es TT y Bielsa no. Todos ustedes son una mierda.]]></description>
		<pubDate>Sat, 04 Feb 2012 23:25:57 +0000</pubDate>
	</item>
		<item>
		<title>Daniel Molina: understanding mapreduce</title>
		<link>http://coder.cl/2012/02/understanding-mapreduce/</link>
		<description><![CDATA[<p><a href='http://en.wikipedia.org/wiki/MapReduce' title='MapReduce' rel="nofollow">MapReduce</a> is a distributed computing model introduced by Google with its framework for distributed computing called MapReduce. Its conceptual basis comes from a functional programming approach based mainly on the basic mathematical concept of Monoid treatment in functional programming. Basically a Monoid <i>lifts</i> data using <a href='http://en.wikipedia.org/wiki/Map_(higher-order_function)' title='Map (higher-order function)' rel="nofollow">map</a> and process that data using <a href='' title='http://en.wikipedia.org/wiki/Fold_(higher-order_function)' title='Fold (higher-order function)' rel="nofollow">fold</a> &mdash; which is called <i>reduce</i> in Python, returning the same bound type as its input &mdash; and can be expressed as the triple <img src='http://s.wordpress.com/latex.php?latex=%5Clangle%20A%2C%20%5Cvarepsilon%2C%20%5Ccdot%20%5Crangle&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\langle A, \varepsilon, \cdot \rangle' title='\langle A, \varepsilon, \cdot \rangle' class='latex' /> as the set <img src='http://s.wordpress.com/latex.php?latex=A&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='A' title='A' class='latex' />, the neutral element <img src='http://s.wordpress.com/latex.php?latex=%5Cvarepsilon&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\varepsilon' title='\varepsilon' class='latex' /> and the operation <img src='http://s.wordpress.com/latex.php?latex=%5Ccdot&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\cdot' title='\cdot' class='latex' />. The problem with the Monoid definition is the fact that it is bound to a type, where MapReduce is not bound to any type, and even it is not bound to a Category.</p>
<p><span id="more-2210"></span></p>
<p>The data is <i>lifted</i> from its original type when it is stored as set. We can have a basic and plain example on how operates the <tt>map</tt> over the data lifting its original type. For example we have a plain text file with lines containing numbers separated by spaces and we want to extract the product for each line of those numbers. Since the data is plain text and it is not a numeric type, we need to <i>lift</i> those numbers and convert them to type that we can operate &mdash; like Integer types. So, <tt>map</tt> implies data extraction and data conversion, to operate that data with <tt>reduce</tt>. Following our plain text file example, we have a plain text file as follows.</p>
<pre name="code" class="brush:bash;">

4 3 1 4 5
2 1 3 2 4
3 4 4 2 1
2 1 3 4 1
</pre>
<p>Now, we can use <tt>map</tt> to make the proper data conversion to <i>lift</i> the input data from the plain text file and process each line obtaining lists of integers instead of string characters as follows.</p>
<pre name="code" class="brush:haskell;">

module Main where

import System.Environment
import Data.String.Utils

liftLine :: String -&gt; [Int]
liftLine l = fmap ( read . strip ) $ split " " l

main :: IO()
main = do [i] &lt;- getArgs
          f &lt;- readFile i
          let rows = fmap liftLine $ lines f
              in putStrLn $ show rows
</pre>
<p>In Haskell there are various <tt>map</tt> functions, here we using the most basic map function called <a href='http://www.haskell.org/ghc/docs/6.12.2/html/libraries/base-4.2.0.1/Control-Monad.html#v%3Afmap' title='Control.Monad -&#038;gt fmap' rel="nofollow">fmap</a>, which is implemented using Functor type class with instance types or anonymous types. So, the <tt>liftLine</tt> function extract a list of Integers from each line splitting the line using the space character, then applies strip to each tokenized string and reads its input converting it to Integer, and since it is using <tt>fmap</tt>, it will return a List of Integers. Where map is used again to lift each line, so, we are using fmap Functor as our lifting map function to extract the data as Integer from its plain text representation.</p>
<p>Now we need to process that <i>lifted</i> data using map, to obtain our required product for each integer list. So, we need to use the <tt>reduce</tt> function, which has two variants in Haskell, foldl and foldr, and for our convenience, we will use foldr, where reduce has a Monoidal behaviour due to its typed nature and can be expressed as <img src='http://s.wordpress.com/latex.php?latex=%5Clangle%20A%2C%201%2C%20%5Ctimes%20%5Crangle&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\langle A, 1, \times \rangle' title='\langle A, 1, \times \rangle' class='latex' />.</p>
<pre name="code" class="brush:haskell;">

module Main where

import System.Environment
import Data.String.Utils

liftLine :: String -&gt; [Int]
liftLine l = fmap ( read . strip ) $ split " " l

reduceProduct :: [Int] -&gt; Int
reduceProduct l = foldr (\ x y -&gt; x * y ) 1 l

main :: IO()
main = do [i] &lt;- getArgs
          f &lt;- readFile i
          let rows = fmap liftLine $ lines f
              prds = fmap reduceProduct rows
              in putStrLn $ show prds
</pre>
<p>So, those are the very basic principles of MapReduce, which is used to calculate the <a href='http://en.wikipedia.org/wiki/PageRank' title='PageRank' rel="nofollow">PageRank</a> on Google and get the site ranking on search results. So, this example is not distributed and it is a plain example of how it operates, just think on a distributed <tt>map</tt> and a distributed <tt>reduce</tt> operating with a very large amount of data to be processed. And there are various frameworks to work with MapReduce as model, because the original Google framework is not open source and you cannot work with it. As example of available frameworks supporting MapReduce as model you have <a href='http://hadoop.apache.org/' title='Apache Hadoop' rel="nofollow">Hadoop</a>, <a href='http://aws.amazon.com/elasticmapreduce/' title='Amazon Elastic MapReduce' rel="nofollow">Elastic MapReduce</a> and <a href='http://hackage.haskell.org/package/Holumbus-MapReduce' title='The Holumbus-MapReduce package'>Holumbus</a>, so you can use this model with those frameworks reducing computation costs if you do not want to process your data with linear computations.</p>
<br/><hr height="1px" width="50%" />
<div style='text-align: center !important;'><b>Copyright © 2012 Daniel Molina Wegener</b><br/><b>Atribución-No Comercial-Sin Derivadas 2.0 Chile</b><br/><a target='_new' rel="license" href="http://creativecommons.org/licenses/by-nc-nd/2.0/cl/"><img alt="Creative Commons License" style="border-width:0" src="http://coder.cl.qfl.wpcdn.arcostream.com/cc88x31.png" /></a></div>
<br/><hr height="1px" width="100%" />
<p><small>© Daniel Molina Wegener for <a href="http://coder.cl">coder . cl</a>, 2012. | <a href="http://coder.cl/2012/02/understanding-mapreduce/">Permalink</a> | <a href="http://coder.cl/2012/02/understanding-mapreduce/#comments">No comment</a><br/>Post tags: <br/></small></p>
<script type="text/javascript"><!--
google_ad_client = "ca-pub-6234432850133541";
/* main-feed */
google_ad_slot = "0763600725";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
]]></description>
		<pubDate>Sat, 04 Feb 2012 12:07:01 +0000</pubDate>
	</item>
		<item>
		<title>Matias Fernandez: radixcl: Win a Free Copy of @Postbox from @MacAppStorm: 10 Licenses Up for Grabs! http://t.co/lDSIAC6C</title>
		<link>http://twitter.com/radixcl/statuses/165588133591777280</link>
		<description><![CDATA[radixcl: Win a Free Copy of @Postbox from @MacAppStorm: 10 Licenses Up for Grabs! http://t.co/lDSIAC6C]]></description>
		<pubDate>Sat, 04 Feb 2012 00:11:02 +0000</pubDate>
	</item>
		<item>
		<title>Matias Fernandez: radixcl: RT @MarioSchilling: Si piensa que hay que sacar a Labbé de Providencia, haga RT.</title>
		<link>http://twitter.com/radixcl/statuses/165578817979682816</link>
		<description><![CDATA[radixcl: RT @MarioSchilling: Si piensa que hay que sacar a Labbé de Providencia, haga RT.]]></description>
		<pubDate>Fri, 03 Feb 2012 23:34:01 +0000</pubDate>
	</item>
		<item>
		<title>Matias Fernandez: radixcl: Alguien sabe que pasa con los telefonos fijos/skype/otros voip con el tema de portabilidad? #fb</title>
		<link>http://twitter.com/radixcl/statuses/165484494353215489</link>
		<description><![CDATA[radixcl: Alguien sabe que pasa con los telefonos fijos/skype/otros voip con el tema de portabilidad? #fb]]></description>
		<pubDate>Fri, 03 Feb 2012 17:19:12 +0000</pubDate>
	</item>
		<item>
		<title>Daniel Molina: what do I dislike from IE?</title>
		<link>http://coder.cl/2012/02/what-do-i-dislike-from-ie/</link>
		<description><![CDATA[<p>I think that my major school on computing comes from Unix &amp; Linux. Unix and derived operating systems are really cool, they have a lot of data processing tools for the command line and software development. They come at least with one language interpreter called <i>Awk</i> or better suited comes with <i>Perl</i>, so you can easily automate system tasks. So, Unix systems are really more developer friendly, rather than user friendly operating systems. With many tools that are freely available to extend the operating system and make it fit your data processing needs, without too much licensing problems.</p>
<p><span id="more-2206"></span></p>
<p>An example of a good placed Unix system is Mac OS X, it has several command line tools to automate the operating system and make it friendly and its native development environment called X Code is very easy to acquire, without too much problems. It is a real programmer environment</a>. Flexible enough to be customized, with various tools that allows you to <i>program</i> the environment, automate tasks and make life really more easier. For example while I&#8217;m programming and I want to seek source code with log lines, I use a single command line pipe to filter log messages, as follows.</p>
<pre name="code" class="brush:bash;">

$ find . -type f -name '*.py' -exec grep -nHi 'l.debug' {} \; | sed '/exc/d;'
</pre>
<p>On Windows and similar operating systems, which are specially made for <i>users</i>, rather than <i>developers</i>, I feel really truncated because I cannot do stuff like that. So, I become less productive under Windows and I hate it. Things that should be solved quickly with few command line and editor hooks &mdash; like Emacs provides me for editing automation &mdash; are delayed under Windows because it does not support that kind of stuff. What&#8217;s better than having an editor with an embedded Lisp interpreter? What&#8217;s better than having <i>Perl</i> and <i>Awk</i> among a lot of command line tools that allows me to automate any task that I want?</p>
<p>The same happens on its browser. Internet Explorer does not have enough tools for Web Development like others have. On Firefox and Google Chrome we have very nice development tools, allowing us to create amazing DHTML / AJAX based applications, among other stuff like building amazing HTML 5 and WebGL applications. I find really frustrating any work made under Internet Explorer. If you want to debug a simple JavaScript implementation &mdash; which is not really JavaScript under windows and it is dialect called JScript &mdash; you need to launch a whale called Visual Studio. So, to become productive developing Internet Explorer applications, you must pay for something that will be used with a <i>10%</i> of its capacity, including the licensing cost of Visual Studio.</p>
<p>So, for me Windows, Internet Explorer, and related technologies are a mere gaming console, rather than a developer friendly environment. That is why I dislike using Windows and developing systems for that operating system, because it is poor, overfilled with useless ornaments rather than useful tools.</p>
<br/><hr height="1px" width="50%" />
<div style='text-align: center !important;'><b>Copyright © 2012 Daniel Molina Wegener</b><br/><b>Atribución-No Comercial-Sin Derivadas 2.0 Chile</b><br/><a target='_new' rel="license" href="http://creativecommons.org/licenses/by-nc-nd/2.0/cl/"><img alt="Creative Commons License" style="border-width:0" src="http://coder.cl.qfl.wpcdn.arcostream.com/cc88x31.png" /></a></div>
<br/><hr height="1px" width="100%" />
<p><small>© Daniel Molina Wegener for <a href="http://coder.cl">coder . cl</a>, 2012. | <a href="http://coder.cl/2012/02/what-do-i-dislike-from-ie/">Permalink</a> | <a href="http://coder.cl/2012/02/what-do-i-dislike-from-ie/#comments">No comment</a><br/>Post tags: <br/></small></p>
<script type="text/javascript"><!--
google_ad_client = "ca-pub-6234432850133541";
/* main-feed */
google_ad_slot = "0763600725";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
]]></description>
		<pubDate>Fri, 03 Feb 2012 11:46:42 +0000</pubDate>
	</item>
		<item>
		<title>Daniel Molina: change management process</title>
		<link>http://coder.cl/2012/01/change-management-process/</link>
		<description><![CDATA[<p>Managing changes is really important in software development projects. Each change should be handled carefully and must not be seen as part of the original development process. Instead, you should measure and control each change in the original requirements, even if you are using agile or cascade methodologies. You cannot accept all changes that the customer proposes without the proper management process. Is not that easy to handle changes in requirements like changing a comment in the code. Instead of accepting changes and delivering software without the proper management process, you should be able to handle those requirements using a standard method to manage those requirement changes.</p>
<p><span id="more-2201"></span></p>
<p>An example of requirement change management process is as follows:</p>
<ol>
<li>Log the changes.</li>
<li>Perform an impact analysis on the work products.</li>
<li>Estimate the effort needed for the change requests.</li>
<li>Reestimate the delivery schedule.</li>
<li>Perform a cumulative cost impact analysis.</li>
<li>Review the impact with senior management if thresholds are exceeded.</li>
<li>Obtain customer sign-off.</li>
<li>Rework work products.</li>
</ol>
<p>So, you should record each change in the project documentation, on the product backlog on agile projects and the project specification in structured projects. If you do not record all changes that are made to any software piece, there is not log or evidence that were made changes to the project, and you are loosing the core project specification. Any change requires analysis of all changes that are applied to the software piece. If you do not perform analysis, you are delivering software pieces without the proper structure and logical basis, even if you are working with prototypes. And finally, all changes should be measured and estimate the effort required to complete them, without an estimation of those efforts, you will not be able to handle the change set cost, deriving in a project with a higher cost than it was measured originally. Even if you are using agile or structured methodologies, you should measure changes and <i>manage</i> them.</p>
<p>So, if you are working with project managers that are not reestimating the delivery schedule with requirement changes, you are really wasting your time on that company. You can find about this topic on any modern project management book, and you will agree with the idea that a requirement change implies a change in the delivery schedule.</p>
<p>If you think in software pieces like products or physical products, for example like building houses, if you have some UML diagrams, like class diagrams and sequence diagrams, which are specifying how the application should work, if you receive changes over those diagrams and specifications, is the same thing as changing a house plane, you need to rebuild and refactor everything, and it has a very high cost. The same applies to those applications implementing work flows, if they are implemented using precarious <tt>if</tt> statements, instead of using <i>state machines</i>, any change to the work flow will lead you very hard changes on the code. So you should measure and control each change, so you must do <i>management</i>.</p>
<br/><hr height="1px" width="50%" />
<div style='text-align: center !important;'><b>Copyright © 2012 Daniel Molina Wegener</b><br/><b>Atribución-No Comercial-Sin Derivadas 2.0 Chile</b><br/><a target='_new' rel="license" href="http://creativecommons.org/licenses/by-nc-nd/2.0/cl/"><img alt="Creative Commons License" style="border-width:0" src="http://coder.cl.qfl.wpcdn.arcostream.com/cc88x31.png" /></a></div>
<br/><hr height="1px" width="100%" />
<p><small>© Daniel Molina Wegener for <a href="http://coder.cl">coder . cl</a>, 2012. | <a href="http://coder.cl/2012/01/change-management-process/">Permalink</a> | <a href="http://coder.cl/2012/01/change-management-process/#comments">No comment</a><br/>Post tags: <br/></small></p>
<script type="text/javascript"><!--
google_ad_client = "ca-pub-6234432850133541";
/* main-feed */
google_ad_slot = "0763600725";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
]]></description>
		<pubDate>Sun, 29 Jan 2012 15:48:08 +0000</pubDate>
	</item>
		<item>
		<title>Daniel Molina: django and amazon s3</title>
		<link>http://coder.cl/2012/01/django-and-amazon-s3/</link>
		<description><![CDATA[<p><a href='http://aws.amazon.com/s3/' title='Amazon Simple Storage Service (Amazon S3)'>Amazon S3</a> is a well known web based storage system provided as SaaS service provided by <a href='http://aws.amazon.com/' title='Amazon Web Services (AWS)'>Amazon Web Services</a>. On Django you can integrate that service using the storage interface called <a href='http://code.welldev.org/django-storages/' title='Django Storages (django-storages)'>Django Storages</a>, but you must have some considerations using that SaaS storage interface. Mainly regarding the <tt>Date</tt> header sent to the service on each read, write and similar operations, where you must send an updated header with the proper Time Zone and format.</p>
<p><span id="more-2183"></span></p>
<p>Once you have configured and working the django-storages package, you should fill the <tt>Date</tt> header or the <tt>x-amz-date</tt> header each time that you do a request to S3. So, the only way to do that is not to leave the module sending the date automatically, instead you should write the settings variable <tt>AWS_HEADERS</tt>.</p>
<pre name="code" class="brush:python;">

import pytz
from datetime import datetime
from django.conf import settings

def get_aws_date(self):
    """
    Returns the server date formatted and using the server
    time zone localized to be used as Date header with
    Amazon S3.
    """
    stz = pytz.timezone(settings.TIME_ZONE)
    dtm = stz.localize(datetime.now()).strftime("%a, %d %b %Y %H:%M:%S %z")
    settings.AWS_HEADERS['Date'] = dtm
    settings.AWS_HEADERS['x-amz-date'] = dtm
    return dtm
</pre>
<p>Also, you must consider this requirement to work with S3 on all your requests. Since django-storages checks if the <tt>AWS_HEADERS</tt> has the Date or x-amz-date headers set, you must set that header each time that you make a request to S3, so you cannot use a batch <tt>read()</tt> from the storage or a batch <tt>write()</tt> to the storage, because it will use the previously sent Date header and it will fail, because it is considered inconsistent by the S3 authentication mechanism. If we use S3 as default storage, the example below will fail, because it will send file chunks with the same Date header, because the header was set previously.</p>
<pre name="code" class="brush:python;">

from django.core.files.storage import default_storage

if default_storage.exist('test-large-file.mp3'):
    mp3file = open('test-large-file.mp3')
    s3file = default_storage.open('test-large-file.mp3')
    mp3file.write(s3file.read())
    mp3file.close()
    s3file.close()
</pre>
<p>So, you need to use small chunks to read from the storage, as the example below.</p>
<pre name="code" class="brush:python;">

from django.core.files.storage import default_storage

if default_storage.exist('test-large-file.mp3'):
    get_aws_date()
    mp3file = open('test-large-file.mp3')
    s3file = default_storage.open('test-large-file.mp3')
    buff = s3file.read(settings.AWS_CHUNK_SIZE)
    while buff:
        mp3file.write(buff)
        try:
            buff = s3file.read(settings.AWS_CHUNK_SIZE)
        except Exception, exc:
            buff = None
    mp3file.close()
    s3file.close()
</pre>
<p>But also you must consider few issues about this. Since AWS_HEADERS is a global variable, writing to that variable will slow down your code because it lacks time on GIL usage, also it will lack your threaded application if it written twice, even if you are using locks and Django can handle parallel writes to that variable. So, be careful reading and writing large files from S3, and take a look on how the Date header is sent on each request.</p>
<pre name="code" class="brush:python;">

def _add_aws_auth_header(self, headers, method,
                         bucket, key, query_args):
    if not headers.has_key('Date'):
        headers['Date'] = time.strftime("%a, %d %b %Y %X GMT",
                                        time.gmtime())

    c_string = canonical_string(method, bucket, key,
                                query_args, headers)
    headers['Authorization'] = \
        "AWS %s:%s" % (self.aws_access_key_id,
                       encode(self.aws_secret_access_key, c_string))
</pre>
<p>Where the <tt>%X</tt> <a href='http://docs.python.org/library/datetime.html#strftime-strptime-behavior' title='Python Manual, strftime() and strptime() Behavior'>specifier for localized machines</a> with an environment variable <tt>LC_ALL</tt> different from <i>C</i> will throw the wrong date format disallowing your application to work with S3. This is a well known bug reported <a href='https://bitbucket.org/david/django-storages/issue/56/aws-authentication-requires-a-valid-date' title='#56 "AWS authentication requires a valid Date or x-amz-date header"' rel="nofollow">on this link</a>. So, the right implementation, should be as follows.</p>
<pre name="code" class="brush:python;">

def _add_aws_auth_header(self, headers, method,
                         bucket, key, query_args):
    if not 'Date' in headers:
        stz = pytz.timezone(settings.TIME_ZONE)
        dtm = stz.localize(datetime.now()).strftime("%a, %d %b %Y %H:%M:%S %z")
        headers['Date'] = dtm

    c_string = canonical_string(method, bucket, key,
                                query_args, headers)
    headers['Authorization'] = \
        "AWS %s:%s" % (self.aws_access_key_id,
                       encode(self.aws_secret_access_key, c_string))
</pre>
<p>Good luck using S3.</p>
<br/><hr height="1px" width="50%" />
<div style='text-align: center !important;'><b>Copyright © 2012 Daniel Molina Wegener</b><br/><b>Atribución-No Comercial-Sin Derivadas 2.0 Chile</b><br/><a target='_new' rel="license" href="http://creativecommons.org/licenses/by-nc-nd/2.0/cl/"><img alt="Creative Commons License" style="border-width:0" src="http://coder.cl.qfl.wpcdn.arcostream.com/cc88x31.png" /></a></div>
<br/><hr height="1px" width="100%" />
<p><small>© Daniel Molina Wegener for <a href="http://coder.cl">coder . cl</a>, 2012. | <a href="http://coder.cl/2012/01/django-and-amazon-s3/">Permalink</a> | <a href="http://coder.cl/2012/01/django-and-amazon-s3/#comments">No comment</a><br/>Post tags: <br/></small></p>
<script type="text/javascript"><!--
google_ad_client = "ca-pub-6234432850133541";
/* main-feed */
google_ad_slot = "0763600725";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
]]></description>
		<pubDate>Thu, 19 Jan 2012 13:18:45 +0000</pubDate>
	</item>
		<item>
		<title>Gonzalo Diaz: No me diga</title>
		<link>http://blog.gon.cl/post/1038</link>
		<description><![CDATA[En el último tiempo, he acumulado algunos términos que simplemente DETESTO que me digan. ¿Soy un odioso? no se que tanto, pero todos tenemos alguna palabra o frase que nos saca del equilibrio...<br/>
<br/>
[...]
<p><a href="http://feedads.g.doubleclick.net/~a/xKXG24Db7rHYstyJhrK6eEYXSFs/0/da"><img src="http://feedads.g.doubleclick.net/~a/xKXG24Db7rHYstyJhrK6eEYXSFs/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/xKXG24Db7rHYstyJhrK6eEYXSFs/1/da"><img src="http://feedads.g.doubleclick.net/~a/xKXG24Db7rHYstyJhrK6eEYXSFs/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/dev/gon?a=shoLiosbAzU:jfjT2VIngCU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/dev/gon?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dev/gon?a=shoLiosbAzU:jfjT2VIngCU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/dev/gon?i=shoLiosbAzU:jfjT2VIngCU:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dev/gon?a=shoLiosbAzU:jfjT2VIngCU:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/dev/gon?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dev/gon?a=shoLiosbAzU:jfjT2VIngCU:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/dev/gon?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dev/gon?a=shoLiosbAzU:jfjT2VIngCU:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/dev/gon?d=dnMXMwOfBR0" border="0"></img></a>
</div>]]></description>
		<pubDate>Thu, 12 Jan 2012 18:08:08 +0000</pubDate>
	</item>
		<item>
		<title>Daniel Molina: so you feel as programmer</title>
		<link>http://coder.cl/2012/01/so-you-feel-as-programmer/</link>
		<description><![CDATA[<p>So you feel as programmer because you can handle one programming language. Well, the bad news are the fact that you are not a programmer and even you don&#8217;t know too much about programming. At least you should know the three main programming paradigms, which comes from the two main branches called functional and imperative, so you should know at least functional, procedural and object oriented programming. The reason is quite simple, all languages are becoming hybrid languages supporting those three programming paradigms, if you do not understand their basic concepts, you are lost and messing the code.</p>
<p><span id="more-2169"></span></p>
<p>As example, on Python I have a list of integers and I want the power of two of each element. Someone with the basic approach of imperative programming and procedural programming will implement something like the code that follows.</p>
<pre name="code" class="brush:python;">

nums = xrange(1, 11)
resl = list()
for n in nums:
    resl.append(n ** 2)
print(resl)
</pre>
<p>If you know a little of functional programming and you know that Python is a multi-paradigm programming language that allows you to use some functional features on it, you know that the code above have bad implementation and should be simplified just to three lines of code, because Python supports lambda expressions and higher order functions, as code the code that follows.</p>
<pre name="code" class="brush:python;">

nums = xrange(1, 11)
resl = map(lambda x: x ** 2, nums)
print(resl)
</pre>
<p>Among other stuff, like reducing cyclomatic complexity and making more elegant code, you are not conscious about those changes that are present in other programming languages you will fall in very ugly mistakes about programming. Most programming languages are currently including support for various functional features like lambda expressions, higher order functions, closures, continuations and many other features considered <i>functional</i>. I do not need to name each language that has added support for them, but as examples we have Java, C Sharp, C++, JavaScript, and many others.</p>
<p>We have reached a point where the functional paradigm cannot be ignored any more. You must understand many concepts that comes from functional programming to understand concepts related to technologies that are currently widely used, like <a href='http://en.wikipedia.org/wiki/MapReduce' title='MapReduce'>MapReduce</a>, which has its conceptual basis on functional operations too, by mixing two higher order functions called <a href='http://en.wikipedia.org/wiki/Map_(higher-order_function)' title='Map (higher-order function)'>map</a> and <a href='http://en.wikipedia.org/wiki/Fold_(higher-order_function)' title='Fold (higher-order function)'>fold</a> &mdash; which is called <tt>reduce()</tt> in Python and <tt>(apply)</tt> in Lisp.</p>
<p>So, you should start learning about functional programming, and learning well, from its basis, concepts and implementations. Also, you should know that most languages used in algorithm research are functional languages. So, the next time that I see a <tt>for</tt> statement placed where should be a statement where you can use a higher-order function, I will consider your code not good as you think.</p>
<br/><hr height="1px" width="50%" />
<div style='text-align: center !important;'><b>Copyright © 2012 Daniel Molina Wegener</b><br/><b>Atribución-No Comercial-Sin Derivadas 2.0 Chile</b><br/><a target='_new' rel="license" href="http://creativecommons.org/licenses/by-nc-nd/2.0/cl/"><img alt="Creative Commons License" style="border-width:0" src="http://coder.cl.qfl.wpcdn.arcostream.com/cc88x31.png" /></a></div>
<br/><hr height="1px" width="100%" />
<p><small>© Daniel Molina Wegener for <a href="http://coder.cl">coder . cl</a>, 2012. | <a href="http://coder.cl/2012/01/so-you-feel-as-programmer/">Permalink</a> | <a href="http://coder.cl/2012/01/so-you-feel-as-programmer/#comments">4 comments</a><br/>Post tags: <br/></small></p>
<script type="text/javascript"><!--
google_ad_client = "ca-pub-6234432850133541";
/* main-feed */
google_ad_slot = "0763600725";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
]]></description>
		<pubDate>Thu, 12 Jan 2012 11:50:32 +0000</pubDate>
	</item>
		<item>
		<title>Gonzalo Diaz: FirePHP, otra herramienta de depuración de PHP</title>
		<link>http://blog.gon.cl/post/1028</link>
		<description><![CDATA[Llevo años usando Xdebug para hacer depuración de PHP, pero últimamente estoy ocupando algo más. FirePHP está compuesto de 2 partes, una librería PHP (puede ser usada en versión orientada a objetos o...<br/>
<br/>
[...]
<p><a href="http://feedads.g.doubleclick.net/~a/SR0QC4MCRcozgNTxkCl73n_SkGQ/0/da"><img src="http://feedads.g.doubleclick.net/~a/SR0QC4MCRcozgNTxkCl73n_SkGQ/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/SR0QC4MCRcozgNTxkCl73n_SkGQ/1/da"><img src="http://feedads.g.doubleclick.net/~a/SR0QC4MCRcozgNTxkCl73n_SkGQ/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/dev/gon?a=Sor3icTg4yw:SPE7p0OI0bk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/dev/gon?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dev/gon?a=Sor3icTg4yw:SPE7p0OI0bk:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/dev/gon?i=Sor3icTg4yw:SPE7p0OI0bk:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dev/gon?a=Sor3icTg4yw:SPE7p0OI0bk:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/dev/gon?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dev/gon?a=Sor3icTg4yw:SPE7p0OI0bk:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/dev/gon?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dev/gon?a=Sor3icTg4yw:SPE7p0OI0bk:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/dev/gon?d=dnMXMwOfBR0" border="0"></img></a>
</div>]]></description>
		<pubDate>Tue, 15 Nov 2011 19:15:35 +0000</pubDate>
	</item>
		<item>
		<title>Gonzalo Diaz: Opinión sobre Unity y otros entornos de Escritorio</title>
		<link>http://blog.gon.cl/post/1017</link>
		<description><![CDATA[No soy ningún experto en usabilidad, por lo tanto no tengo ningún estándar o  métrica para evaluar un entorno de escritorio, pero llevo varios años moviéndome de un Sistema Operativo a otros, de...<br/>
<br/>
[...]
<p><a href="http://feedads.g.doubleclick.net/~a/393Pq5AfoTz_j7T4EObVOIEZPB8/0/da"><img src="http://feedads.g.doubleclick.net/~a/393Pq5AfoTz_j7T4EObVOIEZPB8/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/393Pq5AfoTz_j7T4EObVOIEZPB8/1/da"><img src="http://feedads.g.doubleclick.net/~a/393Pq5AfoTz_j7T4EObVOIEZPB8/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/dev/gon?a=ZbWd3st50fY:kQgQkANnmLY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/dev/gon?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dev/gon?a=ZbWd3st50fY:kQgQkANnmLY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/dev/gon?i=ZbWd3st50fY:kQgQkANnmLY:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dev/gon?a=ZbWd3st50fY:kQgQkANnmLY:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/dev/gon?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dev/gon?a=ZbWd3st50fY:kQgQkANnmLY:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/dev/gon?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dev/gon?a=ZbWd3st50fY:kQgQkANnmLY:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/dev/gon?d=dnMXMwOfBR0" border="0"></img></a>
</div>]]></description>
		<pubDate>Sat, 22 Oct 2011 18:49:08 +0000</pubDate>
	</item>
		<item>
		<title>Gonzalo Diaz: Si la Educación fuese una Guerra, en Chile</title>
		<link>http://blog.gon.cl/post/1007</link>
		<description><![CDATA[Ayer vi 2 cosas que me hicieron imaginar esta analogía, las 2 películas de Iron Man y un episodio más de Tolerancia Cero (programa de actualidad en Chilevisión). En el episodio de ayer, Fernando...<br/>
<br/>
[...]
<p><a href="http://feedads.g.doubleclick.net/~a/yBQMTIzTQN7hZX6vwp_ReK6prcw/0/da"><img src="http://feedads.g.doubleclick.net/~a/yBQMTIzTQN7hZX6vwp_ReK6prcw/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/yBQMTIzTQN7hZX6vwp_ReK6prcw/1/da"><img src="http://feedads.g.doubleclick.net/~a/yBQMTIzTQN7hZX6vwp_ReK6prcw/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/dev/gon?a=qdPDJsF-yUo:DaD3F-HBUZ8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/dev/gon?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dev/gon?a=qdPDJsF-yUo:DaD3F-HBUZ8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/dev/gon?i=qdPDJsF-yUo:DaD3F-HBUZ8:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dev/gon?a=qdPDJsF-yUo:DaD3F-HBUZ8:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/dev/gon?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dev/gon?a=qdPDJsF-yUo:DaD3F-HBUZ8:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/dev/gon?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dev/gon?a=qdPDJsF-yUo:DaD3F-HBUZ8:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/dev/gon?d=dnMXMwOfBR0" border="0"></img></a>
</div>]]></description>
		<pubDate>Tue, 11 Oct 2011 02:20:21 +0000</pubDate>
	</item>
		<item>
		<title>Gonzalo Diaz: Movilización Estudiantil: Marcha 9 de Agosto 2011</title>
		<link>http://blog.gon.cl/post/978</link>
		<description><![CDATA[Picasa Flickr &#160; Youtube &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; Hasta acá todo era normal&#8230;<br/>
<br/>
[...]
<p><a href="http://feedads.g.doubleclick.net/~a/qwJdAKYZ0pPimHVI75h3pDnkmZs/0/da"><img src="http://feedads.g.doubleclick.net/~a/qwJdAKYZ0pPimHVI75h3pDnkmZs/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/qwJdAKYZ0pPimHVI75h3pDnkmZs/1/da"><img src="http://feedads.g.doubleclick.net/~a/qwJdAKYZ0pPimHVI75h3pDnkmZs/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/dev/gon?a=lW4MrpjdgmE:75OLuMkL4SQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/dev/gon?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dev/gon?a=lW4MrpjdgmE:75OLuMkL4SQ:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/dev/gon?i=lW4MrpjdgmE:75OLuMkL4SQ:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dev/gon?a=lW4MrpjdgmE:75OLuMkL4SQ:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/dev/gon?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dev/gon?a=lW4MrpjdgmE:75OLuMkL4SQ:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/dev/gon?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dev/gon?a=lW4MrpjdgmE:75OLuMkL4SQ:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/dev/gon?d=dnMXMwOfBR0" border="0"></img></a>
</div>]]></description>
		<pubDate>Wed, 10 Aug 2011 23:54:15 +0000</pubDate>
	</item>
		<item>
		<title>Alejandro Lopez: Felicidad</title>
		<link>http://yopuz.blogspot.com/2010/07/felicidad.html</link>
		<description><![CDATA[Felicidad Cargado originalmente por yopuz]]></description>
		<pubDate>Tue, 20 Jul 2010 21:41:14 +0000</pubDate>
	</item>
		<item>
		<title>Alejandro Lopez: Post - Carrusel</title>
		<link>http://yopuz.blogspot.com/2010/05/post-carrusel.html</link>
		<description><![CDATA[Post - Carrusel Originally uploaded by Autumn leaves fallPensar que hace poco mas de un año, estaba tirandole mierda al mundo y a la vida.:DAhora ando como una perdiz.]]></description>
		<pubDate>Tue, 18 May 2010 20:45:48 +0000</pubDate>
	</item>
		<item>
		<title>Andres Ovalle: Stefano Zacchiroli electo como nuevo DPL!</title>
		<link>http://www.debianchile.cl/debian-internacional/dpl-2010-2011/</link>
		<description><![CDATA[<p><a href="http://www.debianchile.cl/wp-content/uploads/2010/04/stefano.png"><img class="alignright size-medium wp-image-446" title="Stefano Zacchiroli" src="http://www.debianchile.cl/wp-content/uploads/2010/04/stefano-300x284.png" alt="DPL 2010/2011" width="300" height="284" /></a></p>
<p>En conformidad con la  <a href="http://www.debian.org/devel/constitution">Constitución</a> the Debian Project a elegido a Stefano Zacchiroli como nuevo Debian Project Leader para el periodo 2010/2011.<br />
Stefano es Desarrollador Debian desde Marzo del 2001, el contribuye con varios servicios esenciales tales como, Debian&#8217;s Package Tracking System y pertenece al Quality Assurance Team. Luego de su elección el declaro: &#8220;No puedo estar mas orgulloso de ser un miembro de Debian Project. La cantidad de desarrolladores que tomaron parte de nuestro proceso de elección democrática &#8212; candidatos, votantes y participantes de campaña &#8212; me hacen muy feliz. Vale decir que estoy un poro asustado ahora, pero puedo asegurar que voy a hacer mi mejor esfuerzo para cubrir las expectativas de todos los colaboradores del Debian Project&#8221;.<br />
El project leader saliente, Steve McIntyre, fue electo en el 2008.<br />
Luego de liderar el proyecto por dos años, Steve prefirió no ir por la re-elección.<br />
Steve felicito a Stefano: &#8220;Lo e pasado muy bien trabajando para Debian como DPL y estoy mas que feliz seguir trabajando bajo el mando de Stefano.<br />
EL tiene ideas excelentes y realizara un muy buen trabajo.&#8221; El proyecto Debian también desea agradecer a Steve por su gran trabajo y sobresaliente compromiso con el proyecto.<br />
Los candidatos de este año fueron Stefano Zacchiroli, Wouter Verhelst, Charles Plessy y Margarita Manterola. Luego de seis semanas de periodo electoral el proyecto Debian eligio a Stefano Zacchiroli para ser su nuevo Debian Project Leader.<br />
Los detalles de las elecciones los puedes encontrar en la siguiente pagina:  <a href="http://www.debian.org/vote/2010/vote_001">votación</a>.?</p>
]]></description>
		<pubDate>Sun, 18 Apr 2010 13:58:23 +0000</pubDate>
	</item>
		<item>
		<title>Patricio Perez: Git, SVN y algo de ZSH</title>
		<link>http://janitux.boaboa.org/2010/git-svn-y-algo-de-zsh/</link>
		<description><![CDATA[<p><img class="aligncenter" title="ZSH GIT" src="http://boaboa.org/shots/idk_zsh_shot.png" alt="" width="326" height="139" /></p>
<p>Hace unas semanas gracias a la ayuda de <a href="http://www.sarahdoherty.net/">sarah</a> y <a href="http://www.ryandoherty.net/">ryan</a> he estado trabajando solucionando bugs en el sitio <a href="http://www.getpersonas.com/">Getpersonas.com</a> (El sitio esta hecho en PHP, y el repositorio usa SVN), esto me ha traído devuelta al mundo de los sistemas de control de versiones (Lo que es genial, por que me gustaba caleta hacer commits, y tener todo ordenado, como cuando trabajaba &#8230;)</p>
<p>Cuando ya tenia mis permisos de commit listos para el repo SVN, ryan me recomendó <a href="http://www.kernel.org/pub/software/scm/git/docs/git-svn.html">git-svn</a> (Lo que también es genial, por que tenia mas experiencia con Git que con SVN). Así que para aprovechar los bytes de este post, pondre mi setup de Git+SVN, algo del workflow diario y lo ultimo con lo que estuve jugando esta semana: ZSH (Aun estoy amando la integracion con Git).</p>
<p>It&#8217;s time to start <span id="more-150"></span></p>
<h3>Montar el repositorio con Git-SVN</h3>
<p>La instalación es muy simple, en Ubuntu basta con un</p>
<p><code>sudo apt-get install git-svn git-core</code></p>
<p>Ahora comenzamos a clonar el repo, por ejemplo para el repo de getpersonas en mozilla:<br />
<code><br />
mkdir getpersonas &amp;&amp; cd getpersonas</code></p>
<p>git svn init https://svn.mozilla.org/projects/getpersonas.com/trunk/</p>
<p>git svn fetch -r $REVISION</p>
<p># (Donde $REVISION es la ultima revision donde se toco la direccion del repo, si le hacen un svn info http://svn.mozilla.org/projects/getpersonas.com/trunk/ veran &#8220;Revision del último cambio&#8221;. Si quieren le pueden tirar un git svn fetch a secas, pero se bajara TODAS las revisiones del repo svn, osea que si tienen miles y miles de commits, se volveran locos en pocos minutos)</p>
<p># Si por algun motivo les pasa que se baja la revision, pero los ficheros no aparecen y el git status les dice que hay cambios hechos, y que son ficherros eliminados, intenten dando un</p>
<p><code>git reset &amp;&amp; git checkout .</code></p>
<p>Con esto ya estamos listos para comenzar a trabajar <img src='http://janitux.boaboa.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<h3>Git branchs, patches, merge y commits al server svn</h3>
<p>Para trabajar en los bugs, ryan me recomendo usar un branch local de git, para cada bug. Easy cake.</p>
<p><code>git checkout -b sumario_bug</code></p>
<p>Y veremos las magicas palabras &#8220;Switched to a new branch &#8217;sumario_bug&#8217;&#8221;, pueden usar cualquier nombre para la branch local, ojala uno descriptivo para acordarse.</p>
<p>Aquí podemos ir realizando los cambios para arreglar el bug (O meter funcionalidades nuevas, el mundo es suyo). Pueden hacer commits al branch, por ejemplo con git commit -a. Con esto listo, podemos usar format-patch y enviar parches:</p>
<p><code>git format-patch master -o ~/parches/</code></p>
<p>Este ultimo comando nos generara un parche git, en el directorio ~/parches. Cuando tengamos aprobados los cambios, podemos hacerle un merge con master (la rama principal):</p>
<p><code>git checkout master</code></p>
<p>git merge sumario_bug</p>
<p>git svn rebase</p>
<p>Con esto, cambiamos al branch master, hicimos un merge del branch local sumario_bug (Nota aqui, si hicieron mas de un commit en el branch sumario_bug, y quieren que se refleje como solo un commit en SVN, deberan aplicar el switch &#8211;squash al git merge), y con el rebase, bajamos los posibles cambios que tenga el repositorio svn y aplicamos nuestros cambios sobre eso (Atentos si hay problemas con el merge que esto provocara). Si no tuvimos ningun problema al hacer el merge y el rebase, o los solucionamos, estamos listos para hacer commit hacia SVN:</p>
<p><code>git svn dcommit</code></p>
<p>Que nos pediria los datos del server svn (En este caso, puedo hacer commit por https con mis datos LDAP)</p>
<p>There, estariamos listos para continuar con otro bug.</p>
<p>Para actualizar el repo podemos usar git svn fetch o git svn rebase (El fetch solo baja los cambios, mientras que el rebase intentara un merge si tenemos cambios en la rama local)</p>
<h3>Cosas cools, git stash</h3>
<p>Otra herramienta genial en git, seria stash, ponganse en este caso, estan trabajando en un branch, tienen harto trabajo hecho y aun no le dan un commit, y llega un bug feo que hay que solucionar ASAP, tendrian que hacer un commit tipo &#8220;Dejo guardado el trabajo en esta rama para trabajar en el desgraciado bug feo&#8221;; con stash pueden solucionar esto fácilmente:</p>
<p><code>git stash save "Bug #1234: Cambiar identacion para que el codigo se vea mas lindo"</code></p>
<p>git checkout master</p>
<p>git checkout -b bug_desgraciado_asap</p>
<p>[...] Terminaron de trabajar en el bug, le dieron commit y todo el cuento, ahora a trabajar en el branch que teniamos antes</p>
<p><code>git checkout mi_viejo_branch_ya_no_es_lo_que_era</code></p>
<p>git stash pop stash@\{0\}</p>
<p>Y aplicara los cambios que teníamos antes de trabajar en el bug feo!</p>
<p>Un poco mas sobre stash seria que, no es necesario pasarle un nombre al git stash save, con git stash list <em>listaran</em> los stash que tienen guardados, con <code>git stash show -p stash@\{0\}</code> u otro numero, mostraran el contenido del stash (Noten que el -p viene de git diff, asi que pueden usar cualquier switch del git diff).</p>
<h3>Un pager mas bonito</h3>
<p>Cuando hacen un git diff, quizas no les guste mucho, si es así pueden usar otro comando para el pager, por ejemplo most:<br />
<code><br />
# ~/.gitconfig</code></p>
<p>[...]</p>
<p>[core]</p>
<p>pager = most +s +&#8217;/&#8212;&#8217;</p>
<p>[...]</p>
<p>Necesitaran tener most instalado, la otra gracia que hará, será buscar la línea que comience con &#8212; (Que es como git define cada cambio, así que automáticamente llegaran al primer cambio en un git diff por ejemplo).</p>
<h3>Finalmente, ZSH</h3>
<p>El otro dia <a href="http://robertocarvajal.org/">netkrash</a> nos contaba en irc que estaba usando zsh con los scripts de <a href="http://github.com/robbyrussell/oh-my-zsh">Oh My ZSH</a>, que tenía completación de nombres para el kill (Onda kill -9 Adi[tab] buscaba el proceso con ese nombre y extraia el pid), completación de hostnames para ssh|scp, y lo que mas me intereso, integración con git &#8230; cuando leí eso ultimo lo instale altiro!</p>
<p>Bueno, la instalacion de ZSH es bien simple:<br />
<code><br />
sudo apt-get install zsh<br />
</code><br />
Luego pueden instalar oh my zsh, el instalador automático bastara (Nota para algunos, NECESITAN tener instalado zsh antes de oh my zsh, aviso por si las moscas &#8230;):<br />
<code><br />
wget http://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh<br />
</code></p>
<p>Y ya estan listos, si quieren meter mano en los configs de oh my zsh, pueden hacerlo en .oh-my-zsh. Al momento tengo algunos cambios en mi branch local:</p>
<ul>
<li>Desactivar el menu de zsh (Para la autocompletacion, me acostumbre al completado como en bash) (Thanks netkrash)</li>
<li>Completacion de hosts ssh|scp segun ~/.ssh/config en vez del known_hosts (Netkrash again)</li>
<li>Completacion de usuarios con uid superior a 1000 (Comunmente usuarios reales), mostrar a root y ocultar a nobody.</li>
<li>El atajo de oh my zsh de git diff (gd), se le pasa mate por un pipe, quite eso por que ya tengo un pager configurado.</li>
<li>Trackear los ficheros de custom/</li>
<li>Tema &#8216;idk&#8217; para zsh (Para cambiar los temas de zsh basta con cambiar la variable ZSH_THEME en su ~/.zshrc), basado en macovsky y wezm (Incluidos en oh my zsh). <a href="http://boaboa.org/shots/idk_zsh_shot.png">Preview</a>.</li>
</ul>
<p>En fin, si les interesan los cambios, en <a href="http://boaboa.org/asdf/parches_janitux_oh_my_zsh.tar.gz">este tar</a> vienen todos los patches que he aplicado (Pueden crear un branch en .oh-my-zsh con <code>git checkout -b mismods</code> y luego aplican los parches con <code>git am nombreparche.patch</code>)</p>
<p>Me faltaron un poco de fuentes, Viget entregaba un <a href="http://www.viget.com/extend/a-gaggle-of-git-tips/">par</a> de <a href="http://www.viget.com/extend/effectively-using-git-with-subversion/">tips</a>, muy buenos.</p>
]]></description>
		<pubDate>Mon, 22 Mar 2010 17:19:11 +0000</pubDate>
	</item>
		<item>
		<title>Rodrigo Zamora: Cambio de Zona Horaria en Debian</title>
		<link>http://rodrigo.zamoranelson.cl/?p=876</link>
		<description><![CDATA[<p>Cuando se necesita cambiar la zona horaria en tu servidor debian (supongo que en distribuciones basadas en él, como lo es ubuntu igual sirve), basta con ejecutar el comando:</p>
<p><code>dpkg-reconfigure tzdata</code></p>
<p>Con esto aparecerá un asistente que permite realizar el cambio de forma bastante sencilla. Para el caso de Chile, este 2010 se ha optado por prolongar el cambio de horario hasta abril, de ahi la necesidad de ajustar la zona a una diferente.<br />
<a href="http://rodrigo.zamoranelson.cl/wp-content/uploads/Imagen-21.png"><img src="http://rodrigo.zamoranelson.cl/wp-content/uploads/Imagen-21-300x195.png" alt="" title="Imagen 21" width="300" height="195" class="alignnone size-medium wp-image-877" /></a></p>
]]></description>
		<pubDate>Tue, 16 Mar 2010 12:35:38 +0000</pubDate>
	</item>
		<item>
		<title>Rodrigo Zamora: Recuperando RAID 1 ext3</title>
		<link>http://rodrigo.zamoranelson.cl/?p=850</link>
		<description><![CDATA[<p>Hoy falla repentinamente una partición de un equipo con raid 1 por software en linux. Simplemente no era posible montar el dispositivo <strong>/dev/md3</strong></p>
<p>Ante esa situación y considerando que era un apartición <strong>/home/</strong> el procedimiento seguido fue el siguiente:</p>
<p>tener claridad de que particiones componen el arreglo, en este caso <strong>/dev/sda3</strong> y <strong>/dev/sdb3</strong></p>
<p>Revision de particiones por separado.</p>
<blockquote><p>fsck.ext3 /dev/sda3</p></blockquote>
<blockquote><p>fsck.ext3 /dev/sdb3</p></blockquote>
<p>Volver a incorporar el raid al sistema</p>
<blockquote><p>mdadm &#8211; -assemble /dev/md3 /dev/sda3 /dev/sdb3</p></blockquote>
<p>Revisión del Raid armado</p>
<blockquote><p>fsck.ext3 /dev/md3</p></blockquote>
<p>Incorporar nuevamente los arreglos al mdadm.conf</p>
<blockquote><p>mdadm &#8211; -detail &#8211; -scan >> /<strong>etc</strong>/mdadm/mdadm.conf</p></blockquote>
<p>Con esto los arreglos quedaron funcionales</p>
]]></description>
		<pubDate>Fri, 26 Feb 2010 14:33:53 +0000</pubDate>
	</item>
		<item>
		<title>Rodrigo Zamora: Configurar Apache2 + SSL ( How To )</title>
		<link>http://rodrigo.zamoranelson.cl/?p=832</link>
		<description><![CDATA[<p><img src="http://japache.infoscience.co.jp/Apache-SSL/Apache-SSL.files/ApachSSL.gif" alt="" /></p>
<p>Como Documentación personal dejo registro de algo que he hecho en otras oportunidades, pero de lo cual no siempre recuerdo todos los parámetros. <img src='http://rodrigo.zamoranelson.cl/wp-includes/images/smilies/icon_wink.gif' alt=':wink:' class='wp-smiley' /> </p>
<p>Para quien lea éste artículo, daré solo algunas pautas esenciales para la implementación del protocolo  SSL sobre plataformas WEB y el uso de certificados auto firmados.</p>
<p><strong>OBJETIVOS</strong></p>
<li>Comprender la utilidad de usar SSL sobre plataformas WEB y conseguir un sitio <strong>https</strong></li>
<li>Entender cuales son los requisitos para que un sitio web sea reconocido como válido por un browser</li>
<li>Comprender como generar y auto firmar un certificado digital.</li>
<li>Configurar Clientes y Servidores para un sitio https auto firmado.</li>
<p><span id="more-832"></span></p>
<p><strong>UTILIDAD DE UN SITIO HTTPS</strong></p>
<p>Quien no sea muy entendido, podrá desconocer que cuando son insertados datos dentro de formularios de sitios que solamente usan <strong>http</strong>, estos datos son enviados en texto claro por la red y pueden ser capturados y utilizados de manera maliciosa por cualquiera que tenga acceso a los equipos de comunicaciones por donde pasan estos datos.</p>
<p><a href="/wp-content/uploads/Imagen-1.png"><img src="/wp-content/uploads/Imagen-1-150x150.png" alt="" title="Imagen 1" width="150" height="150" class="alignnone size-thumbnail wp-image-833" /></a></p>
<p><strong>REQUISITOS DE UN SITIO VÄLIDO</strong></p>
<p>Para que un sitio sea reconocido como un sitio seguro válido, debe cumplir con 3 condiciones esenciales:</p>
<li>Contar con un certificado digital válido firmado por una entidad reconocida</li>
<li>El certificado debe ser emitido para el sitio específico.</li>
<li>El certificado del sitio debe contar con una fecha válida (los certificados cuentan con fecha de caducidad)</li>
<p><strong>CERTIFICADOS AUTO FIRMADOS</strong></p>
<p>Cuando se utilizan certificados, estos deberían ser firmados por una entidad reconocida ( C A ) como lo es <strong>verisign</strong>. Los navegadores tienen registrados una gran cantidad de entidades reconocidas dentro de lo que se conoce como <strong>Entidades Raiz de Confianza</strong>. Cuando un administrador de sistemas decide generar por si mismos los certificados y también firmarlos, se produce una advertencia por parte del navegador, indicando que la entidad emisora que ha firmado el certificado no es de confianza y que puede tratarse de un certificado inválido o un sitio falsificado.</p>
<p><a href="/wp-content/uploads/Imagen-2.png"><img src="/wp-content/uploads/Imagen-2-150x150.png" alt="" title="Imagen 2" width="150" height="150" class="alignnone size-thumbnail wp-image-834" /></a></p>
<p><strong>La manera correcta de habilitar un sitio auto firmado consiste en generar los certificados, firmarlos y hacer que los clientes reconozcan al equipo que los firma como una CA válida dentro de los certificados raíz de confianza<br />
</strong></p>
<p><strong>EMISION Y FIRMA DE CERTIFICADOS</strong></p>
<p>A continuación la forma de emitir certificados para la CA y un sitio web utilizando <strong>Linux, apache2 y openSSL</strong>. <a href="http://www.vanemery.com/Linux/Apache/apache-SSL.html">( Fuente Original )</a></p>
<p>Generando Certificados para la CA.</p>
<p>En mi caso, voy generar una Entidad Emisora de Certificados Llamada <strong>zamoranelson.cl</strong>, por lo que he de generar los certificados y llaves correspondientes llenando los datos solicitados por openSSL. </p>
<p>Creamos un directorio llamado <em>/ etc / apache2/ssl</em><strong> y ejecutamos los siguientes comandos.</p>
<blockquote><p><code>openssl genrsa -des3 -out zamoranelson.cl-ca.key 2048</code></p></blockquote>
<blockquote><p><code>openssl req -new -x509 -days 3650 -key zamoranelson.cl-ca.key -out zamoranelson.cl-ca.crt</code></p></blockquote>
<blockquote><p><code>openssl x509 -in zamoranelson.cl-ca.crt -text -noout</code></p></blockquote>
<p>Con esto ya podemos comenzar a firmar certificados para nuestros sitios web por 10 años mas.</p>
<p>Ahora firmaré un certificado para mi sitio personal <code>rodrigo.zamoranelson.cl</code></p>
<blockquote><p><code>openssl genrsa -des3 -out rodrigo.zamoranelson.cl.key 1024</code></p></blockquote>
<blockquote><p><code>openssl req -new -key rodrigo.zamoranelson.cl.key -out rodrigo.zamoranelson.cl.csr</code></p></blockquote>
<p>En esta sección, openSSL preguntará lo siguiente:<br />
<code><strong>Common Name (eg, your name or your server's hostname) []</strong></code></p>
<p>Aqui se debe ingresar el dominio exacto del sitio web en el que se usará el certificado, en mi caso, <strong>rodrigo.zamoranelson.cl</strong></p>
<blockquote><p><code>openssl x509 -req -in rodrigo.zamoranelson.cl.csr -out rodrigo.zamoranelson.cl.crt -sha1 -CA zamoranelson.cl-ca.crt -CAkey zamoranelson.cl-ca.key -CAcreateserial -days 3650<br />
</code></p></blockquote>
<blockquote><p><code>openssl x509 -in rodrigo.zamoranelson.cl.crt -text -noout</code></p></blockquote>
<p>En esta sección ya hemos generado y firmado nuestro certificado con la CA <strong>zamoranelson.cl</strong> para el sitio <strong>rodrigo.zamoranelson.cl</strong>, el cual será valido también por 10 años.</p>
<p><strong>CONFIGURACION DE APACHE2</strong> </p>
<blockquote><p><code>NameVirtualHost *:443<br />
< VirtualHost    *:443 ><br />
ServerName      powers2.cl<br />
ServerAlias     rodrigo.zamoranelson.cl<br />
CustomLog       /var/log/mcbrain.powers.cl.log  full<br />
DocumentRoot    /home/mcbrain<br />
SSLCertificateFile / etc /apache2/ssl/rodrigo.zamoranelson.cl.crt<br />
SSLCertificateKeyFile / etc /apache2/ssl/rodrigo.zamoranelson.cl.key<br />
SSLEngine on<br />
< /VirtualHost ></code></p></blockquote>
<blockquote><p>Importante: Esta configuración es Básica y solo ilustrativa. Los espacios en el <strong>< VirtualHost ></strong> y <strong>/ etc / apache2</strong> fueron hechos a propósito para evitar problemas con el código de este artículo y deben ser suprimidos. </p></blockquote>
<p>Apache en sus configuraciones tiene un parámetro que indica el puerto de escucha, normalmente es el 80, por lo que está definido como <strong>Listen 80</strong>. En debian está definido dentro del archivo <strong>ports.conf</strong>, pero en otras distribuciones puede estar en el mismo <strong>apache.conf</strong>. Para habilitar el puerto 443 tcp, que es el utilizado en <strong>https</strong>, debemos agregar la linea <strong>Listen 443</strong>  </p>
<p>En este punto, luego de reiniciar apache2 e ingresar la misma contraseña que usamos al generar los certificados, ya deberíamos poder acceder al sitio.  </p>
<p><code>Cada vez que se inicie el servicio, como en el paso anterior, se solicitará la clave asignada. Esta característica fue diseñada por razones de seguridad, es necesaria ya que la llave RSA privada del archivo server.key se encuentra encriptada con ella, sin embargo es posible removerla bajo consideración del administrador. Para remover esta capa de seguridad se deben ejecutar los pasos siguientes.</p>
<p>- mv rodrigo.zamoranelson.cl.key rodrigo.zamoranelson.key.old<br />
- openssl rsa -in rodrigo.zamoranelson.cl.key.old -out rodrigo.zamoranelson.cl.key</p>
<p>Enter pass phrase for server.key.orig: **************</p>
<p>Y luego reiniciar apache2.<br />
</code></p>
<p>Lo normal es que el navegador nos advierta que el certificado ha sido emitido y firmado por una entidad desconocida, para corregir este problema, llevaremos el archivo antes generado <strong>zamoranelson.cl-ca.crt</strong> a los clientes que accederán al sitio. Los archivos <strong>.crt</strong> son una extensión reconocida por los principales sistemas operativos como un certificado digital, por lo que es probable que baste con hacer doble click sobre él para instalarlo dentro de los <strong>certificados raíz de confianza</strong> del equipo  para que los navegadores ya no desconozcan el certificado como uno auto firmado inválido.</p>
<p>Para evitar este paso, se usan certificados firmados por entidades oficiales como verisign, pero esto tiene un costo asociado.</p>
]]></description>
		<pubDate>Fri, 19 Feb 2010 22:03:00 +0000</pubDate>
	</item>
		<item>
		<title>Rodrigo Zamora: Acerca de Bruce Dickinson.</title>
		<link>http://rodrigo.zamoranelson.cl/?p=793</link>
		<description><![CDATA[<p><img src="http://californiasound.files.wordpress.com/2009/09/brucedickinson.jpg" alt="" /></p>
<p>Hace unos días comentaba con alguien por ahí, los distintos cambios de voz que ha tenido a lo largo de los años el líder de mi banda favorita.<br />
 Iron Maiden ha venido en varias ocasiones a Chile y en las últimas, mucho <del datetime="2010-01-27T17:15:00+00:00">pokemón con aires de maldad</del> joven se ha podido delietar con el tema insigne para abrir conciertos, hablamos de <strong>Aces High</strong>. Creo que los años no han pasado en vano y a pesar que la voz ya no es la misma, Bruce ha podido adaptarla usando técnicas vocales diferentes, es mas, en el presente si que parece <strong>Sirena Anti Aérea</strong> <img src='http://rodrigo.zamoranelson.cl/wp-includes/images/smilies/icon_cool.gif' alt='8)' class='wp-smiley' /> . </p>
<p>En el pasado, la voz era bastante distinta y creo que muchos coincidirán conmigo al decir que me hubiese gustado escuchar a Maiden tal como sonaban en la gira <strong>World Slavery Tour</strong> .</p>
<p>Centrándome en la interpretación de Aces High y haciendo comparaciones de todas las versiones que he oido ( y que son bastantes ), me quedo lejos con la de Polonia en 1984 . </p>
<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/dh2rNd1YoKY&#038;hl=es_ES&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/dh2rNd1YoKY&#038;hl=es_ES&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<p>En ningún otro concierto he oido el &#8220;Ruuuunnnnnnnn&#8230;.!!! &#8221; de aces high de esta forma ( Debería haberlo conservado así ) .</p>
]]></description>
		<pubDate>Wed, 27 Jan 2010 17:26:23 +0000</pubDate>
	</item>
		<item>
		<title>Rodrigo Zamora: RZN at Movistar Arena.</title>
		<link>http://rodrigo.zamoranelson.cl/?p=788</link>
		<description><![CDATA[<p>Aprovechando los días libres en Santiago, hice lo que quizás hace 6 meses jamás hubiese hecho, ir a un concierto No Metal <img src='http://rodrigo.zamoranelson.cl/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  , esta vez fui a ver a  &#8220;The Cranberries&#8221;&#8230; Si, lo se, algunos conocidos me dirán mamón <del datetime="2010-01-27T17:11:35+00:00">te perdiste el concierto de metallica</del>, pero no me interesa, tenía muy buenas razones para ir <img src='http://rodrigo.zamoranelson.cl/wp-includes/images/smilies/icon_cool.gif' alt='8)' class='wp-smiley' /> .</p>
<p>No soy un seguidor de este grupo, sin embargo algunas canciones las ubicaba, al final, sea como sea, se pasó excelente.</p>
<p>Todo muy ordenado y salvo problemas técnicos en la mitad del concierto (Se apagaron las pantallas gigantes y la amplificación)) y el final abrupto sin despedida ( Creí que saldría a despedirse pero se fueron rápido ). </p>
<p>En resumen, buen concierto y sonido, no conocía el recinto y no resultó un mal lugar después de todo, ya que le tenía poca fe a la acústica de un lugar tan cerrado.</p>
<p><a href="http://rodrigo.zamoranelson.cl/wp-content/uploads/SP_A0129.jpg" target="_blank" ><img src="http://rodrigo.zamoranelson.cl/wp-content/uploads/SP_A0129-150x150.jpg" alt="" title="SP_A0129" width="150" height="150" class="alignleft size-thumbnail wp-image-789" /></a></p>
]]></description>
		<pubDate>Wed, 27 Jan 2010 17:00:50 +0000</pubDate>
	</item>
		<item>
		<title>Patricio Perez: Una de resumen del failyear09</title>
		<link>http://janitux.boaboa.org/2009/una-de-resumen-del-failyear09/</link>
		<description><![CDATA[<p>Hola, vengo a escribir el penúltimo articulo del glob del año.</p>
<p>En la parte del año que fue como las wifas (Como lo pronostique a fines del 2008) le lleva:</p>
<ul>
<li>Me despidieron, el único consuelo es que no fue mi culpa (La empresa murio en mala).</li>
<li>Aún me estan alargando el pago de unas lucas (CTMS, mueranse)</li>
<li>Par de temas personales que no vale la pena mencionar.</li>
<li>Ah, y no pude regalarme nada fancy para navidad <img src='http://janitux.boaboa.org/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  (Vease el fail del pago de lucas de más arriba)</li>
</ul>
<p>Ahora, lo que si me salvo el año <img src='http://janitux.boaboa.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  :</p>
<ul>
<li>Trabaje en lo que me gusta por 8 meses.</li>
<li>Aprendí cosas re-entretenidas en la pega.</li>
<li>Me lleve genial con un par de clientes (Gabriela y Jordana, tambien Felipe). Lastima que con otros no tanto &#8230;</li>
<li>Conocí gente genial (Team DM, la gabi, el milton, la veny, el vicho, hasta javier; Ex-DM: el cesar <img src='http://janitux.boaboa.org/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> ; y el equipo de egipcios, que lo nombro más abajo).</li>
<li>Me llevo mejor con gente que antes consideraba solo conocidos <img src='http://janitux.boaboa.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
<li>Trabajé con un dream team para las <a href="http://jornadasregionales.org/">jornadas</a> (Al hilo tenemos a <a href="http://rod.firefox.cl/">Rod</a>, <a href="http://boris.insert-coin.org/wordpress/">Boris</a>, <a href="http://pcollaog.firefox.cl/">Pancho</a>, <a href="http://lecaros.wordpress.com/">lecaros</a>, <a href="http://tesistaensantiago.wordpress.com/">camila</a>, <a href="http://blogs.opensur.org/hyoga/">javier</a> y la revelación del  año &#8230; <a href="http://twitter.com/pottersys">pottersys</a> xD)</li>
<li>Mención honrosa para el Mozcamp y la gente de Mozilla (<a href="http://www.sarahdoherty.net/">Sarah</a>, you rocks)</li>
</ul>
<p>Disculpen lo latero, la pesima redacción (Queda en el TODO de 2010) y los daños que les haya provocado el post <img src='http://janitux.boaboa.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  y antes de olvidarlo: Feliz año!</p>
]]></description>
		<pubDate>Thu, 31 Dec 2009 15:00:53 +0000</pubDate>
	</item>
		<item>
		<title>Patricio Perez: Hostear repositorios Git de forma sencilla</title>
		<link>http://janitux.boaboa.org/2009/hostear-repositorios-git-de-forma-sencilla/</link>
		<description><![CDATA[<p style="text-align: center;"><img class="size-full wp-image-124 aligncenter" title="git" src="http://janitux.boaboa.org/wp-content/uploads/2009/12/git.png" alt="Git SCM" width="288" height="106" /></p>
<p>Primero que nada, gracias a <a href="http://botellasrotas.wordpress.com/">Cesar</a> por la idea de usar git para backups  de ahi me vino toda esa git mania <img src='http://janitux.boaboa.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Cuando se trata de sistemas de control de versiones, los primeros que se me vienen a la mente son git y subversion, por motivos de laziness prefiero el primero, por que lo conozco mejor y por que puedo hacer este setup con los ojos vendados (Not really <img src='http://janitux.boaboa.org/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> )</p>
<p>Bueno, me ahorrare unas lineas diciendo que este setup:</p>
<ul>
<li>Usa llaves ssh para la autenticacion de usuarios</li>
<li>Usa un repositorio git para manejar los repositorios de git (Got it?)</li>
<li>Solo usa una cuenta de usuario para el manejo de git</li>
</ul>
<p>Usaremos el proyecto <a href="http://eagain.net/gitweb/?p=gitosis.git">Gitosis</a>, desarrollado por <a href="http://eagain.net/blog/">Tommi Virtanen</a>, como se imaginan el proyecto esta hosteado en git <img src='http://janitux.boaboa.org/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>Nos fuimos:</p>
<p><span id="more-118"></span></p>
<h3>Paso 1: Instalar Gitosis</h3>
<p>Instalamos git y setuptools de python:</p>
<pre><code>apt-get install git-core python-setuptools</code></pre>
<p>Ahora clonamos el codigo fuente de gitosis y lo instalamos:</p>
<pre><code>cd /usr/src/
git clone git://eagain.net/gitosis.git
cd gitosis
python setup.py install
</code></pre>
<h3>Paso 2: Crear el usuario para git</h3>
<p>Creamos el usuario git (puede llamarse como ustedes quieran):</p>
<pre><code>adduser \
    --system \
    --shell /bin/bash \
    --gecos 'Control de Versiones Git' \
    --group \
    --disabled-password \
    --home /home/git \
    git
</code></pre>
<p>Notar que tiene la contraseña deshabilitada, ya que no es necesaria;  y tambien que le dimos una shell valida (Que si es necesaria para que ande gitosis).</p>
<p>Ahora para iniciar la instancia de gitosis, necesitaremos una llave pública RSA, si no tienen una pueden crearla con este comando:</p>
<pre><code>ssh-keygen -t rsa -C janitux</code></pre>
<p>Con nuestra llave lista, la copiamos al server que tendra gitosis, e iniciamos finalmente la creacion de la instancia gitosis:</p>
<pre><code>su -c "/usr/bin/gitosis-init &lt; /tmp/id_rsa.pub" git</code></pre>
<p>Y este comando por si tenemos un bug en python-setuptools:</p>
<pre><code>chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update</code></pre>
<p>Y comienza la fiesta, clonamos el repositorio de administracion de gitosis:</p>
<pre><code>git clone git@SERVER:gitosis-admin.git</code></pre>
<p>Y ya estamos listos para administrar nuestros repositorios con gitosis! <img src='http://janitux.boaboa.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<div class="mceTemp mceIEcenter">
<dl id="attachment_135" class="wp-caption aligncenter" style="width: 455px;">
<dt class="wp-caption-dt"><img class="size-full wp-image-135" title="Gitosis Admin" src="http://janitux.boaboa.org/wp-content/uploads/2009/12/janitux@laptop-Git-gitosis-admin_017.png" alt="gitosis admin FTW!" width="445" height="319" /></dt>
</dl>
</div>
<h3>Paso 3: Crear Repositorios con gitosis</h3>
<p>La administración de gitosis es muy sencilla, basta modificar el fichero gitosis.conf del directorio que clonamos en el paso anterior.<br />
La sintaxis de este fichero se basa en directivas de grupos, se define  el grupo, en que repositorios tendrán permisos de escritura o lectura; para más información sobre gitosis.conf ver el fichero  <a href="http://eagain.net/gitweb/?p=gitosis.git;a=blob;f=example.conf;hb=master">example.conf</a></p>
<p>En fin, en este ejemplo crearemos el grupo ?equipo?, con ?pato? y ?pedro? como miembros del  grupo y este grupo tendrá permisos de escritura en los repositorios  ?mirepo? y ?repob?. (Nota: el nombre de usuario se determina mediante los ficheros en el  directorio keydir, es el nombre del fichero, sin la extensión .pub)</p>
<pre><code>
[group equipo]
writable = mirepo repob
members = pato pedro
</code></pre>
<p>Tambien tenemos que agregar las llaves publicas de pato y pedro:</p>
<pre><code>
cp id_rsa_pato.pub gitosis-admin/keydir/pato.pub
cp id_rsa_pedro.pub gitosis-admin/keydir/pedro.pub
</code></pre>
<p>Con esto estariamos listos para dar un commit y que se apliquen los cambios:</p>
<pre><code>git add gitosis.conf keydir/
git commit -a -m "Creado grupo equipo, con pato y pedro como miembros, y permiso de escritura en los proyectos mirepo y repob"
git push
</code></pre>
<p>Y finally creamos el repositorio con el commit inicial:</p>
<pre><code>
mkdir -p ~/Git/mirepo
cd ~/Git/mirepo
git init
git remote add origin git@SERVER:mirepo.git
## Hacer trabajos, agregas ficheros con git add, y haces un commit con git commit -a
git push origin master:refs/heads/master
</code></pre>
<p>FINALLY! estamos listos para seguir trabajando con nuestros repositorios git <img src='http://janitux.boaboa.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Mi única recomendación, sean claros con los nombres de sus mensajes en el commit.</p>
<p>Y obviamente, los creditos van a <a href="http://scie.nti.st/">Garry Dolley</a>, por <a href="http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way">este howto</a> <img src='http://janitux.boaboa.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
]]></description>
		<pubDate>Fri, 11 Dec 2009 05:49:28 +0000</pubDate>
	</item>
		<item>
		<title>Patricio Perez: La historia del mail que se enviaba por cualquier ISP menos GTD</title>
		<link>http://janitux.boaboa.org/2009/la-historia-del-mail-que-se-enviaba-por-cualquier-isp-menos-gtd/</link>
		<description><![CDATA[<p>Hola, vengo a contarles una pequeña historia, incluye a un cliente puteandome por no poder enviar correos en outlook via GTD y  el antispam avenger.</p>
<p>La historia comienza cuando me dicen que el cliente XX tiene un problema con el correo, entonces reviso los logs del server y no veo nada extraño, enviaba correos, recibia correos, todo bien! (Revise bien al pedo, por que estaba un poco ocupado en las jornadas)<br />
Lo que siguio, es que al volver a la vida (Aproximadamente el martes o miercoles, despues de las jornadas), me llama el cliente XX a la oficina, diciendome que ha estado como dos semanas con el problema, que desde su &#8220;coso&#8221; movil movistar podia enviar correos bien, pero que desde el enlace de &lt;no puedo decir donde estaba&gt; no podia enviar correos. En fin, luego de 5 minutos de tratarme como idiota, me harte y pedi hablar con el encargado del enlace (Mucho más razonable, y realmente entendía lo que yo hablaba <img src='http://janitux.boaboa.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> ). Despues de hacer un par de pruebas, me fije que los logs decian XXXX hostname, en las sesiones de envio SMTP, y claro, ahí saltaba avenger alegando que tenía que hacer primero un EHLO o sino era spam. Hasta ahí no entendia nada, por que diablos desde una conexión si se enviaban bien los comandos SMTP, y no desde otra; tras googlear un rato, encontre al culpable!</p>
<p style="text-align: center;"><img class="aligncenter size-medium wp-image-113" title="Firewall Cisco!" src="http://janitux.boaboa.org/wp-content/uploads/2009/10/firewall-cisco-300x164.jpg" alt="" />Según vi, los firewalls cisco tienen una función llamada &#8220;fixup protocol&#8221;, que solo permite que pasen ciertos comandos SMTP, despues de deshabilitarlo, todo volvio a la normalidad <img src='http://janitux.boaboa.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></description>
		<pubDate>Sat, 17 Oct 2009 20:27:10 +0000</pubDate>
	</item>
		<item>
		<title>Andres Ovalle: Kernel BSD en Debian Squeeze</title>
		<link>http://www.debianchile.cl/debian-internacional/kernel-bsd-en-debian-squeeze/</link>
		<description><![CDATA[<p style="text-align: center;"><img class="alignnone" title="Debian BSD" src="http://www.debianchile.cl/wp-content/gallery/uploads/horned_logo.jpeg" alt="" width="205" height="224" /></p>
<p>Hoy en las noticias de Debian han anunciado que va a estar disponible un port del kernel de BSD, Squeeze será la primera rama en incluir el nuevo port.</p>
<blockquote><p>The Debian Release Team is pleased to announce that it sees the port of the Debian system to the FreeBSD kernel fit to be handeld equal with the other release ports. The upcoming release codenamed &#8216;Squeeze&#8217; is planned to be the first Debian distribution to be released with Linux and FreeBSD kernels.</p></blockquote>
<p>Link&#8217;s</p>
<p><a href="http://www.debian.org" target="_blank">http://www.debian.org</a><br />
<a href="http://www.debian.org/News/2009/20091007" target="_blank">Debian pushes development of kFreeBSD port.</a></p>
]]></description>
		<pubDate>Wed, 07 Oct 2009 18:49:11 +0000</pubDate>
	</item>
		<item>
		<title>Andres Ovalle: Día GNOME 2009 ? Llamado a presentar trabajos</title>
		<link>http://www.debianchile.cl/debianchile/dia-gnome-2009-llamado-a-presentar-trabajos/</link>
		<description><![CDATA[<blockquote><p>El Grupo Local de GNOME &#8211; GNOME Chile &#8211; tiene el agrado de invitar a todos los entusiastas, usuarios y desarrolladores del proyecto GNOME a presentar sus trabajos dentro de la realización del evento del Día GNOME.</p>
<p>El Día GNOME es el evento de difusión del proyecto GNOME, más grande que se organiza a nivel nacional, y desde el año 2006 que se está realizando en diversas ciudades del país, con el objetivo de promover el uso y desarrollo de este ambiente y sus tecnologías.</p>
<p>Esta nueva edición del día GNOME, se desarrollará dentro del Décimo Encuentro Linux y se realizará el día Sábado 24 de Octubre en la Universidad Técnica Federico Santa María, Valparaíso, Chile</p></blockquote>
<p>Pueden ver mas información en la <a href="http://mail.gnome.org/archives/gnome-cl-list/2009-October/msg00004.html" target="_blank">Lista de Correos de Gnome Chile</a>.</p>
]]></description>
		<pubDate>Tue, 06 Oct 2009 02:26:02 +0000</pubDate>
	</item>
		<item>
		<title>Andres Ovalle: Día del Software Libre 2009</title>
		<link>http://www.debianchile.cl/debianchile/dia-del-software-libre-2009/</link>
		<description><![CDATA[<p style="text-align: center;"><img class="aligncenter" src="http://www.gnewbook.org/mod/tidypics/thumbnail.php?file_guid=1674&amp;size=large" alt="Día del Software Libre 2009" /></p>
<p style="text-align: left;">Este Sábado 26 de Septiembre se realizará en varias ciudades de chile, el Día del Software Libre.</p>
<blockquote style="text-align: center;">
<p style="text-align: left">&#8220;El Día de la Libertad del Software es un esfuerzo global de educar al público acerca de la importancia de la Libertad del Software y las virtudes y disponibilidad del Software Libre (Free Software). Los equipos locales de todo el mundo organizan eventos cada tercer sábado de septiembre. El último evento involucró más de 200 equipos de todo el mundo. En nuestro país se realizará el 26 de septiembre, debido a la cercanía de las fiestas patrias.&#8221;&#8230;</p>
</blockquote>
<p style="text-align: center;">Para esta ocasión DebianChile.cl se hará presente en la sede de Curicó con un Stand, en donde tendremos algunas sorpresas para los asistentes.</p>
<p style="text-align: center;">
<p style="text-align: center;">Link&#8217;s</p>
<p style="text-align: center;"><a href="http://www.diadelsoftwarelibre.cl" target="_blank">http://www.diadelsoftwarelibre.cl</a></p>
<p style="text-align: center;"><strong>UPDATE</strong></p>
<p style="text-align: center;">pueden ver algunas imágenes del evento <a title="DSL 2009" href="http://carlos.debianchile.cl/imagenes/dsl-2009" target="_blank">aquí</a></p>
]]></description>
		<pubDate>Tue, 06 Oct 2009 02:18:41 +0000</pubDate>
	</item>
		<item>
		<title>Andres Ovalle: Décimo Encuentro Linux: Llamado a Envío de Trabajos</title>
		<link>http://www.debianchile.cl/noticias-nacionales/decimo-encuentro-linux-llamado-a-envio-de-trabajos/</link>
		<description><![CDATA[<p><img class="alignleft" src="http://www.arturo.hoffstadt.cl/wp/wp-content/uploads/2009/06/logo-300x180.png" alt="" width="300" height="180" /></p>
<p>El Encuentro Linux es un congreso de carácter internacional que convoca a los profesionales e interesados en el sistema operativo Linux, BSD, código abierto y tecnologías afines. Es la máxima instancia en Chile sobre estos temas, y reúne a profesionales, académicos, estudiantes y empresarios para compartir en charlas, tutoriales, debates y otras actividades.</p>
<p>La presencia y el uso de software basado en código abierto es cada vez mayor, hoy está presente en áreas donde antes no era de uso común. Hoy en día se puede encontrar Linux en una diversa gama de dispositivos: Desde celulares y netbooks, hasta enormes redes sociales que se construyen sobre servidores basados en software código abierto.</p>
<p>Este año se celebra la décima versión del evento, el cual nació como una instancia para reunir a todos los entusiastas de este sistema operativo y del código abierto. Además, permite acercar y difundir el uso de Linux y el código abierto a la comunidad en general.</p>
<p>Invitación</p>
<p>Invitamos desde ya a preparar su trabajo y enviarlo a más tardar el día viernes 03 de julio. Se aceptará el envío de trabajos destinados a charlas o tutoriales (bajo las mismas condiciones). Los trabajos enviados deberán respetar la estructura y limitaciones indicadas en este documento. El envío de los trabajos será vía web, sistema que se habilitará el día 18 de mayo.</p>
<p>El formato de las charlas será de 50 minutos más 10 minutos adicionales destinados a preguntas.<br />
<span id="more-357"></span><br />
Estructura de la propuesta</p>
<p>1. Título</p>
<p>2. Autor(es), uno de los cuales debe ser el expositor del trabajo.</p>
<p>3. Abstract (Resumen): Breve resumen, de no más de 5 líneas, indicando la principal idea de la charla o tutorial.</p>
<p>4. Keywords (palabras clave)</p>
<p>5. Introducción</p>
<p>6. Motivación: Explicación de porqué su trabajo es de interés para el público objetivo de este congreso.</p>
<p>7. Desarrollo del Tema</p>
<p>8. Referencias</p>
<p>9. Área en la que se centra el trabajo (ver sección ?Áreas Temáticas?)</p>
<p>10. Nivel (Elegir uno de básico, medio o avanzado).</p>
<p>11. Indicar máximo 5 puntos en los que se enfocará la presentación (no el trabajo).</p>
<p>12. Foto del expositor (tamaño pasaporte), una breve reseña biográfica de los autores, y la URL de la página personal o blog (si corresponde)</p>
<p>Condiciones</p>
<p>Los documentos enviados se publicarán en la página permanente del Encuentro. Deben cumplir las siguientes condiciones:</p>
<p>* 3 páginas, sin portada.</p>
<p>* Enviar en formato PDF, independiente del formato de origen.</p>
<p>* Se sugiere utilizar algunos de los templates que se publicarán en nuestra página web (ODF, Latex2e).</p>
<p>* Imágenes u otros materiales anexos sólo como apéndice extraordinario, en un máximo de dos páginas.</p>
<p>* Por cada trabajo se pagará el viaje y la estadía completos para un expositor (si fueran varios autores).</p>
<p>* Es necesario que el expositor se encuentre presente y participe de las actividades del evento.</p>
<p>* El material de apoyo del expositor (típicamente diapositivas) deberá entregarse el 20 de octubre.</p>
<p>Áreas Temáticas</p>
<p>El Décimo Encuentro Linux tiene como eje transversal al sistema operativo Linux y tecnologías de código abierto. También son aceptados temas que compartan estas filosofías, como por ejemplo composiciones artísticas bajo licencia Creative Commons, sistemas operativos de la línea BSD, entre otros. Algunos temas afines son:</p>
<p>* Administración de Sistemas</p>
<p>* Aplicaciones para Celulares</p>
<p>* Cloud Computing</p>
<p>* Desarrollo de Software</p>
<p>* Diseño Multimedia</p>
<p>* Educación y E-Learning</p>
<p>* E-Business</p>
<p>* E-Government</p>
<p>* Computación de Alto Desempeño (Grid, Cluster, Multicore)</p>
<p>* Licenciamiento bajo Copyleft y Creative Commons</p>
<p>* Netbooks</p>
<p>* Open Hardware</p>
<p>* Redes Computacionales</p>
<p>* Redes Sociales y Web 2.0</p>
<p>* Sistemas Operativos Abiertos (Linux, BSD, y otros)</p>
<p>* Videojuegos</p>
<p>Comité de Programa</p>
<p>* Presidente del Comité: Horst H. von Brand, UTFSM.</p>
<p>* Delia Ibacache, UPLA.</p>
<p>* Patricia Trejo, UV.</p>
<p>* Miguel Ruiz, PUCV.</p>
<p>* Samuel Pizarro, DuocUC.</p>
<p>* Arturo A. Hoffstadt, UTFSM.</p>
<p>* Sven von Brand, UTFSM.</p>
<p>Fechas Importantes</p>
<p>La hora límite de todas las fechas, son las 18:00 horas (CLT).</p>
<p>* Apertura del sistema web para envío de trabajos: 18 de mayo.</p>
<p>* Fecha límite de entrega: viernes 03 de julio.</p>
<p>* Publicación de resultados: 07 de agosto.</p>
<p>* Confirmación de asistencia: 14 de agosto.</p>
<p>* Envío de diapositivas o material de presentación y versión definitiva del resumen: 20 de octubre.</p>
<p>* Décimo Encuentro Linux: 22 a 24 de octubre.</p>
<p>Organizan</p>
<p>El Décimo Encuentro Linux es organizado por las siguientes instituciones de educación superior:</p>
<p>* Universidad Técnica Federico Santa María</p>
<p>* Pontificia Universidad Católica de Valparaíso</p>
<p>* Universidad de Valparaíso</p>
<p>* Universidad de Playa Ancha</p>
<p>* DuocUC</p>
<p>Contacto</p>
<p>* Sitio web: http://www.encuentrolinux.cl</p>
<p>* Correo electrónico: encuentro@inf.utfsm.cl</p>
<p>* Teléfono: +56 32 2654367.</p>
<p><a href="http://2009.encuentrolinux.cl/wp-content/uploads/call_for_papers.pdf">llamado a envio de trabajos (pdf)</p>
<p></a></p>
<p><a href="http://2009.encuentrolinux.cl/wp-content/uploads/call_for_papers.txt">llamado a envio de trabajos (txt)</a></p>
]]></description>
		<pubDate>Fri, 12 Jun 2009 17:59:25 +0000</pubDate>
	</item>
		<item>
		<title>Alejandro Lopez: Cambia</title>
		<link>http://yopuz.blogspot.com/2009/05/cambia.html</link>
		<description><![CDATA[Todo cambia.He vuelto a la normalidad.Si importara...]]></description>
		<pubDate>Thu, 07 May 2009 12:00:31 +0000</pubDate>
	</item>
		<item>
		<title>Jose Uribe: Laboratorios de Sistema en nueva ubicacion</title>
		<link>http://labdecom.decom.uta.cl/2009/04/17/laboratorios-de-sistema-en-nueva-ubicacion/</link>
		<description><![CDATA[<p>Los laboratorios de Sistema del Area de Computacion se reubicaron en la ex sala Cisco de Zocalo.</p>
<p>Desde el Miercoles, ya se encuentran operativos tanto para clases o el uso general de los alumnos.</p>
]]></description>
		<pubDate>Fri, 17 Apr 2009 21:31:42 +0000</pubDate>
	</item>
		<item>
		<title>Alejandro Lopez: Alegria</title>
		<link>http://yopuz.blogspot.com/2009/03/alegria.html</link>
		<description><![CDATA[:DEso. Ando feliz.]]></description>
		<pubDate>Thu, 26 Mar 2009 23:23:14 +0000</pubDate>
	</item>
		<item>
		<title>Patricio Perez: Generar un deb a partir de un paquete ya instalado</title>
		<link>http://janitux.boaboa.org/2009/generar-un-deb-a-partir-de-un-paquete-ya-instalado/</link>
		<description><![CDATA[<p>Hace unos días tuve un pequeño drama, tenía instalado amsn en una partición con Ubuntu, y necesitaba instalarlo en otro Ubuntu; el problema es que había perdido el deb, y era un build svn de amsn con otros chiches (Ergo, no me daría la paja de bajar el código del svn, buscar plugins extras ni mucho menos instalar las librerías necesarias para compilarlo).</p>
<p>Aquí es cuando llega <a href="http://kitenet.net/~joey/code/dpkg-repack/">dpkg-repack</a> a salvarme, hace exactamente lo que necesitaba.<br />
La instalación es muy simple, lo instalan vía apt y luego lo corren como root, el único argumento que necesitan es el nombre del paquete.</p>
<p>Ejemplo: sudo dpkg-repack amsn</p>
<p><img class="size-full wp-image-64 alignnone" title="dpkg-repack" src="http://janitux.boaboa.org/wp-content/uploads/2009/01/shot1.png" alt="dpkg-repack" /></p>
<p>PD: Les conte que ahora estoy usando KDE 4.2? <img src='http://janitux.boaboa.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p><em>Now Playing: Pork &amp; Beans &#8211; Weezer</em></p>
]]></description>
		<pubDate>Tue, 27 Jan 2009 01:11:25 +0000</pubDate>
	</item>
		<item>
		<title>Alejandro Lopez: FAIL</title>
		<link>http://yopuz.blogspot.com/2009/01/confusion.html</link>
		<description><![CDATA[Test de inteligencia emocional fail.   1. Consciencia de si mismo = 76%   2. Expresión Emocional = 47%   3. Grado de Autonomia = 62%   4. Confianza en si mismo = 81%   5. Actitud frente a los demás = 30%   6. Capacidad para escuchar = 54%   7. Aptitud para desenvolverse en grupo = 0%   8. Promedio General = 50% No me cuadra.]]></description>
		<pubDate>Mon, 26 Jan 2009 15:54:58 +0000</pubDate>
	</item>
		<item>
		<title>Jose Uribe: Solicitud de alumno en Practica</title>
		<link>http://labdecom.decom.uta.cl/2009/01/08/solicitud-de-alumno-en-practica/</link>
		<description><![CDATA[<p>Para los alumnos interesados en hacer su practica Profesional, la empresa Emelari esta solicitando un alumno en practica que apoye las funciones del área de informática de su empresa.</p>
<p>Dicha practica durará <strong>3 meses y se cancelara $100.00 por cada mes</strong>.</p>
<p>Alumnos interesados comunicarse con la Secretaria del Área de Computación e Informática.</p>
]]></description>
		<pubDate>Thu, 08 Jan 2009 19:29:51 +0000</pubDate>
	</item>
		<item>
		<title>Jose Uribe: OSUM Pizza Party en ACI</title>
		<link>http://labdecom.decom.uta.cl/2008/12/17/osum-pizza-party-en-aci/</link>
		<description><![CDATA[<p>El viernes pasado, se realizó en nuestra dependencias del Área de Computación e Informática, la llamada OSUM Pizza Party, esta actividad fue gestionada por <a href="http://gdsol.uta.cl/" target="_blank">GDSOL</a> ( Grupo de Difusión del Software Libre ) en la cual se tenían que juntar 100 personas en la plataforma <a href="http://osum.sun.com/group/uta" target="_blank">OSUM</a>. ( La meta se cumplió en 3 días )</p>
<p>Aparte de la Pizza Party, se realizó una Charla de información respecto a lo que la empresa SUN, ofrece para los universitarios, desde cursos a certificaciones tanto para el alumnado como académicos.</p>
<p style="text-align: center;"><img class="size-medium wp-image-31 aligncenter" title="n1132276767_198022_1510" src="http://labdecom.decom.uta.cl/wp-content/uploads/2008/12/n1132276767_198022_1510.jpg" alt="" width="486" height="364" /></p>
<p style="text-align: center;"><strong>Parte del Grupo que participo en OSUM Pizza Party</strong></p>
]]></description>
		<pubDate>Wed, 17 Dec 2008 21:04:47 +0000</pubDate>
	</item>
		<item>
		<title>Jose Uribe: Defensas</title>
		<link>http://labdecom.decom.uta.cl/2008/12/01/defensas/</link>
		<description><![CDATA[<p><strong>Ricardo Spencer Veas</strong></p>
<ul>
<li>&#8220;Desarrollo de una Plataforma Web para solucionar la gestión de peticiones de servicios entre las unidades de la Universidad de Tarapacá&#8221;</li>
<li>P. Guía : Oscar Sagardia O.</li>
<li>P. Inf.:    Héctor Ossandón D.</li>
<li>Lugar: 04/12/08, A LAS 15:00 HRS. SALA CENTENARIO.</li>
</ul>
<p><strong>Diamkel Orellana Madariaga</strong></p>
<ul>
<li>&#8220;Definición de un proceso de desarrollo para sitios web basados en el CMS Joomla&#8221;</li>
<li>P. Guía: Ricardo Valdivia P.</li>
<li>P. Inf.:   Héctor Ossandón D.</li>
<li>Lugar: 17/12/08, A LAS 8:30 HRS, SALA CENTENARIO</li>
</ul>
]]></description>
		<pubDate>Mon, 01 Dec 2008 13:04:56 +0000</pubDate>
	</item>
		<item>
		<title>Jose Uribe: Replica correo info@uta.cl - Ataque Malware a UTANET</title>
		<link>http://labdecom.decom.uta.cl/2008/11/28/replica-correo-infoutacl-ataque-malware-a-utanet/</link>
		<description><![CDATA[<p>Hoy se recibió el siguiente correo:<br />
==============================<br />
Se solicita a todos los usuarios de la red informática de la Universidad<br />
de Tarapacá tomar la debida atención a la situación que se indica a<br />
continuación:</p>
<p>Gusano ataca a computadores de todo el mundo</p>
<p>Desde ayer 27 de noviembre a partir de las 15:30 horas se detecta un<br />
gusano informático conocido como &#8220;conficker&#8221; o &#8220;downadup&#8221;, está atacando<br />
a los computadores de millones de usuarios. Las consecuencias de su<br />
ataque es el colapso en la conexión a internet de los usuarios que se<br />
contagian al acceder a Internet.</p>
<p>Se sugiere la inmediata instalación de un parche disponible por<br />
Microsoft (aquellos equipos con licencia legal).</p>
<p>Como prevenirlo.</p>
<p>1.-  Actualizar el parche de seguridad que se encuentra informado en el<br />
Boletín de Microsoft :<br />
<a href="http://www.microsoft.com/spain/technet/security/bulletin/ms08-067.mspx" target="_blank">http://www.microsoft.com/spain/technet/security/bulletin/ms08-067.mspx</a><br />
sólo vale en equipos con copia legal del windows.</p>
<p>2.-  Actualice su antivirus y completa la seguridad de tu computador con<br />
un firewall o sea activar cortafuegos local en el computador personal</p>
<p>3.-  Apague o desconecte su computador de la red por el momento.</p>
<p>Ante cualquier situación contactar a <a href="mailto:dtisopor@uta.cl">dtisopor@uta.cl</a> o al fono 205976, o<br />
al técnico de soporte informático de su facultad o unidad.</p>
<p><strong>SOLUCION: </strong></p>
<p>&#8212;&#8211;BEGIN PGP SIGNED MESSAGE&#8212;&#8211;<br />
Hash: SHA1</p>
<p>Hola:</p>
<p>A nivel central se han aplicado reglas de bloqueo ICMP (ping a cualquier<br />
lado) y bloqueo de los servicio Microsoft para compartir archivo e<br />
impresoras entre InterRedes. El malware se distribuye por el puerto 445.</p>
<p>Mantenerse alerta a cualquier evento.</p>
<p>Aplicar parche sugeridos, verificar que los firewall en lo clientes<br />
estén activos, borrar todas excepciones en el cortafuegos local y<br />
comenzar de nuevo a dar los permisos o excepciones.</p>
<p>Encender o conectar los equipos debido a la situación controlada</p>
]]></description>
		<pubDate>Fri, 28 Nov 2008 19:35:53 +0000</pubDate>
	</item>
		<item>
		<title>Roberto Carvajal: Educational crisis in public chilean schools</title>
		<link>http://feedproxy.google.com/~r/netkrash/~3/Vbmao4qMx9U/</link>
		<description><![CDATA[A]]></description>
		<pubDate>Wed, 28 May 2008 20:56:18 +0000</pubDate>
	</item>
		<item>
		<title>Roberto Carvajal: evilution</title>
		<link>http://feedproxy.google.com/~r/netkrash/~3/5b-5mHhHo6A/</link>
		<description><![CDATA[A]]></description>
		<pubDate>Sun, 18 May 2008 21:25:50 +0000</pubDate>
	</item>
		<item>
		<title>Roberto Carvajal: MTV?s Exit Campaign</title>
		<link>http://feedproxy.google.com/~r/netkrash/~3/pO_5VLxsOrk/</link>
		<description><![CDATA[A]]></description>
		<pubDate>Fri, 02 May 2008 04:13:23 +0000</pubDate>
	</item>
		<item>
		<title>Roberto Carvajal: Massive apostasy in Chile</title>
		<link>http://feedproxy.google.com/~r/netkrash/~3/hUkFG9sUIaM/</link>
		<description><![CDATA[A]]></description>
		<pubDate>Wed, 30 Apr 2008 08:21:42 +0000</pubDate>
	</item>
		<item>
		<title>Roberto Carvajal: Bachelet and Human Rights</title>
		<link>http://feedproxy.google.com/~r/netkrash/~3/drJlpbI1qSU/</link>
		<description><![CDATA[A]]></description>
		<pubDate>Sat, 19 Apr 2008 05:24:27 +0000</pubDate>
	</item>
		<item>
		<title>Matias Valdenegro: My Own BBQ Sauce!</title>
		<link>http://informatica.utem.cl/~mvaldenegro/blog/index.php?/archives/16-My-Own-BBQ-Sauce!.html</link>
		<description><![CDATA[
    <br />
<p>En Peru, Supermercado Vivanda:</p><p /><p><a href="http://informatica.utem.cl/~mvaldenegro/blog/uploads/img_4681.jpg" class="serendipity_image_link"><img width="83" height="110" src="http://informatica.utem.cl/~mvaldenegro/blog/uploads/img_4681.serendipityThumb.jpg" style="border: 0px none ; float: left; padding-left: 5px; padding-right: 5px;" /></a></p><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p>El Martes de Madrugada vuelvo a Santiago. Claro que tengo una de estas salsas :D, incluso tengo tambien una linea de Salsas de Tomate :B</p> 
    ]]></description>
		<pubDate>Sun, 14 Oct 2007 20:07:14 +0000</pubDate>
	</item>
		<item>
		<title>Matias Valdenegro: It's Alive!</title>
		<link>http://informatica.utem.cl/~mvaldenegro/blog/index.php?/archives/15-Its-Alive!.html</link>
		<description><![CDATA[
    Despues de varios vasos de Leche con Chocolate, un par de Googleadas, monodoc, MSDN, tenemos una implementacion del egolatra Hunts.PVM, Implementacion de Paso de Mensajes tipo PVM/MPI en C# :<br />
<br />
Requesting a Task from the Master Node<br />
Got Task ID 211<br />
Processing<br />
Processing Task 211<br />
Requesting a Task from the Master Node<br />
Got Task ID 213<br />
Processing<br />
Processing Task 213<br />
Requesting a Task from the Master Node<br />
Got Task ID 215<br />
Processing<br />
Processing Task 215<br />
<br />
:B<br />
<br />
PD : Es una Tarea para Computacion Paralela xD 
    ]]></description>
		<pubDate>Thu, 04 Oct 2007 00:15:44 +0000</pubDate>
	</item>
		<item>
		<title>Matias Valdenegro: Why do friends suddenly dissapear?</title>
		<link>http://informatica.utem.cl/~mvaldenegro/blog/index.php?/archives/14-Why-do-friends-suddenly-dissapear.html</link>
		<description><![CDATA[
    Alguien tiene un algoritmo pa entender a algunas mujeres? Algo como :<br />
<br />
10 DO RANDOM()<br />
20 TRY { TO BE CUTE() }<br />
30 GOTO 10<br />
<br />
:B 
    ]]></description>
		<pubDate>Wed, 03 Oct 2007 02:48:12 +0000</pubDate>
	</item>
		<item>
		<title>Matias Valdenegro: Moronic...</title>
		<link>http://informatica.utem.cl/~mvaldenegro/blog/index.php?/archives/13-Moronic....html</link>
		<description><![CDATA[
    Interesantemente, ya se desato la 3ra Guerra Mundial, con las increiblemente fundamentadas opiniones de Miguel de Icaza :<br />
<br />
<br />
<b>OOXML is a superb standard</b><br />
<br />
No importan los trabajos de los comites ISO de los diferentes paises, ni el tremendo lobby de Microsoft para que aprueben su estandar, simplemente es "superb", porque si <img src="http://informatica.utem.cl/~mvaldenegro/blog/templates/default/img/emoticons/laugh.png" alt=":-D" style="display: inline; vertical-align: bottom;" class="emoticon" /><br />
<br />
La guerra sigue en :<br />
<br />
http://barrapunto.com/articles/07/09/11/1229237.shtml<br />
http://linux.slashdot.org/article.pl?sid=07/09/10/2343256<br />
<br />
Yo me quedo con el siguiente comentario, encontrado en cofradia.org:<br />
<br />
<b><br />
El soporte de OOXML para Gnumeric fue escrito durante dos vuelos: Londres-Toronto (aproximadamente 6 horas cada uno).   El sopore de ODF tomó muchísimo más tiempo.   <br />
<br />
A quien creer en este debate? Por un lado: Jody Golberg y yo (Jody ya no trabaja en Novell) y por otro lado un montón de talibanes hocicónes que no tiene experiencia (excepto Stephane Rodriguez, pero Stephane se caga de miedo por que los formatos XML le estropean su fuente de ingresos que era vender código proprietario para acceder a formatos binarios y proprietarios).   <br />
</b><br />
<br />
Claro, comparando peras y manzanas, la Pera OOXML es simplemente un dump de las estructuras de datos internas de Office (O eso parece), mientras que la Manzana ODF es un formato leible por humanos, claramente uno es mas facil de implementar que otro, pero eso tiene alguna relevancia? No <img src="http://informatica.utem.cl/~mvaldenegro/blog/templates/default/img/emoticons/smile.png" alt=":-)" style="display: inline; vertical-align: bottom;" class="emoticon" /><br />
<br />
De hecho me encantaria saber como Jody Golberg implemento "uiCompat97To2003" o "Office Open XML Math" en Gnumeric, siendo que ambas dos no estan definidas en el estandar <img src="http://informatica.utem.cl/~mvaldenegro/blog/templates/default/img/emoticons/smile.png" alt=":-)" style="display: inline; vertical-align: bottom;" class="emoticon" /> 
    ]]></description>
		<pubDate>Tue, 11 Sep 2007 13:04:29 +0000</pubDate>
	</item>
		<item>
		<title>Matias Valdenegro: Que no pasa...?</title>
		<link>http://informatica.utem.cl/~mvaldenegro/blog/index.php?/archives/12-Que-no-pasa....html</link>
		<description><![CDATA[
    Sigue la trifulca por el Acuerdo Microsoft-Gobierno y hay habido respuestas de parte de Microsoft y el Ministerio de Economia, y de hecho una de los peores baldes de agua que quieren echarle al fuego es http://quepasa.cl/medio/articulo/0,0,38039290_101111578_286367795,00.html, veamos :<br />
<br />
<b>El acuerdo vulnera el principio de neutralidad tecnológica. Antes que nada ¿existe tal cosa? Las primeras referencias a esto aparecieron en los 70 (la tecnología debe ser neutra y libre de valores. No es buena ni mala, sino lo que importa es cómo la utilizamos). Entre otros, Weizenbaum -desde la computación en 1976- y Ihde -desde la filosofía en 1979- argumentaron que no existe tal neutralidad. Uno no sólo "utiliza" la tecnología, sino que sin quererlo se decide por patrones de comportamiento.  Otra cosa es la "imparcialidad tecnológica". El gobierno no debe preferir a priori un sistema o proveedor sobre otro. Se dice que el acuerdo estaría favoreciendo a Microsoft, sin embargo una de las premisas fue que debería ser agnóstico al tipo de soluciones en la administración pública, mediante la utilización de estándares de compatibilidad e interoperabilidad de sistemas. Si no es interoperable, entonces no ha lugar.</b><br />
<br />
Microsoft no es interoperable, es conocido que usa los formatos de archivos y protocolos para mantener a sus usuarios en un "Lock-In" o "Cerrojo", donde Windows, Office y sus tecnologias son casi una Droga para ellos, ya que a pesar de que quieren salirse de la Plataforma, no pueden porque ningun software lee los formatos de Office, ni conocen como estan estructurados. Esto atenta contra el libre mercado, y me encantaria haberlo leido en la revista Que Pasa, en lugar de tener que decirlo yo.<br />
<br />
<b><br />
¿El acuerdo obligaría al Estado a utilizar soluciones Microsoft? Tampoco es verdadero. ¿Se podría decir entonces que el Gobierno estaría obligando o incentivando a que pymes, personas y escuelas usen sistemas Microsoft? Tampoco? parte de la imparcialidad tecnológica tiene que ver con que, si una empresa viene y dice "quiero donar plata para ayudar a pymes y personas" uno no tenga por qué decirle que no a priori; igualmente no hay por qué negárselo a ninguna otra empresa ya sea Oracle, Sun, IBM, o RedHat.<br />
 ¿Microsoft tomaría control de nuestros datos personales? No sólo es legalmente imposible, sino que la idea del portal del ciudadano es que la información llegue a una casilla correo.  Si no quiero usar Hotmail, sólo tengo que revisar todo desde mi Gmail. Nadie obliga a nada.<br />
</b><br />
<br />
Cierto en parte, pero pongamos las cosas en hechos concretos, Microsoft aca no viene a regalar dulces, nunca lo ha hecho en ningun Pais, y probablemente nunca lo hara, aca vino a expandir su mercado y ganancias, y solo esta haciendo una inversion que poco es comparado con lo que van a ganar a futuro.<br />
<br />
El Acuerdo no dice que el Gobierno no usara Windows ni plataformas Microsoft, ni tampoco dice que lo contrario, por ende, si el dinero es de Microsoft, que Sistema Operativo usaran? Dudo que usen Linux, por inercia seguramente usaran Windows y todo lo que eso implica.<br />
<br />
De hecho, la Plataforma Live de Microsoft esta creada con tecnologias Microsoft y los servidores solo corren Windows, y los clientes deben ser Windows tambien, ya que dichas paginas estan "Optimizadas" para Internet Explorer, software que solo corre en Windows.<br />
<br />
Sabiendo eso, como se puede decir que no obligaran a usar productos Microsoft? No se puede, hacerlo y teniendo evidencias del comportamiento de Microsoft en el pasado, es una irresponsabilidad.<br />
<br />
En el Acuerdo tambien se menciona becas para obtener la ICDL, y no se especifica si sera usando Microsoft Office o OpenOffice, pero siempre bajo entorno Windows, si usted le enseña a la gente a usar Windows y hasta las certifica, que productos cree que compraran? Seamos realistas.<br />
<br />
De hecho el acuerdo es tan difuso, poco formal y ambiguo que NADIE, NADIE puede asegurarle a la ciudadania que aca no se esta vendiendo las plataformas tecnologicas del Gobierno de Chile a Microsoft. De lo contrario, en que punto del acuerdo dice eso? 
    ]]></description>
		<pubDate>Sat, 04 Aug 2007 21:20:41 +0000</pubDate>
	</item>
		<item>
		<title>Andres Salinas: Zend_DB</title>
		<link>http://grisunder.blogspot.com/2011/10/zenddb.html</link>
		<description><![CDATA[]]></description>
		<pubDate>Wed, 31 Dec 1969 21:00:00 +0000</pubDate>
	</item>
	</channel>
</rss>

