A todos nos ha pasado que cuando construimos nuestras aplicaciones, por lo general enfocamos toda nuestra energía y tiempo en las funcionalidad core y muchas veces olvidamos o dejamos para última hora esos pequeños -pero no menos importantes- detalles que mejoran la experiencia del usuario cuando interactúa con nuestra aplicación.
Robotics Day la feria de robótica más grande de América Latina
Hoy 17 de abril fue el primer día del evento robotics day, la feria de robótica más grande de América Latina, y que bien que asistí porque tuve la oportunidad y conocer de cerca a muchos emprendedores chilenos emprendiendo y trabajando en el campo de la robótica.
Aunque todavía estos jóvenes emprendedores les queda mucho por investigar y por construir, es posible ver como ya se han aventurado y construido prototipos funcionales de robots que resuelven diversas problemáticas de interés social.
Dentro de las tecnologías utilizadas se encuentran Kinect, Arduino, Oculus Rift, procesamiento de Voz, detección de emociones e incluso Lego estuvo presente.
No todo es exposición de productos, además hay muchas charlas y talleres de interés general donde puedes aprender lo básico de electrónica digital y robótica y descubrir como programar una mano robótica y ponerte al día en I+D+i e incentivos tributarios para tu empresa.
Fotos de Robotics Day
Todavía estas a tiempo de asistir y participar en numerosas charlas y talleres de robótica para que conozcas el state of the art de la robótica chilena.
Participa en Robotics day
#robotsrule
- abril 18, 2015
- 0
- 4355
- Motivación
- Ver más
Cosas que DEBES saber como programador
Lo que debe saber todo progrador
Te preparamos este listado de elementos que consideramos todo buen programador DEBE saber:
0 .- Ir al grano
El deber de un buen programador es reducir el riesgo tecnológico, eso implica ir a la parte más compleja del proyecto primero, en otras ocasiones la más importante (no siempre coinciden).
1 .- Debe conocer varios lenguajes de programación
Un buen programador debe conocer las diferencias de los diversos lenguajes de programación sus puntos fuertes, o sea cuando (y cuando no) se debe ocupar alguno de ellos.
De un buen programador al menos se espera que sea fuerte en algún lenguaje, los generalistas (unicornios) son siempre bienvenidos pero sólo saber muchas cosas a medias no te hace un buen programador.
2 .- Debe conocer y saber aplicar patrones de diseño.
Un programador no crear todo desde cero, debe estudiar y conocer soluciones tipo para los problemas frecuentes, ningún programador decente que se aprecie de hacerlo puede darse el lujo de no conocer los patrones básicos de diseño de su lenguaje fuerte, un programador de javascript que no sabe lo que es un closure simplemente no conoce javascript.
3 .- Debe realizar control de cambios sobre sus códigos.
Todo buen programador trabaja con algún sistema de control de cambios, ya sea con GIT, SVN u otro, además sabe trabajar de acuerdo a algún branching model que le permite implementar set de cambios con tranquilidad y seguridad de no romper su código ni la versión que está en producción.
- abril 15, 2015
- 5
- 30009
- Motivación
- Ver más
Activeadmin con Hstore
En el tutorial anterior vimos como utilizar los tipos de datos hstore de postgres para guardar directamente un hash, en este tutorial vamos a ver como configurar activeadmin para poder editar de forma sencilla los datos guardados en este campo.
Paso 1: Agregar la gema activeadmin hstore editor
El truco consiste en utilizar la gema activeadmin_hstore_editor
que técnicamente hace todo el trabajo, una vez agregada la gema al gemfile tenemos que correr bundle
bundle
Paso 2: Configurar el initializer para incluir los assets del editor
Ahora debemos agregar dentro del archivo config/initializers/active_admin.rb
config.register_stylesheet 'active_admin/hstore_editor.css'
config.register_javascript 'active_admin/hstore_editor.js'
- abril 14, 2015
- 0
- 2853
- ActiveAdmin, Tutoriales
- Ver más
Guardando arrays y hashs directamente en PostgreSQL con hstore
Hace un tiempo en un experimento estábamos construyendo un sitio web para hacer sitios web, la parte compleja de este sitio era que el usuario que creaba su página web quería poner formularios de registros a su antojo y no teníamos como saber cuantos datos y como iba a querer guardarlos. En particular las bases de datos SQL como MySQL y PostgreSQL sufren este problema, necesitas conocer la estructura de antemano para poder guardar datos, pero existe una solución y lo mejor de todo es que está incorporada nativamente dentro de Rails y Postgres y consiste en ocupar la extensión HStore.
Arreglos en PostgreSQL
Para un ejemplo básico vamos a crear un proyecto de Rails desde cero, vamos a crear un modelo FOO con el campo bar, eso si, es importante estar ocupando postgreSQL en lugar de sqlite
rails g model foo bar:text
Antes de hacer la migración vamos a revisar el archivo de migración generado y modificarlo para especificar que vamos a guardar un arreglo y que por defecto es un arreglo vacío.
t.text :bar, array: true, default: []
Ahora podemos correr las migraciones con
rake db:migrate
y podemos entrar al rails console para crear un objeto foo y guardar un arreglo.
- abril 13, 2015
- 1
- 9540
- Tutoriales
- Ver más
Como hacer un scaffold después de instalar activeadmin
En este artículo te explicaré como evitar un problema que seguramente tendrás cuando quieres crear un scaffold después haber instalado la Gema «Active Admin».
- abril 2, 2015
- 5
- 4578
- ActiveAdmin, Tutoriales
- Ver más
Guardar textos en varios idiomas en rails
Si leíste el tutorial I18n en Rails podrás notar que hasta este punto, tu aplicación puede cambiar de idioma todos los enlaces, botones, etiquetas y todos los elementos que definiste con <%= t(‘cualquier texto’) %>. Sin embargo, el contenido de tus tablas de la base datos, por ejemplo un modelo de posts no lo hará. Los artículos sólo se mostrarán en el idioma en que fueron escritos. ¿Cómo podemos almacenar traducciones de contenido generado por los usuarios? La forma más sencilla de hacerlo es mediante el uso de la gema Globalize.
- marzo 29, 2015
- 1
- 5820
- Tutoriales
- Ver más
Aceptar atributos anidados con ruby on rails
Un truco muy simple en ruby on rails 4 (también aplica a rails 3) que puede ahorrarnos mucho trabajo es la capacidad de guardar un objeto junto con sus objetos hijos simultáneamente en el mismo formulario, de esta forma podemos guardar una pregunta con sus respuestas, o un post con su categoría, simúltaneamente sin necesidad de llamados ajax adicionales, o sea únicamente utilizando los atributos anidados de Ruby on Rails.
Atributos anidados en el modelo
Para lograr esto necesitamos al menos dos modelos, el padre (father) y el hijo (child), donde un padre puede tener n hijos y el hijo tiene un padre.
#models/father.rb
class Father < ActiveRecord::Base
has_many :childs
accepts_nested_attributes_for :childs
end
#models/child.rb
class Father < ActiveRecord::Base
belongs_to :father
end
- marzo 24, 2015
- 0
- 4747
- Tutoriales
- Ver más
Testing automatizado con Guard en ruby on rails
Cuando uno trabaja con testing (que es como se debiera trabajar) estar corriendo constantemente los test puede ser una perdida de tiempo notable, por cada cambio en los test o en nuestro código tenemos que ir a la consola y correr rake (o spring rake).
Testing automatizado con Guard.
Es por eso que existen herramientas para testing automatizado como la gema guard, que monitorea de forma constante los cambios de archivos y que en conjunto con la gema guard-minitest corre los tests cuando hay cambios, de esta forma mientras escribes tu código sabes si lo estás haciendo correctamente o no.
¿Cómo instalar guard?
Esta guía para principiantes te enseñará como instalar y configurar guard y correr de forma automatizada los tests.
Bonus: la gema guard también es compatible con herramientas de testing como RSpec
- marzo 22, 2015
- 0
- 3402
- Tutoriales
- Ver más
Deployment automatizado en Rails con Capistrano
¿Qué es Capistrano?
Capistrano es una herramienta que nos permite automatizar nuestros deploy, o sea subir nuestro proyecto a un servidor y también nuestras actualizaciones.
Capistrano tiene tareas y herramientas que nos permiten:
- precompilar assets
- reiniciar el server
- Migrar la base de datos
- Además podemos agregarle tareas nuevas
Antes de empezar, necesitamos tener un servidor donde podamos hacer el deploy, en este tutorial puedes aprender a construir uno con Nginx, RVM y postgreSQL. Nginx lo configuraremos junto con Puma.
Otra detalle que necesitamos es un proyecto en Rails (el que vamos a subir) y una cuenta en bitbucket o github desde esté nuestro proyecto.
Paso 1: Instalando la gema Capistrano
Dentro de tu computador, en la carpeta del proyecto, agregaremos las gemas de capistrano. Para eso abriremos el archivo gemfile y agregaremos las gemas.
- marzo 16, 2015
- 5
- 15183
- Tutoriales
- Ver más