lunes, 18 de mayo de 2009

Tu diseño favorito

0 comentarios
Con texturas espectaculares, o con diseños minimalistas, tipos grandes o pequeños, coloridos o en blanco y negro... seguro que todos teneis vuestros diseños web favoritos, o al menos una lista de tres o cuatro sitios cuyo aspecto os gusta especialmente.
¿Cuáles son tus diseños web favoritos?

El Reto de Internet

0 comentarios

¿Todo lo que necesitas está Internet? ¿Eres capaz de encontrar cualquier cosa en Internet?

Si eres andaluz, Guadalinfo te propone el Reto de Internet.

miércoles, 6 de mayo de 2009

FWD: Urgente MSN Cierra

0 comentarios
Llevo varios días recibiendo un número especialmente alto de emails reenviados avisándome de un supuesto cierre de MSN. A todos quienes me los habeis enviado, amigos de fuera del gremio, quiero deciros que:
1. MSN no cierra.
2. Si MSN cerrara posiblemente yo me entere antes que vosotros.
3. Marco como spam los FWD que me envían varias veces seguidas, sobre todo si son mentira.

domingo, 26 de abril de 2009

Thickbox una alternativa a Lightbox sobre JQuery

0 comentarios
Una de mis bibliotecas favoritas es Lightbox 2, la he utilizado en muchas ocasiones, pero cuando empecé a incluir JQuery en mis proyectos me encontré con un problema: Lightbox trabaja sobre scriptaulous y ocupa más de 180 Kb. Si a esta biblioteca ya de por sí pesada sumamos JQuery -que suelo utilizar para añadir algún efecto y porque utilizo JQuery Validator y JQuery Date Picker-, nos encontramos con una página lenta, pesada y que va a consumir una cantidad de recursos sencillamente prohitiva. La solución es buscar un plugin para JQuery que me de lo mismo que Lightbox -o parecido, sigue pareciéndome el más conseguido-. Hay versiones de Lightbox para JQuery, pero no tienen la elegancia que se busca al utilizar un plugin así.
De modo que hay que cambiar la marca si se quiere trabajar con JQuery y lo mejor que he encontrado es Thickbox.
El uso de este plugin para JQuery es muy sencillo, basta con incluir JQuery y el código de Thickbox (JavaScript y CSS):

<style type="text/css" media="all">
@import "template/css/stylesheet.css";
@import "js/thickbox.css";
</style>

<script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="js/thickbox-compressed.js"></script>

Thickbox funciona sobre los enlaces, de modo que será en los elementos <a /> donde especificaremos mediante el atributo class que queremos enlazar con una imagen ampliada, y utilizaremos el atributo rel para agruparlas en galerias:

<a href = "imagengrande1.jpg" class = "thickbox" rel = "galeria1">
<img src = "thumbnaiil1.jpg" alt = "Img 1"/>
</a>
<a href = "imagengrande2.jpg" class = "thickbox" rel = "galeria1">
<img src = "thumbnaiil2.jpg" alt = "Img 2"/>
</a>
<a href = "imagengrande3.jpg" class = "thickbox" rel = "galeria2">
<img src = "thumbnaiil3.jpg" alt = "Img 3"/>
</a>
<a href = "imagengrande4.jpg" class = "thickbox" rel = "galeria2">
<img src = "thumbnaiil4.jpg" alt = "Img 4"/>
</a>

lunes, 20 de abril de 2009

Nuevos CAPTCHA propuestos por Google

0 comentarios

En Dirson publicaban ayer este post proponiendo dos tipos de CAPTCHA más difíciles de romper por spammers. En este caso dejamos la comparación de textos aleatorios o de sumas sencillas para utilizar imágenes que en principio sólo parecen diferenciables por seres humanos. En el caso de la imagen que ilustra este post, el usuario debería decir cual es la imagen que tiene la orientación correcta. En el enlace podréis ver otro que nos oblica a enderezar una foto para poder pasar el CAPTCHA.
Desde que se publicó ayer he escuchado la misma crítica: si hay sólo dos respuestas posibles, un spammer no lo tendrá difícil para violarlo. Sin embargo me parece un buen concepto y parece que trabajando un poco la idea podríamos tener buenos resultados. Y se trata de jugar con conceptos humanos que, quizás habría que complicar un poco más y combinarlos con ideas similaras, pero que podrían funcionar de lujo. ¿Cómo funcionaría pedir a un usario que identificara algo en una foto? ¿Sería una traba importante para la accesibilidad? ¿Y si preguntamos "de qué color es el vestido de la foto"? Espero vuestras opiniones en los comentarios.


Fotografía: Google Dirson y Wendypan

viernes, 17 de abril de 2009

Topología, magia y creencias

0 comentarios
Hoy vamos a salirnos un poco del desarrollo web para entrar en el mundo de las matemáticas.
En Microsiervos publicaban ayer este truco de "magia topológica", sorprendete a primera vista, pero fácil de pillar al volver a verlo:

Al ver el video uno se da cuenta de por dónde pueden ir los tiros en la infinidad de puzzles topológicos (comúnmente conocidos como juegos de ingenio), en los que nos encontramos una cuerda imposible de liberar sin romper... aparentemente. Obviamente, todos estos juegos tienen un truco diseñado para que tengan solución. Veamos el sigiente video como ejemplo sencillo de un truco topológico:

En esto se basan todo ese tipo de trucos, por ejemplo, los que hay a la entrada del Parque de las Ciencias de Granada o los de un escapista (¿sigues creyendo en la magia?). Quizás esto os ayude a partir de ahora a resolver agún puzzle de ingenio. Feliz fin de semana.


@hazarco (¡muchas gracias!) me recomienda este video de Tabary en el que hay un poco de topología y bastante de magia -aunque para verlo, es mejor olvidar el truco y dejarse llevar por la sutilezade la actuación de Tabary-:

lunes, 13 de abril de 2009

Sobrecarga de funciones en PHP 4

0 comentarios
De entrada, la sobrecarga de funciones no se encuentra entre las posibilidades de PHP, aunque hay algunas formas de simularlo a partir de PHP 5. En versiones anteriores también podemos conseguir un efecto parecido utilizando las funciones de PHP que nos permiten manejar el número de argumentos de la función que quisieramos sobrecargar. Una forma de sobrecargar una función sería la siguiente:
function mifuncion($param1, $param2 = "val2", $param3 = "val3"){
...
}
function mifuncion($param1){
...
}

En el primer caso preparamos la función para ser llamada con varios parámetros, con una serie de valores por defecto, y en el segundo sólo le pasamos un parámeto, obligatorio, que sería un array con toda la información necesaria para la ejecución de la función. Pero como sabemos PHP leerá esto como la redeclaración de mifuncion() y nos mostrará un mensaje de error:
Fatal error: Cannot redeclare mifuncion() (previously declared in ...)

