
Siempre fui reacio a utilizar frameworks de CSS, revise unos cuantos, probé y use otros, pero ninguno me convenció hasta que mi hermanito me comento sobre Bootstrap.
Bootstrap es un framework de CSS desarrollado por Twitter (sisi, esa cosa adictiva en la cual hacemos twits
), tiene un montón de features tanto de CSS como de Javascript los cuales ayudan muchísimo a generar templates, como por ejemplo:
Pero creo que lo que mas me llamo la atención es que utiliza LESS:
LESS extends CSS with dynamic behavior such as variables, mixins, operations and functions. LESS runs on both the client-side (Chrome, Safari, Firefox) and server-side, with Node.js and Rhino.
- lesscss.org
Gracias a LESS, podemos desde la página de descarga, configurar y modificar prácticamente todas las variables del framework, lo cual es genial para, por ejemplo, adecuarlo a los estilos/colores/identidad de una empresa.
Ya lo empece a usar en varios proyectos, uno de ellos es este mismo blog y la verdad que tuve una gran satisfacción al usarlo porque resulto fácil e intuitivo.
Update:15/05/2012
Hace una semanita comence un nuevo proyecto llamoado Plog que próximamente integrara el framework Fly que estoy desarrollando.
Plog es un sistema de loggin en PHP sencillo y fácil de usar en cualquier proyecto, a travez de distintos handlers permite que los logs de distintas formas:
Próximamente iré agregando nuevos handlers a los existentes.
Niveles de error
Plog consta de 4 niveles de error
Instalación
Para usarlo simplemente basta con descargar el proyecto de github.
Ejemplo
//se setean los handlers a utilizar
\plog\Plog::handler(
array(
'log' => \plog\handlers\File::set(static::$fileLog),
'syslog' => \plog\handlers\Syslog::set('intranet2'),
'stdout' => \plog\handlers\Stdout::set()
)
);
\plog\Plog::debug('Mensaje de Log', 'log');
\plog\Plog::info('Mensaje de Info', 'syslog');
\plog\Plog::warning('Mensaje de Warning', 'syslog');
\plog\Plog::error('Mensaje de Error', 'stdout');
Extender Plog
Extender Plog es muy sencillo, basta con crear un handler nuevo o pasar una función anónima al setear los handlers, por ejemplo:
\plog\Plog::handler(
array(
'myHandler' => function($msg) {
error_log($msg, 3, '/tmp/log');
};
)
);
\plog\Plog::debug('Mensaje de Log', 'myHandler');
Esta semana estuve buscando algún libro que explicara a usar una herramienta de pruebas de stress llamada Tsung, como era de esperarse no encontre, pero…. si encontre un libro sobre CouchDB que le dedica todo un capítulo a esta tool.
El libro se llama Scalling CouchDB y explica un poco como escalar CouchDB y como testearla con test de strees usando Tsung, lo cual a mi me viene al pelo ![]()
Ayer Mark Shuttleworth anunció en su blog que la versión 12.10 de Ubuntu se llamará Quantal Quetzal.
Según la wikipedia
“El Quetzal es un ave perteneciente a la familia Trogonidae, que se encuentra en las regiones tropicales de América, principalmente Mesoamérica. La palabra “quetzal” fue originalmente usada solamente para el Quetzal Resplandeciente, Pharomachrus mocinno, el famoso quetzal de cola larga de Centroamérica, el cual es el ave símbolo de la República de Guatemala. “
En un post anterior vimos como compilar distintas versiones de PHP en un mismo servidor, pero en esa ocasión no agregué soporte para las funciones criptográficas mcrypth.
Para poder usar estas funciones se debe compilar PHP agregando la opción –with-mcrypt al ajecutar .configure.
Algo a tener en cuenta es que se necesitan las librerias de mcrypth. Para instalaras en Ubuntu basta con:
sudo apt-get install libmcrypt4 libmcrypt-dev mcrypt

Todos los que usamos alguna vez algún sistema de versionado (cvs, subversion, mercurial, git, etc) hemos tenido que trabajar con tags.
Los tags puden ser de muy variada índole, generalmente los usamos para marcar hitos dentro del ciclo de vida de desarrollo, como puede ser una nueva release, salida a producción o si usamos sprint reviews para marcar que versión del código se reviso.
En Git los tags son de solo lectura (contrario a lo que pasa en Subversion) y existen tres tipos:
Tags anotados
Estos generan una copia exacta del estado del repositorio.
git tag -a v1.0 -m 'Release v1.0'
Este objeto se creara en .git/objects y creará una referencia en .git/refs/tags/v1.0 que trendrá el SHA-1 del tag.
Tags ligeros
No generan un objecto tag como los anteriores, solo crea una referencia en .git/refs/tags/v2.0 que tendra el SHA-1 del HEAD
git tag v2.0
Tags firmados
Los objetos tags pueden ser firmados usando GPG
git tag -s v3.0
Para signarle una clave hay que usar el parametro -u y para verificar hay que usar -v
Moviendose entre Tags
Git nos permite movernos entre los tags como si fueran ramas pero sin la posibilidad de modificarlos.
git checkout v2.0
Listar Tags
git tags -l
git checkout v2.0
Compartir Tags (GitHub por ejemplo)
# todas las etiquetas git push --tags #una etiequeta en particular git push origin v2.0
Visualizar el contenido de un Tag
git show v1.0
Fuentes relacionadas
http://www.genbetadev.com/sistemas-de-control-de-versiones/tags-con-git
http://elmurodelsaber.com/2011/12/git-tag/
http://progit.org/book/es/ch2-6.html