Cómo pasar de amar a odiar ‘Lost’ en un solo capítulo

Perdidos

Perdidos

NOTA PRELIMINAR: Esta entrada NO contiene spoilers sobre el final de ‘Perdidos’, aunque es posible que sí exista información sobre otros capítulos de la serie, sus personajes y sus características especiales.   

Escribo estas líneas después de ver el último capítulo de ‘Perdidos‘ y sin leer absolutamente ninguna impresión sobre él en ningún blog, página web u otro medio, por lo que este es un post virgen y no contaminado; es sólo mi opinión personal. No me gusta para nada salirme del topic del blog, pero mis lectores saben que a veces no hay más remedio cuando la causa lo merece o el tema es interesante.    

He quedado tremendamente decepcionado con el final de la serie. La primera temporada, abanderada por un capítulo piloto que no desmerecía nada frente a las grandes producciones hollywoodienses, fue impresionante. Una trama intrigante y emocionante, con personajes sólidamente encajados en la urdimbre y definidos a la perfección mediante flashbacks puntuales de sus vidas.    

El resto de temporadas la cosa se complicó mucho, hasta llegar a un punto que entre flashbacks, flashforwards, flashsideways (algo totalmente novedoso), viajes en el tiempo y el propio argumento de la realidad presente, como te perdieras dos o tres capítulos ya no te enterabas de nada. Sin embargo, el guión era muy bueno y parecía estar completamente asentado e intrincado en la historia, de la cual los guionistas ya conocían su final y no hacían más que llevarnos, pasito a pasito, hasta el inexorable conocimiento. ¡Qué equivocados estábamos!    

Una vez visto este último episodio se aprecia con total pureza que el guión no ha sido más que un «a ver cómo salimos del paso hoy». Nada de lo visto hasta ahora en seis años tiene sentido con un final tan predecible como increíblemente impredecible. A mi modo de ver no creo que nadie esperara un desenlace tan manido y tan sinsentido como el visto hoy. Vamos, que sólo les ha faltado mostrar una imagen de Jack Shephard despertando de una borrachera y argumentar que toda la serie ha sido un sueño del doctor.    

Pienso que los productores de ‘Perdidos’ idearon una primera temporada con el objetivo de ver qué alcance tenía en el público la serie. Una vez observada la tremenda reacción que produjo en la audiencia y lo bien que cayó en el saco de la crítica, decidieron alargar, como en una lenta agonía, una trama que no podía sostenerse de otra manera que de la forma más absurda posible. Y eso teniendo en cuenta que, en un principio, se dijo que ninguno de los sucesos ocurridos tendría una explicación fuera del ámbito científico. Menos mal. 

Volviendo la vista atrás, una vez terminada la serie, observamos que nada ha valido la pena. ¿Qué oscuros secretos de la isla ansiábamos desvelar? ¿Secretos? ¿Qué isla? Me temo que nos vamos a quedar con las ganas, aunque ya ni ganas tenemos, porque con el recurso final utilizado todo puede tener la interpretación que a cada cual se le ocurra. Algunos dirán que no son tan importantes los secretos individuales como la experiencia vital de los protagonistas. Pues vale, pues me alegro.   

Ya dan igual los números chungos, el humo negro, los contactos de Jacob con los personajes a lo largo de su historia, Los Otros, la Iniciativa Dharma, los osos polares, los problemas de embarazo, la historia de Ilana o de Annie, los caballos misteriosos, la estatua o por qué es Desmond inmune a los pulsos electromagnéticos. Todo da igual porque nada ha sido realmente.    

Ha representado la manera más formidablemente estúpida de cargarse lo que parecía la madre del cordero de las series televisivas, aunque no es la primera vez que su cocreador J. J. Abrams perpetra algo así, pues ya lo hizo con ‘Felicity‘. No se puede improvisar durante seis años, capítulo a capítulo, sin saber dónde o cómo va a terminar todo, sin tener una línea argumental robusta. El ingenio que demostraban los guionistas para unir sucesos en el tiempo, cruzando historias del pasado que tienen consecuencias en el futuro, ha sido desacreditado de un brochazo al no saber resolver con coherencia los misterios engendrados. Es como si alguien te hace un truco con naipes y después te dice que no hay ningún truco real, que «es magia». 

