Trabajo hecho en BeaconStreetGirls


Durante este año, estube trabajando como desarrollador de un sitio llamado Beacon Street Girls


Primero desarrolle un feature bastante interesante, usando la API provista por Doink, y fui uno de los primeros en usar su API (a tal punto que estaba en desarrollo de su parte mientras yo la implementaba para BSG).


Fue un gran feature, y mientras el sitio estuvo levantado, hubo miles de videos de los usuarios del sitio, pero hace unos meses, por la crisis financiera mundial, el sitio en rails fue dado de baja, y actualmente solo tienen en linea su sitio en PHP.


Estas son algunas de las capturas del trabajo hecho


Posted in Mi Trabajo, Ruby | Leave a comment

Focus on Virtualization liberado

Durante el año estube trabajando en un sitio que quedo muy lindo, Focus on Virtualization.


Es un sitio hecho para IDG y Microsoft, se realizo en solamente dos semanas, y una de las partes que me gusto mucho como quedo fueron los tweets.


Algunas imágenes:

Posted in Mi Trabajo, Ruby | Leave a comment

rails: busquedas en twitter usando search.atom


Recientemente, tuve que crear un twitter live feed para un trabajo que estoy haciendo… encontre un par de gemas para hacer busquedas en twitter, pero todas usaban la api json, y como mi cliente quería los mismos resultados que se pueden encontrar en twitter.search.com, directamente cree una librería (siguiendo los ejemplos de las gemas) para utilizar la api search.atom, y parseando los resultados con hpricot.

Si te encuentras con el mismo problema, aca tenes el código

TwitterFeed.rb

Posted in Ruby | 1 Comment

Como solucionar los problemas de MOStlyCE en mambo 4.6.x


Trabajando para lasentinel, estaba teniendo problemas con el editor MOStlyCE, el problema era que no había manera de hacer que los administradores del CMS puedan subir imágenes o distintos archivos, porque cuando intentaban hacerlo arrojaba un error de js, relacionado con un parametro callback que no estaba seteado: advimage_image_browser_callback.

Lo primero que descubrí fue que faltaba el directorio UserFiles, si queres que tus usuarios puedan subir archivos para los artículos que escriben, tenes que buscar dentro del directorio mambots/editor/mostlyce un archivo comprimido, descomprimido en el root de la instalación de mambo.

Pero incluso haciendo eso, y configurando MOStlyCE en el administrador como es debido, tiraba errores, y me estaba rompiendo la cabeza, así que directamente borre el mambot con el componente, y lo volví a instalar de nuevo. Y seguía con los mismos errores.

La solución? Instale MOStlyCE 3.1. Se ve muchísimo mejor que antes y trabaja muy bien con mambo.

Así que si estas teniendo problemas con MOStlyCE y mambo, y se que hay mucha gente que esta teniendo estos tipos de problema, simplemente desinstala el componente y el mambot de mostly, instala la versión 3.1, y no olvides de buscar y descomprimir el archivo UserFiles.zip.

Posted in PHP | Leave a comment

La próxima versión de rails será la 3.0


Ahora que rails 2.3.2 fue liberado (la última versión es rails 2.3.2.1), el equipo de rails va a concentrar esfuerzos en la versión de rails 3.0, que significa dos cosas:

  1. No va a haber una versión 2.4 :P
  2. Pueden esperar un montón de cambios para la versión 3.0

Va a haber muchos cambios en el funcionamiento interno de rails, lo que significa que muchos plugins van a necesitar ser reescritos para rails 3.0

La cosa más excitante que vamos a ver en rails 3.0, es que merb se va a funcionar con rails, pueden leer los detalles aca, aca, aca, aca y aca.

Rails 3.0 también les va a permitir incluir una aplicación completa de rails dentro de otra aplicación de rails, con este feature, va a ser probablemente posible incluir un foro completo, una galería completa, o cualquier cosa que se imaginen de manera muy fácil.

Posted in Ruby | 1 Comment

“Los Angeles Sentinel” actualizado


Recién termine de updatear el contenido de Los Angeles Sentinel, sentine libre de visitarlo y darle una mirada a los nuevos artículos ;)

Posted in Mi Trabajo, PHP | Leave a comment

Rails 2.3 liberado!!!


Un poco tarde, pero el 15 de marzo del corriente mes Rails 2.3 fue liberado

Aca les dejo el changelog en ingles de los cambios:

Rails 2.3 relased notes

Y aca les explico algunas caracteristicas en español:

Se dejo de usar la vieja arquitectura de CGI con la que funcionaba rails (y por la cual muchos implementaban fastcgi), y ahora usa Rack

Se renovo el soporte de rails engine, lo cual significa que ahora es mas facil extender nuestra aplicacion con otras aplicaciones embebidas, es decir, al meterle plugins se pueden hacer mas cosas que antes por ahi se dificultaban un poco

Se organizo la documentación y se separo en varios sitios, como Rails Guide y la wiki. A su vez se esta actualizando la documentacion generada con rdoc en el git y se esta escribiendo un libro de rails para la comunidad.

Rails se esta preparando para migrar a ruby 1.9.1, lo cual va a ofrecer soporte nativo para i18n, hoy en dia el soporte para i18n se ofrece con algunos parches de rails a la libreria de ruby, pero cuando se migre a la 1.9.1 el soporte va a ser nativo.

Nuevas caracteristicas para ActiveRecord (ActiveRecord dejo de ser lo que era en sus primeras versiones, deberian de chsumear el soporte que tiene para relaciones polimorfologicas y demas….), entre las cosas nuevas podemos encontrar:

