GnomeAmor

De Wiki GNOME Chile
(Diferencias entre revisiones)
Saltar a: navegación, buscar
(Technical guides)
Línea 7: Línea 7:
 
----
 
----
  
= 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
 +
# C#
 +
# Perl
 +
# PHP
 +
# Java
  
'''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
+
{| width=300
* Quick overviews of the important tools you need to use and websites you should be aware of
+
| # C  || [http://www.gtk.org/ GTK+] (nativo)
* 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)
+
| # Python || [http://www.pygtk.org/ PyGTK]
* 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.mono-project.com/GtkSharp GTK#]
* [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
+
| # Perl || [http://gtk2-perl.sourceforge.net/ gtk-perl]
 
+
|-
* [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.
+
| # PHP || [http://gtk.php.net/ php-gtk]
 
+
|-
* [http://developer.gnome.org/doc/guides/programming-guidelines/book1.html Programming Guidelines]: Hints to get used to best practices on programming.
+
| # Java || [http://java-gnome.sourceforge.net/cgi-bin/bin/view java-gnome]
 
+
|}
* [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).
+
 
+
* [wiki:Self:JhbuildDependencies Jhbuild Dependencies]: Jhbuild is used to compile GNOME from CVS. This page lists what software you will need to run jhbuild.
+
 
+
= Giving love to projects =
+
 
+
||<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.
+
||When||Topic||
+
||2005-10-30, from 14:00 UTC||[wiki:Self:GnomeLove_2fPerformanceLoveDay Performance Love Day]||
+
 
+
= Articles and tutorials =
+
 
+
== Tips & Tricks ==
+
* [:WritingPortableCode:Writing Portable Code]
+
* [wiki:Self:BestPractices Best Practices]
+
* wiki:Self:Bloopers
+
* [wiki:Self:GnomeRecipes GNOME Recipes]
+
 
+
== Internationalization ==
+
* [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 ==
+
* [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 ==
+
* [http://www.eikke.com/articles/goption-parsing.html GOptions tutorial] for easy command line parsing
+
* [http://www.eikke.com/articles/gob-signals.html Glib Signals with GOB]
+
* [http://le-hacker.org/papers/gobject/index.html GObject tutorial] by Mathieu Lacage
+
 
+
= Books =
+
 
+
* Matthias Warkus wrote a book covering the GNOME 2 desktop environment.
+
 
+
{en} [http://www.nostarch.com/frameset.php?startat=gnome The Official GNOME 2 Developer's Guide]
+
 
+
{de} [http://www.galileocomputing.de/katalog/buecher/titel/gp/titelID-356 GNOME 2.0: Das Entwickler-Handbuch]
+

Revisión de 04:19 21 jul 2006

http://ramnet.se/~nisse/diverse/temp/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.

Primeros Pasos

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.


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

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

# C GTK+ (nativo)
# Python PyGTK
# C# GTK#
# Perl gtk-perl
# PHP php-gtk
# Java java-gnome
Herramientas personales
Espacios de nombres

Variantes
Acciones
Navegación
Herramientas