Lo único que se desveló en el penúltimo capítulo, a modo de «somos cojonudos, sabemos unir principio y final», fue la muerte de la madrastra de Jacob y su hermano, cuyo enterramiento es el que encuentra el doctor Shephard en la primera temporada. Además nos ponen ahí fogonazos de las imágenes antiguas por si se nos había pasado por alto. Chapuza. 

La bola de nieve de absurdidades que habían creado, haciéndonos creer que todo tiene un porqué, había crecido tanto que han tenido que tomar la puerta falsa, haciendo mutis por el foro. No me extraña que los responsables de la serie hayan comentado que no tienen intención de hacer ninguna declaración posterior al capítulo final y que piensan retirarse del mundanal ruido durante una buena temporada.    

No voy a decir que me sienta engañado, porque nadie me ha obligado a seguir la serie, pero sí me siento desilusionado. Esperaba mucho más de ‘Lost’, pero nos ha demostrado que sólo era un castillo de humo (negro) construido sobre la nada y que, como la nada, se ha esfumado. Mención especial aparte al pésimo sistema de subtítulos de Cuatro, que cuando no estaban desincronizados, se cortaban o, simplemente, no aparecían. Sí, ya sé que ha sido algo a la carrera, pero es un tema que deberían tener más que controlado.    

Los misterios que supuestamente se revelarán en los DVD de esta sexta temporada se los pueden ahorrar. Ya nada tiene sentido. Un truño de final en toda regla. Igual yo soy uno de esos que no entienden los finales metafísicos inteligentes, o quizás no me he enterado de nada en todo este tiempo, pero desde luego la serie que comencé a ver no se corresponde con la de este final. No sé, ¿a vosotros qué os ha parecido?

Frases con historia (X)

Siempre se ha dicho que un millón de monos golpeando un millón de máquinas de escribir conseguirían eventualmente reproducir las obras completas de Shakespeare. Ahora, gracias a Internet, sabemos que no es cierto.

Robert Wilensky, Profesor emérito de UC Berkeley. 1996.

Rotoscopiando desde Betty Boop hasta ‘Avatar’

Rotoscopio original

Rotoscopio original

No, el verbo rotoscopiar no existe, pero me molaba un título (como diría Borja de QVMT) «así, a lo gerundio». Cosas de la edad, ya sabes.  

En 1912, Max Fleischer, uno de los pioneros en la creación de dibujos animados, y su hermano Dave inventaron un aparatejo al que llamaron rotoscopio. Bueno, supongo que ellos lo llamarían en inglés o en polaco (porque polacos eran), pero aquí lo conocemos con ese rotundo nombre.  

El rotoscopio, que nada tiene que ver con un instrumento para observar las estrellas estropeado :-), era un dispositivo que permitía utilizar fotogramas de cine capturados de la realidad como referencia a la hora de animar los dibujos, es decir, servía para copiar uno a uno los frames de una filmación real, transformándola en dibujos animados y consiguiendo así un realismo excepcional en los movimientos de los personajes.  

La técnica en cuestión es muy sencilla. Un proyector, controlado por el dibujante, va plasmando los fotogramas de la grabación realizada sobre un escritorio transparente y, sobre éste, se calcan literalmente los contornos de las personas, animales o cosas cuadro a cuadro. El artista agregará después sobre estos bocetos los elementos propios de la animación como, por ejemplo, caras caricaturizadas. El resultado final es un personaje de dibujos animados con un movimiento prácticamente igual al del mundo real.  

Rotoscopia de un caballo trotando

Rotoscopia de un caballo trotando

La primera animación rotoscópica fue la de Koko el payaso (Koko the clown), el personaje principal de la serie ‘Out of the inkwell‘, creada por los hermanos Fleischer en 1914. El propio Max Fleischer fue grabado realizando los movimientos del payaso para, posteriormente, pasar por el rotoscopio y generar la animación  de Koko.

En el siguiente vídeo se puede visionar el capítulo ‘The tantalizing fly’ de esta serie y comprobar los movimientos tan perfectos del payaso.

El éxito de la técnica fue tal que, en los años siguientes, la utilizaron multitud de animadores en sus producciones. Los ejemplos más notables fueron el de Betty Boop, un personaje femenino de mucho éxito en los años treinta, y el de la película ‘Blancanieves y los siete enanitos, el primer largometraje animado de Walt Disney, de 1937.  

