Ruby On Rails 35
Instalando PostgreSQL para Ruby on Rails en OSX
PostgreSQL es un excelente motor de bases de datos pero para los que estamos acostumbrados a las bondades de OSX de que todo sea una simple aplicación que se descarga y estamos listos puede ser frustrante.
Este error lo obtenemos cuando tenemos declarada la gema pg en el gemfile (aunque sea exclusivamente para el entorno de producción) y nosotros no la tenemos dentro de nuestro computador. Si no queremos ocupar la gema pg lo que podemos hacer es decirle a bundle que no la instale localmente, esto se puede lograr con:
bundle install --without production
Pero, ¿Qué pasa si realmente queremos instalar la gema para poder homologar el entorno de desarrollo con el entorno de producción, o, queremos descargar la base de datos de heroku (que está en Postgres) y ocuparla dentro de nuestro computador?
Instalando PostgresSQL
Paso 1: Descargar e instalar postgresAPP
Paso 2:
Agregar al path la carpeta de binarios Este paso es ligeramente más complejo, hay que abrir con sublime, vim, nano o el editor que quieras el archivo .bash_profile que se encuentra oculto en la carpeta de usuarios (todo los archivos que empiezan con un punto están ocultos en OSX y en Linux), ahí dentro tienes que agregar al final:
PATH="/Applications/Postgres.app/Contents/Versions/9.3/bin:$PATH"
Y con eso estaríamos listos, ahora tienes que abrir una nueva terminal (cada vez que modificas el path tienes que abrir una terminal nueva para que cargue, vas a la carpeta de tu proyecto rails y bundle install.
Te gustaría descargar la base de datos de Heroku para ocuparla localmente?, aquí los pasos para descargarla y usarla.
Taller presencial de Ruby On Rails En Noviembre
El miércoles 19 de noviembre empieza la 12º versión de nuestro taller presencial para construir aplicaciones web con Ruby on Rails.
¿Qué Es Ruby On Rails?
Es el framework de programación para hacer aplicaciones web más popular y en el puedes hacer aplicaciones web desde cero de forma rápida y fácil. Entre los ejemplos clásicos de aplicaciones construidas en Ruby on Rails están Twitter y Groupon.
¿Qué Aprenderás En Este Taller De Ruby On Rails?
Aprenderás a construir aplicaciones web como Twitter o Pinterest con acceso a bases de datos y sistemas de autenticación (Login).
Además aprenderás a construir páginas web ocupando Twitter Bootstrap y verás que en pocas horas puedes tener tu propia aplicación web corriendo en línea.
¿QUIENES HAN TOMADO ESTE TALLER PRESENCIAL?
- Emprendedores que quieren incursionar en el mundo digital.
- Diseñadores que quieren aprender a hacer páginas web con tecnología del 2014.
- Ingenieros que buscan actualizarse.
- Personas que necesitan más control sobre sus páginas web
- Jefes de proyecto que buscan entender mejor a sus equipos de desarrolladores
OLVÍDATE DE FLASH Y DE DREAMWEAVER
En este taller presencial aprenderás a construir aplicaciones web del tipo de redes sociales, con capacidades para que los usuarios se registren dentro del sitio y suban datos ellos mismos.
CREA APLICACIONES RESPONSIVAS
Durante el taller presencial se ensañará Twitter Bootstrap para que todos los sitios construidos sean responsivos.
¿DÓNDE ES?
Este taller es en Santiago, Chile, en la escuela de gestión europea, en Av. Eliodoro Yáñez 869, Providencia. A pasos del metro Salvador.
TE QUEDA MUY LEJOS, O ERES DE OTRO CIUDAD O PAÍS / CIUDAD
No importa, dictamos un curso online en En1mes.com y tenemos más de 1200 personas registradas.
CASOS DE ÉXITO
Algunos de nuestros casos de éxito:
¿CUÁNTO DURA?
Este taller consta de 12 horas intensivas en noviembre, divididas en 7 días de la siguiente forma:
Miércoles 19, Viernes 21, Lunes 24, Miércoles 26, Viernes 28, Lunes 1 y Miércoles 3 de diciembre.
¿CUÁL ES EL VALOR?
Este taller tiene un valor de $168.000 pero actualmente lo tenemos a precio promocional por $126.000 (25% de descuento)
El problema de las n+1 queries en Ruby on Rails
El Active Record de Ruby on Rails tiene muchas cosas geniales, pero algunas de ellas si no las manejas bien pueden repercutir negativamente en el rendimiento de la aplicación.
Uno de los errores más frecuentes de los desarrolladores novatos de rails es el problema de las N+1 queries.
El problema sucede cuando intentando realizar una sola consulta a la base de datos termina haciendo N+1 consultas, y aunque cuando uno tiene una base de datos con pocos datos el efecto es casi invisible, a medida de que crece el número de datos y el número de clientes este problema puede llegar a impactar de forma muy dura en el rendimiento de tu aplicación a tal punto de botarla.
¿Cuándo ocurre?
El problema ocurre cuando se itera sobre los hijos de uno de los objetos del modelo, para analizarlo sobre un caso práctica imaginemos que tenemos 2 modelos, uno de usuario y el otro de pins y cada usuario tiene muchos pins.
Específicamente el problema se hace visible en la iteración de los resultados.
Ahora cuando uno trabaja bajo un paradigma MVC es raro que uno tenga el código de esta forma, lo más probable es que el llamado a todos los usuarios se haga en la página index y luego dentro de la vista usuario se itere sobre los resultados mostrando por ejemplo los 5 mejores pins de cada usuario, pero el resultado es exactamente el mismo, n+1 llamados a la base de datos.
Para este caso de pruebas se tienen 2 usuarios, Diego y Gonzalo y uno tiene 3 pins y el otro ninguno, y aquí podemos observar que que se hicieron 2 queries a la base de datos en lugar de solo 1.
Para solucionarlo en el mismo momento que hacemos el query debemos incluir a los hijos del modelo, en nuestro caso el query inicial debió haber sido.
User.all.includes(:pin)
De esta forma se hace una sola consulta a la base de datos, ahora repitamos el experimento anterior y comparemos resultados.
Por qué elegimos Rails
Un poco de historia
Después de haber fracasado en nuestro primer emprendimiento, con mi amigo y socio Felipe Salamanca decidimos que está vez íbamos a crear una startup que aprovechara más nuestras aptitudes. Ambos ingenieros industriales TI habíamos desarrollado aplicaciones cuando éramos universitarios, por lo que con nuestra formación crear un SaaS (software como servicio) no parecía mala idea, a pesar de que no habíamos desarrollado nada en los últimos 6 años. Con mucho optimismo e ingenuidad decidimos crear un software para optimizar la publicidad en Facebook y lo llamamos RocketAd.
La elección de Rails
Con un producto “definido” en mente empezamos la búsqueda del framework que se ajustara a nuestras necesidades. Sin entender mucho las razones por detrás, nos decidimos por un framework para desarrollo ágil con lenguaje dinámico, porque eso en teoría era lo más rápido. Así que después de mucho google, foros, blogs, stackoverflow, quora, etc… llegamos a dos candidatos: Rails y Django. Lo que concluían la mayoría de estos sitios es que ambos frameworks son espectaculares y opciones seguras, por lo que la decisión final dependía de razones personales. Finalmente nos quedamos con Rails por dos razones específicas:
- La comunidad en Chile de Rails es mucho más grande que la de Django, por lo que cualquier duda o contratar un desarrollador sería más simple
- Justo apareció un emprendimiento que enseñaba Rails (sí, se llama En1Mes), así ambos nos podiamos poner al día al mismo tiempo y con profesores para sacar dudas
6 Meses más tarde
Hace 6 meses atrás realmente no sabíamos que construir, nuestra aplicación tiene más de 60 migraciones en la base de datos y lo que nosotros definimos como MVP ha tenido muchas mutaciones. De hecho ya no “optimizamos” la publicidad en Facebook, simplemente la “automatizamos”, aunque parezca un detalle menor, eso cambió totalmente nuestra startup. Ahora entendemos mejor lo que significa el desarrollo ágil y las virtudes de un lenguaje dinámico. Pero no todo ha sido amor con Ruby on Rails, hay ocasiones que hemos odiado su “magia”, sobre todo cuando no sabemos de donde vienen las cosas. Pero sumando y restando claramente fue una excelente decisión. Jamas diría que Rails es el mejor framework del mercado, pero sin dudas es una opción segura para el 90% de los casos. Hay mucho hype dando vuelta con nuevos frameworks, stacks y guerras religiosas, pero al final del día lo único que realmente importa es que alguien esté interesado en lo que estas creando. Y para trabajar en ese mundo iterativo Rails sigue siendo uno de los grandes.
¿Cómo Escoger Un Lenguaje De Programación Para Tu Emprendimiento?
Muchos emprendimientos y empresas han partido construyendo su software en el único lenguaje de programación que manejan, como los institutos y universidades en Chile enseñan .NET, Java la mayor cantidad de empresas construye su software en estos lenguajes, pero esto no tiene nada que ver con que sean buenos lenguajes para construir software.
Debería aclarar que no son malos lenguajes, de hecho son muy buenos, pero en el mundo del software existen herramientas de propósitos generales como los son .NET y Java y herramientas para propósitos específicos como lo son los frameworks de Ruby on Rails y Django. Y, aunque parezca un poco obvio, lo voy a señalar igual, el ocupar una herramienta de propósito específico es más eficiente que ocupar una herramienta de propósito general.
Los informáticos llevan tanto tiempo discutiendo sobre este tema que incluso han integrado a su jerga la expresión “no reinventes la rueda” esto quiere decir que cuando estés programando no gastes tiempo en hacer lo que ya está hecho, y si dentro de tus planes está construir una aplicación web deberías ocupar una herramienta específica para ese propósito, o sea una framework de programación web.
Hay frameworks de programación web para muchos lenguajes, los más famosos del momento son Laravel para PHP, Ruby on Rails para Ruby,Node para Javascript y Django para Python, pero hay muchos más.
El gran error que cometen muchos emprendedores a la hora de escoger dentro de los cientos de lenguajes y frameworks que existen es estar más preocupados de características generales de los lenguajes, o del escalamiento de demanda de ellos antes de estar preocupados de lo más importante. Qué tan factible (y eficiente) es la herramienta para resolver el problema.
Así que vamos a simplificar un poco el esquema con cuatro simples recetas.
1) Para páginas simples:
Si sólo necesitas una página web para mostrar tu producto no es necesario que te compliques, la puedes hacer simplemente con HTML y dejarla bonita con CSS, es más puedes ocupar una plantilla y ahorrarte el trabajo de diseño.
2) Para blogs:
Si necesitas escribir contenido hay dos opciones muy simples que me gustan mucho, Medium y WordPress. Medium es la más simple, requiere saber cero de programación y me gusta porque me permite enfocarme en lo que escribo y entrar en contacto con mucha gente de mis redes sociales, WordPress en cambio me permite agrupar todo los artículos escritos bajo la imagen coorporativa de En1mes y potenciar el SEO de mis sitios.
3) Para aplicaciones web:
Cuando necesito hacer algo un poco más potente, con conexión de Facebook u otras redes sociales y manejar yo mismo la lógica de lo que sucede ocupo Ruby on Rails, es un tremendo framework de programación con mucha magia detrás que permite hacer grandes cosas en poco tiempo, ahora no hay problema en ocupar otro framework si ya lo conoces, pero si vas a partir desde cero yo te recomendaría darle un vistazo a Ruby on Rails.
Es por eso que nosotros hemos enfocado los cursos de en1mes específicamente en estas tecnologías puesto que con el paso del tiempo son las que han demostrado ser las más útiles a la hora de desarrollar rápido.
4) web mobile:
Una estrategia híbrida con Phonegap o Titanium para el desarrollo de aplicaciones móviles puede ahorrarte cientos de horas de trabajo de desarrollo, claro, es cierto que no sirve para todos los casos, pero cuando quieres probar un prototipo es lo ideal:
Un buen aviso:
Evita cualquier tecnología que esté mal documentada y por ningún motivo aceptes que un programador imponga como tecnología un framework propio de el.