<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Chus Naval - Blog Personal</title>
  <id>http://chusnaval.com</id>
  <updated>2010-12-25</updated>
  <author>
    <name>Chusnaval</name>
  </author>
  <entry>
    <title>Conceptos b&amp;aacute;sicos de Git</title>
    <link rel="alternate" href="http://chusnaval.com/2017/02/20/conceptos_basicos_git/"/>
    <id>http://chusnaval.com/2017/02/20/conceptos_basicos_git/</id>
    <published>2017-02-20</published>
    <updated>2017-02-20</updated>
    <author>
      <name>Chusnaval</name>
    </author>
    <summary type="html">&lt;p&gt;Bueno en primer lugar, dir&amp;eacute; que no sab&amp;iacute;a exactamente como continuar con el tema de Git antes de comenzar la parte m&amp;aacute;s pr&amp;aacute;ctica, as&amp;iacute; que ojeando un poco su web principal he visto que tienen colgado el libro: &lt;a href="https://git-scm.com/book/es/v1" target="_blank"&gt;Pro Git&lt;/a&gt; incluida la traducci&amp;oacute;n parcial al español del mismo. A partir de este he sacado un pequeño resumen de la sección 1.3 para que pod&amp;aacute;is haceros una idea r&amp;aacute;pida del tema.&lt;br&gt;&lt;br&gt;&lt;/p&gt;
</summary>
    <content type="html">&lt;p&gt;Bueno en primer lugar, dir&amp;eacute; que no sab&amp;iacute;a exactamente como continuar con el tema de Git antes de comenzar la parte m&amp;aacute;s pr&amp;aacute;ctica, as&amp;iacute; que ojeando un poco su web principal he visto que tienen colgado el libro: &lt;a href="https://git-scm.com/book/es/v1" target="_blank"&gt;Pro Git&lt;/a&gt; incluida la traducci&amp;oacute;n parcial al español del mismo. A partir de este he sacado un pequeño resumen de la sección 1.3 para que pod&amp;aacute;is haceros una idea r&amp;aacute;pida del tema.&lt;br&gt;&lt;br&gt;
La imagen que aparece en este art&amp;iacute;culo tambi&amp;eacute;n ha sido extra&amp;iacute;da del mismo libro.&lt;/p&gt;

&lt;p&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Diferencias internas&lt;/strong&gt;
&lt;br&gt;
La principal diferencia de Git con el resto de VCS es que Git mantiene una instant&amp;aacute;nea de los ficheros existentes en el repositorio, y lo hace por cada commit o cambio de estado que realicemos, mientras que los otros VCS existentes en aquel momento lo que hace es ir almacenando las diferencias entre los ficheros.
De hecho internamente Git funciona como un sistema de ficheros y si necesit&amp;aacute;is m&amp;aacute;s informaci&amp;oacute;n al respecto os dejo un enlace a un art&amp;iacute;culo que encontr&amp;eacute; (está en ingl&amp;eacute;s) donde &lt;a href="https://jwiegley.github.io/git-from-the-bottom-up/" target="_blank"&gt;se detalla mejor todo esto.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Que es el Stage en Git&lt;/strong&gt;
&lt;br&gt;
El stage es una etapa de Git previa a realizar un commit. Cuando pasas un fichero a stage se deja en un indice de Git que permite llevar un control de aquellos cambios de los que est&amp;aacute;s m&amp;aacute;s o menos seguro que vas a realizar pero de los que no quieres realizar un commit todav&amp;iacute;a, ya que forman parte de un desarrollo/cambio m&amp;aacute;s grande.
&lt;br&gt;&lt;br&gt;&lt;/p&gt;

&lt;div &gt;
&lt;img class="imagen_centro" SRC="/images/stage.png" ALT="Diagrama de trabajo del Stage"&gt;&lt;/img&gt;
&lt;/div&gt;


&lt;p&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;

