IV Jornadas Andaluzas de Software Libre

sábado, 6 de noviembre de 2004

Hoy he participado como ponente en las IV Jornadas Andaluzas de Software Libre. Mi ponencia: SMB Web Client, Abriendo Windows a la WWW

Salimos (María y yo) de Sevilla a las 7, dirección Cadiz y a pesar del diluvio que nos cayó en el camino, llegamos poco después de las 9 a Algeciras, donde se celebraba el evento. La ponencia comenzaba a las 10 y la escuela estaba todavía desierta.

Afortunadamente, ya había gente de la organización y me lo pusieron todo muy fácil. Aunque al principio la ponencia se iba a celebrar en el Salon de Actos (bonito), una persona de los asistentes tenía dificultades físicas y la pasamos a un aula de la planta baja.

Con media hora de retraso, comencé a torturar a unas 20 personas con mi verborrea confusa y mi tono adormecedor. Siempre recordaré a un tipo con gafas y canoso que no hacía mas de bostezar y dar cabezadas. Bueno, también hubo gente que se atrevió a preguntar y aparentar interés.

Después de la ponencia, aún me quedaron ganas de asistir al Taller de PXES (muy interesante) para aprovechar equipos obsoletos. Por desgracia, no pudieron terminarla porque cerraban la escuela a las 2.

Antes de regresar a Sevilla, paramos a comer en El Palmito, muy rico y muy caro (70€), donde asistimos a un banquete de boda con una solterona fea, un crío agazapado detrés de un centro de mesa, una señora que no cabía en su silla, una vieja graciosa, un viejo igualito que Di Stefano, y unas vistas a una ortopedia. También hubo tiempo para que María hiciera unas cuantas fotos al puerto (que está retocando mientras estoy escribiendo). A pesar del viento y el día gris, Algeciras se ve preciosa.

Me ha gustado la experiencia, pero no pienso ponerme el polo de Ono (lo siento, es feo feo ;-)).

Airis Gea 790

sábado, 30 de octubre de 2004

Mi nuevo equipo es un portátil: Airis Gea 790. Le he instalado Debian Sarge sin ningún problema (utiliza i810 en las X) Sus características: * Intel Pentium IV 3.06 HyperThreading * 512 Mb RAM DDR 333 * 60 Gb Disco duro * COMBO (CDRW + DVD) * 4 x USB 2.0 * Tarjeta de Red 10/100 MB Además del cambio de equipo, he cambiado de escritorio y estoy utilizando Gnome. Es claro y elegante, además de cómodo.

Como instalar Debian Woody en un Acer Extensa 620

miércoles, 23 de abril de 2003

Instalacion de Woody desde disquetes BF2.4
1 disquete de rescate
1 disquete con la instalacion
4 disquetes de drivers

El resto del sistema lo instalo desde Internet

Pasos:

- arranco con el disco de rescate: Loading linux.bin……
- bonito pinguino y me pide el disquete de instalacion root
- idioma (es) y teclado (qwerty/es)

- creacion de particiones
hda1: 64 tipo 82
hda2: 600 arrancable
hda3: 776.21

- inicializacion de particiones
hda1: swap
hda2: ext3 /
hda3: ext3 /home

- instalacion de nucleo y modulos
disquetes de rescate y controladores (1 a 4)

- configurar soporte de pcmcia: Controladora PCMCIA i82365

- configurar la red
nombre: acer
es pcmcia? NO
dhcp/bootp? no
ip: 10.41.1.67/255.255.255.0
gw: 10.41.1.5
dominio: personal.lan
dns: 10.41.1.69

- instalacion de sistema base
medio: red
url: http://ftp.us.debian.org/debian
esto tarda bastante…

- hacer el sistema arrancable: /dev/hda (MBR) y reiniciar

Congratulations!!!

mas cosas…

GMT? yes
Time zone: Europe/Madrid

MD5 passwd? yes
shadow? yes
password root:

quito y pongo la pcmcia para que active la red

ppp to install? no
apt source: http
non-Us? yes
non-free? yes
contrib? yes
From US: ftp.us.debian.org (no proxy)
another apt source? no
security updates? yes

run tasksel? no
run dselect? no
se baja los parches de seguridad

esperar un ratito
decirle a exim que no configure nada (5) y…

Have Fun!

Como perdi 60 kilos en 12 meses

sábado, 29 de marzo de 2003

En Enero de 2001 pesaba 150 kilos. ¡Casi no podia creermelo! No me habia dado cuenta de lo enorme que estaba. Pero… ¡año nuevo, vida nueva! no… demasiado tipico… lo cierto es que con la ayuda de mi mujer (entonces novia) y mis padres y armándome de muchisima voluntad, comence a perder peso. Lo primero que hice fue ponerme a andar. De casa al trabajo, y del trabajo a casa (al mediodia). Las primeras veces se hacia muy duro, pero poco a poco, con el paso de las semanas, empece a encontrarme bien andando. Durante este tiempo perdia casi a diario. Pase del mas completo sedentarismo a realizar un poco de ejercicio. Ademas de andar, elimine (casi) de mi dieta los dulces, los refrescos, … todas esas cosas que me gustaban tanto… y comia pan de molde integral, leche desnatada, fruta, … etc. Una dia en mi dieta era asi: Desayuno: Sandwich de jamon cocido y vaso de leche desnatada Almuerzo: Un solo plato (con agua o Nestea) Cena: Manzana y vaso de leche (bueno… los fines de semana me pasaba un pelín) Despues pase de andar a correr. Lo hacia a diario, entre 3 y 4 kilometros. Y durante un periodo aproximado de 2 meses practique full-contact recibiendo clases de mi hermano. Al final consegui mi objetivo de bajar de los 100 kilos de peso. Si alguien lee esto y esta en la misma situacion que yo estaba en Enero de 2001, solo le doy un consejo:

