Archive for November, 2008

Miscelánea RoR I

La comunidad de Ruby on Rails se mueve muy, pero muy rapido, y para los que empezamos con este framework se nos hace un poco difícil seguirles el paso, por lo que tenemos que estar lee y lee, y mientras más podamos practicar es mejor.

Hace como una semana o un poco más, David Heinemeier Hansson, creador de Ruby on Rails publicó en su blog una serie de posts hablando de los mitos de RoR, digo, para los que empezamos esto podría ayudarnos, ya que a veces nos detenemos en nuestra profundización precisamente por esos mitos.

Por otra parte, también leí un post de Jim Neath en el que nos da unos tips de como acelerar el desarrollo en Rails, un post que nos puede servir a los novatos que de por si somos lentos (a lo mejor no todos, pero yo si).

Recuerdo que cuando vi por primera vez el framework de RoR, hace un poco más de tres años (me pregunto porque andaba tan metido en otras cosas y no le hice caso en ese entonces), me di cuenta de que había un video de 15 minutos aprox. en el que explicaban como crear un blog, pues ahora Ryan Bates (creador del sitio railscasts.com) ha hecho un nuevo video acerca de como crear un blog, todo novato debería verlo, además de que también estaría bien echarnos un clavado en los videos de railscasts.com.

Leyendo feeds en el iPhone

Como ya había comentado en un post anterior, les había mencionado que compré el iPhone, ahora vengo a compartir ciertas impresiones sobre este telefonito que tiene gran popularidad, que está muy bien diseñado a pesar de algunas carencias, o de sus excesos (como el precio según algunos, aunque esos algunos después los he visto con teléfonos más caros, y bueno esto del precio más bien depende del país y del plan tarifario de la compañía telefónica, aquí en México si sale caro), aún así, la neta es que está muy fregón, y con el uso que le doy me queda más que perfecto, para leer/enviar correo, seguir mis comentarios en twitter, navegación que si es funcional (aún con su carencia de flash player), ver el movimiento del peso contra el dolar (inguele, y más ahorita), jugar, ver mapas con google maps y el pseudo gps, bueno hasta estar  actualizado con el Facebook, pero sobre todo y para lo que he preparado este post, para leer feeds, y se preguntarán ¿qué es un feed? y digo esto porque muchos de mis conocidos y amigos no saben y no usan los feeds; pues bien, un feed es un alimentador de noticias, o un link que nos tiene actualizados de las noticias de un sitio y que generalmente son leídos por un programa especial y manteniéndonos al tanto de la actividad de cierto sitio, incluso hay clientes de correo que pueden leer estos feeds, por eso también podrían verse como correos, por cierto aquí en mi sitio también tengo mis feeds de noticias. Bueno después de este breviario cultural (que igual y no está del todo bien pero que así me lo imagino) paso a mencionar que, en el iPhone y con la aplicación NetNewsWire puedo leer de mis feeds y que además la empresa que hace esta app para el iPhone también ofrece el servicio de feeds mediante web y aplicaciones de escritorio para Windows y Mac (sólo faltaría la aplicación de escritorio para Linux), por lo que nuestras noticias pueden ser leídas donde sea, claro que para usar estos servicios hay que registrarse, y después de registrado a suscribirse a cuanto feed quiera uno.

Por ejemplo, en mi caso yo estoy suscrito a feeds de RoR, java, Mac, Noticias del universal y por supuesto a mi propio blog y a los comentarios de mi blog:

Posts de mi blog:

http://feeds.feedburner.com/jcastaneyra

Comentarios de mi blog:

http://feeds.feedburner.com/jcastaneyra_comments

