rmbit - La bitácora personal de Ricardo Martín
La bitácora personal de Ricardo Martín
Comentando cosas desde 2004
11 de junio de 2009

El arte del «mashup»

Vivimos en una época donde la información de todo tipo fluye con libertad hasta el exceso. Imágenes, vídeos, sonidos, música, textos… Navegamos por un mar de datos que somos incapaces de digerir y que es ya nuestro ambiente natural. Pareciera que la información, igual que la energía, ni se crea ni se destruye, sino que sólo se transforma en otras cosas. Quizás fue así como surgió el «mashup», que podríamos traducir en castellano como remezcla o más bien como mezcla. El «mashup» es un agregado de varios elementos para crear uno nuevo con nuevas funcionalidades o un nuevo significado. Este concepto se aplica a muchos y muy diversos campos.

Desde el nacimiento de la llamada «web 2.0», el concepto de «mashup» se ha convertido en uno de los más populares. El hecho de que las webs intenten ser cada vez más participativas y abiertas han llevado a publicar sus APIs (para los profanos, la «caja de herramientas» y/o el «manual» para modificar y adaptar el sistema a nuestras necesidades) y a permitir su combinación con otros servicios que proporcionan otras webs. Posiblemente los pioneros del «mashup» de la web son Google. Todas sus aplicaciones y servicios están abiertas a todo aquel que quiera manipularlas para su uso particular. A día de hoy son ya miles los sitios que combinan servicios de terceros para ofrecer a sus visitantes un nuevo servicio híbrido que tal vez de otro modo no podría ser posible. Algunos ejemplos son:

Y así podríamos seguir hasta el infinito… Pero sin duda el aspecto más vistoso de los «mashup» es la mezcla de vídeos o de música. Por internet, especialmente en los sitios de vídeos, encontramos auténticas joyas de la mezcla, algunas de ellas de lo más disparatado, como este donde se recrea la cabecera de McGyver con secuencias de Star Wars:

Y si nos metemos con el tema musical, el filón se hace interminable. He elegido un par de ellos que tienen su gracia. El primero de ellos se titula The Escobars y mezcla un tema de nuestro españolísimo Manolo Escobar con unos raperos:

Por último, ¿Cómo sonarían los Beatles + LCD Soundsystem + The Kinks?. Aquí está la respuesta:

14 de enero de 2009

D: Más allá de C/C++

Aunque en los últimos años estoy un poco desconectado de la programación, siempre me gusta estar al día de lo que se cuece. Hacía ya tiempo que sabía de la existencia de un lenguaje de programación todavía poco conocido llamado D. Para todos aquellos que saben algo de estos temas podrán deducir que tiene algún parentesco con C y C++. Así es. D lleva desarrollándose ni más ni menos que desde 1995 y su artífice es Walter Bright. A través de una anotación en Barrapunto recupero este tema para traerlo hasta vosotros.

A simple vista, echando una ojeada al código fuente de un programa escrito en D, podría pasar por C++ salvo en algunos detalles. Con esto quiero decir que no es un cambio radical. De hecho, D es una evolución de su predecesor hacia mejor. En su día muchos nos quejábamos de lo complejo que podían llegar a ser algunos aspectos de un programa en C++. Por ejemplo en lo tocante a control de memoria dinámica y punteros, a la portabilidad entre compiladores y plataformas o al acceso al bajo nivel del sistema operativo mediante bloques de ensamblador. D mejora muchas de estas cosas (sobre todo el primero) y las simplifica.

Desarrollar un lenguaje de programación no es ni sencillo ni rápido. Por eso queda mucho tiempo aún para que D sea un lenguaje de programación masivo. Ya se han dado los primeros pasos, con conferencias de expertos y varias ramas en desarrollo (Digital Mars, GDC y LDC) pero el camino que queda por delante es muy largo.

Un programa «Hola mundo» en D tendría este aspecto más o menos:

