The KDE LaKademy 2014 experience – São Paulo, Brazil.

Long time without posting :)

Well, from August 27th to 30th, KDE contributors met in LaKademy (Latin American Akademy).  We got together in São Paulo, Brazil and the meeting took place in the Free Software Competence Center (CCSL) at University of São Paulo (USP).

It was my third time in Brazil and was great to meet again with my KDE Brazilian friends and learn more about the KDE community. Besides discussing about KDE applications, frameworks, technologies, projects… we had some really interesting talks and hacking sessions of course.

KDE - LaKademy

KDE - LaKademy

As usual, we enjoyed some beers everyday and visited the Garoa Hacker Clube, one of the most important Hacker Spaces in São Paulo. These guys use full Open Source, software and hardware… Continue reading “The KDE LaKademy 2014 experience – São Paulo, Brazil.”

Lakademy 2014 – KDE América Latina

Lakademy 2014 - KDE

Del 27 al 30 de agosto se realizará el 2do  LaKademy – Akademy de América Latina, el encuentro de usuarios y colaboradores latinoamericanos de KDE, una de las comunidades de software libre y código abierto, más grandes del mundo.

El evento se realizará en São Paulo – SP – Brasil, en las instalaciones del CCSL – Centro de Competência em Software Livre do IME-US. La región es de gran importancia para el proyecto, pues cuenta con una gran comunidad de desarrolladores y usuarios. Diversas empresas y gobiernos utilizan, desarrollan y adoptan políticas para el uso de software libre, y mucho de este software es desarrollado por KDE… Continue reading “Lakademy 2014 – KDE América Latina”

Coders at Work by Peter Seibel

Coders at Work

Today, I finished reading the book Coders at Work by Peter Seibel and I found it really enjoyable. Coders at work is a series of interviews with great programmers and computer scientists. If you are somehow a technical person, needs some inspiration or just aspire to be better, I highly recommend you the book.

You will find information about their careers, their thoughts on the software profession and industry and how they consider programming. Programming is art, craftsmanship, science or engineering?.

They also talked about code readability, debugging strategies, testing, language design, job interviews, computer science books worth reading, teamwork, problems at work, how they got into programming and even hobbies.

Here is the list of the fifteen people interviewed. I summarized their main contributions and creations… Continue reading “Coders at Work by Peter Seibel”

Recordando a Aaron Swartz

AARON SWATZ

Después de ver el documental sobre “The Pirate Bay” me acordé de Aaron Swartz y lo que he aprendido de él.  He decidido escribir un poco sobre su vida, asi que me gustaría compartir esto contigo.

Así como cuando se va un gran músico, un escritor, un artista o deportista y se siente tristeza, pasa lo mismo en el mundo de la cultura libre, Internet y en el mundo hacker.  Cuando se va una mente brillante como Aaron, además de sentir una enorme tristeza, te empiezas a hacer muchas preguntas como:  ¿Por qué tanta injustica?,  ¿Quién quiere frenar la libertad en Internet?,  ¿Por qué la “mayoría” de políticos apestan?,  ¿Las leyes son creadas por humanos o por criaturas sin capacidad de razonamiento?,  ¿Cómo funciona el cerebro ante la depresión?,  ¿Cómo se puede evitar un suicidio?, ¿Qué hago yo por hacer respetar los derechos de las personas?…

Continue reading “Recordando a Aaron Swartz”

Experiencias en Latinoware 2010 – Brasil

Al fin me di tiempo para postar mi experiencia en Brasil en el Latinoware 2010 y contar también mi primer contacto KDEero fuera de Perú.

Antes que nada quisiera agradecer al equipo organizador de Latinoware por el sponsor del viaje/hospedaje/food al evento, la atención brindada y la amabilidad de parte de ellos que fue simplemente sensacional, no hay nada que decir la gente en Brasil es cool, por naturaleza muy amical, acogedora y con gran sentido del humor (Bueno hay pequeñísimas excepciones). Un agradecimiento especial a César Brod y Sandro Andrade por su apoyo incondicinal en todo momento.

Latinoware es una de las conferencias de Software Libre más grandes de Latinoamérica.  El evento se realizó este año del 10 al 12 de noviembre, recibió cerca de 3125 personas de 20 países, hubieron 160 ponencias y 20 minicursos. En definitiva, fue una gran fiesta para compartir, conocer, aprender e intercambiar experiencias acerca del uso del SL en América Latina.

