Libro de Programación en GNOME: coordinación de trabajos

El objetivo de este proyecto es elaborar un libro de documentación en castellano que sirva para iniciarse a cualquier desarrollador que quiera comenzar a programar aplicaciones en GNOME, así como libro de consulta para los desarrolladores con más conocimientos.

Se implementa en este wiki un sistema de control y seguimiento de bugs en la fase final del proyecto, como sustituto del bugzilla anteriormente empleado, con el fin de coordinar todos los trabajos del equipo.

La página oficial del proyecto se encuentra en el siguiente enlace, desde donde se tiene acceso a la lista de correo y el CVS.

http://libros.es.gnome.org/librognome/

Las tres herramientas básicas necesarias para trabajar en el proyecto son las siguientes:

  • Lista de correo: todos los detalles del proyecto se coordinan desde aquí.
  • Módulo CVS: para descargar el código fuente del libro y trabajar sobre él.
  • "Wiki-Bugzilla": para el seguimiento y coordinación de los trabajos (este wiki).

Leyenda.

  • Capítulo/Sección: Lista ordenada de todos los capítulos y secciones que componen el libro.

    • Nº de identificación: cada capítulo y sección se identifican con un código del tipo XXYY (excepto bugs generales, portada e índice), donde XX marca el número de capítulo e YY indica la sección. La identificación YY se realiza mediante numeración consecutiva sin diferenciar subapartados, con el fin de poder modificar la estructura del capítulo, continuando la numeración para nuevos apartados manteniendo las referencias existentes.
    • Bugs o tareas generales: son de tipo genérico, no asignables a ningún capítulo específico.
    • Código de colores: las secciones (no los capítulos) se identifican por un color, en función de su estado.

#FF8080 Rojo

Falta por redactar total o parcialmente

#FFFF66 Amarillo

Todo redactado, con bugs o tareas pendientes

#80FF80 Verde

No hay bugs o tareas pendientes

  • Nº de bugs abiertos: Se indica el número de bugs o tareas pendientes de dicha sección. Contiene el enlace para entrar a la tabla con la descripción y estado de bugs de dicho capítulo o sección.

  • Existen bugs no asignados: Para facilitar la localización de bugs sin asignar, se marca con una "x" la sección o capítulo que tengan tareas pendientes sin asignar a nadie.

General

Nº bugs abiertos

Existen bugs no asignados

/G Bugs o tareas generales

1

Capítulo/Sección

Nº bugs abiertos

Existen bugs no asignados

/0P Portada

1

/0i Indice

1

/00 Prólogo

1

x

PARTE I: Introducción

/0100 1.- Introducción

0

/0101 El proyecto GNOME

0

/0102 Historia de GNOME.

1

x

/0103 Organización de GNOME: La Fundación GNOME.

0

/0104 +El consejo directivo.

0

/0105 +El consejo consultor.

0

/0106 GNOME Hispano.

1

x

/0107 +Historia y funciones.

1

x

/0108 +Organización

1

x

/0200 2.- Recursos para proyectos de desarrollo

1

/0201 Herramientas y servicios de comunicación en el desarrollo.

0

/0202 +Sistema de control de versiones.

0

/0203 +Obtención de una cuenta de CVS.

0

/0204 +Bugzilla

0

/0205 +Listas de correo.

0

/0206 +Internet Relay Chat (IRC).

0

PARTE II: Desarrollo de proyectos

/0300 3.- Preparación del entorno

0

/0301 Introducción

0

/0302 Estructura de un proyecto GNU

0

/0303 +Archivos de información de un proyecto

0

/0304 +Archivos de programas y configuración

0

/0305 Las herramientas autotools

1

x

/0306 Lenguajes de programación

1

x

/0307 Paquetes necesarios para la compilación

1

x

/0400 4.- Herramientas de desarrollo

0

/0401 Línea de comandos: gcc

1

x

/0402 Uso de Anjuta como IDE

1

x

/0403 +Crear un proyecto

1

x

