Saturday, November 7, 2009

Libro Nuevo "Beginning Rails 3"

La editorial APress acaba de publicar el libro "Beginning Rails 3", por Jeffrey Allan Hardy, Cloves Carneiro Jr., y Rida Al Barazi. 

Cubre temas tales como:
* Cómo instalar Rails en el Mac, en Windows, y en sistemas Linux
* La arquitectura Modelo-Vista-Controlador (MVC)
* El valor de bases de datos y cómo usar Rails con MySQL
* La consola Rails para hacer pruebas
* Interfaces ricas de usuario con Ajax y efectos visuales
* Cómo usar y crear plug-ins para Rails

400 páginas, ISBN: 1430224339

Referencias:
"Beginning Rails 3", libro en Amazon

Friday, October 30, 2009

Ubuntu 9.10

Acaba de salir la versión 9.10 del sistema operativo Ubuntu, una de las distribuciones más populares de Linux. Esta versión se denomina "Karmic Koala". 

Hay varias configuraciones disponibles:
* Ubuntu Desktop: para uso diario en desktops y laptops, con interfaz gráfica;
* Ubuntu Server: para usarlo como servidor, en oficinas;
* Ubuntu Netbook Remix: interfaz simplificada para netbooks de pantalla chica;
* Ubuntu Studio: para músicos y artistas;
* Kubuntu: basado en KDE;
* Edubuntu: con aplicaciones para educación;
* Xubuntu: con la interfaz ligera XFCE (para PCs con poca memoria).
* Mythbuntu: para PCs de entretenimiento, con MythTV.

Llevo varios años usando Ubuntu, y no me arrepiento. Con orgullo podemos decir que no pirateamos software, pues todo lo que necesitamos lo conseguimos gratuitamente en Ubuntu.

Ubuntu Desktop incluye: Empathy (chat), Evolution (email), Firefox 3.5, F-Spot (procesador de fotos), RhythmBox (tocador de mp3), OpenOffice 3.0 (editor de texto, base de datos, hoja de cálculo, presentaciones), herramientas y lenguajes para programación, más de 400 juegos gratuitos, y más de 20 mil aplicaciones en diversos campos (ciencia, educación, oficina, etc). Además, por separado se puede instalar Skype (chat por voz) y Picasa (procesador de fotografías), para Ubuntu.

Ubuntu Studio es un sistema dedicado para músicos y artistas. La lista de software es extensa: Incluye editores de audio (ardour, audacity), editores de midi (rosegarden), editores de video (openmovieeditor, ffmpeg), editores gráficos (gimp, inkscape), editor y animador de 3d (blender), etc.

Es fácil instalar cualquier versión de Ruby en Ubuntu. Ir a "System / Administration / Synaptic Package Manager", hacer una búsqueda por "Ruby" e instalar la versión deseada (1.8.x, 1.9.x). El solito se encarga de verificar todas las dependencias y de poner los archivos en los directorios correspondientes.

Referencias:
Ubuntu, página oficial
Ubuntu Studio, página oficial

Saturday, October 17, 2009

Libro nuevo: "Refactoring: Ruby edition"

Otro libro que acaban de publicar sobre Refactoring en Ruby, también con la editorial Addison-Wesley, pero por diferentes autores. Los autores son: Jay Fields, Shane Harvie, Martin Fowler, y Kent Beck. 480 paginas. 

Sobre cómo convertir código caótico en código fácil de evolucionar y mantener.

ISBN: 0321603508

Referencia:
"Refactoring: Ruby edition", libro en Amazon

Friday, October 16, 2009

Libro nuevo "Refactoring in Ruby"

Acaban de publicar el libro "Refactoring in Ruby", por by William C. Wake y Kevin Rutherford. El libro tiene 288 páginas y es publicado por la editorial Addison-Wesley. 

Refactoring es el arte de mejorar el diseño de código. Primera vez que alguien escribe un libro sobre este tema para Ruby.


Referencias:
"Refactoring in Ruby", libro en Amazon

Thursday, August 13, 2009

Rails Summit LatinAmerica 2009

 La conferencia "Rails Summit Latin America" vuelve por segunda vez, entre los días 13-14 de Octubre, a São Paulo, Brazil.

La vez pasada el evento atrajo a 550 participantes. Este año la entrada cuesta 400 Brazilian Reales (como US$200).

Entre los discursantes se encuentran : Bryan Liles, Carlos Brando, Chad Fowler, Gregg Pollack, Ilya Grigorik, Jason Seifer, Matt Aimonetti, Obie Fernandez, Pratik Naik, Rich Kilmer, y otros Rubistas prominentes Sudamericanos.

Referencia:
"Rails Summit Latin America"
Programa

Conferencia Lone Star Ruby 2009

Para fines de Agosto (27-29), en Austin, Texas, está planeada la conferencia "Lone Star Ruby 2009", y contará con la participación del creador de Ruby, Yukihiro Matsumoto.


Referencias:
Lone Star Ruby Conference, sitio oficial
El Programa de la conferencia

Friday, August 7, 2009

Libro Nuevo: "Ruby Best Practices"

La casa editora O'Reilly acaba de publicar el libro "Ruby Best Practices", por Gregory Brown, el autor de la biblioteca Prawn (generador de PDFs).  