Latinoware, como desde sus inicios en 2004, es celebrado cada año en la ciudad de Foz de Iguazú, específicamente en el Parque Tecnológico de Itaipú. El PTI es un lugar donde se encuentran alojadas varias empresas  que desarrollan grandes proyectos y servicios orientados netamente al área tecnológica. Lo interesante del PTI es que 90% de su infraestructura TI està basada en SL, un ejemplo a seguir.

PTI

Tuve la mala suerte de perderme el primer día del evento porque llegando a Lima tuve un dolor de cabeza insoportable que me llevó a hacerme atender, así que tuve que postergar el vuelo. Y finalmente el día miércoles 10 después de 8 horas de vuelo, Cusco-> Lima-> Sao Paulo-> Foz de Iguazú pude llegar a mi destino sin problemas.

Aquí ya recuperado y listo para viajar.

Ronny Yabar

Los intervalos de tiempo entre los vuelos eran muy cortos, así que no había mucho tiempo para salir de los aeropuertos. Llegando a Sao Paulo, tenía solo 5 horas y luego salía a Foz. Si le quitamos 2 horas de las enormes colas para presentar docs, embarcar, me quedaban 3 , así que me fui a dar un par de vueltas haber si encontraba algo interesante y bueno paseando por el aeropuerto tomé un par de fotos.

Continue reading “Experiencias en Latinoware 2010 – Brasil”

KDE talk at LinuxWeek – Lima, Peru

LinuxWeek is a well-known event here in Lima/Peru organized by the PUCP (Pontificia Universidad Católica del Perú). The event consists of one week talks about Free and Open Source Sofware, Linux (Well GNU/Linux) and tendencies/new projects in the FOSS world.

I gave a talk that was divided in three parts: An introduction to KDE Community, the power of Qt and an overview of the KDE Games along with the new interesting Game project called Gluon.

You can see all the program here. There are slides and videos available. It was a pleasure to be there and talk about the coolest community and software project in the world :)

Update:

I uploaded the slides to my Slideshare account. Various points in this talk are still valid today:

 

Como ser desarrollador de KDE

Bueno ya que hace poco empecé a involucrarme en el desarrollo de KDE y ya me está yendo bien, quisiera compartir con los programadores latinos, gente de Perú e interesados en general, cómo es el proceso para convertirse en desarrollador de KDE.

Es importante aclarar que estoy en camino de ser desarrollador de KDE, simplemente deseo trasmitir mi experiencia y lo aprendido hasta el momento. Cualquier mejora o aporte a esta guía es bienvenido.

Hay distintos caminos para llegar a este objetivo, y es más, hay gente que ha escrito al respecto como:

The Road to KDE Devland (6 series)
The Road to KDE and Qt Development

y de la web oficial:

Becoming a KDE Developer

Hay muchas cosas en común en esos caminos y básicamente la idea es la misma.

He tratado de ser lo más breve posible y decidido escribir mi pequeña guía “Como ser desarrollador de KDE” en español, pues se que, como yo alguna vez, hay muchos hispano hablantes que desean contribuir a KDE y no tienen alguna idea de cómo empezar. Espero profundizar y continuar esta guía más adelante.

Ojo, hay muchas maneras de contribuir a kDE como arte, documentación, traducción, promoción, reportando fallos, etc. Ahora me voy a enfocar sólo en el desarrollo, ahí vamos:


Cómo ser desarrollador de KDE

Contribuir con el desarrollo de KDE, es uno de los aportes principales a la comunidad y al proyecto. Es una experiencia enriquecedora que te va a permitir compartir, extender tus conocimientos y aprender a trabajar en equipo.

Si eres un estudiante o profesional de la computación, te gusta la programación y el desarrollo de software, deseas participar en proyectos reales y pertenecer a una comunidad internacional de desarrolladores y gente creativa, si es así, entonces estás en el sitio correcto.

Para ser un desarrollador de KDE necesitas aprender lo siguiente:

Está demás decir que debes de tener un nivel aceptable de Inglés, pues la comunicación se realiza en este idioma.

C++

