Iniciar a usar Rails 4 es ya muy fácil y rápido siguiendo estos pasos. Esto es suponiendo que usas RVM. Si aún no lo usas, considera hacerlo, es muy útil.
Instala la última versión de rvm estable
rvm get stable
Ahora, instala ruby 2.0
rvm install 2.0.0-p0
Una vez instalado, dile a tu terminal que use esta versión
rvm use 2.0.0-p0
Y ahora, para no crear conflictos con las gemas en tu sistema, crea un gemset para usarlo con Rails 4. En la siguiente instrucción creamos y usamos el gemset en la misma línea
rvm gemset use rails4 —create
Instala bundler
gem install bundler
Y por fin, instala Rails 4
gem install rails —pre
Listo. Ahora ya puedes crear aplicaciones con Rails 4!
rails new mi_aplicacion_rails4
En la práctica diaria de desarrollo de aplicaciones, es muy común que utilicemos un editor gráfico de base de datos. En mi caso, utilizo Navicat. He aquí cómo conectarse a un servidor con linux en Vagrant desde una ambiente local.
1. Es necesario primero hacer un cambio al Vagrantfile y redireccionar el puerto en el que postgresql se ejecuta. Regularmente es el 5432:
config.vm.forward_port 5432, 5432 # postgres
2. Después, hay que realizar algunos cambios en la configuración tal que nos permita conectarnos desde cualquier IP. Necesitamos modificar un par de archivos:
# "local" is for Unix domain socket connections only local all all md5 # IPv4 local connections: host all all 127.0.0.1/32 md5 host all all 10.0.2.2/32 md5
listen_addresses = '*'
Después, es una simple cuestión de crear la conexión desde Navicat. No olvides reiniciar tu servidor con $ vagrant reload. Que en este caso, como se hizo la modificación del Vagrantfile, reiniciará por completo el servidor, por lo que deberás de estar preparado en caso de que tengas información o procesos ejecutándose.

