Cypherpunks: Freedom and the Future of the Internet

Por recomendación de Ghostbar empece a leer este libro, pues siempre me ha llamado la atención el mundo cypherpunk y al ver que Julian Assange era uno de los autores me animé aún mas.

El contenido del libro no es una historia o resumen de esta cultura, sino mas bien sobre la problemática mundial, de la violación de la privacidad de los ciudadanos por parte de sus gobiernos, y como la comunidad cypherpunk ha ayudado a enfrentar el problema. La forma de exponer esto, es a través de una serie de debates (no sé si hay un tipo de nombre para este tipo de narrativa) entre distintos miembros de Wikileaks, comentan su opinión del tema y muchas veces cuentan experiencias propias, las cuales ayudan a comprender que muchas cosas mencionadas, no son ciencia ficción sino ya ocurren actualmente en distintas partes del mundo.

De los temas me gustaron, fue al principio del libro donde promueve el cifrado de datos y hace comparaciones con la naturaleza, como funcionan las tarjetas de crédito y como todo es procesado en EEUU permitiendo espiarte desde cualquier parte del mundo (ahora entiendo la paranoia de Richard Stallman), como Gaddafi compraba satélites espías a Francia para usarlo en sus ciudadanos, entre otros. Ademas, por la situación que estamos pasando en Venezuela, me identifiqué con algunos puntos.

Cypherpunks: Freedom and the Future of the Internet

Portada del libro

Si les llama la atención la criptografía, deseas conocer como los gobiernos espían a sus ciudadanos, deseas apoyar Juliar Assange, crees en la protección y privacidad de tus datos, no puedes dejar de leer este libro. Así que búscalo en tu tienda favorita.

La catedral y el bazar: Famoso ensayo sobre código abierto

A pesar de tener casi 10 años en el mundo del Software Libre, nunca había leído el ensayo escrito por el hacker Eric S. Raymond (quien por cierto vivió en Venezuela cuando era niño) en 1997. Esta publicación es famosa porque explicó por primera vez como es el proceso de desarrollo de software en un entorno colaborativo y además sirvió de inspiración para que Netscape liberara el código fuente de su navegador, creando Mozilla Browser que luego se transformaría en Mozilla Firefox.

El libro compara el desarrollo de software cerrado con la construcción de una Catedral: todo se planifica previamente, se diseña por completo la estructura antes de empezar, la cantidad de materiales utilizados, los empleados, entre otros. Por ello, si se desea hacer un cambio, en las primeras etapas es posible pero lleva a la pérdida de tiempo, se debe planificar todo de nuevo, por mencionar algunos. Mientras que un bazar por su naturaleza, empieza como algo sencillo, crece proporcionalmente a medida que tiene éxito, los empleados están allí voluntariamente a diferencia de la catedral que pueden estar solo por el pago, etc.

Portada del ensayo

Portada del ensayo

Además usa como ejemplos el desarrollo de Linux y su proyecto personal, Fetchmail un cliente de correo, para brindar bases a lo que explica. Al leer estos ejemplos, recordé mucho mi experiencia con mis proyectos de software libre y el video que compartí aquí en el blog sobre lo que la industría de la tecnología ha aprendido de Linus Torvalds. Pues explica como en un desarrollo de un proyecto de código abierto la comunicación es mas abierta, la gente colabora/trabaja voluntariamente en el proyecto (tendiendo a ser mas productivos que en el esquema cerrado al no estar obligados a hacer cosas), el proyecto va creciendo de acuerdo a las sugerencias de los usuarios (en los proyectos cerrados el mayor interés es el económico, no la calidad o brindarle al usuario lo que desea), se obtienen código de mayor calidad al ser posible su revisión pública por parte de cualquier persona, y mas.

No les cuento mucho porque el libro es corto, recomiendo leerlo si son fanáticos del software de código abierto o libre, si desean crear o participar en un proyecto abierto, si no conocen de este mundo y desean tener las bases iniciales, o si piensan que el modelo de desarrollo usado por estos proyectos es de mala calidad o no es posible tener ganancias.