C++ es un potente lenguaje de programación orientado a objetos, diseñado para muchos propósitos, muy usado en la computación gráfica y desarrollo de juegos.

KDE está mayormente escrito en C++. Entonces si no sabes C++, tienes que aprenderlo. Hay muchos libros y excelentes recursos en internet sobre C++. Un gran libro es “Pensando en C++” de Bruce Eckel que también está disponible como libre descarga en castellano. Es imprescindible que aprendas todos los fundamentos de C++ antes que empieces con KDE.

Qt

Para ser un desarrollador de KDE, debes aprender Qt. Qt es una biblioteca multiplataforma escrita en C++ para desarrollar aplicaciones gráficas y también para desarrollar programas sin interfaz gráfica como herramientas de consola y servidores.

Si no estás familiarizado con Qt, puedes ver la documentación oficial de Qt y desarrollar los tutoriales incluidos ahí.

Si prefieres aprender Qt mediante la lectura de un libro tradicional, mira la página de libros acerca de Qt. Algo importantísimo es que aprendas el concepto y la aplicación de Signals and Slots, es fundamental en todas las aplicaciones construidas con Qt.. Básicamente, es un mecanismo de comunicación entre objetos.

KDE

Un punto de partida para empezar a desarrollar en KDE son los tutoriales del sitio oficial. Lo primero que debes revisar es la sección Introducción a la programación en KDE4.. Empiezas con un Hola Mundo, luego a crear ventanas, después añadir acciones, barras, menús y así vas desarrollando paso a paso.

También encontrarás información útil sobre el desarrollo de KDE en la sección de Preguntas Frecuentes.

Otro recurso valioso para desarrollar es la API (Interfaz de programación de aplicaciones) de KDE. Allí encontrarás excelente documentación de clases, métodos y funciones de las librerías y aplicaciones de KDE.

Después que tengas una base de conocimientos en C++, QT y KDE, entonces ya puedes empezar a desarrollar para KDE, pero antes necesitas aprender lo siguiente:

Una vez que hayas compilado la última versión en desarrollo, configurado tu ambiente de desarrollo y realizado tus primeros tutoriales de programación en KDE, quiere decir que ya estás preparado para dar los primeros pasos.

Tienes que tener paciencia, automotivarte y sentir pasión por lo que haces. La comunidad KDE es sensacional y el software que produce es de alta calidad. No todo cae de la noche a la mañana, entonces con trabajo constante, poco a poco verás los frutos de tu esfuerzo.

Bueno, entonces llegó la hora que empieces a escribir código para algún proyecto dentro de KDE. Claro que puedes desarrollar tu propia aplicación, pero se recomienda que antes intentes involucrarte con uno ya existente para que entiendas mejor como funcionan las cosas internamente, aprendas del código de otros, veas como es la organización y el trabajo en equipo.

Puedes ver todo el código de KDE directamente desde el navegador en WebSVN para que explores las aplicaciones y/o librerías que forman parte de KDE.

Puedes descargarte el código de una aplicación/librería con el usuario anónimo de subversion. Obviamente haz tenido que instalar antes subversion. Por ejemplo, con el siguiente comando me descargo kdelibs, que son las librerías básicas de KDE.

svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdelibs

Una breve explicación de los directorios y subdirectorios principales:

Branches: Es donde están las distintas versiones de KDE, incluyendo lo que será la próxima revisión de la versión actual de KDE.

Trunk: Es donde se lleva a cabo el desarrollo de la rama principal de KDE, es decir, lo que será la próxima versión de KDE.

-KDE
——kdelibs: Librerías críticas de KDE.
——kdebase: Dividido en 3 partes.
———apps: Aplicaciones que forman parte de la distribución principal de KDE como Dolphin, Kate, Konqueror.
———runtime: Cosas necesarias para todas las aplicaciones KDE en tiempo de ejecución y una dependencia requerida.
———workspace: Cosas específicas de KDE, como Plasma o el gestor de ventanas.

