archivo para categoría 'tips'

RSS

El “errno: 150″ de MySQL

Por vladimir, 16/3/2008, 9:16 pm en Desarrollo, Documentación, artículos, tips

No fue hasta mucho tiempo después de conocer MySQL que conocí las tablas tipo InnoDb. Estas, a diferencia de su contraparte MyISAM, poseen varias cualidades que la hacen deseable. Por ejemplo: Integridad Referencial.
Lamentablemente InnoDb posee algunos peros. Uno de los más molestos es el “errn: 150″ que aparece al ejecutar alguna sql […]

Ruby Class.inherited

Por Ismael, 25/2/2008, 9:46 am en Documentación, Ruby & Rails, artículos, tips

En mi artículo anterior explicaba cómo podemos usar la maleabilidad de Ruby para solucionar problemas espinosos. Concretamente, cómo “inyectar” datos desde una subclase a una superclase sin contravenir las buenas practicas de OOP (leer el artículo en cuestión para entender de qué diablos estoy hablando).
Resulta que Ruby nos ofrece otra solución, en bandeja de plata:

Code […]

La fecha 0000-00-00 de MySql

Por vladimir, 12/2/2008, 7:39 am en Desarrollo, artículos, tips

Indudablemente MySql posee muchas características destacables, pero si hay una que molesta mucho, es el tratamiento que le da a las fechas. Al definir una columna de tipo DATE y permitiendo valores nulos, MySql automáticamente transforma esos valores nulos en la fecha ‘0000-00-00′.
Este tratamiento puede ser sobrellevado de diferentes maneras en el lenguaje con […]

Descubriendo tus propios patrones en Ruby

Por Ismael, 1/2/2008, 7:43 am en Patrones de diseño, Ruby & Rails, artículos, tips

Ejemplos y usos de Patrones de Diseño en Ruby.

Extendiendo Mootools para calcular el rut

Por vladimir, 26/9/2007, 4:50 am en artículos, javascript, tips

Nota previa : este artículo está orientado a una situación Chilena, pero perfectamente se puede adaptar para otros casos de uso.

El RUT (Chile) es el identificador único de todo ciudadano chileno, y su cálculo o verificación está más que difundido. Todo programador, por novato que sea, se ve enfrentado en algún momento a […]

Ruby

Por Ismael, 6/8/2007, 1:26 am en Desarrollo, Ruby & Rails, artículos, tips

Para entender el éxito de Rails hay que entender la joya con que está construido, Ruby.
Ruby, como cualquier lenguaje Orientado a Objetos, tiene tipos nativos. Uno de ellos es Array.

Code (ruby)

 

a = [] #lo mismo que a = Array.new

a << 1

a << 2

a << 3 << 4

a #=> [1,2,3,4]

 

Nada nuevo aquí. Creamos un array y […]

Elementos colapsables en MooTools

Por Ismael, 20/7/2007, 2:30 pm en artículos, javascript, tips

Efectos reutilizables y accesibles con la librería Javascript MooTools.

ActiveRecord::Base#update_all

Por Ismael, 2/7/2007, 5:07 pm en Documentación, Ruby & Rails, artículos, tips

Supongamos que quieres modificar varios registros a la vez (por ejemplo cambiar el status de varios artículos de un Blog a “borrador”). En la interfaz seleccionas los artículos con checkboxes y envías un array de id’s a una acción en el controlador. Usas ese array para actualizar cada registro.

Code (ruby)

def actualiza

  params[:article_ids].each do |i|

    […]

ActiveRecord: delegación de asociaciones

Por Ismael, 25/6/2007, 2:05 am en Desarrollo, Documentación, Ruby & Rails, artículos, tips

Gracias a la magia de ActiveRecord, en Rails es fácil definir las asociaciones entre clases:

Code (ruby)

class Blog < ActiveRecord::Base

  has_many :posts, :order => ‘published_on DESC’

end

Esto nos permite bellezas como

Code (ruby)

mi_blog = Blog.find(:first)

articulos = mi_blog.posts

Pero supongamos que queremos en Blog un método que nos retorne sólo los 10 artículos más recientes Una solución es definir otra […]

Rails y las fechas

Por Ismael, 20/6/2007, 5:21 pm en Desarrollo, Ruby & Rails, artículos, tips

Además de la arquitectura MVC que pone todo en su lugar, Rails incluye ActiveSupport, un módulo con extensiones varias a las clases nativas de Ruby como Array, Time y Date. Esto permite expresar calculos de fechas y tiempos en lenguaje casi natural.

Code (ruby)

 

ayer = Time.now - 1.day # => Tue Jun 19 17:11:20 CLT 2007

 

Lo […]