Lo que sí podemos hacer es declarar mifuncion() una sola vez, sin especificar ningún parámetro y programar diferentes comportamientos en función del número y el tipo de argumentos utilizando las siguientes funciones:
Lo que vamos a hacer en concreto es anteponer al código de nuestra función una detección y procesado de los argumentos, los prepararemos para la ejecución de la función -lo que, entre otras cosas, nos va a permitir sobrecargar funciones ya escritas sin tener que tocar ese código. Lo explicaré sobre el código de "sobrecarga" de la función anterior (donde, recordemos, queriamos pasar los datos bien por parámetros, bien como array, y poder tener una serie de valores por defecto):
function mifuncnion(){

//Declaramos variables con los nombres de los argumentos que queremos utilizar
$param1 = NULL;
$param2 = NULL;
$param3 = NULL;

//Comprobamos el número de argumentos
if (func_num_args() == 0){

//Sin argumentos rompemos la ejecución de la función
return "No has pasado argumentos";

}

else if (func_num_args() == 1){

//Con un solo argumento, comprobamos que este sea un array antes de procesarlo.

if (!is_array(func_get_arg(0))){

//Si no es un array rompemos la ejecución de la función
return "El argumento debe ser un array";

}
else{

//Separamos en variables los parámetros pasados por array, si no se han pasado, se les da su valor por defecto

$args = func_get_args();

$param1 = $args[0]['param1'] ? $args[0]['param1'] : "Valor por defecto para param1";
$param2 = $args[0]['param2'] ? $args[0]['param2'] : "Valor por defecto para param2";
$param3 = $args[0]['param3'] ? $args[0]['param3'] : "Valor por defecto para param3";

}

}
else{

//Con varios argumentos, se procesan en orden, si no se han pasado, se les da su valor por defecto.
$args = func_get_args();

$param1 = $args[0];
$param2 = $args[1] ? $args[1] : "Valor por defecto para param1";
$param3 = $args[2] ? $args[2] : "Valor por defecto para param2";

}

//Resto del código de la función

}

viernes, 3 de abril de 2009

Conficker: cómo sabes si estás infectado de forma rápida y gratuíta

0 comentarios
Vía Security by Default -blog que gusto de seguir asiduamente-, descubro Conficker Eye Chart. Se trata de una web que utiliza una serie de imágenes cargadas desde los servidores de antivirus que bloquea Conficker para que el usuario sepa si está infectado con un método sencillísimo: si alguna de las imágenes no carga, posiblemente esté infectado.

jueves, 2 de abril de 2009

Cirujía estética

2 comentarios
Gracias a @mondador a partir de mañana luciré una nueva cara en las redes sociales y, quizás un día de estos, en la cabecera de este blog. El primer sitio donde podeis ver este rostro -del que no se va a desvelar nada en este blog- es en el blog del artista, Ilustrarte.
Sobra decir que el trabajo es buenísimo, pero quiero reiterar mi agradecimiento. ¡Me encanta!

jueves, 26 de marzo de 2009

JQuery + Google Maps API

0 comentarios
Vía anieto2k, que ha listado ocho plugins de JQuery para explotar las API de Google, he descubierto un interesante plugin de JQuery para trabajar sobre la API de Google Maps, con el que para crear el mapa no tenemos más que llamar a un sencillo método al que pasaremos las dirección postal donde centraremos el mapa:
var mymap = $(".map").googlemap({addresses:["1 ABC ST, NSW 2193 Sydney, Australia"]});
La sintaxis, además, nos permite mediante los selectores de JQuery, encadenar llamadas a métodos. De nuevo JQuery nos facilita el trabajo con una herramienta potente a la par que sencilla.

jueves, 19 de marzo de 2009

Inteligencia artificial en Linux

0 comentarios
De los creadores de "Cómo murió Marti McFly" y "Cómo murió Michael Knight", Imageeknation, uno de mis blogs favoritos pese a haberlo descubierto hace poco, nos llega este excelente tutorial sobre cómo crear inteligencia artificial abriendo una consola de Linux. Fijaos que es un chiste recíproco con todas las de la ley.

jueves, 12 de marzo de 2009

Un truco para Ubuntu: hacer que Nautilus sea más rápido

0 comentarios
Leo en WikiLearning una sencilla forma de configurar Nautilus para que sea sensiblemente más rápido. Se trata de configurar las previsualizaciones que Nautilus va a realizar al navegar por nuestras carpetas, de forma que la carga de cada carpeta sea mucho más rápida -y tal y como yo lo he probado, se nota mucho la diferencia-. Para hacerlo, vamos a seguir unos pasos muy sencillos:

1. Abrir una ventana de Nautilus (nuestra carpeta personal, por ejemplo).
2. Vamos a Editar -> Preferencias.
3. En la pestaña Vista previa podemos desactivar todas las previsualizaciones de todos los ficheros, lo que hará que Nautilus sea mucho más rápido. Yo, concretamente he hecho lo siguiente:

Archivos de texto.
-Mostrar texto en los iconos: Nunca. De poco me sirve la previsualización de un fichero de texto, más aún si esta se muestra en un tamaño diminuto.
Otros archivos previsualizables.
-Mostrar miniaturas: sólo en archivos locales.
-Sólo para archivos menores de: 3Mb. Así me aseguro de que las fotos que hago con mi cámara compacta tenga previsualización y que no la tengan los archivos demasiado grandes.
Archivos de sonido.
-Escucha previa de sonidos de audio: Nunca. La escucha previa me molesta bastante, personalmente.
Carpetas.
-Contar el número de elementos: Nunca. La mayoría de las veces no quiero saber el número de elementos que tiene una carpeta cuando estoy navegando, y si quiero hacerlo, hago click derecho -> propiedades.

martes, 10 de marzo de 2009

JQuery UI Tabs con botones Next y Previous

0 comentarios
JQuery UI Tabs es un widget de JQuery UI que nos permite organizar el contenido de una página en pestañas, ya sea como meros conmutadores para mostrar el contenido o como enlaces para cargar dicho contenido on AJAX. Además, podemos hacer que los enlaces se carguen con AJAX dentro de nuestros tabs. Una herramienta muy potente, en definitiva.
Hoy nos enseñan en CSS Tricks a añadir unos botones "Next" y "Previous" para movernos por los tabs de JQuery UI Tabs.

sábado, 7 de marzo de 2009

Jeff Dunham. Achmed, el terrorista muerto

0 comentarios
Ayer descubrí esta actuación de Jeff Dunham con Achmed, el terrorista muerto (cAhmed, dead terrorist), un muñeco que sólo con mover las cejas es de lo más expresivo. Al grito de "Silence! I'll kill you" (¡silencio! ¡a que te mato!), Achmed cuenta algunas vivencias de lo más divertido. Os dejo además un par de videos más.

Achmed. El terrorista muerto.


Melvin. El superhérore


Walter 1/2


Walter 2/2


Peanut 1/2


Peanut 2/2


Sweet Daddy

miércoles, 4 de marzo de 2009

Esquinas redondeadas con CSS3

0 comentarios
El borrador de CSS 3 especifica un atributo border-radius que más de uno habrá soñado alguna vez. Tener una capa o una tabla con esquinas redondeadas, que hasta ahora requería dibujar y recortar imagenes (o una hoja de estilo rebuscada y compleja) se resume ahora en una sola línea:
border-radius: 5px;
Pero el borrador de este nuevo estándar ya es implementado por cada buscador a su manera, como bien nos explican en el artículo sobre CSS 3 y border radius en xposible.

Esencialmente, para Mozilla tendremos que especificar:
-moz-border-radius: 5px;
Una diferencia en la implementación bastante incómoda.

Algunas notas sobre border-radius:
  • No conozco dos familias de navegadores que implementen este atributo de igual forma.
  • Internet Explorer y Opera no lo implementan.
  • En Mozilla -al menos- también se puede establecer mediante un porcentaje:
    -moz-border-radius-bottomleft: 100%;

    0% es una esquina sin redondear y 100% una esquina redondeada con radio la mitad del lado del objeto. El valor 200% se quedará en 100%. Por tanto un objeto de igual width y height y con el border-radius al 100%, es un círculo perfecto:
    -moz-border-radius: 100%;
    width: 300px;
    height: 300px;

    Supongo que es una forma de asegurarse que los bordes coincidan siempre, aunque la especificacón de CSS3 sobre border-radius establece un comportamiento mucho más interesante.
  • Para no complicarse la vida con CSS, uno puede complicársela y utilizar el redondeador de esquinas para JQuery.