——kdeartwork: Trabajo artístico, diseño gráfico, íconos, sonidos, temas, fondos de pantalla.
——kdeedu: Aplicaciones educativas.
——kdegames: Juegos.
——kdegraphics: Aplicaciones gráficas.
——kdemultimedia: Reproductores de audio y video.
——kdepim: Aplicaciones de manejo de información personal.
——kdepimlibs: Librerías usadas por las aplicaciones kdepim
——kdeplasma-addons: Aplicaciones, tecnologías de Plasma como applets, dataengines, runners.
——kdeutils: Utilitarios para KDE.
——kdewebdev: Aplicaciones para desarrollo web.

-extragear: Aplicaciones que usan las librerías y estásn relacionadas con KDE, pero no forman parte de la distribución principal de KDE.

-koffice: Suite Ofimática de KDE. Tienen sus propias fechas de liberaciones.

-playground: Aplicaciones en estado alpha. Pueden compilar, pero carecen de estabilidad, robustez, internacionalización, usabilidad, arte, en fin, no están maduras para el usuario final.

-kdereview: Cuando una aplicación de playground alcanza cierta madurez y estabilidad, se mueve a kdereview para darle los toques finales y sea revisada profundamente por los desarrolladores para que alcanze un nivel óptimo. Después de kdereview pasan a formar parte de la rama principal de KDE.

-kdesupport: Librerías/software necesario para compilar KDE.

-l10n-kde4: Archivos de traducción de KDE a muchos idiomas.

-www: Aquí se encuentran los archivos, imágenes que pertenecen a las páginas web de KDE.

Elige una aplicación de tu agrado que te gustaría hacerle algún cambio, agregarle una nueva funcionalidad.

Normalmente los desarrolladores dentro del directorio de su proyecto tienen un archivo llamado TODO, donde está la lista de tareas por hacer, un README con la descripción de la aplicación y un archivo HACKING que explica los lineamientos para desarrollar en ese proyecto.

Aparte de agregar una característica a una aplicación, también puedes corregir un fallo. Los fallos se reportan en el Sistema de búsqueda de fallos de KDE, llamado bugs.kde.org.

Desde bugs.kde.org puedes filtrar los fallos existentes en la aplicación que escogiste y ver cuales aún no están resueltos. Escoge uno y trata de resolverlo.

Otra opción para empezar con el desarrollo en KDE, es realizar algún Junior Job, (Tarea o trabajo pequeño). Los Juniors Job son trabajos muy sencillos que necesitan realizarse en las aplicaciones. Normalmente los desarrolladores suben Juniors Jobs a bugs.kde.org para obtener nuevas contribuciones e involucrar a la gente recién iniciada en el desarrollo de KDE. Puedes ver la lista de Junios Jobs aquí.

Sea que haz corregido un fallo, haz agregado una nueva característica, funcionalidad o haz hecho un Junior Job, debes de enviarles tus cambios al desarrollador(es). O mejor dicho, tienes que enviar tus parches.

Un parche consta de cambios que se aplican a un programa, para corregir errores, agregarle funcionalidad, actualizarlo, etc.

La mayoría de proyectos en KDE usan un sistema web llamado Review Board que permite manejar los parches de manera mucho más eficiente. Te registras y envias tu(s) parche(s) a la aplicación que escogiste.

En caso, la aplicación que estás modificando no use Review Board, tienes que enviar tus parches por email al desarrollador o a la lista de correo del proyecto. Debes de enviar tus archivos en un formato que el desarrollador vea los cambios que haz realizado de manera rápida. Para ello existen dos comandos Unix/Linux que te van a ser muy útiles: diff y patch.

Un ejemplo sencillo, imagina que tienes 2 archivos (original.cpp y nuevo.cpp), deseas ver la diferencia entre ambos y generar otro archivo. El comando sería:

diff -u original.cpp nuevo.cpp > miparche.patch

Enviándole el archivo miparche.patch al desarrollador le haces la vida más facil porque puede ver y aplicar tus cambios rápidamente. No importa el tamaño de tu parche, así solucione algo pequeño, pero útil será bienvenido, de lo contrario será rechazado por diversas razones. Entre ellas que quizá no sigues los estándares del código de la aplicación, no resuelves el problema o te faltan pequeños detalles que corregir. Si hay algún problema con tu parche, el desarrollador te lo hará saber y te dirá que le falta para que sea aplicable.

No tengas miedo, los desarrolladores de KDE, son seres humanos y muy buenas personas que muestran mucho respeto por el trabajo de otros y están dispuestos a ayudarte a resolver problemas o guiarte con la solución.