/0404 +Compilación y construcción de paquetes

1

x

/0405 Glade: desarrollo de interfaces gráficas

1

x

/0406 DevHelp: guía de referencia

1

x

PARTE III: Programación básica: Bibliotecas base

/0500 5.- Bibliotecas de la plataforma GNOME

0

/0501 +Bibliotecas básicas

1

x

/0502 +Perspectiva general: gráfico de dependencias

1

x

/0600 6.- Glib

0

/0601 Tipos de datos de GLib

0

/0602 Mensajes de salida.

0

/0603 +Mensajes de salida.

0

/0604 +Funciones de depuración.

0

/0605 +Funciones de registro.

0

/0606 Trabajar con cadenas.

0

/0607 +Manipular el contenido de una cadena.

0

/0608 +Gstring : la otra manera de ver una cadena.

0

/0609 Jugando con el tiempo.

0

/0610 +Funciones de manejo de fechas y horas.

0

/0611 +Midiendo intervalos de tiempo con Gtimer.

0

/0612 Miscelánea de funciones.

0

/0613 +Números aleatorios.

0

/0614 +Funciones de información sobre entorno.

0

/0615 Bucles de ejecución.

1

x

/0616 +Alarmas

1

x

/0617 +Tiempos de inactividad.

1

x

/0618 Tratamiento de ficheros y canales de entrada/salida.

0

/0619 +Obtención de un GIOChannel.

0

/0620 +Generalidades en el trabajo con GIOChannels.

0

/0621 +Operaciones básicas.

0

/0622 +Integración de canales al bucle de eventos.

0

/0623 +Configuración avanzada de canales.

0

/0624 Manejo de memoria dinámica.

0

/0625 +Reserva de memoria.

0

/0626 +Liberación de memoria.

0

/0627 +Realojamiento de memoria.

0

/0628 Estructuras de datos: listas enlazadas, pilas y colas.

0

/0629 +Listas enlazadas.

0

/0630 +Listas doblemente enlazadas.

0

/0631 +Gqueue: pilas y colas.

0

/0632 Estructuras de datos avanzadas.

0

/0633 +Tablas de dispersión.

0

/0634 +Arboles binarios balanceados

0

/0635 +Gnode : Arboles de orden n.

0

/0636 +Caches

0

/0637 GLib avanzado.

0

/0638 +Hilos en Glib.

0

/0639 +UTF-8: las letras del mundo.

0

/0640 +Como hacer plugins.

0

/0700 7.- Sistema de objetos de Glib.

0

/0701 Gestión dinámica de tipos.

0

/0702 +Tipos basados en clases (objetos).

0

/0703 +Tipos no instanciables (fundamentales).

0

/0704 +Implementación de nuevos tipos.

0

/0705 +Interfaces

0

/0706 +Herencia

0

/0707 Señales

0

/0708 +Gvalue

0

/0709 GObject, la clase base.

1

x

/0710 Parámetros y valores.

1

x

/0800 8.- GTK+

0

/0801 Qué es un widget

0

/0802 +Widgets básicos

0

/0803 Bucle de ejecución y eventos

0

/0804 +Señales

0

/0805 Ejemplo básico

0

/0806 +El ejemplo paso a paso

0

/0807 +Cómo compilar el ejemplo

0

/0808 Contenedores

0

/0809 +Cajas

0

/0810 +Cajas de botones

0

/0811 +Tablas

0

/0812 +GtkNotebook

0

/0813 +GtkAlignment

0

/0814 +GtkHPaned/GtkVPaned

0

/0815 +GtkLayout

0

/0816 +Colocación por coordenadas

0

/0817 +Marcos

0

/0818 +GtkAspectFrame

0

/0819 +GtkViewport

0

/0820 Ventanas

0

/0821 +Ventanas (GtkWindow)

0

/0822 +Diálogos (GtkDialog)

0

/0823 +Ventanas de mensaje (GtkMessageDialog)

0

/0824 +Ventanas invisibles (GtkInvisible)

0

