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

<channel>
	<title>Mundo Geek &#187; programacion</title>
	<atom:link href="http://mundogeek.net/etiqueta/programacion/feed/" rel="self" type="application/rss+xml" />
	<link>http://mundogeek.net</link>
	<description>Mundo geek, bitácora sobre todo lo geek: software, gadgets, tecnología, internet, ...</description>
	<lastBuildDate>Fri, 25 May 2012 14:51:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Iteradores en PHP</title>
		<link>http://mundogeek.net/archivos/2012/04/12/iteradores-en-php/</link>
		<comments>http://mundogeek.net/archivos/2012/04/12/iteradores-en-php/#comments</comments>
		<pubDate>Thu, 12 Apr 2012 07:36:29 +0000</pubDate>
		<dc:creator>Zootropo</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[iteradores]]></category>
		<category><![CDATA[iterator]]></category>
		<category><![CDATA[patrones]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programacion]]></category>

		<guid isPermaLink="false">http://mundogeek.net/?p=7867</guid>
		<description><![CDATA[Iterador es uno de los patrones de diseño más conocidos, gracias al uso que hacen de él distintos lenguajes de programación, como Python, Java, C++ o el propio PHP. Básicamente, lo que propone este patrón es trasladar la responsabilidad de recorrer una colección a una clase nueva, que debe utilizar una interfaz estándar definida en [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://es.wikipedia.org/wiki/Iterador_%28patr%C3%B3n_de_dise%C3%B1o%29" title="Patrón Iterador">Iterador</a> es uno de los patrones de diseño más conocidos, gracias al uso que hacen de él distintos lenguajes de programación, como Python, Java, C++ o el propio PHP. Básicamente, lo que propone este patrón es trasladar la responsabilidad de recorrer una colección a una clase nueva, que debe utilizar una interfaz estándar definida en una clase abstracta o una interfaz, de forma que se pueda recorrer de forma similar tuplas de la base de datos, nodos de un documento XML, elementos de un array, o cualquier otro tipo de colección que se nos ocurra.</p>
<p>Para crear nuestro iterador en PHP tenemos que / podemos implementar la interfaz <a href="http://php.net/manual/es/class.iterator.php" title="Iterator"><code>Iterator</code></a>. Esto nos permitirá recorrer nuestra colección utilizando un <code>foreach</code>, por ejemplo. La interfaz <code>Iterator</code> declara los siguientes métodos:<span id="more-7867"></span></p>
<ul>
<li><code>abstract public void rewind(void)</code>: debe mover el puntero al primer elemento, sin devolver ningún valor</li>
<li><code>abstract public mixed current(void)</code>: debe devolver el valor actual</li>
<li><code>abstract public scalar key(void)</code>: devuelve la clave actual</li>
<li><code>abstract public void next(void)</code>: mueve el puntero al siguiente elemento</li>
<li><code>abstract public boolean valid(void)</code>: devuelve <code>true</code> si el iterador sigue siendo válido (no se ha alcanzado el final de la colección) y <code>false</code> en caso contrario</li>
</ul>
<p>Como ejemplo de iterador en PHP, vamos a implementar algo parecido a la clase <code>DatePeriod</code> de PHP 5.3, que permite iterar sobre los días de un periodo de fechas</p>
<pre name="code" class="php">&lt;?php
class Intervalo {
    public $inicio;
    public $fin;

    function __construct($inicio, $fin) {
        $this-&gt;inicio = strtotime($inicio);
        $this-&gt;fin = strtotime($fin);
    }
}</pre>
<pre name="code" class="php">&lt;?php
class IteradorPorDia implements Iterator {
	private $intervalo;

	function __construct(Intervalo $intervalo) {
		$this-&gt;intervalo = $intervalo;
	}

    function rewind() {
        $this-&gt;claveActual = 1;
        $this-&gt;fechaActual = $this-&gt;intervalo-&gt;inicio;
    }

    function key() {
        return $this-&gt;claveActual;
    }

    function current() {
        return date('Y-m-d', $this-&gt;fechaActual);
    }

    function next() {
        $this-&gt;claveActual++;
        $this-&gt;fechaActual = strtotime('+1 day', $this-&gt;fechaActual);
    }

    function valid() {
        return ($this-&gt;fechaActual &lt;= $this-&gt;intervalo-&gt;fin);
    }
}</pre>
<pre name="code" class="php">&lt;?php
require_once 'Intervalo.php';
require_once 'IteradorPorDia.php';

$intervalo = new Intervalo('2012-12-24', '2013-01-08');
$iterador = new IteradorPorDia($intervalo);
foreach($iterador as $num =&gt; $fecha)
	echo "El día $num del intervalo es $fecha&lt;br/&gt;";</pre>
<p>Si queremos seguir el patrón Iterador al pie de la letra (recomendado), haciendo que sea el agregado el que cree el iterador y lo devuelva, nuestra colección tendrá que implementar la interfaz <a href="http://php.net/manual/es/class.iteratoraggregate.php" title="IteratorAggregate"><code>IteratorAggregate</code></a> y su método <code>abstract public Traversable getIterator(void)</code>. Si hacemos esto podremos pasar la colección al <code>foreach</code> directamente, haciendo nuestro código cliente más sencillo y claro.</p>
<pre name="code" class="php">&lt;?php
require_once 'IteradorPorDia.php';

class Intervalo implements IteratorAggregate {
    public $inicio;
    public $fin;

    function __construct($inicio, $fin) {
        $this-&gt;inicio = strtotime($inicio);
        $this-&gt;fin = strtotime($fin);
    }

    public function getIterator() {
        return new IteradorPorDia($this);
    }
}</pre>
<pre name="code" class="php">&lt;?php
require_once 'Intervalo.php';

$intervalo = new Intervalo('2012-12-24', '2013-01-08');
foreach($intervalo as $num =&gt; $fecha)
	echo "El día $num del intervalo es $fecha<br/>";</pre>
<p>La librería estándar de PHP (SPL) también cuenta con varios <a href="http://www.php.net/manual/es/spl.iterators.php" title="Iteradores en SPL">iteradores predefinidos</a> que pueden ser interesantes, además de una serie de clases que permiten encadenar varios iteradores (<a href="http://www.php.net/manual/es/class.appenditerator.php" title="AppendIterator">AppendIterator</a>), filtrar valores no deseados (<a href="http://www.php.net/manual/es/class.filteriterator.php" title="FilterIterator">FilterIterator</a>), iterar indefinidamente (<a href="http://www.php.net/manual/es/class.infiniteiterator.php" title="InfiniteIterator">InfiniteIterator</a>), iterar sobre un subgrupo de elementos (<a href="http://www.php.net/manual/es/class.limititerator.php" title="LimitIterator">LimitIterator</a>) o iterar de forma recursiva (<a href="http://www.php.net/manual/es/class.recursiveiteratoriterator.php" title="RecursiveIteratorIterator">RecursiveIteratorIterator</a>).</p>
<link type="text/css" rel="stylesheet" href="http://mundogeek.net/sh/css/SyntaxHighlighter.css"></link>
<script language="javascript" src="http://mundogeek.net/sh/js/shCore.js"></script><script language="javascript" src="http://mundogeek.net/sh/js/shBrushPhp.js"></script><script language="javascript">dp.SyntaxHighlighter.ClipboardSwf = 'http://mundogeek.net/sh//flash/clipboard.swf';
dp.SyntaxHighlighter.HighlightAll('code');</script></p>
]]></content:encoded>
			<wfw:commentRss>http://mundogeek.net/archivos/2012/04/12/iteradores-en-php/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>La programación</title>
		<link>http://mundogeek.net/archivos/2012/04/03/la-programacion/</link>
		<comments>http://mundogeek.net/archivos/2012/04/03/la-programacion/#comments</comments>
		<pubDate>Tue, 03 Apr 2012 09:00:48 +0000</pubDate>
		<dc:creator>Zootropo</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[citas]]></category>
		<category><![CDATA[depuracion]]></category>
		<category><![CDATA[programacion]]></category>

		<guid isPermaLink="false">http://mundogeek.net/?p=7823</guid>
		<description><![CDATA[Si la depuración es el proceso de eliminar errores, entonces la programación debe ser el proceso de introducirlos. ~ Edsger Dijkstra]]></description>
			<content:encoded><![CDATA[<blockquote><p>Si la depuración es el proceso de eliminar errores, entonces la programación debe ser el proceso de introducirlos.</p>
<p>~ Edsger Dijkstra</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://mundogeek.net/archivos/2012/04/03/la-programacion/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Principios de diseño: fan-in y fan-out</title>
		<link>http://mundogeek.net/archivos/2012/04/01/principios-de-diseno-fan-in-y-fan-out/</link>
		<comments>http://mundogeek.net/archivos/2012/04/01/principios-de-diseno-fan-in-y-fan-out/#comments</comments>
		<pubDate>Sun, 01 Apr 2012 15:02:09 +0000</pubDate>
		<dc:creator>Zootropo</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[diseño]]></category>
		<category><![CDATA[ingenieria]]></category>
		<category><![CDATA[principios]]></category>
		<category><![CDATA[programacion]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://mundogeek.net/?p=7806</guid>
		<description><![CDATA[Fan-in (abanico de entrada) es un término utilizado en la Ingeniería del Software para referirse al número de clases que hacen uso de la clase que estamos estudiando. Por otro lado, fan-out (abanico de salida) hace referencia al número de clases que utiliza la clase que estamos estudiando. Estos conceptos, originarios de la electrónica digital, [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Fan-in</strong> (abanico de entrada) es un término utilizado en la Ingeniería del Software para referirse al número de clases que hacen uso de la clase que estamos estudiando. Por otro lado, <strong>fan-out</strong> (abanico de salida) hace referencia al número de clases que utiliza la clase que estamos estudiando. Estos conceptos, originarios de la electrónica digital, también pueden utilizarse en el resto de niveles del diseño conceptual, para hablar de subsistemas, paquetes o funciones.</p>
<p>Un buen diseño suele tener un <strong>fan-in alto</strong>, porque eso implica que estamos reutilizando código que de otra forma habría dado lugar a duplicidades en multitud de clases. El fan-in es una medida de reutilización.</p>
<p>Al contrario, un buen diseño cuenta con un <strong>fan-out bajo</strong>, idealmente de 7±2, que es, <a href="http://en.wikipedia.org/wiki/The_Magical_Number_Seven,_Plus_or_Minus_Two" title="The magical number seven, plus or minus two: Some limits on our capacity for processing information">según George Miller</a>, uno de los mayores exponentes de la psicología cognitiva, el número máximo de elementos que una persona normal puede almacenar en su memoria a corto plazo. Con un fan-out bajo nos aseguramos de que la clase es lo bastante sencilla para que no nos resulte difícil trabajar con ella. El fan-out es una medida de complejidad, muy relacionado con el <a href="http://mundogeek.net/archivos/2011/06/09/principios-solid-de-la-orientacion-a-objetos/" title="Principios SOLID de la orientación a objetos">Principio de Responsabilidad Única</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://mundogeek.net/archivos/2012/04/01/principios-de-diseno-fan-in-y-fan-out/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>¿Cuál es tu lenguaje de programación favorito?</title>
		<link>http://mundogeek.net/archivos/2012/03/29/cual-es-tu-lenguaje-de-programacion-favorito/</link>
		<comments>http://mundogeek.net/archivos/2012/03/29/cual-es-tu-lenguaje-de-programacion-favorito/#comments</comments>
		<pubDate>Thu, 29 Mar 2012 12:35:20 +0000</pubDate>
		<dc:creator>Zootropo</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[encuestas]]></category>
		<category><![CDATA[lenguajes]]></category>
		<category><![CDATA[programacion]]></category>

		<guid isPermaLink="false">http://mundogeek.net/?p=7781</guid>
		<description><![CDATA[Quizás no sea el lenguaje más potente del mundo, el más legible, o el más ameno, pero aun así, es tu lenguaje preferido. El que te llevarías como único compañero a una isla desierta. ¿Cuál es su nombre? ¿cómo os conocisteis? ¿qué es lo que te da que no te dan otros lenguajes? ¿Cuál es [...]]]></description>
			<content:encoded><![CDATA[<p>Quizás no sea el lenguaje más potente del mundo, el más legible, o el más ameno, pero aun así, es tu lenguaje preferido. El que te llevarías como único compañero a una isla desierta. ¿Cuál es su nombre? ¿cómo os conocisteis? ¿qué es lo que te da que no te dan otros lenguajes?<span id="more-7781"></span></p>
<p><strong>¿Cuál es tu lenguaje de programación favorito?</strong></p>
<ul>
<li>
Java<br />
411 (<i>21% de los votos</i>)
</li>
<li>
Python<br />
347 (<i>17% de los votos</i>)
</li>
<li>
PHP<br />
288 (<i>15% de los votos</i>)
</li>
<li>
C++<br />
183 (<i>9% de los votos</i>)
</li>
<li>
Delphi<sup title="Añadido por un lector">1</sup><br />
166 (<i>8% de los votos</i>)
</li>
<li>
C#<br />
148 (<i>7% de los votos</i>)
</li>
<li>
C<br />
99 (<i>5% de los votos</i>)
</li>
<li>
Visual Basic<br />
66 (<i>3% de los votos</i>)
</li>
<li>
JavaScript<br />
33 (<i>2% de los votos</i>)
</li>
<li>
Ruby<br />
33 (<i>2% de los votos</i>)
</li>
<li>
delphi/lazarus<sup title="Añadido por un lector">1</sup><br />
20 (<i>1% de los votos</i>)
</li>
<li>
No se como programar<sup title="Añadido por un lector">1</sup><br />
15 (<i>1% de los votos</i>)
</li>
<li>
Cobol<sup title="Añadido por un lector">1</sup><br />
14 (<i>1% de los votos</i>)
</li>
<li>
html<sup title="Añadido por un lector">1</sup><br />
14 (<i>1% de los votos</i>)
</li>
<li>
Perl<br />
13 (<i>1% de los votos</i>)
</li>
<li>
Objective-C<sup title="Añadido por un lector">1</sup><br />
13 (<i>1% de los votos</i>)
</li>
<li>
Groovy<sup title="Añadido por un lector">1</sup><br />
10 (<i>1% de los votos</i>)
</li>
<li>
Haskell<sup title="Añadido por un lector">1</sup><br />
9 (<i>0% de los votos</i>)
</li>
<li>
ActionScript 3<sup title="Añadido por un lector">1</sup><br />
8 (<i>0% de los votos</i>)
</li>
<li>
Fortran<sup title="Añadido por un lector">1</sup><br />
8 (<i>0% de los votos</i>)
</li>
<li>
Go<sup title="Añadido por un lector">1</sup><br />
6 (<i>0% de los votos</i>)
</li>
<li>
Lua<sup title="Añadido por un lector">1</sup><br />
6 (<i>0% de los votos</i>)
</li>
<li>
LabView<sup title="Añadido por un lector">1</sup><br />
6 (<i>0% de los votos</i>)
</li>
<li>
Bash scripting<sup title="Añadido por un lector">1</sup><br />
6 (<i>0% de los votos</i>)
</li>
<li>
PL/SQL<sup title="Añadido por un lector">1</sup><br />
5 (<i>0% de los votos</i>)
</li>
<li>
abap<sup title="Añadido por un lector">1</sup><br />
5 (<i>0% de los votos</i>)
</li>
<li>
C++<sup title="Añadido por un lector">1</sup><br />
5 (<i>0% de los votos</i>)
</li>
<li>
Scala<sup title="Añadido por un lector">1</sup><br />
4 (<i>0% de los votos</i>)
</li>
<li>
Codigo binario<sup title="Añadido por un lector">1</sup><br />
4 (<i>0% de los votos</i>)
</li>
<li>
Lisp<sup title="Añadido por un lector">1</sup><br />
4 (<i>0% de los votos</i>)
</li>
<li>
Ensamblador<sup title="Añadido por un lector">1</sup><br />
4 (<i>0% de los votos</i>)
</li>
<li>
Processing<sup title="Añadido por un lector">1</sup><br />
3 (<i>0% de los votos</i>)
</li>
<li>
Erlang<sup title="Añadido por un lector">1</sup><br />
3 (<i>0% de los votos</i>)
</li>
<li>
R<sup title="Añadido por un lector">1</sup><br />
3 (<i>0% de los votos</i>)
</li>
<li>
Batch<sup title="Añadido por un lector">1</sup><br />
3 (<i>0% de los votos</i>)
</li>
<li>
REXX<sup title="Añadido por un lector">1</sup><br />
3 (<i>0% de los votos</i>)
</li>
<li>
Ajax<sup title="Añadido por un lector">1</sup><br />
3 (<i>0% de los votos</i>)
</li>
<li>
G-Code<sup title="Añadido por un lector">1</sup><br />
2 (<i>0% de los votos</i>)
</li>
<li>
Clojure<sup title="Añadido por un lector">1</sup><br />
2 (<i>0% de los votos</i>)
</li>
<li>
Power Builder<sup title="Añadido por un lector">1</sup><br />
2 (<i>0% de los votos</i>)
</li>
<li>
java<sup title="Añadido por un lector">1</sup><br />
2 (<i>0% de los votos</i>)
</li>
<li>
ADA<sup title="Añadido por un lector">1</sup><br />
1 (<i>0% de los votos</i>)
</li>
<li>
LotusScript<sup title="Añadido por un lector">1</sup><br />
1 (<i>0% de los votos</i>)
</li>
<li>
Prolog<sup title="Añadido por un lector">1</sup><br />
1 (<i>0% de los votos</i>)
</li>
<li>
Visual Fox Pro<sup title="Añadido por un lector">1</sup><br />
1 (<i>0% de los votos</i>)
</li>
</ul>
<p><em>Votos totales: 1983</em><br />
<em>Iniciada: 29 March 2012</em><br />
<small><sup>1</sup> = Añadido por un lector</small></p>
]]></content:encoded>
			<wfw:commentRss>http://mundogeek.net/archivos/2012/03/29/cual-es-tu-lenguaje-de-programacion-favorito/feed/</wfw:commentRss>
		<slash:comments>67</slash:comments>
		</item>
		<item>
		<title>Ahorra tiempo y dinero con la Ingeniería del Software</title>
		<link>http://mundogeek.net/archivos/2012/03/26/ahorra-tiempo-y-dinero-con-la-ingenieria-del-software/</link>
		<comments>http://mundogeek.net/archivos/2012/03/26/ahorra-tiempo-y-dinero-con-la-ingenieria-del-software/#comments</comments>
		<pubDate>Mon, 26 Mar 2012 14:56:50 +0000</pubDate>
		<dc:creator>Zootropo</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[ingenieria]]></category>
		<category><![CDATA[metodologias]]></category>
		<category><![CDATA[programacion]]></category>

		<guid isPermaLink="false">http://mundogeek.net/?p=7750</guid>
		<description><![CDATA[Estos últimos días estoy leyendo por enésima vez Code Complete, mi libro preferido sobre desarrollo de software, y el de mucha más gente. A este libro pertenece esta tabla, basada en diversos estudios, que ejemplifica el coste medio de arreglar un error durante el proceso de desarrollo de software según la etapa en que se [...]]]></description>
			<content:encoded><![CDATA[<p>Estos últimos días estoy leyendo por enésima vez Code Complete, <a href="http://mundogeek.net/archivos/2010/02/04/10-libros-miticos-sobre-programacion-que-todo-desarrollador-deberia-leer/" title="10 libros míticos sobre programación que todo desarrollador debería leer">mi libro preferido sobre desarrollo de software</a>, y <a href="http://mundogeek.net/archivos/2011/09/06/los-10-libros-que-todo-programador-deberia-leer-sin-excusas/" title="Los 10 libros que todo programador debería leer, sin excusas">el de mucha más gente</a>. A este libro pertenece esta tabla, basada en diversos estudios, que ejemplifica el coste medio de arreglar un error durante el proceso de desarrollo de software según la etapa en que se introdujo y la etapa en que se terminó solucionando.</p>
<table border="1">
<tr>
<th colspan="2" rowspan="2">Coste</th>
<th colspan="5">Etapa en que se detectó</th>
</tr>
<tr>
<th>Requisitos</th>
<th>Arquitectura</th>
<th>Construcción</th>
<th>Pruebas</th>
<th>Mantenimiento</th>
</tr>
<tr>
<th rowspan="3">Etapa en que se introdujo</th>
<th>Requisitos</th>
<td style="text-align:center">1</td>
<td style="text-align:center">3x</td>
<td style="text-align:center">5-10x</td>
<td style="text-align:center">10x</td>
<td style="text-align:center">10-100x</td>
</tr>
<tr>
<th>Arquitectura</th>
<td style="text-align:center">-</td>
<td style="text-align:center">1</td>
<td style="text-align:center">10x</td>
<td style="text-align:center">15x</td>
<td style="text-align:center">25-100x</td>
</tr>
<tr>
<th>Construcción</th>
<td style="text-align:center">-</td>
<td style="text-align:center">-</td>
<td style="text-align:center">1x</td>
<td style="text-align:center">10x</td>
<td style="text-align:center">10-25x</td>
</tr>
</table>
<p><span id="more-7750"></span></p>
<p>Como vemos, un defecto cuyo arreglo podía suponer un coste de 100€ en la fase de toma de requisitos podría multiplicarse hasta los 300€ de no encontrarse hasta que estuvieramos definiendo la arquitectura del sistema. Esta cantidad subiría hasta los 500€ si hubieramos empezado a escribir el código, 1.000€ si estuvieramos en la fase de pruebas, y hasta 10.000€ de no encontrarse el error hasta que el sistema se encontrara ya funcionando. Tenedlo en cuenta si alguien intenta justificaros el no seguir ningún tipo de método.</p>
]]></content:encoded>
			<wfw:commentRss>http://mundogeek.net/archivos/2012/03/26/ahorra-tiempo-y-dinero-con-la-ingenieria-del-software/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>No es una buena idea</title>
		<link>http://mundogeek.net/archivos/2012/03/13/no-es-una-buena-idea/</link>
		<comments>http://mundogeek.net/archivos/2012/03/13/no-es-una-buena-idea/#comments</comments>
		<pubDate>Tue, 13 Mar 2012 17:01:13 +0000</pubDate>
		<dc:creator>Zootropo</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[citas]]></category>
		<category><![CDATA[hilos]]></category>
		<category><![CDATA[humor]]></category>
		<category><![CDATA[programacion]]></category>
		<category><![CDATA[punteros]]></category>

		<guid isPermaLink="false">http://mundogeek.net/?p=7730</guid>
		<description><![CDATA[Dar punteros e hilos a un programador es como darle whisky y las llaves de un coche a un adolescente. ~ Anónimo]]></description>
			<content:encoded><![CDATA[<blockquote><p>Dar punteros e hilos a un programador es como darle whisky y las llaves de un coche a un adolescente.</p>
<p>~ Anónimo</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://mundogeek.net/archivos/2012/03/13/no-es-una-buena-idea/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Programador: La 5ª profesión que menos horas duerme</title>
		<link>http://mundogeek.net/archivos/2012/03/05/programador-la-5a-profesion-que-menos-horas-duerme/</link>
		<comments>http://mundogeek.net/archivos/2012/03/05/programador-la-5a-profesion-que-menos-horas-duerme/#comments</comments>
		<pubDate>Mon, 05 Mar 2012 16:59:25 +0000</pubDate>
		<dc:creator>Zootropo</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[dormir]]></category>
		<category><![CDATA[empleos]]></category>
		<category><![CDATA[programacion]]></category>
		<category><![CDATA[programadores]]></category>

		<guid isPermaLink="false">http://mundogeek.net/?p=7706</guid>
		<description><![CDATA[Basándose en los datos de la última Encuesta Nacional sobre Salud de Estados Unidos la empresa de colchones Sleepys ha elaborado una lista con las 10 profesiones que disfrutan de menos horas de sueño por día. Un top 10 en el que los programadores logran la 5ª posición, en empate técnico con economistas y trabajadores [...]]]></description>
			<content:encoded><![CDATA[<p>Basándose en los datos de la última Encuesta Nacional sobre Salud de Estados Unidos la empresa de colchones Sleepys <a href="http://science.slashdot.org/story/12/03/02/1720212/computer-programmers-only-the-5th-most-sleep-deprived-profession" title="Computer Programmers Only the 5th Most Sleep Deprived Profession ">ha elaborado una lista</a> con las 10 profesiones que disfrutan de menos horas de sueño por día. Un top 10 en el que los programadores logran la 5ª posición, en empate técnico con economistas y trabajadores sociales. Me pregunto si será debido a las horas extra, al estrés, a la incapacidad de desconectar o a las altas concentraciones de cafeina en sangre.<span id="more-7706"></span></p>
<ol>
<li>Asistente de Salud en el Hogar: 6 horas 57 minutos</li>
<li>Abogado: 7 horas</li>
<li>Policía: 7 horas 1 minuto</li>
<li>Médico, paramédico: 7 horas 2 minutos</li>
<li>Programador: 7 horas 3 minutos</li>
<li>Economista: 7 horas 3 minutos</li>
<li>Asistente social: 7 horas 3 minutos</li>
<li>Analista financiero: 7 horas 5 minutos</li>
<li>Operador de planta: 7 horas 7 minutos</li>
<li>Secretaria: 7 horas 8 minutos</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://mundogeek.net/archivos/2012/03/05/programador-la-5a-profesion-que-menos-horas-duerme/feed/</wfw:commentRss>
		<slash:comments>45</slash:comments>
		</item>
		<item>
		<title>97 Things Every Programmer Should Know</title>
		<link>http://mundogeek.net/archivos/2012/01/30/97-things-every-programmer-should-know/</link>
		<comments>http://mundogeek.net/archivos/2012/01/30/97-things-every-programmer-should-know/#comments</comments>
		<pubDate>Mon, 30 Jan 2012 22:20:56 +0000</pubDate>
		<dc:creator>Zootropo</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[criticas]]></category>
		<category><![CDATA[libros]]></category>
		<category><![CDATA[programacion]]></category>
		<category><![CDATA[reviews]]></category>

		<guid isPermaLink="false">http://mundogeek.net/?p=7633</guid>
		<description><![CDATA[97 Things Every Programmer Should Know Calificación: Autor: Varios Año: 2010 Editorial: O&#8217;Reilly&#8220;97 Things Every Programmer Should Know&#8221; (97 cosas que todo programador debería saber) es una colección de 97 artículos cortos sobre programación escogidos por O&#8217;Reilly. Estos artículos, de sólo 2 páginas de extensión cada uno, están escritos por profesionales del sector de la [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://mundogeek.net/wp-content/97-things-every-programmer-should-know.png" alt="97 Things Every Programmer Should Know" align="left" style="margin-right:1em"/><a href="http://www.amazon.co.uk/gp/product/0596809484/ref=as_li_ss_tl?ie=UTF8&#038;tag=mundogeek-21&#038;linkCode=as2&#038;camp=1634&#038;creative=19450&#038;creativeASIN=0596809484">97 Things Every Programmer Should Know</a><img src="http://www.assoc-amazon.co.uk/e/ir?t=mundogeek-21&#038;l=as2&#038;o=2&#038;a=0596809484" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /><br />
Calificación: <img src="http://mundogeek.net/wp-content/themes/mg5/bueno.png"/><br />Autor: Varios<br />
Año: 2010<br />
Editorial: O&#8217;Reilly<br clear="all"/><br />&#8220;97 Things Every Programmer Should Know&#8221; (97 cosas que todo programador debería saber) es una colección de 97 artículos cortos sobre programación escogidos por O&#8217;Reilly. Estos artículos, de sólo 2 páginas de extensión cada uno, están escritos por profesionales del sector de la más variada procedencia, la mayoría anónimos, aunque también nos encontraremos con un par de artículos del conocido Uncle Bob, autor de <a href="http://mundogeek.net/archivos/2011/07/09/clean-code/" title="Clean Code">Clean Code</a>, entre otros.<span id="more-7633"></span></p>
<p>Dentro de esta variopinta selección, la calidad de unos y otros artículos varia bastante, con algunos casi brillantes, y algunos casi mediocres. Varía mucho también la temática de los artículos, aunque al tratarse de textos cortos, ninguno llega a hacerse pesado.</p>
<p>Lo mejor del libro es que todos los artículos están licenciados bajo Creative Commons 3.0 Atribución, y se pueden leer online de forma gratuita en <a href="http://programmer.97things.oreilly.com/wiki/index.php/97_Things_Every_Programmer_Should_Know" title="Wiki de 97 Things Every Programmer Should Know">su sitio web</a>. En la misma web podemos encontrar también otras tantas contribuciones igual de válidas, que no pasaron la criba final del editor.</p>
<p>En resumen, &#8220;97 Things Every Programmer Should Know&#8221; no es un libro de grandes revelaciones, para lo cuál recomendaría <a href="http://mundogeek.net/archivos/2010/02/04/10-libros-miticos-sobre-programacion-que-todo-desarrollador-deberia-leer/" title="10 libros míticos sobre programación que todo desarrollador debería leer">mis reverenciados</a> &#8220;Code Complete&#8221; y &#8220;The Pragmatic Programmer&#8221;, pero lo que sí es, es un libro interesante, entretenido y fácil de leer.</p>
]]></content:encoded>
			<wfw:commentRss>http://mundogeek.net/archivos/2012/01/30/97-things-every-programmer-should-know/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Estos pensábamos que serían los lenguajes de programación más populares en 2012</title>
		<link>http://mundogeek.net/archivos/2012/01/17/estos-pensabamos-que-serian-los-lenguajes-de-programacion-mas-populares-en-2012/</link>
		<comments>http://mundogeek.net/archivos/2012/01/17/estos-pensabamos-que-serian-los-lenguajes-de-programacion-mas-populares-en-2012/#comments</comments>
		<pubDate>Tue, 17 Jan 2012 16:53:07 +0000</pubDate>
		<dc:creator>Zootropo</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[lenguajes]]></category>
		<category><![CDATA[predicciones]]></category>
		<category><![CDATA[programacion]]></category>

		<guid isPermaLink="false">http://mundogeek.net/?p=7617</guid>
		<description><![CDATA[Una de las cosas buenas que conlleva el que esta bitácora tenga ya unos cuantos años, es el poder rememorar viejos tiempos. En este caso, esa vieja encuesta de hace 5 años en la que os preguntaba cuáles pensábais que serían los lenguajes más populares en 2012. ¿Cómo de acertados estuvimos en nuestras predicciones? Yo [...]]]></description>
			<content:encoded><![CDATA[<p>Una de las cosas buenas que conlleva el que esta bitácora tenga ya unos cuantos años, es el poder rememorar viejos tiempos. En este caso, esa vieja encuesta de hace 5 años en la que os preguntaba <a href="http://mundogeek.net/archivos/2007/09/26/%C2%BFlenguaje-de-programacion-mas-popular/" title="¿Cuáles serán los lenguajes de programación más populares dentro de 5 años?">cuáles pensábais que serían los lenguajes más populares en 2012</a>. ¿Cómo de acertados estuvimos en nuestras predicciones?<span id="more-7617"></span></p>
<p>Yo me equivocaba treméndamente al suponer que el klingon sería el idioma preponderante entre las élites culturales, pero vosotros no lo hicistéis tan mal. Acertamos que Java continuaría siendo el lenguaje de programación más utilizado, y también adivinamos 8 de los 10 integrantes del <a href="http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html" title="Índice TIOBE de los lenguajes de programación más populares">top</a> (Java, C, C#, C++, PHP, Visual Basic, Python y Javascript).</p>
<p><img src="http://mundogeek.net/wp-content/lenguajes-programacion.png" alt="Comparativa entre la posición actual en el índice TIOBE y las predicciones de los lectores"/></p>
<p>Sin embargo, fuímos injustos con Perl, al que sustituimos por Ruby, y no pudimos si quiera empezar a imaginar el tremendo impacto que iba a tener el iPhone de Apple, que en ese instante acababa de salir al mercado y que ha insuflado una gran bocanada de aire fresco a Objective-C.</p>
]]></content:encoded>
			<wfw:commentRss>http://mundogeek.net/archivos/2012/01/17/estos-pensabamos-que-serian-los-lenguajes-de-programacion-mas-populares-en-2012/feed/</wfw:commentRss>
		<slash:comments>29</slash:comments>
		</item>
		<item>
		<title>Visual Studio ya tiene logros</title>
		<link>http://mundogeek.net/archivos/2012/01/03/visual-studio-ya-tiene-logros/</link>
		<comments>http://mundogeek.net/archivos/2012/01/03/visual-studio-ya-tiene-logros/#comments</comments>
		<pubDate>Tue, 03 Jan 2012 16:13:02 +0000</pubDate>
		<dc:creator>Zootropo</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[logros]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[programacion]]></category>
		<category><![CDATA[visual studio]]></category>

		<guid isPermaLink="false">http://mundogeek.net/?p=7574</guid>
		<description><![CDATA[Hace cosa de 1 año sugeríamos, medio en broma, medio en serio, algunos posibles logros que Microsoft podía implementar en Visual Studio, si decidiera en un futuro extender esta popular característica de su consola de sobremesa a su IDE. ¿Te pareció una idea interesante y divertida? A los empleados de Microsoft también, así que se [...]]]></description>
			<content:encoded><![CDATA[<p>Hace cosa de 1 año sugeríamos, medio en broma, medio en serio, algunos posibles <a href="http://mundogeek.net/archivos/2011/02/17/si-visual-studio-tuviera-logros/" title="Si Visual Studio tuviera logros...">logros que Microsoft podía implementar en Visual Studio</a>, si decidiera en un futuro extender esta popular característica de su consola de sobremesa a su IDE.</p>
<p><img src="http://mundogeek.net/wp-content/logros-visual-studio.jpg" alt="Logros en Visual Studio"/><span id="more-7574"></span></p>
<p>¿Te pareció una idea interesante y divertida? <a href="http://www.neowin.net/news/microsofts-visual-studio-now-has-achievements" title="Microsoft's Visual Studio now has Achievements<br />
">A los empleados de Microsoft también</a>, así que se han puesto manos a la obra, y están desarrollando una extensión (en principio sólo para C# y Visual Basic .NET) que pronto podremos descargar. Mientras tanto, puedes consultar los logros que han propuesto en la web del proyecto: <a href="http://channel9.msdn.com/achievements/visualstudio" title="Visual Studio Achievements">Visual Studio Achievements</a></p>
]]></content:encoded>
			<wfw:commentRss>http://mundogeek.net/archivos/2012/01/03/visual-studio-ya-tiene-logros/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

