Habari: CMS de blogs

Harabi es un CMS para la creación de blogs del que ya hace tiempo se habla y del que oí por primera vez gracias a Daniel Mota. Andrés Nieto ya hablaba de él hace tiempo, y en Yukei.net también contaban la historia de este CMS y su origen (ligado al desarrollo de WordPress).
No soy fan de WordPress, como aplicación para usuario está muy bien, aunque las últimas versiones han dado unos pasitos para atrás, pero a nivel desarrollador, tengo que decir que WordPress no me gusta nada, ya sea a nivel de themes como a nivel de plugins. Por eso, el enterarme de cómo pasar de WordPress a Habari, ha hecho que me replantee usarlo como futuro CMS para SentidoWeb, y así poder trastear un poco.
Vía / PHPDeveloper.org

Evento Blog España 2008

Los amigos de Evento Blog España nos informan que este año habrá nueva edición: EBE08. El programa ya está disponible y en él encontraremos conferencias, mesas redondas, presentación de proyectos y ofertas de ocio.

Los participantes aún son aún un misterio que irán diciendo poco a poco, pero al menos sabemos que habrá ciertas novedades:

Latinoamérica

Evento Blog España refuerza su vínculo con la comunidad hispana mediante un encuentro en el que participarán blogueros y/o emprendedores de varios países iberoamericanos. Estas personas ofrecerán una visión distinta, pero al mismo tiempo muy cercana, de cómo se vive el desarrollo actual de internet en esa zona del mundo. La red escrita en español es un asunto de enorme trascendencia estratégica y económica.

Conexión EBE

Otra de las novedades se denomina ‘Conexión EBE’, una oportunidad dentro de las jornadas para que los participantes que lo deseen, se conecten y naveguen. Esto ocurrirá a partir de las 22:00 horas del viernes, justo al finalizar la programación, momento en el que la sala principal de EBE seguirá abierta para que, quien lo decida, se quede conectado a la red hasta altas hora de la madrugada. Pero no sólo se navegará a toda velocidad, la sesión contará también con actuaciones y otro tipo de sorpresas para hacer más entretenida la noche-madrugada de viernes.

Sala paralela de Networking

EBE también dispondrá con un espacio para el networking y el establecimiento de contactos profesionales. Aunque siempre se ha hecho de una manera natural y espontánea, en esta ocasión se va a reservar un lugar alternativo para que las personas que quieran algo más de tranquilidad puedan establecer contactos y relaciones de tipo profesional y de negocio. Esta novedad viene a reforzar la línea de apoyo a las nuevas propuestas emprendedoras que desde el comienzo, y este año por supuesto también, se han concentrado en la sesión Emprendedores y proyectos, en la que se dan a conocer iniciativas novedosas de emprendedores y empresas.

Toma la palabra

‘Toma la palabra’ es otra de las nuevas aportaciones de la presente edición. Como en la peculiar tradición londinense del Speakers´Corner de Hyde Park, el público asistente a EBE tendrá la oportunidad de dirigirse a quien le quiera oír. Aprovechando los momentos de los cafés, los oradores podrán expresar su punto de vista sobre la cuestión que entiendan oportuna.

EBE 08. Donde hay que estar

Oferta de trabajo para C++ y UNIX

Me pasan esta oferta de trabajo, para aquellos que vivan en Madrid. La empresa es buena y el entorno de trabajo también.

Se busca gente con experiencia demostrable en C++ y en entornos UNIX con alto nivel de inglés para trabajar con una gran consultora en proyectos con entidades financieras.
Se necesitan personas con perfiles de analista funcional, analista orgánico o analista programador. Los que estéis interesados, usad el formulario de contacto para describir brevemente vuestra experiencia e, importante, dejad una dirección de correo donde poder contactar.

| |

Menú radial mediante XHTML

Buen tutorial que nos explica cómo realizar un menú radial, es decir, un menú en el que las opciones se sitúan alrededor de un punto.

menu_radial.png

El tutorial nos indica cómo crear la estructura XHTML, los estilos, y el código Javascript para que funcione el menú.

Siendo algo puristas, no me gusta el uso del XHTML y el de los estilos, incluso podría sobrar Javascript. El código XHTML no es semántico. Aúnque claro, quizás lo haya hecho porque la solución que os paso ahora no sirve para IE6.

menu_radial2.png

El HTML sería el siguiente:

<ul>
<li><a href="1.html">1</a></li>
<li><a href="2.html">2</a></li>
<li><a href="3.html">3</a></li>
<li><a href="4.html">4</a></li>
</ul>

Y los estilos:

ul {
width: 150px;
height: 150px;
display: block;
padding: 0px;
margin: 0px;
}
li {
width: 48px;
height: 48px;
display: block;
border: 1px solid #008585;
background: #24B8B8;
margin: 0px;
padding: 0px;
float: left;
text-align: center;
}
li + li + li {
margin-left: 50px;
}
li:first-child {
margin: 0px 50px;
}
a {
font-size: 250%;
font-family: Arial;
text-decoration: none;
color: #DEDED2;
}

Javascript Tutorial – Radial Menus Part 1

Guía para el debug de aplicaciones PHP

