17 Junio 2007
Bueno esto del Ruby on Rails tendra que esperar.
Es lo que tienen las redefiniciones del proyecto.
Sin embargo ahora volvemos al viejo C. Tras unos dias de pruebas con Python y GTK+ que han resultado muy utiles para conocer GTK+ y Python, y para demostrar algo que no por conocido deja de ser olvidado y obviado: los lenguajes interpretados son utiles para "in-house" development, pero a la que te planteas algo serio: compila.
Y ese algo sera un desarrollo para Linux (Maemo ) y GTK (Hildon) en el entorno del N800 de Nokia .
Mas adelante ya lo comentare. Viva el viejo C (y su unix ahora rebautizado linux o para mi Ubuntu ).
servido por Juan
sin comentarios
compártelo
17 Abril 2007
Como siempre, cada vez que tengo que aprender un nuevo lenguaje los libros son utiles únicamente para empezar, unas 40 páginas de las 600 que Amazon me envió.
Programming Ruby como todos los libros de lenguajes desde el viejo The C programming languaje de Kernighan and Ritchie son únicamente aproximaciones a la descripción y/o definición de los lenguajes que supuestamente describen.
Busco en mi estanteria de recuerdos y lo encuentro, ya no es blanco, es amarillo, el viejo Kernighan. En APD lo teníamos en español e inglés, y leñe, no decian lo mismo siempre.
Entonces no había internet, ni ethernet ni otra fuente mas que los manuales y siempre en papel, bueno estaba el man, pero era peligrosísimo de creer.
Ahora con las busquedas masivas de Yahoo, Google y compañía las indefiniciones u omisiones no son tan problemáticas como en aquellos dias podian llegar a ser.
Al grano. He tardado 1 día, si 1 dia en averiguar la forma de generar un nombre de clase (ya definida) desde una string, para poder refernciar sus métodos o instanciar un objeto en run-time.
Aqui va un ejemplo para los que tengan el mismo caso. Lo curioso de Ruby es que hay 2 métodos y además en Rails crean un tercero aunque realmente sea una reutilización de uno de los de Ruby.
# Conversión dinámica de Strings (in CamelCase)
# a nombre de clase name en Ruby
#
var = "Miclase"
puts 'var es de tipo: ' , var.class
puts " "
class Miclase
def animales
"perros y gatos"
end
end
puts "Las mascotas más comunes son: " + Miclase.new.animales
#ahora utilizando una string, opcion A (Ruby)
puts "utilizando const_get las mascotas son: " + Object.const_get(var).new.animales
#ahora utilizando una string, opcion B (Ruby)
puts "utilizando module_eval las mascotas son: " + Object.module_eval(var).new.animales
#ahora utilizando una string, opcion C (unicamente Rails)
puts "utilizando constantize las mascotas son: " + var.constantize.new.animales
Lo dicho esto debería estar en el manual del lenguaje, y no en los grupos de google, donde tuve que recurrir.
servido por Juan
1 comentario
compártelo
16 Abril 2007
Hace unos dias, viendo un reportaje de la BBC sobre el cambio climático, llamó mi atencion el proyecto climate prediction .
Utilizando la vieja idea de la red de computacion distribuida masivamente los señores de la BBC se han tomado en serio utilizarla para modelar millones de simulacion climaticas enfocadas a la predicción (??) de los cambios climaticos que se avecinan.
No se si sus resultados serviran mucho o poco, lo que SI se es que colaborar es simple, sencillo e higienico.
Me explico, simple porque no hay que hacer nada mas que unirse al proyecto, no piden dinero, ni tiempo.
Sencillo porque unirse a el es tan facil como descargarse un pequeño demonio (servicio en windows) que como cliente distribuido realizará el trabajo.
Higiénico porque mientras escribo esto, mientras trabajo en cualquier otra cosa, mientras el ordenador esta solo, abandonado hasta que dejo la llamada telefónica o me acabo el café, los ciclos de CPU que no utilizo son usados para una causa realmente digna y yo entiendo que util.
Siempre me molestó dejar encendidos los equipos sin razon aparente (poseo varios, y en las empresas en las que colaboro o trabajé, siempre tuve a mi disposición un número importante de ellos).
Así que lo he instalado en todos los Ubuntu simplemente descargando 2 paquetes con Syinaptic :
- boinc-client
- boinc-manager
Y después configurando el proyecto climateprediction en el Boinc Manager que cuelga de Aplicaciones-->Accesorios
Francamente muy recomendable para todo el mundo.
Nota para los excepticos: en Ubuntu corre como una tarea de baja prioridad y asi no interfiere en el trabajo del sistema, lo que lo hace válido tanto en Servidores como en Desktop. Pero si ademas se usa la máquina para descargar Pando o Emule razón de más para instalarlo, pues hay mucho ancho de banda de CPU desperdiciado en dichas circustancias.
Nota2: también lo he instalado en los Windows de los niños y funciona correctamente, inclusive cuando juegan, pero en el portatil no parece que sea buena idea pues consume bateria.
servido por Juan
1 comentario
compártelo
16 Abril 2007
Tras varias pruebas y muchas, muchas lecturas de posts de varias fuentes he llegado a la siguiente conclusion:
Lighttpd NO funciona en Ubuntu 6.10. Esta era mi primera opción para hacer correr la aplicación pues Apache 2.0 (versión disponible en Ubuntu 6.10) no dispone de mod_balancer.
Así que sigo buscando y llego a Mongrel (no hay que buscar mucho, empieza a ser popular).
Que si esta escrito en Ruby, que si no es muy rápido, que si... pero leñe, funciona a la "very first one", algo que NUNCA ocurrió con Apache o Tomcat, ¿verdad?.
Ah!, pero si eres serio y lees un poco descubres que no es multithread, es mono proceso con una cola de entrada de peticiones que inevitablemente tiene un limite (otra cosa es que la aplicación tenga el éxito necesario para que la cola se llene.... sic.).
Conclusión, necesito instalar una Gema de Ruby para instalar Mongrel y otra para Mongrel Cluster la maravilla que hará que podamos disfrutar de varios servidores de la aplicacion, todos ellos monoproceso y todos ellos con su cola de tareas.
Pero para que esto funcione hay que utilizar un balanceador o distribuidor de tareas, y otra vez a probar, instalar y sufrir.
Las opciones eran: pound y pen soportadas por Ubuntu, y nginx no soportada.
Elijo pound (supuestamente soporta SSL y quizás esto haga falta en el proyecto), pero descubro que NO, que tampoco funciona la versión de Ubuntu 6.10. Me harto un poco y leyendo en la red (yo uso Yahoo y Google, soy multiproceso aún, y hasta multineurona, o eso creo) descubro, como siempre, que no estoy solo, que le falla a la mayoría. Pound NO.
Hala, a probar pen . Y vaya, funciona al "very first one", tope, me lo quedo.
Ok, pen en el front-end y mongrel_cluster sirviendo peticiones de aplicaciones. Asi empezaremos, pero parece que vamos a terner problemas con los ficheros estáticos (.png, .jpg y demás) pues Mongrel no esta afinado para ello.
Pues ya veremos cuando hagamos pruebas si necesitamos sustituir pen por nginx , o por Apache 2.2 con mod_balancer, esto último solo si pasamos a Ubuntu 7.xx, algo que ahora no esta previsto.
Escribiré un paso a paso de como lo he instalado.
servido por Juan
1 comentario
compártelo
13 Abril 2007
Press any key ....... to continue
¿cuantas veces lo habré leido?. 2.000 o 3.000 vete a saber.
El caso es que se me quedó grabada, la típica frase de instalación de UNIX, XENIX, Windows y.... ahora Linux.
Bueno, la verdad es que ahora no es Linux, si no Ubuntu.
Solo puedo decir que tras bastantes años usando Unix en varias (muchas) versiones, me ha cautivado. Ubuntu (gracias a Debian) es usable como server y desktop en un entorno del dia a dia.
Ya no necesito Windows (gracias a OpenOffice también), por fin libre.
Pero el colmo lo protagoniza un framework llamado Rails. Tengo que aprender el enesimo lenguaje de programacion, Ruby, pero vale la pena.
Estaba yo intentando no usar JSP, JSF ni Struts cuando descubro Rails y........ voalá adios a Java para hacer Servlets y derivados (y van ya 7 años haciendolos), el proximo proyecto en Ruby on Rails .
Y además, como extra, voy a intentar mantener un blog durante el desarrollo del proyecto que denominaremos por el momento: Ruby on Rails in Ubuntu, ..................... to Continue.
servido por Juan
sin comentarios
compártelo