Nested Attributes!!! Si leen el libro advanced rails recipes, van a ver una parte que explica como manejar formularios que manejan al mismo tiempo varios modelos de datos, y si bien se podia hacer tranquilamente, el codigo no era tan expresivo y natural como debiera de ser en rails, en cambio con nested attributes ahora es mas sencillo de hacer y mas lindo:
Nest Model Forms
PD: Proximamente van a ver en mi blog un articulo sobre como usar nested attributes

Nested Transactions, son transacciones adentro de otras transacciones, y que fallen las transacciones de adentro, no significa que tengan que fallar las de afuera, mejor explicado con codigo

User.transaction do
  User.create(:username => 'Admin')
  User.transaction(:requires_new => true) do
    User.create(:username => 'Regular')
    raise ActiveRecord::Rollback
  end
end

User.find(:all) # => Returns only Admin

Dynamic Scope, ya conocian por ejemplo los dynamic finders, como User.find_by_name(‘Rodrigo’), bueno, ahora con dynamic scope pueden aplicar filtros

Order.scoped_by_customer_id(12)
Order.scoped_by_customer_id(12).find(:all,  :conditions => "status = 'open'")
Order.scoped_by_customer_id(12).scoped_by_status("open")

Default scopes, cuando trabajan con un modelo de datos, por ejemplo orders, pueden especificar algun default scope, por ejemplo:

class Order < ActiveRecord::Base
  default_scope :o rder => 'created_at desc'
end

Order.find(:all) # "SELECT * FROM orders ORDER BY created_at desc"

Batch Processing, cuando trabajan con grandes cantidades de objetos del modelo de datos, por ejemplo, suponganse que estan en ciclo de facturacion y tienen que facturarle a 10000 clientes, ahora ActiveRecord soporta BatchProcessing, es decir, pueden trabajar de manera natural como si estubiesen trabajando con todos esos objetos al mismo tiempo, pero en vez de procesar todos los objetos al mismo tiempo y comerse la memoria, la libreria procesa de 1000 objetos a la vez (aunque udstedes pueden elegir cuantos objetos procesar al mismo tiempo)

Condiciones multiples para callbacks, ahora pueden user :if y :unless por ejemplo en un callback al mismo tiempo, algo asi

class Order < ActiveRecord::Base
  before_save :check_customer_credit, if => :active, unless => [:admin, :tester]
end

Finders with Having para grupos, puden utilizar el having condition cuando hacen busquedas por grupos, por ejemplo:

developers = Developer.find(:all, :group => "salary",  :having => "sum(salary) > 10000", :select => "salary")

En cuanto a Action Controller:

Renderings mas inteligentes, antes:

render :file => '/tmp/random_file.erb'
render :template => 'other_controller/action'
render :action => 'show'

Ahora:

render '/tmp/random_file.erb'
render 'other_controller/action'
render 'show'
render :show

HTTP Digest Authentication Support (el nombre habla por si mismo)

Routing mas eficiente

Optimizacion del respond_to
respond_to es usuado masivamente, ya que con ese comando se puede facilmente implementar REST, ahora despues de los cambios, esta funcion es un 8% mas rapido que antes

Se mejoro el cache

Soporte natural para localized views
Ahora, dependiendo del locale que setean en la aplicacion, pueden tener varias vistas, si una vista dibuja app/views/orders/show.html.erb, si setean el locae a :es, ahora va a dibujar app/views/orders/show.es.html.erb

Action View

Nested Object Forms, como mencione mas arriba, ahora mezclar varios objetos distintos en un mismo formulario es mucho mas natural

Rendering de partes mas inteligente

# Equivalent of render :partial => 'articles/_article',
# :o bject => @article
render @article

# Equivalent of render :partial => 'articles/_article',
# :collection => @articles
render @articles

Rails Metal!!!!
Practicamente, te deja ejecutar acciones sin el peso del MVC ofrecido por rails, esto sirve para ejecutar acciones que tienen que ser super rapidas y ejecutadas en milesimas de segundos, lo cual va a ser una optimizacion muy grande para muchos sitios existentes
Rails metal

A mi entender estos fueron los cambios más importantes

Asegurense de checkear los screencasts en rails cast: App Templates in rails 2.3, Rails Engines, Rails Metal, Rack Middleware y Rails 2.3 Extras

Posted in Ruby | Leave a comment

Trabajando una vez más con rails


En los próximos días, voy a estar trabajando en un sitio de danzas que esta siendo construido en rails.

Estas son noticias muy buenas, ya que amo bailar y extrañaba trabajar con rails.
Mi primer tarea es customizar la sección de compras con Liquid Markup.

Pero estoy seguro que voy obtener tareas más importantes en un futuro cercano.

Posted in Mi Trabajo, Ruby | Leave a comment

Trabajando en el sitio “The Lost Angeles Sentinel”


Me asignaron la tarea de updatear el diario “The Lost Angeles Sentinel”.

Por ahora, voy a estar arreglando bugs importantes, y mejorando el diseño del sitio. Si tengo suerte, me van a dar la oportunidad de migrar el sitio a joomla 1.5.9 (ya que ahora esta con mambo) y armar un template más lindo.

Posted in Mi Trabajo, PHP | Leave a comment

Bienvenidos a mi página


Luego de dos años de tener la página abajo, decidí que era tiempo de volver a levantar la página de nuevo :P aunque va a requerir un poco de trabajo mantener la página, debería de comitear las cosas que estoy haciendo, los sitios en los que trabajo, fotos, etc.

Y para peor, tengo que postear prácticamente todo dos veces, una en español y otra en ingles :(

Voy a tratar de escribir la mayoría de mis artículos sobre rails y ruby, ya que me encanta el framework y el lenguaje, pero también voy a estar escribiendo cosas sobre PHP, Symfony y Django, así como cosas de mi vida personal, o sitios que desarrollo.

Gracias por todo y otra vez, bienvenidos a mi página :D

Posted in General | Leave a comment