#!/usr/bin/dmd -run
/* HOLA MUNDO EN D */
import std.stdio;

void main(string[] args) {
       writefln("HOLA MUNDO");
}

24 de noviembre de 2008

Batallitas con Turbo Pascal

Me he enterado a través de Barrapunto que este mes se está celebrando (bueno, no sé si realmente alguien lo celebra) el 25 aniversario de la primera versión de Turbo Pascal. Para quien no lo sepa, se trata de un lenguaje de programación muy sencillo de la compañía Borland y con el que mucha gente aprendió a programar. Este no fue mi caso, porque yo empecé con Basic en 1986. No fue hasta 1995 cuando me adentré (o me adentraron) en el apasionante mundo del Turbo Pascal. Hasta la popularización de los IDE gráficos en Windows (sobre todo con Visual Basic), Turbo Pascal era el rey de los primerizos, los que querían tener un entorno integrado para programar, compilar, enlazar, depurar y ejecutar nuestras pequeñas aplicaciones.

En la carrera dimos a fondo Turbo Pascal y me di cuenta de la cantidad de posibilidades que puede tener. De hecho una de sus principales bazas era su potencia y su sencillez con capacidad para programación orientada a objetos. La herencia de Turbo Pascal la encontramos en Delphi, la versión con IDE para Windows, aunque la verdad es que hoy prácticamente ya no se utiliza.

En un ejercicio de nostalgia me he bajado el Turbo Pascal 5.5 y he programado un pequeñísimo ejemplo. El código fuente en el entorno integrado tenía un aspecto tal que así:

9 de noviembre de 2008

El infierno de la tipografía web

Una de las razones por las que he perdido el interés en el diseño web son las tipografías. Tras darme cuenta del verdadero problema que supone la existencia de tres plataformas diferentes (Windows, Mac y Linux), seis navegadores «mayoritarios» (Internet Explorer, Firefox, Chrome, Konqueror, Safari y Opera) y múltiples dispositivos móviles desde los que se puede acceder a la web, los desarrollos de mis webs se alargan casi hasta el infinito. Las pruebas que he de hacer para que todo tenga buen aspecto desde cualquier sitio se ha convertido en una obsesión.

Eso es justo lo que me está pasando ahora con la nueva versión de mi página personal rmweb, en plena fase de diseño. Precisamente el diseño había sido hasta hace no mucho tiempo mi etapa favorita y también la más satisfactoria. La desventaja es que en Mac OS X cualquier cosa se ve perfecta. Hasta la tipografía más horrenda tiene buen aspecto. La sorpresa viene cuando paso a Windows y abro la web con Internet Explorer. Normalmente me gusta tan poco el resultado que vuelvo otra vez a rediseñarla. He tomado la decisión de diseñar el CSS directamente en Windows y probar en el resto de plataformas. Curiosamente, en Ubuntu los resultados son bastante decentes, mucho más que en sistema operativo de Microsoft.

De momento, las conclusiones son usar fuentes personalizadas para cada plataforma. Es decir, usar fuentes excluyentes que sé que sólo tienen preinstaladas un determinado sistema operativo. Por ejemplo, sé que la Lucida Grande es la fuente del «sistema» en Mac OS X y que Windows no la tiene instalada, así que doy a este tipo la máxima prioridad. En segundo lugar utilizo la Arial para titulares grandes y la Tahoma para texto pequeño, ambas instaladas por defecto en Windows. Por último y sobre todo por seguridad, por compatibilidad con otros sistemas (Linux utiliza estas si no están instaladas las anteriores) añado Helvetica y la familia genérica sans serif. Al final, las instrucciones font-family del CSS de rmweb están quedando así:

Para titulares:

font-family: "Lucida Grande", Arial, Helvetica, sans-serif;

Para texto pequeño:

font-family: "Lucida Grande", Tahoma, Arial, Helvetica, sans-serif;