El libro se encuentra distribuido libremente en Internet. A continuación les dejo el enlace para leerlo en español: La catedral y el bazar, pero recomendaría leerlo en inglés, porque he leído sobre algunos problemas de traducción y términos usados.

¡Espero que les guste y sigan apoyando las tecnologías abiertas!

Understanding the Linux Kernel: Entiende como funciona Linux o un sistema operativo

Desde aproximadamente un año, estoy dictando la materia de Sistemas Operativos en la Universidad Nacional Experimental del Tachira (UNET) y buscando como explicar el contenido prográmatico con el núcleo Linux, conseguí una recomendación de leer Understanting the Linux Kernel de O’Reilly, acto seguido, adquirí la versión digital y me puse a leerlo.

En mi opinión el libro se divide en dos partes, una sección introductoria donde explica toda la teoría de como funcionan los Sistemas Operativos, aquí veremos como es el arranque del sistema, el manejo de: procesos, memoria, dispositivos de entrada y salida; pero con gran nivel técnico y muchos ejemplos superficiales de como son implementados en Linux. Me pareció interesante porque a diferencia de otros libros de Sistemas Operativos, el contenido está dirigido a profesionales y no a estudiantes, por ello, si desconoces estos temas es mejor leer un libro académico antes de leer esta sección.

La siguiente parte (como el 75% restante del libro), deja de ser teoría general y se adentra en como Linux implementa cada una las cosas explicadas en la sección anterior, aquí leeremos sobre los algoritmos disponibles en Linux para manejo de procesadores, memoria y dispositivos de E/S. A partir de aquí el contenido se dirige a personas interesadas en el diseño de Linux o futuros colaboradores del núcleo, pues veremos secciones de código (no muchas), las diferentes estructuras y variables disponibles para utilizar cuando se desarrolla, ell autor explica muy bien a través de tablas, cada una de las estructuras disponibles con sus correspondientes atributos, los ejemplos son muy sencillos y cortos (bueno la naturaleza de un sistema operativo es así) sin rellenar con otras cosas y los conceptos pueden ser sencillos o muy complejos dependiendo de tu dominio del tema.

Understanding the Linux Kernel

Portada del libro

Este libro lo recomiendo si deseas empezar a modificar (fork) el núcleo de Linux, Firefox OS o Android, si te interesa como funciona el núcleo Linux con mucho detalle pero sin la complejidad que se suele conseguir en otras fuentes, si deseas conocer con mayor profundidad como son los sistemas operativos o eres curioso. Eso si, si no tienes bases en el área evita leer este libro, pues te costará entenderlo y no le sacarás provecho al libro.

 Así que consigue este libro y comienza a estudiar sobre Linux (literalmente).

Clean Code: Libro para desarrolladores

Hace unos meses terminé de leer Clean Code, un libro recomendado en un artículo de Mundo Geek titulado 10 libros míticos sobre programación que todo desarrollador debería leer.  se enfoca hacia el programador y no al resto de tareas, por lo que si no son desarrolladores este libro no es para ustedes.

De hecho, al principio advierte sobre el uso de ejemplos usando porciones de código: recomiendan leerlos con calma hasta entenderlo correctamente, comparar modificaciones realizadas con el original y otros. Por mi  parte, me pareció muy interesante pues uno aprende a reconocer fácilmente errores cometidos y ver como se deberían hacer, además los ejemplos suelen estar en varios lenguajes de programación entendibles por cualquier profesional, pero si no te gusta programar este libro no es para ti.

El libro está divido en capítulos, en cada uno de ellos, se habla de un tema en específico como funciones, comentarios, objetos y estructuras, entre otros. Por ejemplo, el de comentarios (uno de los que mas me gustó) expresa como se debe documentar el código, casos en los que no es necesario, métodos, uso de Javadoc, ejemplos de malos comentarios y mas.  El de funciones explica los casos en que se deben crear funciones, como nombrarlas, casos en los que deben crearse funciones y mas. En otras palabras, solo se habla de un tema y se explica todo lo que se puede de él, al pasar a un nuevo capítulo se repite el mismo proceso para el nuevo concepto.

 

Portada de Clean Code

Portada de Clean Code

