Aprendiendo GTK+: Introducción

Publicado en C/C++, GTK el 29 de December, 2007 por Fran. (2 comentarios)

Desde hace tiempo vengo queriendo hacer una serie de posts para explicar (a la vez que yo aprendo) a programar interfaces gráficas usando GTK+, que es el toolkit usado por las aplicaciones de GNOME, aunque es multiplataforma y puede ser usado en varios sistemas operativos (Windows, Mac).

En esta serie de posts no planeo explicar todo al detalle, ya que existen muy buenos documentos para ello, pero sí quiero dar unas nociones básicas para que cualquiera pueda desenvolverse luego y seguir aumentando sus conocimientos sin mucho esfuerzo, además yo voy a ir aprendiendo paralelamente a estos posts, así que puede que tengan fallos, perdonadme por ello.

Introducción: Diseño de interfaces gráficas

Lo primero que quiero es realizar una pequeña introducción al diseño (desde el punto de vista de la programación, eso siempre) de las interfaces gráficas, desde un punto de vista genérico, es decir, sin relación a un lenguaje o plataforma específica.

Una interfaz gráfica es un medio por el cual el usuario trabaja con la aplicación de una manera gráfica, normalmente usando entornos de ventanas. Se diferencia de una interfaz de texto, en que en éstas el usuario trabaja con la aplicación introduciendo texto, normalmente usando órdenes en consolas.

El diseño de una interfaz gráfica se basa en objetos (en GTK+ se les conoce como widgets) como pueden ser botones, cuadros de texto, menús, etc… que permiten realizar acciones específicas. Estos objetos, a nivel de programación, tendrán unas propiedades y, lo más importante, unos eventos (o señales) que se dispararán cuando se realice algún tipo de acción sobre ellos (por ejemplo: se pulsa un botón, se introduce texto en un cuadro de texto, …)

Para mí, lo más importante es entender que estos eventos deben ser tratados inmediatamente, para ello normalmente se relaciona una función y unos datos a un evento, de este modo cada vez que se produzca dicho evento se ejecutará la función junto a los datos que tenga relacionados.

Leer el resto »

Plugins Eclipse

Publicado en Recursos el 24 de December, 2007 por Lek. (2 comentarios)

Siguiendo con el tema de Eclipse, procedo a explicar una posible configuración de un Eclipse para trabajo web. Mi particular regalo de Nochebuena ;)

Lo primero para utilizar Eclipse es… descargarlo. Para ello y en vistas de realizar nuestros proyectos web, la recomendación tiene que ser la descarga del llamado all in one, una versión con las WebTools ya instaladas y funcionales. Para ello mirar la página de descargas de All-in-one. Ya tenemos todo lo necesario para programar nuestras aplicaciones/servicios web… aunque necesitaremos descargar todavía el servidor a utilizar (Tomcat, JBoss, Apache…).

A nivel personal, para considerar verdaderamente operativo el entorno, echo de menos un par de plugins más: El Subclipse, que nos otorga funcionalidad para trabajar con SVN (un sistema de control de versiones, por defecto Eclipse trae soporte para CVS), y el FindBugs, que nos revisa el código en busca de bugs, irregularidades y otras malas hierbas. En los últimos tiempos, también estoy instalando siempre el Q4E, un plugin para trabajar con Maven. Tanto el primero como el último dependerán de que utilicéis estas tecnologías o no. El Findbugs lo considero imprescindible.

Otro plugin del que se hablan maravillas últimamente, y que quizá metan en el core de Eclipse en la próxima versión, es el Mylyn. Por lo que yo sé, es un plugin para gestión de tareas. Pero aparte de su integración con Trac (o Bugzilla) me ha parecido un poco molesto y tedioso… aunque la idea subyacente es muy buena.

En todo momento estoy pensando en una versión “oficial” de Eclipse… y gratuita. Nada de MyEclipse o Exadel, que son 2 entornos de pago muy superiores en rendimiento y opciones (al menos el 2º, que le he visto) a lo descrito arriba. De todas formas, si queréis probar cómo funcionan las diferentes mezclas de plugins en vuestro entorno de escritorio, también podéis tirar de Pulse, que se encargará de descargaros una versión especialmente configurada a vuestro gusto.

¿Echáis de menos algún plugin?

¡Felices fiestas!

Publicado en General el por Fran. (1 comentario)

Que mejor manera de felicitar estas fiestas que usando nuestra querida programación, y esto es lo que han hecho algunas personas en la lista de correo del GUL de mi universidad, podéis ver el resultado en este enlace.

Y para los pocos lectores que tenemos, ¡felices fiestas!

PD: Tenéis que seguir el hilo de mensajes entero, sino no tiene gracia.

Presentando Eclipse

Publicado en Recursos el 10 de December, 2007 por Lek. (8 comentarios)

Pues si ayer hablaba de NetBeans, hoy empezaré con Eclipse, ya que a petición de esaiz os comentaré cómo es la manera más fácil de tener un Eclipse configurado para desarrollo web.

Comenzaré presentando la herramienta: Eclipse es un entorno de desarrollo creado inicialmente por IBM, que liberó el código y creó una comunidad a su alrededor. La peculiaridad de este entorno es que se programó por un lado el core de la aplicación, y luego están las mil y una extensiones (plugins) para hacer de todo. Suelo decir que Eclipse es un sistema operativo en sí mismo: puedes mirar el correo, escuchar música, editar documentos de Office, ver PDFs, navegar, sindicarte a blogs… ¡¡incluso puedes programar!!, ¿es o no es la repera?

Pero este tipo de desarrollo tiene sus controversias. Especialmente porque hay extensiones incompatibles entre sí, todas quieren al tipo para ellas solas y hay que hacer malabarismos varios para conseguir que funcionen en sintonía. Para evitar esto, los chicos de la fundación ni cortos ni perezosos empezaron a preparar versiones para descarga ya preparas para ciertas tareas. Y desde el año pasado están las compilaciones masivas: Callisto, Europa (actual) y Ganímedes (el próximo ¿junio?); en teoría, vienen compiladas con una serie de plugins (listados en sus páginas) y se garantiza el correcto funcionamiento entre ellos.

Petición: ¿Hash SHA en C?

Publicado en C/C++, Peticiones el por Fran. (3 comentarios)

Aunque el blog no debería, en principio, usarse para esto voy a inaugurar una categoría llamada Peticiones, en la cual pediremos ayuda a nuestros lectores (que aunque son pocos, espero que nos puedan ayudar). Así que sin más dilación os voy a exponer mi pequeño problema a ver si podéis ayudarme.

Resulta que para un programa en C (sobre Linux) necesito calcular los hashes del contenido de varios ficheros, y buscando por todos sitios no encuentro ninguna librería que realice dicha operación. Lo máximo que he encontrado ha sido el algoritmo de los SHA (que son los que me interesan) para luego programarlo y las GNU Core Utilities que tienen un algoritmo en C para SHA, pero que me da un poco de rabia copiar y pegar sin entenderlo, así que prefiero la solución de una librería que me proporcione las funciones necesarias para realizar dichos hashes.

¿Alguién tiene alguna idea o conoce algo así?