PDF sobre demanda

Se me había olvidado lo fácil que es lanzar pdf’s al vuelo con FPDF. De hecho ahora cuando me consultaron sobre la posibilidad de una aplicación para crear documentos pdf con información obtenida desde formularios web, pensé en libPDF, que está bién documentada en php.net. Pero no pude configurarla correctamente (al parecer por un conflicto de la librería GD de tratamiento de imágenes) y opté por buscar una alternativa y me acordé de FPDF que es tan simple como lo siguiente:

require('fpdf.php');
$pdf=new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',50);
$pdf->Cell(60,10,'Hola mundo');
$pdf->Output();

Hace más de tres años que había jugado con esta librería… hay cosas que son como aprender a andar en bicileta: nunca se olvidan.

Cerca de la Revolución

dell-linux-banner.jpg

Hoy vino mi buen amigo Andrés Yáñez con su notebook nuevo a pedirme que le ayudara a configurarlo y le recomendara algunos programas de ofimática. Era un Compaq Presario de 17 pulgadas con un giga de RAM, tarjeta de video Nvidia, 80 GB de disco duro… en fin, un bonito tarro. Pero traía Vista Home Basic…

Qué se puede decir! En menos de 20 minutos tuve que reiniciarlo porque estaba pegadísimo con exigencias mínimas: conectarse Redes de Windows, compartir una carpeta, mover un archivo de un lugar a otro. Nada espectacular para un tarro nuevo.

Esta es la segunda vez que me enfrento a Vista y sólo puedo decir que es un pésimo sistema operativo. Nada resulta a la primera, es poco intuitivo (ni el Altt+Ctrl+Sup es simple de entender) y, como si fuera poco, basta con mover el mouse para que salte una alerta del Firewall o del antivirus. Nada más latero y exasperarnte.

Pero estamos viviendo días de cambio. Dell ha comenzado a vender PC’s con Ubuntu; Dell ha comenzado a vender PC’s en Wal-Mart. No hay que ser muy visionario para darse cuenta que ha comenzado una nueva era… la era del apt-get, la era del Open Source

El código oculto de WordPress

Desde que uso WordPress, sé que viene con la librería MagpieRSS metida en su código, específicamente en el archivo “/wp-includes/rss.php”. Lo cierto es que jamás le había dado mucha importancia, básicamente porque para “parsear” prefiero lastRSS, que es más rápida y liviana.

Hoy, sin embargo, me pidieron sindicar un par feeds en uno de los blogs que tenemos en la carpeta de proyectos, pero como aún entra a la etapa de producción no quise complicarme con plugins ni funciones extras. Así que opté por usar lo que WordPress me ofrecía por defecto.

Para mi sorpresa descubrí que el archivo rss.php sólo estaba ahí. No es llamado ni utilizado en ninguna parte por WordPress. Descubrí también que hay un par de funciones interesantes que se puden aprovechar para sindicar cuanto XML queramos.

Las funciones en cuestón son dos:

  • get_rss ($url, $num_items = 5)
  • wp_rss ($url, $num_items)

Aunque para lograr que funcionen hay que hacer un “include” al archivo rss.php.
Nota: buscando el mejor lugar para hacer el include, descubro que hay otro archivo (rss-function.php) donde está nuevamente la librería MagpieRSS y donde, con leves modificaciones, se repiten las funciones get_rss y wp_rss, que extrañamente son inaccesibles desde las plantillas sin un bendito include.

Si alguien me pude explicar por qué esto es así, se agradece un comentario!

Bendito sea Dell

Me he vuelto un fanático de Ubuntu. Es fácil, bonito, práctico, usable, genial como herramienta de trabajo y, lo mejor, gratis.

Pero, para ser justo, no todo me ha resultado como he querido. Algunos problemas con mi monitor LG y la tarjeta nvidia me han hecho pensar en cambiarme tal vez a Fedora, tal vez a PCLinux, incluso a OpenSuse como última alternativa, pero el punto es que me he acostumbrado demasiado a Ubuntu y a su sabor Debian (apt-get es simplemente genial).

Por eso, que Dell vaya a vender PC’s con Ubuntu (linux) instalado es la mejor noticia que escuchado en mucho tiempo. La sola idea de un tarro hecho para linux y todas las consecuencias que podría generar en la industria me parece loable. Es que todo sería más fácil aún… Eventualmente podría haber más software y, obviamente, más hadware compatible.

Ojalá y sea pronto una realidad.

Si quieres saber más mira este post de fayerwayer

Herramientas para Diseñadores y Desarrolladores