Con estas ligas, con sólo copiarlas y pegarlas en cualquiera de los programas mencionados (escritorio, en web y el iPhone, bueno en el iPhone se tendría que que escribir porque no se puede pegar, ya se, otra carencia más en el iPhone no se puede copiar ni pegar, no todo puede ser perfecto) en la suscripción, con esto ya estaríamos recibiendo noticias, y lo mejor de todo es que los feeds se sincronizan entre todas las plataformas, por ejemplo en el trabajo, y a la hora de comida podría leer noticias de RoR (hay que especificar que es a la hora de la comida, no vaya a pensar el jefe y diga que no trabajo porque me la paso leyendo noticias) y quedarme a la mitad de las noticias y en la noche llegar y con la aplicación de escritorio entrar y que se sincronicen mis feeds mostrándome las noticias que me faltan por leer.

En resumen, esta aplicación para el iPhone (en conjunto con las demás de web y escritorio) está muy efectiva para todos aquellos que quieran estar actualizados en noticias sobre los tópicos que les apasionen e interesen.

Y que conste que no recibo ninguna comisión, ¡Ah por cierto!, se me olvidaba mencionar que esta aplicación para el iPhone (y para web y escritorio) es ¡totalmente gratuita!, sólo hay que suscribirse.

Libros nuevos II

Un poquito antes de que el inche dolar se fuera arriba de los $13 pesos me compré unos libros en EU, de esos que compras en línea (Amazon, Pragmatic Books). Estos libros recien adquiridos son “Pragmatic Thinking & Learning” (Andy Hunt) y “Programming Ruby 1.9″ (Dave Thomas, Chad Fowler y Andy Hunt), estos dos de Pragmatic Programmers books.

El libro de Ruby 1.9 es más que obvio de que nos habla, del lenguaje Ruby por supuesto, y también obvio es para qué lo quiero, para levantar una de las patas de la cama :) , y para mejorar también mis skills en este lenguaje, aquí el detalle va a ser como me voy a organizar para leerlo, terminarlo, comprenderlo y aprender mucho de Ruby, y creo que para esto me va a ayudar el siguiente libro.

Siguiendo los tips o recomendaciones que vienen en Pragmatic Thinking & Learning espero poder ser un poco más organizado con mi conocimiento, con mis horas de estudio y también mejor enfocado. En el sitio de Pragmatic Programming books hay unos pdf’s de prueba de los primeros dos capítulos.

Si alguien de plano quiere comprar estos libros, por favor comprenlos a través de las ligas que están aquí así me ayudan a mantener este sitio, o bien me ayudarían a comprar más libros, aunque si alguien no quiere comprar pero desea patrocinarme un libro, una cerveza o un café, o sólo donar un pesito, o un dolar, pues les agradeceré enormemente que la donación la hagan por aquí.

Caray, lo que tiene uno que hacer por un libro o una cerveza, en este preciso momento me estoy imaginando como uno de esos borrachitos que andan en la calle pidiendo una moneda para seguir comprando alcohol pero en un estilo tecnológico :D , y bueno, si me unas cervezas, les puedo decir que les saldré bien barato porque con 6 ya estaré bien ebrio.

El Che

Hace un rato ya, talvez 2 semanas o más terminé de leer el Che de Paco Ignacio Taibo II, bueno el título completo es “Ernesto Guevara, también conocido como el Che”, y cuando iba acercándome al final recordé lo que varias veces me decía el Choco acerca de este libro y de las sensaciones y emociones que él había experimentado, y realmente comprendí cuando me dijo que lo había terminado y había llorado, creo que yo experimenté algo similar aunado a un sentimiento de indignación, obviamente sabía como iba a acabar, pero nunca había puesto atención o investigado acerca del Che, recuerdo también que cuando era estudiante veía a mucho jóvenes vistiendo playeras con imágenes del Che, y siempre me preguntaba por ese personaje, e incluso preguntaba con mis amigos y casi nadie me decía nada, hasta ese fenómeno me hacía pensar si esa imagen era una moda entre jóvenes que sentían cierta rebeldía, el hecho de estar en contra del sistema, y que seguramente no sabrían en realidad lo que ese personaje había hecho o lo que significaba; pues hasta hace poco, casi 10 años después de esas preguntas que me hice (me pregunto porqué esperé tanto) pude contestarlas, al menos sobre lo que significa y significó el Che para Cuba, para América y el mundo entero en busca de la libertad, todavía siguen pendientes las preguntas de si el Che y su imagen es una moda entre jóvenes. El Che fue un gran hombre, un gran lider, que era igualitario con todos sus semejantes y preocupado por ellos y por su bienestar, en fin, un hombre que al saber uno como era y como fue perseguido al final de su vida, llega a ocasionar ese sentimiento de vacío y torbellino en el estómago que te lleva a la indignación.