Si te apetece jugar con otras propiedades aún no implementadas quizás quieras leer este artículo de Markus Stange (en inglés) que nos enseña a conseguir efectos muy interesantes con la propiedad box-shadow, -moz-box-shadow para Mozilla.

martes, 3 de marzo de 2009

Configuración y localización de JQuery UI Datepicker

1 comentarios
JQuery User Interface es una biblioteca que nos permitirá mejorar sustancialmente la experiencia del usuario de nuestra aplicación web -a cambio, claro está, de una pequeña ralentización de la carga de la página-. Trabaja sobre JQuery ofreciendo con una codificación sencillísima una serie de efectos visuales y de widgets totalmente personalizable -la biblioteca se descarga sólo con las funcionalidades que se vayan a utilizar-.

Datepicker es uno de las más potentes. Consiste en un calendario que se despliega junto a un input para que el usuario seleccione la fecha en lugar de teclearla. Vamos a ver cómo instalarlo y, sobre todo, cómo localizarlo para que las fechas se muestren en el formato e idioma españoles.

Lo primero es tener un campo input en el que recogeremos la fecha, en el que no necesitamos añadir más que el código HTML:

<input name="fecha" type="text">


En el head del documento HTML necesitamos llamar a las siguientes bibliotecas:

<script type="text/javascript" src="jquery-1.2.6.js"></script>

<script type="text/javascript" src="jquery-ui-personalized-1.6rc6.js"></script>

<script type="text/javascript" src="i18n/ui.datepicker-es.js"></script>

<script language="javascript" src="ready.js"></script>



Donde:
jquery-1.2.6.js - Es el núcleo de JQuery.
jquery-ui-personalized-1.6rc6.js - Es núcleo de JQuery User Interface.
i18n/ui.datepicker-es.js - Es el pack de localización a español de Datepicker
ready.js - Es la biblioteca donde tenemos la función $(document).ready()

Lanzar datepicker desde $(document).ready
$(document).ready(function(){
$('#fecha).datepicker({
changeMonth: true,
changeYear: true,

showOn: 'button',
buttonImage: '/img.png',
buttonImageOnly: true,

dateformat: 'dd-mm-yy',
firstDay: 1
});

$('#fecha').datepicker($.datepicker.regional['es']);

});
Las opciones que hemos escogido son las siguientes:
changeMonth: true - Permite al usuario cambiar el mes desde un select.
changeYear: true - Permite al usuario cambiar el año desde un select.
showOn: 'button' - El calendario se desplegará desde un botón que aprecerá junto al input de la fecha.
buttonImage: 'img.png' - La ruta a la imagen del botón.
buttonImageOnly: true - Con esta línea hacemos que Datepicker sólo aparezca al hacer click en el botón -no en el input-.
dateformat: 'dd-mm-yy' - Cambiamos el formato de fecha a día-mes-año en lugar del formato por defecto, que es mes-año-día.
firstDay: 1 - hacemos que el primer día de la semana sea el Lunes (por defecto el valor es 0, domingo).

Por último, la línea $('#fecha').datepicker($.datepicker.regional['es']); carga el pack de idioma español de datepicker.

martes, 24 de febrero de 2009

NOIE6Day, 18 de octubre día sin Internet Explorer 6

0 comentarios
El maestro Andrés Nieto desde su blog lanza, inspirado en el CSS Naked Day, lanza la propuesta de crear el día sin Internet Explorer 6.
La idea es que el próximo 18 de octubre mostremos en todas nuestras web un mensaje invitando a nuestros visitantes a utilizar otro navegador. Este mensaje sustituirá al contenido original de nuestra web.
La iniciativa es loable y yo personalmente la agradezco, pero quizás por su naturaleza radical no sea secundada por muchos sitios.
En cualquier caso es una iniciativa más para acabar con IE6.

lunes, 23 de febrero de 2009

¿Necesitamos un nuevo Internet?

0 comentarios
Do We Need a New Internet? es el título de un interesante artículo del New York Times que reflexiona sobre la seguridad de la red y la necesidad de cambiar sus bases para incrementarla. Lo hace a propósito de la creación de un nuevo sistema de conexiones que estará disponible a finales de verano, según cuenta John Markoff en el artículo:
"At Stanford, where the software protocols for original Internet were designed, researchers are creating a system to make it possible to slide a more advanced network quietly underneath today’s Internet. By the end of the summer it will be running on eight campus networks around the country."
En Stanford, donde se diseñaron los protocolos de software de la primera Internet, los investigadores están creando un sistema para posibilitar la transición a una Red mucho más avanzada con respecto a la Internet actual. A finales de verano estará implantada en la red de ocho campus del país.
La idea del proyecto es genial: incrementar la seguridad e impedir el anonimato en la red haciendo cambios en la base del funcionamiento de Internet que conllevarán cambios en el desarrollo de aplicaciones bassadas en Internet. Esto sí sería un cambio sustancial, al que veo ciertos problemas de concepto que tiran por la borda los objetivos del poyecto -sin desmerecerlo, eso sí-:
  1. Hecha la ley hecha la trampa. Es una ley que nunca falla: cada sistema de seguridad que se inventa, en cualquier ámbito, va acompañado de la invención de una forma de saltarse ese sistema de seguridad.
  2. Como consecuencia, podremos impedir las acciones delictivas de usuarios anónimos, pero... ¿hasta qué punto podremos evitar que alguien suplante la identidad de otra persona?
  3. No sé hasta qué punto el hecho de que una persona tenga que identificarse siempre puede ir contra el derecho a la privacidad. Recordemos que en la vida real una persona puede asistir al teatro de forma anónima, sin un cartel en la frente con su nombre, DNI, IP...
En definitiva, el proyecto va a suponer mucho trabajo y seguramente muy buenos resultados, pero recordemos siempre que la panacea no existe. Parece una forma de acortar distancias entre la vida real y la vida virtual y, sin duda, eso siempre es un avance para cualquier proyecto informático.

sábado, 21 de febrero de 2009

IE6 (Hasta la vista, baby)

0 comentarios
Vía Maestros del Web hemos heredado un movimiento de desarrollo noruego -parece ser- que consiste esencialmente en promulgar el desuso de Internet Explorer 6, navegador que, características aparte, por su condición de obsoleto se ha convertido en una auténtica pesadilla para desarrolladores, para mí especialmente estos días.
La idea es que todo administrador de un sitio web coloque un mensaje exclusivo para IE 6 recomendando al visitante que cambie de navegador para disfrutar al 100% de cada sitio web que visite. Incluso Facebook, propiedad de ya sabeis quién, muestra un mensaje similar a los usuarios de IE6, recomendando descargar cualquier otro navegador (no necesariamente un IE). Conseguir que cada usuario utilice un navegador moderno es mejorar la web -sólo en el tiempo que nos ahorramos con los quebraderos de cabeza de las compatibilidades ganaríamos en avanzar en cualquier otro campo-.
Hace poco tuve una conversación más o menos así:
-¿Y qué hacemos para que todo el mundo vea nuestra web de manera óptima?
-Convencer a la sociedad de que use Firefox, o en su defecto Internet Explorer 7.
-Claro, pero yo no puedo ir casa por casa instalando Firefox.
Y es cierto, ahora vamos a estar todos felices porque estamos diciéndole a nuestros visitantes que cambien de navegador, pero el cambio va a tardar mucho, y la despedida definitiva de IE6 en desarrollo de sitios abiertos a todo el mundo todavía tendrá que tardar en llegar si no se quiere dar de lado cierto segmento de la población que tiene un ordenador viejo en casa...
Para entonces el problema será el IE7. ¡Si ya empieza a haber quejas del IE8!

