Saltar al contenido Navegación Ir a buscar

Actualizaciones ocasionales en inglés, mayormente sobre programación, ocasionalmente de fútbol.

Bingo! 100GB siempre listos

Hace unos días que los chicos de Joyent han lanzado al mercado Bingo! 100GB de almacenamiento on-line por 199$/año.

En estos tiempos en los que a todo el mundo parece haberle dado por desarrollar exactamente el mismo tipo de aplicaciones, se agradece disponer de servicios realmente útiles, desde los que poder servir imágenes – más de 10GB por año, en mi caso – podcasts, o tener un lugar donde colocar la copia de seguridad de todo el portátil lista para instalar.

La máquina donde está instalado Bingo es alucinante, un Thumper de Sun que está pasando a ser el juguetito por defecto de TextDrive.

La aplicación está programada en Rails y, para los posibles interesados en buscarle aplicaciones programáticas, Johan ha publicado un ejemplo sobre como hacerlo con Ruby.

Para los meros mortales, el uso es tan sencillo que sobra con esta anotación y unas cuantas capturas de pantalla para conocer absolutamente todo lo que se necesita para emplear Bingo:

Hay más »

17/09/06 04:46 p.m. por Pedro Palazón Candel

PHP PDO en Ubuntu Dapper

Si hay algo que me molesta sobremanera del modo de gestinar los paquetes de la gente de Debian es esa manía de separarlo todo en paquetitos más pequeños, no sea que alguien se instale 100KB que no sean absolutamente necesarios.

Para el caso de Ruby ya desistí hace tiempo de los paquetes proporcionados, y decidí instalar directamente desde los fuentes. Para el de PHP sigo tratando de emplear los paquetes oficiales.

Si nos ceñimos al manual de PHP, lo lógico sería esperar que PDO estuviese instalado por defecto, tal y como dice. Pero los chicos de PHP olvidan la coletilla que deberíamos tener presente los usuarios de Debian/Ubuntu: ”... a menos que uses Debian, y se trate de un mini-paquetito, si tienes suerte”.

Por supuesto, PDO1 no se instala por defecto en Ubuntu Dapper, ni existe mini-paquete, por lo que toca instalar a mano. La instalación no es que sea muy compleja, pero igual le ahorro a alguien un rato de whereis y demás, así que paso a resumirla:

  1. Vamos a necesitar PECL, así que sería interesante comprobar que está instalado: whereis pecl debería resultar en algo como pecl: /usr/bin/pecl /usr/bin/X11/pecl.
  2. Instalamos PDO: sudo pecl install pdo, que nos recordará que debemos añadir la línea extension=pdo.so en php.ini2
  3. Intentamos instalar PDO_MySQL con sudo pecl install pdo_mysql y nos devuelve un bonito error3, de modo que vamos a tratar de instalarlo a mano, tal y como se explica aquí – ¡y luego dicen que dependemos de Google! – ¡Que no se nos olvide comentar las líneas 4163 a 4173!.
  4. Para añadir la extensión a php.ini, recordar que el directorio por defecto es /etc/php5/ en lugar de /etc/php/, como dice en el documento citado anteriormente.
  5. Para cualquier otra extensión que queramos instalar nos devolverá el mismo error3, por lo que debemos repetir la operación de descarga de la extensión y comentario de las líneas que se quejan de que tenemos la extensión deshabilitada. A continuación los pasos para, por ejemplo, instalar PDO_SQLite:

wget http://pecl.php.net/get/PDO_SQLITE-1.0.1.tgz
tar zxvf PDO_SQLITE-1.0.1.tgz
cd PDO_SQLITE-1.0.1/
phpize

Editamos configure y comentamos, en este caso, las líneas desde la 5712 a la 5722.

./configure
make
sudo make install

Y una vez añadimos la extensión a php.ini, todo debería funcionar.

Podemos comprobarlo desde la línea de comandos aprovechando la opción -r de PHP que permite evaluar el código que le pasamos desde la línea de comandos:

php -r 'echo var_dump(extension_loaded("pdo"));'
php -r 'echo var_dump(extension_loaded("pdo_mysql"));'
php <del>r 'echo var_dump(extension_loaded("pdo_sqlite"));'

deberían devolver bool(true) si hemos instalado correctamente las extensiones y las hemos añadido al archivo php.ini para cli2.

Y eso es todo amigos. Ahora sólo os falta recordar el por qué de mi interés en PDO ;)

1 PDO define una interfaz unificada para acceder a bases de datos en PHP, proporcionando una serie de funciones comunes a todas ellas y algunas específicas para cada extensión.
Resulta bastante cómodo de emplear cuando necesitamos soportar más de un tipo de motor de bases de datos sin demasiadas complicaciones y es – ¡por fin! – una abstracción oficial de PHP.

2 En Ubuntu hay 3 archivos php.ini, uno para apache, otro para cgi y otro para la línea de comandos. Están todos bajo /etc/php5, en los directorios correspondientes, y habrá que habilitar las extensiones en función de qué interfaces queramos emplear con PDO.