Sólo hay que visualizar el baile de Betty Boop en las últimas escenas (minuto 6:25) del corto ‘Betty Boop’s Bamboo Isle‘ (vídeo anterior) o los movimientos de Blancanieves (siguiente vídeo), su madrastra y la bruja para darse cuenta de que son impecables. Ni los actuales dibujos animados en 3D gozan de una movilidad tan real a la hora de bailar, correr, aplaudir o huir.  

Desde aquellos días hasta la actualidad, la rotoscopia no ha sido abandonada en absoluto, si bien ha evolucionado hasta las modernas técnicas 3D de captura de movimiento, conociéndose también como rotoscopia 3D. En la primera trilogía de ‘La guerra de las galaxias‘ (‘Star Wars’) se usaron técnicas rotoscópicas para dibujar el haz láser de los sables de luz sobre las escenas ya filmadas de los actores, que portaban palos para la lucha. Hoy en día el dibujo ya no se hace a mano, sino mediante un ordenador, pero el concepto es el mismo.  

Películas como ‘Tron‘, ‘La sirenita‘, ‘La bella y la bestia‘, ‘Aladdin‘ o ‘Pocahontas‘, entre otras, se han servido de la rotoscopia para generar todas o parte de sus escenas. La propia ‘Blancanieves y los siete enanitos’ fue tremendamente laureada en su época y, sin embargo, recibió también infinidad de críticas de descrédito por parte de muchos especialistas del sector, pues alegaban que aquello no era animación pura y dura, sino un simple plagio de la realidad. Se llegó a decir que los animadores de Disney eran tan malos en su trabajo que necesitaban recurrir al calco para obtener una animación fiable. ¡Ay! Si la envidia fuera tiña…  

Las modernas técnicas de captura de movimiento derivan del uso de la fotogrametría y de la utilización de un software específico en un ordenador. La fotogrametría es una técnica para determinar las propiedades geométricas de los objetos y sus situaciones espaciales a partir de imágenes fotográficas. Es una disciplina topográfica y geodésica que ha sido inteligentemente portada al mundo del cine.  

Seguro que has visto en los making of de las películas a esos actores con trajes especiales llenos de bolitas reflectantes. Esta es una de las técnicas, aunque existen varias. Esos puntos son seguidos por varias cámaras que remiten la información a un ordenador con un software que se encarga, mediante triangulación, de calcular la posición exacta en el espacio de cada punto. Los movimientos del actor son guardados y, posteriormente, se aplican a modelos 3D generados por computadora.  

Este sistema, que aún se conoce como rotoscopia 3D (aunque poco tiene que ver con la rotoscopia original), fue el utilizado, por ejemplo, en películas como ‘El señor de los anillos‘. El director, Peter Jackson, buscaba a un doblador para ponerle voz a Gollum y casi de casualidad se encontró con un actor (Andrew Serkis) muy atlético que no sólo le pondría voz al personaje sino que, con sus movimientos y expresiones, crearía el imaginario de Gollum y le daría la vida que tanto se había estado buscando. El actor asumió, pues, el rol de Gollum como personaje de carne y hueso. Además era mucho más fácil para los actores interactuar con otro actor que con el vacío, lo cual generaba ya de entrada un mayor realismo de toda la acción.  

Por exigencias del guión de la tercera parte de la saga, Gollum tenía que parecerse al actor real, lo cual supuso recrear digitalmente las facciones a partir del propio actor. Se trata de la captura de movimiento llevada a su máxima expresión, a la de los gestos faciales, mediante puntos emisores de datos en zonas determinadas de la cara. Este tipo de captura de movimiento (con diversas técnicas), así como la de los movimientos corporales, se ha utilizado en infinidad de producciones como, por ejemplo, ‘Avatar‘, donde los habitantes de Pandora habían de parecerse claramente a los actores que los encarnaban.  

Captura de movimiento facial en 'Avatar'

Captura de movimiento facial en 'Avatar'

