<$BlogRSDUrl$>

30 marzo 2006

Web del Día 

Sin duda la de Marcos que en los últimos dos días ha batído todos los records (propipos) de visitas.
Y todo gracias a mi meneo.

2 Comentarios
Enlaces a este envio:

Nuevo Currelo 

Para los que todavía no lo sabéis: Tengo nuevo curro. De estos de 8h al día y todo. Empecé ayer y he vuelto hoy. Buena señal.
Como contrapartida tendré menos tiempo para "andar por Internet". O también puede ser algo bueno. Ya veremos.

0 Comentarios
Enlaces a este envio:

22 marzo 2006

Impugnación del Canon 

La gente de Derecho Internet nos prestan su ayuda en la lucha contra el injusto canon de los soportes digitales. En esta página puedes encontrar información para efectuar las reclamaciones sobre este injusto impuesto sobre la cultura.

0 Comentarios
Enlaces a este envio:

21 marzo 2006

Friki 

Recientemente me han preguntado qué es un friki. Como buen friki me he ido a la wikipedia a buscar la respuesta.
El artículo es bastante extenso, pero os pego el primer párrafo:
Friki, frik o freaki (del inglés freak, que significa raro, extravagante, estrafalario, fanático), es un término usado en el habla hispana, para referirse a la persona interesada u obsesionada con un tema, afición, o hobby en concreto. El interés que presenta el friki, puede llegar en varios casos a que sea denominado de extravagante, o el integrar parte de una comunidad específica.

0 Comentarios
Enlaces a este envio:

16 marzo 2006

Frikadas 

Y como el día está de frikis os dejo ésta:
He descargado y compilado la última versión de aMule (como el emule pero para linux), en concreto la versión del CVS del 16/03/02. Cual es mi sorpresa (poca conociendo a la gente que nos movemos por aquí) que al intentar ejecutar el programa me dice:
>amule
This binary requires you to use the flag --only-chuck-norris-would-stop-me and only if you're very sure of it.

Solo Chuck Norris podría detenerme. O algo así. No se exactamente la razón del mensaje, no se si es porque he compilado algo mal o simplemente para advertirte de que es la versión en desarrollo y que no es estable. Pero éstos se podían apuntar al día del orgullo friki seguro.

1 Comentarios
Enlaces a este envio:

Día del orgullo friki 

El próximo 25 de Marzo se celebrará el Día del Orgullo Friki. Os invito a todos a visitar la página y leer acerca de este movimiento social.


0 Comentarios
Enlaces a este envio:

Web del día 

Bueno, creo que ahora podré dejar de reir un rato y secarme las lágrimas...
La web del día de hoy nos acerca el concepto de leyenda urbana (si como en la peli) y nos lo plantea desde una perspectiva cómica. Imaginaté que el próximo correo encadenado que te llega dice:
El cuerpo humano está repleto de mecanismos nerviosos desconocidos y poco estudiados. Las terminaciones nerviosas situadas en el anverso de las orejas están directamente conectadas a la zona encefálica que controla los espasmos musculares. Si cuando estás follando notas que te vas a correr, dobla tus orejas hacia delante apretándolas con el dedo índice de cada mano y conseguirás retrasar tu orgasmo de forma directa.

Esperad que me seco las lágrimas otra vez...
Bueno podéis encontrar 8 leyendas urbanísimas aquí via meneame.

0 Comentarios
Enlaces a este envio:

13 marzo 2006

Un apunte sobre la lección 5 del Tutorial de AJAX 

Si echais un vistazo en el código fuente del ejemplo 5 vereis que las 5 líneas que forman la función procesa se pueden resumir en una:
$(peticion.responseXML.getElementsByTagName('id_elemento').item(0).firstChild.data).innerHTML = peticion.responseXML.getElementsByTagName('contenido').item(0).firstChild.data


0 Comentarios
Enlaces a este envio:

Tutorial AJAX - Lección 5 - AJAX 

