﻿<?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>Pensamientos de otro más &#187; Libros</title>
	<atom:link href="http://www.superjueves.net/pensamientosdeotromas/tag/libros/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.superjueves.net/pensamientosdeotromas</link>
	<description>Sitio sobre Agilidad, desarrollo de software, programación, etc</description>
	<lastBuildDate>Tue, 24 Jul 2018 19:15:07 +0000</lastBuildDate>
	<language>es-ES</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=3.8.41</generator>
	<item>
		<title>Version Control By Example</title>
		<link>http://www.superjueves.net/pensamientosdeotromas/2012/05/23/version-control-by-example/</link>
		<comments>http://www.superjueves.net/pensamientosdeotromas/2012/05/23/version-control-by-example/#comments</comments>
		<pubDate>Wed, 23 May 2012 14:15:52 +0000</pubDate>
		<dc:creator><![CDATA[Alvaro García Loaisa]]></dc:creator>
				<category><![CDATA[Positivismo]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[Software craftsmanship]]></category>
		<category><![CDATA[control de versiones]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[libro]]></category>
		<category><![CDATA[Libros]]></category>
		<category><![CDATA[Plastic scm]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://www.superjueves.net/pensamientosdeotromas/?p=573</guid>
		<description><![CDATA[&#160; Hoy quería hacer una referencia al libro “Version Control By Example” de Eric Sink. Este libro nos zambulle en el mundo de los controles de versiones desde prácticamente 0. Bastante fácil de leer, corto y con muchos ejemplos de código modificado paso a paso por varias personas. El libro consta de 13 capítulos, en [&#8230;]]]></description>
				<content:encoded><![CDATA[<p style="text-align: center;"><img class="size-full wp-image-577" title="versioncontro2" src="http://www.superjueves.net/pensamientosdeotromas/wp-content/uploads/2012/05/versioncontro2.jpg" alt="" width="226" height="300" /></p>
<p>&nbsp;</p>
<p>Hoy quería hacer una referencia al libro “<a href="http://www.ericsink.com/vcbe/" target="_blank">Version Control By Example</a>” de<a href="http://www.ericsink.com/" target="_blank"> Eric Sink</a>.</p>
<p>Este libro nos zambulle en el mundo de los controles de versiones desde prácticamente 0. Bastante fácil de leer, corto y con muchos ejemplos de código modificado paso a paso por varias personas.</p>
<p>El libro consta de 13 capítulos, en los que nos va contando desde la historia de los controles de versiones, pasando por los controles de versiones centralizados como Suversion, a continuación los distribuidos como Git y terminando con algunas buenas prácticas.</p>
<p>Personalmente recomendaría este libro sobre todo, a gente que esté empezando en este mundillo y no tenga mucha idea de cómo se trabaja en el día a día con controles de versiones. Aunque también es muy recomendable para gente que solamente conoce los 4 comandos básicos de su control de versiones del trabajo y quiere aprender un poco más del tema.</p>
<p>Los ejemplos paso a paso de cómo una persona empieza a tocar un código, otra lo modifica, salen conflictos y cómo los resuelven, son el día a día de cualquier programador de aquí a la Índia.</p>
<p>&nbsp;</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-582" title="1804_image001" src="http://www.superjueves.net/pensamientosdeotromas/wp-content/uploads/2012/05/1804_image001.jpg" alt="" width="348" height="261" /></p>
<p>&nbsp;</p>
<p>Con él, no solo aprenderemos a utilizar los comandos de commit y update que sabe todo el mundo, sino que nos enseñará a ir más allá y saber utilizar estas herramientas con todas sus posibilidades. Crear y unir ramas, crear, borrar y modificar privilegios de usuarios, deshacer cambios, clonar repositorios y otras cuantas cosas más. Y todo esto paso a paso, con todos los comandos necesarios.</p>
<p>Unos de los capítulos más interesantes para los que quieren ir más a fondo, es el penúltimo, que nos habla de las tripas de los controles de versiones. De como trabajan estos programas internamente y qué técnicas utilizan para hacer lo que hacen, junto con algunas de sus limitaciones.</p>
<p>Otro capítulo que a mi me gustó mucho, es en el que habla sobre técnicas de control de flujos de trabajo. En él nos explica levemente cada una de las técnicas más utilizadas como una rama por cada release o otra muy de moda, aunque antigua,<a href="http://codicesoftware.blogspot.com/2010/08/branch-per-task-workflow-explained.html" target="_blank"> rama por tarea</a>. Aunque el capítulo es chulo, me hubiera gustado que profundizará mucho más en este tema.</p>
<p>El capítulo final lo dedica a un resumen de buenas prácticas. Muy corto y consejos muy familiares para los que llevamos un tiempo en esto. Os dejo algunos a continuación:</p>
<ul>
<li>Realiza tus commits de forma lógica, que se refieran a un cambio concreto</li>
<li>Explica al máximo tus commits</li>
<li>Usa etiquetas</li>
<li>Revisa siempre los merges antes de hacer el commit</li>
<li>No subas código comentado</li>
</ul>
<p>Se echa de menos algún capítulo sobre otros sistemas de control de versiones muy utilizados en el mercado, como<a href="http://en.wikipedia.org/wiki/Team_Foundation_Server" target="_blank"> TFS</a> o<a href="http://www.plasticscm.com/" target="_blank"> Plastic SCM</a> (este último producto Español de la empresa<a href="http://codicesoftware-es.blogspot.com.es/" target="_blank"> Codice Software</a>) y sobra parte de<a href="http://veracity-scm.com/" target="_blank"> Veracity</a>.</p>
<p>Si aún no os he convencido para leerlo, deciros que está disponible de forma totalmente gratuita en formato<a href="http://www.ericsink.com/vcbe/vcbe_usletter_lo.pdf" target="_blank"> PDF</a>, para consultarlo<a href="http://www.ericsink.com/vcbe/html/index.html" target="_blank"> online</a>, como<a href="http://www.ericsink.com/vcbe/vcbe.epub" target="_blank"> EPUB</a> y finalmente en libro físico, que si quieres te lo<a href="http://www.ericsink.com/entries/vcbe_print_edition_free.html" target="_blank"> envían gratis</a> a tu casa sin gastos de envío!!! Y de esto último os puedo dar fe <img src="http://www.superjueves.net/pensamientosdeotromas/wp-includes/images/smilies/icon_wink.gif" alt=";)" class="wp-smiley" /> </p>
<p>Espero haberos dejado sin excusas!</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.superjueves.net/pensamientosdeotromas/2012/05/23/version-control-by-example/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Seven Languages In Seven Weeks y los paradigmas de programación</title>
		<link>http://www.superjueves.net/pensamientosdeotromas/2012/02/19/seven-languages-in-seven-weeks-y-los-paradigmas-de-programacion/</link>
		<comments>http://www.superjueves.net/pensamientosdeotromas/2012/02/19/seven-languages-in-seven-weeks-y-los-paradigmas-de-programacion/#comments</comments>
		<pubDate>Sun, 19 Feb 2012 20:06:32 +0000</pubDate>
		<dc:creator><![CDATA[Alvaro García Loaisa]]></dc:creator>
				<category><![CDATA[Positivismo]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[Software craftsmanship]]></category>
		<category><![CDATA[Clojure]]></category>
		<category><![CDATA[Erlang]]></category>
		<category><![CDATA[Haskell]]></category>
		<category><![CDATA[IO]]></category>
		<category><![CDATA[Languages]]></category>
		<category><![CDATA[Lecturas]]></category>
		<category><![CDATA[Lenguajes]]></category>
		<category><![CDATA[Libros]]></category>
		<category><![CDATA[Prolog]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Scala]]></category>

		<guid isPermaLink="false">http://www.superjueves.net/pensamientosdeotromas/?p=422</guid>
		<description><![CDATA[&#160; Hace unos meses terminé el libro “Seven Languages In Seven Weeks” de Pragmatic Bookself. Fue una temporada bastante entretenida y muy enriquecedora para mi faceta de programador. Aquí va mi resumen. &#160; El libro nos ofrece un aprendizaje relámpago por cada uno de los 7 lenguajes que trata, Ruby, IO, Prolog, Scala, Erlang, Clojure [&#8230;]]]></description>
				<content:encoded><![CDATA[<p style="text-align: center;"><img class="alignnone size-full wp-image-460 aligncenter" title="sevenlanguages2" src="http://www.superjueves.net/pensamientosdeotromas/wp-content/uploads/2012/02/sevenlanguages2.jpg" alt="" width="335" height="402" /></p>
<p>&nbsp;</p>
<div>Hace unos meses terminé el libro “<a href="http://pragprog.com/book/btlang/seven-languages-in-seven-weeks" target="_blank">Seven Languages In Seven Weeks</a>” de <a href="http://pragprog.com/" target="_blank">Pragmatic Bookself</a>. Fue una temporada bastante entretenida y muy enriquecedora para mi faceta de programador. Aquí va mi resumen.</div>
<p>&nbsp;</p>
<div>El libro nos ofrece un aprendizaje relámpago por cada uno de los 7 lenguajes que trata, <a title="Ruby" href="http://www.ruby-lang.org/es/" target="_blank">Ruby</a>, <a title="IO" href="http://iolanguage.com/" target="_blank">IO</a>, <a title="Prolog" href="http://es.wikipedia.org/wiki/Prolog" target="_blank">Prolog</a>, <a title="Scala" href="http://www.scala-lang.org/" target="_blank">Scala</a>, <a title="Erlang" href="http://www.erlang.org/" target="_blank">Erlang</a>, <a title="Clojure" href="http://clojure.org/" target="_blank">Clojure</a> y <a title="Haskell" href="http://www.haskell.org/haskellwiki/Haskell" target="_blank">Haskell</a>. Pero aunque diga relámpago, no quiero decir que este aprendizaje sea pasándolos por encima y enseñándonos lo mismo que la típica presentación o curso introductorio. De hecho el autor no bromea con la alusión de tomarse 7 semanas para aprenderlos, ya que si quieres seguir los ejercicios que propone por cada lenguaje, más vale que te pongas las pilas. Tengo que confesaros que a mi me tomó al final 10 semanas. <img src="http://www.superjueves.net/pensamientosdeotromas/wp-includes/images/smilies/icon_razz.gif" alt=":P" class="wp-smiley" /> </p>
<p>Cada uno de estos lenguajes se divide en 3 capítulos, con deberes de investigación sobre los mismos y ejercicios, que van desde algo fácil, hasta algunos verdaderos quebraderos de cabeza. El autor <a href="http://www.java.net/blogs/batate" target="_blank">Bruce Tate</a> ni siquiera se para a explicarnos como instalar el entorno de cada lenguaje, sino que va directamente al grano.</p>
<p>En cada capítulo hay una mini-historia del lenguaje y una entrevista al creador o a alguna persona influyente en el proyecto. Y al final de estos, se resumen las fortalezas y debilidades de cada uno.<br />
<strong>Ten en cuenta que no es para nada una guía de programación</strong>, sino una guía de estudio de cada uno de estos maravillosos y algunas veces desesperantes lenguajes de programación.</p>
<p>Una de las cosas que más me ha gustado de este libro es el sentido del humor del autor. Esta escrito de una forma muy amena y por cada lenguaje busca una figura de ciencia ficción o fantasía a la que se pueda asemejar para que te identifiques más con él y puedas comprenderlo, como puede ser el comandante Spock con Haskell, Eduardo Manos-Tijeras con Scala o Mary Poppins con Ruby. Por supuesto con sus ejemplos y definiciones de por qué se parecen a esos personajes, y desde mi punto de vista, acierta bastante <img src="http://www.superjueves.net/pensamientosdeotromas/wp-includes/images/smilies/icon_biggrin.gif" alt=":D" class="wp-smiley" /> </p>
<p>El libro descubre nuevas ideas a los programadores que estén acostumbrados a trabajar con lenguajes orientados a objetos, enseñando los distintos paradigmas que existen dentro de otros mundos, como la programación funcional o la lógica. Te obliga a salir de tu acostumbrada forma de pensar y le da la vuelta a todo para que tengas que forzarte a olvidar el como programas en el día a día, enseñándote un nuevo camino a la hora de organizar y construir programas. <strong>Con él aprendes el estado del arte dentro del mundo de la programación y los diferentes paradigmas que existen en este mundillo</strong> cada vez más amplio.<br />
&nbsp;</p>
<p style="text-align: center;"><img class="size-full wp-image-462 aligncenter" title="brain_muscle" src="http://www.superjueves.net/pensamientosdeotromas/wp-content/uploads/2012/02/brain_muscle.jpg" alt="" width="255" height="198" /></p>
</div>
<div>
<h2><strong>Paradigmas:</strong></h2>
<p><strong>1º Orientación a Objetos (Ruby, Scala)</strong></p>
<p>Este paradigma de programación es el más conocido y en el que se encuentran el groso de los programadores. El libro empieza con él para que te sientas a gusto y te acomodes a la forma de trabajar. En él practicamos con las 3 bases, encapsulación, polimorfismo y herencia.</p>
<p>Con Ruby experimentamos la potencia del “<a href="http://es.wikipedia.org/wiki/Duck_typing" target="_blank">Dynamic duck typing</a>” y la <a href="http://es.wikipedia.org/wiki/Metaprogramaci%C3%B3n" target="_blank">Metaprogramación</a>, después pasando por Scala y introduciendonos en otro paradigma la “<a href="http://es.wikipedia.org/wiki/Programaci%C3%B3n_funcional" target="_blank">Programación funcional</a>”.<br />
Ambos lenguajes se utilizan en aplicaciones generalizadas y ambos presentan avances significativos en el diseño de lenguajes con respecto a los lenguajes principales como Java.</p>
<p>&nbsp;</p>
</div>
<p style="text-align: center;"><img class="alignnone size-full wp-image-471" title="ruby" src="http://www.superjueves.net/pensamientosdeotromas/wp-content/uploads/2012/02/ruby.jpg" alt="" width="75" height="75" /> <img class="alignnone size-full wp-image-467" title="Scala" src="http://www.superjueves.net/pensamientosdeotromas/wp-content/uploads/2012/02/Scala1.png" alt="" width="200" height="58" /></p>
<p style="text-align: center;">
<p>&nbsp;</p>
<div><strong>2º Orientación a Prototipos o Prototype Programing (IO)</strong>Este tipo, no llega a ser un paradigma en si mismo, sino más un subtipo de la programación orientada a objetos, pero se ha diferenciado suficiente en la práctica como para separarlo como modelo. En lugar de trabajar a través de la construcción de clases, todos los prototipos son instancias de objetos, que a su vez se van clonando y extendiendo sus funcionalidades.</div>
<p>Esta familia de lenguajes incluye JavaScript e IO entre otros. Brutalmente simple y expresivo IO tiene la capacidad de poder adaptarlo totalmente y definir nuestro propios DSLs, también parece que sirve muy bien para crear interfaces, aunque no es el lenguaje más desarrollado de los que nos encontramos en el libro.<br />
&nbsp;</p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-465" title="Io-logo" src="http://www.superjueves.net/pensamientosdeotromas/wp-content/uploads/2012/02/Io-logo.png" alt="" width="64" height="64" /></p>
<p style="text-align: center;">
<p>&nbsp;</p>
<div><strong>3º Programación Lógica (Prolog)</strong>Este tipo de lenguajes de programación están orientados a resolver un estrecho tipo de problemas, aunque para ellos son asombrosamente eficientes. Con ellos definimos las reglas para el universo que plantea el problema y a continuación le preguntamos al lenguaje que nos desvele la solución a las preguntas.<br />
Cuando el problema se ajusta a unas reglas lógicas, Prolog es capaz de conseguir resultados en muy pocas lineas de código que en cualquier otro lenguaje llevaría cientos de ellas y horas de comeduras de cabeza por parte del programador.<br />
Estos lenguajes se utilizan en ámbitos como el control de tráfico aéreo o de trenes, casualmente en mi empresa se utiliza justo para el cálculo de rutas para trenes de cercanías <img src="http://www.superjueves.net/pensamientosdeotromas/wp-includes/images/smilies/icon_biggrin.gif" alt=":D" class="wp-smiley" /> </div>
<p>&nbsp;</p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-466" title="prolog" src="http://www.superjueves.net/pensamientosdeotromas/wp-content/uploads/2012/02/prolog.jpg" alt="" width="200" height="56" /></p>
<p style="text-align: center;">
<p>&nbsp;</p>
<div><strong>4º Programación Funcional (Scala, Erlang, Clojure, Haskell)</strong>Este paradigma es el más usado en el libro, con 4 lenguajes que se ajustan en mayor o menor pureza al mismo.<br />
La programación funcional se basa en funciones matemáticas, las cuales da igual las veces que las llamemos que darán exactamente los mismo resultados, sin influir en otras o tener efectos secundarios. Estos lenguajes son muy expresivos y normalmente necesitan menos lineas de código que los lenguajes orientados a objetos para resolver problemas. Al tratar varios lenguajes, aprendemos que diferentes grados de pureza, nos ofrecen diferentes series de ventajas y desventajas.<br />
Al eliminar los efectos secundarios se puede entender y predecir el comportamiento de un programa, esta es una de las principales ventajas que nos da el utilizar la programación funcional.</div>
<p>&nbsp;</p>
<p style="text-align: center;"> <img class="alignnone size-full wp-image-482" title="erlang" src="http://www.superjueves.net/pensamientosdeotromas/wp-content/uploads/2012/02/erlang.jpg" alt="" width="100" height="89" /> <img class="alignnone size-full wp-image-476" title="clojure" src="http://www.superjueves.net/pensamientosdeotromas/wp-content/uploads/2012/02/clojure.jpg" alt="" width="100" height="100" />  <img class="alignnone size-full wp-image-472" title="haskell" src="http://www.superjueves.net/pensamientosdeotromas/wp-content/uploads/2012/02/haskell.jpg" alt="" width="148" height="140" /></p>
<p style="text-align: center;">
<p>&nbsp;</p>
<div>Para finalizar tengo que decir, que he disfrutado mucho leyendo este libro y sobre todo haciendo y sufriendo algunos ejercicios. He aprendido muchísimo acerca de como acercarme a resolver muchos tipos de problemas y sobre todo con que paradígma se resolvería mejor.</div>
<p>&nbsp;</p>
<div>Aquí os dejo el link a mis ejercicios resueltos por si queréis echarles un ojo <a href="https://github.com/aloaisa/7LanguagesIn7Weeks" target="_blank">GitHub</a> <img src="http://www.superjueves.net/pensamientosdeotromas/wp-includes/images/smilies/icon_wink.gif" alt=";)" class="wp-smiley" /> </div>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.superjueves.net/pensamientosdeotromas/2012/02/19/seven-languages-in-seven-weeks-y-los-paradigmas-de-programacion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
