miércoles, 5 de septiembre de 2012

PragPub de septiembre: revista gratuita y en varios formatos

PragPub

Comenté sobre PragPub hace un par de años, pero para quienes no estaban por ahí todavía, vuelvo a recomendarla.

Se trata de una revista publicada mensualmente por The Pragmatic Programmers, la editorial de Andy Hunt y Dave Thomas, autores, entre otros, de éste clásico libro que todo programador debería haber leído.

La revista en si tiene unas 60 páginas (en su edición PDF) y cubre temas generales (en inglés) de programación y sobre el perfil profesional de los desarrolladores de software. Se edita mensualmente y en formato HTML (para leer en el navegador), PDF, epub y mobi (estos últimos para lectores electrónicos como Sony Reader y Kindle, respectivamente).

 Los temas de este mes son:

  • Thinking Functionally with Haskell, por Paul Callaghan. Una exploración al sistema de tipos de Haskel y sus consecuencias en la validación de aplicaciones.
  • Tales from the Ops Side, por Michael Nygard. Aquí el author del libro "Release it!" cuenta algunas escenas comunes en un escenario de operaciones.
  • US Visa: My First iPhone App, por Alexander Demin. Cuenta la experiencia de construir la primer aplicación para iOS, incluyendo código.
  • Threads, por Michael Swaine. Es una nota donde el editor de la revista cuenta la historia de Chris Espinosa, miembro del equipo de desarrollo de Apple desde la primer etapa de la compañía.
Y como siempre incluye las seccione Up Front (la editorial), Choice Bits (el ranking de los libros más vendidos de la editorial), Calendar (conferencia, charlas interesantes en varias partes del mundo, y otros eventos) y Shady Illuminations (la columna de opinión de John Shade).
 
En el caso de la revista, que es gratuita, tal vez no llaman tanto la atención la variedad de formatos y el hecho de que los archivos estén libres de toda protección, pero es interesante que lo mismo sucede con los libros de la editorial, que publica muchos títulos de nicho como Deploying Rails, Programming Your Home, The Cucumber Book y otros que los programadores difícilmente consigamos en otro lado, con el agregado de que en general el nivel es muy bueno, tanto o más que en las principales editoriales técnicas.

miércoles, 29 de agosto de 2012

Libros gratuitos sobre Python

Libros de Python

A principios de este mes comenté sobre un sitio en GitHub con libros gratuitos de JavaScript, que en el ínterin creció de 11 a 25 títulos (cubriendo también más HTML5).

La misma gente de Revolunet (una compañía francesa de diseño web) amplió ahora la idea a una lista similar con libros gratuitos de Python.

Hay libros de nivel inicial, intermedio y avanzado, incluyendo varios iniciales para aprender a programar en general, basados en Python, que siempre me pareció una excelente opción de primer lenguaje, sobre todo para niños y adolescentes, porque es simple y directo en el arranque pero no tiene techo.

Los libros intermedios son en general para programadores Python que quieren entrar en detalles del lenguaje o frameworks, y los títulos avanzados son interesantes porque entran en temas complejos, basándose en Python para resolverlos, como Computer Vision, procesamiento de lenguaje natural, sistemas complejos, o probabilidad y estadística.

Casi todos los libros están en inglés, excepto (por ahora) un par en francés. 

También, varios de los libros son proyectos colaborativos y abiertos, algunos incluso publicados y actualizados como blogs, a lo largo de mucho tiempo (como en el caso de Python Module of the Week) con lo que quizá encuentren traducciones disponibles que a mi se me escaparon, o pueden colaborar en ese espacio.

Entre los libros hay dos que me gustan mucho, volviendo al tema de enseñar a chicos:

Snake Wrangling for Kids, justamente orientado a enseñar a programar a chicos, y que usa bastante los gráficos de tortuga provenientes del Logo, otro gran lenguaje. El libro es una guía de la que uno puede salirse, pero hay muchas ideas buenas. El libro está disponible para Python 3 o 2.7, y para Linux, OS X y Windows, con lo que incluso se puede reunir un grupo de jóvenes multi-plataforma (como mis dos hijas y yo).

Making Games with Python and PyGame es una buena continuación porque requiere un mínimo de conocimiento de programación y Python, pero rápidamente se mete en algo que los chicos amamos: programar juegos.

Espero que aprovechen todo este material, aprendan mucho, y sobre todo, enseñen nuestro arte a la próxima generación.

miércoles, 15 de agosto de 2012

Libros gratuitos sobre Arquitectura de Aplicaciones Open Source

Arcquitectura Open Source

La arquitectura de software es un terreno interesantísimo que más allá de que uno pretenda o no ser Arquitecto como perfil profesional, es importante para todo desarrollador, porque tiene que ver con la estructura de lo que construimos y con cómo tomamos las decisiones respecto a ella. Como en el caso del diseño de un producto, no es algo que se pueda evitar, cuando uno no dedica tiempo a la arquitectura, el producto final tendrá muy probablemente una estructura deficiente o endeble, pero no dejará de tenerla.

De todas maneras, este es un terreno que siempre pareció de cierta sofisticación, y que por lo tanto no ha generado mucho material libre y gratuito, salvo últimamente, de la mano de sitios web como InfoQ ó High Scalability, que publican informes detallados o algunos libros breves.

En este caso se trata de un esfuerzo conjunto, coordinado por Amy Brown y Greg Wilson como editores, y una larga lista de colaboradores, que compila, en dos volúmenes, reseñas de la arquitectura de aplicaciones de código abierto, explicadas por expertos en el tema, a veces coautores o parte del equipo del proyecto. En algunos casos se cubren familias o ecosistemas de aplicaciones, en lugar de productos individuales.

Todo el material está disponible de manera gratuita en el sitio web, bajo licencia Creative Commons Attribution 3.0 Unported, pero para quienes prefieran leerlo en Kindle u otro dispositivo electrónico, está disponible una versión paga cuyos derechos se donan íntegramente a Anmesty International.

Los dos tomos están en inglés, y cubren unas 25 aplicaciones populares cada uno.

Algunos ejemplos del Volumen I son: Asterisk (la plataforma de telefonía), Audacity (el editor de audio), Eclipse, el file system distribuido de Hadoop, mecanismos de integración continua, el ecosistema LLVM, Mercurial, Python Packaging, Selenium WebDriver y otros.

Algunos ejemplos del Volumen II son: Arquitectura Web Escalable y Sistemas Distribuidos, Ingeniería de Actualizaciones de Firefox, el compilador Glasgow Haskell, Git, el Dynamic Language Runtime y la familia de lenguajes Iron (IronPython, IronRuby, etc), MediaWiki, Moodle, nginx, PyPy, Twisted, ZeroMQ y otros.

La cantidad de material es impresionante y los temas están muy bien cubiertos, a gran nivel de detalle técnico.