&lt;p&gt;A mi la verdad es que esto me parece &amp;uacute;til ya que es bastante f&amp;aacute;cil que hagas cambios de muchos ficheros en una misma jornada de trabajo y necesites ir diferenciando los cambios que son m&amp;aacute;s o menos obvios de los que en un momento dado no estas del todo seguro.
&lt;br&gt;&lt;br&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Que es Git y como empece a usarlo</title>
    <link rel="alternate" href="http://chusnaval.com/2017/01/26/que_es_git/"/>
    <id>http://chusnaval.com/2017/01/26/que_es_git/</id>
    <published>2017-01-26</published>
    <updated>2017-01-26</updated>
    <author>
      <name>Chusnaval</name>
    </author>
    <summary type="html">&lt;p&gt;Despu&amp;eacute;s de tanto tiempo con el blog parado, en este nuevo art&amp;iacute;culo me ha apetecido escribir algo y lo primero que se me ha ocurrido es comentar que es Git y porque empece a usarlo&amp;hellip;&lt;/p&gt;
</summary>
    <content type="html">&lt;p&gt;Despu&amp;eacute;s de tanto tiempo con el blog parado, en este nuevo art&amp;iacute;culo me ha apetecido escribir algo y lo primero que se me ha ocurrido es comentar que es Git y porque empece a usarlo.
&lt;br&gt;
&lt;br&gt;
&lt;strong&gt;&amp;iquest;Que es Git?&lt;/strong&gt;, pues curiosamente porque no suele suceder, en su propia &lt;a href="https://git-scm.com/" target="_blank"&gt;web&lt;/a&gt; ya tenemos una definici&amp;oacute;n muy buena de lo que es: 
&lt;br&gt;
&lt;br&gt;
&amp;ldquo;Git es un sistema de control de versiones distribuidos, de c&amp;oacute;digo libre y gratuito, diseñado para manejar de todo desde pequeños hasta grandes proyectos con velocidad y eficiencia.&amp;rdquo;
&lt;br&gt;
&lt;br&gt;
Esta definici&amp;oacute;n a los que llevan poco tiempo en esto de la programaci&amp;oacute;n, les proporciona al menos dos preguntas: &amp;iquest;Que es un control de versiones?&amp;iquest;Y que significa que sea distribuido?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&amp;iquest;Que es un control de versiones?  El control de versiones, es &lt;strong&gt;un sistema que permite almacenar y gestionar los cambios sucedidos en un proyecto&lt;/strong&gt; de forma que podamos comprobar y administrar la evoluci&amp;oacute;n del mismo a lo largo del tiempo. Por ejemplo podemos ver la diferencia del estado actual de un proyecto con respecto a una versi&amp;oacute;n desarrollada un mes antes y si quisi&amp;eacute;ramos tambi&amp;eacute;n podr&amp;iacute;amos recuperar dicha versi&amp;oacute;n.&lt;/li&gt;
&lt;li&gt;&amp;iquest;Y que significa que sea distribuido? Tradicionalmente los ficheros del control de versiones se guardaban en &lt;strong&gt;un &amp;uacute;nico servidor centralizado&lt;/strong&gt; de forma que todos los programadores se conectaban al servidor y exist&amp;iacute;a un supervisor encargado de gestionar las tareas principales del proyecto. En un sistema distribuido, &lt;strong&gt;cada usuario tiene una copia completa del proyecto&lt;/strong&gt; por lo que puede realizar la gesti&amp;oacute;n en su propio equipo y luego enviar una copia de los cambios realizados a los dem&amp;aacute;s miembros del equipo o a un repositorio principal para facilitar el intercambio de las modificaciones pero sin las necesidad de una supervisi&amp;oacute;n central del trabajo.
&lt;br&gt;
&lt;br&gt;
&lt;img SRC="/images/SCV Central vs Distribuido.png" ALT="Sistema Central vs Sistema Distribuido"&gt;&lt;/img&gt;
&lt;br&gt;
&lt;br&gt;
Algunos de vosotros &lt;strong&gt;os preguntar&amp;eacute;is por que uso Git&lt;/strong&gt; y no otro sistema de control de versiones, pues con respecto a eso os comentar&amp;eacute; que yo comenc&amp;eacute; a usar Git principalmente para realizar pequeños proyectos con un compañero de trabajo con el que creaba herramientas de desarrollo para automatizar algunas tareas del d&amp;iacute;a que eran tediosas. Gracias a Git pudimos desarrollar cada uno nuestra parte y sincronizar nuestros cambios de una forma sencilla manteniendo un ordenador de la empresa como repositorio principal. Despu&amp;eacute;s de esto al ver &lt;strong&gt;lo sencillo que es trabajar en Git&lt;/strong&gt; y con la cantidad de proyectos existentes en GitHub, se convirti&amp;oacute; en una de mis herramientas indispensables para trabajar.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;&lt;br&gt;
Bueno, como no es plan de contarlo todo en un art&amp;iacute;culo, en las pr&amp;oacute;ximas semanas espero ir colgando nuevos art&amp;iacute;culos sobre Git.&lt;/p&gt;

