Automágica: durante 2017 estoy trabajando bastante en Automágica, mi software para editar libros: Más información - Posts relacionados

Jargon Fortunes

Hoy recuperé un viejo backup de fortunes para el comando fortune de GNU/Linux.

Fortune es un programa que al ser invocado imprime en pantalla una cita aleatoria. Las citas provienen de archivos ubicados generalmente en /usr/share/games/fortunes pero también puede recibir el directorio dónde están los archivos de citas como parámetro.

juanjo@albus:~$ fortune

If two people love each other, there can be no happy end to it.

-- Ernest Hemingway

juanjo@albus:~$ fortune

The smallest worm will turn being trodden on.

-- William Shakespeare, "Henry VI"

Uno de los archivos que recuperé contenía un programa que convierte el Jargon File en un archivo que se puede usar con fortune. Just for fun cree un sitio web en que una definición distinta del Diccionario de los Hackers es mostrada cada vez que se accede:

http://jargon.juanjoconti.com.ar


Firefox Search Engine en 5 minutos

¿Querés crear un motor de búsqueda de Firefox para tu sitio web? Esta receta es para vos.

Adrián tiró el desafío en la lista de Gleducar. Uno de los links dados como pista fue:

http://developer.mozilla.org/es/docs/Creaci%C3%B3n_de_plugins_OpenSearch_para_Firefox

Puede seguirse sin problemas para generar el archivo xml que describe al plugin, pero me hubiese venido bien encontrar un motor.xml de ejemplo. Tal vez le falten algunos retoques, pero mientras tanto aquí está el mío:

<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/"

xmlns:moz="http://www.mozilla.org/2006/browser/search/">

<ShortName>motorGleduwiki</ShortName>

<Description>"motor de busqueda para el GleduWiki"</Description>

<InputEncoding>"UTF-8"</InputEncoding>

<Image width="16" height="16">IIIIIIIIIIIIIIIIIIII</Image>

<Url type="text/html" method="POST" template="http://wiki.gleducar.org.ar/wiki/Especial:Search">

<Param name="search" value="{searchTerms}"/>

<Param name="fulltext" value="Buscar"/>

</Url>

<Url type="application/x-suggestions+json" template="suggestionURL"/>

<moz:SearchForm>searchFormURL</moz:SearchForm>

</OpenSearchDescription>

motor.xml

Dónde IIIIIIIIIIIIIIIIIIII debe reemplazarse por la salida obtenida en http://software.hixie.ch/utilities/cgi/data/data luego de subir una imagen de 16px de lado.

Por último usé:

<script type="text/javascript">

window.external.AddSearchProvider(urlEngine);

</script>

dónde urlEngine es la url absoluta al archivo xml generado, encerrado entre comillas.


wp-print en español

Acabo de instalar el plug-in wp-print para wordpress. Permite presentar una versión imprimible (sin colores, sin estrafalarios encabezados, pies o barras) de los artículos que uno tiene en el blog.

Le hice algunos pequeños cambios para que se vea en español. Contra: el plug-in no está preparado para ser traducido, hay que cambiar varias archivos y el texto en inglés aparece de heterogéneas formas :). Pro: yo ya hice algo de esto, así que se los dejo por si les sirve: wp-print-es-2.06.

Para instalarlo, además de descomprimirlo en la carpeta plugins y habilitarlo, hay que llamar a print_link() o print_link_image() o ambas desde el código del template del blog, yo agregué:

<?php if(function_exists('wp_print')) {

echo "<div align='right'>"; print_link_image(); echo " "; print_link(); echo "</div>"; } ?>

en index.php, page.php, single.php y archive.php.


Generación de imágenes con GD desde PHP

Este es un ejemplo minimalista (pero de alguna utilidad) en el que un script php devuelve una imagen.

Antes que nada

Para que funcione hay que tener instalado el paquete php4-gd, descomentar la línea extension=gd.so en el archivo /etc/php4/apache2/php.ini y reiniciar el servidor web (apache).