Un aspecto interesante, es como el autor logra explicar muchos conceptos de desarrollo de software o programación usando ejemplos de la vida cotidiana, por ejemplo, analogías de mantenimiento de la limpieza / mantenimiento de ventanas de un edificio con el mantenimiento de un sistema. Así que no deben ser unos estudiados en el tema para entenderlos, cualquier persona con una vida normal los entenderán (tal vez existan programadores que no han visitado un taller o han visto un edificio).

Es un buen libro, no me pareció muy bueno como Code Complete o The Pragmatic Programmer, pero se los recomiendo si son programadores, aprenderán nuevas técnicas, formas de escribir mejor código y mas. También al igual que con otros libros mencionados en este blog, opino que todo profesional debe leerlos cuanto antes para mejorar su forma de escribir código.

Hace 2 años en esa fecha: Doom Live Wallpaper

Ghost in the Wires: Las historias de hacking de Kevin Mitnick

Si has estado en el mundo de la seguridad informática seguro conoces a Kevin Mitnick, si no, te recomiendo leer sobre el hacker mas famoso de todos los tiempos por ser el primero en aparecer en la lista de los 10 mas buscados del FBI.

Su libro “Ghost in the Wires” narra, toda sus actividades de hacking desde los inicios hasta que se cambió al bando de la seguridad informática. Lo interesante de esta historia, es el hacking en la era pre-internet (como la conocemos) pues narra y explica sus hacks (o phreaks) a las líneas telefónicas, como logró tomar poder se de switches, hacer llamadas a donde quisiera, clonar líneas telefónicas, entre otros. Para la gente de nuestra generación que conoce el hacking sólo a través de Internet, les gustará conocer el pasado de como se hacía todo esto a través de las líneas telefónicas.

Ghost in the wires

Portada del libro

La narración me parece normal, el libro se pone interesante dependiendo del tema que se esta leyendo, hay partes aburridas pero otras buenas, podemos decir que tiene sus altos y altibajos. Para los amantes de la ingeniería social, les gustará ver como Mitnick lograba engañar a las personas y tener control sobre ellas para pedir cualquier tipo de información interna, logrando ahorrarse gran parte de encontrar vulnerabilidades en los servidores, para los phreakers encontrarán mucha información sobre como se hacían los ataques a las líneas telefónicas y para los hackers pues como estudiaba la infraestructura de la empresa para encontrar una vulnerabilidad y aprovecharla.

Al final de leer el libro, aprenderán como en la vida se tiene altos y bajos, como él para llegar a la fama y reputación actual pasó por muchas situaciones difíciles y el castigo que se aplica a los crackers. También una vez conocida la historia, al ver la película “Operation Takedown” de nuevo, se darán cuenta que no se acerca a la vida real todo es una historia paralela creada por  Tsutomu Shimomura.

Realmente les recomiendo leer este libro si son fanáticos de Kevin Mitnick, del hacking y de la ingeniería social. La versión física incluye unas fotos de Kevin, Lewis y Eric. De resto no le veo ninguna diferencia con respecto a la versión digital.

 

La biografía de Steve Jobs

Después de un mes leyendo este libro, puedo decir que valió la pena el tiempo y dinero invertido en él. Primero quiero aclarar que no soy fan de Apple, soy mas de: apoyar el código abierto, tecnologías y estándares abiertos, usuario de Android y GNU/Linux. Sin embargo desde mis inicios en las tecnologías de la información siempre me llamó la atención el trabajo de Steve Jobs y por eso no podía pasar la oportunidad de comprar este libro.

Para comenzar, Walter Isaacson hizo un buen libro donde narra la vida de Steve Jobs basando en entrevistas con muchas personas que apreciaban y/o odiaban a Jobs, por ello no van a encontrar puros jardines de rosas (cosas positivas) sino también cosas malas y el lado oscuro de Steve, incluso escribe sobre momentos sentimentales, intímo, problemas que sufría y que nunca salieron a la luz durante su vida. Además el libro se separa en capítulos por cada parte de su vida y productos desarrollados, es bien porque va avanzado cronológicamente respecto a un tema y en el próximo se regresa otra vez en el tiempo para hablar de otro, mucha gente puede perderse respecto a la línea de tiempo pero no respecto a un tema pues no los mezcla ( me parece mejor esta forma ).