Recapitulemos lo que hemos visto:
Hemos visto cómo modificar elementos de la página mediantes JavaScript, DOM y CSS.
Hemos visto cómo comunicarnos con el servidor (de una forma fácil gracias a Prototype) de forma asíncrona.
Cómo recoger los datos que nos dá el servidor y tratarlos.
Pero en los dos ejemplos anteriores éstos datos eran texto simple que colocabamos a nuestra elección. Y nos falta la X de AJAX: XML.

Vamos a estudiar ésto con un ejemplo: Tendremos nuestra página web con varios botones que realizarán diferentes peticiones al servidor. El servidor devolverá diferentes documentos XML con la siguiente estructura:

<?xml version="1.0"?>
<cambio>
<id_elemento>identificador</id_elemento>
<contenido>contenido</contenido>
</cambio>


El significado está claro: nos devuelve datos de un elemento de la página (en nuestro ejemplo serán capas) y qué hay que poner en ese elemento. Podría ser tan complejo como quisiéramos, pero de momento nos es suficientes con ésto ¿no os parece?
Veamos el código HTMl:

<input type="button" id="boton1" onclick="pide('leccion5_1.xml')" value="Uno">
<input type="button" id="boton2" onclick="pide('leccion5_2.xml')" value="Dos">
<input type="button" id="boton3" onclick="pide('leccion5_3.xml')" value="Tres">

<div id="leccion5_capa1" style="border: 1px solid black; overflow: auto; width: 300px; height: 150px;float:left"></div>
<div id="leccion5_capa2" style="border: 1px solid black; overflow: auto; width: 300px; height: 150px;float:left"></div>
<div id="leccion5_capa3" style="border: 1px solid black; overflow: auto; width: 300px; height: 150px;"></div>

Nada raro, cada botón pide un XML distinto que contendrá instrucciones distintas.
Veamos ahora la función pide():

function pide(url)
{
var myAjax = new Ajax.Request(url, {method: 'get', onComplete: procesa});
}

Fácil tambien, ¿no? Se pide el archivo (en este caso XML) que venía en el parámetro y cuando se tenga se ejecuta procesa. Veamos esta función:

function procesa(peticion)
{
var respuesta = peticion.responseXML;
var txt = peticion.responseText;
var elemento = respuesta.getElementsByTagName('id_elemento').item(0).firstChild.data;
var contenido = respuesta.getElementsByTagName('contenido').item(0).firstChild.data;
$(elemento).innerHTML = contenido;
}

Nada nuevo excepto:

Con ésto termina la lección cuyo ejemplo podéis encontrar aquí. Siento la publicidad, de la que no me llevo nada (si me llevo de la que hay en este blog), pero no he encontrado nada mejor.
La siguiente lección será de acceso a bases de datos por petición (offline) de los alumnos.

0 Comentarios
Enlaces a este envio:

Recuperamos a Penti y Atlo 

Llevabamos un par de semanas sin esta tira por su cambio de hosting. Ahora ya las tenemos disponibles otra vez, en su lugar correspondiente.

0 Comentarios
Enlaces a este envio:

12 marzo 2006

Web del Día 

Te leeo la mente...
Este programa te adivina el pensamiento a través de preguntas. Una interesante aplicación de la inteligencia artificial.

0 Comentarios
Enlaces a este envio:

08 marzo 2006

Cómo instalar Xgl y Compiz en Mandriva 

Cómo instalar Xgl y Compiz en Mandriva, desde los fuentes o desde RPMs.
Edito para añdir las modificaciones que veo que hacen que funcione mejor:

#!/bin/bash
export PATH=$PATH:/opt/xgl/bin/
/opt/xgl/bin/Xgl :1 -ac -kb -accel xv:pbuffer -accel glx:pbuffer &
sleep 5
DISPLAY=:1 startkde & sleep 30
DISPLAY=:1 LD_LIBRARY_PATH=/opt/xgl/lib/Mesa/ /opt/xgl/bin/compiz --replace gconf decoration wobbly fade switcher minimize cube rotate zoom scale move resize place opacity menu &
DISPLAY=:1 LD_LIBRARY_PATH=/opt/xgl/lib/Mesa /opt/xgl/bin/gnome-window-decorator --replace &