Yo uso el box por default, así que el primer paso es agregarlo:
$ vagrant box add lucid32 http://files.vagrantup.com/lucid32.box
Ahora, crear una nueva máquina virtual e instalar postgresql ahí:
$ mkdir mybox
$ cd mybox
$ vagrant init lucid32
$ vagrant up
$ vagrant ssh
vagrant@lucid32> sudo aptitude update
vagrant@lucid32> sudo aptitude install postgresql
Ahora, MUY IMPORTANTE, arreglar los settings del locale del OS (gracias, Crowd Interactive Tech Blog). Hay que editar/etc/bash.bashrc:
vagrant@lucid32> sudo nano /etc/bash.bashrc
# Agregar estas líneas al final del archivo:
export LANGUAGE=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
vagrant@lucid32> sudo locale-gen en_US.UTF-8
vagrant@lucid32> sudo dpkg-reconfigure locales
Para terminar, hay que desconectarse de la máquina virtual (ctrl-d) y conectarse de nuevo:
$ vagrant ssh
vagrant@lucid32> sudo pg_createcluster 8.4 main --start
vagrant@lucid32> sudo su
root@lucid32> sudo -u postgres psql -l
Aqui ya se debe de ver la lista de bases de datos de pqsl.
Ahora, para no tener que hacer todo de nuevo, hay que desconectarse y empaquetar la máquina virtual:
$ vagrant halt
$ vagrant package
$ vagrant box add lucid32_with_postgresql package.box
viewDidLoad:
self.refreshControl = [[UIRefreshControl alloc] init];[self.refreshControl addTarget:selfaction:@selector(refreshView:)forControlEvents:UIControlEventValueChanged];
- (void)refreshView:(UIRefreshControl *)sender {//Refresh...NSLog(@"Refresh");[sender endRefreshing];}
Un amigo, ex-colega mio que era compañero en Softtek hace muchos años y quien ahora es Director de la misma compañía en Beijing me llamó hace unos dias para ver si podia conectarlos con alguien a quien queria conocer profesionalmente. Yo estoy relativamente bien conectado en el mundo del software de Monterrey por el hecho de vivir aqui de manera intermitente desde principios de los 90’s. Mientras platicábamos, me preguntó “y que andas haciendo ahora…?” Le contesté, “pues estaba programando justo cuando me llamaste…” Su respuesta fue inmediata, “aún sigues atrapado en el código?” Hmm, si? Mas o menos. Aun programo. Aunque no realmente atrapado. ”Atrapado” implica la inhabilidad involuntaria de cambiar de posición. Mi último empleo decía “Program Manager” en la tarjeta. He rechazado muchas ofertas en los últimos 5 años para “ascender”… Soy bueno en lo que hago y gano más que muchos “directores” y más importante aún, soy feliz desarrollando tecnología (vs administrando a aquellos que la desarrollan). Pienso que es una actitud muy Mexicana, incluso latina y asiática el esperar que los buenos programadores “asciendan” a ser directores o vicepresidentes. Somos una sociedad altamente jerárquica y la gente comúnmente es juzgada según la posición que aparentemente tenemos es esa jerarquía arbitraria. La gente que trabaja con las manos (o con teclados) son considerados inferiores.
Otro amigo mio que trabaja como ingeniero en una planta automotriz de autos japoneses me platicaba en alguna ocasión como un vicepresidente que venia de visita, al ver un problema en la linea de producción, se amarro las mangas de la camisa y se metió a reparar el problema. Ante el desconcierto y descomfort de los directores que le acompañaban. Específicamente en software, ¿cuándo fue la última vez que viste a alguien muy arriba en la jerarquía de la compañía hacer un check-in de código?
Mi último jefe en HEB fue contratado después de mi y la primer cosa que me dijo cuando nos conocimos fue (mi tarjeta también decia “manager”), “Sabes, cualquier chavito puede programar, lo que necesitamos son buenos directores”. :-)
Creo que una de las principales razones que tenemos en México es que no tenemos modelos a seguir, locales, de gente que se haya hecho millonaria (o haya tenido un gran impacto en el mundo) escribiendo código.
Una vez que tengamos a nuestro Torvalds, Stallman (Ok, ya tenemos a Icaza), a nuestros Brins y Pages, Grahams o Norvigs, “programar” dejará de ser una palabra tan mala.
En algunas ocasiones, sucede lo contrario. Hace algunos años, cuando trabajaba para el Sr. Slim en Querétaro, estábamos en una junta discutiendo unos modelos financieros y las estrategias para alcanzar tales metas. Me preguntaron que era lo que yo pensaba y me puse a explicar a detalle una iniciativa de mi área y cómo se adecuaba a las tendencias actuales de aquel momento que no teníamos y debíamos de adoptar. Después de la junta, uno de los directores se me acercó y me dijo “hey, no sabia que estabas en el área de product management. Escuche que te habían presentado como Arquitecto de Software, perdón, fue mi error.” Tuve que solamente sonreir y decirle, “no hay error, soy una persona técnica, no un manager, pero eso no significa que no sepa leer o pensar por mi mismo.” El pobre no supo que más decir.
Lo más gracioso es que en la industria de software de México, la mayoria de los managers (o directores, o cualesquiera que sea su título) no tienen poder real en la compañía a la cual representan y su responsabilidad es solamente implementar las decisiones que se hacen en Detroit, Boston o Tokio. Lo más importante del juego es “subir en la escalera corporativa” y por consiguiente el segundo juego más importante es “caerle bien al jefe”. ¿Porque cualquiera (que tenga una opción)**querría** esta vida?
Cuando trabajaba para CGI en Ohio, teníamos un chiste interno. Cada uno de los desarrolladores se llamaría a si mismo como “Just a developer”. En realidad no existían jerarquias entre los desarrolladores, excepto aquellos lugares de honor ganados a través de extraordinarias habilidades o competencias.
Cuando nos visitaban o visitábamos a otras compañías, todos nos presentábamos como “Hi, my name is … I am Just A Developer”. Algunas veces los vistantes se volvian locos de la risa y les divertia ver cómo todos aquellos desarrolladores de “bajo nivel” estaban presentes en tan importantes juntas.
Mi punto es cómo la gente asume que alguien a fuerza quiere moverse de ser un desarrollador o creador a alguien que administra esas actividades.
En resumen, soy tan sólo un desarrollador. Pero uno que escogió ser uno de “esos”.
Gracias por entenderme :-)
Life is not ruled by love, or reason, or money, or the pursuit of happiness — but by fear.
This smart-but cynical position is that most people’s actions are motivated by fear of being hungry, fear of being hurt, fear of being alone, fear of being robbed, etc., and that people don’t make choices based on hope that something good will happen, but in fear that something bad will happen.
Neil Peart, on what inspired the Fear Series.
The Fear Trilogy (actually 4 songs):
Witch Hunt - Moving Pictures (1981)
The Weapon - Signals (1982)
The Enemy Within - Grace Under Pressure (1984)
Freeze - Vapor Trails (2002)
Mi concuña es diseñadora (y muy buena), pero perfectamente me cae el saco si cambiamos diseñador por programador. Así que con tu permiso :D
Síguela en twitter en @teremx
¿Que pasaría si a los demas profesionistas se les diera un trato parecido a los diseñadores?
Al Abogado.
Licenciado yo sé que usted me pude sacar de aquí, qué es un profesional y todo eso yo lo entiendo bien. Pero verá, ahoríta no estamos listos para efectuar esa clase de inversión. Usted sabe como está la situación y uno no puede andar dándose esa clase de lujos. Si tan solo me hiciera un descuentito… ¿no? … pues ni hablar.
Ahora por lo pronto — para salirle al paso — me va a defender mi sobrino Reynaldito que salió muy bueno para decír mentiras y repartír dinero entre los del ministerio público. Está chavo pero desde chiquillo se le nota el talento. Si viera lo bien que se lleva con las secretarias… es que se pone traje y corbata y hagalo de cuenta recién egresadito de la escuela de leyes.
Va a ver, luego que me prepare mi defensa le digo que se la mande por e-mail pa ver si me le puede hacer unas correccioncillas para que vaya aprendiendo ¿sale?
Al Contador
Mire, como usted sabe, ésta es una empresa muy importante en su ramo y por ello nos vemos obligados a seleccionar muy cuidadosamente a todos aquellos que trabajen con nosotros; por lo tanto usted estará compitiendo en un concurso directamente con otros de los despachos contables mas importantes de la ciudad para obtener el derecho, pues, de trabajar con nosotros.
El concurso consiste en esto: Le vamos a proveer toda la información necesaria para que usted y su equipo de trabajo realice nuestra declaración anual. Debe ser exacta, precisa y sin errores. Considereque su propuesta debe de estar de acuerdo a las últimas tendencias financieras y contables del mundo de los negocios y a la vanguardia en evasión fiscal. La propuesta seleccionada pasará a una segunda ronda donde podremos hablar de costos y presupuestos.
Esperamos que participe Licenciado Monroy, esta es una excelente oportunidad de llenar su cartera de clientes con empresas tan importantes como nosotros y la experiencia ganada no tiene desperdicio.
Al Arquitecto
Oiga ¿usted hace planos verdad? ¡Que padre! ¿Que Autocad usa? ¿En mac o pc? Fíjese que mi abuelo se dedicaba a lo mismo pero antes si era dificil porque lo hacía todo a mano ahora la computadora lo hace todo… ¿verdad?
Al Chef
¡Excelente!. ¡Este pato a la naranja está simplemente excelente!
Aunque si me permite me gustarían unos pequeños cambiecitos antes de comermelo, ya se qué usted es el que sabe pero… no le molesta… ¿o si?
Bien. Lo que pasa es que se me hace como que muy triste. Me gustaria cambiar las naranjas por cerezas porque el color rojo es mucho más alegre… ¿Si conoces las cerezas? Son unas frutitas chiquitas y rojas… si las conoces. Pues ponme unas por’fa.
Y otra cosita, a ver si me puedes dorar poquito más el pato y bañarlo con alguna salsa… acá en la taquería de lado preparan una salsa verde muy rica… ándele, ahí en los tacos de cabeza y buche. ¿Por cierto que le va a hacer falta picante no crees? Le pregunto porque usted es el que sabe… ¿eso cree?… mira, píquele unos jalapeños en escabeche ahí a un ladito y ya probamos como sabe.
Muchas gracias ¡eh!. Que amable es usted, aquí lo espero…
Ah espérese, espérese una cosita más que se me acaba de ocurrír: ¿Que le parece si a la guarnición esa de las papas me le espolvorea tambien tantíta nuez y le pone unas hojitas de cilantro? … Bueno, como usted vea. Por que a fin de cuentas… ¿usted es el experto verdad?.
Ay disculpeme, pero lo que pasa es que quisiera venír a comer a este restaurant y recomendarlo a mis amigas y todo pero … pero para ello tengo que estár 100% satisfecha ¿Si me entiendes?.Porque déjeme le digo que mis amigas si son exigentes de verdad, así que mejor prepárese una canasta de kiwis, yo se lo que te digo.
Oigaaaaa señor chef… se me están ocurriendo otros cambiecitos… ¿le molesta si voy con usted a la cocina a explicarle? ¡Graacias!
Al Cirujano
Voy a ser sincero con usted Doctor: no tengo dinero para esta operación. Asi que ¿Qué le parece si por ahora me deja el apéndice en su lugar y nomas me abre y me cose pa’ presumirle a mis amigos la cicatríz?
It’s been 6 years since I had one and I’ll have to wait another 4 for the next. Who’s got the answer?
37 is not a fancy, sexy number, but it is a good one to have indeed.
Do not count your years, make your years count. And since statistically, I have used 50% of my man-years, my purpose for this year will be to make each day count, even more than my previous ones. To be more conscious on what I use my time on.
Happy b-day to me!
Last month, Symbian published tools for development with web technologies on symbian based phones.
I’ll use this weekend to learn it and I’ll try to do some tests on how easy/difficult/impossible is to migrate my titanium/phonegap projects (iPhone/Android) to WRT Kit and I’ll publish my findings.
More info on the kit on:
I just found a very nice jQuery library. Usually, I do this using nubyonrails’ library in my rails projects, but today I found
http://omnipotent.net/jquery.sparkline/
Which I think it’s a better solution, since I already use jQuery on almost all my projects and does not require anything else (nor the pain or RMagick…)
Para borrar referencias a un svn anterior en un directorio. Para cuando el svn export no funciona como debe.
find . -type d -name .svn -exec rm -rf {} \;
… Y así después de esperar tanto, un día como cualquier otro decidí triunfar… decidí no esperar a las oportunidades sino yo mismo buscarlas, decidí ver cada problema como la oportunidad de encontrar una solución, decidí ver cada desierto como la oportunidad de encontrar un oasis, decidí ver cada noche como un misterio a resolver, decidí ver cada día como una nueva oportunidad de ser feliz. Aquel día descubrí que mi único rival no eran más que mis propias debilidades, y que en éstas, está la única y mejor forma de superarnos. Aquel día dejé de temer a perder y empecé a temer a no ganar, descubrí que no era yo el mejor y que quizás nunca lo fui., Me dejó de importar quién ganara o perdiera; ahora me importa simplemente saberme mejor que ayer. Aprendí que lo difícil no es llegar a la cima, sino jamás dejar de subir. Aprendí que el mejor triunfo que puedo tener, es tener el derecho de llamar a alguien “Amigo”. Descubrí que el amor es más que un simple estado de enamoramiento, “el amor es una filosofía de vida”. Aquel día dejé de ser un reflejo de mis escasos triunfos pasados y empecé a ser mi propia tenue luz de este presente; aprendí que de nada sirve ser luz si no vas a iluminar el camino de los demás. Aquel día decidí cambiar tantas cosas… Aquel día aprendí que los sueños son solamente para hacerse realidad. Desde aquel día ya no duermo para descansar… ahora simplemente duermo para soñar. Walt Disney
El ultimo video de Dream Theater, me gusta que se ven mas como gente comun aqui, cansados, fastidiados, luchando por encontrar la motivacion para hacerlo una vez mas…