3 You’ve configured extension pdo_mysql, which depends on extension pdo, but you’ve either not enabled pdo, or have disabled it.

18/06/06 12:11 p.m. por Pedro Palazón Candel · ¿Comentarios? [3]

UTF-8 tips

No es muy conveniente sugerir sin una explicación previa:

La representación de los distintos lenguajes en los ordenadores está basada en codificaciones1 y juegos de caracteres2.

Los idiomas que emplean más de 255 glyphs3 – como, por ejemplo, el castellano – necesitan un modo de representar los códigos de caracteres algo más complejo que el empleado en ASCII, en el que el total del juego de caracteres suma sólo 128, que pueden representarse empleando 7 bits. En ASCII, cada caracter es un bit y cada palabra – ya sé, es cada cadena, pero si sabes que se trata de una cadena, tal vez deberías saber más de UTF-8 :-) – consiste sencillamente en una secuencia de bits.

Esta necesidad de representar lenguajes que emplean más de 255 glyphs3 ha dado lugar a numerosos juegos de caracteres como, por ejemplo, el tradicional del castellano y otros idiomas, denominado ISO-8859-1.

Unicode

Unicode es, simplemente, el intento de unificar todos los juegos de caracteres conocidos en uno sólo.
Proporciona la posibilidad de emplear varios lenguajes, que emplean juegos de caracteres muy distintos, en un único documento.

¿Por qué usar unicode?

Es igualmente válido el empleo de UTF-16 que de UTF-8, pero la idea es emplear el último, ya que está ampliamente soportado en una gran cantidad de lenguages de programación.

Una lista de buenas razones podría ser la siguiente:

  • Evitarnos complicaciones. La tendencia general es al soporte nativo de UTF-8 por parte de todos los lenguajes de programación. Además, los navegadores web soportan UTF-8 desde justo después de Netscape 4, por lo que …
  • ... si empleamos UTF-8, no hace falta que reemplacemos los caracteres típicos del castellano por sus entidades HTML – mejor numéricas, que son también válidas en documentos XML y, por tanto, nos evitamos sorpresas desagradables en nuestros feeds – correspondientes. Basta con emplear la etiqueta meta apropiadamente y servir los caracteres tal cual: <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  • Favoreceremos la posibilidad de emplear diversas aplicaciones para acceder y publicar en nuestras webs, como los diferentes lectores de feeds, clientes XML-RPC de escritorio, ...
  • La migración de nuestra base de datos de contenidos para emplear otro sistema de gestión será mucho menos traumática.

Iniciativa pro utf-8, ¡hasta con banner!

Como ya sabeis, a principios de Año, en Microsiervos decidieron mudarse a utf-8 adheriéndose a la predicción de Diego de que éste sería el año del utf-8. Incluso hay una página del wiki en el que se listan algunos Weblogs UTF-8, a los que les faltan, sólamente, todos los weblogs que emplean textpattern.

Sobre el banner, yo no pienso emplearlo. No es que no me guste, ni que no me parezca buena la iniciativa. Es que lo más importante de UTF-8 no es decírselo a los visitantes de tu sitio, sino disfrutar de la comodidad en la que vives desde que lo empleas. Y por aquí ya hace tiempo que se usa, así que me queda un poquito anticuado :-).

Reiterativo

No es la primera vez que se trata el tema por estos lares. El artículo de marzo del año pasado ya proporcionaba cierta información y apuntaba a enlaces de artículos anteriores: UTF-8.

Es vuestra elección emplearlo o no; pero luego vendrán las quejas con los juegos de caracteres de vuestras bases de datos.

MySQL

Casi se me olvida. Turning MySQL data in latin1 to utf8 utf-8, de Derek Sivers proporciona un buen montón de trucos para olvidarnos de la antigua representación de caracteres de MySQL empleando latin1 y pasar, de una vez por todas, a utf-8.

1 encoding: el modo en el que se representan los números enteros que componen un carácter en una secuencia

2 character set: representación de un número entero en un glyph3

3 glyph: la imagen que representa el carácter.

17/01/06 04:49 p.m. por Pedro Palazón Candel · Iñtërnâtiôn? lizætiøn [5]

Lanzamiento de Textpattern 4.0.1

Available now, Jack!

Liviano de añadidos, cargado de …

Hay más »

06/09/05 07:02 p.m. por Pedro Palazón Candel · ¿A qué estás esperando? [1]

Novedades y Hosting

En una época del año en la que acontecen ciertos cambios en mi entorno, y Textpattern me ofrece la oportunidad de participar en eventos interesantes, no me gustaría que mi acuciante falta de tiempo me obligase a obviar mi artículo sobre la instalación de textpattern para Libro de Notas.

Pero lo mejor no es eso. Lo mejor es que está en vuestras manos continuar ofreciendo soporte al desarrollo de Textpattern, mientras que os aprovechais de la nueva oferta – están locos de remate – de hosting de por vida en TextDrive, del que su seguro servidor lleva disfrutando más de un año.

05/09/05 04:36 p.m. por Pedro Palazón Candel

« Anteriores  Siguientes »