Junio 23, 2009
Hace un tiempo me decidí a hacer una incursión en el mundo Mac. Pedí un préstamo ICO y compré un Macbook Pro. El cambio, desde luego ha sido para mejor. Usabilidad y sencillez al máximo y sin mover un dedo ni tocar un botón.
Parece como si todo el sistema operativo estuviese planteado para causar el mínimo inpacto en el usuario y que pueda centrarse al 100% en su tarea/trabajo.
Sé que me estaré ganando que me digan chaquetero, etc… pero aún así me da igual. Sigo pensando que el modelo del software libre es mucho más que válido. Tiene muchísimas ventajas de las que el software privativo carece y desde luego me parecería genial que ese modelo fuera más utilizado. Pero más allá de mis razones para considerar la idealidad del modelo de software libre, está mi necesidad de productividad. Lamentablemente Ubuntu y Linux en general no cumple con esa necesidad.
Sin embargo, aparte de eso, Linux sigue siendo mi primera elección para el desarrollo web en cuanto a servidores, etc. y seguiré posteando cosas al respecto en el blog
En cuanto a nivel de usuario ahora habrá más posts relacionados con Mac OS X.
Publicado en auto bombo | Etiquetas: auto bombo, mac, ubuntu | Sin comentarios »
Mayo 24, 2009
Últimamente una cantidad enorme de bots spammers se están registrando en Otro Blog Geek… no le di importancia hasta que me di cuenta de que prácticamente todos los usuarios registrados del blog son spammers. Una pena que Akismet no se haga cargo de esto, sin embargo hay vida más allá de Akismet y no es tan difícil deshacerse de estos bots.
Lo primero ha sido comprobar unas cuantas de las direcciones y eliminarlas buscando el e-mail de los usuarios registrados en Stop Forum Spam. Una vez que los usuarios ya estaban eliminados, lo importante es evitar que no se vuelvan a registrar este tipo de bots. Para esto he encontrado Sabre, un plugin para Wordpress que es bastante completo y se encarga de evitar de un montón de formas que los bots se registren.
Los métodos que Sabre utiliza son bastante variados:
- Captchas.
- Preguntas lógicas a los usuarios (operaciones matemáticas simples, etc.)
- Requerir una activación por parte de los usuarios (o del administrador)
- Comprobar si el navegador dispone de soporte javascript.
Yo por ahora he activado el soporte para activación por parte del usuario, ya que me ha parecido el menos invasivo para los usuarios que quieran registrarse.
Por cierto, si alguno ha perdido su usuario reguistrado (que lo dudo) lo siento muchísimo.
Publicado en web | Etiquetas: plugins, spam, wordpress | 1 comentario »
Mayo 3, 2009
Otro cortito. Los desarrolladores de Ubuntu (o los de netbeans, no lo sé muy bien) parece que no se han dado cuenta, que con el look&feel por defecto de Netbeans la ventana de depuración tiene el mismo color de fondo que la tipografía que se usa para los valores de las variables… por lo tanto es muy difícil o casi imposible depurar cómodamente.
Veamos como cambiar este look&feel.
- Editamos el fichero
etc/netbeans.conf que está en el directorio de instalación de netbeans
- Añadimos
--laf javax.swing.plaf.metal.MetalLookAndFeel al final de la variable netbeans_default_options
- Rearrancamos el IDE y ya tendremos un look&feel mucho más agradable para la depuración