&lt;p&gt;&lt;br&gt;
Un saludo y gracias por leer mi blog.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Cambiar las cosas</title>
    <link rel="alternate" href="http://chusnaval.com/2012/05/02/cambiando/"/>
    <id>http://chusnaval.com/2012/05/02/cambiando/</id>
    <published>2012-05-02</published>
    <updated>2012-05-02</updated>
    <author>
      <name>Chusnaval</name>
    </author>
    <summary type="html">&lt;p&gt;&lt;p&gt;Hace poco leí que hacer aquellas cosas que te asustan es una de las mejores maneras de aprender, por que si realmente fallas aprenderás de tus errores. Si no fallas, sabrás que puedes hacer eso que te asusta. (Ojo que mis miedos, van más hacia el que dirán. No por ponerme a superar miedos debéis esperar que me lance a hacer escalada en hielo sin elementos de seguridad. Tampoco esperéis que lo haga con elementos de seguridad primero tendría que saber usar un piolet)&lt;/p&gt;
</summary>
    <content type="html">&lt;p&gt;Hace poco leí que hacer aquellas cosas que te asustan es una de las mejores maneras de aprender, por que si realmente fallas aprenderás de tus errores. Si no fallas, sabrás que puedes hacer eso que te asusta. (Ojo que mis miedos, van más hacia el que dirán. No por ponerme a superar miedos debéis esperar que me lance a hacer escalada en hielo sin elementos de seguridad. Tampoco esperéis que lo haga con elementos de seguridad primero tendría que saber usar un piolet)
&lt;/p&gt;


&lt;p&gt;Dicho esto, voy a escribir algo que necesito decir hace mucho tiempo y quizás por miedo al que dirán, no me he atrevido hasta ahora: 
&lt;/p&gt;


&lt;p&gt;&lt;br/&gt;
&lt;u&gt;&lt;strong&gt;De que va todo esto:&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;

&lt;p&gt;Llevo cinco años trabajando en una consultora de Madrid, mi trabajo según a quien le preguntes es el de programador (si me lo preguntas a mi), consultor (a mi jefe), jefe de equipo (a mis compañeros), con algo de ordenadores (a mis padres)... el caso es que trabajamos desarrollando software en un proyecto propio que vendemos a varias entidades financieras. El proyecto es una buena idea, quizás no la estemos ejecutando de la mejor forma posible, (últimamente no estamos satisfechos con como ocurren las cosas, ni con el número de incidencias, ni con la calidad de nuestro código, etc...) pero la idea es buena y siempre me ha gustado.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Pero de los continuos problemas, es algo de lo que llevo mucho tiempo quejandome, pero solo eso, quejas y más quejas...&lt;/strong&gt; es cierto que he ido colaborando y proponiendo soluciones como implementar TDD, pero no me siento satisfecho. (Un poco como Rajoy con sus reformas, nunca estoy satisfecho)&lt;/p&gt;




&lt;p&gt;Por lo tanto &lt;strong&gt;es hora de intentar hacer las cosas de otra forma, intentar tirar del carro por otro camino para llegar a situaciones y destinos distintos, arriesgando bastante más.&lt;/strong&gt; (No como Rajoy que intenta las mismas cosas que criticaba de oposición o peor y con el mismo mal resultado) Siempre he asumido mi parte de culpa en todo lo que sucedía (otra cosa que no hacen Rajoy, ZP,...) pero sin duda me ha faltado intentar poner algo más de mi parte para buscar soluciones y no culpables.&lt;/p&gt;




