Sep 17
GNU/Linux
Vamos ha realizar un análisis crítico de este vídeo de Eric Higgins, webmaster de Google. En el vídeo nos cuenta alguno de sus trucos para acelerar sus scripts en php:



El primero de los trucos es emplear comillas simples en lugar de comillas dobles. Las comillas dobles hace que la cadena interprete un determinado número de secuencias de escape:

\n linefeed (LF or 0x0A (10) en ASCII)
\r retorno de carro (CR or 0x0D (13) en ASCII)
\t tabulación horizontal (HT or 0x09 (9) in ASCII)
\v tabulación vertical tab (VT or 0x0B (11) in ASCII) (since PHP 5.2.5)
\f form feed (FF or 0x0C (12) in ASCII) (since PHP 5.2.5)
\\ barra invertida
\$ signo de dolar
\" comillas dobles
\[0-7]{1,3} carácter en notación octal
\x[0-9A-Fa-f]{1,2} carácter en notación hexadecimal

Además de, por supuesto, expandir las variables que aparezcan en las cadenas.

En el caso de las comillas simples las únicas secuencias de escape reconocidas son estas dos:

\' comillas simples
\\ barra invertida

Además de no expandir las variables en la cadena. Por todo ello es lógico pensar que una cadena con comillas simples será más rápida de procesar que una con comillas dobles, veámoslo con un código de ejemplo que después probaremos sin emplear ningún acelerador de php tipo APC o XCache:

Continua leyendo "Trucos para acelerar php"

Publicado por Abraham Covelo

Aug 23
GNU/Linux Existen diversas librerías javascript disponibles para utilizar en tus proyectos web sin necesidad de empezar desde cero. Por nombrar algunas de las más extendidas: jquery, MooTools, prototype, script.aculo.us, YUI tools o Dojo. Existen muchas más; unas cuantas búsquedas por google te traerán listados más amplios que este. Sin embargo estas son quizás las más recomendables o las que quizás necesites conocer para hacerte una buena idea de las opciones que tienes disponibles.

En este artículo comentaré la filosofía y las características principales de jQuery. No entraré a hacer una comparativa entre las distintas librerías del tipo: jQuery vs prototype vs YUI etc, etc, etc. Sólo indicar que aunque muchas tengan el pomposo nombre de framework, yo no se lo voy a atribuir. Para mi un framework es un concepto más amplio que involucra desde el desarrollo del software en si pasando por la gestión del versionado de su código, los procesos asociados a su desarrollo (gestión de incidencias, subidas a producción) y llegando hasta el control de calidad (test unitarios y funcionales), incluyendo las herramientas utilizadas para llevar a cabo todo esto, editores de código, gestores de workflow, etc. Un framework debería tener, incluir o al menos tener en mente todas o varias de estas características.

Bueno volviendo a jQuery empezaré comenzando por una pequeña característica que permite emplear esta librería con cualquier otra. O sea que si tienes dudas entre jQuery y YUI, por ejmplo, ten en cuenta que puedes emplear las dos pues jQuery ya ha pensado en esto. Lo explico: jQuery emplea su propio namespace para evitar colisionar con otras librerías, el nombre de este namespace es obviamente jQuery (incluso los plugins basados en jQuery emplean casi todos este namespace). Sin embargo, hay un pequeño asunto a solucionar y es que jQuery emplea como alias el identificado $. Por ejemplo:

jQuery("div").hide(); //Oculta todos los div del documento

es igual a:

$("div").hide();

Y como muchos sabréis hay otras librerías javascript que también lo emplean. Para solucionarlo basta con llamar a la siguiente función:

jQuery.noConflict();

Teniendo en cuenta que esta llamada ha de hacerse después de cargar las dos librerías que colisionan:



<html>
<head>
<script type="text/javascript" src="prototype.js"></script>
<script type="text/javascript" src="jquery.js"></script>
<script>
jQuery.noConflict();

// Use jQuery via jQuery(...)
jQuery(document).ready(function(){
jQuery("div").hide();
});

// Use Prototype with $(...), etc.
$('someid').hide();
</script>
</head>
<body></body>
</html>



Continua leyendo "jQuery, la libreria de javascript"

Publicado por Abraham Covelo

Aug 19
GNU/Linux Con la llegada de fuse (file system userspace), que nos permite crear completos sistemas de archivos a través de programas en el espacio de usuario estaba claro que muchos desarrolladores iban a sacar buen provecho de esta herramienta para crear utilidades realmente interesantes. Cosas como un repositorio de subversión, cvs, git o mercurial como sistema de archivos o sistemas de archivos ad-hoc por ejemplo. En fin FUSE ofrece muchas posibilidades. Aunque ciertamente muchas de estas aplicaciones parecen estar bastante verdes y no será por falta de ports a diferentes lenguajes porque FUSE está disponible para C, C++, Java, C#, Haskell, TCL, Python, Perl, Ruby, Lua, Erlang o incluso PHP.

Bueno, volviendo al tema en cuestión una de las aplicaciones más interesantes que emplean FUSE es SSHFS. Como su nombre indica se trata de acceder por ssh a un equipo remoto como si fuera un punto de montaje más dentro de nuestro sistema de ficheros local. Es realmente sencillo de instalar (está en las fuentes de debian: # apt-get install sshfs) y de configurar.

Continua leyendo "sshfs, el sistema de ficheros ssh"

Publicado por Abraham Covelo

Aug 18
GNU/Linux
Redis es una base de datos que asocia a una clave un determinado valor. Es similar a memcache pero con un conjunto de datos persistente (no volátiles).

Para ser lo más rápida posible y a la vez no volátil redis tiene todo el conjunto de datos en memoria y de vez en cuando o cuando el número de registros cambiados llega a cierto valor estos son escritos asincronamente en disco. Podrían perderse un pequeño número de valores que es aceptable para la mayoría de las aplicaciones pero es tan rápido como una base de datos en memoria.

Redis está escrito en ANSI C y funciona en la mayoría de sistemas POSIX como Linux, BSD, Mac OS X. Redis es software libre bajo licencia BSD.

Continua leyendo "Redis, un nuevo modelo de base de datos ligero"

Publicado por Abraham Covelo

(Página 2 de 8, en total 29 entradas)