Es un libro práctico de 328 páginas, donde desarrolla los siguientes temas:
* cómo entender los secretos de los bloques de código en Ruby;
* cómo modificar código Ruby sin dañarlo (ejemplo: cómo mezclar módulos);
* cómo hacer testing y debugging, y como diseñar código que sea fácil de revisar;
* cómo escribir código más rápido, manteniendo las cosas sencillas;
* estrategias para procesamiento de texto y de archivos, incluyendo expresiones regulares;
* cómo y por qué las cosas podrían salir mal;
* cómo reducir las barreras culturales escribiendo código multi-lingue.

Dicen que es un buen libro de referencia, que vale la pena tener al lado del de Dave Thomas.

Referencias:
"Ruby Best Practices", por Gregory Brown, en Amazon

"Ruby Best Practices", Gregory Brown, (Junio 2009, O'Reilly) ISBN 10: 0-596-52300-9 ISBN 13: 9780596523008

Wednesday, June 17, 2009

Railscasts

Me acabo de encontrar este sitio con videos instructivos que enseñan cómo usar a Rails:

Referencias:
ShowMeDo, por Ryan Bates

Thursday, May 28, 2009

CGI con Webrick en Windows

Hace una semana estuve tratando de ejecutar en Windows un script escrito en Ruby (ambos 1.8.6 y 1.9.1), como CGI, para que ejecutara en Webrick y poder ver el resultado en el browser.

El CGI era bien sencillo, algo mínimo como sigue:

#!/user/bin/ruby
print "Content-type: text/html\r\n\r\n"
print "<HTML><BODY>Saludos desde Ruby CGI.
#{Time.now}<br/>\r\n</BODY></HTML>\r\n"

Al principio me salía un error que decía:
"Premature End of Script Headers"


[En Linux el problema no ocurre]

Indagando un poco en el código fuente de Webrick, encontré la siguiente forma de corregir el problema:

Abrir el archivo siguiente con un editor:

c:\ruby\lib\ruby\1.9.1\webrick\httpservlet\cgi_runner.rb


Añadir el siguiente código al principio:


if "1.9.1" == RUBY_VERSION
require 'rbconfig'
end


Hacia el final del mismo archivo, en la última línea, localizar donde dice:

exec ENV["SCRIPT_FILENAME"]


Comentar esa última línea y añadir el siguiente código:

# --- desde aquí ---
if "1.9.1" == RUBY_VERSION
Ruby = File::join(RbConfig::CONFIG['bindir'],
RbConfig::CONFIG['ruby_install_name'])
Ruby << RbConfig::CONFIG['EXEEXT']
else
Ruby = File::join(::Config::CONFIG['bindir'],
::Config::CONFIG['ruby_install_name'])
Ruby << ::Config::CONFIG['EXEEXT']
end

if /mswin|bccwin|mingw/ =~ RUBY_PLATFORM
exec "#{Ruby}", ENV["SCRIPT_FILENAME"]
else
exec ENV["SCRIPT_FILENAME"]
end
# --- hasta aquí ---


Lo que hace este código es pasar el path completo de ruby.exe a la función exec() para que sepa cómo invocar el interpretador. En Linux no es problema porque la primera línea del script suple esa información "#!/user/bin/ruby".

Eso es todo. Guardé el archivo y re-inicié el servidor webrick.

Al abrir el browser en la siguiente dirección ...

http://localhost:2000/cgi-bin/rubycgi.cgi


... muestra el resultado esperado.

EngineYard mantiene Ruby 1.8.6

Acaban de anunciar que EngineYard va a tomar las riendas del mantenimiento de Ruby 1.8.6 para acelerar este aspecto tan necesario.

Referencia:
"Ruby 1.8.6 maintenance moved to EngineYard" desde la página oficial de Ruby

Thursday, May 14, 2009

Ruby 1.9.1-p129

Acaba de salir un patch nuevo para Ruby 1.9.1 que corrige algunos errores encontrados hasta la fecha.

Referencias:
Anuncio oficial

RailsConf 2009 en RailsMagazine

Acaba de salir la segunda edición de la revista "Rails Magazine", gratuita, en línea, y está dedicada al evento "RailsConf 2009" de la semana pasada.

http://railsmagazine.com/issues/2

Referencias:
Sitio oficial "RailsConf 2009"
Noticias
Sesiones
Tutoriales
Discursos claves
Videos
Presentaciones
Más recursos

Friday, May 8, 2009

RailsConf2009

Acaban de publicar videos de las presentaciones de la conferencia RailsConf 2009 que se está llevando a cabo esta semana en Las Vegas, Nevada.

http://railsconf.blip.tv/#2096664

Thursday, May 7, 2009

Ubuntu 9.04

Hace como una semana salió Ubuntu Linux 9.04.

Ese mismo día que salió bajé e instalé la version Desktop usando una máquina virtual de VMware Server.

[Hay otras dos versiones, Ubuntu Server (para expertos solamente), y Ubuntu Netbook para esas maquinitas portátiles que están saliendo sin CD/DVD ni disco duro.]

Para mí el código libre es lo mejor que ha sucedido en muchos años que llevo trabajando en esta área de programación e informática. Y Ubuntu es toda una universidad. Incluye numerosas herramientas para aumentar nuestra productividad, tales como:

* OpenOffice 3.0: procesador de palabra, base de datos, hoja de cálculo, presentaciones;
* Evolution Mail: cliente de correo electrónico;
* Pidgin IM: el cliente de chat universal;
* Skype: para chat por video y texto; hay que bajarlo desde www.skype.com;
* Google Picasa: editor de fotos; hay que bajarlo desde picasa.google.com;
* Gimp: editor de imágenes;
* Inkspace: editor gráfico que usa curvas de Bezier;
* TomBoy: notas para recordar cosas qué hacer;
* Mozilla Firefox 3.0: la ventana al mundo;
* VYM: software para mapas mentales; organizador de ideas;
* gEdit y vim: editores para programadores;
* Servidor Apache: para programadores: servidor de aplicaciones;
* Todos los lenguajes que queráis: C, C++, Pascal, Lisp, Prolog, PHP, Perl, Python, Ruby, Java, scheme, ...
* Bases de Datos: SQLite 3, mySQL, posgreSQL
* CMSs: Drupal, Joomla, Mambo, Plone, ...
* Aplicaciones para procesar música y video, etc.
* Aplicaciones educativas ...

La anterior es una lista pequeñísima de algunas cosas que conozco y que alguna vez he usado. Pero el instalador Synaptic de Ubuntu indexa más de 26 mil aplicaciones, así que hay mucho por aprender.

Para los veteranos todo lo anterior debe sonar trivial; sin embargo, debe haber muchos lectores que apenas están empezando a descubrir este mundo, así que la idea de este blog es proveer varios puntos de partida.

Usando el instalador Synaptic de Ubuntu, es bien fácil instalar a Ruby. Ambas, la versión 1.8.7 y la 1.9.1 están disponibles. Simplemente marcar e instalar la que se desea.

Desafortunadamente, la versión 1.8.6 de Ruby no está disponible en Ubuntu 9.04. Para instalarla hay que bajar el código fuente y compilarlo.

Una vez que ya tengáis a Ruby instalado, usando gem se pueden instalar Rails y otras gemas.

Referencias:
Ubuntu
VMware Server
Descargas de Ruby
OpenOffice 3.0
Evolution Mail
Pidgin IM
Skype
Google Picasa
Gimp
Inkspace
TomBoy
Mozilla Firefox 3.0
VYM
gEdit
vim
Servidor Apache
SQLite 3
mySQL
posgreSQL
CMSs
Ubuntu música y video

Wednesday, April 29, 2009

RailsConf 2009 Las Vegas

La semana entrante, en Las Vegas, tendrá lugar el RailsConf de este año.

Estaremos pendientes a ver cuándo publican las presentaciones del programa, y de pronto algún video de los "keynotes".

Puede esta ser la semana en la que lanzan a Rails 3.0.

Ahí estarán presentando gente de 37signals, Engine Yard, Sun Microsystems, Heroku, Google, O'Reilly, ThoughtWorks, Microsoft, y otras compañías.

Entre los presentadores se encuentran: Yehuda Katz, Obie Fernandez, David Heinemeier Hansson, Arun Gupta, etc.

Por el momento, aquí está el programa de los cuatro días:

http://en.oreilly.com/rails2009/public/schedule/grid/2009-05-04

Monday, April 20, 2009

Lista de sitios usando Rails

Acaban de publicar una lista de 50 compañías que están usando Rails.

Celebremos el éxito de Ruby y Rails !!!

Referencia:
Top 50 Ruby on Rails Websites

Salen actualizaciones para Ruby 1.8.6 y 1.8.7

Acaban de anunciar actualizaciones a las versiones mencionadas arriba de Ruby.

* Ruby 1.8.6-p368
* Ruby 1.8.7-p160

Estas actualizaciones son quizás críticas para sistemas que se hallen en producción. El resto, podemos ignorarlo.

Referencia:
Ruby 1.8.7-p160 and 1.8.6-p368 released, en Ruby-lang.org

Changelog Ruby 1.8.6, lista de Cambios

Changelog Ruby 1.8.7, lista de cambios

Thursday, April 2, 2009

Ruby Fácil (2da Edición)

Bueno, finalmente logramos sacar la segunda edición del libro "Ruby Fácil".

Esta nueva edición trae como 20 páginas nuevas, y cubre varios aspectos de 1.9.1, incluyendo Lambdas. Explica acceso a bases de datos con SQLite3, (y MySQL), una introducción a Rails 2.3.2, gráficos con Ruby/Tk.

Todos los ejemplos los ensayamos en 1.8.6 y en 1.9.1, en ambos Ubuntu Linux (8.04) y Windows XP.

El año pasado la versión recortada y gratuita del libro fue bajada más de 800 veces, lo que nos complace bastante, pues la idea era compartir el conocimiento con otros. Esa versión seguirá disponible en uno de los enlaces de la derecha.

La segunda edición, con más capítulos, por el momento solamente estará disponible en forma impresa.

Quiero recordaros que este libro fue escrito para principiantes, y trata de cubrir los diferentes aspectos de programación con el lenguaje Ruby, que se introducen poco a poco en lecciones breves.

Incluye varias lecciones prácticas sobre programación para internet con varias tecnologías, CGI, plantillas, ERB, mod_ruby, Rails, con suficiente información para iniciarse, pero lo hemos mantenido intencionalmente breve.

El contenido del libro es el siguiente:


Prefacio.................................................v
Organización del Libro................................v
¿Que trae de nuevo el libro en el 2009?..............vi
Agradecimientos......................................vi
Parte I..................................................1
Breve Historia de Ruby................................1
Audiencia ............................................1
Motivación............................................2
Cómo Instalar Ruby 1.8.6 en Windows...................3
Cómo Instalar Ruby 1.9.1 en Windows...................3
Cómo Instalar Ruby 1.8.6 en Linux.....................4
Cómo Instalar Ruby 1.9.1 en Linux.....................5
Parte II Las Bases.......................................7
Lección 1. Ruby Interactivo...........................8
Lección 2. Números...................................10
Lección 3. Funciones Mátematicas Pre-definidas.......13
Lección 4. Cadenas de Caracteres.....................14
Lección 5. Arreglos (Arrays).........................16
Lección 6. Fechas y Horas............................18
Lección 7. Hash......................................19
Lección 8. Each y Bloques............................20
Lección 9. Contadores y Acumuladores.................22
Lección 10. Expresiones Condicionales................24
Parte III El Lenguaje...................................25
Lección 11. Lógica Condicional.......................26
Lección 12. Ciclos Repetitivos.......................28
Lección 13. Condiciones Múltiples (Case).............32
Lección 14. Funciones................................34
Lección 15. Clases...................................37
Lección 16. Atributos de Clases......................40
Lección 17. Control de Acceso a la Clase.............43
Lección 18. Herencia y Taxonomías....................45
Lección 19. Expresiones Regulares....................46
Lección 20. Ficheros.................................48
Lección 21. Directorios..............................51
Lección 22. Entrada/Salida, Corrientes y Tubos.......52
Lección 23. Parámetros de Ejecución..................54
Lección 24. Formatos de salida.......................55
Lección 25. Yield....................................57
Lección 26. Módulos y Mixins.........................58
Parte IV. Usos Avanzados................................61
Lección 27. Administración de Errores................62
Lección 28. Logger...................................64
Lección 29. Biblioteca de Funciones Matemáticas......66
Lección 30. Documentación Automática.................67
Lección 31. Programación Web Básica con Ruby/CGI.....70
Lección 32. Programación Web con Plantillas (Templates)..76
Lección 33. Programación Web con ERB.................78
Lección 34. Programación Web con eRuby...............80
Lección 35. Programación Web con WEBrick.............82
Lección 36. Programación Web con Mod_Ruby............85
Lección 37. Programación Web con Rails...............89
Lección 38. Bases de Datos con SQLite3...............99
Lección 39. Bases de Datos con DBI y MySQL..........103
Lección 40. Interfaces Gráficas.....................106
Lección 41. XML.....................................113
Lección 42. El Patrón Observador-Observable.........116
Lección 43. Lambdas.................................119
Lección 44. Programación Multilingüe................121
Epílogo. Para Seguir Aprendiendo....................122
Soluciones a Ejercicios Selectos.......................123
Bibliografía...........................................139
Libros sobre Ruby...................................139
Libros sobre Rails..................................140
Bibliotecas Gráficas para Ruby......................141
Tecnologías Relacionadas............................142
Otros Enlaces sobre Ruby en Internet................143
Curiosidades Matemáticas............................144
Apéndices..............................................145
Apéndice A. El Código ASCII.........................145
Apéndice B. Editores de Texto ......................146
Apéndice C. El Lenguaje HTML........................153
Apéndice D. El Lenguaje SQL.........................156
Apéndice E. El Lenguaje XML.........................157
Apéndice F. eRuby en Ubuntu con Apache..............159
Apéndice G. mod_ruby en Ubuntu con Apache.. ........160
Apéndice H. Diferencias entre Ruby 1.9.1 y 1.8.x....162
Apéndice I. Ambientes de Desarrollo para Ruby y Rails...163
Sobre el Autor.........................................164
Sobre el Libro.........................................164
Indice de Palabras.....................................165


Referencia:
"Ruby Fácil (2da Edición)", en Lulu.com

Thursday, March 19, 2009

Revista Rails

Acaba de salir la revista Rails.

http://railsmagazine.com/

La versión digital está disponible mundialmente, sin costo alguno.

Referencia:
"Revista Rails"
http://railsmagazine.com/

Salió Rails 2.3

Acaba de salir Rails 2.3. Qué trae de nuevo?


  • Plantillas (Templates): permite crear una aplicacion esqueleto Rails como vosotros queráis, con un stack de gemas, configs, y más.

  • Máquinas (Engines): Para compartir pedazos reusables de la aplicación con rutas que funcionan, modelos, paths a vistas, y todo lo demás.

  • Rack: Rails ahora ejecuta sobre Rack que os da acceso a una cantidad de middleware.

  • Metal: Para escribir piezas super-rápidas, de lógica optimizada y enrutada alrededor del Action Controller.

  • Formas anidadas (Nested forms): Para trabajar con formas complejas mucho más fácilmente.



Además ... funciona bien con Ruby 1.9.1.

La guía completa con más información está aquí: "Release notes". También hay una lista de cosas que entran en desuso, que vale la pena estudiar.

Para instalar Rails 2.3 hacer lo siguiente: (la versión final aparece como 2.3.2):

gem install rails


Si estáis usando Passenger, hay necesidad de usar la versión 2.1.2. Rails 2.3 no ejecuta en versiones viejas de Passenger!

Referencias:
"Rails 2.3", en RubyonRails.org
"Ruby on Rails, comprehensibly Renovated", en h-online.com
"Release notes"

Friday, March 6, 2009

Salió Rails 2.3 RC2

Acaba de ser anunciado Rails 2.3 RC2.

Dice David que si no encuentran errores mayores, esta será la versión 2.3 que será lanzada dentro de una o dos semanas.

También hay un enlace nuevo documentando las diferencias:
Rails 2.3 Release Notes.

Una de las notas dice que Rails 2.3 es compatible con Ruby 1.9.1, pero hay que tener en cuenta que no todos los plugins y otras gemas han sido actualizados (todavía) para funcionar con Ruby 1.9.1.

Las Guías también han sido actualizadas para que funcionen con Rails 2.3.

Referencia:
"Rails 2.3 RC2: Final Stop Before Release", en rubyonrails.org
Rails 2.3 Release Notes

Sunday, March 1, 2009

Comparando Máquinas Virtuales Ruby

Jason Seifer, de RailsEnvy.com, nos ofrece un video explicando las diferencias entre las máquinas virtuales existentes para Ruby: Matz-Ruby (MRI), YARV, JRuby, XRuby, MagLev, IronRuby, Rubinius, y, MacRuby.

* MRI (Matz Ruby Interpreter) es el standard;
- 1.8.6 es la versión más standard; corre con Rails;
- 1.8.7 tiene algunas características de 1.9.1;
- 1.9.1 está basado en YARV (más rápido, algunas diferencias en el alcance de las variables, y el uso de bloques, etc);

* YARV: (Yet Another Virtual Machine), por Sasada Koichi;

* MacRuby: es una versión de MRI 1.9.1 que corre en el Mac; no está lista todavía para producción (para ejecutar Rails);

* XRuby: compila a Java bytecodes; no está listo todavía para producción;

* MagLev: (de GemStone) da mejor desempeño y escalabilidad; no está listo todavía para producción;

* Rubinius: es Ruby en Ruby, y han escrito las clases básicas (Array, Hash, String) en Ruby, y la máquina virtual ("liviana") en C++ (usa LLVM, una buena infra-estructura); traduce Ruby a C++; Rubinius está empezando a correr Rails; no está todavía listo para producción;

* IronRuby: es el Ruby de Microsoft; la versión Alfa ya ha sido lanzada; es Ruby para .NET; corre sobre DLR, especial para lenguajes dinámicos (como Dynamic Visual Basic, Iron Python, Javascript); corre Rails, pero muy lento; todavía en estado Alfa;

* JRuby: está listo para producción; se integra bien con Java; ejecuta rápidamente; y usa threads nativos (con Fibras); trae una bandera para decidir con qué versión de Ruby es compatible; recomendable para aplicaciones en la empresa.

Esta presentación se ofreció en QCon, en San Francisco, en 2008.

Referencia:
"Ruby VMs: A Comparison", Jason Seifer, en InfoQ

Monday, February 16, 2009

Ruby 1.9.1 en Windows

Acabo de darme cuenta que Ruby 1.9.1 (p0), para Windows, se encuentra disponible en la página de downloads de Ruby (quizás lleva allí varios días). El archivo a bajar es:
Ruby 1.9.1-p0 Binary, que resulta en un ruby-1.9.1-p0-i386-mswin32.zip.

En la oficina me he visto forzado a usar Windows XP, que tengo en el laptop, así que ahí lo ensayé.

Lo primero que hice fue renombrar la versión anterior que tenía en c:\ruby, a c:\ruby186, de manera que pude crear un directorio nuevo c:\ruby y expandir el ruby-1.9.1-p0-i386-mswin32.zip. ahí. La figura siguiente muestra parte de su contenido:





Lo primero que pude notar es que han incluído una larga lista de ejemplos, que vale la pena explorar. Entre otros, hay directorios especiales para los siguientes: bigdecimal, drb, logger, openssl, optparse, rdoc, ripper, rss, testunit, tk, webrick, win32ole.

También están los tradicionales programitas de ejemplos: el factorial iterativo, la serie de Fibonacci por medios recursivos, los dígitos de pi, el bio-ritmo, la criba de Eratóstenes, el famoso problema de la cena de los filósofos, y otros.

Todavía no he explorado todo lo que hay, y puesto que tengo el Tcl/tk de ActiveState 8.4.15.0 instalado, quise ver algunos de ellos: algunos ejecutaron bien, pero otros no (parece que, de la manera como fue compilado, requiere el tcl84.dll, así que debe funcionar hasta con ActiveTcl 8.4.19.0, pero con ActiveTcl 8.5.x no funciona).

Aquí les dejo las imágenes de algunos de los ejemplos de Ruby/Tk que sí funcionaron:



Habrá que seguir explorando ...

Referencias:
Ruby Downloads, en el sitio oficial de Ruby
ActiveTcl, downloads del sitio oficial
Problemas con Tk y Ruby 1.9.1, en Ruby-Forum

Wednesday, February 4, 2009

Diferencias entre Ruby 1.9.1 y 1.8.x

Bueno, y qué hay de nuevo en Ruby 1.9.1?

En resumidas cuentas:
- nueva máquina virtual (antes era solo un interpretador AST)
- algunos objetos han sido sometidos a dieta de memoria (Object, Array, String, etc)
- mucho más rápido (ver Antonio Cangiano)
- soporte para caracteres multilingües;
- nueva sintaxis para Hashes con símbolos como llaves, y ahora las llaves preservan el orden;
- muchos cambios al API (mejoras, consistencia, remueven código obsoleto, etc.);
- cambios en la semántica del lenguaje (argumentos a bloques ahora funcionan casi como argumentos a métodos);
- índice a cadena ahora retorna subcadena de longitud 1;
- dos puntos (:) ahora ya no se pueden usar en if y en when;
- String.each ya no existe;
- nueva literal para lambdas: ->
- iteradores externos (class Enumerator) ahora hacen parte del lenguaje;
- concepto nuevo, fibras (class Fiber);
- lazos nativos (con GIL, como Python);
- rubygems, rake ahora son parte del lenguaje;
- minitest reemplaza el test/unit viejo;

Los libros citados en las referencias saldrán en mes y medio. Yo también estoy actualizando el mío, "Ruby Fácil", y estará listo en un par de semanas, pues no tengo que lidiar con la burocracia y distribución de las casas de imprenta.

Referencias:
Lista oficial de diferencias, Ruby-lang
"Ruby 1.9: What to Expect", Dave Thomas y David A Black, RubyConf2008, video en Confreaks
"1.9.1?", tema en Ruby-Forum
"The Great Ruby Shootout", Antonio Cangiano
"10 Things to be Aware of in moving to Ruby 1.9", David A Black
"Son of 10 Things ...", David A Black
"Programming Ruby 1.9", Dave Thomas (saldrá en Abril-2009)
"The Well-Grounded Rubyist", David A Black (saldrá en Marzo 2009)

Tuesday, February 3, 2009

Salió Rails 2.3 RC1

Acaba de salir también Rails 2.3 RC1.
Esta no es la versión definitiva, que se espera en Mayo, pero para los intrépidos, nos da acceso a lo último en esta plataforma. Tiene algunos errores.

Qué trae de nuevo?
* Templates: Permite configurar las aplicaciones esqueleto que se generan con sus propios gems, configs, y otras cosas.
* Engines: Permite compartir pedazos de una aplicación con rutas, modelos, etc.
* Rack: Rails ejecuta ahora con Rack, que permite acceso a otras cositas buenas de middleware.
* Metal: Escriba piezas super-rápidas con lógica optimizada alrededor del Action Controller.
* Nested forms: Permite manipular formas complejas de una manera mucho más fácil.

Más detalles aquí:
http://weblog.rubyonrails.org/2009/2/1/
rails-2-3-0-rc1-templates-engines-rack-metal-much-more

Rails 2.3 Release Notes

No dicen nada sobre compatibilidad con Ruby 1.9.1.

Monday, February 2, 2009

Cómo instalar Rails 2.2.2 con Ruby 1.9.1 en Ubuntu 8.04

Continuamos con la instalación de Rails, después de haber instalado Ruby 1.9.1 en Ubuntu 8.04. Estoy siguiendo los pasos que me encontré en el screencast que cito en la referencia (abajo).

Parece que Mongrel todavía no funciona con Ruby 1.9.1. Para principiantes, no es problema, pues podemos aprender Rails con los elementos básicos de este sistema.

Los pasos son los siguientes:
[ colores: verde: mis comentarios; azul: los comandos que ejecutamos; negro: el resultado ]


#Para instalar Rails
# (lo puse en dos líneas por conveniencia,
# pero va todo en una línea)

sudo gem install rails sqlite3-ruby rubygems-update
test-unit capistrano rspec

... #esto se toma un ratito

# ya instaló, ahora pasamos a revisarlo:
rails -v
Rails 2.2.2

cd ~/code/rails
rails testapp # generamos una aplicación
cd testapp
script/server # la corremos con el servidor WEBrick


Ahora abrimos el browser y lo apuntamos a :
http://localhost:3000.

Debe salir nuestra primera aplicación en Rails, el resultado es como se ve en la siguiente imagen:



(notar que el primer enlace nos da detalles de la máquina en la que estamos corriendo)

Para detener el servidor, hacer ctrl-C.

Referencia:
"Installing Ruby 1.9.1 & Rails From Source", en RubyHead

Cómo Compilar e Instalar Ruby 1.9.1 en Ubuntu 8.04

Siguiendo los pasos que me encontré en el screencast que cito en la referencia (abajo), logré instalar Ruby 1.9.1 en Ubuntu 8.04, sin ningún problema.

Ojo, parece que Mongrel no funciona (todavía) con Ruby 1.9.1. Los que dependáis de Mongrel (y otras gemas), tendréis que esperar un poco más a que alguien lo (las) actualice. [Para los novatos: Mongrel es un servidor para correr Rails; esto no os debe frenar, pues podemos ejecutar y aprender Rails con otro servidor llamado WEBrick; los pasos para instalar Rails los escribiré en otra nota aparte]

Los pasos para compilar e instalar Ruby 1.9.1 son los siguientes (para los curiosos y aventureros):
[ colores: verde: mis comentarios; azul: los comandos que ejecutamos; negro: el resultado ]


# primero, instalar las herramientas para compilar
# (lo puse en dos líneas por conveniencia,
# pero va todo en una línea)

sudo apt-get install build-essential wget libreadline5-dev
libncurses5-dev zlib1g libsqlite3-dev libssl-dev

#ojo: zlib + uno + g
# tener a la mano el CD de instalación de Ubuntu,
# que lo va a pedir


#segundo, bajar el *.tar.gz desde esta página:
#http://www.ruby-lang.org/en/news/
2009/01/30/ruby-1-9-1-released/


# tercero, expandirlo:
cd ~/downloads/ruby-1.9.1
tar xvzf ruby-1.9.1-p0.tar.gz
rm *.gz


# ahora sí, vamos a compilarlo
cd ruby-1.9.1-p0
autoconf


# si se queja y dice que no tiene autoconf, bajarlo e instalarlo:
# sudo apt-get install autoconf


./configure --prefix=/usr --enable-pthread
make
... #este comando se toma varios minutos

sudo make install

#ahora vamos a revisarlo:
clear
ruby -v

ruby 1.9.1.p0 (2009-01-30 revision 21907) [i686-linux]

#revisamos gem
which gem
/usr/bin/gem
gem -v
1.3.1
sudo gem update
Updating installed gems
Nothing to update # dice que no tiene nada que actualizar

#revisamos irb
irb
> RUBY_VERSION

=> "1.9.1"
> exit

#crear enlace simbólico
cd /usr/bin
sudo mv ruby ruby1.9
#coexiste con ruby1.8
sudo ln -s ruby1.9 ruby



Bueno, que les aproveche.

Referencia:
"Installing Ruby 1.9.1 & Rails From Source", en RubyHead

Saturday, January 31, 2009

Salió Ruby 1.9.1

Acaba de salir Ruby 1.9.1 ...

Bájenlo desde www.ruby-lang.org

Es la primera versión estable de Ruby 1.9.

Ruby 1.9 es la nueva serie de Ruby. Moderno, más rápido, con sintaxis más clara, multilingüe, una versión bastante mejorada de Ruby.

Notar que la serie Ruby 1.8.x seguirá siendo mantenida. La siguiente versión de esta rama será Ruby 1.8.8.

Parece que el enlace anterior es solamente al código fuente en formatos *.tar.bz2, *.tar.gz, y *.zip. Entonces se requiere algo de valor para compilarlo, y luego ejecutarlo, quizás preservando la versión anterior (en caso de que la versión nueva no quiera correr con Rails y otras gemas). De seguro que en los próximos días saldrá un "quick-installer" para Windows, pero mientras tanto qué hacer?

Buscando ideas, me encontré con estas:


Las diferencias entre Ruby 1.9.1 y Ruby 1.8.7 están resumidas en esta página.

Referencias:
Anuncio original, en ruby-lang.org
"Ruby 1.9.1 Arrives", artículo en DobbsCodeTalk
Diferencias entre Ruby 1.9.1 y versiones anteriores, en Ruby-Lang.org

Friday, January 30, 2009

Libro Nuevo "The Well-Grounded Rubyist"

Editorial Manning acaba de anunciar un libro nuevo titulado "The Well-Grounded Rubyist", ("El Rubista bien fundamentado"), de David A Black, y va a salir en Marzo 2009. 


Cubrirá la versión 1.9 de Ruby.

No es para principiantes, sino orientado hacia los programadores experimentados haciendo la transición hacia Ruby.

El libro está organizado en tres secciones:
* La primera sección incluye lo básico:
objetos, métodos, variables locales, módulos, alcance y visibilidad, control de flujo;
* la segunda parte cubre: cadenas, símbolos, números, colecciones, expresiones regulares, archivos, entradas/salidas;
* la tercera parte explica la dinámica del lenguaje, (callbacks, introspection, etc) y sus bases en Smalltalk y Lisp.

Estaremos pendientes del lanzamiento de este libro.

Referencias:
Anuncio, en InfoQ
"The Well-Grounded Rubyist", página oficial
El mismo libro, en Amazon

Thursday, January 29, 2009

Conferencia MountainWest Ruby 2009

La conferencia "MountainWest Ruby 2009" tomará lugar en Salt Lake City, Utah, en Marzo, entre los días 13 y 14.

Referencias:
Conferencia MountainWest Ruby 2009, sitio oficial
Programa oficial

Conferencia Scotland on Rails 2009

La conferencia "Scotland on Rails 2009" tendrá lugar en Marzo, entre los días 26 y 28, en Edinburgo.

O'Reilly anunció que este año no se correrá el "RailsConf Europe 2009". Así que quedan abiertas las opciones para otras conferencias sobre Ruby/Rails en otros sitios.

Para "Scotland on Rails 2009" se espera lo siguiente:

  • Habrá discursos de: Marcel Molina, Michael Feathers;

  • Yehuda Katz y Dave Thomas hablarán sobre Rails3 y el modelo de objetos en Ruby;

  • Otros discursantes: Jim Weirich, Joe O’Brien, Scott Raymond, Scott Chacon, Steven Bristol.


Referencia (para más detalles):
Scotland on Rails 2009, sitio oficial

Wednesday, January 28, 2009

Confreaks RubyConf 2008

Acá están los videos de la conferencia RubyConf2008 que tuvo lugar en Noviembre en Orlando, Florida.

Pronto estaré resumiendo uno o dos de los discursos, para los que no entienden inglés.

Referencia:
http://rubyconf2008.confreaks.com/

RailsConf 2009

Acaban de anunciar la conferencia "RailsConf 2009". Este año será en el Hilton de Las Vegas (Nevada), entre el 4 y 7 de Mayo.

Este evento es normalmente organizado por O'Reilly, y cuenta con la participación de varios autores famosos de libros sobre Ruby y Rails. Estarán presentes David Heinemeier Hansson, Yehuda Katz, Ryan Singer, y muchos otros.

Se espera que este evento coincida con el lanzamiento de Rails 3 (que reúne a Rails y a Merb).

[Como dato curioso, Sun Microsystems es uno de los patrocinadores, quien acaba de anunciar que dejará sin empleo a un montón de programadores, debido a la crisis]

Referencias:
RailsConf 2009, sitio oficial
Noticia en News Blaze
"Is Java to Blame for Sun's layoffs?", Artículo reciente en eWeek

Wednesday, January 7, 2009

TurboRuby y 3rdRail

La compañía "Embarcadero Technologies", de San Francisco, ha puesto para la venta dos productos de software interesantes:

* TurboRuby: un ambiente de desarrollo integrado (IDE) para el lenguaje Ruby. Incluye un editor con auto-compleción de código, integrado con una consola de comandos; incluye también una vista de dependencias, útil para navegar e inspeccionar código; y,
 


* 3rdRail 2.0: un ambiente de desarrollo integrado (IDE) para el marco Rails. Incluye optimizador, refactoring, soporte para Rails 2.1, y herramientas para desarrollo de aplicaciones para la red (Javascript debugging, inspección de DOM).
 


Referencias:
TurboRuby, página oficial
3rdRail, página oficial

Tuesday, January 6, 2009

Ruby y Música

Giles Bowkett está trabajando en un proyecto llamado "Archaeopteryx" que consiste en crear una biblioteca de funciones en Ruby para hacer música usando el estándar MIDI, que controla generadores de sonido musicales.

El enlace siguiente, en InfoQ, fue su presentación ofrecida en la conferencia RubyFringe, que reúne a una cantidad de gente y proyectos excéntricos que hacen avanzar a esta comunidad. Fue una excelente presentación.

Referencia:
"Archaeopteryx", en InfoQ
RubyFringe

Sunday, January 4, 2009

Libro nuevo "NetBeans Ruby and Rails IDE with JRuby"

La editorial APress acaba de publicar un libro titulado "NetBeans - Ruby and Rails IDE with JRuby" ("NetBeans - Ambiente de desarrollo para Ruby y Rails con JRuby"), de Chris Kutler y Brian Leonard. 


Los autores muestran cómo crear proyectos e instalar gemas desde NetBeans sin necesidad de ir a la consola de comando; incluyen detalles sobre cómo trabajar con el código del proyecto, bases de datos, etc., todo, dentro del mismo ambiente de trabajo.


Referencias:
"NetBeans™ Ruby and Rails IDE with JRuby", en Amazon

Libros Importantes Anunciados para Marzo'09

Debemos estar pendientes que en Marzo de este año saldrán a la venta las versiones actualizadas de dos libros, ya considerados clásicos, sobre Ruby y Rails:

* "Agile Web Development with Rails (3rd Ed)", cubrirá la versión 2.2 de Rails;

* "Programming Ruby 1.9", de Dave Thomas, Chad Fowler y Andy Hunt

Referencias:
"Agile Web Development with Rails", en O'Reilly
"Programming Ruby 1.9", en O'Reilly

Libro Nuevo "Learn to Program - Using Ruby"

La editorial Pragmatic Bookshelf acaba de anunciar la publicación del libro "Learn to Program - Using Ruby", ("Aprenda a Programar con Ruby") de Chris Pine. El libro estará disponible este mes.  


Se espera que este libro sea una excelente herramienta para los novatos, ya que hoy día muchas máquinas que todo el mundo usa son programables (laptop, iPod, teléfono celular, PDA, etc).

Referencia:
"Learn to Program", en O'Reilly
"Learn to Program", en Amazon

Libro Nuevo "Enterprise Recipes with Ruby and Rails"

La editorial Pragmatic Bookshelf publicó en Noviembre el libro "Enterprise Recipes with Ruby and Rails" ("Recetas para la Empresa con Ruby y Rails"), de Maik Schmidt. 


El libro incluye más de 50 recetas que describe, entre otras cosas, cómo usar Ruby con XML, CSV, JSON, cómo integrar a Ruby con servicios RESTful y SOAP, cómo automatizar tareas tediosas, y cómo monitorear servidores y servicios.

Referencias:
"Enterprise Recipes with Ruby and Rails", en Amazon
"Enterprise Recipes with Ruby and Rails", en O'Reilly
"Enterprise Recipes with Ruby and Rails", en Pragmatic Bookshelf
Video del Autor hablando sobre el libro (en formato *.mov)

Libro Nuevo "JRuby Cookbook"

La editorial O'Reilly, en Septiembre, publicó el libro "JRuby Cookbook", ("Recetario de JRuby") por Justin Edelson y Henry Liu. 


Entre sus recetas, el libro incluye: cómo instalar aplicaciones Rails en servidores Java, cómo integrar código JRuby con con tecnologías Java, cómo desarrollar aplicaciones locales en JRuby usando las herramientas para Java, etc.

Referencias:
"JRuby Cookbook", en O'Reilly
"JRuby Cookbook", en Amazon

Libro Nuevo "Wicked Cool Ruby Scripts"

La editorial O'Reilly publicó en Noviembre el libro "Wicked Cool Ruby Scripts", de Steve Pugh. 


El libro incluye fragmentos de código ("scripts") para hacer la vida del programador Ruby más fácil, incluyendo temas tales como: renombrar archivos, web crawlers, seguridad, bibliotecas, etc.

Referencias:
"Wicked Cool Ruby Scripts", en O'Reilly
"Wicked Cool Ruby Scripts", en Amazon

Libro nuevo: "Head First Rails"

La editorial O'Reilly acaba de publicar el libro "Head First Rails" ("De cabeza con Rails"), de David Griffiths. 


Para principiantes, enseña todo, desde scaffolding (andamios) hasta el marco MVC, pasando por XML, AJAX.

Referencias:
"Head First Rails", en O'Reilly
"Head First Rails", en Amazon

Libro Nuevo "Flex on Rails"

Libro nuevo: "Flex sobre Rails - Cómo crear aplicaciones ricas para internet con Adobe Flex 3 y Rails 2". 


Los autores son programadores y comparten sus experiencias con el público. El libro se encuentra disponible en Amazon desde Diciembre.

También han creado los siguientes sitios: http://flexonrails.com donde se encuentra disponibles el código fuente del libro y otros recursos relacionados con Flex y Rails; el blog es http://blog.flexonrails.com.


Referencias:
"Flex on Rails", en Amazon
http://flexonrails.com, sitio oficial del libro
http://blog.flexonrails.com, blog del libro
"New Book: Flex on Rails", anuncio en onrails.org, lista el índice de temas del libro