miércoles, 18 de febrero de 2009

Internet Explorer en Linux (probado en Ubuntu)

0 comentarios
Si trabajas con Linux es posible que quieras o más bien necesites tener instalado Internet Explorer. En mi caso, naveo casi siempre con Firefox y sencillamente suelo pasar de las páginas que sólo se ven bien en Explorer -por fortuna hasta ahora no he necesitado acceder a ninguna página diseñada en exclusiva para explorer-, pero lo necesitaba para el trabajo, así que hice una instalación sobre Wine de IES4Linux. Después de algunos problemas y urgido por los últimos días de desarrollo de un proyecto, encontré el tutorial perfecto para instalarlo, el de USPALinux, y aquí lo tengo instalado y listo para probar mis webs en Internet Explorer sin tener que trabajar con máquinas virtuales, instalaciones de Windows, o varios ordenadores.
Eso sí, si estás descontento con la edición de Windows de Internet Explorer, con IES4Linux los vas a pasar peor: algún layout descuadrado, problemas con algunas transparencias... etc.

martes, 17 de febrero de 2009

Ecofont

0 comentarios
SPRANQ nos presenta esta curiosa iniciativa para ahorrar tinta.
Partiendo de la base de que la impresión de un documento, además de gastar papel, gasta tinta -obvio- y buscando la forma de ahorrar este material, se ha diseñado Ecofont, una tipografía libre llena de huecos que nos permitirá ahorrar tinta en las impresiones, al menos en los borradores.

(Gracias a maggiesd)

lunes, 16 de febrero de 2009

El diablo está en la Red

0 comentarios
Cuando desapareció Marta del Castillo el mes pasado, una de las primeras medidas que se tomaron fue investigar sus contactos en las redes sociales. Si bien se sospechaba con fundamento que su desaparición estaba íntimamente relacionada con su ex novio, había que abrir una línea de investigación a través de la Red, lo que los medios aprovecharon una vez maś para insinuar, cuando no asegurar, que nuestros jóvenes están expuestos a través de Internet -pese a que, en este caso, parece ser que la Red no tenía nada que ver con el delito-.
Por diversas razones, siempre que hay oportunidad, se aprovecha para contar a la opinión pública que Internet es un nido de ladrones y asesinos, la guarida de golfillos impostores que fingen identidades que no son las suyas para engañar en aras del robo, el capricho sexual o la satisfacción de cualquier vicio oscuro o tendencia delictiva. Sencillamente es sensacionalista. Poder ofrecer al público semejante taberna de ciudad sin ley parece una vía sin igual para saciar el ansia de morbo del televidente lego en asuntos internautas, porque da igual la condición de intelectual o inculto de una persona ajena a la red, en temas técnicos ambos son igualmente ignorantes y manipulables por la ciclogénesis del amarillismo y de idéntica forma adolecen de prejuicios y cabezonería al no querer a somarse a un mundo que no conocen. Incluso un periodista internauta que no practique horas de convivencia virtual desconoce por completo lo que se cuece realmente en internet: redes de colaboración profesional, toneladas de información accesibles de manera instantánea, sistemas de comunicación personal... y al periodista, como a cualquier persona, le basta y le sobra con una pose cultureta para difundir todo tipo de inexactitudes o mentiras o, sencillamente, barbaridades en cualquier programa mañanero en el que prima la rotundidad de las palabras en lugar de su verdadero significado.
No hay que confundirse: la Red no propicia la delincuencia, no es un invento para enmascarar al mafioso o al pícaro, es una herramienta sin más que se está demonizando injustamente. La piratería no es consecuencia de las redes P2P, sino del pirata; el engaño no es consecuencia de las redes sociales, sino del engañador y de la ingenuidad del engañado. Pica en el timo internauta el ingenuo que picaría en el timo analógico de alguien que llama al timbre, roba en Internet quien roba en la calle, sencillamente porque no existen medios técnicos para el engaño: todo se hace a través de la ingeniería social. La Red es una virtualización de la realidad, un medio utilizado por las mismas personas que viven, trabajan, roban y matan en la calle. La causa del delito no es Internet, sino puramente la maldad humana.

viernes, 13 de febrero de 2009

Cómo hacer un blog (edición para profanos).

0 comentarios
Me decía un amigo ayer que quería abrir un blog, que le llamaba la atención este mundo de la Web 2.0. El hombre, además, no quiere abrirlo por capricho, tiene una temática -que anunciaré y publicitaré porque es desternillante cuando llegue el momento-.

El problema ante el que se encuentra mi amigo es que no sabe cómo hacerlo, así que obviando los pasos estratégicos a la hora de abrir un blog -elegir temática, programar frecuencia de actualización y todas esas cosas de las que la inmensa mayoría pasamos-, voy a explicar los primeros pasos, a nivel técnico, que un usuario inexperto necesita para crear un blog.

Elegir el alojamiento.

El alojamiento es el lugar de la web (físicamente un ordenador conectado a Internet, un servidor) donde vamos a almacenar nuestro blog. Tenemos dos opciones: la gratuíta y la de pago.
La de pago es sin duda la mejor. Tienes flexibilidad para utilizar el programa que quieras, para personalizarlo, tunearlo y hacer lo que te de la gana. Pero recordemos que este texto es para usuarios profanos, así que si no tienes dinero para contratar a un programador para que te instale, configure y mantenga el blog -o un pardillo de cerca que lo haga gratis, no improbable- descartamos la opción de pago y pasamos a la gratuíta.

Los alojamientos gratuitos normalmente nos van a hacer perder flexibilidad a la hora de elegir el aspecto y las funcionalidades de nuestro blog, sin embargo nos configuración y mantenimient. Hoy día son servicios muy avanzados con los que se puede trabajar a nivel principiante sin ningún problema o a nivel experto -hasta cierto punto-. Los dos servicios de blogging principales son Wordpress.com y Blogger.com. Vamos a comparar ciertos rasgos de ambos servicios para ver cuál se ajusta más a nuestras necesidades:
  1. Sencillez de uso del administrador. Para mí, hasta ahora, el más sencillo con diferencia era Wordpress, pero desde el cambio a la versión 2.7.x el panel de control se ha convertido en un pequeño amalgama de opciones de las que tendremos que seleccionar las dos o tres que más nos interesen para un uso sencillo. No obstante, en proporción con las funcionalidades que ofrece y en cuanto a diseño, sigue pareciéndome más sencillo y más útil el de Wordpress.
  2. Sencillez de configuración. De nuevo el punto se lo lleva Wordpress.com. Cumple esos cánones de los diseños 2.0 que multiplican la usabilidad mientras que Blogger está estancado en un diseño relativamente obsoleto, con unas plantillas de publicación sencillamente horrendas y de dificil personalización para un usuario no experto.
  3. Flexibilidad. Aquí es Blogger.com quien aplasta a Wordpress.com. Si bien la plataforma WordPress tiene una infinidad de plugins que van a cubrir casi cualquier necesidad del editor, en Wordpress.com apenas tenemos disponibles los más comunes. En Blogger, sin embargo, podemos hacer casi cualquier cosa con nuestra barra lateral (incluso añadir publicidad, cosa que no se puede hacer en wordpress.com), hasta el punto de que encontraremos usuarios que han llegado a configurar verdaderos atentados contra el sentido commún del diseño -hagas lo que hagas, recuerda siempre que debes aprovechar utilizar la técnica en función de tus necesidades, no de tus posibilidades-.
  4. Integración con otros servicios: Vuelve a ganar blogger porque pertenece a Google y tu cuenta estará integrada con sus servicios (Reader, Analytics, AdSense, AdWords, y por supuesto el indispensable GMail). Clarisimamente, si tienes algún tipo de pretensión de hacer unas monedas con tu blog -habiendo descartado un alojamiento propio- deberías elegir Blogger.