Barra de progreso

Este script recibe como parámetro un pocentaje (10, 20, 50 o 90, qué tan completa está una tarea) y genera la barra de progreso correspondiente.

Ver archivo: progreso.php

Si accedemos a este script desde un navegador y le damos un valor al parámetro porcentaje obtendremos imágenes como estas:

(suponiendo que el archivo está en /home/juanjo/public_html/)

http://localhost/~juanjo/progreso.php?porcentaje=10

10

http://localhost/~juanjo/progreso.php?porcentaje=20

20

http://localhost/~juanjo/progreso.php?porcentaje=60

60

http://localhost/~juanjo/progreso.php?porcentaje=90

90

Más interesante que acceder directamente a este script es utilizarlo como fuente para una etiqueta img en html. Podemos tener un template donde haya algo como esto:

<img src="progreso.php?porcentaje={P}"/>

y a P se le da un valor calculado dinámicamente cada vez que se solicita la página.

Recursos

Un ejemplo más completo en: http://www.zend.com/zend/tut/dynamic.php (fué el hola-mundo con el que empecé a probar GD)

GD en php.net: http://www.php.net/gd


2 nuevos plug-ins en mi WP!

Hoy agregé dos plug-ins en mi instación de WordPress (el sistema que uso como blog).

Estadísticas de visitantes

Hace un tiempo tenía instalado un sistema de estadísticas llamado.. bueno no recuerdo como se llamaba, pero no importa por que era bastante malo. Hoy leyendo en el blog de César M. Sandrigo descubrí otro y tal vez mi búsqueda (casi abandonada) de una buena forma de conocer sobre mis visitantes haya llegado por fin a Ítaca. El plug-in se llama PopStats.

Votar los artículos

Desde hoy, abajo de cada artículo, hay 5 estrellitas con las que los visitantes pueden rankear los posts publicados. La verdad, está muy lindo: Post Star Rating.

Cuando dejé mi primer voto me pareció gracioso leer "1 votos" :) Luego pensé que no debería ser difícil de corregir, acá está la receta:

Hay que hacer un pequeño cambio en dos métodos de la clase PSR (psr.class.php). Tanto en _drawStars($votes, $points) como en _drawVotingStars($votes, $points) cambiar ('votos') por ($votes == 1 ? 'voto' : 'votos').

En la misma clase también se puede cambir el texto que se muestra.

Otro detallecito que encontré fué que el texto que acompaña a las estrellitas, por ejemplo "2 votos" se veía cortado abajo, revisando el código fuente de la clase anterior encontré el método css() que le da el estilo; en una parte decía:

           <code><pre> .PSR_stars {

              height: 15px;

              overflow: hidden;

              padding: 0;

              margin: 0;

            }</pre></code>

PSR_starts es la clase del div que contiene a las estrellitas y el texto. Simplemente comenté el límite impuesto a la altura:

           <code><pre> .PSR_stars {

              /*height: 15px;*/

              overflow: hidden;

              padding: 0;

              margin: 0;

            }</pre></code>

Seguro que a más de uno le sirve!

Saludos!



No me molestes!

Ayer empecé a ser atacado por un smmaper que despiadadamente cada minuto publicaba un comentario en uno de mis artículos en este blog, siempre desde diferentes IPs (seguro esto no era real, pero así lo veía mi WordPress), siempre con diferents e-mals y siempre con diferente contenido.

Cómo no podía evitar que sus comentarios se publiquen y como no quería que estos molesten a alguno de mis visitantes, configuré WordPress para que todos los comentarios no enviados por usuarios que tengan comentarios previamente autorizados sean marcados como pendientes de moderación. Ayer en un rato se juntaron 69 mensajes!! Necesitaba una solución definitiva.

