dompdf: convierte PDF a HTML

dompdf es una librería que permite convertir HTML a PDF, desarrollada en PHP5, leerá hojas de estilo externas, estilos en etiquetas y soporta la mayoría de los atributos HTML.
El tratamiento de PDF se hace mediante PDFLib, por lo que es necesaria la extension PDFLib de PECL, la cual mejora el rendimiento y reduce el gasto de memoria.
Admite la mayoría de las propiedades y selectores CSS2.1 y los atributos HTML 4.0. Además permite tablas complejas, imágenes PNG, GIF y JPEG, y enlaces, entre otras cosas.
Aún faltan algunos detalles como listas ordenadas, posicionamiento absoluto y relativo, y cuando el fichero tiene demasiado tamaño se toma un tiempo excesivo en generar el PDF.
dompdf
Vía / vinuthomas delicious

Crear y leer ficheros Excel desde PHP

Crear ficheros Excel suele ser algo necesario en algunos proyectos debido a la implantación de este formato de ficheros. Una lástima que no se usen formatos estándar (.ODS), pero mientras tanto deberemos usar librerías como PHP Excel 2007.
PHP Excel 2007 nos permite escribir y leer ficheros Excel mediante PHP, aportando además numerosas características como la representación en memoria de la hoja de cálculo, modificación de la información del fichero, fórmulas, unir celdas, protección mediante contraseña, estilos, saltos de línea, ancho automático de columnas, filtros y muchas características más.
PHP Excel 2007

myisamchk: comprobar y reparar tablas MYISAM en MySQL

Generalmente las tablas se vuelven corruptas cuando el servidor tiene un problema crítico y finaliza el servicio o cuando las tablas no se cierran correctamente. Siendo los ficheros de índices (.MYI) y los de datos (.MYD) los que están corruptos y los que hacen que no se sincronicen correctamente.

Normalmente se puede comprobar el estado y reparar una tabla mediante dos simples instrucciones MySQL:

CHECK TABLE tabla;
REPAIR TABLE tabla;

Pero esto no es siempre efectivo, conociéndose casos en el que no lo repara del todo o que dice que la reparación ha sido un éxito pero realmente no ha sido así. Por ello el mejor método para reparar una tabla corrupta es usar el comando de MySQL myisamchk, recomendando siempre parar el servidor corrupto para realizar la reparación.

myisamchk [opciones] ./data//.MYI

Aunque la manera más rápida de comprobar las tablas es con las opciones –silent y –fast, la mejor opción para una recuperación completa es –safe-recover, aunque lógicamente toma mucho tiempo.

Vía / Whatever….

links for 2007-09-11

10 razones para seguir estrategia Open Source

Actualmente algunas empresas son poco partidarias de utilizar herramientas open source a la hora de realizar sus proyectos. Aquí os paso algunas razones que nos pueden animar a hacerlo, aunque claro, esto es según gustos y habrá otras razones que invaliden las que se indican.

  • Disminuir la dependencia a vendedores de código propietario: esto suele ser debido a la necesidad de actualizar la versión del producto, esperando mejoras o nuevas funcionalidades, ocasionando en algunos casos un gasto de dinero y tiempo importante.
  • No hay necesidad de presupuestar el coste de mantenimiento de software y de personal encargado: el gasto que suponen las licencias de software y el salario de personal conocedor de esas herramientas suele ser bastante elevado, incrementando así los costes del proyecto y repercutiendo en los beneficios.
  • Acceso a más herramientas: se puede acceder a un casi ilimitado número de herramientas (desarrollo, testing, CMS, seguridad, …), sin necesidad de solicitar permiso para obtenerlo debido a su coste.
  • Pruébalo antes de comprarlo: aunque muchas de las herramientas propietarias si ofrecen versiones Trial o gratuitas para desarrollo, sí que es imposible a veces ver cómo funciona un producto sin tener que comprarlo antes.
  • Soporte por parte de una comunidad de usuarios: esto es algo que a las empresas les suele echar para atrás, el no tener un soporte oficial. Como desarrollador puedo asegurar que normalmente el soporte lo da Google y no el soporte oficial, del cual el 90% de las veces no se utiliza.
  • Acceso al código y la posibilidad de modificarlo según tus necesidades: algo bastante típico es tener que esperar a una nueva versión o tener que comprar una versión actualizada de un producto para conseguir una funcionalidad necesitada. Si dispones del código es posible que puedas modificarlo a tu gusto. Algo parecido hizo Google con MySQL.
  • Poder de negociación con vendedores de software propietario: con esta no estoy muy conforme, pero bueno, quizás nunca se me haya el caso, como dice, de poder obtener mejores condiciones de Microsoft si tienes Ubuntu instalado en 20 ordenadores como experiencia piloto.
  • No hay exceso de características inútiles: en los proyectos open source, las nuevas funcionalidades suelen venir dadas por las necesidades de los usuarios, no por las ideas de un departamento de desarrollo o marketing.
  • Más seguridad: algo que crea mucha controversia, pero estudios como el de Trend Micro muestra que el open source es más seguro.
  • Solución de errores y nuevas implementaciones con más rapidez: en algunos casos los errores se solucionan mucho antes incluso de que lo detecten los usuarios.

10 Reasons why you need an Open Source Strategy

Vía / OpenSourceCommunity.org

Crear ventanas tipo Netvibes con Prototype

Crear ventanas flotantes en HTML es una de las cosas más difíciles de realizar en una página web. En alguna ocasión hemos hablado de cómo realizar ventanas con HTML y Javascript.

En este caso se trata de una extensión para Prototype que con unas simples líneas de código seremos capaces de crear nuestras ventanas de forma rápida.

ventanas_prototype.png

Para usarlo primero nos deberemos crear la estructura HTML:

<div id="page">
<div id="widget_col_0"></div>
<div id="widget_col_1"></div>
<div id="widget_col_2"></div>
</div>

Con sus CSS:

#page {
margin: 10px auto;
}
#widget_col_0 {
float:left;
width: 30%;
}
#widget_col_1 {
width: 50%;
float:left;
}
#widget_col_2 {
float:left;
width: 20%;
}

Instanciar la clase:

var  portal = new Xilinus.Portal("#page div")

Y por último añadir el contenido:

portal.add(new Xilinus.Widget(), 0)
// O con título y contenido
portal.add(new Xilinus.Widget().setTitle("Widget Title").setContent("El texto que sea"), 1);

Prototype Portal Class

Vía / WebAppers

links for 2007-09-08

Nube de etiquetas mediante PHP

Buen tutorial sobre cómo hacer una nueve de etiquetas (tag cloud) mediante PHP. Explican paso a paso todo lo que hay que hacer para mostrar una lista de palabras como una nube de etiquetas.
El procedimiento es sencillo: primero será necesario un constructor, que será válido para PHP4 y PHP5. Luego habrá un método para añadir palabras y por último un método para mostrar la tag cloud.
Internamente las palabras se almacenan en un array asociativo, en el que la clave es la etiqueta y el valor el número de veces que se repite. Esto es un buen método pero debería existir la posibilidad de indicar la lista de palabras y el número de veces que se repite, porque de la forma actual, en el constructor, hay que enviar toda la lista de palabras, pudiendo ser esto no muy efectivo cuando se trate por ejemplo de un blog con gran número de posts y cada post con varias etiquetas.
Tag Cloud
Vía / PHPDeveloper.org