Archivo para Noviembre, 2008

Códigos promocionales de Dreamhost actualizados

Domingo, Noviembre 16, 2008

He actualizado los códigos promocionales de Dreamhost, ahora también podéis daros de alta usando un enlace promocional o añadiendo mi dirección de correo para indicar que vais de mi parte.

Aquí está el post con los códigos promocionales y los enlaces.

Ya ha habido un referido, al cual le doy las gracias encarecidamente :)

Evitar el uso de eval() en Javascript

Jueves, Noviembre 6, 2008

Hoy en el trabajo he descubierto que la función eval() de Javascript y Firebug se llevan muy mal. Tan mal que no conseguía depurar una clase que estoy desarrollando. Googleando un poco he conseguido encontrar varias formas de evitar eval() y algunos motivos por lo que es recomendable evitar su uso.

El funcionamiento de eval() es el siguiente:

  1. Se convierte el argumento en un String.
  2. Se parsea el String y se convierte en código Javascript.
  3. Se ejecuta el código Javascript resultante.

Evidentemente saltarse los pasos 1 y 2 mejora el rendimiento. Además evita esos problemas “raros” que he comentado antes con Firebug.

En concreto los problemas con los que me he encontrado incluían los siguientes usos de eval:

  • Asignar una propiedad a un objeto cuyo nombre está almacenado en un String.
  • Llamar a una función cuyo nombre está almacenado en un String.
  • Crear un objeto de una clase cuyo nombre está almacenado en un String.

Es decir, tres casos muy parecidos que se reducen a uno solo, acceder a variables cuyo nombre conocemos a posteriori. Para solucionar esto basta con saber que hay varias formas de acceder a una propiedad de un objeto en Javascript. La típica:

  1. objeto.atributo = valor

y la no tan típica:

  1. var nombreDelAtributo="atributo";
  2. objeto[nombreDelAtributo] = valor;

Ahora solo falta saber otra cosa. Cualquier variable se puede acceder también como un atributo del objeto window, un ejemplo:

  1. var cadena = "Hola mundo!";
  2. alert(window.cadena); //mostrará un alert con "Hola mundo!"
  3. alert(window[‘cadena’]); //también mostrara un alert con "Hola mundo!"

Ahora veamos algunos ejemplos de usos de eval() y otras formas de avordar el mismo problema.

  1. /*
  2. *asignar un valor a un atributo cuyo nombre no conocemos a priori
  3. */
  4. eval(‘objecto.’ + nombreDelAtributo + ‘=valorDelAtributo’);
  5. //se podría cambiar por
  6. objeto[nombreDelAtributo] = valorDelAtributo;
  7.  
  8. /*
  9. * Llamar a un metodo de un objeto estando el nombre del metodo almacenado en una variable
  10. */
  11.  
  12. eval(‘objeto.’ + nombreDelMetodo + ‘(argumento)’);
  13. //podría ser
  14. objeto[nombreDelMetodo](argumento);
  15.  
  16. /*
  17. * Crear un objeto de una clase teniendo el nombre de la clase en una variable
  18. */
  19.  
  20. eval(‘var objeto = new ‘ + nombreDeLaClase + ‘()’);
  21. //sería
  22. var objeto = new window[nombreDeLaClase]();

En el último ejemplo podemos hacer esto por que una clase es también una variable del programa, y como tal se almacena como un atributo del objeto window.

Y vosotros, ¿usáis eval() en vuestro código? ¿conocíais estas soluciones?

Código promocional de Dreamhost

Lunes, Noviembre 3, 2008

Como ya he comentado en alguna ocasión, he mudado OBG a Dreamhost. Este hosting ofrece un código promocional a sus clientes para que lo ofrezcamos a los clientes potenciales y que así obtengan una rebaja en su primer año de contrato. Además si usáis ese código yo consigo también algo de pasta gansa para mantener OBG :) Estos son los códigos promocionales:

  • Código: OBG2008
    1. 25 USD de descuento si pagáis mensualmente.
    2. 50 USD de descuento si pagáis por 1, 2, 3, 5 ó 10 años
  • Código: OBGIP2008
    1. Una dirección IP fija gratis y 20 USD de descuento en todos los planes excepto el mensual
  • Código: OBG2DOMINIOS2008
    1. 2 Dominios extra gratis.