Hoy Thunderbird (mi cliente de correo) me avisó que Lucas tenía un nuevo artículo en su blog, se titulaba: SPAM: esa gran molestia…. No lo podía creer, le estaba pasando lo mismo que a mí. En una parte decía:

a alguien le pareció muy cheto spammear sitios pedorros como este!

Qué identificado me sentí!! Así que como decía en su artículo, también instalé wp-morph, un plug-in para WordPress hecho por Diego Sevilla, y hasta ahora (llava una hora en funcionamiento) no he tenido problemas. Gracias Diego! y gracias Lucas!

Les dejo aca el LEEME del programa para que vayan viendo de que se trata y los instalen en su WordPRess para eviatr estos problemas:

LEEME de WP-Morph ----------------- WP-Morph es un plugin anti-spam para WordPress. Características: * No requiere de ningún "capcha". El usuario no tiene que introducir ningún código extraño ni se entera de nada del proceso. * Se requiere JavaScript en el browser. * Los Spammers tendrían que interpretar el código JavaScript de la página para poder enviar comentarios. Hasta ahroa no conozco a ningún programa spammer que haya sido capaz de interpretar también el código JavaScript de la página. Instalación ----------- * Descarga el plugin de aquí: http://dev.wp-plugins.org/browser/wp-morph/trunk/ * Copia wp-morph.php en el directorio de plugins de WordPress (normalmente WP-ROOT/wp-content/plugins/ ). * Ve al menú "Plugins" de la administración de WordPress. * Activa el plugin "WP-Morph". ¡¡Y ya está!! ¡¡Adios spam!! Change Log ---------- v1.5: * Sólo actúa sobre comentarios. No sobre trackbacks ni pingbacks. v1.4: * Adaptado a la versión 2 de WordPress con cambios mínimos. v1.3: * Documento válido en XHTML (Gracias a Will http://www.willsdownloads.com/blog/ por sugerir esto). v1.2: * Un mensaje de error más explicativo. * $rnd_val se calcula automaticamente y se almacena como una opción de WP. Así no se necesita interacción ni configuración por parte del usuario. (Gracias a Denis de Bernardy por sugerir esto). * Pequeños cambios en la generación del JavaScript para evitar overflows. v1.1: * Generación de valores mejorada. Ahora los formulario expiran después de un número de minutos configurado por parte del usuario del plugin. * Muestra que el formulario está protegido por WP-Morph. v1.0: * Versión inicial. Info ---- Para más información, por favor, ve a: http://neuromancer.dif.um.es/blog/index.php?s=wp-morph&submit=Search ¡Disfruta! diego. (¿Comentarios? ¿Preguntas?: dsevilla@um.es ).


Cada cosa en su lugar (HTML y CSS)

Acabo de leer Beginners guide to CSS and standards un artículo de Emil Stenstroköm en su sitio web Friendly bit. Está muy bueno y se lee en 10 minutos, un pantallazo sobre buenas prácticas de diseño para la web.

Cito algunas partes:

¿Qué es CSS?

CSS is a language that adds style (colors, images, borders, margins…) to your site. It’s really that simple. CSS is not used to put any content on your site, it’s just there to take the content you have and make it pretty.

La idea detrás de CSS

One of the least followed parts of CSS is the very idea behind it, the idea of separation of content and design. The idea here is that all sites contain two major parts, the content: all your articles, text and photos and the design: rounded corners, colors and effects. Usually those two are made in different parts of a webpage’s lifetime. The design is determined at the beginning and then you start filling it with content and keep the design fixed. So if you just want to add content to your site you don’t want to be forced to mess around with the design, would you? The same thing is true the other way around, if you decide on a redesign, why should you have mess around with the content, making sure it fits in the new layout?

Una forma diferente de pensar

This is probably a different way of thinking about HTML than you’re used to but trust me, when you’ve worked with it for a while you’ll see the power of it.

Leiste todas las citas? Si llegasta hasta aca.. que esperás para leer el artículo entero?