&lt;p&gt;En el último año, en mi vida, han sucedido muchas cosas; alguna de ellas tan imprevistas como dolorosas, pero gracias a todas ellas he logrado darme cuenta de que principalmente soy feliz en casi todos los ámbitos de mi vida, menos en uno, mi trabajo, y me paso allí la mayor parte del día.&lt;/p&gt;


&lt;p&gt;&lt;/p&gt;

&lt;p&gt;Hay que hacer las cosas de una forma distinta y sobretodo divertirse en el proceso, ya que &lt;strong&gt;no divertirse es el mayor error que uno puede cometer en la vida.&lt;/strong&gt; Te debes a ti mismo y a los que te rodean divertirte y disfrutar con ellos, sobretodo si tienes la suerte de poder trabajar en lo que te apasiona.&lt;/p&gt;


&lt;p&gt;&lt;br/&gt;&lt;/p&gt;

&lt;p&gt;Hay que tomarse la vida de otra forma y terminar de aprender algunas ideas que me están haciendo cambiar mi trabajo y mi vida a mejor:&lt;/p&gt;


&lt;ul&gt;
&lt;li&gt;Divertirse, no me cansaré de repetirlo.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://sirkenrobinson.com/skr/the-element" target="_blank"&gt;Recuerda que es lo que te apasiona y hazlo. (aunque sea en tu tiempo libre)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Casi nada es tan grave en la vida tómatelo con calma.&lt;/li&gt;
&lt;li&gt;Si algo te asusta, hazlo.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.ted.com/talks/matt_cutts_try_something_new_for_30_days.html" target="_blank"&gt;Prueba nuevas formas de hacer las cosas o hacer nuevas cosas directamente, es una gran forma de aprender.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Mejor hecho que perfecto.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;&lt;br/&gt;
&lt;u&gt;&lt;strong&gt;Conclusión de todo esto:&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;

&lt;p&gt;Alguien me dijo una vez que mientras unos sueñan en saber como funcionan las cosas, otros piensan en por que no hacerlas de forma distinta; al final todo esto &lt;strong&gt;se resume en la diferencia de las personas que se dedican a observar como funciona su mundo y las personas que se arrancan a cambiarlo&lt;/strong&gt;.&lt;/p&gt;


&lt;p&gt; &lt;p&gt;Yo quiero ser de los segundos ¿y tú?&lt;/p&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Hackers y urbanismo</title>
    <link rel="alternate" href="http://chusnaval.com/2012/01/28/urbanismo/"/>
    <id>http://chusnaval.com/2012/01/28/urbanismo/</id>
    <published>2012-01-28</published>
    <updated>2012-01-28</updated>
    <author>
      <name>Chusnaval</name>
    </author>
    <summary type="html">&lt;p&gt;Últimamente tengo la inevitable sensación de que la programación y algunas artes plásticas están relacionadas. En concreto y tras leer Hackers and Painters veo que existen puntos en común entre la pintura y la programación&amp;hellip;&lt;/p&gt;
</summary>
    <content type="html">&lt;p&gt;Últimamente tengo la inevitable sensación de que la programación y algunas artes plásticas están relacionadas. En concreto y tras leer Hackers and Painters veo que existen puntos en común entre la pintura y la programación.
No quiero iniciar aquí una guerra sobre si la programación es una ciencia o un arte. Yo creo que la ciencia de la programación es para los que diseñan algoritmos de búsqueda más eficientes y con formalismos y demostraciones matemáticas.
En una empresa no se piden demostraciones formales por lo que la mayoría del código existente no es algo científico, no existe una respuesta óptima (es decir única) para los problemas diarios.
Si no estas de acuerdo con esto puedes dejar de leer este artículo ya mismo.&lt;/p&gt;