Pero, sea cual sea la respuesta del desarrollador, igualmente muestra respeto y sigue investigando cómo puedes mejorar.
Hay maneras y maneras de decir las cosas. Por eso, es importantísimo que sigas el Código de Conducta de la comunidad KDE.

Bien ya enviaste tus cambios, fueron aceptados, ya te sientes parte de la comunidad y crees que haz cambiado el mundo.

Ahora tienes que solicitar una cuenta subversion en KDE (KDE SVN account). Subversion es el sistema de control de versiones con el cúal trabaja actualmente KDE, posteriormente se cambiará a Git.

Cualquiera que ya haya hecho algún trabajo en KDE puede aplicar a una cuenta svn. Con una cuenta svn podrás aplicar los cambios tú mismo al proyecto, en vez de estar enviando parches y quitarle tiempo a los desarrolladores.

Lee esta guía de como solicitar una cuenta svn. Si tu solicitud fue aceptada, entonces lo siguientes es leer Los primeros pasos con tu cuenta KDE svn.

Una vez que tengas tu cuenta svn y haz leído lo primero que debes de hacer con ella, bien ya puedes trabajar directamente en el proyecto con subversion.

Para descargarte el código de un proyecto y tener una copia local del mismo (checkout), ssh es lo más óptimo:

svn co svn+ssh://tuusuario@svn.kde.org/home/kde/ruta/a/la/aplicacion

En mi caso cuando descargué el juego que empecé a modificar:

svn co svn+ssh://ronnyy@svn.kde.org/home/kde/trunk/playground/games/pege/

Ahora, ingresa al directorio del proyecto que te bajaste:
cd proyecto_kde

Para ver el estado del proyecto, los archivos que han sido agregados, modificados, eliminados:

svn status

Realiza tus cambios y haz tu primer commit:

svn ci -m “My new feature / Fixed bug description.”

Para ver todos los cambios que hiciste dentro de un directorio y generar un archivo .diff

svn diff –diff-cmd diff -x -uw > ~/patch.diff

Para estar al día y actualizado con los últimos cambios que se hicieron al código.

svn up

Son algunos comandos básicos de subversion, puedes encontrar muchos tutoriales y how-tos en la web donde encontrarás mucha más información.

Finalmente, si haces commits a menudo, participas activamente y das un aporte significativo a algún proyecto, la comunidad te tratará como un desarrollador de KDE, si eso pasa, ya podrás llamarte desarrollador de KDE.

Como ves, ser desarrollador de KDE es un proceso que toma su tiempo. Seguramente en el camino encontrarás obstáculos y te estancarás en alguna parte, pero depende de ti poder superar esas barreras.

Contribuir a KDE te va a dar un prestigio y elevar tu karma en la comunidad Open Source/Software Libre. A la larga, todo esto te dará muchos beneficios sociales, técnicos y probablemente puede cambiar tu vida.

Diviértete, comunica, comparte, aprende, enseña y todo se hará más fácil.

Sitio principal para desarrolladores de KDE
http://techbase.kde.org/Development_(es)

Lista de correo
Si estás interesado en el desarrollo de KDE, estás creando tu propia aplicación y quieres hablar con alguien que hace o está interesado en el desarrollo de KDE en general.

Visita: https://mail.kde.org/mailman/listinfo/kde-devel y subscríbete a la lista.

Canal IRC
#kde-devel en irc.freenode.net

Otros lenguajes de programación

Si te gustaría desarrollar para KDE en otros lenguajes de programación, también tienes otras alternativas.

KDE Y Qt disponen de una serie de bindings y tecnologías para diversos lenguajes de programación, entre los principales tenemos a Python, Ruby y Javascript:

Python

Ruby

Javascript

My KDE life started

KDE Community

KDE is the community and the Open Source/Free Software project that I always wanted to be part of. I am a KDE user for about 3 years and enjoy using KDE applications everyday. I use Kate for web development, can’t live without Amarok, Dolphin, Kaffeine, digiKam, Kopete, Konversation and Konsole obviously.

Unfortunately, I haven’t had enough time to contribute to KDE in a real way due to other responsibilities. I just blogged a little about KDE, shared Kubuntu and OpenSuse CDs with some friends and adapted a small script to add Peruvian radios in Amarok. No more.

