«¿De quién es el pez?», resuelto mediante Prolog

Éste es un viejo acertijo lógico, atribuido a Einstein: El inglés vive en la casa roja. El sueco tiene perro. El danés toma té. El noruego vive en la primera casa. El Alemán fuma Prince. La casa verde queda inmediatamente a la izquierda de la blanca. El dueño de la casa verde toma café. La persona que fuma Pall Mall cría pájaros. El dueño de la casa amarilla fuma Dunhill. El hombre que vive en la casa del centro toma leche. El hombre que fuma Blends vive al lado del que tiene un gato. El hombre que tiene un caballo vive al lado del que fuma Dunhill. El hombre que fuma Bluemaster toma cerveza. El hombre que fuma Blends es vecino del que toma agua. El noruego vive al lado de la casa azul. Ante estas afirmaciones, la pregunta es: ¿de quién es el pez? ...

December 26, 2015 · 3 min · 516 palabras · Nacho Cano

Exclusión de URLs cuando usamos django-debug-toolbar

django-debug-toolbar es una aplicación para Django que nos muestra información de depuración acerca de las diferentes peticiones y respuestas que se llevan a cabo en el servidor: variables de contexto, cabeceras, peticiones SQL, etc. Sin embargo, hay algunas URLs para las cuales nos puede interesar que no se analicen, como por ejemplo, peticiones que se hagan por Ajax o URLs relativas a diversas aplicaciones instaladas, como el panel de administración, Rosetta, etc. ...

May 15, 2014 · 1 min · 177 palabras · Nacho Cano

Utilizando un tema hijo en WordPress

Un tema hijo en WordPress es un tema que hereda la funcionalidad de otro, el tema padre, permitiendo modificar el estilo o añadir funcionalidades a éste. Es la forma más sencilla y segura de modificar un tema existente, ya sean cambios grandes o pequeños. Si utilizamos un tema de otros, ya sea gratuito o de pago, crear un tema hijo es una buena idea. ¿Por qué crear un tema hijo? Porqué en algún momento cambiaremos algo del tema que estamos usando, y en algún momento posterior es posible que haya una actualización de dicho tema. En el mejor de los casos, nos deberemos preocupar de guardar los cambios que hemos hecho en el tema y aplicarlos de nuevo tras la actualización. En el peor, perderemos los cambios que hemos hecho. ...

July 13, 2013 · 3 min · 442 palabras · Nacho Cano

Saltar a una entrada aleatoria en WordPress

Si queremos añadir un enlace que nos permita saltar a una entrada aleatoria de un blog en WordPress, basta crear un archivo que contenga lo siguiente: <?php require('wp-blog-header.php'); query_posts(array('orderby' => 'rand', 'showposts' => 1)); if (have_posts()) : the_post(); $url = get_permalink($post->id); header("Location: " . $url); endif; wp_reset_query(); ?> Guardamos el archivo en una ruta accesible, por ejemplo en la raíz del blog. Sólo queda añadir el enlace para que nos lleve a una entrada aleatoria. ...

July 27, 2012 · 1 min · 147 palabras · Nacho Cano

Distribución de frecuencias

Distribución de los comandos más utilizados Una de esas combinaciones de comandos curiosas es aquella que nos devuelve un listado de los comandos más utilizados ordenados por frecuencia, en este caso limitado a los más frecuentes: $ history | awk '{a[$2]++} END {for (i in a) { print a[i] " " i }}' | sort -rn | head 62 cd 50 sudo 45 vim 39 ls 32 ssh 25 wget 23 memento.sh 23 cat 9 curl 9 man A partir de estos datos, podemos obtener una distribución de su frecuencia de uso en relación al número total de comandos diferentes utilizando el paquete estadístico R: ...

June 22, 2012 · 5 min · 980 palabras · Nacho Cano

vimrepress, publicar en WordPress desde vim

vimrepress es un complemento para trabajar con WordPress. Esta mañana he leído sobre él en el blog de CyberHades y me han entrado ganas de probarlo. Instalación Para que funcione, además de instalar el complemento deberemos activar el servicio XML-RPC en WordPress para publicar de forma remota. Para activarlo vamos a Ajustes > Escritura y marcamos la casilla XML-RCP. Ahora vamos a instalar el complemento. Descargamos la última versión estable, en estos momentos la 2.1.5, y la descomprimimos en el directorio ~/.vim: ...

May 20, 2012 · 2 min · 329 palabras · Nacho Cano

Abrir enlaces externos en una ventana nueva en segundo plano usando jQuery

Si queremos que nuestros enlaces se abran en una ventana nueva podemos utilizar el atributo target para las etiquetas <a>. Sin embargo, si utilizamos un esquema XHTML Strict este atributo no es válido para ninguna etiqueta. El motivo es separar la presentación del contenido del comportamiento, y el atributo target modifica el comportamiento. Una alternativa es utilizar Javascript para conseguir el mismo efecto. Si Javascript no está disponible simplemente se abrirá en la misma ventana. Con Javascript, además, podemos conseguir que la ventana se abra en segundo plano, aunque sólo en algunos navegadores, como por ejemplo Chromium. En Firefox es necesario modificar un parámetro que viene desactivado por defecto. ...

May 13, 2012 · 2 min · 330 palabras · Nacho Cano

sed es Turing completo

¿Cómo puede ser un editor de flujo, una utilidad para el tratamiento de texto, un lenguaje Turing completo? sed permite saltos condiciones e incondicionales y utiliza un buffer temporal, lo que permite construir una máquina de Turing con él, y cualquier lenguaje que pueda construir una máquina de Turing es Turing completo. Una implementación de una máquina de Turing con sed es turing.sed. Un ejemplo de programa que realiza el incremento de un número binario es el siguiente: ...

April 22, 2012 · 2 min · 347 palabras · Nacho Cano

Consultar el buscón de la RAE desde el terminal

Al realizar consultas al buscón de la RAE desde el terminal, me iba muy lento. Ésta es una página que todavía usa marcos (wtf!), por lo que si queremos acceder directamente a la página con el resultado de la búsqueda deberemos utilizar una de las siguientes URLs: ~~Para el diccionario de la RAE: `http://buscon.rae.es/draeI/SrvltGUIBusUsual?origen=RAE&TIPO_BUS=3&LEMA=cederrón`~~ ~~Para el diccionario panhispánico de dudas: `http://buscon.rae.es/dpdI/SrvltGUIBusDPD?origen=RAE&lema=cederrón`~~ Actualización La RAE ha cambiado la URL de búsqueda, pasando a ser: ...

February 28, 2012 · 9 min · 1714 palabras · Nacho Cano

Instalación automática de las fuentes para web de Google

En webupd8.org han publicado un script que permite descargar las fuentes para web de Google, o actualizarlas si ya las habíamos descargado. Google Web Fonts es un proyecto que consiste en crear un repositorio de fuentes tipográficas de calidad, libres y gratuitas, para que cualquiera pueda utilizarlas en sus proyectos web, sin ningún tipo de barrera, mucho menos económica. Fuente: googlewebfonts.blogspot.com El script instala las fuentes en el directorio /usr/share/fonts/truetype/google-fonts/, por lo que basta eliminar este directorio para borrarlas. ...

August 7, 2011 · 2 min · 359 palabras · Nacho Cano