A estas alturas estamos ante un empate técnico: por un lado la flexibilidad compleja de Blogger, por otro lado la potencia sencilla de Wordpress.com. Veo la elección clara: escoge blogger si quieres entrar en ciertas materias avanzadas de diseño y configuración o, sobre todo, si quieres poner publicidad; para todo lo demás, Wordpress.com sin duda alguna.

Creando una cuenta

Una vez que has elegido el alojamiento, queda lo más sencillo, abrir una cuenta en Wordpress.com o Blogger. Hagas lo que hagas, pasa antes por Gmail.com para abrir una cuenta de correo electrónico -esa cuenta la podrás utilizar para acceder a Blogger-. De todas formas, lo más recomendable -y aquí termino- es que sigas los siguientes pasos:
  1. Abrir una cuenta en GMail si no la tienes ya.
  2. Abrir una cuenta en Wordpress.com.
  3. Utilizar la cuenta de GMail -que en realidad es de Google Accounts- para acceder el servicio de Blogger.
A partir de aquí déjate llevar por ambos servicios y empieza a participar activamente en la blogosfera. Ve elaborando tu blogroll -tu lista de blogs favoritos-, de ahí pasa a mantener un agregador de RSS, y déjate embeber por la blogosfera.

Bienvenido a la Web Jerigonza.

V Jornadas Blogs y Medios de Comunicación. Granada, 15 y 16 de mayo de 2008

0 comentarios
Se acerca la primavera, y con ella, por quinto año consecutivo, una nueva edición de las Jornadas de Blogs y Medios de Comunicación de Granada.
Toda la informaciónn en blogsymediosgranada.blogspot.com.

Las 10 leyes de Jorge para el buen diseño web

0 comentarios
CSSLab, uno de mis blogs favoritos, especializado en el desarrollo de CSS, nos obsequia hoy con un excelente decálogo de normas del buen desarrollador. Un resumen excelente que seguro que mejora en todos los sentidos las prácticas de definición de hojas de estilo de más de uno.
De las diez normas, hay algunas que a los "picadores" de código se nos enseña desde la primera clase de programación y de la que, generalmente, hacemos caso omiso:
Mantén siempre la simplicidad en todo ámbito; tanto del diseño como del código fuente.

Como esta, seguro que descubres en el decálogo unas cuantas que te estás saltando.

martes, 10 de febrero de 2009

From Lost to The River. Cortometraje en la Web 2.0

0 comentarios
Hablamos continuamente de la Web 2.0, o la web actual, y aún no hemos puesto ningún ejemplo de la utilidad de esta web. El ejemplo es tan sencillo como rodar un cortometraje casero y colgarlo en un servicio de alojamiento de video (como YouTube o Vimeo), de forma que no sólo todo el mundo tiene acceso a este video a través del alojamiento, sino que además todo editor puede publicarlo en su web, como el video que mostramos a continuación. Nótese además que para potenciar el interés de la audiencia por el cortometraje, se utiliza una melodiosa canción de The Killers además de un tema de los españoles Cycle.