But, I am following the KDE development since the 4.0 times reading the dot.kde.org and planet.kde.org and all articles around the web about KDE development. I think is time to give KDE a real contribution. Why?

Simple, I love the KDE community. These people have fun creating things and software, really smart, creative, friendly and with great passion for what they do. That is really encouraging for me.

In my case, I want to develop and promote KDE. I think is better to start contributing to an existing project to see how all this works, have a good understanding of the KDE platform and then write your own application.

I have some knowledge of C++, learned the principles of QT and checked the KDE examples at Techbase. Also, I set up my KDE development environment. So, I felt ready to start and took a look at many KDE apps/projects and see where I can get involved. Finally, I decided to start with KDE games. I enjoy playing KSudoku, Palapelli and KPat. (Didn’t try the others yet).

Well, I picked up a game from playground called Peg-E, an implementation of the game Peg solitaire (also known as Hi-Q). The game consists of jumping over pieces in order to remove them from the board. The goal is to remove all pegs but one. Peg solitaire at Wikipedia:

Playground is the section in the KDE source code repository where live KDE applications in alpha version. Many of those applications compile, but they lack of stability, international support, artwork and are not ready to use for the masses.

This game was abandoned for about 8 months. I compiled, become addicted and started hacking on it. I had to study libkdegames which is a library used for games in KDE. The first thing I did was to add difficulty levels, a timer, highscores and follow the KDE coding style. After that, I sent the patches to the developer (Graeme Gott) and requested him the maintainership of the game. The developer answered me that KDE is not a good fit for him, and accepted me to be the maintainer (Thanks a lot Graeme), but I have to change the name of the game because he has a pure QT version called Peg-E and users can be confused. The game name probably will be KPeg.

Then, I applied for my KDE svn account attaching the patches and happily, after some hours, my svn account was created and I made my first commit. Now, if everything goes fine this game will be part of KDE games for the KDE SC 4.5 release. I’ll work hard on it and sure I’ll learn much more about programming and games development.

I am impressed about the interesting algorithms and math behind the Peg Solitaire. That’s why I choose it. The game looks relatively simple, but it is very difficult to leave only one peg. There are many competitions around the world and papers about how fast and efficient you can be to solve a Peg solitaire. Well, I created my TODO list and currently reading some technical articles about the game.

That’s how my KDE life started and now I am happy of being part of the KDE community. Of course, I will write all my progress about the development of the game and my new adventures in the KDE devland.

I am preparing more posts about KDE and have a surprise for you: Peruvian KDE users/developers.

So, Stay tuned.

¡Grande BarCamp Lima!

Que linda experiencia, lindo día, no sé como describirlo, pero el 1er BarCamp Lima para mi fue, simplemente, de puta madre. Un evento que definitivamente debe repetirse, me encantó los pequeños debates que se armaban mientras alguien exponía, la informalidad, la colaboración, el espíritu Open Source, charlas interesantísimas.

Aprendí muchísimo de temas de los cuales tenía muy poco conocimiento, como por ejemplo, Computación en la nube (Cloud Computing) y también temas que me apasionan, como programación en la web.

Y claro, también hice unos cuantos amigos e intercambié un par de ideas con varios de los geeks presentes. Felicitaciones a todos los organizadores, colaboradores, participantes y a todos los que hicieron de esto un gran día.

Aquí exponiendo sobre mi participación en el Google Summer of Code 2008 y mi experiencia Ruby on Rails:

Ronny Yabar - BarCamp, GSoC

¡Salud por el BarCampLima!

BarCamp Lima 2008

Si señores, se viene el 1er BarCamp Lima este 8 de noviembre, el cual no me pienso perder por ninún motivo. Ya estoy haciendo mis maletas. Así que me voy al barcamp a encontrarme con toda esa gente geek. Creo que estoy en racha de viajes, proyectos, me encanta esta vida. Será Dios?. No creo.

Un BarCamp es una reunión abierta, libre y flexible, que tiene como finalidad compartir conocimiento e intercambiar experiencias, y sobre todo buscar la participación de todos los asistentes a fin de interactuar en una verdadera comunidad. En un Barcamp todos participan, todos pueden dar una charla sobre su tema de preferencia. En un barcamp normalmente se habla sobre tecnología, internet. Más info en la Wikipedia.