Después de conocer me vienen otras preguntas a la mente, ¿Nosotros como personas somos igualitarios con nuestros semejantes?, ¿Nuestras luchas internas y externas son para el bien común? ¿O de plano somos todo lo contrario? Lamentablemente veo que la respuesta para muchos es más que obvia, una respuesta afirmativa a la tercer pregunta, y talvez, incluso para mi podría serlo a veces cuando veo que voy nadando contra corriente.

Que los desarrolladores prefieren las Macbook

Hoy he leído una noticia en macworld acerca del porqué muchos desarrolladores prefieren computadoras mac como sus herramientas de trabajo principales, y en general tienen razón, en una mac se pueden correr con máquinas virtuales linux y windows, y con una integración muy buena, en alguna ocasión vi corriendo el visual estudio con VMWare fusion en una ventana nativa del OS X (además de que también está el parallels para correr máquinas virtuales, y creo también el virtual box). Ahora bien, correr OS X en una máquina que no sea Mac no es tan fácil, recientemente alguien me decía que si es posible con algunas distribuciones o algo por estilo de versiones de OS X hackeadas (aunque seguramente se debe poder ejecutar bien OS X en una máquina virtual, aún no le he investigado), aún así, se puede pero se tienen algunas restricciones de hardware, como que se debe tener hardware específico para que corran bien.

Pues bien, al refererirse a desarrolladores pasan por una gama de herramientas y lenguajes, tales como Rails, java, python, el iPhone SDK, .NET, que sin duda todas estas plataformas de desarrollo son importantes para alguien que ande metido en todo esto, yo sin embargo apenas si veo algo de RoR, y ando más metido en Java, pero esto en una máquina windows, aunque si me gustaría desarrollar en el SDK del iPhone algún día.

Sin duda las mac son unas máquinas muy llamativas y que tienen hardware con tecnología de punta lo que lleva a que corran de maravilla; yo como desarrollador, la verdad si preferiría una macbook pro, aún cuando dije aquí que mejor armaría una máquina con linux, a decir verdad mi economía ni siquiera me ha permitido armarla, mucho menos podría comprar una macbook en estos momentos, talvez después.

Instalando RoR 2.2 RC2 en Leopard

Al día de hoy no tengo una computadora a mi disposición, y como no tengo una, de vez en cuando hago cosas en la compu del trabajo, que no debería, y también a veces me prestan la macbook air, y en la macbook puedo trabajar un poco más, que me gustaría trabajar mucho más en la macbook, pues bien, hace rato ya había trabajado con Ruby on Rails con la versión que trae el leopard, pero hace unos días me dieron ganas de probar la RC de RoR la 2.2 (ya la RC2), para instalarlo tuve que investigar un poquito, ya que no es un proceso de instalación sencillo, tiene algunos trucos, para esto me basé en el post de Dan Benjamin, pero para variar me hago un resumen a mi mismo, para cuando se me vuelva a ofrecer, así que para más detalle visitar el post, ahí si mencionan que sólo por las dudas sería bueno respaldar la información, yo no lo hice, y todo salió bien.

