The Pragmatic Programmer

The pragmatic programmerThe Pragmatic Programmer es un conocido libro sobre ingeniería del software que dio comienzo a una serie de libros con planteamientos similares, para programadores pragmáticos.

El libro se mueve en torno a una serie de consejos, ideas y observaciones para desarrolladores. Toca prácticamente todos los puntos en el trabajo diario de un programador, desde las herramientas a usar a cómo implementar incuso cómo actuar y pensar. A decir verdad, muchos capítulos podrían aplicarse a cualquier otra labor y son bastante genéricos.

Al final del libro viene una chuleta con todos los tips que se han ido mencionando, muy curiosa. La mayoría de ellos son bastante razonables, como "Always design for concurrency", otros son interesantes y sorprendentes, "English is just a programming language"; pero la mayoría son tópicos que cualquiera con un mínimo de experiencia conocerá, "DRY", "Think about your work", pero que no viene mal verlos en escrito una vez más.

En general es un libro realmente bueno, y que cualquiera que le guste leer libros técnicos, debería tener en su lista, pues además es muy corto (quitando anexos, poco más de 200pag., letra gorda y fácil lectura). No es un libro donde aprendas cosas concretas, lo definiría más bien como una forma de dialogar sobre el desarrollo y la programación, algo bastante divertido :), aunque en este caso el diálogo es unidireccional de los autores hacia ti, suficiente.

Su principal problema es su extensión, se queda corto, muy corto. No entra en profundidad en ningún aspecto, simplemente estamos dialogando sobre temas. Y en aquellos donde dominas puede resultar incluso molesto (el capítulo sobre herramientas estuve a punto de saltarlo y eso que odio no leer los libros linealmente) puesto que no puedes participar en dicho diálogo. Además la mayoría de temas que trata suelen ser cosas que ya conocerás, pero nunca está de más saber el punto de vista de otro, ¿no crees?.

Lo mejor del libro es que a pesar de que la mayoría de las cosas ya las sabrás, en determinados puntos el autor te sorprende con algo que no esperabas que dijera (seguramente estas "sorpresas" son bastante subjetivas y dependientes del lector), solo por esto, ya lo recomiendo.

Es, en definitiva, un libro sobre filosofía que toca, disimuladamente, temas de ingeniería del software.

Abstractions live longer than details

Tip #53

¿Crítico o artista?

Cuando los críticos de arte se juntan, hablan sobre la forma, la estructura y el significado. Cuando los artistas se juntan, hablan sobre dónde comprar trementina barata.

Pablo Picasso (Artista, 1881-1973)

(La trementina es un disolvente de pinturas y barnices)

MacBook Air, fino y seguro

¿Quién todavía no se ha enterado del nuevo portátil de Apple? Por fin podemos disfrutar de un portátil de tan solo 1,94 cm. de grosor en vez de los 2,95 cm. de mi Acer, además podré usar un multi-touchpad, que aunque sea lo más incómodo del mundo, queda chulo, chulo.

Pensando en tu seguridad no incorpora lector de cds/dvds ni tampoco conexión ethernet, y solo un usb, ¡para qué más! Los cables quedan feos, ¡fuera conexiones!. Todo por el módico precio de 1649€ en su versión básica.

Y tú, ¿cuántos te vas a comprar?.

wiki wiki wiki.


Aquí podemos observar una comparativa con uno de sus competidores directos.

Subversion en aplicaciones Java desde Ubuntu

Cualquiera que haya usado Java, tanto usuarios como desarrolladores, habrán tenido múltiples problemas debido al tipico problema del classpath y derivados. Es posiblemente uno de los (múltiples) principales problemas de Java. Y no será por soluciones adoptadas en otras ámbitos ampliamente usadas y aceptadas como válidas. Pero bueno, ese es otro debate.

Para poder interactuar con subversion desde aplicaciones Java necesitas la librería cliente JavaHL, ésta puede ser instalada fácilmente usando los paquetes de tu distro, en Ubuntu:

$ sudo aptitude install libsvn-java

Pero a pesar de esto, tus aplicaciones Java seguirán sin "encontrarla", necesitas indicar en tu comando de ejecución de cientos de caracteres de tu aplicación el siguiente parámetro:

-Djava.library.path=/usr/lib/jni

Obviamente /usr/lib/jni es donde está la librería (el .so), quizá en otras distros no-ubuntu sea diferente.

En mi caso particular lo necesitaba para subclipse en Aptana, en cuyo caso hay que añadir esa opción al AptanaStudio.ini donde están los parámetros usados al arrancar Aptana.

Head First Design Patterns

La serie de libros Head First de O'Reilly tiene un planteamiento bastante diferente a lo que se suele ver en libros técnicos. Su función y objetivo es hacernos aprender de forma simple y amena. Tratan de exponer cualquier tema de una forma gráfica (pues como dicen en la propia introducción, lo principal es sorprender al lector, al estudiante, para que capte los conceptos y no los olvide), con muchos ejemplos (bastante curiosos, e.g. un simulador de patos), mostrando los detalles que hagan falta (esto incluye explicar tecnologías requeridas, poner el código que haga falta, diagramas, etc...) e incluso tareas a hacer con boli en mano (unir con flechas conceptos, preguntas "truco" o para hacerte pensar, crucigramas, completar código, etc...).

