Archivos para Octubre 2008

Mirror para el libro de FreeBSD.

Roa (http://www.tucancunix.net) ha dado la mano al proyecto del libro de FreeBSD del cual comentaba en anteriores entradas. Ahora contamos con 2 mirros para el libro, así tenemos redudancia para llevar la obra a todos aquellos que deseen ingresar al mundo de FreeBSD.

Les dejo los enlaces:

Sitio principal

Mirror 1

Mirror 2

En breve se estará actualizando el libro con mas contenidos, ahora también contaremos con las aportaciones de Roa.

Un agradecimiento a TuCancUnix por el apoyo al proyecto.

Libro de FreeBSD

Me encuentro escribiendo un pequeño conjunto de “recetas” para servidores FreeBSD. El título de la obra es “Servidores de Internet con FreeBSD“. Ya tengo casi todo terminado. Conforme tenga algo de tiempo libre estaré actualizando el libro. El sitio web es provisional por lo que pudiera tener alguna caída de vez en cuando.

http://fenix.homeunix.org/freebsd/

WxWidgets

He comenzado a experimentar con esta librería.

Un poco de fondo: WxWidgets es un conjunto de librerías para construir interfaces de usuario gráficas en aplicaciones de escritorio. La librería ofrece soporte para C++ de manera nativa. Sin embargo, hay enlaces para .NET, Java, Python y otros lenguajes. La licencia es libre (GPL2). Tiene ya varios años de estar disponibles en las distros mas populares, sin embargo, no le había puesto atención como programador hasta ahora. Ofrece soporte para Linux, Windows, Mac y BSD.

Para instalar los paquetes de desarrollo de la librería en Debian (posiblemente sea igual para Ubuntu):

# apt-get install libwxbase2.8-dev libwxgtk2.8-dev wx2.8-headers

Con estas librerías ya podemos comenzar a crear aplicaciones basadas en WxWidgets.

Puedes utilizar NetBeans, Eclipse, Emacs, Vi, Nano o tu editor favorito para escribir el código. Existe un entorno de desarrollo “oficial” para WxWidgets llamado Code::Blocks.

El programa mas básico en C++ para comenzar con WxWidgets (dibuja una ventana vacía en la pantalla):

#include "wx/wx.h"

class Programa : public wxApp
{
    public:
        virtual bool OnInit();   
};

class Ventana : public wxFrame
{
    public:
        Ventana(const wxString& titulo);
};

DECLARE_APP(Programa)
IMPLEMENT_APP(Programa)

bool Programa::OnInit()
{
    Ventana *v = new Ventana(wxT("Hola mundo"));
    v->Show(true);

    return true;
}

Ventana::Ventana(const wxString& titulo)
    : wxFrame(NULL, wxID_ANY, titulo)
{

}

Ya sé que se debe separar en varios archivos. Para mantener simplicidad lo dejaremos así por esta vez.

Para compilar:

$ g++ programa.cpp -o programa `wx-config --cppflags --libs`

Cuidado con las comillas inversas (`).

Conclusión

WxWidgets te puede ayudar a crear aplicaciones multiplataforma. La parte negativa es que hay que recompilar en cada familia de sistema operativo que quieras correr la aplicación. Sin embargo, debido a que es una librería nativa, tenemos un muy buen desempeño. La licencia y los enlaces que ofrece para que utilices tu lenguaje favorito la hacen una muy buena opción para proyectos de software.

Enlaces de interés:

http://www.wxwidgets.org/

http://www.codeblocks.org/

El Wiki de WxWidgets

Regresaré con ejemplos mas completos de la librería.