&lt;p&gt;Lo que más me interesa en este momento es encontrar la posible relación entre la programación y la arquitectura, por que quizás en mi mente (que quizás es un poco soñadora) no dejar de ver que un programa no es más que una ciudad de código, donde existe relación con las teorías del urbanismo arquitectónico.&lt;/p&gt;

&lt;p&gt;Una idea que he tenido hoy al respecto es que por ejemplo Japón tiene una filosofía urbanística totalmente distinta a la de un país europeo. (Hay que tener en cuenta que por ejemplo Tokio se rehizo después de la guerra mundial con más prisa que orden y que debido a su densidad de población sus necesidades son distintas a las de Madrid). Esto me ha llevado a pensar si existe una diferencia cultural a la hora de programar entre Tokio y Madrid. En principio parece claro que si ya que los medios, necesidades y los problemas de los clientes son distintos, pero por otra parte hemos de tener en cuenta que algunos de los mejores manuales de programación se han extendido por todo el mundo, uniformando muchos de los criterios que se usan a la hora de desarrollar, y que si tenemos patrones de diseño es por que hay soluciones comunes a problemas comunes.&lt;/p&gt;

&lt;p&gt;No obstante, y como decía al principio considero que una parte de la programación esta relacionada con el arte; por ejemplo yo soy partidario de la filosofía Literate Programming y por lo tanto creo que uno debe programar su código como si de escribir un libro se tratase, para tratar de mejorar la relectura del código, mantenimiento, etc&amp;hellip;&lt;/p&gt;

&lt;p&gt;De ser así y dado que la literatura de cada región depende de muchos factores culturales, entre los que destaca por encima el propio idioma, un código de un programa seguramente se explique de distinta forma en distintas civilizaciones aún usando en ambas como lenguaje de programación C y siendo en ambas una referencia para aprender a programar en C, el manual de Kernighan y Ritchie.&lt;/p&gt;

&lt;p&gt;Esta diferencia debería ser más acentuada sin duda si observamos que las bibliografías de las distintas universidades se basan generalmente la disponibilidad de las traducciones de los textos o en libros escritos directamente por el profesorado de la facultad.&lt;/p&gt;

&lt;p&gt;Al final, creo que no puedo llegar a una conclusión directa en este artículo, pero por otra parte el artículo no se trataba de esto. Hackers y urbanismo: o sobre la posible relación entre el código fuente y el diseño en la arquitectura y el urbanismo y seguir buscándola, es de lo que va este ejercicio.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Aclarando tu código...</title>
    <link rel="alternate" href="http://chusnaval.com/2011/10/30/borrar/"/>
    <id>http://chusnaval.com/2011/10/30/borrar/</id>
    <published>2011-10-30</published>
    <updated>2011-10-30</updated>
    <author>
      <name>Chusnaval</name>
    </author>
    <summary type="html">&lt;p&gt;El recurso más sencillo para aclarar el código de una aplicación es borrar aquel código que sobra. Ocurre a veces que en proyectos de larga duración, debido a las prisas, (sobretodo si no existen pruebas unitarias automatizadas) a los desarrolladores les entra cierto miedo y modifican métodos o funciones realizando llamadas a nuevos métodos y dejando sin uso partes del código. (digo miedo por que esto suele pasar cuando se usa el viejo principio de &amp;ldquo;Si funciona no lo toques&amp;rdquo;)&amp;hellip;&lt;/p&gt;
</summary>
    <content type="html">&lt;p&gt;El recurso más sencillo para aclarar el código de una aplicación es borrar aquel código que sobra. Ocurre a veces que en proyectos de larga duración, debido a las prisas, (sobretodo si no existen pruebas unitarias automatizadas) a los desarrolladores les entra cierto miedo y modifican métodos o funciones realizando llamadas a nuevos métodos y dejando sin uso partes del código. (digo miedo por que esto suele pasar cuando se usa el viejo principio de &amp;ldquo;Si funciona no lo toques&amp;rdquo;).&lt;/p&gt;

