Tag Archives: php

Añade la potencia de PHP a tus CSS

Vía anieto2k descubro CssDispatcher, una biblioteca para manejar CSS sobre PHP que permite procesar múltiples hojas de estilo como plantillas PHP, unirlas, minimizarlas y servirlas dependiendo del navegador.

Mezclar las tecnologías de programación con el lenguaje de estilos CSS puede resultar interesante para grupos de trabajo en los que el diseñador tenga unos conocimientos básicos de programación, esta biblioteca es un claro ejemplo de como añadir potencia y comodidad a la hora de escribir, mantener y aumentar el rendimiento de las hojas de estilo.

Variables PHP en CSS

El uso de variables dentro de las CSS puede ayudarnos a realizar pequeñas modificaciones (cambios de colores o tamaños de texto) sin esfuerzo:

.paginacion { border: 1px solid <?=$rojo ?>; }
.paginacion a { color: <?=$rojo ?>; }

Hojas de estilo adaptadas al browser

Con CssDispatcher definir CSS específicas para el navegador es tan fácil como añadir un segundo parámetro en el constructor de la clase:

$styles = new CssDispatcher;
// Este CSS solo se enviará cuando sea Internet Explorer 6
$styles->add(new Css('ie-hacks.css.php', Css::UA_IE6));
$styles->add(new Css('general.css.php'));
$styles->render();

Puedes especificar las siguientes familias de navegadores: Internet Explorer 6, Internet Explorer > 6 , Gecko y WebKit. También puedes utilizar los sinónimos UA_MOZILLA, UA_FIREFOX, UA_SAFARI y UA_CHROME respectivamente.

Más info

Generando passwords aleatorios en PHP

Sencillo código para generar strings aleatorios en PHP, útil por ejemplo para asignar un password a un usuarios que acaba de registrarse en nuestra web.


$str = str_shuffle('abcefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890@#%$*');
$pass = substr($str,0,$length)

Como se aprecia en el código, el proceso es tan sencillo como ordenar aleatoriamente una cadena de caracteres alfanuméricos para después tomar una porción del string generado.

Barra de progreso de Uploads en PHP sin Flash

Hace ya tiempo que conozco/uso APC, una librería para PHP cuyo propósito es acelerar la ejecución y optimizar el consumo de recursos de nuestros scripts mediante el cacheo de opcodes.

Para mi sorpresa, hoy descubro que APC cuenta además con algunos extras como la directiva rfc1867 (compatible con php 5.2 y superior) que nos permite crear barras de progreso para uploads, sin hacer uso de flash, como se muestra en el siguiente video.


Read more

Detectar petición ajax en PHP

Muchos programadores acostumbran a usar el mismo fichero PHP para peticiones estándar y peticiones ajax. El uso de un único script facilita el mantenimiento del código simplificando cualquier modificación que realicemos en un futuro además de aportar ventajas en el cacheo.

Normalmente se añade un parámetro a GET o POST para identificar el tipo de llamada, pero si hacemos uso de algún framework javascript podemos ahorrárnoslo y detectar la llamada así:


 if( !empty($_SERVER['HTTP_X_REQUESTED_WITH'])
     && strtolower($_SERVER['HTTP_X_REQUESTED_WITH'])
     == 'xmlhttprequest' ) {

      /* petición ajax */

 } else {

      /* no es una petición ajax.... */
 }

La variable HTTP_X_REQUESTED_WITH es totalmente dependiente de la librería javascript utilizada pero prácticamente todas (Prototype, jQuery, Mootools,YUI…) la envían.

Si por el contrario realizais las llamadas ajax “a mano” podéis añadir la cabecera necesaria de la siguiente manera:


xmlHttpRequest.setRequestHeader('X-Requested-With', 'XMLHttpRequest');

Preparando el terreno para php 5.3

PHP 5.3 vio la luz hará un mes y ya comentamos por aquí algunas de sus novedades. Lo más destacable, mejoras muy importantes de rendimiento (15% para wordpress, 20% en drupal y hasta un 30% en otras), un driver nativo para mysql y un puñado de nuevas funciones.

Personalmente no tengo intención de migrar a la nueva versión este año (a menos que algún proyecto lo requiera por razones de fuerza mayor, cosa que dudo). De todas formas creo que es bueno ir conociendo las diferencias / incompatibilidades entre 5.X y 5.3 para evitarlas en las aplicaciones que escriba a partir de ahora, y quitarme así, dolores de cabeza si algún día toca migrar una aplicación. Recordemos que 5.3 es un acercamiento a lo que será PHP 6, así que antes o después nos va a tocar pegarnos con ello.

A continuación tenéis un pequeño listado de problemas que podemos encontrarnos al ejecutar nuestro código sobre la última versión del lenguaje.

Read more

Lo mejor de la semana en la red

En unas horas salgo para Barcelona y estaré ausente al menos un par de días. Aquí os dejo un popurrí de algunos artículos interesantes que me he ido encontrando por la red estos días para que no os aburráis ;) .

La productividad de los ingenieros informáticos ha subido un 200%-400% en 10 años
A causa del software de código abierto, más herramientas de programación, bibliotecas comunes, un acceso más fácil a la información, la mejora de la educación y otros factores

Prueba Android en tu ordenador
Existe un LiveCD que  no ocupa ni doscientos megas, ideal para descargarlo  y echarle un vistazo al SO para moviles de Google.

Tutorial jQuery para crear un timeline arrastrable
Se explica como desplazar horizontalmente mediante arrastre (clickar, arrastrar, soltar) un bloque de contenido. Ver demo

Read more

Lo mejor de la semana en la red