Respecto a la biografía, luego de leerla puedo apreciar mas la película de “Piratas del Sillicon Valley” porque es muy fiel a la realidad, también puedo reafirmar que Steve Jobs era un genio, no inventando cosas sino saber aprovechar las situaciones para generar ideas innovadoras y hallar mercados futuros, es decir, su mayor don era predecir el comercio/mercado en unos años y adelantarse a él creando esos productos.

También me impresionó como fué el desarrollo de MacOs, realmente muy avanzado en su lanzamiento y como algunas de sus funcionalidades fueron implementadas hasta 15 años después en los softwares de la competencia. Como su perfeccionismo junto a su política de ser cerrado (en cuando a la tecnología de sus productos) permitió elaborar productos de gran calidad pero a veces sacrificando fallos importantes (como la antena en el iPhone 4).

Existen muchas partes interesantes fuera de Apple, como los capítulos donde se escribe sobre Pixar, como funciona los negocios y como es montar una empresa como lo fue NeXT, la industria musical, etc. La parte final donde habla sobre sus últimos días es interesante, sobre todo (SPOILER) cuando Bill Gates lo visita para hablar y hacer “las paces”, realmente no me imaginé y nunca leí sobre ese acontecimiento (FIN SPOILER), también sobre su rivalidad con Google luego de lanzar Android, entre otros.

Portada del libro

Portada del libro

Seas fanático de Apple o no, si deseas ser un emprendedor en la industria de la informática, te gustaría conocer parte del historía de la informática. Te recomiendo leer este libro, es un poco largo pero no aburre. Me gusto una frase que dijo Jobs sobre su vida, fue una persona con suerte que supo aprovecharla y con eso logró grandes cosas, al leer te das cuenta de su suerte/visión y como pudo crear una empresa tan famosa.

Además, con este libro podrán tumbar su mito de que Steve Jobs lo inventó todo y todo era parte de sus ideas, en realidad el sólo era parte de un proceso de creación pero el mas importante, pues sin él, el mundo sería otro.

Pueden conseguir el libro en su librería local o en Amazon. La versión física no es tan elaborada y las fotografías que incluyen son en blanco y negro, por ello no se pierden de nada si compran la versión digital.

Code Complete: Excelente libro para toda persona involucrada en el desarrollo de software

Hace unos días logré luego de unos meses terminar este libro tan largo pero muy valioso. Empecé a leer este libro por un artículo que vi por ahí donde recomendaban 10 libros indispensables para el desarrollo de software, este fué el segundo que escogí para leer y realmente me gustó porque cubre todo los aspectos del desarrollo de software: recolección de datos del cliente, diseño, arquitectura, desarrollo, pruebas, mejoramiento de procesos, trabajo en equipo, y mas.

A diferencia de “El programador pragmático“, Code Complete esta enfocado no solo a desarrolladores sino a cualquier persona que trabaje en esta rama, tiene capítulos dedicado al puro diseño del software, otros a diseño de interfaces gráficas, otro a como trabajar en equipo y tratar con los clientes. Sin embargo, si eres programador o desarrollador este libro es obligatorio que lo leas, te enseña a como programar mejor con ejemplos de código, como realizar pruebas automatizadas para mejorar tu productividad, como hacer código mantenible y entendible, selección de herramientas y tecnologías, etc.

Portada de Code Complete

Portada de Code Complete

Realmente vale la pena leer el libro, son casi 1000 páginas pero cada una de ellas lo vale. Incluso si dominamos los temas expuestos allí sirve de repaso volver a leerlos, o como me pasó a mi en muchos capítulos de temas que “conocía”: aprendí nuevas cosas y aprendí a mejorar hábitos existentes. Si eres una persona graduada o con experiencía en desarrollo de software, debes leer este libro de lo contrario es mejor esperar porque el libro exige tener cierta experiencia, para alguien nuevo puede ser muy útil pero mas difícil de comprender el contenido.

Aquí les dejo la página oficial del libro donde pueden encotrar información para comprarlo: http://cc2e.com/

Hace 2 años en esa fecha: Cambios en el blog