martes, octubre 27, 2009

Reunión del PLUG



El Grupo de Usuarios Linux de La Plata está organizando la próxima reunión, con fecha tentativa el Viernes 13 de Noviembre a realizarse el mismo día que las Séptimas Jornadas de Software Libre en la Universidad Nacional de La Plata.
La reunión la estamos coordinando a través de nuestra Lista de Correos. Están invitados a participar de ambos eventos y a unirse a la lista :)

jueves, septiembre 03, 2009

Día de la Libertad de Software



El Día de la Libertad de Software es una celebración anual a nivel mundial del software libre y de código abierto. Es un evento de educación pública, no solo para celebrar las virtudes de este tipo de software, sino para promover su uso para el beneficio del público.

En La Plata se realizará el Sábado 26 de Septiembre de 2009, y para más información se puede entrar al sitio de la organización en:

http://softwarefreedomday.org/teams/southamerica/argentina/La_Plata

jueves, agosto 27, 2009

Regional Latinoamericana de la Competencia de Programación ACM- IBM



Accenture auspicia la competencia en la sede Argentina
http://www.dc.uba.ar/icpc

La Regional Latinoamericana de la Competencia Internacional de Programacion de la ACM (34th ACM International Collegiate Programming Contest sponsoreada por IBM) se llevará a cabo el sabado 24 de octubre de 2009 simultáneamente en Chile, Colombia,Venezuela, Peru, Brasil y Argentina, Bolivia, México y Cuba.

Los primeros equipos de la Regional pasarán a la Final Mundial que se realizará en febrero de 2010 en Harbin, China.

El Departamento de Computación de la Facultad de Ciencias Exactas y Naturales de la Universidad de Buenos Aires será una de las sedes de la Regional Sudamérica/Sur. La competencia en la sede Argentina está auspiciada además por Accenture.

Ver más detalles en el aviso adjunto o en:

http://icpc.baylor.edu/icpc
http://www.dc.uba.ar/icpc

viernes, agosto 14, 2009

gcc: undefined reference to vtable for



Estuve obteniendo el siguiente error:
Networking.cpp:193: undefined reference to `vtable for Client'

Es mensaje de error es bastante oscuro, pero la solución es muy simple: en caso de usar clases con funciones virtual, gcc exige que éstas funciones sean implementadas en un archivo .cpp:

Si tenemos el siguiente Client.h:
    class Client {
    public:
        Client() {
            // ...
        }
        virtual ~Client() {
            // ...
        }
        virtual void foo() {
            // ...
        }
    }


Tendremos que dividirlo en dos. En Client.h habrá que tener:
    class Client {
    public:
        Client() {
            // ...
        }
        virtual ~Client();
        virtual void foo();
    }


Y en Client.cpp:
Client::~Client() {
    // ...
}
void Client::foo() {
    // ...
}


Para más información lerr la FAQ de gcc sobre vtables.

miércoles, agosto 12, 2009

Mercurial y Git: Múltiples repositorios en SourceForge



Mañana en SourceForge van a implementar el soporte de múltiples repositorios para Git y Mercurial.

El link habla únicamente de Mercurial, pero llegó un mail desde SF.Net diciendo que el soporte de múltiples repositorios será también para Git.

Tanto Git como Mercurial son sistemas de control de revisiones distribuidas que permiten mantener a todo momento el historial de cambios en forma local. Esto es algo muy útil cuando se desea acceder a la historia de un proyecto rápidamente.

Una razón más para hostear proyectos Open Source en SourceForge!

lunes, agosto 10, 2009

Cambio de skin



Cambié un poco la apariencia del blog, ahora es un poco más "human friendly".

martes, agosto 04, 2009

Compiling Python C extensions using gcc



Just a quick reminder. To manually compile a Python C extension on Linux using gcc and without distutils the magic command is:
gcc --shared -fPIC $(python-config --cflags) $(python-config --ldflags) base85.c -o base85.so

Then, to test the new extension:
$ PYTHONPATH=. python
Python 2.5.2 (r252:60911, Jan 4 2009, 21:59:32)
[GCC 4.3.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import base85
>>> base85
<module 'base85' from 'base85.so'>

viernes, julio 24, 2009

Debconf 9



¡Arrancó la semana de charlas en DebConf9! Se pueden ver por streamming todas ellas, transmitidas en vivo desde Cáceres, España.

Para poder verlas hay que usar un reproductor de streamming OGV/OGG, por ejemplo el VLC. Hay dos salas simultáneas y las URLs son:
  • http://video.debconf.org:8000/Upper_talkroom.ogv.m3u
  • http://video.debconf.org:8000/Lower_talkroom.ogv.m3u

El cronograma completo se puede ver en la sección de Streams de la página web de DebConf.

martes, julio 07, 2009

Ultimo momento! Gmail deja de ser Beta



Ahora lo ves...



Ahora no lo vés!

domingo, julio 05, 2009

Mozilla Firefox 3.5 en Linux amd64/x86_64



Hoy se me ocurrió probar Firefox 3.5, pero en la página de Mozilla no hay binarios para amd64/x86_64, por lo que tuve que compiarlos manualmente.

Me resulta muy extraño que no esté listo para bajar ya que no tuve ningún problema en compilarlo. Incluso una vez terminada la compilación, se genera automáticamente el .tar.bz2 que te bajarías de la web de Mozilla.

En Debian Lenny amd64 para sacar a Shiretoko (Firefox 3.5) andando es muy simple.

Como no estaba muy seguro de qué había que hacer, empecé creando una jailroot con debootstrap (me encantan las jailroot!) para poder experimentar un poco. La idea de usar la jailroot es para no tener un montón de paquetes instalados que solo se usan para compilar los fuentes.

El segundo paso es conseguir los fuentes desde el FTP de Mozilla.

Para estar seguro de que todo compile bien instalé las dependencias de compilación del Iceweasel de Debian haciendo:
aptitude build-dep iceweasel
Luego tuve que instalar los siguientes paquetes:
build-essential locales autoconf automake less libdbus-glib-1-dev libasound2-dev libidl-dev libiw-dev libx11-dev libxt-dev
Por último, hay que descomprimir los fuentes y crear un nuevo archivo de configuración llamado .mozconfig que contenga:
. $topsrcdir/browser/config/mozconfig
ac_add_options --enable-application=browser
ac_add_options --disable-tests
ac_add_options --enable-crypto
ac_add_options --disable-debug
ac_add_options --enable-optimize
ac_add_options --with-l10n-base=..

mk_add_options MOZ_CO_PROJECT=browser
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-ff
mk_add_options MOZ_MAKE_FLAGS=-j4
Luego compilar todo y generar el paquete final con:
make -f client.mk build && cd obj-ff && make package
Si no hubo ningún problema, el tarball comprimido con Shiretoko 3.5 debería estar en:
opt-ff/dist/firefox-3.5.en-US.linux-x86_64.tar.bz2
Shiretoko es el nombre interno de desarrollo que le dieron a la nueva versión del navegador. Para que el paquete compilado diga "Firefox" en vez de "Shiretoko" hay que usar una opción de compilación adicional. Esto es asi por cuestiones de Copyright y de licencias propias de Mozilla.

Lo único que cambia es el nombre y las imágenes. Por mi cuenta, Shiretoko me parece bien :)