Prueba de concepto para Gnome 3.0

Fruto de el brainstorm que se está dando entre los desarrolladores de Gnome llega una propuesta de lo más novedosa.

PHP 5.3.0 el próximo 30 de Junio
Incluye importantísimas novedades, como por ejemplo: Namespaces (espacios de nombre), funciones anónimas (lambda y closures), driver nativo de MySQL, soporte mejorado para Windows, archivos Phar (similares a los JAR de Java) y mejoras de rendimiento de hasta un 30%.

VirtualBox 3.0 Beta 2
VirtualBox 3.0 será una grandísima versión que traerá características como multiprocesamiento simétrico (SMP), aceleración OpenGL 2.0 y soporte experimental de Direct3D 8 y 9.


Read more

webtips 04: Optimizar la carga de una página web 2/2

Cuarta entrega de webtips, segunda parte. Seguimos con los consejos para agilizar la carga de nuestra web de la mano de Yslow.

En el vídeo se me olvida comentar la subpestaña tools de Yslow. En la misma encontrareis diferentes herramientas listas para usar (hace uso de páginas externas, pero eso es lo de menos). Aquí tenéis el listado de utilidades y sus respectivas descripciones:

Read more

webtips 04: Optimizar la carga de una página web 1/2

Cuarta entrega de webtips. En esta ocasión vamos a ver algunos consejos para agilizar la carga de nuestro proyecto web, tanto del lado de el servidor como de el cliente.

Aquí tenéis la primera parte de el vídeo, 24 minutos. Mañana pondré la segunda, 20 minutos más.

El audio “rasca” un poco, definitivamente tengo que hacerme con un micrófono nuevo que con este no me las arreglo. Tenéis los enlaces a las páginas vistas en el tutorial así como la descarga del vídeo completo en “leer más/read more”.


Read more

lo mejor de la semana en la red

Esta semana los grandes titulares se los han repartido Microsoft y Google. Microsoft lanzaba bing y Google anunciaba el desarrollo de wave, de todas formas creo que voy a dejar estas joyas para un post aparte porque tienen miga.

Al margen de wave, google hacia algunos movimientos que probablemente marquen la estrategia a futuro de esta empresa en lo relativo a su navegador Chrome. La empresa esta empeñada en hacerse con un pellizco de el mercado, los anuncios que encontramos en el buscador o youtube son sin duda la campaña de marketing más agresiva realizada hasta ahora por la compañía, al menos que yo recuerde.

Y no queda ahí la cosa, en estados unidos lanzaron una campaña televisiva compuesta por 11 anuncios que también podemos ver en youtube. Algunos de estos anuncios hacen sutiles referencias a firefox y queda claro que la luna de miel vivida entre mozilla y google murió con la llegada de Chrome.

Recordemos que google ha sido durante años quien más fuerte a apoyado a mozilla en su lucha contra internet explorer, convirtiéndose en su principal fuente de ingresos a cambio de acuerdos puntuales (ser el buscador por defecto, etc). El contrato sigue aún vigente y no caduca hasta 2011, pero ya no es lo que era…

Microsoft por su parte pone la fecha oficial para el lanzamiento de windows 7
El 22 de octubre de este año llega la nueva versión de el sistema operativo más usado del mundo en el que empresa (y usuarios) tienen puestas grandes esperanzas después de la poca aceptación de vista.


Read more

lo mejor de la semana en la red

Mininova empieza a aplicar filtros a los torrents
El miedo a ser denunciado tras el juicio a piratebay crece entre los distintos trackers.

Mientras tanto el fundador de Pirate Bay nos vuelve a sorprender sacándose de la manga el ataque DDo$.
Ha pedido a la comunidad que le ayuden a pagar los $30 millones de multa que le impusieron enviando cantidades de 13 céntimos USD a la firma de abogados encargada de cobrar la multa. La firma tendrá que pagar al banco un recargo por cada transacción, lo que representará una perdida de dinero mayor que la cantidad recaudada. Qué grande eres Svartholm, qué grande :)

16 Tips SEO de un empleado de Yahoo!
Interesante articulo para aquellos que tengáis vuestra propia web

Obtener el uso horario mediante la latitud y la longitud en PHP
Hace uso de la API de google maps y geonames.org. Ofrece además el código PHP y  javascript (Mootools).

Firefox 3.6 podría abandonar a Windows 2000
Microsoft ya no vende Windows 2000 y su soporte oficial terminará en Julio del próximo año. De abandonarlo se reduciría la complejidad del código de Firefox

Cubos 3D usando CSS Transformations
La futura especificación CSS3 promete y mucho. Aquí tenéis un pequeño adelanto, que por el momento únicamente funciona sobre Safari, Chrome y Firefox 3.5

lo mejor de la semana en la red

7 diferencias javascript entre firefox e internet explorer
Interesante referencia para aquellos que no hagan uso de ningún framework js

Aplicaciones de escritorio en php
Introducción a php-gtk

Crea tus propios diseños css desde 0
960 Grid System, photoshop y un poco de paciencia

Presentaciones de la ultima MySql Conference & Expo 2009
Optimizaciones, clusters, mejoras de rendimiento, etc

Mootools file manager
Curradísimo script para mootools que permite subir,ver y modificar tus ficheros vía browser

Linux llega al 1% de cuota de mercado y Mac OS roza el 10%
Informe del mes de abril de NetApplications

El Partido Pirata sueco en el Parlamento Europeo
Un sondeo revela que obtendría los votos necesarios para contar con un escaño en el Parlamento Europeo

Blogs interesantes sobre seguridad
Recopilación de los mejores blogs de dicha temática (phising, bugs…)