GnomeAmor

De Wiki GNOME Chile
(Diferencias entre revisiones)
Saltar a: navegación, buscar
(Technical guides)
m
 
(No se muestran 28 ediciones intermedias realizadas por 4 usuarios)
Línea 1: Línea 1:
 
{|
 
{|
 
|
 
|
http://ramnet.se/~nisse/diverse/temp/gnomelovelogo.png
+
[[Imagen:gnomelovelogo.png]]
||''GnomeAmor es una iniciativa que pretende ayudar a las personas que quieren comenzar a contribuir en GNOME. Esta página ofrese una colección de enlaces a recursos utiles para un aspirante a desarrollador, "testers", documentadores o simples entuciastas de GNOME.''
+
||''GnomeAmor es una iniciativa que pretende ayudar a las personas que quieren comenzar a contribuir en GNOME. Esta página ofrece una colección de enlaces a recursos útiles para un aspirante a desarrollador, "testers", documentadores o simples entusiastas de GNOME.''
 
|}
 
|}
  
 
----
 
----
  
= Contactos =
+
== Primeros Pasos ==
  
Además de esta página, el proyecto GnomeAmor también posee:
+
=== Introducción ===
 +
La plataforma base de [[GNOME]] está desarrollada en Lenguaje C, siendo su librería base GLIB la cual comparte todas las características de su homologa en C LIBC, glib potencia la libc tradicional añadiendo nuevas y mejoradas funciones, como tratamiento de strings, listas, manejo de memoria, etc...
  