/0825 +Ventanas embebidas (GtkPlug)

0

/0826 +Grupos de ventanas (GtkWindowGroup)

0

/0827 Visualización y Entrada de información

0

/0828 +Etiquetas

0

/0829 +Entrada de datos

0

/0830 +Ajustes

0

/0831 +Widgets de selección de rango

0

/0832 +Imágenes (GtkImage)

0

/0833 +Barras de progreso (GtkProgressBar)

0

/0834 +Barras de estado (GtkStatusBar)

0

/0835 Botones

0

/0836 +GtkButton

0

/0837 +GtkToggleButton

0

/0838 +GtkCheckButton

0

/0839 +GtkRadioButton

0

/0840 Menús y barras de herramientas

0

/0841 +Menús

0

/0842 +GtkToolbar

0

/0843 +GtkCombo

0

/0844 Ventanas de selección

0

/0845 +GtkFileSelection

0

/0846 +GtkFileChooser

0

/0847 +GtkColorSelection

0

/0848 +GtkColorSelectionDialog

0

/0849 +GtkFontSelection

0

/0850 +GtkFontSelectionDialog

0

/0851 Widgets de desplazamiento

0

/0852 +GtkHScrollbar/GtkVSrollbar

0

/0853 +GtkScrolledWindow

0

/0900 9.- GtkTreeView: Árboles y listas en GTK+

0

/0901 Ejemplos básicos

0

/0902 +Ejemplo de lista de datos

0

/0903 +Ejemplo de árbol de datos

0

/0904 Modelos de datos estándares

0

/0905 +Modelos de datos GtkListStore

0

/0906 +Modelos de datos GtkTreeStore

0

/0907 +Generalidades

0

/0908 +Refiriendose a las filas

1

x

/0909 +Modelos de datos ordenados

0

/0910 Modelos de datos a medida

0

/0911 +La interfaz MgListModel

0

/0912 +MgGroupModel: El modelo de datos completo

0

/0913 +Implementación completa de modelo de datos

1

x

/0914 GtkTreeView: Visualización

1

x

/0915 +Listas

1

x

/0916 +Árboles

1

x

/0917 +Celdas

1

x

/0918 Cortar y pegar en GtkTreeView

1

x

/1000 10.- GtkTextView: manejo de texto

0

/1001 Editor de texto multilínea

0

/1002 +Manipulación de texto

1

x

/1100 11.- GTK+ avanzado

0

/1101 El portapapeles GTK

0

/1102 Drag and Drop

0

/1103 +Introducción

0

/1104 +Definiendo el widget destino

0

/1105 +Definiendo el widget fuente

0

/1106 Imágenes, botones, menús de stock

1

x

/1107 Ficheros de recursos

0

/1108 +Introducción

0

/1109 +Estructura de un fichero rc

0

/1110 +Como usar los ficheros de recursos

0

/1111 Selecciones

0

/1112 +Resumen

0

/1113 +Obteniendo la selección

0

/1114 +Suministrando la selección

0

/1115 Otros widgets

1

x

/1116 Creación de un widget personalizado: reloj digital

1

x

/1200 12.- Impresión en GTK+

0

/1201 Uso de Gtk-print

1

x

/1300 13.- gnome-vfs

0

/1301 URIs (Uniform Resource Identifier)

0

/1302 Operaciones básicas

0

/1303 E/S Asíncrona

0

/1304 Módulos para GNOME-VFS

1

x

/1400 14.- Interfaces de usuario con Glade y libglade

0

/1401 Introducción

0

/1402 Descripción del entorno de trabajo con Glade

0

/1403 +Entorno de trabajo: instalación y vista general

0

/1404 +Ventana principal

0

/1405 +Paleta de herramientas

0

/1406 +Ventana de propiedades

0

/1407 +Ventana del árbol de widgets

0

/1408 +Ventana de trabajo

0

/1409 Desarrollo de un proyecto con Glade

0

/1410 +Creación y configuración de un nuevo proyecto

0