También podéis ser referidos de Otro Blog Geek indicando que nflamel@gmail.com cuando os den la oportunidad de indicar si sois referidos de alguien al daros de alta en DreamHost o usando este enlace para daros de alta.

Espero que los códigos promocionales os sirvan de algo y que además los uséis y colaboréis algo con OBG ;)

PS: Muchísimas gracias a los que hagan uso de los códigos promocionales y muchísimas gracias a aquellos que ya lo han hecho :)

Nuevo repositorio de Subversion

Lunes, Noviembre 3, 2008

Hace unos meses mudé OBG a un nuevo servidor. OBG se hospeda ahora en Dreamhost, el cual ofrece en su plan básico un repositorio de subversion. Para sacar algo de partido a esta característica del servidor he decidido crear un repositorio en el que iré colgando los ejemplos de OBG y los pequeños proyectos en los que vaya trabajando. La dirección del repositorio es http://otrobloggeek.com/proyectos_obg/ . No es necesario usuario para acceder con permisos de lectura. Por ahora soy el único con permisos de escritura, aunque todo se andará.

Lo único que hay ahroa mismo en el repositorio es el tema del blog, White as Milk , el cual estoy traduciendo al español y pronto subiré otra versión del tema al cual le estoy añadiendo soporte para I18N. Pronto iré colgando otros proyectos en los cuales estáis invitados a participar :) .

Nuevo Tema: White as Milk

Domingo, Noviembre 2, 2008

He cambiado el tema de Otro Blog Geek por uno algo más minimalista. El tema está basado en White as Milk. Voy a intentar traducir todo el tema al español e iré subiendo mis avances a un repositorio de subversion para que cualquiera pueda usarlo si quiere.

En breve colgaré la dirección del respositorio de subversion en el que además iré subiendo el código de los ejemplos que haya en los posts :)

HOWTO: Instalar Aptana en Eclipse IDE 3.4 (Ganymede)

Sábado, Noviembre 1, 2008

Hoy me he propuesto actualizar mi IDE preferido a la última versión. Como ya he tenido malas experiencias actualizando eclipse voy a empezar instalando plugins uno a uno. El primero será Aptana, ya que es uno de los que más utilizo. Este es el procedimiento que he seguido.

  1. Descargar Eclipse Classic de su web, descomprimir e instalar donde queramos.
  2. Vamos a “Window->Preferences” Y cambiamos activamos “Classic Update” dentro de “General->Capabilities” tal y como se muestra en la captura.

    Opciones necesarias en Eclipse Ganymede para instalar Aptana

    Opciones necesarias en Eclipse Ganymede para instalar Aptana

  3. Ahora para instalar Aptana vamos a “Help->Sowftware Updates->Find and install”. Aquí seleccionamos “Search for new features to install”.
  4. En la nueva ventana pulsamos sobre “New Remote Site” y pegamos esta direccion en el campo URL http://update.aptana.com/install/studio/3.2/ . Pulsamos “OK” y luego “Finish”.
  5. Si todo ha ido bien, después de una pequeña espera, Eclipse nos mostrará un diálogo con características para instalar en las que aparecerá “Aptana studio”. Seleccionamos esta característica y pulsamos “Next >”.
  6. Aceptamos los términos de licencia y “Next >” otra vez. En el siguiente cuadro “Finish” para instalar.
  7. Ahora Eclipse descargará los archivos necesarios, así que paciencia. Una vez descargado un diálogo nos preguntará que confirmemos la instalación. Podemos pulsar en “Install All”. Ahora Eclipse instalará el plugin de Aptana y cuando termine nos pedirá que reiniciemos el Workspace.
  8. Tras el reinicio Aptana preguntará si queremos instalar el soporte para Subversion. No es necesario pero lo podéis instalar si queréis.

Ya tenemos instalado Aptana en eclipse Ganymede, ahora, a programar :)