La Coctelera

Categoría: Trucos

Tu propia hCard en La Coctelera

Sobre hCard

hCard es un formato simple, abierto y distribuido para representar gente, compañías, organizaciones y sitios usando una representación de cada uno de las propiedades y valores del estándar vCard (RFC2426 (http://www.ietf.org/rfc/rfc2426.txt)) en XHTML semántico. hCard es uno de los varios microformatos estándares y abiertos para embedir en (X)HTML, Atom, RSS y clualquier XML.

Traducción libre (y seguro que muy mejorable XD) del párrafo de presentación de http://microformats.org/wiki/hcard

Mis 10 minutos improductivos del día

Supongo que habéis visto el "sobre mí" en la barra de la derecha de los blogs de La Cocteler. La información personal es una hCard generada por La Coctelera a partir de los datos de nuestro perfil. Hace un rato, en un momento de aburrimiento entre las tantas cosas que tengo que hacer, se me ha ocurrido que me gustaría cambiar la hCard por una hecha por mí. Requisitos:

  1. Poder controlar la información que quiero dar en la hCard: a lo mejor mañana quiero poner mi número de móvil para que me enviéis insultos por SMS xD
  2. Que por defecto salga mi gravatar: hay que amortizar la cuenta en gravatar :P
  3. Echar 10 minutos en alguna chorrada: porque sí

Como es algo muy chorra os pongo lo que he colocado en el "sobre mí" y listo. Si resulta que alguien lee esto luego y quiere más información o detalles que deje un comentario y detallo lo que haga falta ^_^

 <!-- hCard propia -->
 <div id="hcard-Ernesto-Jiménez" class="vcard clearfix">
   <a title="perfíl" href="http://www.lacoctelera.com/ernesto-jimenez/perfil"><img class="photo" src="http://www.gravatar.com/avatar.php?gravatar_id=125b528cf4cb0ddc3d4da9671dd2ee40&amp;size=65&amp;default=http://www.lacoctelera.com/myfiles/ernesto-jimenez/Foto%206465x65.jpg" width="65" height="65" alt="Avatar de Ernesto"/></a>
   <strong><a class="url fn" href="http://www.lacoctelera.com/ernesto-jimenez">Ernesto Jiménez</a></strong>
   <div class="adr">
   <span class="locality">Alicante</span>, 
   <span class="country-name">España</span>
   </div>
   <a title="perfil" href="http://www.lacoctelera.com/ernesto-jimenez/perfil">ver perfil</a>
 </div>
 <!-- Quitar hcard de lacoctelera.com -->
 <script type="text/javascript">
 Element.remove($$('#sobre-mi .cont .vcard')[0]);
 </script>
 

Para generar vuestra hCard rápidamente podéis usar el hCard Creator de microformats y luego retocad el código. Prestad atención a las clases que he puesto en negrita en el código anterior, son para tomar los estilos CSS de La Coctelera.

El javascript es para eliminar la hCard que viene por defecto en la página.

Soy adicto a la terminal (incluso en Mac OS X)

Hace casi seis años que convivo únicamente con sistemas UNIX (GNU/Linux y Mac OS X). Si algo me ha quedado de esta convivencia es una tremenda dependencia de la terminal. Yo sin mi bash no soy nadie :)

Cuando llegué a Mac OS X había algo que no me gustaba nada, no sabía cómo abrir los programas que tenía instalados desde la terminal. En Mac se empaquetan los programas en carpetas .app que contienen todos los recursos del programa (ejecutable incluido). Bastantes veces he visto por ahí gente que, para ejecutar una aplicación desde la terminal, hacían un bonito:

$ /Applications/Preview.app/Contents/MacOS/Preview

Sí, funciona, pero eso de escribir toda la ruta cada vez que hay que ejecutar un programa me parece demasiado estorbo... Afortunadamente, en Apple parece que también les parecía demasiado y ponen a nuestra disposición la orden open

$ open -a preview
$ open -a preview archivo.pdf
$ open imagen.dmg
...

Con esto el tema mejora bastante. Aun así tenía un problema, como buen adicto a la terminal también soy adicto al tabulador así que me hice un mini-script. El siguiente script:

 #!/usr/bin/env bash
 echo "alias finder=\"open -a finder\"" > $HOME/.bashrc_aliases
 for i in $( ls /Applications | egrep \.app$ | awk -F / '{ print $NF}' | tr '[A-Z]' '[a-z]' | sed -e 's/\.app$//g' -e 's/ /A/g')
         do
         ALIAS=$(echo $i | sed -e 's/A/ /g' -e 's/[^a-z0-9]/-/g' -e 's/--/-/g')
         echo "alias $ALIAS=\"open -a \\\"$(echo $i | sed -e 's/A/ /g')\\\"\"" >> $HOME/.bashrc_aliases
 done
 

El script genera un archivo .bashrc_aliases con alias para todos los programas .app que tienes en el directorio /Applications (no entra en subdirectorios, aunque se podría apañar) y para finder. El contenido vendría a ser así:

$ head -n 10 .bashrc_aliases
alias finder="open -a finder"
alias address-book="open -a \"address book\""
alias adium="open -a \"adium\""
alias aurora="open -a \"aurora\""
alias automator="open -a \"automator\""
alias calculator="open -a \"calculator\""
alias camino="open -a \"camino\""
alias chess="open -a \"chess\""
alias cocoamysql="open -a \"cocoamysql\""
alias dvd-player="open -a \"dvd player\""

Creo que incluso para los que no sepan de la existencia de alias la orden es bastante descriptiva, al ejecutar estos alias, las siguientes órdenes serían equivalentes:

$ finder
$ open -a finder
$ finder $HOME
$ open -a finder $HOME

Yo tengo definido en mi crontab ejecute el script cada media hora (a muchos les parecerá demasiado, pero en algo hay que gastar los recursos del portátil ;D)

$ crontab -l
0/30 * * * * $HOME/.aliases &> /dev/null

Además tengo puesto que al iniciarse mi terminal se carguen todos los alias de .bashrc_aliases

$ head -n 4 .bashrc
#!/usr/bin/env bash
if [ -f $HOME/.bashrc_aliases ]; then
. $HOME/.bashrc_aliases
fi

Con esto ya lo tengo todo listo :)

Dicho esto, cualquier duda/sugerencia/corrección será bienvenida en los comentarios ^_^