&lt;p&gt;Cuando esto ocurre la aplicación crece innecesariamente por que se termina por no analizar si los tipos de datos estan bien abstraidos o si existe la necesidad de &amp;ldquo;refactorizar&amp;rdquo; y al final duplicamos código y tarde o temprano algunos métodos se quedan sin sentido en nuestras clases.&lt;/p&gt;

&lt;p&gt;Cuando esto ocurre, por favor: Borra el código que sobra. Lo único que hace es estorbar, te dificulta un nuevo análisis de la aplicación (un programador se pasa leyendo código un 60% de su tiempo), se termina por mantener código que no va a ningún sitio, etc&amp;hellip;En el peor de los casos, la funcionalidad del código sobrante termina por ser erronea con respecto a los nuevos requisitos o contiene errores de funcionamiento no descubiertos aún y corremos el riesgo de que alguien use dicho código sin saberlo.&lt;/p&gt;

&lt;p&gt;Hay quien cree que eso sería perder funcionalidad pero si de verdad necesitas esa funcionalidad, le darias uso. Además siempre tenemos repositorios donde podemos ver la historia del desarrollo con la opción de recuperarlo. Por todo esto, cualquier código que sobre y que puedas borrar, borralo ya que es una manera muy sencilla de mejorar la salud de tu aplicación.&lt;/p&gt;

&lt;p&gt;Un saludo&lt;/p&gt;

&lt;p&gt;PD: Si usas Intellij Idea tienes por defecto la capacidad de encontrar código sin uso, en Eclipse existe un plugin llamado UC Detector que funciona bastante bien.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>El código como conjunto</title>
    <link rel="alternate" href="http://chusnaval.com/2011/05/18/enConjunto/"/>
    <id>http://chusnaval.com/2011/05/18/enConjunto/</id>
    <published>2011-05-18</published>
    <updated>2011-05-18</updated>
    <author>
      <name>Chusnaval</name>
    </author>
    <summary type="html">&lt;p&gt;Una de las cosas que aprendí leyendo Clean Code es que tu código debe ser tan claro como si escribieses una novela, no obstante el 70% del tiempo que estas programando estas en realidad leyendo código&amp;hellip;&lt;/p&gt;
</summary>
    <content type="html">&lt;p&gt;Una de las cosas que aprendí leyendo Clean Code es que tu código debe ser tan claro como si escribieses una novela, no obstante el 70% del tiempo que estas programando estas en realidad leyendo código.
Esta idea cambio totalmente mi forma de programar, he seguido varias de las pautas que Uncle Bob nos indica y con ello creé un proceso para que de forma genérica en el proyecto en el que trabajo se pudiese generar un fichero de texto a partir de una consulta a base de datos.&lt;/p&gt;

&lt;p&gt;Esta funcionalidad tiene por supuesto unos cuantos requerimientos más y todos ellos he procurado hacerlos de forma automática para que el equipo de trabajo se ahorrase trabajo. Y la verdad que se nota la diferencia el código esta mucho más claro&amp;hellip; pero tiene un problema&amp;hellip;&lt;/p&gt;

&lt;p&gt;La semana pasada una compañera tenía que extender la funcionalidad del proceso para generar un Excel usando Apache POI, di por sentado que sería una tarea sencilla pero no esta siendo así y hemos tenido que dar unas cuantas vueltas al código.&lt;/p&gt;

&lt;p&gt;Reflexionando sobre ello he aprendido una valiosa lección:&lt;/p&gt;

&lt;p&gt;El código debe ser sencillo y bien estructurado&amp;hellip;pero debe serlo en conjunto no vale sólo que cada clase, métodos y propiedades sean claros. Quien tenga que mantenerlo debe poder ver el conjunto y con ello las relaciones de tu negocio. Si esto no es así pues toca &amp;ldquo;refactorizar&amp;rdquo;.&lt;/p&gt;