Vista de variables locales depurando PHP con netbeans
Publicado en programacion, web | Etiquetas: look&feel, netbeans, php, xdebug | 3 comentarios »
Mayo 3, 2009
Vamos manos a la obra directamente, por que es bien sencillo.
- Instalamos xdebug en Ubuntu (previamente necesitamos tener php, apache, etc. instalado)
-
sudo aptitude install php5-xdebug
- Editamos el archivo de configuración de xdebug
/etc/php5/conf.d/xdebug.ini y añadimos las siguientes lineas
-
xdebug.remote_enable=on
-
xdebug.remote_handler=dbgp
-
xdebug.remote_mode=req
-
xdebug.remote_host=localhost
-
xdebug.remote_port=9000
- Reiniciamos apache
-
sudo /etc/init.d/apache2 restart
Ya podemos depurar PHP con nuestro IDE preferido, como Eclipse o Netbeans
Publicado en programacion, web | Etiquetas: jaunty, php, xdebug | Sin comentarios »
Mayo 2, 2009
Symfony es un framework para desarrollar aplicaciones web basándonos en el patrón MVC.
La instalación es bastante cómoda y se puede realizar a través de PEAR. El proceso es muy simple:
- Instalamos Apache. También es posible usar otros servidores, pero yo me siento cómodo con Apache. Yo tengo la mala costumbre de usar para ello un método bastante “cutre” que consiste en instalar phpmyadmin, ya que así se resuelven todas las dependencias necesarias para Apache, PHP y MySQL de una vez.
Durante la instalación nos preguntará qué servidor queremos usar con PHPMyAdmin, seleccionamos Apache y listo.
Yo instale y configuré previamente MySQL manualmente, pero usando este método es posible que os guíe durante la configuración.
-
sudo aptitude install phpmyadmin
- Instalamos pear:
-
sudo aptitude install php-pear
- Añadimos el canal de Symfony:
-
sudo pear channel-discover pear.symfony-project.com
- Instalamos Symfony mediante PEAR:
-
sudo pear install symfony/symfony
Por último solo nos resta configurar Apache. Yo he configurado un host virtual con un log separado, así podré testear y depurar cómodamente. Veamos como hacerlo por pasos.
- Añadimos la entrada con el dominio que queramos a
/etc/hosts. Yo he elegido dominio.com para el ejemplo, pero se puede elegir otro
-
echo "127.0.0.1 dominio.com" >> /etc/hosts
- Ahora creamos una entrada en
/etc/apache2/sites-available/dominio.com con el siguiente contenido:
-
<VirtualHost *:80>
-
ServerName dominio.com
-
ServerAdmin webmaster@dominio.com
-
-
DocumentRoot /var/www/web
-
DirectoryIndex index.php
-
-
Alias /sf /usr/share/php/data/symfony/web/sf
-
<Directory /sf>
-
AllowOverride All
-
Allow from All
-
</Directory>
-
-
## Cambiamos esta ruta por la que nos convenga
-
ErrorLog /path/al/log/fichero.log
-
-
# Possible values include: debug, info, notice, warn, error, crit,
-
# alert, emerg.
-
## Podemos cambiar también el nivel de log por el que más nos convenga
-
LogLevel debug
-
-
CustomLog /path/al/log/fichero.log combined
-
ServerSignature On
-
-
#Configuracion de symfony
-
<Directory "/var/www/web">
-
AllowOverride All
-
Allow from All
-
</Directory>
-
</VirtualHost>
- Por último activamos el host virtual, mod_rewrite y reiniciamos apache
-
sudo a2ensite dominio.com
-
sudo a2enmod rewrite
-
sudo /etc/init.d/apache2/reload
Solo falta editar el archivo /etc/php5/apache2/php.ini y cambiar la linea magic_quotes_gpc = Off por magic_quotes_gpc = On
Para comenzar a desarrollar podemos acudir a la página de Symfony y seguir su increíble “tutorial” escrito en forma de libro o en librosweb si preferís el libro en español.
Publicado en programacion, web | Etiquetas: php, programacion, symfony, ubuntu | Sin comentarios »
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
Publicado en Uncategorized | Etiquetas: documentacion, google | Sin comentarios »
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.
Publicado en Uncategorized | Etiquetas: gnome do, intrepid, ubuntu | Sin comentarios »
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.

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.
Publicado en Uncategorized | Etiquetas: atajos, gnome, ubuntu | Sin comentarios »
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
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?
Publicado en Uncategorized | Etiquetas: f-spot, gadget, nikon, wii | 1 comentario »
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
Un aplauso para los desarrolladores de VLC por este original modo de felicitar las navidades a los usuarios
Publicado en Uncategorized | Etiquetas: navidad, ubuntu, vlc | Sin comentarios »
Diciembre 14, 2008
Me acabo de encontrar con este completo manual de VIM en Emezeta blog. Una auténtica joya
Publicado en Uncategorized | Etiquetas: manual, vim | Sin comentarios »
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
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
Publicado en Uncategorized | Etiquetas: gnome, parcellite, ubuntu | Sin comentarios »
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
Publicado en Uncategorized | Etiquetas: auto bombo, dreamhost, promcodes | Sin comentarios »
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:
- Se convierte el argumento en un String.
- Se parsea el String y se convierte en código Javascript.
- 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:
y la no tan típica:
-
var nombreDelAtributo="atributo";
-
objeto[nombreDelAtributo] = valor;
Ahora solo falta saber otra cosa. Cualquier variable se puede acceder también como un atributo del objeto window, un ejemplo:
-
var cadena = "Hola mundo!";
-
alert(window.cadena); //mostrará un alert con "Hola mundo!"
-
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.
-
/*
-
*asignar un valor a un atributo cuyo nombre no conocemos a priori
-
*/
-
eval(‘objecto.’ + nombreDelAtributo + ‘=valorDelAtributo’);
-
//se podría cambiar por
-
objeto[nombreDelAtributo] = valorDelAtributo;
-
-
/*
-
* Llamar a un metodo de un objeto estando el nombre del metodo almacenado en una variable
-
*/
-
-
eval(‘objeto.’ + nombreDelMetodo + ‘(argumento)’);
-
//podría ser
-
objeto[nombreDelMetodo](argumento);
-
-
/*
-
* Crear un objeto de una clase teniendo el nombre de la clase en una variable
-
*/
-
-
eval(‘var objeto = new ‘ + nombreDeLaClase + ‘()’);
-
//sería
-
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?
Publicado en Uncategorized | Etiquetas: eval, javascript, programacion | 7 comentarios »