En el caso del barcamp Lima se tocarán temas como web 2.0, negocios en internet, Open Source. Contará con la presencia de bloggers, desarrolladores, diseñadores, hackers, geeks, fans de Linux y del software libre.

Por mi parte, voy a dar con una charla sobre mi participación en el Google Summer of Code 2008 – Gran oportunidad para comprometerse realmente con el Open Source (Mentores y estudiantes).  Voy a colaborar llevando a una de mis mejores amigas: mi cámara, ah y pizarra y plumones. Y por supuesto que pienso compartir mis pequeñas experiencias, anécdotas  en proyectos web, uso de Linux y también seguramente aprenderé bastante de los demás. Eso es lo bueno de este tipo de charlas: El feedback.

Pueden ver el sitio oficial del evento y la wiki. Entre los auspiciadores, está HP del Perú, que brindará el local con capacidad para 70 personas, así que hay que ir temprano muchachos. Por lo que tengo entendido las inscripciones ya están cerradas.

Felicito a los organizadores, 2 grandes comunidades nacionales la Asociación Nacional De Webmasters Del Perú y el el PLUG por su dedicación, esfuerzo y organizar un evento así en tiempo récord.

Así que nos vemos en el BarCamp Lima y a disfrutar del evento.

What I learned from GSoC?

Google Summer of Code was a wonderful experience for me, I’ll never forget it. I finished my project and that makes me feel great. Getting opinions and feedback from the Open Source community was really special. In general, this is what I learned:

Community:

Improved my communication skills: Doing a project that involves other people means that you have to be clear in your words, be brief but efficient, and most important, make people understand what you are trying to say.

English:

I wrote a lot in English. (My project, IRC meetings, asking in the list, answering questions, etc). Although, English is not my first language I enjoyed having to be clear with my mentor, the OSVDB (Open Sourced Vulnerability Database) developers and the Google group of summer of coders.

Technology

Ruby and Ruby on Rails: This Ruby user’s guide helped me a lot. I haven’t finished it, but I learned a lot about this great language (regular expressions, strings, arrays, iterators, control structures, OOP, classes, methods). And I also do a lot of programing with the ruby on rails framework. I learned how to manage and modified some plugins.

Actually, working with views is not my favorite part of a project. However, CSS work at the end of the project was really fun. What CSS makes is impressive.

Solr: I never ever have worked with a search server. Solr is just amazing – Fulltext search capabilities. I learned how to integrate Solr and the act_as_solr plugin to my Rails application.

Subversion: I learned how to work with this collaboration tool which I consider makes you more productive. However, I had to deal with so many error messages. I need to learn more commands apart from the common ones.

Vulnerability and Patch concepts.

I believe that being an expert in these fields takes his time. I never did a security system and didn’t work with a security team before. But I learned key concepts related to patches and vulnerabilities that helped me a lot to write the code. For example:

  • Vulns classification: Location, Attack Type , Impact, Solution, Exploits.
  • Vulns technical description and how to test a vulnerability.
  • Patch severity: Critical, Severe,important, Minor, Pointless.
  • Security Products: Nikto, Snort and Nessus.
  • What CVE means.
  • How to associate a vuln-patch with a Vendor/Product/Version.

Many lessons learned in these months let me think what I did wrong and what I did well. I feel that  I’m not always as productive as I might like to, my effort changes with the tasks I’m doing.

Once I read some Linus interview in which he said that if you are completely present in a situation and totally focused on something then that something *becomes* interesting, whatever it may be.

So, I think that making your job interesting and fun and get really focused on the problem are the keys to your project success.

Thanks for your visit to the blog. You can follow me on Twitter:

¡Happy Hacking!

Welcome Google Summer of Code

wget http://code.google.com/soc/2008/soc.gz
tar xvzf soc.gz
cd soc
./configure && make && make install

#!/usr/bin/ruby

class SummerofCode
  attr_accessor :words

  def initialize(words = "Happy")
    @words = words
  end

  def welcome
    if @words.nil?
      puts "..."
    elsif @words.respond_to?("each")

      @words.each do |word|
        puts " #{word}"
      end
    else
      puts " #{@words}"
    end
  end

