Librería PHP para OpenId

OpenId es un sistema de identificación descentralizado que últimamente está dando mucho de que hablar, algunas veces para bien, y otras no tanto. Aún así, si necesitamos utilizar OpenId en nuestra aplicación, necesitaremos la librería PHP OpenID Library, la cual tiene las siguientes características:

  • Funciona desde PHP 4.3 hasta PHP 5.2.4
  • Licencia Apache Software License
  • Bien documentada, con ejemplos y casos de test
  • Usa CURL pero no depende de esta extensión
  • Incluye módulos para Attribute Exchange, Simple Registration y PAPE
  • Soporta i-names
  • Soporta los protocolos OpenID de forma transparente

PHP OpenID Library

Monolith: consola DBA para MySQL

Monolith es una consola para DBAs de MySQL que programa y automatiza backups para MySQL y monitoriza un número ilimitado de servidores para medir y mejorar su rendimiento. Además genera gráficas para ser utilizadas para informes.
monolith.png
Entre las características que ofrece nos encontramos con la posibilidad de crear enviar informes locales de backups a la consola de monolith, múltiples gráficas, informes HTML, exportación de datos, integración con VisualMining, backups remotos, envío de informes por email.
Monolith – MySQL DBA Console 1.4 Released

Cargar contenido mediante el scroll usando jQuery

Un sencillo script realizado con jQuery que nos permite cargar contenido cuando llegamos al final del contenido mediante el scroll. Algo parecido os presenté hace ya tiempo, pero sin uso de librerías. En este caso, jQuery reduce el código para implementarlo.
Es importante recordar que el contenido importante no se debería cargar mediante Ajax, y si se hace así es necesario ofrecer una alternativa clásica.
Load Content While Scrolling With jQuery
Vía / Ajaxline

Benchmarks de PHP

The PHP Benchmark es un sitio que realiza tests de prueba para ver rendimientos de funciones y así programar de forma más eficiente. La página está bastante completa, ya que también ofrece el código de las funciones que ha ejecutado.

Gracias a las pruebas podemos darnos cuenta de:

  • Realizar un foreach es siempre más rápido, y si no recuperamos la clave del array mejor aún.
  • Un for es más rápido si no calculamos previamente en una variable el tamaño del array que recorremos, y que sizeof es más rapido que count.
  • Cuando vamos a asignar el valor de una posición de un array a una variable para tratar con ella, es conveniente hacerlo por referencia ($alias = &$aSingleDimArray[$i]).
  • No es más rápido crear un objeto como referencia ($obj =& new SomeClass();).
  • if es más rápido que switch/case, y ligeramente más rápido es usar == que ===.
  • Parece ser que el uso de comilla simple o doble en las últimas versiones se ha mejorado y no existe apenas diferencia.

The PHP Benchmark

Consejos para desarrollar cumpliendo estándares

Buenos consejos a tener en cuenta cuando se trata de desarrollar cumpliendo estándares web.

  • Menos es más, no uses mas código del necesario
  • No uses CSS o Javascript dentro del HTML, ya sea en las etiquetas como en el head.
  • Usa código semántico, las cabeceras mediante etiquetas h1, h2, …, resaltar mediante strong, …
  • No uses meta etiquetas redundantes
  • Usa microformatos para hacer tu sitio legible
  • Usa tablas solo para mostrar tablas
  • Usa rel=”external” para enlaces externos, no uses target=”_blank”, hazo mediante Javascript
  • No uses Javascript mediante enlaces
  • No muestres contenido importante mediante Flash o Ajax, siempre mediante HTML plano

10 Coding Guidelines for Perfect Findability and Web Standards

NitobiBug: debug para Javascript

NitobiBug es un script similar a Firebug que nos permite realizar debugs en nuestros scripts. Permite mostrar una ventana emergente con el contenido de objetos (diferenciando entre tipos), elementos DOM o simplemente mensajes.

nitobibug.png

Usarlo es tan sencillo como esto:

var myObject = {a:234523, something:'else', mylist:[32423,4556,'sdfs']}; nitobi.Debug.log(myObject);

Y para instalarlo solo hay que añadir el archivo js.

Una alternativa a Firebug, sobre todo para IE, pero me sigo quedando con Firebug.

NitobiBug

Uso excesivo de capas y estilos en CSS

Un buen artículo en el que nos comenta sobre el uso excesivo de capas y de clases. Sobre todo de DIVs, muchas veces se encierra en una capa unas etiquetas para darles formato cuando se puede evitar la capa contenedora por tener solamente un elemento hijo en su interior:

