Archivo para la categoría ‘ Uncategorized ’

La universidad de código de Google

Viernes, Marzo 6, 2009

Vía Picando Código he descubierto la Universidad de Código de Google, un repositorio de documentos sobre ciencias de la computación. Toda la documencación incluída tiene una licencia Creative Commons, lo cual la hace todavía más interesante.

Via: Nuevo material en la Universidad de Código de Google

Gnome Do 0.8 final

Sábado, Enero 31, 2009

Acabo de enterarme por Mundo geek que ha está lista la versión final de Gnome Do 0.8. Zootropo se ha currado un post en el que explica como instalarlo en Ubuntu Intrepid.

Probadlo si tenéis la oportunidad, no os arrepentiréis.

Haciendo pruebas con la beta de Gnome-Do 0.8

Sábado, Enero 24, 2009

Gnome-Do es un acelerador para Gnome. Este programa nos permite acelerar algunas de las acciones comunes que realizamos en nuestro escritorio usando para ello un atajo de teclado. Nos permite por ejemplo ejecutar aplicaciones, acceder a documentos, carpetas, etc. simplemente escribiendo su nombre. Actualmente se encuentra en desarrollo la versión 0.8, la cual incluye una interesante novedad, un nuevo tema, llamado Docky, que hace que Gnome-Do funcione también como un dock.

Podemos instalar la versión beta de Gnome-Do 0.8 en Ubuntu desde su PPA. Veamos como:

Vamos a Sistema->Administración->Orígenes del software, en la pestaña “Software de terceros” añadimos el repositorio correspondiente para nuestra versión de Ubuntu. Después de eso actualizamos e instalamos los paquetes gnome-do y gnome-do-plugins desde Synaptic.

Ahora solo tenemos que ejecutar Gnome-Do. Para mostrar el acelerador pulsamos el atajo win + barra espaciadora y escribimos el nombre de la aplicación que queramos ejecutar. Para activar el dock vamos a preferencias y seleccionamos Docky en la pestaña de temas.

pantallazo-gnome-do

Os aconsejo desactivar la opción “Zoom icons” del dock, por que ralentiza mucho el funcionamiento (desventajas de la beta) para ello click derecho en  el icono de Gnome-Do en el dock y desactivamos la opción.

Gadgeto Reyes Magos!!

Martes, Enero 6, 2009

Este año mis amados progenitores SS.MM de Oriente me han deleitado con un par de nuevos gadgets que me han vuelto más que loco. Para empezar una cámara de fotos (por fin). La cámara es una Nikon Coolpix s210, justo lo que quería, una cámara pequeña y cómoda de transportar y a la vez versátil. Intentaré comentar algo más a fondo sobre ella en otro post.

Me ha sorprendido que al enchufarla en Ubuntu f-spot se haya hecho carto automáticamente de la importación y etiquetado de fotos. También hablaré pronto de F-spot.

Pero aunque la cámara ha sido un regalo genial… la estrella ha sido… (redoble de tambor…) Una Wii!!!

Wii

Wii

Tenía muchísimas ganas de tener esta consola en mis manos. También intentaré comentar lo que pueda sobre ella… y sobre el soporte de su navegador web :)

¿Y a vosotros qué os han traído los Reyes Magos?

VLC se pone navideño

Domingo, Diciembre 21, 2008

Vaya sorpresa me he llevado hoy al arrancar VLC en mi portátil y encontrarme con que de buenas a primeras se ha puesto navideño.

VLC navideño

VLC navideño

Un aplauso para los desarrolladores de VLC por este original modo de felicitar las navidades a los usuarios :)

Manual de VIM (muy completo y en español)

Domingo, Diciembre 14, 2008

Me acabo de encontrar con este completo manual de VIM en Emezeta blog. Una auténtica joya :)

Parcellite, un gestor del portatpapeles para Gnome

Domingo, Diciembre 14, 2008

Siempre he sido un usuario de copiar/pegar compulsivo. Hago un uso itensivo de esta herramienta y encuentro muy útil tener un historial que me permita navegar por todo lo que he copiado últimamente. Parcellite es una herramienta para Gnome que te permite almacenar un historial del portapapeles.  En su página web podemos encontrar una lista de sus características principales:

  • Almacena la historia del portapapales.
  • Distintas opciones para personalizar la forma en la que se ven los items.
  • Modo daemon, que almacena el contenido después de cerrar las aplicaciones.
  • Atajos de teclado globales para acceder de forma rápida a la historia del portapapeles.
  • Realiza acciones personalizadas con el contenido del portapapeles.

Precisamente esta última característica me parece muy útil y junto con su pequeño consumo de memoria lo convierte en una opción perfecta para mí.

Las acciones son comandos que podemos definir para que se ejecuten utilizando el contenido del portapapeles entrada. Veamos un ejemplo muy sencillo de como crear una acción. Podemos crearlas en la pestaña “Acciones” del cuadro de diálogo de preferencias.

Cuadro de diálogo de acciones de Parcellite

Cuadro de diálogo de acciones de Parcellite

Ahora podemos usar 2 atajos de teclado para usar las acciones, el primero ctrl+alt+H para seleccionar la opción que queramos del historial y después podemos usar ctrl+alt+A para mostrar la lista de acciones. En este caso si pulsamos “Abrir en Firefox” y tenemos seleccionado un enlace, este se abrirá en una nueva pestaña de Firefox.

Por último, podemos instalar Parcellite desde el paquete para Ubuntu que se puede encontrar en Getdeb.net

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 :)

Haciendo experimentos

Domingo, Octubre 26, 2008

Estoy haciendo algunas pruebas en el blog para insertar AdSense para búsqueda, así que si algún visitante encuentra algún problema al entrar a OBG o ve algo raro, se agradece que lo comuniquen.

Event.stop() en Prototype

Domingo, Octubre 19, 2008

Mi última pelea con Prototype ha estado protagonizada por los eventos. Tenía que conseguir capturar el evento de scroll sobre un div y después de hacer algunas cosas cancelar el comportamiento por defecto del evento y evitar la propagación al scroll general de la página.

Al final descubrí la función Event.stop() de Prototype. En la documentación dice lo siguiente:

Llamándola en un evento, para la propagación y previene el comportamiento por defecto.

Su uso es simple. Veamos un ejemplo.

  1. $(‘elemento’).observe(‘evento’, function(e){
  2.   otroComportamiento();
  3.   //esto detiene el comportamiento por defecto y evita la propagacion
  4.   e.stop();
  5. });

Aquí tenéis una página con un par de ejemplos. Podéis ver el ejemplo viendo el código fuente de la página.

  • El primer formulario mostrará un alert() con el valor
  • El segundo formulario hará una petición GET (evidentemente sin ningún efecto) sobre la misma página
  • El primer párrafo con scroll ignora el uso de la rueda del ratón
  • El segundo párrafo funciona igual que siempre :)