En definitiva, son libros de aprendizaje (ni por asomo de referencia) con una apariencia de primeras que puede parecer un poco infantil, pero con solidos contenidos bien expuestos. Si necesitas aprender algo de forma rápida por necesidad, no creo que sean la mejor opción, pero si quieres aprender algo de una forma amena aunque posiblemente en más tiempo (puesto que tanto dibujo y tanta leche hace aumentar sustancialmente el grosor del libro), esta serie de libros son bastante recomendables, al menos mi primer contacto ha sido bastante exitoso.

Head first Design PatternsEn este Head First Design Patterns, se explican en profundidad casi 15 patrones (los más usuales) usando siempre muchos ejemplos, siempre con cierto toque de humor, dando vuelta a todos los pequeños detalles que pueden surgir e intentando hacer reflexionar al lector sobre los nuevos conceptos que se van enseñando.

Personalmente me hubiese ayudado bastante más el libro si lo hubiese leído hace un par de años, pero aún así y a pesar de conocer creer conocer todos ellos, he descubierto bastante cosas nuevas e interesantes.

Cada capítulo trata sobre un patrón en concreto (o un pequeño conjunto de ellos que están muy relacionados) intentando reaprovechar ejemplos anteriores, finalmente existen un par de capítulos sobre integración de los patrones y la presentación de MVC (el cual es un patrón compuesto por diferentes patrones cooperando entre si), con canción incluida y todo.

chiste sobre métodos abstractosPosiblemente sea de los mejores libros para introducirse en el mundo de los patrones de diseño de una forma simple y eficaz. No lo recomendaría para alguien que me sepa decir las diferentes variantes de un Singleton, identificar qué patrones cooperan y cómo en un MVC, o que me sepa decir más 10 patrones diferentes y clasificarlos (es decir, alguien con experiencia). Pero en caso contrario es una opción muy a tener en cuenta por encima de libros como el clásico de E.Gamma & cia, el cual es muy útil, pero como referencia, y después de tener claro los conceptos básicos de los patrones. A decir verdad, una combinación donde este libro sea la lectura de aprendizaje y el Design Patterns: Elements of Reusable Object-Oriented Software sea el libro de referencia puede ser un gran acierto.

Visitas en el 2007: para el pozo

A pesar de ser un maniático compulsivo de las estadísticas, las que menos me importan son las de mi blog personal (esto que estás leyendo), quizá porque no ansío ganar nada de dinero, y no me importa que me visiten cuatro gatos (los mejores sin duda), escribo bicosyes.

Aunque después de ver el post de DraXus e ir a google analytics me ha mosqueado bastante que no esté disponible (o soy muy tonto para encontrarlo) una opción para agrupar los datos de las estadísticas (por mes, por ejemplo...). Como tiene una opción para exportar los datos (a csv por ejemplo), y como me aburro mucho, me he hecho un script tonto para sacarme un cool gráfico por meses. Ves que bien.

estadísticas de bicosyes.com en el 2007 por meses

Como podemos ver en él, se puede deducir que aquí no entra ni san Pedro. Don't worry, be happy.

Ya que me pongo con estadísticas y a pesar de que a nadie le importe estos datos salvo a enfermos compulsivos estadísticos, voy a mencionar los datos más interesantes a mi parecer:

Como conclusión, par de tetas atraen más que cualquier otra cosa y si quieres visitas más te vale sacar algo conocido o buscado, una lastima porque no creo que en un futuro próximo saque algo sobre una rubia espía programando en Java un fork de frets on fire.

Me sorprende el tráfico de gente con el puto bindous de las narices, y aún más el porcentaje de IE. Querido visitante, si usas IE vete de aquí, cuando seas mayor, vuelve. También bastante sorprendente que Opera esté por encima de Safari (¿quien narices usa Opera? Un navegador no soportado por Google yo lo considero muerto, r.i.p.)

Posiblemente todas estas sorpresas que veo sean debidas al tráfico proveniente de los buscadores (tráfico ocasional que solo busca una respuesta rápida de cómo poner una imagen en java, o que busca canciones de frets on fire, o similares), quizá este año ponga un filtro para eliminar todo ese tráfico "basura".

Si alguien le interesa el script tonto, está en ruby. Simplemente hay que descargar el fichero CSV de las visitas una vez aplicado correctamente el rango (desde el 1 enero hasta 31 diciembre) e indicarle al script el nombre de dicho fichero y, opcionalmente, el título del gráfico. Las librerías requeridas están comentadas en la cabecera del fichero. El gráfico de arriba lo he generado tal que así:

$ ./GoogleAnalyticsCsvParser.rb data.csv "Visitas bicosyes.com 2007"

Creative Commons License Esta obra está bajo una licencia de Creative Commons.

Este blog funciona gracias a WordPress con el theme GimpStyle diseñado por Horacio Bella y adaptado por un servidor.
Feed entradas