domingo, 20 de julio de 2008

Migrando de Delphi a Lazarus

No es que me sobre el tiempo, ni siquiera que este aburrido, pero nuevamente me puse un desafío sobre mis espaldas que es realmente difícil de cumplir.
No es que migrar una aplicación de Delphi a Lazarus sea inviable, nada mas lejos de la realidad, por cierto, pero específicamente esta bella librería de Delphi que intento migrar usa DEMASIADOS mensajes a la Api de Windows...

Repasando los pasos para comenzar a migrar una aplicación de Delphi a Lazarus son muy simples.

1) Crea una estructura nueva, independiente de la que contiene a la aplicación Delphi, de modo de que lo que toques no afecte a tu aplicación Delphi (es básico pero muy pocos lo hacen).
2) Para cada archivo de proyecto delphi (solo para el dpr)

makepasx Proyect1.dpr

3) Para cada archivo .pas dentro de la unidad ejecuta el siguiente comando

makepasx unit1.pas

4) para cada formulario delphi ejecuta el siguiente comando

dfmtolfm unit1.dfm

5) Lazarus utiliza para cada form un archivo de recurso extensión lrs. Para generarlo:

lazres unit1.lrs unit1.lfm

Hecho. ya tenemos todo lo necesario para dar el primer paso en nuestro camino de 1000 kms (el mas importante), ahora solo queda compilar y ver.

Generalmente algunas funciones o llamadas varían un poco entre Delphi y Lazarus. Podría colocar algunas de ellas aquí, pero no tiene sentido porque son muchas. En lugar de eso les daré una forma de resolver las discrepancias de la manera mas simple, o por varios métodos que en general me hacen llegar al resultado correcto:

1) Si no encuentras un identificador o fuente busca las referencias en los fuentes de lazarus. Suena tonto? es lo mas simple, de esta manera puedes saber que unidad lo define y que objetos lo utilizan.

2) Si el identificador o método no existe en lazarus, ve a los foros de lazarus y busca por el. De seguro antes alguien choco con esa piedra y encontró como saltarla. ;)

3) Si nada de eso funciona, el amigo google viene al rescate. Puedes probar lazarus nombreendiscrepancia o agregarle la palabra reemplazo, etc.

Por último, puede suceder el caso como en la librería que intento migrar, que haya DEMASIADAS llamadas a la api de windows. En este caso el punto 2 y el 3 suelen ayudar mucho.

4) Subscribete a los grupos de lazarus y fpc. Quien mejor que quienes ya han estado ahi pueden ayudarte? Incluso si es una funcionalidad no suportada pueden ayudarte a implementarla y se producirá el milagro: la librería de lazarus y fpc se enriquece. :)

En otras entregas les ire comentado acerca de mis progreso en la conversión y como se fueron resolviendo los problemas.

Namaste.

martes, 15 de julio de 2008

Steve Jobs : Ama lo que haces . Inspirador

Este video cuenta tres historias.


lunes, 14 de julio de 2008

Capturas de Pantalla Ubuntu y Lazarus

Para la gente que pregunto por como se ve lazarus actualmente, primero les presento mi escritorio Linux, donde convive lo mejor de vista (si es que hay algo) Mac y Linux. Para que no digan que aqui discriminamos a nadie. ;)





Y para continuar, así se ve la versión actual de lazarus con todos los componentes de Remobjects instalados.



Espero que les haya gustado.

Namaste

domingo, 13 de julio de 2008

Ubuntu 8.04 inestable por momentos.

Existen pruebas de que con la combinación de determinado harwdware Ubuntu 8.04 (y otras distros también) están provocando que la caja linux se congele.

Algunos culpan al nuevo kernel (experimental versión 2.6.24-19-generic) otros a los drivers de video y la lista sigue. Yo estoy convencido que es el kernel porque con el previo no había inconvenientes.

Que hacer? Bueno, sabemos que ubuntu es inestable, al menos mas inestable que debian stable, de modo que de nada sirven las quejas, mejor llenar un bug report y confiar en la predisposición de los desarrolladores. Siempre es mejor que confiar en las soluciones de código cerrado, por supuesto :)
De modo que si no quieres pasar por estos temas simplemente tomas debian y serás feliz (aunque tal vez anticuado). A los que nos gusta la emoción y el riesgo seguiremos teniendo sobresaltos, como todo cuando crece.

Pero no se desesperen la solución es bastante simple. Aqui los pasos a seguir.

Abre una ventana de terminal.

sudo gedit /boot/grub/menu.lst

Busca la línea de boot de la imagen que estas ejecutando, se podría ver así

kernel /vmlinuz-2.6.24-19-generic root=/dev/md2 ro quiet splash

Remplazala por

kernel /vmlinuz-2.6.24-19-generic root=/dev/md2 ro quiet splash locksource=acpi_pm nolapic_timer nohz=off

Sal grabando los cambios

Reinicia tu caja linux y a gozar. Los cuelgues de detienen y todo vuelve a la normalidad.

Namaste.

sábado, 12 de julio de 2008

Repositorios Lazarus Testing

Pensando en lo dificil que es a veces para el usuario novato instalar lazarus en un sistema linux, he creado unos repositorios para facilitarles el trabajo.

Aquí las instrucciones.

Repositorio Lazarus/FPC de versiones testing

La versión de Lazarus es la 0.9.25 revisión 15753 compilada con GTK2 en ide y paquetes, que en nuestros labs funciona perfectamente (es un delphi 7 con esteroides) :P

La versión de freepascal es 2.3.1 super testing, solo para arriesgados (aunque confieso no nos ha dado una sola queja, al contrario)

A continuación las instrucciones.

Repositorios lazarus y freepascal testing.
SIN NIGUNA GARANTIA. USELOS BAJO SU PROPIA RESPONSABILIDAD.

Instrucciones de instalación:

Agregue la clave GPG

gpg --keyserver hkp://pgp.mit.edu:11371 --recv-keys F93F2601

Agreguela la clave al sistema APT:

gpg --export F93F2601 | sudo apt-key add -

Revise si la clave fue incorporada:

sudo apt-key list

Agregue el repositorio a su lista de repositorios

Puede usar synaptic o editar /etc/apt/sources.list directamente. Agregue la linea:

deb http://www.petrobox.net/lazarus/ lazarus-testing universe

Instale lazarus

sudo apt-get update
sudo apt-get install lazarus

Namaste.

Bienvenidos a los mundos paralelos de pascal.

Como es eso? Simple, ya les explico.
Para los que no lo conocen pascal es un lenguaje creado por Nicolas Wirth con el específico fin de enseñarle a sus alumnos este maravilloso mundo de la informática.

Ha pasado mucha agua desde el río desde entonces. Lo único que podemos asegurar es que quien lo conoce lo ama.

Este blog tiene la intención de reflejar la actualidad de este poderoso lenguaje en todos sus mundos paralelos, desde OS como windows a mac os x, desde dispositivos microcontrolados a servidores multi core.

Bienvenidos a la fiesta, que la disfruten. ;)

Namaste.