* Una [http://mail.gnome.org/mailman/listinfo/gnome-love lista de correo [email protected]]
+
La librería de abstracción más baja a nivel gráfico es GDK, esta es la librería encargada de el dibujado de los objetos en la pantalla, sean ventanas, botones, cajas de texto, etc...
* El canal irc '''#gnome-love''' en irc.gnome.org
+
  
Esta página está enfocada en desarroladores, pero también existen otras formas de [[JoinGnome | unirtenos]].
+
Luego para construir interfaces gráficas usamos la librería GTK+ la que nos permite crear ventanas, botones, texto y todo lo que necesitemos para nuestro programa.
  
= Comenzando =
+
A pesar de que todo el core esta escrito en C obtendremos una capa de orientación a objetos mediante [[GObject]] la cual nos permite programar OO en un lenguaje que no posee OO.
  
Estas guías proveen información útil en los distintos pasos que un principiante puede seguir para comenzar a contribuir, y saber como funcionan las cosas.
 
  
* {es} [[GnomeLove/ComoComenzar|Cómo comenzar tu viaje hacia GNOME]]
+
=== Lenguajes ===
* {en} [http://live.gnome.org/GnomeLove/HowToStart_En How to Start Your GNOME journey]
+
* {pt} [http://live.gnome.org/GnomeLove/HowToStart_Pt Como Comecar Sua Jornada no GNOME]
+
* {ru} [http://gnome.org.ru/wacko/Razrabotka/HowToStart/ Как начать свой путь в GNOME]
+
  
* Pensamientos sobre el [http://www106.pair.com/rhp/hacking.html trabajo en software libre] (by HavocPennington)
+
Desde sus principios y a pesar de que el '''core''' de [[GNOME]] está escrito en C, podemos utilizar una amplia gama de lenguajes a la hora de desarrollar nuestras aplicaciones, es así como tenemos:
  
= Guías Tecnicas =
+
# [[C]]
 +
# [[Python]]
 +
# [[Csharp | C#]]
 +
# [[Perl]]
 +
# [[PHP]]
 +
# [[Java]]
 +
# [[Cplusplus | C++]]
  
'''Please maintain consistency when adding a new reference to keep this page as clear as possible...'''
+
Cada uno de estos lenguajes (exceptuando C) poseen su correspondiente recubrimiento (binding) de la librería GTK+, así tenemos que:
  
* A [http://www.gnome.org/~newren/tutorials/developing-with-gnome/ Getting Started Guide] for those interested in developing with GNOME is being written.  It hasn't been updated for a few months, but it currently contains
+
{| style="width:300px; background=#cfd5dc; text-align:left"
* Quick overviews of the important tools you need to use and websites you should be aware of
+
|+ style="background:#eae8e3" |
* Programming tutorials in c, c++, perl, and python for using glade/libglade and gconf (with gtk+ being learned along the way)
+
|- style="background:#ffefdb; text-align:center"
* Debugging tutorials covering gdb, strace, and valgrind (specifically memcheck)
+
| Lenguaje || Recubrimiento (binding)
* Detailed guide on building GNOME from CVS (use of jhbuild)
+
|-
* A "What in the world is that?!?" section to help explain all the cryptic but common tools, libraries, and filenames.
+
| C  || [http://www.gtk.org/ GTK+] (nativo)
* [http://developer.gnome.org/doc/guides/platform-overview/platform-overview.html Overview of the GNOME Platform] (by ShaunMcCance)
+
|-
* A GnomeGlossary of the terms that get bandied around mailing lists
+
| Python || [http://www.pygtk.org/ PyGTK]
 
+
|-
* [wiki:Self:GettingTraces Capturing Stack Traces]: If you are trying to fix a specific bug in GNOME that is a crash, this guide explains how to obtain a stack trace --one of the first important pieces of information needed in most cases to move towards fixing the problem.
+
| C# || [http://www.mono-project.com/GtkSharp GTK#]
 
+
|-
* [http://developer.gnome.org/doc/guides/programming-guidelines/book1.html Programming Guidelines]: Hints to get used to best practices on programming.
+
| Perl || [http://gtk2-perl.sourceforge.net/ gtk-perl]
 
+
|-
* [wiki:Self:GnomeLove/SubmittingPatches Submitting Patches]: In order to submit improvements you make to various GNOME modules, you will need to make and submit patches. This page explains how to do so (more thoroughly than does the section in the above tutorial on this topic).
+
| PHP || [http://gtk.php.net/ php-gtk]
 
+
|-
* [wiki:Self:JhbuildDependencies Jhbuild Dependencies]: Jhbuild is used to compile GNOME from CVS. This page lists what software you will need to run jhbuild.
+
| Java || [http://java-gnome.sourceforge.net/cgi-bin/bin/view java-gnome]
 
+
|-
= Giving love to projects =
+
| C++ || [http://www.gtkmm.org/ gtkmm]
 
+
|}
||<tablewidth="100%" #eeeeee> /!\ Please always ask the maintainers before starting a task by adding a note in bugzilla for the corresponding bug.||
+
 
+
== Case 1: You don't want to work on a specific project ==
+
Then the GnomeGoals are made for you. Instead of project-based bug correction, it generally consists of task-based desktop-wide bug corrections. You then learn a single task, but touch to every project, which is a good exercise to get started. The tasks are usually simple and short, and accompanied with guidelines. You also need less commitment in the project, so this is perfect for people wanting to contribute on an irregular basis.
+
 
+
== Case 2: You don't know which project you want to work on ==
+
Look at ''[http://bugzilla.gnome.org/reports/gnome-love.cgi bugzilla bugs with the gnome-love keyword]''.
+
These are tasks suitable for new developers, for many GNOME projects.
+
 
+
== Case 3: You want to work on a specific project ==
+
Then check out the ModuleMaintenanceWorkspaces and pick up a project. Following the associated ''love-bugs'' link will lead you to the tasks suitable for GNOME Lovers for that project.
+
 
+
Some projects also have a favorite entry point, or additionnal info for GNOME Lovers:
+
* /GnomeKeyringManager  - Project developed only by GNOME lovers. Go there to learn and contribute to it.
+
* [wiki:Self:LockdownEditor Lockdown Editor] - A simple idea in need of developers.
+
* ["GStreamer"] [http://gstreamer.freedesktop.org/tasks/gstreamer.html task list]
+
* ["GnomeApplets"]
+
* ["Gedit"]
+
* The GNOME System Tools [http://www.gnome.org/projects/gst/contrib.html task list].
+
* Totem: [http://mail.gnome.org/archives/gnome-love/2004-April/msg00023.html].
+
* ["Yelp"]
+
* ["Metacity"]: The [http://cvs.gnome.org/viewcvs/metacity/HACKING?view=markup HACKING] and [http://cvs.gnome.org/viewcvs/metacity/doc/code-overview.txt?view=markup code overview] files orient you to the code, point out relevant standards, explain a lot of the specialized utilities for testing metacity, show how to debug your code (debuggers don't work well for Metacity), and provide a list of tasks you can work on.
+
* ["Epiphany"]: There are lots of older, sometimes untargeted bugs for Epiphany that the development team doesn't get around to. Help would be most welcome!
+
* GnomePanel
+
 
+
Other applications:
+
* [http://www.glom.org/ Glom] (Easy database UIs) has a [http://mail.gnome.org/archives/gnome-love/2006-April/msg00075.html task list] suitable for new contributors.
+
* [http://silky.sourceforge.net/ Silky] - a graphical SILC client - is looking for more developers.
+
* xchat-gnome has a list of [http://xchat-gnome.navi.cx/?page_id=6 tasks suitable for new developers].
+
 
+
== Case 4: You want to work on new projects or new features ==
+
There are a bunch of ideas for new projects and features in GNOME, make sure to get the opinion of the affected maintainers
+
or the community because the project in question could have become obsolete, invalid or yet implemented with the passing of time:
+
* [wiki:Self:MentoredProjects Mentored Projects].
+
* [wiki:Self:SummerOfCode2006/Ideas Ideas] and [wiki:Self:SummerOfCode2006/Performance Performance projects] from [wiki:Self:SummerOfCode2006 SummerOfCode2006].
+
* [wiki:Self:SummerOutreachProjects Summer Outreach Projects]
+
* GNOME desktop [http://www.gnome.org/bounties/ bounties]
+
 
+
= GNOME Love Days =
+
  
The underlying idea behind this, is to have one special day for a given task, for example finding bugs, or improving a specific part of GNOME... On this day, someone will stay on the #gnome-love irc channel to give some support and help you on this task.
+
=== Bibliotecas Base ===
||When||Topic||
+
||2005-10-30, from 14:00 UTC||[wiki:Self:GnomeLove_2fPerformanceLoveDay Performance Love Day]||
+
  
= Articles and tutorials =
+
Las bibliotecas base que tenemos son:
  
== Tips & Tricks ==
+
# [[Glib]]: Biblioteca C standard, extendida.
* [:WritingPortableCode:Writing Portable Code]
+
# [[GTK]]: Toolkit
* [wiki:Self:BestPractices Best Practices]
+
# [[Gdk]]: Manejo gráfico a bajo nivel.
* wiki:Self:Bloopers
+
# [[Gdk-pixbuf]]: Manejo de imagenes en distintos formatos.
* [wiki:Self:GnomeRecipes GNOME Recipes]
+
# [[Pango]]: Es un sistema que permite la representación de caracteres en distintos alfabetos (occidental, cirilico, árabe, chino, etc).
 +
# [[Cairo]]: Para el manejo de gráficos vectoriales (2D).
 +
# [[ATK]]: Permite el desarrollo de aplicaciones accesibles para personas con deficiencias físicas.
  
== Internationalization ==
+
=== Bibliotecas Extras ===
* [http://www.gnome.org/~malcolm/i18n/ Internationalization tutorial] by Malcolm Tredinnick
+
* [http://www-128.ibm.com/developerworks/aix/library/au-internatlgtk/index.html Robust internationalization with GTK+]
+
  
== GUI ==
+
Además de las bibliotecas base tenemos un conjunto completo de bibliotecas extras que proveen, intercomunicación de procesos, abstracción de hardware, multimedia, impresión, internacionalización, accesibilidad, sistemas de archivos virtuales, configuraciones, etc...
* [wiki:Self:GnomeLove/UIManagerTutorial GtkUIManager tutorial] for making Menus and Toolbars
+
* [wiki:Self:GnomeLove/DragNDropTutorial Drag and drop tutorial] for your GTK+ applications
+
* [http://scentric.net/tutorial/treeview-tutorial.html GtkTreeView tutorial] by Tim-Philipp Muller
+
* [http://www.bravegnu.org/gtktext/gtktext.html GtkTextView tutorial] by Vijay Kumars
+
* [:GnomeLove/PanelAppletTutorial:Panel Applet Tutorial]
+
  
== Other ==
+
# [[CORBA]], Bonobo: Creación y manejo de componentes reutilizables.
* [http://www.eikke.com/articles/goption-parsing.html GOptions tutorial] for easy command line parsing
+
# [[DBUS]], [[HAL]]: Abstracción de hardware.
* [http://www.eikke.com/articles/gob-signals.html Glib Signals with GOB]
+
# [[Gstreamer]]: Audio y Video.
* [http://le-hacker.org/papers/gobject/index.html GObject tutorial] by Mathieu Lacage
+
# [[gnome-print]], [[CUPS]]: Sistemas de impresión.
 +
# [[gettext]]: Internacionalización y Localización.
 +
# [[GnomeVFS]]: Abstracción de sistema de archivos.
 +
# [[GConf]]: Configuraciones.
 +
# [[Glade]], [[libglade]]: Diseño de interfaz gráfica en XML.
  
= Books =
+
=== Bibliotecas Especiales ===
  
* Matthias Warkus wrote a book covering the GNOME 2 desktop environment.
+
# [[libxml2]], [[libxslt]]:
 +
# [[Avahi]]:
 +
# [[libsoup]]: SOAP
 +
# [[.desktop]], [[MIME]]:
 +
# [[panel-applet]]:
 +
# [[libnotify]]: área de notificaciones.
 +
# [[nautilus]]: manejador de archivos.
 +
# [[metacity]]: manejador de ventanas.
 +
# [[GtkMozEmbed]]: Motor HTML de Mozilla
  
{en} [http://www.nostarch.com/frameset.php?startat=gnome The Official GNOME 2 Developer's Guide]
+
=== Comenzando ===
  
{de} [http://www.galileocomputing.de/katalog/buecher/titel/gp/titelID-356 GNOME 2.0: Das Entwickler-Handbuch]
+
# [[Conceptos básicos]]
 +
# [[ProgramacionGTKenC | Primera aplicación]]
 +
# [[Autotools]]
 +
# [[TreeView]]
 +
# [[CVS]], [[SVN]]
 +
# [[Parches]]
 +
# [[Bugzilla]]
 +
# [[Bases de Datos]]

Última revisión de 21:31 21 jul 2009

Error al crear miniatura: No se ha podido guardar la miniatura
GnomeAmor es una iniciativa que pretende ayudar a las personas que quieren comenzar a contribuir en GNOME. Esta página ofrece una colección de enlaces a recursos útiles para un aspirante a desarrollador, "testers", documentadores o simples entusiastas de GNOME.

Contenido

[editar] Primeros Pasos

[editar] Introducción

La plataforma base de GNOME está desarrollada en Lenguaje C, siendo su librería base GLIB la cual comparte todas las características de su homologa en C LIBC, glib potencia la libc tradicional añadiendo nuevas y mejoradas funciones, como tratamiento de strings, listas, manejo de memoria, etc...

La librería de abstracción más baja a nivel gráfico es GDK, esta es la librería encargada de el dibujado de los objetos en la pantalla, sean ventanas, botones, cajas de texto, etc...

Luego para construir interfaces gráficas usamos la librería GTK+ la que nos permite crear ventanas, botones, texto y todo lo que necesitemos para nuestro programa.

A pesar de que todo el core esta escrito en C obtendremos una capa de orientación a objetos mediante GObject la cual nos permite programar OO en un lenguaje que no posee OO.


[editar] Lenguajes

Desde sus principios y a pesar de que el core de GNOME está escrito en C, podemos utilizar una amplia gama de lenguajes a la hora de desarrollar nuestras aplicaciones, es así como tenemos:

  1. C
  2. Python
  3. C#
  4. Perl
  5. PHP
  6. Java
  7. C++

Cada uno de estos lenguajes (exceptuando C) poseen su correspondiente recubrimiento (binding) de la librería GTK+, así tenemos que:

Lenguaje Recubrimiento (binding)
C GTK+ (nativo)
Python PyGTK
C# GTK#
Perl gtk-perl
PHP php-gtk
Java java-gnome
C++ gtkmm

[editar] Bibliotecas Base

Las bibliotecas base que tenemos son:

  1. Glib: Biblioteca C standard, extendida.
  2. GTK: Toolkit
  3. Gdk: Manejo gráfico a bajo nivel.
  4. Gdk-pixbuf: Manejo de imagenes en distintos formatos.
  5. Pango: Es un sistema que permite la representación de caracteres en distintos alfabetos (occidental, cirilico, árabe, chino, etc).
  6. Cairo: Para el manejo de gráficos vectoriales (2D).
  7. ATK: Permite el desarrollo de aplicaciones accesibles para personas con deficiencias físicas.

[editar] Bibliotecas Extras

Además de las bibliotecas base tenemos un conjunto completo de bibliotecas extras que proveen, intercomunicación de procesos, abstracción de hardware, multimedia, impresión, internacionalización, accesibilidad, sistemas de archivos virtuales, configuraciones, etc...

  1. CORBA, Bonobo: Creación y manejo de componentes reutilizables.
  2. DBUS, HAL: Abstracción de hardware.
  3. Gstreamer: Audio y Video.
  4. gnome-print, CUPS: Sistemas de impresión.
  5. gettext: Internacionalización y Localización.
  6. GnomeVFS: Abstracción de sistema de archivos.
  7. GConf: Configuraciones.
  8. Glade, libglade: Diseño de interfaz gráfica en XML.

[editar] Bibliotecas Especiales

  1. libxml2, libxslt:
  2. Avahi:
  3. libsoup: SOAP
  4. .desktop, MIME:
  5. panel-applet:
  6. libnotify: área de notificaciones.
  7. nautilus: manejador de archivos.
  8. metacity: manejador de ventanas.
  9. GtkMozEmbed: Motor HTML de Mozilla

[editar] Comenzando

  1. Conceptos básicos
  2. Primera aplicación
  3. Autotools
  4. TreeView
  5. CVS, SVN
  6. Parches
  7. Bugzilla
  8. Bases de Datos
Herramientas personales
Espacios de nombres

Variantes
Acciones
Navegación
Herramientas