Las técnicas rotoscópicas y sus derivados modernos no sólo se han empleado en el mundo del celuloide. Muchos de los videojuegos actuales se sirven de esa tecnología para crear animaciones realistas de sus personajes durante el juego o en las sucesivas escenas de vídeo animado que van entre niveles (y que ahora no me acuerdo cómo demonios se llaman). Juegos como ‘Another World‘, ‘Hotel Dusk: Room 215‘, ‘Resident Evil 2‘ o ‘Final Fantasy VIII‘ son un buen ejemplo de ello. También destacan en este aspecto la mayoría de juegos deportivos de última hornada.  

No obstante, en el terreno de la animación facial realista orientada a los motores de videojuegos queda aún bastante camino por recorrer. Títulos como ‘Heavy Rain‘ han tenido un ambicioso objetivo: ser capaces de sortear el temido valle inquietante (o al menos pasar a hurtadillas al lado del mismo sin perecer en el intento) para demostrarnos que nos encontramos ante la generación definitiva de la representación efectiva de personajes en tiempo real.  

Captura de movimiento para un videojuego deportivo

Captura de movimiento para un videojuego deportivo

Pero si existe un juego que utilizó una técnica rotoscópica y que más llamó mi atención por rudimentaria y excelente, ese es sin duda el ‘Príncipe de Persia‘, el de 1989. Su autor, Jordan Mechner, estudió durante varias horas filmaciones de su hermano pequeño corriendo y saltando con ropa blanca para, después, trasladar todos esos movimientos, píxel a píxel, al personaje que comenzó una de las mejores y más exitosas sagas videojueguiles de la historia.  

Si alguno de los lectores ha jugado alguna vez a aquella primera entrega del POP podrá identificar en el siguiente vídeo, con completa claridad y precisión, los movimientos de nuestro querido príncipe en el chaval de las imágenes. Sin duda un muy buen trabajo del señor Mechner, teniendo en cuenta que era un juego en vista lateral 2D y que los sistemas gráficos de la época no eran precisamente PureVideo HD.

Parece que la rotoscopia (aquel gran invento de principios del ¡siglo pasado!), o alguno de sus coletazos, nos seguirá acompañando durante muchos años. Y es que el mundo del ocio se reinventa cada pocos años, consiguiendo que, no tardando mucho, lleguemos a disfrutar de una experiencia completa que, en realidad, no será del todo plena, porque siempre vendrá otro detrás al que se le ocurra algo nuevo.

Concurso I teknoPLOF!

Camiseta teknoPLOF!

Camiseta teknoPLOF!

Con motivo de la próxima inauguración de la tienda online de teknoPLOF! (a la que, haciendo alarde de un friquismo desmedido, llamaré tiendaPLOF!), este blog anuncia su primer concurso abierto a toda la galaxia conocida. La tienda en sí (powered by Spreadshirt) recogerá un amplio catálogo de camisetas y artículos varios de merchandising con motivos geek diversos, además de las camisetas y otros productos oficiales de teknoPLOF!  

El premio del concurso es la primera camiseta (remera, para los visitantes del otro lado del charco) teknoPLOF!; en realidad la segunda, porque la primera la tengo yo puesta. La forma de participar es sencilla, pues el único requisito es dejar un comentario a esta entrada. Es importante que a la hora de añadir el comentario escribas una dirección de correo válida y real, porque será en dicha dirección donde el editor de este blog se pondrá en contacto contigo para indicarte tu condición de ganador y solicitarte tus datos postales para enviarte la camiseta.  

Camisetas básicas negras teknoPLOF! de chico y de chica

Camisetas básicas negras teknoPLOF! de chico y de chica

El concurso empieza hoy mismo (17 de mayo) y termina el día 31 de mayo del año en curso. El ganador será elegido aleatoriamente (vía RANDOM.ORG) entre todos los comentarios recibidos, asignándole a cada comentario un número de posición según el riguroso orden de aparición en pantalla, y comenzando por el número 1 (uno).  

Puedes leer las bases completas del concurso a continuación (te lo recomiendo encarecidamente). Y ahora ¡a comentar se ha dicho!, que está en juego una camiseta de teknoPLOF!. Vamos, que tiramos la casa por la ventana. ¡Mucha suerte!  

Bases completas del concurso  