<div id="header>
<img src="logo.jpg" alt="My site name" />
</div>

Se puede sustituir por:

<h1>My site name</h1>

con estos estilos

h1 {
background:url(logo.jpg);
text-indent:-9999px; /*(that will remove the text from the page)*/
width:800px;
height:150px;
}

¿Por qué evitar estos usos incorrectos?

  • No es semántico: solo están puestos allí para maquetar.
  • No es bueno para SEO: los buscadores hacen uso de las etiquetas de cabecera para obtener datos significativos.
  • Sobran

El error sobre el uso excesivo de clases es cuando en vez de usar estilos anidados, repetimos el estilo en varias etiquetas:

<div id="menu">
<span class="menu_item">Menu Item</span>
<span class="menu_item">Menu Item</span>
<span class="menu_item">Menu Item</span>
<span class="menu_item">Menu Item</span>
</div>

CSS Diseases: Divitis & Classitis

Vía / CSS Globe

Manual de instalación y configuración de Suhosin

Ya hace un año hablé de Suhosin, un sistema avanzado diseñado para proteger los servidores y a los usuarios de defectos conocidos y desconocidos del core de PHP y de las aplicaciones realizadas con PHP.
Ahora, en el relanzado PHPFreaks nos muestran como realizar la instalación en Debian y CentOS, y cómo configurarlo.
Por cierto, curioso que un manual tan corto te lo dividan en 4 páginas, será para ganar visitas…
Hardening PHP with Suhosin

Nuevo agregador social de Bitacoras.com

Hoy en Bitacoras.com estrenamos un agregador social. ¿Qué es eso?:

  • la posibilidad de evaluar las anotaciones registradas en Bitacoras.com mediante votos
  • conocer qué es lo más importante que se publica en la blogosfera
  • poder promocionar tus entradas
  • comentar los post de otros bloggers
  • añadir un botón para votar en tu propio blog

agregador.png

Algunos dirán que ya está Digg o Menéame (o DZone para temas de programación), y que otros parecidos no han triunfado. Está claro que le idea de Digg, a parte de buena, parece ser el futuro de la web2.0, ya que la participación de los usuarios es esencial. En Bitacoras.com nos diferenciamos un poco de estos dos servicios porque la gente no añade anotaciones nuevas, se añaden mediante los pings de los blogs y, o la votas o no la votas. A parte, el que un blog te referencie te proporciona votos directamente. Y como en el resto de Bitacoras.com, solo nos centramos en blogs, en los otros servicios las URLs pueden ser de páginas de cualquier estilo (blogs, medios, paginas corporativas, …).

Metodología

El agregador social de Bitacoras.com tiene en cuenta tanto los enlaces recibidos por un post como los votos emitidos por los usuarios. Su metodología puede resumirse básicamente del siguiente modo:

La suma total de puntos de un post viene determinada por

Enlaces desde blogs

Nuestro sistema filtra las anotaciones (posts) que los usuarios nos envían mediante el ping, en busca de enlaces hacia otros posts presentes en Bitacoras.com

Cantidad y calidad. Cuando detectamos un enlace, otorgamos una puntuación al post enlazado en función de la posición en el TOP Bitacoras.com del blog desde el que se ha emitido dicho enlace. Cada enlace detectado se suma a los anteriores con sus puntos correspondientes.

Votos de los usuarios

Cualquier usuario anónimo puede valorar los posts de nuestro sistema; su voto tiene por valor “1 punto”. Para los usuarios registrados contamos con un sistema de tramos mediante el que un voto puede oscilar entre “1 punto” y “5 puntos” en función de su posición en el Top Usuarios.

Si estás registrado en Bitacoras.com, para que tus votos no sean interpretados como los de un usuario anónimo, debes estar logueado en el sistema.

Restricciones del sistema

  • El usuario sólo puede realizar un voto por anotación.
  • Un usuario anónimo puede enviar un máximo de 10 votos por hora
  • Sólo tenemos en cuenta los 3 primeros enlaces detectados hacia un post enviados desde blogs de un mismo usuario. El cuarto enlace y sucesivos aparecerán en Referencias pero no otorgan puntos en el sistema.

Nota: Tanto el Top Bitacoras.com (blogs) como el Top Usuarios están sometidos a constante revisión por parte del equipo gracias a la colaboración de los propios usuarios mediante sus sugerencias, por lo que los valores asignados a blogs y usuarios pueden variar sensiblemente con el objeto de mantener un agregador fiable y útil.