Entradas guardadas por 'Programación' ↓

Migraciones y CSV con FasterCSV

En nuestras aplicaciones a veces es necesario cargar en la base de datos gran cantidad de registros que deben estar ahí siempre.

Un buen ejemplo de esto podría ser una lista de países con sus respectivas provincias y ciudades, algo con lo que seguro os encontraréis algún día si no lo habéis hecho ya.

Normalmente, antes de conocer Rails y su filosofía, si me hubiese encontrado esto lo habría importado a la base de datos de forma manual.

Ante esto, he visto que algunos optan por cargar todos esos datos en la misma migración para que esta se ejecute cuando sea necesaria, pero para ello deben jugar con la consola hasta conseguir la cadena de texto con los datos que les interesa y la pegan en la migración para posteriormente procesarlas con por ejemplo un Model.create(:mi => “hash”).

Si necesitas volcar en la DB 1000 registros el resultado del archivo que se encargue de la migración puede ser enorme, no quiero ni imaginarme una maquina modestilla intentando abrir un fichero con miles de registros y encima queriéndolos colorear…

Continue reading →

Youtube-g con Geodata

Youtube-g es una gema de Ruby que permite acceder de forma bastante cómoda a los datos proporcionados por la Api de YouTube.

Aunque esta gema en sí es genial aún le faltan bastantes métodos en comparación con lo que permite la API de YouTube. Pero como software libre que es los demás podemos además de usarla y distribuirla, podemos mejorarla.

Esto siempre se ha podido hacer, pero la verdad es que GitHub casi que anima más a hacerlo, así que yo como otros tantos hice un fork de Youtube-g, le añadí una pequeña funcionalidad, avisé al autor desde el propio GitHub y ya están disponibles los cambios en el proyecto principal.

Los métodos añadidos son sencillos, pero supongo que a alguien le será útil, ahora desde la gema puedes saber si un vídeo de YouTube tiene geodatos y en caso afirmativo permite sacarlos.

Si estáis interesados en la gema recordad bajaros la original, y no los forks a menos que estéis interesados en algo que no se haya implementado aún.

PD: A pesar de lo que dice la Wikipedia de los forks, en GitHub un fork no tiene porque nacer para seguir creciendo por un camino distinto, si no que las mejoras pueden añadirse al proyecto original, supongo que como en todos lados.

PPD:
Git Powa!

Rating con act_as_rateable plugin

Desde luego una de las mayores ventajas de Rails es la existencia de los plugins y gemas que nos permiten no comernos la cabeza con cosas repetitivas, pesadas o simplemente no tener que reinventar la rueda.

En esta caso tenia que hacer un sistema para puntuar cosas con las típicas estrellítas que podemos ver en YouTube o en otras tantas webs de hoy en día. Finalmente lo conseguí, eso si gracias al plugin act_as_rateable, los gráficos de Komodomedia y la pequeña guía de Naffis.

La mayor diferencia entre la guía de Naffis y los pasos que yo pondré aquí es que aquí te enseñaré a sacarle toda la potencia pudiendo hacer el sistema polimórfico.

Advierto que a menos que estés interesado no sigas leyendo porque es un autentico ladrillo, eso si, el resultado es muy bonito :D

Continue reading →

FrameWork Blueprint CSS

El otro día navegando por la web topé sin querer con BluePrint CSS, un framework CSS que nos facilitará mucho la vida a la hora de crear nuestros nuevos proyectos, sobre todo a aquellos que no nos gusta vérnoslas con el CSS pero que necesitamos aplicar un mínimo de estilo a los proyectos.

Blueprint nos brinda diversas clases para posicionar nuestros objetos en cualquier parte de la pantalla de forma sencilla, clases para nuestros textos y lo más importante, lo que hagamos se verá igual en todos los navegadores porque resetea todos sus estilos por defecto y funciona en iExplorer!!!

Viene acompañado de unos pequeños scripts en ruby para adaptar el framework Blueprint CSS a nuestras necesidades pero yo prefiero usar la utilidad online Blueprint Generator.

La forma de usarlo es bien sencilla, añades los ficheros CSS a tu proyecto y puedes empezar a usar las clases, además aplicación la clase “grid” podrás ver la rejilla con las columnas prefijadas para que puedas orientarte mejor.

Como última cosa, solo decir que creo que lo mejor es una vez generados los archivos CSS de Blueprint lo mejor es no tocarlos y las nuevas clases CSS crearlas en otro archivo. Con esto te aseguras de no “estropear” nunca algo que ya funciona, los archivos pequeños son más manejables y separas tu código del Framework.

GearsOnRails (Google Gears + Rails)

Hace un par de días pude ver en el blog de Google Code Updates un post sobre un plugin que están desarrollando que permite la integración de Google Gears en nuestras aplicaciónes Ruby on Rails.

El plugin en concreto se llama GearsOnRails y ya está disponible para ser descargado desde su Google Code.

En la página principal podemos encontrar dos sencillos ejemplos, pero hasta la fecha no los he podido hacer funcionar correctamente. De todas formas parece que este plugin está en una fase bastante temprana pues apenas tiene documentación ni están deserrollados los tests.

Lo malo es que por lo que he leído en la lista de discusión van bastante lentos en su desarrollo, pero de todas formas creo que cuando esté listo será un bombazo.

La última fuente que me queda (porque aún apenas hay nada en la red hablando de este plugin) es escuchar el podcast (iTunes) en inglés en el que entrevistan a dos de sus desarrolladores si no me equivoco.