0 Comentarios
Enlaces a este envio:

¿20 Megas? 

Ya tengo lista mi conexión de 20Megas. ¿O no? El router solo sincroniza a 8 y 800K de subida (lo cual si es una mejora). Pero NO son 20Megas.
Y lo peor es que no se puede protestar (si alguien opina lo contrario que diga cómo).
La verdad es que 8Megas está muy bien, por lo menos suficiente para mi. A ver si con el tiempo mejora.

0 Comentarios
Enlaces a este envio:

Lección 5 

No, no es la lección 5. No pone el título completo ¿no?
Escribo para comentaros un par de cosas:
- Dejad algún comentario, que yo sepa que alguien se lee lo que escribo!
- La lección 5 se va a retrasar. El motivo es que el sitio donde tengo alojados los ejemplos (google pages) es muy cutre y cuando devuelve ficheros XML (si, por fin vamos a ver la X) no devuelve correctamente el Content-Type: text/xml y por lo tanto el responseXML (la función que transforma la respuesta a un objeto XML que se puede tratar cómodamente) no funciona.
Mientras busco la solución, releereos las lecciones, buscadles errores, plantear preguntas o ejemplos que se os ocurra.

2 Comentarios
Enlaces a este envio:

01 marzo 2006

Tutorial AJAX - Lección 4 - La libería Prototype 

En la Lección 3 hemos visto cómo comunicarnos con un servidor de forma asíncrona. El código resultante es un churro de mucho cuidado. Podríamos crearnos una función que nos crease el objeto XMLHttpRequest. Pero como nos han dicho muchas veces ¿por qué reinventar la rueda? Otros lo han hecho por nosotros y seguro que mejor.

La libería Prototype nos proporciona la clase Ajax para poder hacer las operaciones asíncronas en una sola línea.
Como ejemplo vamos a poner el mismo que en la lección 3, pero usando la librería.
Lo primero es incluirla:

<script src="prototype.js" type="text/javascript"></script>


El código de la página el mismo:

<div>
<input onclick="leccion4()" value="Botón" type="button"/>
<div id="leccion4_capa1" style="border: 1px solid black; overflow: scroll; width: 300px; height: 150px;"></div>
<p>
<a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10.png" alt="Valid XHTML 1.0 Strict" style="border: 0px none ;" height="31" width="88"/></a>

</p>
</div>

y la función leccion4 así:

function leccion4()
{
var myAjax = new Ajax.Request(
"leccion3_2.html", {
method: 'get',
onComplete: hayrespuesta
});
}

Si. Ya está. Os hice sufrir con la lección 3, pero es que hay que ver las bases antes de poder usar las cosas avanzadas, ¿no creeis?
Ahora la función hayrespuesta:

function hayrespuesta(peticion)
{
// Recuperamos lo que nos ha devuelto el servidor en forma de texto:
var txt = peticion.responseText;
// Y lo ponemos en la capa:
// Usamos la función $ que nos da acceso directamente a un elemento mediante el id y nos ahorramos el incomodo document.getElementById
$("leccion4_capa1").innerHTML = txt;
}

Fijaros como accedo a la capa donde tengo que poner el texto: $("leccion4_capa1").innerHTML = txt; La función $ sustituye a document.getElementById. Nos va a hacer la vida más fácil.
En siguientes lecciones veremos otras funciones y funcionalidades que nos aporta Prototype y, por fin, manejaremos datos en XML.

Ved el ejemplo 4

0 Comentarios
Enlaces a este envio:

Web del día 

Me voy a unir a esta plataforma.

0 Comentarios
Enlaces a este envio:
Nedstat Basic - Estadisticas gratis