end

if __FILE__ == $0
  soc = SummerofCode.new
  soc.welcome

  soc.words = "Thanks OSVDB"
  soc.welcome

  soc.words = ["Welcome", "Google", "Summer of Code","2008"]
  soc.welcome

end

ruby soc.rb

Happy
Thanks OSVDB
Welcome
Google
Summer of Code
2008
...
...

rails patch_management_portal

These last two months were really exciting:
Researching, reading, writing, talking with mentors, reviewing and reviewing my applications, hanging out in the Gsoc IRC channel, nervous, anxious, refreshing the GSoC page every minute and finally waiting for the final word. ¡Great experience! But, this just starts.

THANKS TO GOOGLE, OSVDB, and folks from the open source community who encouraged, adviced and guided me to participate in this Summer of Code.

I am going to work and code hard to make the best Open Source “Patch Management Software” and give it free (Like in Freedom) to the Information Security World and of course to the Open Source Vulnerability Database.

I dedicate all this effort to my wonderful country Peru and to the women who trust 100% at me: My wifes: Maria, Nadia and Celeste.

Patch Management Portal at Google

 

La Catedral y el Bazar de Eric S. Raymond

Un gran ensayo escrito por Eric S. Raymond, un verdadero hacker y uno de los fundadores del movimiento Open Source. Básicamente Eric, define 2 modelos distintos de desarrollo de software:

El modelo catedral, el cual es usado por la mayoría de empresas desarrolladoras de software (Microsoft, Adobe, etc) un modelo donde nadie puede participar activamente (excepto los responsables de un proyecto), donde todo es cerrado, oculto, secreto y en el cual el proceso de desarrollo e identificación de bugs es mucho más lento.

Y el modelo bazar, el cual es utilizado por la comunidad de Software Libre, Open Source, GNU/Linux. En este método de desarrollo de software, todos pueden participar y ser miembros activos de un proyecto, ya sea realizando traducciones, enviando parches, corrigiendo bugs, añadiendo extensiones, publicando nuevas versiones, optimizando el código fuente, realizando documentación y consecuentemente estas aportaciones conllevan a producir software de alta calidad (Léase Apache, Samba, Firefox, Python, Linux, Emacs, KDE y un largo etcétera).

Mi opinión: El modelo bazar se basa en el método científico, para que reinventar la rueda si hay tanto por descubrir. Este pequeño escrito, me hace recordar la frase de Newton: “Si he visto más allá que los demás es porque me he apoyado en hombros de gigantes”.

Así funciona la ciencia, apoyándose en los que ya avanzaron y desarrolladon algo antes que nosotros. El modelo bazar, tiene una tremenda relación con la teoría del caos, cuanto más desorden, más bulla, más movimiento exista, los problemas serán resueltos más eficientemente.

Aqui el enlace a la Catedral y el Bazar.

Como ser un Hacker

Quiero compartir este escrito “Cómo ser un Hacker” (“Hacker HOWTO”, según el original en inglés), un artículo dirigido a todos aquellos que aspiran a convertirse en “hackers”. Quizá, no estemos de acuerdo, con todos los puntos de vista expresados por uno de los creadores del movimiento Open Source, Eric Raymond, pero hay que reconocer que expresa claramente, la esencia de lo que es un verdadero hacker.

Más que una persona dedicada a programar cosas extrañas y aquella creencia popular, que un hacker es un delincuente informático o cosas por el estilo, ser hacker es toda una filosofía, un estilo de vida, una cultura con espíritu colaborativo y con objetivos de contribuir al conocimiento.

Esta frase ilustra lo que es un hacker, como integrarse a la comunidad y ser uno de ellos:

“Un hacker es aquella persona que le apasiona el conocimiento, descubrir o aprender nuevas cosas y entender el funcionamiento de éstas. Los hackers resuelven problemas y construyen cosas, y creen en la libertad y la ayuda voluntaria mutua. Para ser aceptado como hacker, deberás comportarte como si tuvieras esta actitud en tu interior. Y para comportarte como si tuvieras esta actitud, deberás creerte de verdad dicha actitud.”

Aquí les dejo el link para que se descarguen este gran howto. Compártanlo!