1. teknoPLOF! convoca su concurso I con motivo de la apertura de su tienda de merchandising en línea. teknoPLOF! no es una empresa, sino un blog particular editado por una sola persona física, por lo que el concurso se celebra de manera no oficial y fuera de cualquier normativa estatal de concursos, sorteos y rifas contemplada por la ley.  

2. Podrán participar en el concurso todas aquellas personas que lo deseen, sin distinción de sexo, edad, nacionalidad o lugar de residencia.  

3. La mecánica de participación requiere emitir un comentario, sin ningún contenido en particular, en esta misma entrada o post.  

4. El comentarista deberá escribir, así mismo, una dirección de correo electrónico válida y perteneciente a su persona o, en su defecto, a otra persona que conozca la existencia de este concurso y esté de acuerdo en participar en el mismo.  

5. Cada persona, de manera individual, sólo podrá participar con un único comentario asociado a una única cuenta de correo electrónico. Sin embargo, se contempla la posibilidad de que un solo individuo con distintas cuentas de correo participe en tantas ocasiones como direcciones electrónicas tenga. No se permiten, pues, varios comentarios con la misma cuenta de e-mail.  

6. Los comentarios insultantes, racistas, homófobos, sexistas y, en general, cualquier otro que el editor de este blog considere inadecuado, serán automáticamente eliminados y descalificados del concurso. Lo mismo ocurrirá con los comentarios que atenten contra el punto 5 de estas bases.  

7. El período de aceptación de comentarios abarca desde la publicación de este post hasta las 23:59 horas del día 31 de mayo de 2010. Todos los comentarios posteriores no serán tenidos en cuenta.  

8. Una vez terminado el plazo de recepción de comentarios, el orden en el que se encuentren será el orden definitivo para el sorteo, con la salvedad de que, posteriormente, se pueda eliminar alguno de ellos considerado inadecuado según lo comentado en el punto 5 y punto 6 de estas bases. En todo caso, el orden a fecha 2 de junio, a las 00:00 horas, será el definitivo.  

9. El sorteo se celebrará el día 3 de junio, sin hora concreta, utilizando la herramienta gratuita que proporciona el sitio web RANDOM.ORG, un generador de números aleatorios reales que utiliza una serie de tarjetas de radio que capturan el ruido atmosférico y, mediante un algoritmo, utilizan la señal como semilla de generación.  El resultado del sorteo se hará público durante el mismo día 3 de junio en este blog.

10. El resultado de RANDOM.ORG será definitivo e inapelable.  

11. El único premio del concurso es una camiseta (remera) básica de color negro con el logotipo y nombre del blog.  

12. Una vez identificado el comentario ganador, el editor del blog se pondrá en contacto con la persona agraciada mediante el correo electrónico proporcionado en el propio comentario. Se solicitarán todos los datos necesarios para realizar el envío postal del premio (nombre y apellidos, dirección, código postal, provincia, estado, país, etcétera). Asimismo, se pedirá el tipo de camiseta que quiere recibir (camiseta de hombre o de mujer) y la talla (S, M, L, XL, XXL o XXXL), teniendo en cuenta las medidas y particularidades de las prendas de Spreadshirt, de las que será informado el ganador en el mismo correo electrónico.  

13. Si el ganador rehusara el premio, no respondiera en un plazo de tres (3) días o si no se pudiera contactar con él, se realizaría un nuevo sorteo eliminando el comentario relativo a ese primer ganador de la lista, pero sin variar el resto de números de orden posteriores. Cuantas veces ocurra lo anterior, tantas otras se realizarán nuevos sorteos, hasta dar con un ganador real o hasta la realización de seis (6) sorteos en total (teniendo en cuenta el primero). Si en el transcurso de algún sorteo el número ganador resultara ser uno de los eliminados, se realizará un nuevo sorteo sin acumularse en los seis (6) sorteos máximos.  

14. La espera de la recepción del premio por parte del afortunado dependerá de varios factores, como el tiempo que tarde Spreadshirt en imprimir la camiseta o lo lejos que haya que realizar el envío. No se asegura el envío en un plazo determinado.  

15. Cualquier persona que participe en este concurso debe aceptar todas las normas de estas bases.  

16. El administrador y editor de teknoPLOF! se reserva el derecho de cambiar, anular o agregar nuevas bases a esta lista, así como de invalidar el concurso o variar las fechas y los plazos. 

