Imaginemos un mundo libre

La paz interior comienza en el momento en el que decides no permitir, que ninguna persona o evento, tome el control de tus emociones.

Archive for the ‘Open Source’ Category

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

leave a comment »

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.

Take a look at this 3D printer printing the KDE logo.

64_

I gave a talk about the amazing KDE Connect.

 

I want to thank the KDE e.V for sponsoring the event and my trip. It’s really important to meet in our region and know better each other, these kind of meetings are really valuable for us.

You can see the full report of the LaKademy here and some pictures to share:

 

See you at next Lakademy!!!

Advertisements

Written by Ronny Yabar

September 26, 2014 at 10:10 am

Lakademy 2014 – KDE América Latina

leave a comment »

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.

El objetivo principal de LaKademy, es realizar un encuentro presencial de esta comunidad de usuarios y colaboradores, posibilitando el intercambio de ideas sobre proyectos e iniciativas entre los diferentes miembros, discutir el futuro de KDE, planificar acciones futuras para KDE en América Latina y, además, presentar el proyecto a nuevos y potenciales colaboradores.

Así que LaKademy, consiste en una serie de actividades como ponencias sobre los principales temas relacionados a KDE, sesiones de hacking para aprender cómo colaborar con código para el proyecto, también reuniones sobre temas específicos y happy hours.

Si vives en Sao Paulo, estás en el mundo del FOSS o te gustaría contribuir, ver el trabajo o unirte a una comunidad internacional como KDE, no pierdas esta oportunidad y participa del evento.

Te puedes registrar desde aquí:
https://br.kde.org/lakademy-2014-register

Written by Ronny Yabar

August 1, 2014 at 12:14 pm

Coders at Work by Peter Seibel

leave a comment »

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.

  • Jamie Zawinski  (Lisp hacker, early Netscape developer, Mozilla contributor, XEmacs and XScreenSaver creator ).
  • Brad Fitzpatrick  (Memcached, LiveJournal, Perlbal and MogileFS creator, Engineer at Google working in the Go programming language).
  • Douglas Crockford  (Ex JavaScript Architect at Yahoo,  JavaScript Architect at PayPal,  JSON creator, “JavaScript: the Good Parts” book author.)
  • Brendan Eich  (JavaScript creator,  CTO at the Mozilla Corporation).
  • Joshua Bloch  (Ex Java architect at Google, Ex engineer at Sun Microsystems, “Effective Java” book author,  Java Collections framework creator).
  • Joe Armstrong  (Erlang and Open Telecom Platform creator).
  • Simon Peyton Jones  (Haskell programming language co-creator, architect and lead developer of the Glasgow Haskell Compiler).
  • Peter Norvig  (Director of research at Google, ex head of the Computational Sciences Division at NASA,  JScheme co-creator).
  • Guy Steele  (Common Lisp dialect and Scheme programming language co-creator,  “The Hacker’s Dictionary” book author).
  • Dan Ingalls (Smalltalk designer and exceptional contributor, Squeak co-creator, Lively kernel creator, Ex distinguished Engineer at Sun Microystems).
  • L Peter Deutsch (Lisp hacker, Ex Chief Scientist at PARC, Ghostscript creator).
  • Ken Thompson (Unix co-inventor, Bell Labs,  B programming language creator,  UTF-8 encoding definition, Distinguished Engineer at Google, Go programming language co-creator).
  • Fran Allen (Ex programmer at IBM Research,  Compiler expert, first woman to win the “Turing Award”,  Fellow of the IEEE, IBM and ACM).
  • Bernie Cossel  (Ex MIT and BBN great programmer, Arpanet IMPs designer, DOCTOR creator, master debugger).
  • Donald Knuth (“The Art of Computing Programming” author, TeX and MetaFont creator, Computer Science major contributors).

If I had time, I will be writing the most interesting things they said. For now, I will write some quotes from Brad Fitzpatrick, one of the interviews that I really liked the most. He’s really funny and a common-sense person. Here we go… Read the rest of this entry »

Recordando a Aaron Swartz

leave a comment »

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?…

Read the rest of this entry »

Written by Ronny Yabar

March 12, 2013 at 4:52 am

Experiencias en Latinoware 2010 – Brasil

with 3 comments

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.

Read the rest of this entry »

Written by Ronny Yabar

November 23, 2010 at 6:57 pm

KDE talk at LinuxWeek – Lima, Peru

leave a comment »

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:

 

Written by Ronny Yabar

March 30, 2010 at 8:56 pm

Como ser desarrollador de KDE

with 3 comments

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

Written by Ronny Yabar

January 12, 2010 at 10:34 am

Posted in KDE, Open Source