Uno de los blog que me está gustando harto últimamente es user experience en español. Por ejemplo este post lo encuentro sumamente útil para cualquier desarrollador web. En él hay una serie de recomendaciones y recursos para hacer sitios usables, accesibles, encontrables y que validen.

Es que hacer sitios accesibles no es una cuestión menor. Hoy, sin ir más lejos, en AV estuvimos discutiendo sobre el gran problema de la “Banca Electrónica” en Chile, donde hay cero preocupación por la accesibilidad, los usuarios, etc. Otro caso desastroso es el de las AFP. En Habitat, por ejemplo, me demoré más de media hora en encontrar el link para llegar a mis “Cotizaciones Obligatorias”. En fin, los ejemplos sobran, SII no se pude usar con Firefox, el discurso del 21 de Mayo podía verse on-line si no usas Windows, etc., etc.

El tema da largo, partiendo de la base de que las responsabilidades se pierden quién sabe dónde… falta de leyes claras, informáticos que sólo piensan en sistemas y no en personas, gerentes que no entienden nada de nada y en general mucho desconocimiento sobre la materia, incluso por parte de muchos “desarrolladores y diseñadores”.

Microsoft y sus patentes

Mientras el mundo del open source está en medio de una polémica por el borrador de lo que será la nueva licencia GPL, Microsoft alega que el kernel de Linux viola 65 de sus patentes, OpenOffice.org infringe 45 y otros programas open source 83.

“Según Microsoft, si el software libre tiene esa calidad es porque viola las patentes, que en algunos casos es de forma intencionada. Y más claro lo tiene aún en el tema de su uso, si quieren usar sus patentes, que paguen los royalties.”

Para Eben Moglen, abogado de la Free Software Foundation, el software es un algoritmo matemático y como tal no puede tener patente y aunque Microsoft posea estas patentes, no sirven para nada. Afortunadamente para esta fundación, la Corte Suprema de Estados Unidos nunca ha expresado ninguna ley sobre ello.

Como sea, nada de esto se puede comprobar hata que Microsoft muestre su código fuente, algo a lo que se han negado rotundamente. A mi me huele que los que copian son ellos, y para peor, lo hacen mal, sino usen OSX y compárenlo con Vista.
Ver más: Report: Microsoft says open source violates 235 patents

PHP5.2 y Json

Me entero por Sentido Web que PHP 5.2 “incluye dos funciones para JSON: json_encode() y json_decode(), la primera transforma datos de PHP en una estructura JSON y la segunda al revés, datos JSON en una matriz de PHP”.

Es una muy buena noticia pensando en lo engorroso que puede resultar a veces serializar datos en PHP para luego hacer un XML y sacarlos con un Ajax.Reques y volver a serializarlos.

Ajax

Uno de los temas que me ha tocado estudiar harto durante los últimos meses es AJAX. Debo confesar que al principio fue difícil. De partida nunca fui muy amigo de Javascript, pues, como muchos, pensaba que era un lenguaje de segunda categoría; además, y como si fuera poco, a duras penas me entendía con XML y no sabía nada de DOM.

Por eso, cuando me tocó implementar mi primera aplicación con Javascript y XML, no tuve más remedio que leerme Ajax in Action de Dave Crane, Eric Pascarello y Darren James. Pero sirvió de poco, porque no entendí mucho. Intenté entonces batírmelas con Prototype, pero me fue peor. Al final mi salvación vino de la mano de getElementById, del inspector DOM de Firefox y del nunca bien ponderado método de ensayo/error para corregir las fallas en Internet Explorer.

A pesar de que fue una solución poco elegante, me permitió aprender y entender cosas que de otra forma no hubiese podido. No diré que me he transformado en un experto, pero con el tiempo, con la excelente documentación de Prototype v1.5 y con la ayuda de unos ilustrativos post de Estado Beta he logrado hacer unas cuantas aplicaciones bastante complejas.

En fin, todo esto lo cuento porque pretendo comenzar a postear una serie de tips para aficionados y desarrolladores nóveles como yo.

That is!

Jazz

Todas las historias tienen su momento. Esta, por ejemplo, lleva demasiado tiempo entre mis borradores esperando a que me anime a escribirla que de tanto esperar se ha ido reescribiendo con líneas perdidas y medias notas sin destino. Yo, entre tanto, me he obsesionado con otros temas: música, json, clases abstractas, patrones de diseño, jazz, prototipos, drum and bass, memes y religiones varias…

Pero no quiero jugar más a Teseo… que la madeja se quede ahí hecha un nudo, que el Minotauro se coma la rosa o el rubí y que Ariadna se muera de soldedad en Naxos.

Continue reading