&lt;p&gt;Un saludo&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Lo que me esta aportando Clean Code</title>
    <link rel="alternate" href="http://chusnaval.com/2011/03/30/libros/"/>
    <id>http://chusnaval.com/2011/03/30/libros/</id>
    <published>2011-03-30</published>
    <updated>2011-03-30</updated>
    <author>
      <name>Chusnaval</name>
    </author>
    <summary type="html">&lt;p&gt;Estos últimos días entre pase y pase a producción del proyecto en el que trabajo, he logrado sacar el tiempo para leerme una buena parte de &lt;a href="http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882"&gt;&lt;strong&gt;Clean Code&lt;/strong&gt;&lt;/a&gt;; y no puedo evitar compartir lo mucho que me ha aportado&amp;hellip;&lt;/p&gt;
</summary>
    <content type="html">&lt;p&gt;Estos últimos días entre pase y pase a producción del proyecto en el que trabajo, he logrado sacar el tiempo para leerme una buena parte de &lt;a href="http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882"&gt;&lt;strong&gt;Clean Code&lt;/strong&gt;&lt;/a&gt;; y no puedo evitar compartir lo mucho que me ha aportado.&lt;/p&gt;

&lt;p&gt;Llevo trabajando como desarrollador durante unos cuatro años; se que no es mucho pero debería ser suficiente para programar de una forma más o menos correcta y productiva. Pues no es mi caso.&lt;/p&gt;

&lt;p&gt;Me explico, yo sabía que estaba realizando unas cuantas cosas mal, bien por costumbres heredadas del proyecto o por falta de tiempo para pensar en lo que estaba haciendo&amp;hellip;(se que no son excusas validas pero son las mejores que tengo). Llegué al punto de querer dejar esta profesión cuando siempre la he considerado mi única vocación.&lt;/p&gt;

&lt;p&gt;Con &lt;a href="http://oreilly.com/catalog/9780596518387"&gt;&lt;strong&gt;Apprenticeship Patterns&lt;/strong&gt;&lt;/a&gt; renové el optimismo, recuperé el gusto por el trabajo de desarrollador y aprendí que debía cambiar de actitud y asumir que tengo que ponerme el cinturón blanco para continuar aprendiendo. El caso es que al leer Clean Code he comprendido que realmente nunca he llevado puesto otro cinturón.
El libro me ha hecho ver las cosas de un modo totalmente distinto desde el primer capítulo y creo que ahora es cuando estoy empezando a saber como algo de programación. Por eso aunque en estos cuatro años he aprendido unas cuantas cosas, ahora se que programar no es una de ellas.&lt;/p&gt;

&lt;p&gt;Si algo parecido te pasa a ti, que sepas que tiene remedio: deja de quejarte, se optimista, lee mucho y practica&amp;hellip;&lt;/p&gt;

&lt;p&gt;Un saludo&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Lectura de Apprenticeship Patterns</title>
    <link rel="alternate" href="http://chusnaval.com/2011/03/05/libros/"/>
    <id>http://chusnaval.com/2011/03/05/libros/</id>
    <published>2011-03-05</published>
    <updated>2011-03-05</updated>
    <author>
      <name>Chusnaval</name>
    </author>
    <summary type="html">&lt;p&gt;Bueno en estos meses he empezado a leer libros que según he leido en blogs y twitter pueden ayudarte a mejorar como desarrollador de software.&lt;/p&gt;

&lt;p&gt;El último que me he leido es &lt;a href="http://oreilly.com/catalog/9780596518387"&gt;&lt;strong&gt;Apprenticeship Patterns: Guidance For The Aspiring Software Craftsman&lt;/strong&gt;&lt;/a&gt;. Un libro altamente recomendable con muchos consejos en forma de patrones para aquellos que de una forma u otra estamos empezando en el mundo de la programación&amp;hellip;&lt;/p&gt;
</summary>
    <content type="html">&lt;p&gt;Bueno en estos meses he empezado a leer libros que según he leido en blogs y twitter pueden ayudarte a mejorar como desarrollador de software.&lt;/p&gt;

&lt;p&gt;El último que me he leido es &lt;a href="http://oreilly.com/catalog/9780596518387"&gt;&lt;strong&gt;Apprenticeship Patterns: Guidance For The Aspiring Software Craftsman&lt;/strong&gt;&lt;/a&gt;. Un libro altamente recomendable con muchos consejos en forma de patrones para aquellos que de una forma u otra estamos empezando en el mundo de la programación.&lt;/p&gt;