Todavía queda algún tiempo para que la nueva versión de rmweb vea la luz, pero en la foto podéis ver como está quedando. Admito sugerencias.

11 de octubre de 2008

Azar e informática

A lo largo de mis tiempos de programador, me he tenido que enfrentar varias veces con el azar. En algunas de las aplicaciones que he tenido que diseñar entraba el componente aleatorio en forma de un generador de números. Todos los que han programado alguna vez conocen funciones como rand() en PHP o C++ o rnd() en Visual Basic que teóricamente generan valores al azar entre 0 y 1 con varios decimales.

Hace unas semanas leí un artículo interesante en la web de Bo Allen sobre este tema. Y no hizo más que confirmar mis sospechas: la aleatoriedad generada por un ordenador no es realmente aleatoria, sino que sigue unos ciertos patrones que se repiten una y otra vez, de forma que a la larga pueden predecirse. No hay más que ver el gráfico que acompaña al artículo para darse cuenta.

Y es que el concepto de aleatoriedad no está tan claro. De hecho nadie sabe si realmente existe o si al final, igual que con el gráfico, siempre se repite un patrón. No voy a entrar en conceptos que nos llevarían a la filosofía o a la física. Si os interesa el tema, en la curiosa página web random.org han estudiado detenidamente el tema de la aleatoriedad y cuenta con un generador aleatorio de números no basado en los cálculos del procesador, sino en los ruidos atmosféricos, que se supone que son mucho más azarosos…

28 de julio de 2008

Poesía geek

Poesía y programación. Lo abstracto, lo inaprensible, lo irracional contra la funcionalidad máxima, la racionalidad extrema y la brevedad. Un choque de trenes. ¿O no? A juzgar por los poemas «traducidos» o directamente escritos en diferentes de lenguajes de programación parece que no tanto. Aunque el resultado es un poco chusco e invita a echar unas risas, me ha parecido curioso traer unos cuantos que he recopilado a lo largo y ancho de internet.

El primero es una traducción ingeniosa a C++ de los primeros versos de ‘La Canción del Pirata’ de José de Esprondeda (por Lady Benko):

//BenKo - demasiada Cafeína
#include 
using namespace pirates;

void pirate_song() {
	Ship.AddCannons(10);
	Ship.AddCannons(10);
	Wind.Blow("stern","maximum");
	Ship.CutSea(false); Ship.Fly(true);
	Ship.Type("Velero bergantín");
}

Vamos ahora con ‘Amor en PHP’ escrito por Lautreamont en (obviamente) PHP:

// Amor en PHP (PHP Love) v1.0
// Lautreamont 2006

if ($yourLove == true) {
	while (isset($me)) {
		&myLove = $myLove+1;
	}
} else {
	$me = null;
}

O lo que es lo mismo:

Si me quieres, te querré
más y más a cada instante mientras viva
porque si no me quieres no soy nada.

Loine en los comentarios del post anterior deja también su pieza sin título y escrita en Bash shell:

#/bin/bash

amame(){
	yes 2 `whereis $MY_LOVE`
	cat /proc/kore | grep $MY_LOVE
	cat /proc/mem | grep $MY_LOVE
	if !-z $MY_LOVE
		amame
}

Loine no deja traducción para este programa-poema, así que desempolvando mis conocimientos «viejunos» de Bash sería algo así como (admito correcciones):

Si buscas mi amor
búscalo en mi corazón
búscalo en mi recuerdo.
Si lo encuentras, ámame.

Alejo hace lo propio con su pieza en PHP:

$myHope = ereg($myLife,$you) && ereg($yourLife, $me)

Mi esperanza es ser parte de tu vida y tú seas parte de la mía.

Como véis esta gente no son precisamente Claudio Rodríguez, pero me ha parecido curioso traerlos, sobre todo para aquellos que, como yo, sacan a relucir de vez en cuando su faceta más geek/»friki».