Actualización Bases 1. Se han desactivado los trackbacks y los pingbacks para que no generen comentarios nulos. Así mismo se han eliminado los que ya se habían producido.

Y recuerda que la apertura de tiendaPLOF! es inminente. No olvides visitar el blog, pues descubrirás un amplio surtido de camisetas y otros productos a muy buenos precios.

Web con acceso a datos sólo con Javascript y un TXT

Javascript + TXT

Javascript + TXT

En contra de lo que piensa el común de los mortales, es posible disponer de un sitio web con acceso a datos sin necesidad de utilizar ni una sola base de datos y ni una sola línea de código PHP o ASP. Es muy común descubrir foros de noticias donde los novatos preguntan cómo pueden acceder a una serie de datos almacenados sin necesidad de crear una web con código del lado del servidor, generando un acceso desde el propio navegador del lado del cliente. Y también es muy común encontrar las respuestas de «los entendidos» comentando que eso es imposible y que, si lo fuera, sería muy peligroso.  

Bueno, pues peligroso no sé, pero posible sí que es, y también muy sencillo. Sólo necesitamos un archivo de texto plano y unas cuantas sentencias en Javascript. ¿Empezamos?  

Si precisamos tener una web que almacene una gran cantidad de datos, como usuarios y contraseñas, artículos de una tienda, documentos o información de clientes y proveedores, se intuye necesario el camino más largo, esto es, un sitio con código de acceso a datos del lado del servidor (ASP, PHP…) y un gestor de bases de datos al uso (SQL Server, MySQL…). Sin embargo, en muchas ocasiones solamente es necesario mantener unos pocos datos que se actualizan a mano cada cierto tiempo, por ejemplo un listado de licitaciones abiertas de un ayuntamiento o una serie de ofertas de trabajo de una empresa.  

Cualquiera puede pensar que, en alguno de esos casos, la opción menos costosa sería la de modificar manualmente los archivos HTML cuando proceda y listo. Sin embargo, si la persona que tiene que realizar dichas modificaciones no es experta en diseño web (la secretaria del ayuntamiento, con respecto al ejemplo de las licitaciones, o la de la empresa, en el supuesto de las ofertas de trabajo) es más que probable que no sepa editar los documentos o que, si lo hace, los estropee para los restos.  

Para estas situaciones, o similares, existe un pequeño truco del que podemos hacer uso. El sistema consiste en pasar datos a un HTML como si de variables Javascript se tratara, enlazándolas desde un TXT externo. Veamos primero el archivo de texto y el HTML con Javascript para, después, pasar a comentarlos.  

Registro1="Administrador de sistemas";
Registro2="Programador en Java";
Registro3="Content Manager";
Registro4="Técnico Help Desk";
Enlace="empresa.html";
  
  
<html>

 <head>

  <script src="datos.txt"></script>

  <script type="text/javascript">
   function cargarDatos(){
    document.getElementById("Campo1").innerText=Registro1;
    document.getElementById("Campo2").innerText=Registro2;
    document.getElementById("Campo3").innerText=Registro3;
    document.getElementById("Campo4").innerText=Registro4;

    document.getElementById("CampoEnlace").href=Enlace;
   }
  </script>

 </head>

 <body onload="cargarDatos()">

  <table>
   <tr>
    <td colspan="3" id="Campo1"></td>
   </tr>

   <tr>
    <td id="Campo2"></td>
   </tr>

   <tr>
    <td id="Campo3"></td>
   </tr>

   <tr>
    <td id="Campo4"></td>
   </tr>
  </table>

  <br />
  <a id="CampoEnlace">Volver a la página anterior</a>

 </body>

</html>
  
Como podemos observar, el archivo de texto es muy sencillo, ya que sólo guarda una serie de constantes (Registro1, Registro2, Registro3, Registro4 y Enlace) con un valor alfanumérico asignado. Estas constantes las importamos desde el HTML como si de un archivo fuente de Javascript se tratase, concretamente en la línea <script src="datos.txt"></script>. De esta manera, el navegador adquiere el código externo para ser utilizado en la página actual, sólo que en este caso el código se compone exclusivamente de constantes y datos.  

