Pure: el hermoso y minúsculo framework CSS de Yahoo

Pure: CSS Framework

Pure, es un minúsculo framework desarrollado por Yahoo (Sólo 5.7 Kb minificado y gzipeado), que permite desarrollar sitios web responsivos, mobiles o cualquier cosa que se te ocurra.

Para usarlo rápidamente sólo agrega la siguiente línea de código a tu sitio:

HTML:
<link rel="stylesheet" href="http://yui.yahooapis.com/pure/0.1.0/pure-min.css">
 

También se pueden usar submódulos entre los cuales están

  • Base 1.2kb
  • Grids 0.7kb
  • Forms 1.4kb
  • Buttons 0.8kb
  • Tables 0.6kb
  • Menus 1kb

Cada uno de estos fácilmente de utilizar.

Pure usa normalize.css y te permite personalizar colores con su propio Skin Builder o extender su uso combinándolo con Bootstrap u otros. Si quieres empezar hoy mismo, tienes algunos hermosos layouts de ejemplo.

Pure | Repositorio en Github.

Diez años de WordPress

Ya han pasado 10 años desde que se anunció la primera versión de WordPress.

Wordpress Logo

WordPress fue distribuida inicialmente con una licencia GPL (ahora GPLv2) y recuerdo que gracias al core de WordPress, Alex y yo pudimos crear algunas aplicaciones web hace muchos años.

Ahora tenemos la versión 3.5.1 y miles de miles de plugins con los que se pueden crear sitios webs y blogs fácilmente.

Este blog empezó con WordPress y continúa gracias al mantenimiento de Alex y hay millones de sitios que también lo siguen usando.

Feliz día y gracias WordPress por estos buenos años y gracias por hacernos saber que Code is poetry.

Pfff

Pfff es un conjunto de utilidades desarrolladas por Facebook y que permiten realizar análisis estático, análisis dinámico, refactoring y otras cosas más. Fue desarrollado principalmente para PHP, pero tambien incluye soporte para otros lenguajes. Sin duda algo que se puede usar para reducir el número de posibles errores.

Cuidado al utilizar unserialize() en PHP

Azares de la vida me hacen trabajar nuevamente con PHP a tiempo completo. Al igual que hace algunos años atrás, todavía existen algunas características de este lenguaje que me sorprenden. En este caso, se trata la función unserialize(). En la documentación, existe la siguiente advertencia.
No proporcione datos no fiables provenientes del usuario a unserialize(). Revertir la serialización puede resultar en que haya código que se cargue y ejecute debido a la instanciación y autocarga de objetos, y un usuario malicioso podría ser capaz de explotar esto. Se debe utilizar un formato de intercambio de datos seguro y estándar, como JSON (a través de json_decode() y json_encode()) si es necesario pasar datos serializados al usuario.
Por ejemplo, si en algún lugar de una aplicación existe la siguiente clase.
php:

<?php
class Foo {
  private $tmp_file;
  public function __construct() {
    $this->tmp_file = tempnam( '/tmp', 'foo' );
  }
  public function doSomething() {
    // ...
  }
  public function __destruct() {
    @unlink( $this->tmp_file );
  }
 
El riesgo de utilizar unserialize() con datos que provienen de fuentes externas, ejemplo unserialize( $_GET['foo'] ), permitiría a un atacante eliminar cualquier archivo al que el servidor web tenga acceso (de escritura). Usando sólo código PHP no hay muchas opciones para protegerse de ataques si uno está obligado a usar ésta función. Espero que algún día la siguiente extensión sea incluída en la versión oficial de PHP: https://wiki.php.net/rfc/secure_unserialize. La moraleja de la historia es leer la documentación y escoger con cuidado los formatos que uno usa para este tipo de escenarios.