28 de abril de 2008

Nuestro propio servidor de vídeos Flash

Desde que leí un artículo en el blog de David de Ugarte sobre cómo construirse un servidor de vídeos Flash al estilo de YouTube no he hecho más que darle vueltas al asunto. Ahora que he tenido un rato he podido trastear con el tema. Siempre he querido ser lo más independiente posible de las plataformas masivas en la red, léase YouTube, Flickr y otras muchas. Más que nada porque al final son ellos los que deciden sobre tus contenidos y en el fondo hacen lo que quieren. La desventaja es el espacio en el servidor que ocupan los vídeos Flash, aunque también es verdad que hoy día los precios de los alojamientos están bastante baratos y ofrecen una capacidad respetable. Yo tengo 500 Mb ahora mismo, más de la mitad desocupados. Me sería muy complicado realojar todos los vídeos que tengo enlazados en mi cuenta de YouTube y en esta bitácora. Pero por lo menos que este post sirva para que los manitas de la web puedan experimentar un poco con esto de ser su propio servidor de vídeos.

Existen tres posibilidades, según lo que queramos hacer. La primera, y más sencilla, es utilizar un pequeño plug in para nuestra bitácora (en WordPress, aunque supongo que para otras plataformas también los habrá). Su nombre es Flash Video Player y lo he usado a modo de prueba. Como podéis comprobar abajo, funciona perfectamente y no he tenido más que seguir las indicaciones que vienen. Este accesorio permite insertar vídeos en nuestros posts a través de una simple etiqueta insertada en el cuerpo del artículo, y que viene a ser del estilo [ flashvideo filename="video/myvideo.flv" / ], donde "video/myvideo.flv" es la ruta (absoluta o relativa) y el nombre del archivo del vídeo. En el panel de control de WordPress podemos configurar la apariencia y el comportamiento del reproductor. De todos modos está muy limitado (color, botones y poco más).

[flashvideo filename=»http://www.ricardomartin.info/videos/broadcast_papercuts.flv» /]

La segunda opción es acudir al código fuente gratuito de alguno de los muchos clones de YouTube que circulan por ahí. En esta página hay catorce para elegir. Nos los bajamos y, siguiendo las instrucciones, conseguiremos instalarlos en nuestro servidor. La pega que les he encontrado es que los más completos incluyen un sistema propio de conversión de los vídeos a .flv, y para este proceso es necesario instalar una extensión de servidor. Lamentablemente muchos proveedores de hosting no permiten a sus clientes instalar complementos en sus servidores ni acceder a ellos. Luego veremos que la mejor opción será convertirlos en nuestro ordenador con un programilla y subirlos a una carpeta del servidor ya en formato Flash.

La tercera y última opción, para los más exigentes (y valientes), es obtener el código fuente del reproductor de vídeo Flash. Yo he conseguido el Media Player, que es de código abierto. Si tenemos conocimientos suficientes de Flash y ActionScript podremos modificarlo a nuestro antojo. En su página web puede consultarse la abundante documentación que lo acompaña y con la que es muy difícil perdernos. También hay algunos ejemplos que podemos utilizar en nuestros proyectos. Sólo recomendado para aquellos que tengan tiempo y ganas…

Conversión de ficheros de vídeo a .flv

Por suerte en el Mac es muy sencillo convertir a este formato, ya que el propio reproductor multimedia QuickTime tiene esta opción de serie. No hay más que abrir el vídeo y exportarlo (Archivo/Exportar…), seleccionando el formato flv. Para los desafortunados que no tengáis un Macintosh existen múltiples aplicaciones gratuitas para Windows y GNU/Linux que realizan esta tarea. No hay más que hacer algunas búsquedas por Google para dar con el programa adecuado.



rmbit está bajo una licencia de Creative Commons.
Plantilla de diseño propio en constante evolución.
Página servida en 0,108 segundos.
Gestionado con WordPress