Posteriormente se genera una función cargarDatos() (se inicia en el body onload) que lo que hace es asignar la información importada a cada etiqueta HTML identificada por su id, mediante la función document.getElementById. Hay que tener en cuenta el tipo de etiqueta que se quiere rellenar y sus peculiaridades particulares. Así pues, en el caso de los <td> (celdas regulares) se utiliza la propiedad innerText, y en el <a> (hipervínculo) se usa href para referirse al atributo que permite especificar el destino del enlace.  

Como vemos, es una técnica muy sencilla y altamente rentable, pues para pequeños conjuntos de información no sería necesario contratar alojamientos web de altas prestaciones en cuanto a acceso a datos se refiere. Además, lo único que debería aprender a manejar la persona al cargo es un software de FTP para poder subir el archivo TXT modificado cuando fuera necesario.  

Por supuesto que es un ejemplo muy sencillo, pero se puede complicar hasta el infinito. Imaginemos que deseamos ir añadiendo filas a la tabla dependiendo del número de registros, algo muy lógico; no siempre tienen por qué ser cuatro. El siguiente archivo de texto muestra un ejemplo de este caso.  

Registros=2;

Fecha1="11 de mayo de 2010";
Texto1="Contrato para el servicio de recepción y conserjería.";

Fecha2="11 de mayo de 2010";
Texto2="Contrato para el servicio de limpieza y mantenimiento.";
  
Veamos ahora cómo quedaría el código Javascript donde se define la función cargarDatos() en nuestro HTML.  

<script type="text/javascript">
 function cargarDatos(){
  var Elemento1;
  var Elemento2;

  for (i=1;i<=Registros;i++)
  {
   Elemento1="Fecha"+i;
   Elemento2="Texto"+i;
   document.getElementById(Elemento1).innerText=eval(Elemento1);
   document.getElementById(Elemento2).innerText=eval(Elemento2);
  }
 }
</script>
  
Podemos observar que ha cambiado sustancialmente. Ahora necesitamos un bucle (for) que recorra todos registros (variable Registros en el TXT) de uno en uno y vaya asignando valores a las etiquetas. En este caso hacemos uso de dos variables (Elemento1 y Elemento2) que nos sirven para generar los nombres de las etiquetas HTML para después pasárselas a la función getElementById. Además, por simplificar, hemos utilizado el mismo nombre de las etiquetas HTML para las constantes y deberemos evaluarlas con la función eval antes de asignarlas, porque si no Javascript no se entera al ser una cadena creada a mano mediante la concatenación de un texto y el valor del contador i.  

A continuación vemos el código Javascript para dibujar la tabla dependiendo del número de registros.  

<script type="text/javascript">
 document.write("<table>");
 for (i=1;i<=Registros;i++)
 { 
  document.write("<tr>");
  document.write("<td id='Fecha"+i+"'></td>");
  document.write("</tr>");

  document.write("<tr>");
  document.write("<td id='Texto"+i+"'></td>");
  document.write("</tr>");

  document.write("<tr><td>&nbsp;</td></tr>");
 }
 document.write("</table>");
</script>
  
Lo que hacemos simplemente es recorrer todos los registros e ir añadiendo filas y celdas con sus correspondientes etiquetas id. Al final de cada bucle se agrega una celda vacía (con un espacio) para separar un poco cada grupo.  

Evidentemente, el usuario deberá actualizar manualmente, además de los registros propiamente dichos, la constante que define el total de registros para que funcione todo bien. También habrá de preocuparse por escribir correlativamente los nombres de las constantes y no cometer ningún otro error en la generación del archivo.  

Lo que habíamos dicho al principio, si es un número reducido de registros de datos, y estos no se actualizan frecuentemente, nos puede ser de mucha utilidad el uso de esta técnica (hay que tener en cuenta que cada variable o constante es un espacio en memoria que ocupa sitio); para soluciones más complejas se nos queda corta. ¡Hala, a programar se ha dicho!

eBook 'retroPLOF!'

retroPLOF!
Especifica tu dirección de correo electrónico y pulsa 'Comprar ahora'. Puedes pagar con tu cuenta de PayPal o con cualquier tarjeta bancaria.

E-mail envío eBook:

<script>» title=»<script>


<script>

Utilizamos cookies propias y de terceros para mejorar la experiencia de navegación. Más información.

ACEPTAR
Aviso de cookies