La gente de PHP Freaks nos ofrece una completa guía para iniciarse en el debug de aplicaciones PHP.
Empieza indicándonos cómo permitir los logs de error, ya sea mediante código o mediante la modificación del php.ini, en caso de que sean errores sintáxicos.
Después nos explica algunos de los errores más comunes que solemos comenter y los diferentes mensajes de error que nos llegan (fatal errors, warnings y notices), el modo de reportar los diferentes errores y algunos ejemplos.
Se trata de una guía básica, pero para quienes empiecen en esto, les va a venir muy bien. Recordad que un debug es importante y un gestor de erorres debe estar en cada aplicación.

Debugging: A Beginner’s guide

|

Script PHP para sincronizar estructuras de BD MySQL

Interesante script que permite dados dos estructuras del MySQL, obtenidas por ejemplo usando un mysqldump, ver que diferencias hay entre ambos y devuelve las queries necesarias para igualar las dos estrucuras.

Por ejemplo, si tenemos la estructura siguiente:

CREATE TABLE IF NOT EXISTS `archive` (
`id` int(11) NOT NULL auto_increment,
`topFile` varchar(255) NOT NULL default '',
`msgId` int(11) NOT NULL default '0',
`time` timestamp NOT NULL default CURRENT_TIMESTAMP,
`topTpl` varchar(255) NOT NULL default '',
`file` varchar(255) NOT NULL default '',
`template` varchar(255) NOT NULL default '',
`instanceKey` varchar(255) NOT NULL default '',
`orderby` varchar(25) NOT NULL default '',
PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=10256 ;

Y este otro:

CREATE TABLE IF NOT EXISTS `archive` (
`id` int(11) NOT NULL auto_increment,
`topFile` varchar(255) NOT NULL default '',
`msgId` int(11) NOT NULL default '0',
`time` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
`topTpl` varchar(255) NOT NULL default '',
`file` varchar(255) NOT NULL default '',
`template` varchar(255) NOT NULL default '',
`instanceKey` varchar(255) NOT NULL default '',
`encoding` varchar(50) NOT NULL default '',
`orderby` varchar(255) NOT NULL default '',
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=10256 ;

Nos devolvería las siguientes sentencias:

ALTER TABLE `archive` ADD `encoding` varchar(50) NOT NULL;
ALTER TABLE `archive` MODIFY `orderby` varchar(255) NOT NULL;
ALTER TABLE `archive` MODIFY `time` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP;
ALTER TABLE `archive` DROP PRIMARY KEY;

Un script bastante útil cuando, debido al despiste, tenemos diferencias entre la base de datos de desarrollo y la de producción y no sabemos qué cambios hemos realizado.

Database structure synchronizer

Guía de estilos CSS para e-mails

Extensa guía de propiedades CSS que permiten los clientes de correo a la hora de presentar los emails en formato HTML.
El trabajo que han realizado es impresionante y va siendo actualizado cada cierto tiempo. Nos muestra las propiedades CSS y si se ven el los clientes de correo de escritorio o los clientes web.
emailcss.png
CSS support in email clients
Vía / WebAppers

Usar Akismet en cualquier lugar con PHP

Librería para trabajar con Akismet en cualquier lugar usando PHP. Su uso es muy sencillo y nos permite identificar comentarios como spam.

Tiene 3 funciones básicas en modo estático:

// Comprueba si un comentario es spam
aksimet_check( $vars )
// Re-clasifica un comentario como spam
aksimet_spam( $vars )
// Re-clasifica un comentario como NO spam
aksimet_ham( $vars )

Dentro de la variable $vars se puede indicar: IP del usuario, User Agent, contenido del comentario, referrer, permaling, tipo de comentario, autor del comentario, email del autor del comentario y url del autor del comentario.

Quizás se pudiera usar para saber si una IP es spam o no en cualquier otro tipo de aplicaciones que no estén dirigidas a blogs.

Akismet para PHP

Vía / AskApache

ntop: monitorización del uso de la red

ntop es una herramienta que permite medir el uso de la red, funciona tanto en Unix como en Windows y mediante navegación web podemos ver la información de tráfico y obtener un volcado del estado de la red.
ntop.png
Ofrece configuración y administración limitada vía web y poco consumo de memoria y CPU.
ntop

Flashing de elementos con Mootools

Una librería para MooTools que permite realizar flash en los elementos. Permite indicar el color de origen, final, el número de repeticiones y el tiempo del efecto y la posibilidad de incluir propiedades al elemento (por ejemplo backgroud-color).

Su uso es sencillo y nos ofrece ejemplos de cómo utilizarlo:

/* flash on click */
$('flash-link').addEvent('click', function () {
$('flash-me').flash('#fff','#fffea1',5,'background-color',500);
});
/* flash on ajax complete */
$('flash-link-ajax').addEvent('click', function () {
//make the ajax call
var req = new Request({
method: 'get',
url: 'element-flashing.php',
data: { 'do' : '1' },
onRequest: function() {  },
onComplete: function(response) {
$('flash-me-ajax').set('text', response).flash('#fff','#fffea1',5,'background-color',500);
}
}).send();
});
/* flash on scroll completion */
$('flash-link-scroll').addEvent('click', function() {
var scroller = new Fx.Scroll(window, {
onComplete: function() {
$('scroll-to-me').flash('#fff','#fffea1',10);
}
}).toElement('scroll-to-me');
});

Eso sí, no olvidar que no hay que abusar de este efecto.

MooTools Gone Wild: Element Flashing

Vía / CSS Globe