Arquitectura de Flickr
27 de Octubre 2005 a las 5:24 pm | En GeneralFlickr es un modelo para muchas personas, y siempre hemos sabido que usaban Smarty y PHP, pero a través de Niall Kennedy podemos ver el PDF de una presentación sobre una presentación de Ludicorp. Muy interesante.
Una layout para gobernarlos a todos
26 de Octubre 2005 a las 11:32 am | En Web, CSS+HTML+JavaScriptEn el artículo “In search of the One True Layout” se presenta una especie de framework CSS para generar layouts. Habrá que echarle un vistazo, pero la idea parece buena.
Rasmus explica AJAX en 30 segundos
25 de Octubre 2005 a las 5:11 pm | En General, PHP, CSS+HTML+JavaScriptHace un tiempo Rasmus Lerdorf, escribió un correo explicando sobre AJAX, aquí va una traducción al vuelo.
Creo que mucho de todo eso de AJAX es un poco exagerado. Mucha gente ha estado utilizando cosas parecidas
desde mucho antes que se llamase “AJAX“, y realmente tampoco es tan complicado como mucha gente lo hace parecer.
Aquí hay un pequeño ejemplo de una de mis aplicaciones. Primero el JavaScript:
function createRequestObject() {
var ro;
var browser = navigator.appName;
if(browser == "Microsoft Internet Explorer"){
ro = new ActiveXObject("Microsoft.XMLHTTP");
}else{
ro = new XMLHttpRequest();
}
return ro;
}
var HTTP = createRequestObject(); function sndReq(action) {
HTTP.open(’get’, ‘RPC.php?action=’+action);
HTTP.onreadystatechange = handleResponse;
HTTP.send(null);
} function handleResponse() {
if(HTTP.readyState == 4){
var response = HTTP.responseText;
var update = new Array();
if(response.indexOf(’|’ != -1)) {
update = response.split(’|');
document.getElementById(update[0]).innerHTML = update[1];
}
}
} Con este código creamos un objecto Request además de una petición de envío y una función que gestione
la respuesta. Si quieres usarlo añades este JavaScript a tu página. Después para usarlo tan sólo necesitas
enlazarlo a algo, como por ejemplo a un evento onclick o directamente en un href como este: [foo] Así cuando alguien haga click en ese enlace lo que realmente pasará es que se generará una petición a
RPC.php?action=foo que se ejecutará en el servidor. En RPC.php puedes tener algo como esto: switch($_REQUEST['action']) {
case 'foo':
/* do something */
echo "foo|foo done";
break;
...
}
Ahora, miremos a la función handleResponse. Analiza la cadena “foo|foo done” y la separa a partir del carácter
‘|’. Entonces utiliza lo que va antes de ‘|’ como el identificador del elemento DOM de la página y lo que va después
será el nuevo innerHTML del elemento que hemos referenciado. Esto significa que si tenemos una etiqueta div como esta:
Y eso es todo. Todo lo demás es construir sobre esto. Sustituir la sintáxis de la respuesta “id|texto” con un formato XML mucho
más rico y haciendolo más complejo. Antes de que empieces a utilizar grandes librerías “AJAX” prueba a crear tu propia funcionalidad, así
sabrás como funciona exactamente y será tan complicado como necesites. Muy a menudo descubrirás que no es necesario muho más
de lo que he explicado aquí.
Se puede ampliar esta solución para enviar varios parámetros en la solicitud, por ejemplo, lo que sería muy sencillo. Algo así como:
function sndReqArg(action,arg) {
HTTP.open(’get’, ‘RPC.php?action=’+action+’&arg=’+arg);
HTTP.onreadystatechange = handleResponse;
HTTP.send(null);
}
Y la función handleResponse que escribas puede hacer cosas mucho más interesantes que simplemente sustituir el contenido de un div.
-Rasmus
El framework más simple en PHP
17 de Octubre 2005 a las 3:44 pm | En PHPRuby on Rails ha generado mucha atención sobre los distintos frameworks para aplicaciones web. Prácticamente cualquier lenguaje de programación ofrece un framework que se apoya sobre ciertas librerías para ofrecer al desarrollador una forma más sencilla de crear sus aplicaciones. RoR y sus numerosos “clones” (Django, Cake o Catalyst son una muy buena solución para cierto tipo de aplicaciones web que hoy en día se dan muy a menudo.
Sin embargo, no siempre se adaptan a nuestras necesidades y es entonces cuando buscamos entre otros frameworks. O nos construimos el nuestro, que diablos. Si esa es tu intención quizás te interese conocer el más sencillo framework que puedes escribir en Apache + PHP. Sólo necesitas dos ficheros uno para hacer que Apache se porte como deseamos y sería el .htaccess
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*)$ dispatch.php?app=$1 [QSA]
y el fichero dispatch.php que contendrá las líneas
< ?PHP
include $_GET['app'];
?>
Este sencillo framework no sirve para nada y no se gana nada tal y como está, pero es el principio de muchos otros. Antes del include podriamos inicializar todos los objetos (plantillas, conexiones a bases de datos), sanear la entrada y muchas más cosas que se repetirán en todos tus scripts. Es el script que cualquiera de nosotros habrá escrito al tercer día de hacer cualquier cosa medio decente, a partir de ahí podemos crecer hacia donde querramos.
Y ya que estoy voy a aprovechar para señalar un viejo enlace que describe una estructura de una aplicación PHP.
Unas pocas cositas
14 de Octubre 2005 a las 3:58 pm | En PHP, bric-a-brac- w2box es un sistema de repositorio de fichero, para subir y gestionar ficheros adaptándose a Web 2.0 y con AJAX. Un proyecto web sin buzzwords no es un proyecto web.
- Configuración para manejar phpDocumentor en vim, ideal si documentamos nuestro código con esta potente herramienta.
- Un pequeño artículo de Joel Spolsky sobre como escoger las prioridades, centrandose en como escoger las nuevas funcionalidades de la siguiente versión del software y de una forma muy similar a las tarjetas de responsabilidad-colaboración y quizás también en la línea que llevan en FogCreek o 37 Signals.
- También en la línea no entres en una guerra que no puedas ganar, un artículo de A List Apart sobre sitios web que no deben desarrollarse.
Cómo archivar los tags
13 de Octubre 2005 a las 4:16 pm | En InterWebEpaminondas Pantulis enlaza en su bitácora barrapuntera a “Tags: Database schemas“, un artículo en el que se presentan distintos esquemas para almacenar en una base de datos los tags que forman una folksonomía.
En su momento implementé un sistema muy rudimentario basandome en un módulo de Drupal que ya existía. El sistema es muy cutre porque guarda todos los tags en una cadena y funcionaría muy lento si hubiese un gran volumen, pero para el caso de mi página personal cumplía bien con su cometido.
Los tags son una de las partes más importantes de las folksonomías, pero para poder conseguir el caracter social debe permitirse que distintas personas (o robots, o lo que sea) etiqueten los contenidos, no basta con permitir etiquetado como yo hago en mi sistema casero.
iManager: un editor gráfico via web
11 de Octubre 2005 a las 7:01 pm | En GeneralPues acabo de descubrir iManager, aunque todavía tengo que probarlo y ver cómo puede integrarse con otras funcionalidades para editar.
Encontrado gracias al lado rosa de fernand0.
Podcast sobre accesibilidad
10 de Octubre 2005 a las 9:12 pm | En GeneralA través del blog de web-graphics me he topado con un podcast que me ha parecido bastante interesante. Se trata de una charla (en inglés) de Derek Featherstone y está disponible en la página de los MP3 del Web Essentials 2005 (enlace directo al MP3), y recomiendo ojear antes de escuchar la charla leer la página donde se muestran algunos ejemplo.
Antes sólo había escuchado algunos podcast por probar, pero este me ha parecido bastante interesante en la forma de expresarlo y me he lanzado a IT Conversations a ver qué encuentro por ahí y descargar algunos más.
Usando una caché para gestionar resultados en PHP
10 de Octubre 2005 a las 4:25 pm | En PHPEn DevShed con el artículoCaching Result Sets in PHP: The Barebones of a Caching Class desarrollan el principio de una clase que de soporte de caché para nuestras aplicaciones.
A veces necesitamos tener un servicio de caché para poder dar respuestas en tiempos razonables y no podemos usar otras herramientas como la cache de la base de datos (por ejemplo MySQL), bien porque no tenemos acceso a ellas o bien porque no nos dan los resultados que necesitamos. En esos casos un sistema de caché sobre los datos (no lo confundamos con un sistema como APC que cachea el código PHP compilado) puede sernos de mucha ayuda.
Todavía no he leido el artículo, pero estoy bastante contento con las clases de cache de PEAR, especialmente Cache Lite.
Typetester: Compare fonts for the screen
10 de Octubre 2005 a las 3:53 pm | En Web, Accesibilidad, CSS+HTML+JavaScriptTypetester es una aplicación web que permite comprobar las distintas fuentes y efectos que pueden aplicarse mediante CSS. El uso de fuentes en documentos HTML a veces puede ser complicado, depende mucho de la plataforma salvo que se usen las tipografías genéricas definidas en CSS.
Seguramente no sea más cómodo que utilizar otras herramientas más especializadas como EditCSS para Mozilla o incluso un editor completo como NVU, o incluso algún editor de CSS JavaScript (no tengo URL a mano, pero probé alguno en su momento).
Feeds completos
7 de Octubre 2005 a las 5:38 pm | En GeneralAcabo de activar la opción para que los feeds de esta bitácora fuesen completos. No sabía que sólo mostraban un extracto, lo siento por si alguien se ha visto afectado por ello.
Yo soy de los que prefiere tener feeds completos, así que no se trata de que crea que la gente debe visitar el sitio y no leer a través de agregador, todo lo contrario. Ha sido un despiste, pero ya lo he solucioadno. Creo.
OpenID: una implementación en PHP
7 de Octubre 2005 a las 3:49 pm | En PHP, InterWebMe acabo de encontrar a través del CMS.org/archive/2005/09/08/flux-CMS-as-openid-server.html”>blog de Flux de la existencia de una implementación en PHP de OpenID en Videntity.org..
Para los que no lo conozcan, OpenID es un protocolo de identificación distribuido. Se diferencia de otros sistemas de autenticación OpenID es totalmente distribuido y solamente se ocupa de certificar que es quien dice ser, no lleva gestión de perfiles ni de permisos, que iría aparte.
Me parece un sistema muy interesante, orientado sobre todo a la web y por eso muy potente para las aplicaciones actuales. ¿Hay muchas cosas que soporten OpenID?
Tipos de interacción
5 de Octubre 2005 a las 3:56 pm | En GeneralMe he encontrado con un interesante artículo que describe los tipos de interacción entre el usuario y el ordenador. Es breve y no dice nada revelador, pero ordenado e interesante.
La línea de comandos
5 de Octubre 2005 a las 2:09 pm | En ShellEn Slashdot publican un artículo titulado What’s Your Command Line Judo? en el que los comentarios pueden sernos de interés. Aparecen distintas opiniones y oneliners que pueden ser clarificadores. Resulta complicado escoger una sola línea orden o comando que nos interese, para mi los imprescindibles son find, xargs y awk.
Sobre shells hay varios artículos, algunos de los que tengo en mis enlaces son uno de IBM sobre el prompt, el imprescindible Advanced Bash Scripting, un extenso tutorial, en español la guía de novato a novato, y otros tantos.
Por cierto, que hace poco en OS News me topé con un artículo sobre Monad, la consola de Microsoft.
Suite ofimática AJAX
3 de Octubre 2005 a las 4:42 pm | En InterWebA través de un artículo sin sentido sobre un Google Office he estado pensando un poco sobre uno de los protocolos que pensé que sería toda una revolución, WebDAV. WebDAV es un sistema que funciona extendiendo HTTP y por lo tanto podría tener una gran aceptación (firewalls preparados, aplicaciones, librerías, estadísticas), a pesar de su relativo fracaso está soportado por muchos lenguajes, entornos y plataformas.
Volviendo a la noticia original de /. descubro que no es la primera vez (ni será la última) que se plantea la ¿necesidad? de una suite ofimática accesible via web. Personalmente por ahora prefiero muchas aplicaciones a su equivalente web, al contrario de lo que piensa Zawodny y no me sentiría cómodo así. Sin embargo, cuando plantean el uso de AJAX para crear aplicaciones se suele recalcar como ventaja la posibilidad deacceder desde cualquier lugar a nuestros documentos. Cuando eso ocurre pienso en porqué no tienen éxito sistemas como iFolder o el mismo WebDAV, que además están bastante bien integrado en varios entornos de escritorio.
Si WebDAV realmente se hubiera conseguido difundir creo que hubiera sido muy interesante, y así tendría más acceso la existencia de sencillas aplicaciones capaces de gestionar los documentos. El camino parece que va siendo AJAX y lo que sea que se define como la Web 2.0, sin embargo me atrae más la idea de utilizar Internet como repositorio para los documentos y que sean las aplicaciones las que accedan a ellos. En el caso de que se llegase a desarrollar la V de WebDAV incluso el mismo soporte podría gestionar de forma transparente las distintas versiones. Suponiendo que lo distribuido fuesen los sitios de archivo, que se pudiesen sincronizar fácil o transparentemente, y que se ejecutasen formatos estandarizados sería muy posible que existiesen pequeñas aplicaciones web para, por ejemplo, realizar pequeñas transformaciones (rotaciones, transformaciones) en IMágenes, editar textos y otras cosas así.
En resumen, si lo que se pretende conseguir es tener disponibilidad absoluta desde cualquier lugar, creo que más interesante sería ofrecer formas de poder compartir los documentos de mi escritorio desde cualquier sitio en Internet (sincronizandolos) y la opción de tener pequeñas (o no tan pequeñas) aplicaciones web para editar esos recursos. Sin embargo, parece que cada vez más Internet se va conviertiendo en aquello que se da a llamar InterWeb. Lo que no estoy seguro es cuánto de mi queja es por aquello de “viejos tiempos siempre fueron mejor” y cuanto se debe a que realmente creo que el navegador no es la mejor solución para todos los problemas.
Powered by WordPress with Pool theme design by Borja Fernandez.
Entries and comments feeds.
Valid XHTML and CSS. ^Top^