Pues bien, para tener instalada una de las últimas versiones de RoR y diferente a las que está instalada por defecto en leopard es necesario tener instalado el XCode 3.0 o superior, este puede ser bajado de developer.apple.com o bien instalándolo del disco que viene con la mac, la verdad no se que disco es, pero con la mac debe de venir un disco (o más no recuerdo).

Primeros pasos

Primero que nada hay que configurar el path, para esto habrá que abrir una terminal (en este caso con el bash shell), y verificar que esté en mi directorio home, o bien esto puedo realizarse usando el comando:

cd

Habrá que editar el archivo .bash_login, yo lo hice con el vi, es posible que este archivo no exista, si no existe lo vamos a crear, y si existe pos editaremos la parte del path, entonces para editarlo o crearlo es con el siguiente comando:

vi .bash_login

Al final del archivo se deberá introducir la siguiente línea:

export PATH="/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:$PATH"

Lo siguiente es ejecutar el cambio:

. .bash_login

Al path se agregó la ruta donde se encuentra MySQL, para la instalación de MySQL en leopard recuerdo que sólo bajé el paquete directamente de www.mysql.com y seguí las instrucciones que vienen con dicho paquete.

Se tiene que crear ahora un directorio donde vamos a bajar Ruby y posteriormente compilarlo, entonces habrá que ejecutar los siguientes comandos:

sudo mkdir -p /usr/local/src
 
sudo chgrp admin /usr/local/src
 
sudo chmod -R 775 /usr/local/src
 
cd /usr/local/src

Ruby

Para bajarlo y compilarlo ejecutamos los siguiente:

curl -O ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.6-p287.tar.gz
 
tar xvzf ruby-1.8.6-p287.tar.gz
 
cd ruby-1.8.6-p287
 
./configure --enable-shared --enable-pthread CFLAGS=-D_XOPEN_SOURCE=1
 
make
 
sudo make install
 
cd ..

Para verificar que ruby se instaló en el path correcto, escribir:

which ruby

Se debería ver:

/usr/local/bin/ruby

RubyGems

El siguiente paso es instalar RubyGems (que por cierto Ruby on Rail 2.2 RC2 requiere de RubyGems 1.3.1):

curl -O http://files.rubyforge.mmmultiworks.com/rubygems/rubygems-1.3.1.tgz
 
tar xvzf rubygems-1.3.1.tgz
 
cd rubygems-1.3.1
 
sudo /usr/local/bin/ruby setup.rb
 
cd ..

Ruby on Rails

Para instalar la versión estable de RoR se ejecuta:

sudo gem install rails

También instalamos mongrel y capistrano, por si las moscas:

sudo gem install mongrel
 
sudo gem install capistrano

Ahora si, para instalar la versión 2.2 RC2 de RoR ejecutar:

sudo gem install rails -s http://gems.rubyonrails.org

Y por último instalamos la gem para mysql

sudo gem install mysql -- --with-mysql-dir=/usr/local/mysql

Recursos:

http://danbenjamin.com/articles/2008/02/ruby-rails-leopard

http://weblog.rubyonrails.com/

http://dev.mysql.com/get/Downloads/MySQL-5.0/mysql-5.0.67-osx10.5-x86_64.dmg/from/pick#mirrors

Ya quedó instalado Ubuntu 8.10 (actualizado sobre 8.04)

La semana pasada, instalé Ubuntu 8.10, bueno más bien actualicé sobre mi versión de 8.04, sólo tuve un pequeño problema, que cuando arrancaba no me reconocía la tarjeta de video, y después de un rato me di cuenta, que al hacer la actualización hay ciertos archivos que no sobreescribe, incluso te saca mensajes de que los archivos los va a dejar intactos, uno de esos archivos fue el /boot/grub/menu.lst, por lo que la actualización a 8.10 traía un kernel nuevo, y este kernel nuevo no se encontraba en la lista de kerneles a arrancar.

Así pues, la solución fue agregar ese nuevo kernel al menu.lst, y con esto quedó solucionado el problema de que no me reconocía la tarjeta de video.