cree en ti

Como producir programas internacionalizados

domingo, 20 de julio de 1997

Este documento contiene la información básica para crear programas con Soporte de Idioma Local (NLS), utilizando la biblioteca ‘libintl’ y el paquete GetText.

1 Adaptación de los fuentes 1.1 Ficheros de cabecera necesarios El fichero de cabecera propio de la biblioteca:
#include 
1.2 Directorio de localización Se trata de un directorio en el que se almacena la informaci�n para cada idioma. Suele ser /usr/share/locale.
#define DIRLOCALE “/usr/share/locale”
1.3 Nombre del paquete El nombre del paquete es elección suya. Sólo advertir que supondría un grave problema la existencia de otro paquete internacionalizado con el mismo nombre. Por ejemplo
#define PAQUETE “miprog”
1.4 Abreviatura de la sustitución de cadenas Por motivos prácticos, se debe definir una macro que abrevie la sustitución de cadenas. Por ejemplo
#define _(Cadena) gettext(str)
Luego, cada cadena que deba ser traducida se trata de la siguiente forma: En el caso
printf("�Hola, mundo!");
se sustituye por
printf(_("�Hola, mundo!"));
1.5 Inicialización del entorno Al principio del programa, antes de la primera cadena, y usualmente en ‘main’, se realizan las siguientes llamadas:
bindtextdomain(PAQUETE,DIRLOCALE);
textdomain(PAQUETE);
1.6 Compilación Finalmente, se compila con la opcion -lintl:
cc -omiprog miprog.c -lintl
y eso es todo… En adelante el programa tomará la variable de entorno LANG para conocer el idioma que debe utilizar. Buscará en el directorio /$LANG/LC_MESSAGES un archivo con el nombre .mo. Si existe, utilizará los mensajes traducidos que contenga, en caso contrario prevalecerán los originales. NOTA: Para mayor portabilidad, se recomienda que la internacionalizaci�n solo constituya una opción dentro del Makefile. Todavía hay muchos sistemas que no han adoptado el estándar NLS. 2 Creación de los mensajes para cada idioma Para crear los archivos .mo se utiliza el paquete GetText, del que solo vamos a describir las dos más importantes: xgettext y msgfmt. 2.1 xgettext Es el programa que extrae las cadenas de los fuentes en C.
$ xgettext [OPCIONES] ARCHIVO-DE-ENTRADA …
-a, –extract-all obtiene todas las cadenas -d, –default-domain=NOMBRE usa NOMBRE.po como salida, en lugar de messages.po. -f, –files-from=ARCHIVO obtiene la lista de archivos de entrada desde ARCHIVO. -i, –indent escribe el archivo .po utilizando el estilo de sangr�as (m�s bonito). -j, –join-existing une los mensajes con el archivo existente. -p, –output-dir=DIR los archivos de salida se pondr�n en el directorio DIR -w, –width=NUMERO ajusta la anchura de la p�gina de salida. -x, –exclude-file=ARCHIVO no se extraen las cadenas contenidas en ARCHIVO. 2.2 msgfmt Es el compilador de ficheros de mensajes: obtiene un fichero binario .mo desde uno fuente .po.
$ msgfmt [OPCIONES] ARCHIVO.po
-c, –check comprueba las cadenas de texto traducidas. -o, –output-file=ARCHIVO indica que el nombre del archivo de salida ser� ARCHIVO. -v, –verbose muestra las anomal�as del archivo de entrada 3 Ejemplo: El programa bye bye.c:
#include
#include

#define DIRLOCALE “/usr/share/locale”
#define PAQUETE “bye”
#define _(Cadena) gettext(Cadena)

main()
{
bindtextdomain(PAQUETE,DIRLOCALE);
textdomain(PAQUETE);
printf(_("Bye, people!n"));
}

gettext -ai -dbye bye.c
rado, aproximadamente, el siguiente fichero: bye.po:
# SOME DESCRIPTIVE TITLE.
# Copyright © YEAR Free Software Foundation, Inc.
# FIRST AUTHOR , YEAR.
#
#: bye.c:12
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION"
"POT-Creation-Date: 1997-07-17 21:52+0000"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE"
"Last-Translator: FULL NAME "
"Language-Team: LANGUAGE "
"MIME-Version: 1.0"
"Content-Type: text/plain; charset=CHARSET"
"Content-Transfer-Encoding: ENCODING"
#: bye.c:16
msgid "Bye, people!"
msgstr ""
e introduzca los TODOS los campos de traducci�n. No se olvide de traducir la cadena. da así:
# Mensajes en Castellano para BYE
# Victor M Varela , 1997.
#
msgid “”
msgstr “”
"Project-Id-Version: bye 1.00n"
"POT-Creation-Date: 1997-07-17 22:15+0000n"
"PO-Revision-Date: 1997-07-17 22:20 MET"
"Last-Translator: Victor M Varela"
"Language-Team: Spanish"
"MIME-Version: 1.0"
"Content-Type: text/plain; charset=iso-8859-1”
"Content-Transfer-Encoding: 8-bit"
#: bye.c:16
msgid "Bye, people!"
msgstr "¡Adios, gente!"
y ejecute: Se habrá creado el fichero “es.mo"… (lo de “es” va por “espa�ol") * Copie el fichero es.mo al directorio /usr/share/locale/es/LC_MESSAGES con el nombre bye.mo. * Ahora compile:
cc -obye bye.c -lintl
Y ya está, ahora sólo queda hacer un par de pruebas: * Ejecute: LANG=es bye y obtendrá ¡Adios, gente! * Ejecute: LANG=otro-valor bye y resultará ¡Bye, people!