/1411 +Guía breve para crear una interfaz

0

/1412 +Desarrollo más avanzado: diseño de menús y barra de herramientas

0

/1413 La biblioteca libglade

0

/1414 +Características y ventajas de libglade

0

/1415 +Uso de las funciones de la biblioteca libglade

0

/1416 +Métodos para conectar las señales.

0

/1417 +Integración de libglade y las bibliotecas de GNOME

0

/1418 +Recomendaciones sobre la organización de los ficheros de código

0

/1419 +Trabajo con múltiples ventanas

0

/1420 +Compilación del código con la biblioteca libglade

0

/1421 Ejemplos básicos con Glade y libglade

0

/1422 +Diseño utilizando Cajas y Tablas como widgets contenedores

0

/1423 +Uso de menús y barras de herramientas

0

/1424 Desarrollo avanzado con Glade

1

/1425 +Integración de GtkTreeView

1

/1426 +Utilización de Diálogos (GtkDialog)

1

/1427 +Desarrollo de aplicaciones GnomeApp

1

/1428 +Trabajo con widgets individualmente

1

/1429 +Creación de un widget personalizado: reloj digital

1

/1430 Integración de Glade con Anjuta

1

PARTE IV: Programación avanzada: arquitectura

/1500 15.- Gconf, el sistema de configuración

0

/1501 Almacenes de datos

0

/1502 Clientes GConf

0

/1503 Notificaciones

0

/1504 Gestión de errores

0

/1600 16.- Pango

0

/1601 Caminando hacia Pango

1

x

/1602 Pango, a modo de introducción

1

x

/1603 Arquitectura

1

x

/1604 El API de Pango e Implementación

1

x

/1605 Pango en GTK+2.0

1

x

/1606 El futuro de Pango

1

x

/1607 Referencias

1

x

/1700 17.- XML en GNOME

0

/1701 libxml (o GNOME-XML)

0

/1702 +Características

0

/1703 +Carga de documentos

0

/1704 +Creación de ficheros XML

0

/1705 +Salvando documentos XML

0

Parte V: Consejos para el correcto desarrollo de aplicaciones.???

/1800 18.- Internacionalización

0

/1801 Internacionalización de aplicaciones

0

/1802 +intltool

0

/1803 Internacionalización de las interfaces en glade

1

/1900 19.- Pautas para el diseño de interfaces gráficas

1

x

/1901 ??????????????????

0

/2000 20.- Accesibilidad en GNOME

1

x

/2001 Accesibilidad en Gtk+

0

/2002 Accesibilidad en Glade

0

/2100 21.- Estilo correcto de programación

1

x

/2101 ???????????

0

/2200 22.- Escribir documentación para aplicaciones GNOME

0

/2201 Documentos de ayuda

1

x

/2202 +Visor de ayuda Yelp

1

x

/2203 Documentación con DockBook

0

/2204 +Estructura de un archivo XML

0

/2205 +Programas necesarios

0

/2206 +Generación de formatos

0

PARTE VI: Aplicaciones de ejemplo

/2300 23.- Desarrollo de una aplicación completa

3

x

/2301 Ejemplo 1: Minieditor de texto

0

/2302 +Mini editor de texto (gtk)

0

/2303 +Implementación usando Glade del minieditor de textos

0

/2304 +Accesibilidad

0

/2305 +Internacionalizacion

0

/2306 +Documentación

0

/2307 +Creación del paquete con autotools

0

/2308 Ejemplo 2: gInVenTory: catalogador

0

/2309 +usando gtk

0

/2310 +usando Glade

0

/2311 +Accesibilidad

0

/2312 +Internacionalizacion

0

/2313 +Documentación

0

/2314 +Creación del paquete con autotools

0

/2315 Ejemplo 3: ??????????

0

Bugs y tareas pendientes.

Entrar a la lista en GnomeProgrammingBook/Bugs.

Attic/GnomeProgrammingBook (last edited 2013-11-26 21:19:59 by WilliamJonMcCann)