Instalando lighttpd y PHP5 en OSX

De forma predeterminanda Mac OSX ya cuenta con un servidor de Apache que se activa en System Preferences -> Sharing -> Web Sharing pero para la gente que nos dedicamos a desarrollo web no nos sirve de mucho si no contamos con PHP5 y con las extensiones respectivas.

He estado buscando un par de tutoriales en línea que ayuden en la tarea, pero por varias horas no pude hacer funcionar esto y todo por un detalle que nadie me recordo. Así que para ello estoy haciendo este pequeño tutorial y en español para la gente que como yo requiere de esto, para ello es necesario que tengamos instalado es XCode que viene en el segundo disco de restauración y creo que también viene completo al descargar el iPhone SDK.

Ya teniendo instalado el XCode necesitamos instalar MacPorts que es una aplicación que permite descargar y portar a Mac OS aplicaciones que normalmente no se tienen compiladas, en verdad es sumamente vital estos dos para cualquier desarrollador que vive en este sistema operativo, adicionalmente les recomiendo contar con iTerm (http://iterm.sourceforge.net/) que es una terminal de comandos mejorada y lo mejor de todo es software libre.

Primer paso, MacPorts


Hay que descargar una de estas versiones Leopard Universal, Tiger Universal o Panther Power PC, abrir el DMG y ejecutar la aplicación que contiene, no hay nada especial hasta aquí, solo hay que continuar hasta que escuchemos el sonido de terminado, una vez instalado hay que abrir nuestra terminal (Terminal o iTerm según se quiera) y hay que teclear lo siguiente:
sudo port -d selfupdate

Una vez que tengamos la pantalla de que todo termino sin problemas hay que continuar con el siguiente paso.

Segundo paso, instalando lighttpd


De nuevo en la terminal vamos a teclear comandos, ahora pondremos.
sudo port install lighttpd

Esto va a tardar un tiempo, ya que tiene que descargar el código fuente y compilarlo, no hay que preocuparnos ya que MacPorts hace toda la tarea pesada por nosotros. Una vez terminado hay que instalar el servidor como un demonio que debe iniciar cada vez que prende la computadora, para ello tecleamos:
sudo launchctl load -w /Library/LaunchDaemons/org.macports.lighttpd.plist

Tercer paso, instalando PHP5


Recordemos, todo esto se hace en la terminal por lo que ahora hay que ingresar lo siguiente, por cierto, este punto requiere de más tiempo para descargar y compilar por lo que recomiendo paciencia:
sudo port install php5 +fastcgi +pear +mysql5 +sqlite

Cuarto paso, configurar


Ya casi tenemos todo listo, ahora falta lo más importante, configurar. Hay que hacer muy bien esto por que en mi caso al no hacerlo bien me hizo perder mucho tiempo.

Primero necesitamos configurar lighttpd para ello vamos a usar un archivo que viene en la instalación:
sudo cp /opt/local/etc/lighttpd/lighttpd.conf.default /opt/local/etc/lighttpd/lighttpd.conf

Luego hay que editarlo para modificar unas partes, lo haremos desde Nano.
sudo nano /opt/local/etc/lighttpd/lighttpd.conf

Nos vamos a la parte de modulos y descomentamos (quitamos el #) los módulos "mod_fastcgi" y si se requiere el "mod_rewrite"

Luego hay que cambiar la ubicación de nuestro directorio base editando la variable "server.document-root" poniendo el que querramos se recomienda /Users/tu_usuario/Sites/ o en mi caso /Users/tu_usuario/Workspace/

Ahora los archivos logs, primero "server.errorlog" a /opt/local/var/log/lighttpd/error.log y "accesslog.filename" a /opt/local/var/log/lighttpd/access.log

Hay que descomentar las variables "dir-listing.active" y "dir-listing.encoding"

Por último hay que descomentar la variable fastcgi.server que son varias lineas que termina justo antes de la variable cgi.assign debe quedar de la siguiente forma:
fastcgi.server = ( ".php" =>
( "localhost" =>
(
"socket" => "/opt/local/var/run/lighttpd/php-fastcgi.socket",
"bin-path" => "/opt/local/bin/php-cgi"
)
)
)

Guardamos el archivo con Ctrl+O y Enter y lo cerramos con Ctrl+X

Ahora hay que crear la carpeta donde se van a estar guardando los archivos de logs:
sudo mkdir -p /opt/local/var/log/lighttpd
sudo mkdir -p /opt/local/var/run/lighttpd

El turno le toca a PHP, requerimos igual copiar un archivo de configuración que viene con la instalación y modificarlo:
sudo cp /opt/local/etc/php5/php.ini-dist /opt/local/etc/php5/php.ini

Lo editamos
sudo nano /opt/local/etc/php5/php.ini

Hay que cambiar la variable "short_open_tag" a que tenga el valor de "on".
short_open_tag = 1

Descomentar la variable "cgi.fix_pathinfo" (quitamos el #).
cgi.fix_pathinfo = 1

Luego hay que cambiar el path de las extensiones, debe quedar:
extension_dir = "/opt/local/lib/php/extensions"

Descomentamos las extensiones que necesitamos, mysql, mysqli.

Quinto paso, probar todo


Para ello primero reiniciamos lighttpd:
sudo launchctl stop org.macports.lighttpd
sudo launchctl start org.macports.lighttpd

Ahora creamos un archivo con el nombre de info.php en la carpeta base que contenga:
<?
phpinfo();
?>

Por último apuntamos nuestro navegador a http://localhost/info.php y debemos estar viendo el detalle de la instalación.

Suerte!!

Notas


Hay que validar que NO esté activo el Web Sharing de lo contrario no va a funcionar lighttpd.

Notas extras



sudo port deactivate php5 @5.3.0_0+fastcgi+macosx+sqlite


sudo port activate php5 @5.3.0_0+fastcgi+macosx+mysql5+pear+sqlite


lighttpd -f /opt/local/etc/lighttpd/lighttpd.conf -D


Referencias


Para iniciar o detener el servidor lighttpd hay que teclear:
http://davidwinter.me.uk/articles/2008/11/22/php5-lighttpd-and-imagick-on-mac-os-x-leopard/
http://henriksjokvist.net/archive/2007/12/setting-up-a-drupal-development-environment-with-lighttpd-in-mac-os-x
http://akelos.org/wiki/setting-up-akelos-on-lighttpd-in-a-mac
http://www.mjijackson.com/2008/02/how-to-install-php-53-alongside-52-on-lighttpd-using-macports
http://lenni.info/blog/2009/01/how-to-deactivate-one-macport-variant-and-switch-to-another-one/

Solo permitir números en un input de HTML

Esta es una pequeña funcion para solo permitir ingresar números en un campo input de HTML, funciona perfectamente en IE, Safari, Chrome y por supuesto Firefox.

function justNumbers(e) {
var keynum = window.event ? window.event.keyCode : e.which;
if ( keynum == 8 ) return true;
return /\d/.test(String.fromCharCode(keynum));
}

<input type="text" onkeypress="return justNumbers(event);">


Espero le sirva a alguien.

Tomcat, Apache y JSP

Hoy amanecí con ganas de jugar un poco con Java, no soy un desarrollador javero, solo quiero poder jugar con Java haciendo algo en JSP, así que para eso necesito tener Tomcat instalado y este es el tutorial para hacerlo.

Actualmente mi configuración es la siguiente:

El objetivo es instalar de la manera más práctica y rápida el Container Tomcat, ocupando las grandes ventajas de Debian, osea el apt-get, además de Automatix, entonces necesitamos lo siguiente:
  • Tener instalado Automatix
  • Instalar los paquetes a través de Automatix
    • sun-java6-bin
    • sun-java6-jdk
    • sun-java6-jre
  • Tener instalado Apache 2
NOTA IMPORTANTE, NO TODO ES SOLO COPIAR Y PEGAR, HAY QUE VALIDAR QUE LOS NOMBRES DE LAS CARPETAS Y ARCHIVOS EXISTAN EN CADA COMPUTADORA, PARA ELLO PODEMOS USAR LOS COMANDAS ls Y less.

Ahora lo que necesitamos es ir a página de Tomcat y descargar la última versión, en mi caso la 6.0.14, hay que descargar el archivo tar.gz, una vez descargado necesitamos extraerlo y ponerlo en /usr/local, en mi caso lo descargue desde Firefox y lo guarde en mi escritorio, los pasos para extraerlo y moverlo de lugar serían los siguientes:

alecs@bender:~$ cd Desktop/
alecs@bender:~/Desktop$ tar -zxvf apache-tomcat-6.0.14.tar.gz
alecs@bender:~/Desktop$ mv apache-tomcat-6.0.14 /usr/local/

Cabe señalar que deje el nombre de la carpeta tal cual vienen en el tar.gz, no le quite la versión ni nada, esto es para a simple vista saber que versión de Tomcat tenemos instalado, digo, no todos nos acordamos de todas las cosas que le instalamos a nuestras computadoras, pero bueno, es mucho problema estar usando ese nombre tan largo, entonces vamos a crear un vínculo a la carpeta con un nombre más corto, para ello haremos lo siguiente:

alecs@bender:~/Desktop$ cd /usr/local/
alecs@bender:/usr/local$ ln -s apache-tomcat-6.0.14/ tomcat

Si hacemos un ln -s debemos ver algo similar a esto:

lrwxrwxrwx 1 root root 21 2007-08-22 11:28 tomcat -> apache-tomcat-6.0.14/

Perfecto, ahora necesitamos tener las variables CATALINA_HOME, JAVA_HOME y JRE_HOME configuradas, en CATALINA_HOME debemos tener la ubicación de Tomcat, en JAVA_HOME la ubicación del JDK y en JRE es obvio. Necesitamos validar que estén definidas estas variables en los archivos /etc/profile y /etc/bash.bashrc, simplemente hacemos un less de cada archivo y buscamos que existan las lineas:

export CATALINA_HOME=/el/path
export JAVA_HOME=/el/otro/path
export JRE_HOME=/otro/path

Podemos ver el contanido de los archivos con el comando less:

alecs@bender:/usr/local$ less /etc/profile
alecs@bender:/usr/local$ less /etc/bash.bashrc

En caso de que no estén estas líneas, entonces necesitamos abrir los archivos y poner al final de ellos lo siguiente:

# Tomcat
export CATALINA_HOME=/usr/local/tomcat

# Java
export JAVA_HOME=/usr/lib/jvm/java-6-sun/
export JRE_HOME=/usr/lib/jvm/java-6-sun/jre/

Para editarlo necesitamos teclear lo siguiente, poniendo en TUEDITOR el editor que prefieras, kate, gedit, vim, etc.:

alecs@bender:/usr/local$ sudo TUEDITOR /etc/profile
alecs@bender:/usr/local$ sudo TUEDITOR /etc/bash.bashrc

Guardamos los archivos y los cerramos.

Ahora lo que sigue es vincular el ejecutable del Tomcat para poderlo iniciar, para ello hacemos lo siguiente:

alecs@bender:/usr/local$ ln -s /usr/local/tomcat/bin/catalina.sh /etc/init.d/tomcat

Antes de iniciar el servidor de Tomcat necesitamos cerrar y abrir de nuevo nuestra terminal, ya que hasta ese momento van a definirse las variables que configuramos anteriormente (CATALINA_HOME, JAVA_HOME y JRE_HOME).

Nos falta validar que las variables esten bien definidas, para eso necesitamo hacer un ls -l de cada variable, si nos regresa el listado de un directorio distinto al que estamos significa que todo esta bien:

alecs@bender:~$ ls -l $CATALINA_HOME
alecs@bender:~$ ls -l $JAVA_HOME
alecs@bender:~$ ls -l $JRE_HOME

Ahora ya solo necesitamos iniciar el Tomcat:

alecs@bender:~$ sudo /etc/init.d/tomcat start

Si nos marca algún error, hay que regresar y ver que paso se pudo haber hecho mal, si no marca error hay que abrir nuestro navegador y entrar a http://localhost:8080/ debemos de ver una página con el logotipo de Tomcat, si es así, felicidades, ya tienes configurado el Container, ahora ya solo necesitas tener una página demo para empezar a jugar, en mi caso hice un archivo que se llama prueba.js y lo puse en mi en el root del Tomcat, la ubicación es /usr/local/tomcat/webapps/ROOT/ el contenido de mi archivo es:

<html>
<body>
<% for ( int i = 0 ; i < 10 ; i ++ ) { %>
Hola Mundo!<br />
<% } %>
</body>
</html>

Y entro a verlo en http://localhost:8080/prueba.jsp

Ya solo falta vincular Apache con Tomcat, para ello vamos a necesitar instalar el paquete libapache2-mod-jk:

alecs@bender:~$ sudo apt-get install libapache2-mod-jk

Ahora necesitamos editar dos archivos, el primero es /etc/libapache2-mod-jk/workers.properties:

alecs@bender:~$ sudo TUEDITOR /etc/libapache2-mod-jk/workers.properties

En la línea que dice workers.tomcat_home necesitamos poner la ubicación del Tomcat /usr/local/tomcat y en la línea que dice workers.java_home debemos poner $JAVA_HOME quedando de la siguiente manera:

workers.tomcat_home=/usr/local/tomcat

workers.java_home=$JAVA_HOME

Guardamos y editamos el último archivo /etc/apache2/mods-enabled/jk.conf, normalmente no existe, entonces abrimos el archivo de la siguiente manera:

alecs@bender:~$ sudo TUEDITOR /etc/apache2/mods-enabled/jk.conf

En este archivo guardamos lo siguiente:

# Where to find workers.properties
JkWorkersFile /etc/libapache2-mod-jk/workers.properties

# Where to put jk logs
JkLogFile /var/log/apache2/mod_jk.log

# Set the jk log level [debug/error/info]
JkLogLevel info
JkShmFile /var/log/apache2/jk-runtime-status

# Select the log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "

# JkOptions indicate to send SSL KEY SIZE,
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories

# JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T"

# Send servlet for context / jsp-examples to worker named worker1
#JkMount /jsp-examples ajp13_worker
# Send JSPs for context /jsp-examples/* to worker named worker1
# JkMount /jsp-examples/* ajp13_worker
JkMount /*.jsp ajp13_worker

Guardamos, cerramos el archivo y reiniciamos el servidor Apache:

alecs@bender:~$ sudo /etc/init.d/apache2 restart

Para probarlo vamos a ocupar el mismo archivo de antes, prueba.jsp, abrirmos Firefox y entramos a http://localhost/prueba.jsp

Debemos ver la misma página de antes, sino la vemos algo hicimos mal, hay que verificar que pudo ser.

Hay que observar que el archivo sigue estando en el mismo lugar, no lo hemos cambiado de lugar, lo que estamos haciendo es solicitar el mismo archivo en la misma ubicación pero ahora desde el Apache, no desde Tomcat, en si lo que logramos con esto fue quitar el nada atractivo puerto 8080 de nuestra dirección y unificar las URLs, por lo tanto, si pidiéramos por ejemplo el archivo http://localhost/otra/carpeta/miarchivo.jsp sería necesario que también se viera en http://localhost:8080/otra/carpeta/miarchivo.jsp con lo que conlleva, tener las carpetas y el archivo dentro de la carpeta webapps/ROOT/ del Tomcat.

Esto no es igual que lo que podemos hacer con PHP, Perl u otro, pero si nos permite tener varias aplicaciones con distintas tecnologías corriendo bajo Apache.

Dejen cualquier duda o comentario.

Referencia:
http://ubuntu-tutorials.com/2007/01/27/how-to-find-your-ubuntu-or-kernel-version/
http://www.epinions.com/pr-Hewlett_Packard_Compaq_Presario_2200_Series_Customizable_Notebook_Pc_PK800AV_PC_Notebook/display_~full_specs
http://www.glug.es/node/1857
http://www.osmosislatina.com/apache/java.htm
http://www.osmosislatina.com/tomcat/configuracion.htm
http://tomcat.apache.org/
http://www.di.uniovi.es/~dflanvin/docencia/dasdi/teoria/Transparencias/05.%20Ejemplos%20JSPs.pdf
http://geneura.ugr.es/~jmerelo/JSP/
http://lomu.homelinux.org/tomcat.pdf
http://www.wikilearning.com/configuracion_de_mod_jk_apache_y_tomcat-wkccp-7230-2.htm

Java 1.6 tan chido como un Mustang 65

Pues por fin llegó tan esperada versión de Java, la 1.6 que ya tiene soporte para JavaScript y la verdad esto si es divertido, poder programar en Java con sintaxis JavaScript es de lo más chido que puede haber, y para muestra basta un ejemplo.

Basta tener una clase principal en java con esto:

import java.io.FileNotFoundException;
import java.io.FileReader;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;

public class Main {
public Main() {
ScriptEngineManager manager
= new ScriptEngineManager();
ScriptEngine engine
= manager.getEngineByName("js");
try {
engine.eval(new FileReader("codigo.js"));
} catch (FileNotFoundException ex) {
ex.printStackTrace();
} catch (ScriptException ex) {
ex.printStackTrace();
}
}

public static void main(String[] args) throws ScriptException {
new Main();
}
}

Y ahora si lo chido, un archivo que se llame codigo.js con lo siguiente:

importPackage(java.awt);

frame = new Frame("JavaScript");
frame.show();
frame.setSize(new Dimension(200,100));

frame.add(new Button("OK"));
frame.show();


Basta hacer un javac con la clase de Java y luego un java para ejecutarla.

Tal vez para unos no puede resultar tan sorprendente esto, pero solo imaginen, poder hacer una ventana y toda una aplicación completa en JavaScript sin tener que estar creando y declarando clases, esto si es un lenguaje potente, y por supuesto se puede compilar para que no se tenga que interpretar el js cada vez que se ejecuta.

XULBuilder

Pues hice una pequeña aplicación que poco a poco voy a ir construyendo para crear interfases en XUL en tiempo real, algo así como Dreamweaver, NVU, Glade pero para interfases en XUL.

Unas pantallas de la aplicacion:











Si quieres bajarlo, lo puedes hacer aqui:

http://raccoon.wt.com.mx/utils/xulbuilder_0.1.zip
http://raccoon.wt.com.mx/utils/xulbuilder_0.1.tar.gz

JSLib y Y!UI en XulRunner

Actualmente en mi empresa estamos creando un framework que se llama Raccoon, si, como el mapache, el objetivo es el de facilitar el desarrollo web usando en gran medida librerías ya hechas, probadas y con alta calidad.

Entre los distintos entornos de desarrollo web esta el standalone usando XulRunner, si quieren más información al respecto pueden ver este artículo que es introductorio al tema:

http://huevon.blogspot.com/2006/02/ejemplo-de-una-aplicacin-con-xulrunner.html

A veces es muy complicado o de flojera tener que teclear muchas lineas cuando se desarrolla para XulRunner solo para completar una tarea, como por ejemplo el leer un archivo donde al no tener ayuda podemos teclear hasta 20 lineas o más, hay librerías como JLib que nos facilitan esto, donde solo tenemos que teclear un par de lineas y hacemos la misma tarea.

También es enfadoso tener que estar reimplementando en varias formas el XMLHttpRequest, pero Yahoo con el yui (Yahoo! UI, http://developer.yahoo.com/yui/) esto se simplifica igual con muy pocas líneas.

Además esto conlleva a tener mejores prácticas de codificación, pero lo mejor es que nos podemos centrar a solucionar realmente un requerimiento sin perder mucho tiempo en implementación de técnicas.

Para ejemplos más amplios de JSLib visiten http://jslib.mozdev.org/ y para Y!UI visiten http://developer.yahoo.com/yui/

Y si quieren implementar estas dos librerías en su aplicación XulRunner solo tienen que hacer lo siguiente, primero hay que descargar los .jar, ya les facilité la vida, solo bajenlos de:
http://raccoon.wt.com.mx/libs/jslib.jar
http://raccoon.wt.com.mx/libs/yui.jar

Estas versiones son de JSLib la 0.1.345 y de Y!UI la 0.11.

Lo que tienen que hacer es copiar estos archivos a la carpeta "chrome" que tienen en su aplicación XulRunner, ahí se necesitan los archivos .jar, luego abran el archivo "chrome.manifest" y agreguen al final del archivo las siguientes dos líneas:

content jslib jar:jslib.jar!/
content yui jar:yui.jar!/

Listo, ya tienen instaladas las librerías en su aplicación, para usarlas, en su archivo XUL en el que estén trabajando sobre agreguen los archivos js que necesiten, por ejemplo para JSLib:

<script type="application/x-javascript" src="chrome://jslib/content/jslib.js" />

Hagan los includes necesarios desde JavaScript, por ejemplo:

/* IO */
include (jslib_dir);
include (jslib_dirutils);
include (jslib_file);
include (jslib_fileutils);
/* Sound */
include (jslib_sound);
/* Utils */
include (jslib_date);
include (jslib_prefs);
include (jslib_system);
/* XUL */
include (jslib_dialog);
include (jslib_window);
/* Zip */
include (jslib_zip);

Y listo ya usen las librerías.

Para yui solo agreguen los archivos que necesiten, en el .jar solo vienen las versiones min:

<script type="application/x-javascript" src="chrome://yui/content/yui-min.js" />
<script type="application/x-javascript" src="chrome://yui/content/event-min.js" />
<script type="application/x-javascript" src="chrome://yui/content/connection-min.js" />

En verdad que es muy facil implementar estas librerias y nos ahorran mucho tiempo.

Referencias:

http://jslib.mozdev.org/
http://jslib.mozdev.org/jsLilb_glue.html
http://jslib.mozdev.org/docs.html
http://books.mozdev.org/html/mozilla-chp-5-sect-5.html#mozilla-CHP-5-SECT-5.1
http://developer.yahoo.com/yui/
http://developer.yahoo.com/yui/#start
http://developer.yahoo.com/yui/yahoo/
http://developer.yahoo.com/yui/event/
http://developer.yahoo.com/yui/dom/
http://developer.yahoo.com/yui/connection/
http://developer.yahoo.com/yui/#articles
http://developer.yahoo.com/yui/#cheatsheets

Instalando AIGLX y Compiz en Ubuntu Dapper

ATENCION!!!!! POR FAVOR ANTES DE SEGUIR LEYENDO VISITEN ESTA PAGINA http://www.guia-ubuntu.org/dapper/index.php/Xgl_y_Beryl


Desde hace tiempo andaba buscando alguna forma de poder probar Compiz en mi computadora, la cual no es muy agraciada, es una laptop Compaq Presario 2200, la cual es muy mundana, Celeron a 1.4 con 1Gb de RAM, pero el video siempre me ha dejado no satisfecho.

Me decidí a investigar como poderlo instalar y me encontré con AIGLX (Accelerated Indirect GL X) que en pocas palabras es pasarle la chamba realmente a la tarjeta de video para dejar descansar al CPU y a la RAM logrando cosas maravillosas, lo mejor de todo es que no se necesita cambiar el servidor X por otro, solo es agregarle opciones.

Se puede hacer todo lo que Compiz permite, la verdad esta muy chido y por eso les comparto la forma de poder instalarlo.

Si quieren ver demos, los vínculos son los siguientes:

Minimizar - http://www.gnome.org/~jrb/aiglx/shot01.ogg
Minimizar con otro efecto - http://www.gnome.org/~jrb/aiglx/shot02.ogg
Efecto en los menús - http://www.gnome.org/~jrb/aiglx/shot03.ogg
Y un video muy claro - http://www.youtube.com/watch?v=-CgqWlX_GsI

Bueno si ya están convencidos de que quieren tenerlo en su computadora, primero deben asegurarse que tienen Ubuntu Dapper instalado y que tienen una tarjeta:
ATI: Radeon 7000 hasta 9250 (generaciones r100 y r200)
Intel: i810 hasta i945
3dfx: voodoo3 hasta voodoo5.

Si vamos bien hasta aquí, entonces hay que hacer lo siguiente.

Hay que agregar los siguientes repositorios a /etc/apt/sources.list

usuario@x:$ sudo gedit /etc/apt/sources.list

E insertamos esto:

deb http://xgl.compiz.info/ dapper aiglx
deb http://xgl.compiz.info/ dapper main


Ahora hay que agregar una llave de encriptación para poder bajar los paquetes.

usuario@x:$ wget http://ubuntu.compiz.net/quinn.key.asc -O -
usuario@x:$ sudo apt-key add -

Bien, ya tenemos la llave, ahora a actualizar los repositorios y los paquetes.

usuario@x:$ sudo apt-get update
usuario@x:$ sudo apt-get dist-upgrade

Instalamos el último paquete DRI que es un módulo vital para el servidor de video.

usuario@x:$ sudo apt-get install linux-dri-modules-common linux-dri-modules-`uname -r`

Ahora regeneramos el indice de paquetes

usuario@x:$ sudo /sbin/ldm-manager

Bien, ahora instalemos compiz

usuario@x:$ sudo aptitude purge compiz-aiglx compiz-aiglx-gnome
usuario@x:$ sudo apt-get install compiz-vanilla-aiglx compiz-vanilla compiz-vanilla-gnome

Ahora hay que configurar el servidor de video.

usuario@x:$ sudo gedit /etc/X11/xorg.conf

El el archivo verificamos que tengamos este dato:

DefaultDepth 24

En la sección de módulos verificamos que tengamos esto, puede variar el orden solo hay que agregar o comentar los necesarios:

Section "Module"
# Load "GLcore"
Load "bitmap"
Load "ddc"
Load "dbe"
Load "dri"
Load "extmod"
Load "freetype"
Load "glx"
Load "int10"
Load "type1"
Load "vbe"
EndSection

En la parte de Section "Device" agregamos lo siguiente:

Section "Device"
...
Option "XAANoOffscreenPixmaps"
...
EndSection

En Section "ServerLayout" agregamos:

Section "ServerLayout"
...
Option "AIGLX" "true"
...
EndSection

Validamos que no este comentado el módulo de DRI:

Section "DRI"
Mode 0666
EndSection

Y por último validamos que al final del archivo tengamos:

Section "Extensions"
Option "Composite" "Enable"
EndSection

Guardamos el archivo y nos vamos al ultimo paso.

Abrimos y editamos el archivo /etc/gdm/gdm.conf-custom:

usuario@x:$ sudo gedit /etc/gdm/gdm.conf-custom

Y ponemos lo siguiente:

[servers]
0=aiglx

[server-aiglx]
name=aiglx server
command=/usr/bin/Xorg-air :0
flexible=true

Guardamos y reiniciamos el GDM:

usuario@x:$ sudo /etc/init.d/gdm restart

O cerramos sesion y volvemos a entrar.

Cualquier duda consulten las referencias:

http://doc.gwos.org/index.php/Xorg_Aiglx_Compiz
http://fedoraproject.org/wiki/RenderingProject/aiglx
http://en.wikipedia.org/wiki/AIGLX
http://swik.net/Aiglx
http://www.ubuntuforums.org/showthread.php?t=134743

DBDesigner 4 en Ubuntu Dapper

Primero, DBDesigner es una aplicación para diseñar de forma gráfica las bases de datos en MySQL, es el equivalente de Oracle's Designer©, IBM's Rational Rose©, Computer Associates's ERwin© y theKompany's DataArchitect©, la gran diferencia es que es para MySQL y segunda más importante, es libre, licensiado bajo la GPL, está desarrollado en Kylix, por lo que funciona en Windows y Linux.

En Ubuntu Dapper no es tan fácil la instalación ya que requiere unas librerías que no trae esta distribución, pero para agilizar este proceso, como siempre aquí les pongo este pequeño tutorial.

Antes que nada, hay que ir a http://fabforce.net/dbdesigner4/ y descargar el DBDesigner, dense una vuelta para ver que hay de nuevo.

Hay que instalar este paquete que es el que configura las xlibx

abc@def:/$ wget http://www.chorse.org/junkroom/xlibs-dummy/xlibs_6.8.2-77_all.deb
abc@def:/$ sudo dpkg -i xlibs_6.8.2-77_all.deb

Lo siguiente que hay que hacer es bajar e instalar la librería de Kylix para poder ejecutar aplicación hechas en este.

abc@def:/$ wget http://heanet.dl.sourceforge.net/sourceforge/kylixlibs/kylixlibs3-borqt_3.0-1_i386.deb
abc@def:/$ sudo dpkg -i kylixlibs3-borqt_3.0-1_i386.deb

Ahora solo nos queda crear unos vínculos simbólicos.

abc@def:/$ cd /usr/lib
abc@def:/$ sudo ln -s kylix3/libborqt-6.9-qt2.3.so
abc@def:/$ sudo ldconfig
abc@def:/$ sudo ln -s /usr/lib/kylix3/libborqt-6.9.0-qt2.3.so /lib/libborqt-6.9-qt2.3.so

Un último paso que debemos realizar es instalar un driver para MySQL

abc@def:/$ wget http://crlab.com/dbx/dbxmda.tar.gz
abc@def:/$ tar -zxvf dbxmda.tar.gz
abc@def:/$ sudo mv Desktop/DbxMda/libsqlmda.so.3.00 /usr/lib
abc@def:/$ sudo ldconfig

Por último nos queda ejecutar la aplicación.

abc@def:/$ ./el/path/donde/se/encuentre/DBDesigner4/DBDesigner4

Para que no nos marque el error de "Unable to Find Procedure getSQLDriverMYSQL", hay que cambiar los datos del driver en avanzadas con los siguientes datos:

- DriverName: MySQL
- GetDriverFunc: getSQLDriverMySQL
- LibraryName: libsqlmda.so.3.00
- VendorLib: libsqlmda.so.3.00

También podemos hacer los cambios en el archivo:

abc@def:/$ ~/.DBDesigner4/DBConn_DefaultSettings.ini

Happy Codding.