GnomeAmor

De Wiki GNOME Chile
(Diferencias entre revisiones)
Saltar a: navegación, buscar
 
m
 
(No se muestran 40 ediciones intermedias realizadas por 4 usuarios)
Línea 1: Línea 1:
||http://ramnet.se/~nisse/diverse/temp/gnomelovelogo.png||''GnomeLove is an initiative that aims to help people who want to get started contributing to GNOME. This page offers a collection of links to useful resources for aspiring developers, testers, documenters or simply GNOME enthusiasts.''||
+
{|
 +
|
 +
[[Imagen:gnomelovelogo.png]]
 +
||''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.''
 +
|}
 +
 
 
----
 
----
[[TableOfContents]]
 
 
= Contacts =
 
 
Beside this wiki page, the GnomeLove project also features:
 
 
* the [http://mail.gnome.org/mailman/listinfo/gnome-love [email protected] mailing list]
 
* the '''#gnome-love''' irc channel on irc.gnome.org
 
 
This page mainly focuses on developers, but there are also many other ways to [wiki:Self:JoinGnome get involved].
 
 
= Getting started =
 
 
Those guides provide useful information on the differents steps a beginner may follow to start contributing, and get to know how the things work.
 
* Thoughts on how to start your GNOME journey, for those interested in getting involved or just writing GNOME applications (by RyanMcDougall).
 
  * {en} [wiki:Self:GnomeLove/HowToStart_En How to Start Your GNOME journey]
 
  * {pt} [wiki:Self:GnomeLove/HowToStart_Pt Como Comecar Sua Jornada no GNOME]
 
  * {ru} [http://gnome.org.ru/wacko/Razrabotka/HowToStart/ Как начать свой путь в GNOME]
 
  * {es} [wiki:Self:GnomeLove/HowToStart_Es Cómo comenzar tu viaje hacia GNOME]
 
 
* Thoughts about [http://www106.pair.com/rhp/hacking.html working on Free Software] (by HavocPennington)
 
 
= Technical guides =
 
 
'''Please maintain consistency when adding a new reference to keep this page as clear as possible...'''
 
 
* 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
 
  * Quick overviews of the important tools you need to use and websites you should be aware of
 
  * Programming tutorials in c, c++, perl, and python for using glade/libglade and gconf (with gtk+ being learned along the way)
 
  * Debugging tutorials covering gdb, strace, and valgrind (specifically memcheck)
 
  * 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.
 
* [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
 
  
* [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.
+
== Primeros Pasos ==
  
* [http://developer.gnome.org/doc/guides/programming-guidelines/book1.html Programming Guidelines]: Hints to get used to best practices on programming.
+
=== 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...
  
* [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).
+
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...
  
* [wiki:Self:JhbuildDependencies Jhbuild Dependencies]: Jhbuild is used to compile GNOME from CVS. This page lists what software you will need to run jhbuild.
+
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.
  
= Giving love to projects =
+
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.
  
||<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 ==
+
=== Lenguajes ===
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 ==
+
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:
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 ==
+
# [[C]]
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.
+
# [[Python]]
 +
# [[Csharp | C#]]
 +
# [[Perl]]
 +
# [[PHP]]
 +
# [[Java]]
 +
# [[Cplusplus | C++]]
  
Some projects also have a favorite entry point, or additionnal info for GNOME Lovers:
+
Cada uno de estos lenguajes (exceptuando C) poseen su correspondiente recubrimiento (binding) de la librería GTK+, así tenemos que:
* /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:
+
{| style="width:300px; background=#cfd5dc; text-align:left"
  * [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.
+
|+ style="background:#eae8e3" |
* [http://silky.sourceforge.net/ Silky] - a graphical SILC client - is looking for more developers.
+
|- style="background:#ffefdb; text-align:center"
* xchat-gnome has a list of [http://xchat-gnome.navi.cx/?page_id=6 tasks suitable for new developers].
+
| Lenguaje || Recubrimiento (binding)
 +
|-
 +
| C || [http://www.gtk.org/ GTK+] (nativo)
 +
|-
 +
| Python || [http://www.pygtk.org/ PyGTK]
 +
|-
 +
| C# || [http://www.mono-project.com/GtkSharp GTK#]
 +
|-
 +
| Perl || [http://gtk2-perl.sourceforge.net/ gtk-perl]
 +
|-
 +
| PHP || [http://gtk.php.net/ php-gtk]
 +
|-
 +
| Java || [http://java-gnome.sourceforge.net/cgi-bin/bin/view java-gnome]
 +
|-
 +
| C++ || [http://www.gtkmm.org/ gtkmm]
 +
|}
  
== Case 4: You want to work on new projects or new features ==
+
=== Bibliotecas Base ===
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 =
+
Las bibliotecas base que tenemos son:
  
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.
+
# [[Glib]]: Biblioteca C standard, extendida.
||When||Topic||
+
# [[GTK]]: Toolkit
||2005-10-30, from 14:00 UTC||[wiki:Self:GnomeLove_2fPerformanceLoveDay Performance Love Day]||
+
# [[Gdk]]: Manejo gráfico a bajo nivel.
 +
# [[Gdk-pixbuf]]: Manejo de imagenes en distintos formatos.
 +
# [[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.
  
= Articles and tutorials =
+
=== Bibliotecas Extras ===
  
== Tips & Tricks ==
+
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...
* [:WritingPortableCode:Writing Portable Code]
+
* [wiki:Self:BestPractices Best Practices]
+
* wiki:Self:Bloopers
+
* [wiki:Self:GnomeRecipes GNOME Recipes]
+
  
== Internationalization ==
+
# [[CORBA]], Bonobo: Creación y manejo de componentes reutilizables.
* [http://www.gnome.org/~malcolm/i18n/ Internationalization tutorial] by Malcolm Tredinnick
+
# [[DBUS]], [[HAL]]: Abstracción de hardware.
* [http://www-128.ibm.com/developerworks/aix/library/au-internatlgtk/index.html Robust internationalization with GTK+]
+
# [[Gstreamer]]: Audio y Video.
 +
# [[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.
  
== GUI ==
+
=== Bibliotecas Especiales ===
* [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 ==
+
# [[libxml2]], [[libxslt]]:
* [http://www.eikke.com/articles/goption-parsing.html GOptions tutorial] for easy command line parsing
+
# [[Avahi]]:  
* [http://www.eikke.com/articles/gob-signals.html Glib Signals with GOB]
+
# [[libsoup]]: SOAP
* [http://le-hacker.org/papers/gobject/index.html GObject tutorial] by Mathieu Lacage
+
# [[.desktop]], [[MIME]]:
 +
# [[panel-applet]]:
 +
# [[libnotify]]: área de notificaciones.
 +
# [[nautilus]]: manejador de archivos.
 +
# [[metacity]]: manejador de ventanas.
 +
# [[GtkMozEmbed]]: Motor HTML de Mozilla
  
= Books =
+
=== Comenzando ===
  
* Matthias Warkus wrote a book covering the GNOME 2 desktop environment.[[BR]]
+
# [[Conceptos básicos]]
{en} [http://www.nostarch.com/frameset.php?startat=gnome The Official GNOME 2 Developer's Guide] [[BR]]
+
# [[ProgramacionGTKenC | Primera aplicación]]
{de} [http://www.galileocomputing.de/katalog/buecher/titel/gp/titelID-356 GNOME 2.0: Das Entwickler-Handbuch]
+
# [[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