En este caso, además, descubrimos una forma de marketing viral a través de la web 2.0 ya que al final del video descubrimos que es un spot de una tienda de camisetas, eso sí, para el visitante ha sido curioso ver a un hombre con una camista que luce un lema en dudoso inglés ingerir de tan peculiar manera el producto marrón, color alegórico más aún en tiempos de crisis. (¿Será que la filosofía comunista de la Web 2.0 está en realidad capitalizada? Seguramente sí.

La tecnología de la Web 2.0 de una manera sencilla

0 comentarios
Hace unos meses, contaba en La evolución de la web de una manera sencilla las guías de desarrollo que se han seguido hasta ahora en la Web y los cambios predichos para las próximas décadas, pasando muy por encima por algo que el usuario no experto de la Web desconoce: las tecnologías sobre las que se apoyará este desarrollo. Estas herramientas son, a priori, el soporte técnico que propiciará el desarrollo y, como veremos más adelante, muchas son innovaciones aún por llegar aunque otras tantas -la mayoría- se heredan de la Web 1.0. Lo que aquí se pretende exponer es el funcionamiento de esa técnica de una forma genérica y sencilla, previa explicación de las bases de la Web, para aquellos que, sin ser expertos informáticos, quieran o necesiten estar al tanto de las mismas.

Al final de este documento hay un pequeño glosario de términos básicos con la intención de que sea utilizado a la vez que se lee el resto del texto.

La Web e Internet


Los términos Web e Internet tienden a confundirse; sin embargo, pese a estar íntimante relacionados, hacen referencia a cosas diferentes. En Eduteka, basados en las definicios que la Wikipedia nos da de estos términos, nos marcan la diferencia entre Web e Internet de una forma clara. Mientras Internet es una serie de redes interconectadas entre sí -una red de redes- por diversos medios físicos, la Web es uno de los servicios de los que podemos disfrutar gracias a Internet -otro servicio, por ejemplo, es el correo electrónico, aunque existan correos basados en la Web que nos hagan confundirlos-.

Internet funciona gracias a una serie de mecanismos de intercambio de datos que vamos a obviar en este texto, diremos sólamente que se basa en una serie de 'capas' que permiten que el usuario final se abstraiga del propio funcionamiento de Internet. El reflejo de esta filosofía -seguido en todos los campos de la informática- es que un usuario frecuente de servicios de Internet no necesitará jamás conocimientos del funcionamiento de la red de redes. A un navegante de la Web le basta saber que debe abrir una ventana de su explorador y teclear una dirección sin necesidad de tener conocimiento alguno de lo que sucede desde que presiona el botón 'Ir' hasta que ante él se muestra un documento al que llamamos 'página web'. De modo que, aunque pueda sonar raro, un usuario de la Web está totalmente abstraído del concepto de Internet, lo que puede hacer que un usuario lego en asuntos internautas construya frases como "como se me ha roto el Internet" o "voy a poner el internet en el ordenador" -nada más lejos de la realidad, Internet no se rompe, en todo caso se puede averiar nuestra conexión; y de ninguna forma podemos 'meter' Internet, una red de redes, dentro de nuestro ordenador, sin embargo sí podemos 'meter' nuestro ordenador dentro de Internet mediante una conexión-.

Las bases técnicas de la Web 1.0


La Web 1.0 -o la Web, a secas- fue inventada con un propósito: interconectar personas. Y teniendo en cuenta que la Web 2.0 pretende hacer exactamente lo mismo, podemos tomar como ciertas las palabras de Sir Tim Berners, padre de la Web:
«Por supuesto que no. La Web 1.0 era enteramente para conectar personas. Se trataba de un espacio interactivo y yo creo que la Web 2.0 es una jeringonza que nadie sabe siquiera qué significa. Si para usted la Web 2.0 son blogs y wikies entonces estamos hablando de servicios y contenidos persona a persona. Pero eso era exactamente de lo que se trataba la Web. Y, sabe usted, de hecho esta “Web 2.0” lo que hace es utilizar los estándares que han producido todas esas personas que han trabajado para la Web 1.0»

Leningham (ed), developer Works Interviews, 22nd August, 2006, citado en Eduteka: Entienda la web 2.0 y sus principales servicios.

La Web fue creada con el siguiente propósito: posibilitar mediante Internet que una persona pueda publicar un contenido y que otras personas accedan a él.

Los documentos HTML


En esta Web primitiva, podíamos generar documentos mediante HTML (Hyper Text Markup Language), una versión simplificada de XML (Extended Markup Language) que nos permite insertar en nuestro documento una serie de elementos -texto, imágenes, etc..., elazarlos con otros documentos mediante hipervínculos -cualquier zona del documento, ya sea texto o imagen, en la que haciendo click nos lleva a otro documento-. Esto que en principio es bastante precario -equivale a poco más que escribir en un folio y que ese folio nos referencie a otros- se desarrolla de forma que nuestros documentos sean compuestos por diseños cada vez más vistosos y además se le añade la funcionalidad de incorporar otros elementos que lo dotan de interactividad (sonido, video, animaciones Flash, programas informáticos escritos en leguajes como por ejemplo Java, etc...).

Este sería un ejemplo muy sencillo de HTML en el que un texto sencillo contiene palabras con un formato en concreto que se define mediante marcas -tags-:
Hola, mundo. Esto es un texto que contiene palabras en <strong>negrita</strong> y un enlace a <a href = "http://webydesarrollo.wordpress.com">Web y Desarrollo</a>.

El texto, en el navegador, se vería así:
Hola, mundo. Esto es un texto que contiene palabras en negrita y un enlace a Web y Desarrollo.

La base del HTML además permite crear dentro de nuestro documento formularios, es decir, zonas en las que el usuario puede teclear unos datos para que sean procesados -más adelante veremos cómo-, lo que supone el recurso básico de interacción en la Web: utilizamos los formularios para registrarnos en foros, identificarnos en portales, utilizar aplicaciones basadas en la Web. Si un documento permitía que un editor difundiera una información, los formularios -principalmente, aunque no en exclusiva- permiten establecer un sistema de retroalimentación con el que el destinatario puede enviar información al ordenador en el que se aloja le documento -un comentario en un blog, un mensaje a través de una página de contacto, un curriculum vitae en un portal de trabajo-.

La manera de difundir estos documentos a través de la Web es la siguiente: se almacenan en un servidor Web que los envía al usuario cuando este los requiere a través de un navegador, programa al que formalmente podemos llamar cliente web, y que es el que se encarga de comunicarse con el servidor de forma que el usuario prácticamente no tiene que saber que lo que está haciendo es conectar con otro ordenador -para más información sobre este proceso ver Protocolo HTTP-. Una vez que el navegador ha recibido el código HTML lo interpreta y lo muestra en pantalla.

Uno de los detalles clave en la experiencia del usuario en este funcionamiento es que al hacer click en un hipervínculo veremos cómo la página que teníamos cargada desaparece, se activa la barra de carga de nuestro navegador y, poco a poco, van apareciendo los elementos de la nueva página -primero el esqueleto del documento HTML y después, poco a poco, las imágenes y los elementos multimedia.

Manejando nuestros documentos en el lado del cliente


Una vez que el documento está completamente cargado en el navegador de nuestro cliente, es posible que necesitemos hacer algo con los elementos que lo configuran. Un ejemplo básico es la validación de formularios, que consiste en controlar que los datos un usuario teclea en un formulario para su posterior envío de vuelta al servidor son válidos. Es necesario un programa que controle que, por ejemplo, un email es válido o que en el campo 'fecha' de un formulario el usuario ha tecleado efectivamente una fecha y además lo ha hecho en el formato adecuado (01-08-1983 es una fecha, pero 'ayer', 'mañana' o 'el día de mi cumpleaños' no son fechas válidas).

Para solucionar esto los navegadores implementan un intérprete de un lenguaje de programación que actúa sobre estos elementos. Igual que HTML se impone como lenguaje estándar para generar documentos, en el caso de los programas que se ejecutan en el navegador el que se impone es JavaScript, que si bien es excesivamente engorroso para el desarrollador nos permite acceder a todos y cada uno de los elementos del documento, no sólo formularios, sino textos, imágenes, hipervínculos, etc. para cambiar su aspecto gráfico, controlar su valores y realizar operaciones aritmeticológicas con ellos, hacer nuevas llamadas al servidor o controlar las acciones con las que el usuario interactúa con el documento -hacer click en un elemento, pasar el ratón por encima de otro, cerrar una ventana ...-.

Hay que marcar una diferencia esencial que en la que el lector profano quizás no haya reparado: HTML es un lengua de modelado de documentos que nos permite sólo y exclusivamente modelar documentos, mientras que JavaScript es un lenguaje de programación que, con más o menos limitaciones, nos permite almacenar contenidos en memoria, realizar operaciones artimeticológicas -como sumar, restar, o comparar valores- y esas operaciones van a actuar normalmente sobre los objetos que el HTML modeló previamente

Generando documentos HTML de forma dinámica: enlazar documentos HTML con programas de proceso y bases de datos


Llega un momento en el que los sitios web se complican tanto que necesitamos poder insertar datos de forma masiva. Si estamos hablando, por ejemplo, de una tienda online que ponga a disposición de sus clientes cientos de artículos, necesitaríamos cientos de documentos HTML -uno para cada artículo-, lo que se volvería difícil, casi imposible de mantener. Para ello lo que hacemos es crear un programa que se ejecutará en el servidor, y que será el encargado de generar el documento HTML en función de los datos que queramos publicar.

Cuando el navegador solicite la página al servidor web, éste lanzará un programa (un CGI, Common Gateaway Interface) que será encargado de generar el documento HTML correspondiente, accediendo si es necesario a una base de datos. El CGI además realizará las operaciones que nuestra aplicación requiera: e.g. comprobar las credenciales de un usuario, calcular el importe de la compra de una serie de artículos y añadirle el IVA., etc. Se realiza una llamada que sigue un camino desde el cliente a la base de datos y los datos realizan el camino de vuelta: el navegador pide la página al servidor web, el servidor web lanza el CGI que genera la página, el CGI accede a la base de datos y la base de datos sirve estos al CGI, que los utiliza para generar el documento HTML que el servidor web se encargará de enviar al cliente.




En el momento en que empezamos a desarrollar webs de esta forma, podemos dejar de hablar de páginas web para hablar de aplicaciones web. Se trata de programas en el estricto sentido de la palabra, y estos son capaces de gestionar datos como altas y bajas de usuarios, modificación fácil de contenidos, personalización de los mismos, etc..

El potencial de esta tecnología radica en que podemos dotar a la web de una interactividad asombrosa, es más, con aplicaciones de este tipo podemos desvincular el concepto de editor web con el de programador o diseñador. Una familia de estas aplicaciones son los CMS -Content Management System-, que permiten que un usuario lego en conocimientos de programación y diseño web pueda sin ningún problema crear, editar y gestionar contenidos -y además de una forma bastante fácil-. El concepto de CMS va a ser vital para entender el funcionamiento de la Web 2.0. Además, este tipo de programas permiten gestionar de forma automática los datos que envía un visitante al servidor -mediante un formulario, por ejemplo-, lo que significa que sin la intervención de un administrador humano, podemos manejar la interacción de los usuarios con la web -el gran boom de los CMS son los gestores de blogs, hoy día accesibles para cualquier persona con acceso a Internet independientemente de sus conocimientos-. Si creamos un programa -CGI- que publique en nuestro sitio los comentarios que envía un usuario mediante un formulario, habremos conseguido que nuestra web refleje las actividades de nuestros usuarios y que estos se puedan comunicar entre sí. Éste es el funcionamiento de un foro de discusión o de la sección de comentarios de un blog.

El uso de estas tecnologías en la Web 2.0


El lector puede preguntarse ahora: ¿Por qué dedicar tanto espacio a la tecnología de la Web 1.0 en un artículo sobre la tecnología en la Web 2.0? -más aún al saber que en adelante seguiremos hablando de la Web 1.0-. La respuesta es fácil de imaginar: los estándares, los lenguajes de programación y, por supuesto, esas "formas invisibles" de conexión entre el navegador web y el servidor, son esencialmente las mismas, si acaso mejoradas y, por supuesto, usadas con un mayor ingenio por los desarrolladores.

La web 2.0 es esencialmente un cambio en la filosofía de la Web, cuando no un potenciamiento de la misma -recordemos que Sir Tim Berners, en la declaración citada al principio, manifestaba que la filosofía propagada por los 'gurúes' de la Web 2.0 es exactamente la misma de quienes crearon los estándares de la Web 1.0. «La Web 2.0 es una jeringonza que nadie sabe siquiera qué significa», decía Berners. En realidad, si partimos de la base de que la filosofía de la Web 2.0 -en esencia, maximización de la interacción entre usuarios y mejora de la confortabilidad de nuestros diseños web-, nos damos cuenta de que eso era exactamente lo que se buscaba con la Web primitiva: interconectar personas, si bien la usabilidad era más complicada por una mera cuestión de recursos, principalmente la escasa velocidad de nuestras conexiones. Si tenemos en cuenta que además los estándares son los mismos -aunque en versiones más modernas- y que la arquitectura de la Web es idéntica -aunque con conexiones a Internet más rápidas-, nos damos cuenta de que en realidad el concepto de Web 2.0 no es más que una jerigonza. Sin embargo, nos sirve para identificar una seride prácticas en el desarrollo y su inmensa utilidad, pequeñas novedades que el mundo del desarrollo para la web ha incorporado para potenciar los servicios que ofrece.

Separando contenidos y estilo: HTML Y CSS


Si bien antes se tendía a generar un documento HTML que tenía de por sí un aspecto, un diseño gráfico, ahora contamos con la posibilidad de utilizar CSS (Cascade Style Sheets). Las CSS componen un lenguaje para definir el aspecto de un documento HTML, lo que nos permite generar un documento HTML en un fichero, definir su apariencia en un fichero diferente y además hacerlo de forma más detallada, más fácil y con un código más limpio. Es decir, hay el qué del cómo. En menos tiempo obtendremos diseños más vistosos y más fácil de mantener.

El uso de las CSS se potencia durante el crecimiento de la Web 2.0, pero es un invento de mediados de los noventa, es decir, un recurso de la Web 1.0.

Pero pongamos un ejemplo. Supongamos que queremos que un hipervínculo cambie de color y se vuelva rojo al posar el ratón encima. Sin CSS, tendríamos que escribir un pequeño programa en JavaScript que, al detectar el ratón, cambiara el color del texto y que además lo devolveria a su estado orginal al alejar el ratón. Con CSS, nos basta escribir apenas unas palabras:
a:hover{color: #CC0000;}

Eso sí: CSS define el estilo de un documento, pero no es un lenguaje de programación como JavaScript. Con CSS no podemos, por ejemplo, validar formularios. Tienen objetivos totalmente diferentes.

Una nueva funcionalidad en la programación del lado del cliente: AJAX


En la Web 1.0 podíamos realizar pequeños scripts escritos en JavaScript para manejar nuestros documentos HTML -y por supuesto, de haberlas, las CSS-. Esto es porque tanto HTML como CSS sirven para definir los objetos que van a aparecer en el documento y JavaScript está pensado para actuar directamente sobre esos objetos.

En la programación del lado del cliente, hay una mejora técnica significativa: la incorporación a los navegadores del objeto XMLHttpRequest, que permite que el navegador haga conexiones al servidor sin perder el contenido la página cargada en ese momento. Esto nos permite, mediante JavaScript, llamar al servidor para enviar y recibir datos y modificar el documento que tenemos en pantalla. Se trata en definitiva de combinar HTML -hijo de XML- y JavaScript, por eso esta combinación de tecnologías de la Web 1.0 -es decir, no una nueva tecnología- se llamó AJAX (Asynchronous JavaScript And XML). Existen otras técnicas de conexión asíncrona con el servidor, como por ejemplo Comet (utilizado en Facebook o el chat de GMail), que hará que el servidor envíe datos al cliente sin que este los pida, pero en este texto nos quedaremos sólo con AJAX como ejemplo de innvación técnica en la Web.

AJAX va a permitir mejorar la experiencia del usuario aprovechando esta funcionalidad: enviamos datos al servidor -mediante formularios, por ejemplo- y recibimos el resultado en la misma página que estábamos visitando, lo que nos permite seguir interactuando con la página mientras que se realiza la llamada, se procesa, y se recibe una respuesta de vuelta. Si estas llamadas se realizan de forma automática mediante JavaScript podemos hacer que un listado -un menú con noticias de última hora o los emails de una bandeja de entrada- mostrado en una página se actualice con cierta frecuencia sin que el usuario sepa que ese están realizando, podemos programar un sistema de chat cómodo sin necesidad de utilizar aplicaciones externas.

Proliferan ahora las aplicaciones que usan AJAX u otro tipo de conexiones asíncronas, sobre todo en redes sociales, ya sea de una forma discreta para cuidar detalles, o con una carga importante de esta técnica. Sirva de ejemplo Facebook, que la utiliza en buena parte de su interfaz. Para ver más aplicaciones web que hacen uso de AJAX recomiendo visitar esta lista de Albert Ribera.

CMS y entornos de desarrollo basados en estas tecnologías


Lo que realmente potencia estas antiguas tecnologías es el desarrollo de programas y bibliotecas que facilitan el trabajo del programador, permitiendo crear aplicaciones más complejas, más completas y más sencillas. Durante el periodo de vida de la Web 2.0 se han liberado multitud de CMS que han permitido que muchos editores web puedan despreocuparse casi por completo del lado de desarrollo del software y del diseño para, sencillamente instalando un programa, tener funcionando un portal -Joomla-, un blog -WordPress- o una tienda online -OsCommerce-. Existen CMS de código libre para crear redes sociales como Elgg. La mayoría de estos CMS se basan en un CGI -normalmente PHP- que actúa sobre una base de datos -normalmente MySQL-. El objetivo es que la posibilidad de crear un sitio Web vaya más allá de los desarrolladores y esté disponible para todo el mundo.

Además, se han programado y liberado frameworks -entornos de desarrollo- que han potenciado el desarrollo por su sencillez. En el caso de JavaScript, el uso de JQuery -un framework, al fin y al cabo una biblioteca de funciones escrita en JavaScript- supone una inmensa sencillez a la hora de desarrollar en JavaScript funcionalidades que eran hasta el momento muy engorrosas si no complejas, y que ahora se vuelven fáciles de escribir y depurar. Otro framework muy interesante es XAJAX, que nos permite generar el código AJAX -que, recordemos, es un código para el cliente- desde PHP -es decir, con un CGI, desde el lado del servidor-, ofreciendo una forma de programar la intereacción cliente/servidor mucho más rápida y de código más sencillo de mantener.

Entendamos de forma sencilla lo que es un framework. Cuando tenemos que programar continuamente la misma funcionalidad de un programa, o muy similar, fragmentos de programas a los que llamamos librerías que reutilizamos. Un framework tiende a ser la implementación de una o varias de estas librerías.

No existe una tecnología propia de la Web 2.0


De este resumen se desprende que la Web 2.0 no utiliza una tecnología propia o revolucionaria con respecto a las tecnologías utilizadas en la Web 1.0. Se trata de aprovechar la misma infraestructura, los mismos estándares, incluso los mismos lenguajes de programación de la Web 1.0 para conseguir desarrollar soluciones que cumplan el objetivo de la Web 2.0: interconectar personas. Y estas interconexiones, ahora que se busca que cualquier sistema tenga funcionalidades de red social, deben traducirse en implementar abstracciones de la sociedad real que representen y potencien de forma virtual la realidad. En mi opinión, está claro que el objetivo estará cumplido cuando cada persona o empresa se identifique en la Web de forma unívoca -lo que implica la garantía entre otras muchas cosas que todo el mundo debería poder acceder a Internet-.

Si basamos el concepto de Web 2.0 en la filosofía de interconectar personas y recordamos que ese era el objetivo de Sir Tim Berners y todos los desarrolladores de la Web 1.0, resulta que en la actualidad no existe una Web 2.0 como tal, existe la Web a secas, eso sí, en un estadio de desarrollo muchísimo más avanzado que hace diez años. Pero los cambios no son significativos. Diría yo en todo caso que le década pasada la Web estaba en su versión 0.5 y estamos llegando a la Web 1.0.

El verdadero cambio significativo estaría entonces en el desarrollo de la Web semántica o Web 3.0, cuyo primordial objetivo es que los programas informáticos que componen la Web puedan comunicarse con el usuario. Es decir, si en un sistema de comunicación natural contamos con un emisor, un medio y un receptor, en el mundo de los buscadores web existe una clara barrera artificial entre la idea que un editor web pretende publicar y la idea que un usuario busca, y esta barrera consiste en que un robot de búsqueda no es más que un sistema artificial capaz de procesar conjuntos de letras, no palabras y mucho menos ideas, capacidad de la que gozan en exclusiva algunos seres inteligentes.

No obstante no creo que el concepto de Web 2.0 sea una "jerigonza" en el sentido coloquial y despectivo del término. Distinguir entre el estado de desarrollo de la Web de la pasada década de y de ésta nos permite definir objetivos a cumplir en el futuro y descubrir cuáles son los pasos a seguir.

Glosario


AJAX- Asynchronous JavaScript And XML. Combinación de tecnologías que permite la conexión asíncrona a un servidor web.

Base de Datos- (según la Wikipedia) Conjunto de datos pertenecientes a un mismo contexto y almacenados sistemáticamente para su posterior uso (e.g. MySQL).

Blog- Web Log, Diario Web, llamado normalmente bitácora en español. Se trata de un sitio web de actualización frecuente cuyo origen radica en la pretensión de un usuario de la web de publicar contenidos diariamente, en principio de caracter personal, con el tiempo específicos de alguna profesión o actividad (e.g. webydesarrollo.wordpress.com).

Cliente- Ordenador perteneciente a una red cuya actividad principal es recibir datos o programa que se ejecuta con este objetivo (e.g. el ordenador en el que usted está leyendo estas palabras).

Cliente web- Ver Navegador web.

CMS- Content Management System. Aplicación basada en la web que permite de forma sencilla la administración de contenidos de un sitio (e.g. Wordpress, Joomla).

CSS- Cascade Style Sheet. Lenguaje que permite definir el aspecto gráfico de un documento HTML y fichero que se escribe en este lenguaje.

CGI- Programa que recibe, procesa y genera datos en un servidor web.

Hipertexto- Texto cuyos contenidos pueden conducir a otros textos.

HTML- Hyper Text Markup Languaje. Lenguaje de marcas utilizado en la producción de documentos para la web.

Internet- Red internacional formada por redes de ordenadores.

JavaScript- Lenguaje de script que se ejecuta en un cliente web y que permite el proceso de datos sin intervención del servidor web.

JQuery- Framework que permite el desarrollo de scripts escritos en JavaScript de forma sencilla, rápida y eficiente.

Navegador web- Programa que recibe los datos de un servidor web para mostrarlos por pantalla a un usuario (e.g. Internet Explorer, Firefox...).

Red- Conjunto de ordenadores interconectados entre sí.

Servidor- Ordenador cuya actividad principal es el envío de datos a clientes o programa que se ejecuta en él.

Servidor web- Ordenador cuya actividad principal es el almacenamiento y servicio de sitios web o programa con este objetivo (e.g. Apache).

Web- (Según la Wikipedia) Sistema de documentos de hipertexto y/o hipermedios enlazados y accesibles a través de Internet. Con un navegador Web, un usuario visualiza páginas web que pueden contener texto, imágenes, vídeos u otros contenidos multimedia, y navega a través de ellas usando hiperenlaces.

miércoles, 4 de febrero de 2009

Explorer y estándares

0 comentarios
Descubro hoy el blog de Churba y Portillo, que esta mañana publicaba un interesante artículo: ¿Cuánto nos cuesta Internet Explorer?. En este artículo se hace una interesante estimación (no numérica) de la cantidad de tiempo y por lo tanto de dinero que un desarrollador web debe invertir en que sus trabajos, aún siendo realizados con todo el cuidado para cumplir los estándares, sean visibles en Internet Explorer, hasta ahora el navegador más popular de la red con mucha diferencia (acumula casi el 70% del mercado).

Esta popularidad es consecuencia de su distribución con Windows, en ningún caso se debe a una mayor sencillez, velocidad o seguridad con respecto a otros navegadores. Por fortuna, esto se está haciendo notar. Llevamos mucho tiempo predicando el uso de otro tipo de navegadores (principalmente Firefox) y yo personalmente, a los usuarios profanos y con pocas ganas de aprender el uso sencillo de Firefox, les recomiendo usar Chrome. Poco a poco el usuario de a pie descubre las ventajas de otros navegadores, y hoy 20minutos publicaba la noticia de que Internet Explorer ha perdido un 7% de usuarios, aunque sigue siendo usado por un 67% del mercado.

Eso significa que aproximadamente dos de cada tres persona utilizan Internet Explorer. Si tú eres una de esas personas, deja un comentario aquí explicando por qué no usas otro navegador.

martes, 27 de enero de 2009

Conficker: Formatear windows

0 comentarios
Leo en el país que Microsoft recomienda que los afectados por el virus Conficker reinstalen Windows. Parece ser que el no instalar la actualización crítica de octubre de 2008, con la que se corregía un grave agujero de seguridad de Internet Explorer ha propagado el virus. Para los usuarios deWindows, estos son mis consejos preventivos:

Actualizar Windows.

Usar Firefox.

Si ya has sido infectado por el virus y tienes que reinstalar:

Olvida Windows.

Instala Ubuntu.

Usa Firefox.

Cabe la posibilidad de que estés pensando que Ubuntu es para usuarios avanzados. En ese caso tampoco dominarás mucho Windows, así que igualmente instala Ubuntu :).