También he podido encontrar lo que parece ser el blog oficial de GearsOnRails creado hace solo dos días, espero que esto signifique mayor actividad para el proyecto.

Libro Ruby Fácil, CreativeCommons

Hace un por de días navegando por una lista de correo de Ruby encontré el libro Ruby Fácil en su versión CreativeCommons.

Su autor Diego Guillen lo tiene disponible para descarga directa en 4Shared. También podéis encontrar una versión impresa más amplia al cual me gustaría echarle un vistazo, aunque de momento creo que su versión CreativeCommons de momento me va de perlas.

De todas formas si estáis interesados en la versión ampliada no os recomiendo que os la descarguéis de “estrangis” que por solo 4€ podéis conseguir la versión en PDF y por 12€ en papel, así apoyamos la creación de documentación en Español para Ruby que falta nos hace.

Como no me gustan mucho los sistemas esto de descarga de archivos yo pongo aquí una copia para que lo descarguéis directamente:

Descarga Ruby Fácil en PDF.

Mis plugins habituales (II)

Hace ya varias semanas publiqué un post llamado “Mis plugins habituales en Rails”, la verdad es que la lista era bastante cortita, pero como es normal según me he ido introduciendo en el framework mis necesidades han ido creciendo y otras veces simplemente he encontrado plugins que han resulto cosas mejor a como las hacía yo.

  • File Column: Este seguro que muchos lo conocéis, como este hay muchos, otro que suele usar mucha gente es el attachment-fu, pero a mi este me ha estado siendo suficiente hasta el momento, quizás un día de estos pruebe el attachment-fu.
  • Bundle-fu: Este plugin cuando lo descubrí me pareció magnifico, hace una labor muy concreta pero a veces muy necesaria como es el meter todos nuestros archivos javascript y css en uno solo, haciendo que los tiempos de cargan sean menores, solo haría falta que nos lo comprimiera y eliminase todo lo que no fuera imprescindible.

    No se muy bien si lo hace o no, el JavaScript que me devuelve no se si ya era así de feo o si el lo trata, pero el CSS lo envía bien legible, por un lado es bueno, pero a veces nuestra prioridad no es que sea legible si no ligero.

    En Flowers In Space lo usamos actualmente en PlaceChannel y en otras aplicaciones web que llevamos para tratar de aligerar los tiempos de carga.

  • Sluggable-finder: Con este plugin te será más sencillo aún crear permalinks basados en texto y no en el id, para usar este plugin solo tendrás que añadir una linea más en el modelo que necesites y crear un campo más en la tabla a la que se refiera.

    Si por ejemplo quieres rutas del estilo “/post/este-es-mi-nuevo-post” basadas en el titulo, el plugin te la tratará automáticamente y si ya existe en la base de datos pues será del estilo “/post/este-es-mi-nuevo-post-2″.

    También le puedes decir que distinga entre otros campos por si quieres cosas del estilo “/user/manolo/post/mi-vida” y “/user/juan/post/mi-vida”.

    Ambos tendrán distinto permalinks para post del mismo título.

    Está claro que todo esto lo podríamos controlar nosotros mismo, pero este plugin ya lo resuelve muy bién, además su creador es hispano.

  • Otros plugins que aún no he probado pero están en mi punto de mira son FriendShips y Acts-as-commentable.

Sentencias básicas en SQL

Siempre viene bien tener una chuletilla a mano, sobre todo si es tan sencillas y con ejemplitos como esta de SQL.

Puedes ver las sentencias básicas en SQL en Diário de un Linuxero.

Factoría web 2.0, evento final

Factoria Web 2.0

El próximo Miércoles 30 de Abril tendrá lugar en la escuela de Ingeniería Informática de Sevilla la presentación de los proyectos participantes en la Factoría Web 2.0.

Además de esto se realizarán charlas y mesas redondas con la participación de personajes como Bernardo Hernández director mundial de marketing de Google Maps y Google Earth, Javier Martín más conocido por Loogic y muchos más pero que sinceramente yo desconozco porque no tienen mucha relación por donde suelo moverme, pero espero conocerlos aprovechando la ocasión :D

Finalmente no sabemos si saldrá el próximo pelotazo de la red de esta Factoría Web 2.0, aunque algunos de momento no han salido mal parados, contratados por otras empresas o como yo que he terminado siendo parte del equipo de Flowers In Space.

Lo que si es seguro es que gracias a la Factoría más de una docena de jóvenes hemos podido iniciarnos en muy distintos aspectos de la programación web y el diseño de interfaces en general: usabilidad, accesibilidad, diseño, estándares, Ruby on Rails, ajax y un largo etcétera el cual supongo dependerá de los objetivos e intereses de cada uno.

Como un participante más de Factoría Web 2.0 solo puedo felicitar a todos los grupos que han llegado hasta el final cumpliendo en mayor o menor medida sus objetivos, y a los que no, pues decirles que al menos lo han intentado y eso es lo primero de cualquier proyecto, intentarlo, luego supongo vendrán muchas cosas más…

Más información sobre el evento en Flowers In Space.

Ver el log de Rails

Esta anotación es una tontería pero nunca recuerdo la receta necesaria para sacar el log del Webrick y cualquier día lo pierdo, que mejor sitio que mi blog para apuntarlo :P

tail -f log/development.log

Por supuesto “tail -f” lo puedes usar para cualquier otro archivo de texto que se valla actualizando y quieras observar.

Como siempre puedes saber un poco más sobre este comando con:

man tail

Os prometo que tengo un par de posts más interesantes y no tonterías como estas… la que más me gusta es el que está relacionado con javascript, imágenes y Flickr