Imágenes en base-64 para Internet Explorer

Prácticamente todos los navegadores actuales, soportan imágenes codificadas en base64, sin embargo, esto no pasa con Internet Explorer (hasta su versión 7 al menos). Estareis pensando que no debería ser un problema ya que no solemos colocar las imágenes codificadas en el código html, sin embargo, podemos encontrarnos con la necesidad de tener embedida la imágen dentro del código por motivos x.

Un ejemplo de uso de imágenes en base64 en el código html sería:

<img src="data:image/gif;base64,R0lGODlhNQAkAKIAAHJycvwHBwAAqwCjC+3PDv///wAAAAAAACwAAAAANQAkAAAItAAHCBxIsODAAggTKlyYMIDDhxAjOjRIsSDDiwslaoRYseMAjCALbBzpsWJIjCM3lqR48mJKjSsNtmT4UmJMizMV1ox4k2BOnTsf9jz4E2FQoUM/FhV5NEBSpUWbOk26lOnRp1WlYl2qlSrXplujgvUq9irZn12HZh2r9qvZtmWDhkXLtufat3bdyj2bM23euDvn9q178+5euHTxFtYbmO9Mv4sB1xT8mHBMw40RD1Z8mXHNgAA7" width="200" alt="Base64 encoded image" />

Nos dará como resultado la siguiente imágen:

Base64 encoded image

mira el código fuente si todavía tienes dudas 😉 Continue reading

Implementar FullCalendar en Symfony

FullCalendar es un plugin jQuery que nos permite implementar de manera sencilla un calendario con una interfaz visual excelente y muy fácil de personalizar. Además, podemos hacer Drag&Drop (arrastrar y soltar) de los eventos agendados para pasarlos de un día a otro.

Hoy vamos a montar en symfony un módulo que nos mostrará un calendario con los eventos almacenados en nuestra base de datos. La parte de administración no la desarrollaré, pero con las completas herramientas que nos ofrece symfony, nos será muy fácil montarlo (si estás dando tus primeros pasos con Symfony, te recomiendo realizar este tutorial donde podrás ver paso a paso como se implementa un projecto con Symfony).

FullCalendar

Continue reading

Wodim para evitar “Data does not fit on disk” al quemar un DVD

burndvdEsta mañana, al ir a quemar una imagen ISO con K3B, me aparecía un error bastante molesto:

Found files bigger than 2GB. These files will only be fully accessible if mounted with UDF
Enabling UDF extension.
Data does not fit on disk

Así que como tenía a mi colega Borja por el Kopete y el es un tio instruido en estos temas, le he preguntado que podía hacer… la conversación ha sido más o menos esta:

...
<Manel> toy grabando una imagen iso con k3b y me peta
<Borja> pero te dice alguna cosa?
<Manel> dice esta mierda "Found files bigger than 2GB. These files will only be fully accessible if mounted with UDF" "Data does not fit on disk"
<Borja> no se, parece algo del sistema de ficheros del dvd... si quieres prueba con el wodim desde consola
...

Continue reading

Redimensionado de iframe al tamaño de la página contenida

Con este sencillo código JavaScript, ajustamos la altura del iframe al tamaño de la página en él conteido, de ese modo, evitaremos el molesto scroll lateral.

<html>
    <body>
        <script language="JavaScript">
            //Ajusta el tamaño de un iframe al de su contenido interior para evitar scroll
            function autofitIframe(id){
                if (!window.opera && document.all && document.getElementById){
                    id.style.height=id.contentWindow.document.body.scrollHeight;
                } else if(document.getElementById) {
                    id.style.height=id.contentDocument.body.scrollHeight+"px";
                }
            }
        </script>
        <iframe id="miFrame" src="http://manelperez.com/" width="100%" height="0" frameborder="1" transparency="transparency" onload="autofitIframe(this);"></iframe>
    </body>
</html>

Una vez cargado el iframe, llamamos a la función autofitIframe que se encargará de obtener la altura total de la página contenida y se la asignará al tamaño del iframe.
Simplemente…

Redirect 301 para preservar el PageRank

Redirect 301

Supongamos que estoy haciendo un rediseño de mi web para conseguir una mejora en SEO. Las urls actuales a mi listado de productos son de este estilo:

http://manelperez.com/products.php?id=13

Pero lo que realmente nos interesaría tener una url semántica de este estilo:

http://manelperez.com/sony/cyber-shot/dsc-t500-color/13

Claro que, no queremos perder el PageRank de la url antigua que tanto nos ha costado acumular ¿qué podemos hacer? Pues la solución pasa por realizar una redirección permanente (o Redirect 301). Cuando Google recibe una cabecera http 301, entiende que la dirección a la página ha cambiado de manera permanente y pasa toda la información a la nueva url. Continue reading

Reducir fotos desde línea de comandos

Aquí os dejo un script tan simple como útil que reduce todas las imágenes de una carpeta a un tamaño dado. Esto nos podría ser útil, por ejemplo, porque queremos subir 200 fotos a una web, pero como tienen mucha resolución pesan aproximadamente 2MB cada una, pues con este script podemos reducir su tamaño y conseguir que su peso se reduzca de manera considerable.

Para ello, tendremos que tener instalados en nuestra máquina los paquetes imagemagick y graphicsmagick-imagemagick-compat, en Ubuntu:

sudo apt-get install imagemagick
sudo apt-get install graphicsmagick-imagemagick-compat Continue reading 

Kernel driver not installed (rc=-1908) – Error VirtualBox

El otro día os explicaba como instalar VirtualBox en Ubuntu. Para aquellos que lo esteis utilizando, quizá os haya salido (o seguro que os saldrá) un error “Kernel driver not installed“. ¿A que es debido esto? Pues resulta que VirtualBox utiliza unos paquetes que son dependientes de la versión de nuestro Kernel, por tanto, cuando actualizamos el software de nuestra máquina y Ubuntu sube la versión de su Kernel, VirtualBox deja de funcionar.

El error mostrado es:

VirtualBox Kernel Error

Continue reading

Recuperar password de root en Linux

Tux HelpSi os encontrais desesperados porque habeis perdido la contraseña de root de vuestra Ubuntu (por mencionar una distribución) estais de suerte, siempre que podais acceder físicamente a la máquina, hay una manera de recuperarlo.

Para conseguirlo, aprovecharemos que en un LiveCD entramos con privilegios de root para montar nuestras particiones en él, desdea aquí haremos un salto a nuestra máquina recién montada y modificaremos el password.

Puede parecer, que un sistema Linux es vulnetable debido a esta característica, pero recordemos que ningún sistema operativo es seguro si tenemos acceso físico a la máquina. Si no confiamos en las personas que pueden acceder a nuestro PC, lo único que nos queda es encriptar toda la información confidencial de nuestra máquina. Continue reading