cómo colaborar en gnome
Post on 08-Jul-2015
1.242 Views
Preview:
DESCRIPTION
TRANSCRIPT
Cómo colaborar en
Juanjo Marín
Fase Final del IV Concurso Universitario de Software LibreCádiz, 14 de mayo de 2010
Tradicionalmente los proyectos universitarios parten de cero y se desechan tras su finalización. Crear un comunidad es una árdua tarea:
Gran parte del tiempo se consume en el desarrollo
Se necesitan habilidades especiales para recrutar, motivar y gestionar una comunidad
Según sourceforge.net el 68% de los proyectos solo tienen un contribuidor y el 15% sólo dos.
versus
Videos proyectos finalistas IV CUSL proyectos de GNOME > GNOME shell > Evince
Mi experiencia con GNOME
- En concreto me “enrolé” em uno de sus subproyectos, Evince, el visor de documentos.
- Mis primeras contribuciones en GNOME fueron para mi PFM del Master Software Libre de la UOC.
Problemas inicialesProblemas iniciales
Definir los objetivosDefinir los objetivos
““Scratch your personal itch” suele funcionarScratch your personal itch” suele funcionar
Calcular el tiempo necesario para su ejecuciónCalcular el tiempo necesario para su ejecución
Enfrentarse a código fuente hecho por otrosEnfrentarse a código fuente hecho por otros
Tu trabajo necesita ser revisado por otros para su aceptaciónTu trabajo necesita ser revisado por otros para su aceptación
Manos a la obraManos a la obra
Hay que aprender una nueva plataforma
Para arreglar un bug o añadir una nueva funcionalidad hay que comprender el código existente
El importante respetar el “Coding Style” para trabajar en comunidad
Los parches más simples son más fáciles de aplicar y se aplican antes
Es posible que tengas que interactuar con otros proyectos
GNOME 3is made of easyLo que está por venir
Una plataforma más sencilla y Una plataforma más sencilla y “limpia”“limpia”
GOBJECT Introspection GOBJECT Introspection
foo.hfoo.c + Anotaciones (metadatos)
foo.gir (xml)
girscanner
gircompiler
foo.typeliblibfoo.so
libffi.so libgirrepository.so
Bindings (Vala, Gjs, Seed, PyGI, rubygirffi, ...)
gcc
Arquitectura de GOBJECT Introspection
/** * nombre_funcion: (annotacion1) (annotacion2) * * @primer_param: (annotacion1) (annotacion2) (...): documentacion 1er parametro * @segundo_param: (annotacion1) (annotacion2) (...): documentation 2º parametro * * Returns: (annotacion1) (annotacion2) (...): Documentacion salida funcion */
/** * mylib_get_constant1: * * Return value: (transfer full): a constant, free when you used it */gchar *mylib_get_constant1 (void) { return g_strdup("a constant");}
/** * gtk_widget_get_size_request: * @width: (out): Int to store width in * @height: (out): Int to store height in */
GNOME shell demo
Colaborar en la comunidad GNOME es una experiencia única para aprender de
primera mano los entresijos del desarrollo de software libre.
Oportunidades de trabajo:Existen un tejido empresarial nacional que trabajan con tecnologías GNOME
¡Gracias!Juanjo Marínjjmarin@gnome.org
¡Hazte amigo de GNOME!www.gnome.org/friends
top related