&lt;p&gt;Me gusta mucho la idea de que si bien uno de los objetivos de los programadores es no realizar tareas repetitivas, dada la juventud de este negocio, existen pocas referencias de los programadores más veteranos sobre como no cometer ciertos errores en nuestra carrera profesional que han cometido generaciones anteriores. Este es el punto de vista general del libro, el evitar que repitamos problemas.&lt;/p&gt;

&lt;p&gt;Por otra parte el centro de la lectura es el patrón &lt;strong&gt;&amp;ldquo;The Long Road&amp;rdquo;&lt;/strong&gt; y es que esta profesión hay que tener muy claro que si no eres Linus Torvalds o Richard Stallman, tienes un largo camino por delante antes de llegar a ser un buen programador, y es uno de los objetivos principales del libro enseñarnos a aquellos que estamos empezando uno de los posibles caminos a seguir para ser un buen programador.&lt;/p&gt;

&lt;p&gt;Ahora he empezado a leer &lt;a href="http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882"&gt;&lt;strong&gt;Clean Code: A Handbook of Agile Software Craftsmanship&lt;/strong&gt;&lt;/a&gt;, cuando lo termine os comentaré lo que he aprendido de él.&lt;/p&gt;

&lt;p&gt;Un saludo.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Objetivos del año</title>
    <link rel="alternate" href="http://chusnaval.com/2010/12/31/objetivos/"/>
    <id>http://chusnaval.com/2010/12/31/objetivos/</id>
    <published>2010-12-31</published>
    <updated>2010-12-31</updated>
    <author>
      <name>Chusnaval</name>
    </author>
    <summary type="html">&lt;p&gt;Bueno se va acabando el año y parece que una vez más me he dejado los objetivos del año pasado por el camino; quizás por que nunca me lo he tomado muy en serio, quizás por que era más bien una lista de propósitos: &lt;a href="http://elgachupas.com/los-propositos-no-son-objetivos/" title="El gachupas"&gt;El gachupas&lt;/a&gt;&amp;hellip;&lt;/p&gt;
</summary>
    <content type="html">&lt;p&gt;Bueno se va acabando el año y parece que una vez más me he dejado los objetivos del año pasado por el camino; quizás por que nunca me lo he tomado muy en serio, quizás por que era más bien una lista de propósitos: &lt;a href="http://elgachupas.com/los-propositos-no-son-objetivos/" title="El gachupas"&gt;El gachupas&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;El caso es que estos últimos meses hay cosas que he ido arreglando en mi vida y me encuentro en un momento muy optimista, asi que va mi nueva lista objetivos alguno más genérico que otro (objetivo de todos modos):&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Leer y aprender todo lo posible.&lt;/li&gt;
&lt;li&gt;Crecer como profesional del desarrollo de software.&lt;/li&gt;
&lt;li&gt;Disfrutar más de la familia y amigos.&lt;/li&gt;
&lt;li&gt;Aprender Ruby.&lt;/li&gt;
&lt;li&gt;Aprender Perl.&lt;/li&gt;
&lt;li&gt;Aprender Groovy.&lt;/li&gt;
&lt;li&gt;Remotar la carrera.&lt;/li&gt;
&lt;li&gt;Mantener el blog.&lt;/li&gt;
&lt;li&gt;Colaborar en algún proyecto Open Source.&lt;/li&gt;
&lt;li&gt;Y por supuesto disfrutar de la vida siendo un geek.&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;Espero vernos dentro de un año para repasar esta lista y que pueda decir que he cumplido la mayoria de mis objetivos.&lt;/p&gt;

&lt;p&gt;Un abrazo para todos.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Primeras pruebas del blog</title>
    <link rel="alternate" href="http://chusnaval.com/2010/12/25/testeando/"/>
    <id>http://chusnaval.com/2010/12/25/testeando/</id>
    <published>2010-12-25</published>
    <updated>2010-12-25</updated>
    <author>
      <name>Chusnaval</name>
    </author>
    <summary type="html">&lt;p&gt;Si ve