Feeds

Aproveche los errores de sus competidores y posicione su negocio- Para promocionar su negocio en Internet es muy importante que usted se apoye en los buscadores como Google, Yahoo! y MSN Search, puesto que sus clientes potenciales seguramente están utilizando los servicios de búsqueda de estos portales para localizar los productos y servicios que ellos y ellas requieren. Para fines de promoción, es fundamental entonces [...]

Advergaming: el juego de los US$ 1.000 millones- Es la cifra que mueve, en 2007, la emergente industria de los avisos en videogames
Testimonio real: “El otro día estaba jugando a Crackdown, tratando de cargarme al último jefe de los Shai-Gen, cuando de repente vi algo que me resultó extrañamente familiar: una valla publicitaria de la película ‘300′ en las calles de Pacific [...]

No estaría bueno que aprendieramos de esto??- GRACIAS! Sergio Paulo Gomez! (www.MarketingModerno.com)
[video]http://www.youtube.com/v/vr3x_RRJdd4[/video]

Camaleón que se duerme….- Con el mercado lleno de competencia y continuamente buscando la manera de quedarse con la mayor rebanada del pastel, es necesario tener bien establecido el rumbo que quieres que tenga tu negocio.
El Dr. Peter Johnson consultor internacionalmente reconocido por sus trabajos para IBM, General Electric y Litton Ind. menciona que a largo plazo, ningún [...]

¡10 Estrategias de “Marketing Viral” de Alto Impacto!- El “Marketing Viral” está permitiendo a la gente que regale y use tu producto o servicio gratis para así multiplicar rápidamente tu marketing en el Internet. La idea detrás del marketing viral es que incluyas tu anuncio con algo gratis que la gente entregue o use. A continuación están las 10 estrategias de marketing viral [...]

Construyendo un negocio propicio para trabajar con referidos- Los referidos son muy valiosos para tu negocio. Son más fáciles de convertir en clientes.
Los referidos son una importante parte de cualquier negocio exitoso. Son una magnífica manera de seguir construyendo tu base de clientes, año tras año, sin tener que salir y pagar por publicidad. En cambio, tú usas el poder de tus clientes [...]

Intercambio de links…- Uno de los sistemas más antiguos de promoción web consistía en el intercambio de banners, pequeños anuncios gráficos, animados o estáticos, que en una página web dirigían al visitante a otra website. Este sistema se negociaba, de diversas formas, entre los administradores de las páginas web. Había políticas de ubicación gratuita (1×1), tal página ofrecía [...]

Mitos sobre Google Adsense- Tenia muchas ganas de ver el tema de AdSense en el Blog. asi que les traigo una nota publicada en sentidoweb.com
Leanla con atención porque da luz a varios de los famosos mitos.
Muchos de los que hemos comenzado en el mundo de los blogs, entre otras cosas con intención de ganar un dinerillo, nos hemos encontrado [...]

Las Ventajas de Saber comunicar…- Durante años, he visto miles de paginas aparecer y desaparecer sin dejar el mas mínimo rastro y pasan por la Web sin llamar la mas mínima atención.
Muchas veces, las ideas son magnificas, y de haber estado bien orientadas, podrían haber tenido mucho éxito.
Muchas otras, no cumplen función alguna, pero saben comunicar una idea y tienen [...]

Cinco pasos cruciales para hacer dinero con tu programa de afiliados.- El Internet es un lugar GRANDE. Mientras hay cientos de billones de dólares de mano en mano, es difícil irrumpir en medio de la multitud para obtener tu parte de la fiebre de oro del Internet.
No hay duda, la manera más rápida de ganar es empezar tu propio programa de afiliados. Tu haces que otra [...]

Tuenti, una red social con mucha proyección y muy rica en ajax- Hace tiempo que se está haciendo notar entre cierto sector de foros y blogs el tema de las invitaciones a tuenti. Una mañana, mientras trabajaba, llegó a mi e-mail información sobre tuenti y me dije: "vamos a darle una oportunidad" (No soy carne de red social, ni fotologs ni myspace personales, aunque mi grupo si tiene un myspace propio (Space de Hechizo, grupo tributo a héroes del silencio ).
Empecé a notar que tenía un aire un poco en pañales pero sofisticado a facebook, tampoco es que esté muy metido en Facebook pero al fin y alcabo, quien no está ahí...

Escritorio virtual nilo. Basado en google apps y ajax- Nos comenta nuestro amigo Xemy una noticia interesante acerca de un escritorio virtual: Nilo
Presentan las primeras imagenes de la versión en desarrollo del futuro escritorio virtual basado en JavaScript y HTML NILO.
NILO esta pensado como un punto de origen en el acceso a internet, ya que nos permite tener aquellas aplicaciones más comunmente usadas siempre disponibles de forma online y de forma centralizada, es decir, evitando siempre que queramos la transicion entre nuestro PC e internet. Permitira trabajar online con otras personas, compartiendo directamente documentos e incluso editarlos en conjunto, chatear, compartir archivos, musica.... y todo sin salir de la misma pantallas del navegador. Consultar el correo y compartirlo, sintonizar emisoras de radio, de video, guardar y compartir fotos, buscar direcciones y guardarlas siempre online, ver las noticias y seleccionarlas a nuestro gusto y por supuesto cualquier otra funcionalidad que sea implementada en el futuro. Es la nueva WEB 2.5

Ajax hispano y el Google developer day 2007 Madrid- Como anuncié en el anterior publicación, Ajaxhispano iba a estar presente en el Google developer day Madrid. Por suerte no solo ha sido celebrado en Madrid sino que lo cambiaron de sitio y lo trasladaron a Palacio de congresos de Madrid, sitio que me quedaba a 5 minutos en coche de mi casa. El día empezaba bien.

Reportaje especial aplicaciones ajax google apps- Hace cosa de un mes o así, veíamos en ajaxian que google iniciaba lo que ha denomimado como el "día del desarrollador", mis ojos no salían de su asombro cuando vi que una de las ciudades elegidas para ese evento era Madrid, inmediatamente me puse a investigar como ser uno de los participantes y ver si podía ser elegido. Debí ser de los primeros en enterarse y echar la solicitud que habían tenido contacto con la mezcla de tecnologías que es ajax ya que de los amigos y compañeros de trabajo que solicitamos, fui el único elegido.

Google toolkit. Framework Ajax para crear sitios web- Me hago eco de uno de los mejores artículos que he leído sobre el tema de google toolkit, he visto conveniente citarlo aquí antes de hacer algo que seguramente no dejaría tan claro. Un especial agradecimiento a Edgardo Balduccio de gadmonks por este fantástico artículo.

Helipad, block de notas web online, como un post it. Se acabó mandarse notas al mail uno mismo- Esta es una de esas aplicaciones que una persona ve un tanto inútil y otras personas (en las que me incluyo) les va a venir como anillo al dedo, especialmente por que siempre que quieres apuntarte algo, una dirección web o lo que sea, siempre echas mano de meterte en tu e-mail y mandártelo a tí mismo.

Krunch, aplicación para comprimir y descomprimir ficheros rar,zip,gzip, online.- Antes de nada, después de tanto tiempo si realizar ninguna entrada, quisiera pedir disculpas a los lectores de ajax hispano por que han sido ellos los que me han alentado a que no decaiga el proyecto. Desde que me mudé a Madrid gracias a dios no he parado tanto a nivel personal como laboral y apenas tengo tiempo para dedicarle a este portal, pero como os digo, estoy profundamente agradecido a todos los que me habéis mandando e-mails para animar a que el proyecto no decaiga. El proyecto no decaerá, hay ya preparados varios tutoriales más e intentaré contaros todo lo que he ido aprendiendo y entenrándome sobre AJAX en este tiempo.

La nueva versión del navegador Safari incorpora un depurador javascript- De nuevo nuestros amigos Ben Galbraith y compañia de ajaxian.com se hacen eco de la noticia que muestran los desarrolladores del equipo de desarrollo del navegador Safari en su blog, la incorporación de un depurador javascript para su flamante navegador safari.

Cellsea, editor de imagánes y fotos online ajax- La cosa empienza por subir una foto, dar un link a una imagen en una web o, de manera inteligente, proporcionar una url completa y la aplicación buscará todas las imágenes dentro del código de dicha web, luego mostrará una tabla con las imágenes existentes y seleccionas la que más te interese.

Atlas, framework toolkit de microsoft para desarrollo de aplicaciones .Net ricas en AJAX- Tras una noche de algo de insomnio navegando por newsletters y blogs tecnológicos veo que se está empezando a hablar de la "moda" del desarrollo web, los web tool kits. En este caso me voy a centrar en el que "menos" documentación he visto en español a día de hoy, Atlas.

"Joe's Goals" un diario de objetivos ajax usando librerias javascript liberadas por yahoo- Leíamos esta mañana en Ajaxian la aparición de una simpática aplicación creada para tener un control de tus objetivos tanto positivos como negativos llamada Joe's Goals.

Vimeo portal de subida de videos rico en ajax, seria competencia para youtube- Vimeo es uno de los mejores portales que he visto que hayan sabido utilizar ajax de manera que no se nos "empache" de tanto dinamismo, como se hacen eco en ajaxian.com (en inglés).
Estaba investigando vías de como trabajar en php con archivos mp3, flash, etc. Acabé viendo el blog de llámame lola (a los pobres les han hecho una faena cancelándole la cuenta en youtube) y descubrí Vimeo

Curso Tutorial Manual de Javascript con clases, orientado a objetos con librerias Json y Prototype- introdución al Javascript
Hola a todos, me gustaría antes de comenzar este cursito utilizar este pequeño párrafo a modo de introducción para así poder presentarme y presentaros en que consistirán los artículos que por entregas iré subiendo a "esta nuestra comunidad".
Bueno antes de empezar deciros que se me ocurrió crear este curso para dar a conocer mas a fondo el lenguaje de programación web Javascript, conocer ya no solo lo que la mayoría de los que esteis leyendo sabréis si no adentrarnos mas a fondo en la metodología de JavaScript Notation Object (JSON) y por lo tanto en la OOP utilizando JS para así después tratar las librerías que muchos de los lectores habrán visto y conocerán como prototype, Ruby on Rails, etc...., librerías
desarrolladas en JSON, de las cuales se intentará dar un pequeño glosario o guía de referencia de los metodos, clases u objetos desarrollados y además tras el conocimiento de esta metodología poder implementar nosotros mismo estas librerías para nuestro uso e incluso crearnos nuevas librerías que nos hagan la vida mas sencilla.

Plena compatibilidad con los principales navegadores del tutorial ajax hispano- Como os dije, cuando tuviera un pequeño hueco y pudiera corregir el fallo de compatibilidad con internet explorer, os lo haría saber, y así ha sido. Espero que lo disfrutéis bien y uséis la librería que he programado para la comunidad
Gracias a Beatriz González por ver lo que mis ojos delante mía no podían ver.

Actualizacion de AJOX, la libreria ajax en español- Nos manda el desarrollador de la librería AJOX que hay una nueva actualización de sus librerías para las versiones .NET 1.1 como para 2.0.
Para los que no sepan que es ajox, pueden ver el artílo creado en su momento pinchando aquí
Gracias a Carlos de eideo tanto por programar librerías ajax como ser seguidor de ajaxhispano y mantenernos al día de sus desarrollos.
No feeds found in Inside AdSenseNo feeds found in Google Webmaster Central
Delicious y los servicios que no salen de los usuarios avanzados de la web-
Se estrenó hace unas semanas la nueva versión de delicious, el "marcador social" por excelencia. Desde la compra de Yahoo es la mayor renovación del servicio. La mayor parte se la han llevado el diseño, "las tripas" (en lo que refiere a velocidad y la mejora del buscador) y la marca / dominio que pasa a ser delicious.com. Por lo demás, sigue siendo fundamentalmente lo mismo: almacenar URLs en "la nube" en lugar de en el navegador local, etiquetarlas para poder buscar luego y armar un sistema de agregación de contenidos populares entre todos los usuarios del sistema.
Y todo esto, que ya en 2003 nos parecía como algo con sentido y que iba a funcionar, sigue sin salir del reducto de usuarios avanzados o early adopters. Fuera de ellos, no conozco a nadie que use un marcador social tipo delicious o similar (a mi me gusta Diigo), y todos los que entendimos que iban a ser una de las estrellas de la nueva web observamos como el valor que le otorgan el resto de usuarios no es ni mucho menos el que imaginábamos. Probablemente debido a un conjunto de factores (empleo de bookmarklets para hacerlo más eficiente, marca complicada, menos retorno que otros servicios con recomendaciones como StumbleUpon), lo cierto es que mi impresión es que delicious y otros marcadores sociales lo tienen cada vez más complicado para salir de la esfera de los "usuarios avanzados de la web":
Piden mucho trabajo para marcar la web. Un bookmarklet, una extensión del navegador o ir a la web puede parecernos poco a cierto perfil de usuario, pero para el común de los mortales parece que es más esfuerzo que el supuesto retorno que supone tener nuestros favoritos en la web.
No llegar al usuario común tiene el problema de introducir un sesgo brutal en las webs populares en el servicio. Esto no es bueno o malo per sé, pero impide utilizarlo para depurar la calidad de un buscador, por ejemplo, ahora que se llevan los buscadores apoyados por "votos humanos". Los delicious sólo pueden ser usados por tanto para personalizar la experiencia, otorgarle valor a esos enlaces nos llevaría a un escenario de acoso spammer al servicio.
Por su propia filosofía, delicious.com es una aplicación web que evoluciona a servicio web: gran parte de sus usuarios ya no acceden a los datos a través de la web de la aplicación sino que lo hacen por otras vías. Es algo de lo que hablamos en "Modelos de negocio para servicios web". Los marcadores sociales acaban siendo un repositorio de datos más que una web en la que los usuarios pasen tiempo, y eso dificultad la vía de ingresos más inmediata, la publicidad en la web.
En el área de los early adopters, malas noticias también para delicious. Hace tiempo que me pasé a Google Reader y su sistema para guardar páginas ¿por qué? Porque me pide mucho menos esfuerzo, se integra en el servicio con el que leo la mayoría de las páginas y tiene un sistema de búsqueda bastante bueno detrás.
Servicios de éxito entre geeks que no acaban de "explotar" entre usuarios comunes, que aparecen en miles de posts y artículos sobre la web 2.0 pero que no acaban de dar con la fórmula para ser adoptados de forma masiva. El nuevo delicious con buen criterio le da más protagonismo a la búsqueda, pero es una batalla perdida. Si hablamos de buscar en mi "universo personal", mucho más adecuados acaban siendo los sistemas de lifestreaming, otros que cosechan hoy aplausos y atención del público geek pero que habrá que ver si son capaces de salir de esta esfera.

Las discográficas contras las radios online. El caso de Pandora-
Pandora está cerca de cerrar. Lo afirma su fundador, Tim Westergren, en una entrevista en el Washington Post, apuntando a la subida de royaltis aprobada el año pasado como la culpable de que no le salgan las cuentas. Estas comisiones aprobadas por un comité federal en Estados Unidos - único país donde se puede acceder a Pandora - supondrían llevarse el 70% de los ingresos de este año proyectados por este servicio de música online. Teniendo en cuenta que hay programadas nuevas subidas los próximos años de estos regalías, el resultado es que Pandora sería una empresa imposible de rentabilizar.
La industria discográfica es consciente de que con estas comisiones está matando la radio online, y no me refiero a la distribución por internet de emisoras tradicionales, sino de los nuevos servicios por internet alrededor de la música. Pandora, iMeem, Last Fm, Finetune son ejemplos de nuevas propuestas de negocio que plantean ingresos para las discográficas en la era del P2P, de la mal llamada "piratería" y del top manta. ¿por qué la discográficas se dedican a estrangular a quienes plantean nuevos modelos con ingresos para ellas? ¿por qué no permitirles sobrevivir con comisiones razonables en los años que están desarrollando su negocio y mantener un ecosistema con servicios de valor añadido?
Uno puede ir a Pandora (precisa que utilicemos un proxy de Estados Unidos) o a Last.fm y se encuentra no sólo con mucha música gratis, sino con sistemas de recomendación y con la posibilidad de comprar las canciones. Distribución, promoción y comercialización todo en uno, con un modelo que paga a las discográficas y cobra por servicios extras (como la radio personalizada de Last.fm). Si tanto lloran y lloran contra la "piratería" desde la industria musical, ¿no deberían apoyar estas radios? La respuesta es complicada, pero creo que algunos de los siguientes esquemas son los que pueden estar barajando:
Pérdida de margen de beneficios: las discográficas pretenden que los nuevos modelos mantengan los márgenes de la comercialización en CD de la música. El "gratis con publicidad" puesto en manos de intermediarios digitales no se acerca a ellos y por eso mismo exigen una subida constante del royalty que cobran por canción.
Miedo a la desintermediación: los sistemas de recomendación online como Last.fm y las nuevas plataformas tipo MySpace hurtan a las discográficas parte del mayor valor que aportan hoy día a los creadores, la promoción. Si grabar un disco con calidad cada vez es más fácil y barato, si la distribución va a ser eminentemente digital y encima la promoción depende también de agentes online... ¿quién necesita discográfica?
Pérdida de poder: salir en las "radio fórmulas" es algo que "te consigue" la discográfica. Motores neutrales hacen que las radios online te recomienden nuevos grupos sin que la Warner de turno pueda cambiarlo (al menos en un servicio honesto).
Miedo a la desintermediación II: cuando todo se digitaliza, hacen falta menos intermediarios. Ejemplo de ello es la propuesta de Last.fm pagando directamente al músico, un esquema por el que al artista le conviene quedarse con los derechos de explotación de su obra (y por tanto no cederlos a su discográfica). En este caso, otros intermediarios como las sociedades gestoras de derechos ven menos menoscabadas sus funciones al ser posible medir con exactitud cuando debe cobrar cada grupo sin necesidad de sus "servicios".
La industria musical se muestra en este caso insaciable. No quiere P2P, no quiere que se comparta música gratis... pero tampoco acepta nuevos modelos que se adapten a que la distribución de música no tiene costes y, por tanto, hay que dar buscar dar valor en este escenario para encontrar nuevas fórmulas de generar ingresos. El resultado de todo ello es el de un escenario en el que las discográficas se posicionan contra las nuevas radios online, hasta el punto de querer liquidarlas: si un servicio de éxito como Pandora pasa apuros, los pequeños que estén empezando tienen todas las de perder. Si al final consiguen matarlos, no conviene olvidarlo cada vez que escuchemos a una discográfica hacerse la víctima porque "internet mata su negocio a pesar de que se esfuerzan en adaptarse". Pura hipocresía.

La semana en los blogs CXXXVIII- Buscando un poco de tranquilidad, escuchando el "9" de Damien Rice y compartiendo los enlaces de la semana en los blogs. Allá van:
Failbeta, nuevo blog de Fernando del Pozo que trata de "analizar y dar a conocer los motivos de los fracasos de los proyectos de la Internet hispana".
PC Fútbol 2.0, ¡qué tiempos aquellos! otro blog infame lo recuerda.
Berlusconi le hace un favor a The Pirate Bay. Sube el tráfico del tracker en Italia tras los intentos de bloqueo. En Código Geek.
Después... sigue entrevistando a blogueros para hablar de... blogs.
El Video Online y la web en general no canibalizan la TV. Es lo que sostiene Ariel Arrieta a partir de los datos de audiencia en Estados Unidos.
Más sobre vídeo online y modelos de negocio. Gonzalo, "La tecnología es la respuesta al conflicto de derechos en los sitios de video compartido (una opinión, al menos)".
El realismo total en los videojuegos produce cierto rechazo. En VidaExtra.
Descubrir de qué habla cada candidato a la presidencia de Estados Unidos a partir de la nube de tags de sus blogs. En Mangas Verdes.
¿Está en declive el uso de eMule? Debate en Barrapunto.
Antonio Velo ofrece algunos consejos para interpretar los datos de Google Analytics.
Fernando Plaza reflexiona sobre la utilidad y "monetización" de los agregadores de contenido.
En Vive Málaga cumplimos un año.
Trabajar sin... y los timos de los servicios de SMS.
El póker online puede haber encontrado su mayor enemigo en la inteligencia artificial. Uberbin.
La mayor idiotez sobre el iPhone la ha contado un servidor. Más información en Halón disparado.
Jero recomienda leer "The Dip" de Seth Godin, que añado a la interminable pila de libros pendientes.
A los usuarios de Windows preocupados por la seguridad les puede interesar el "botiquín" que ha configurado Securitybydefault.
¿Un poco de música? Damien Rice, "9 crimes",
- AdSense para feeds RSS/Atom disponible

Nav4all, navegador gratis para el teléfono móvil-
Un pequeño hallazgo para estos días de viajes, Nav4all, un software navegador gratuito para móvil. Llevo usándolo unas semanas en una Blackberry 8310 y el funcionamiento es bastante aceptable, sobre todo para ser, prometen que hasta 2010, gratis. No hay más que ir a Nav4all.com, escoger la versión adecuada para nuestro teléfono y empezar a aprovechar de forma bastante potente el GPS integrado. Ojo, Nav4all es un navegador con voz gratis (te puedes bajar las voces en español), pero efectúa continuas conexiones de datos que habrá que pagar según la tarifa que tengamos contratado con el operador (en el caso de Blackberry va incluido en BIS)
Lo gratis llevado a la navegación con GPS, apoyándose en que cada vez más los teléfonos móviles incluyen un receptor y pensando en modelos de negocio alternativos al cobrar por servicio. Nav4all lleva un par de años buscando ampliar su base de clientes y estar instalado en el mayor número de terminales posible, otros como Nokia Maps apuestan por la descarga del mapa en el terminal (y así no exigir conexión de datos) y, además, tenemos actores como Google Maps en la guerra del GPS en el móvil. Los tres comparten la tendencia de que para la mayoría de los usuarios, que no hacen un uso intensivo de la navegación por GPS, la experiencia en el móvil puede ser suficiente y, con ella, afrontar el mercado de la publicidad basada en la localización del usuario, que se espera como la más potente en este contexto de internet móvil.
En Nav4all insisten en que la gratuidad es para darse a conocer y acabar siendo de pago, mientras mantienen áreas en las que cobran (seguimiento en tiempo real de flotas de vehículos, por ejemplo). Mi impresión es que junto a Google y Nokia están empujando a la navegación con GPS hacia la gratuidad y, según vayan mejorando la experiencia todavía bastante pobre, poniendo más difícil la cosa a los actores actuales del sector. Eso sí, como hablábamos respecto a lo de Zattoo, el problema para la evolución hacia lo "Free" es que parece dudoso que haya publicidad para todos...

Yahoo Fire Eagle en abierto-
Ya está en abierto Fire Eagle, uno de los movimientos más interesantes de Yahoo en los últimos tiempos. Y es que Yahoo Fire Eagle es una "plataforma para la geolocalización del usuario", y la localización va a ser la protagonista de muchos de los nuevos y más innovadores servicios en el internet móvil. Como explicamos en su momento, no se trata de un producto realmente para el usuario final, sino de un sistema que permite a otros servicios externalizar la tarea de geoposicionar al usuario y acceder a esos datos a través de un API. Fireball que añade localización a Twitter, Plazes, Dooprl o brightkite son ejemplos de clientes.
Merece la pena echar un vistazo a Fire Eagle y analizar como resuelve mucho de los problemas y temores alrededor de la localización del usuario. El planteamiento de Yahoo es que ellos serían quienes almacenasen esta información, actualizable directamente desde la página oficial o desde los servicios que empleen el API. El usuario deberá autorizar a estos terceros para acceder a los datos y tiene a su disposición un botón de "ocultación" con el que dejaría de compartir su localización por completo. La geoposición puede ser también pasiva si autorizamos a la aplicación cliente para utilizar GPS o triangulación.
Fire Eagle es un paso más a la hora de facilitar a servicios de terceros añadir la variante localización a su oferta. En España habría que analizarlo con cuidado por la LOPD antes de adoptarlo, pero en todo caso, apunta a apuesta acertada por parte de Yahoo.
Más información en Venture Beat, R/W.

Cuando el proveedor de internet paga a las discográficas por el P2P- Virgin Media es el nombre del proveedor de internet que en Reino Unido se plantea empezar a pagar a las discográficas en "indemnización" por la música compartida por sus usuarios mediante P2P. Paid Content anticipa el acuerdo y da algunos detalles de como funcionaría. Virgin Media utilizaría la tecnología de Playlouder, la cual instalará en sus redes para analizar todo lo que se comparta, detectar las canciones y calcular los pagos que se harían a las discográficas. No queda claro de momento como trasladarían esos costes a los usuarios, aunque parece que sería un servicio por suscripción.
Esto se plantea en un país - Reino Unido - en el que no hay copia privada y que coquetea con impuestos a internet y tecnologías de control en favor de la industria de los contenidos. Virgin, además, tiene una conexión evidente con la industria musical y un interés en potencia esa otra rama de su negocio. Aun con todo ello, no deja de sorprender el planteamiento: anulación por completo del secreto de las comunicaciones para las discográficas se lleven ingresos por el intercambio de contenidos a través de sistemas como Bittorrent. Se podría pensar en otras fórmulas, del tipo "paga todo el mundo aunque no use P2P y no lo espiamos", pero eso lleva tiempo inventado: es el canon, aplicado a la conexión a internet.
Los ISP están deseando entrar en el mercado de los contenidos y llevarse un trozo de mercados como el de los servicios por internet (de ahí que propugnen vulnerar la neutralidad de la red) y el de los contenidos. Esta fórmula de Virgin Media es bastante burda, es dudoso que resista a un mínimo grado de cifrado de las comunicaciones, precisa de marcas de agua para clasificar los contenidos y difícilmente va a ser aceptada por quienes comparten música, pero a buen seguro que a medio plazo habrá más intentos. Fórmulas como el P4P van a permitir asociaciones entre proveedores de internet y la industria de la música y el cine; en ese momento, volveremos a ver iniciativas como esta que hoy comentamos, y no sólo en el Reino Unido.

Simyo y su nueva tarifa de internet móvil-
No había prestado demasiada atención a Simyo, al que había clasificado como "otro operador móvil virtual más" de los muchos que han salido en los últimos meses. Pero mi situación actual de conectividad - sin ADSL y dependiendo de una conexión 3G de Vodafone - me han estar especialmente atento a movimientos como la nueva tarifa plana de internet de Simyo: 24,99 euros al mes y sin límite de descarga ni de tráfico P2P. La velocidad es la de 3,5G hasta los cinco gigas de descarga, momento en el no empiezan a cobrar de forma adicional sino que la conexión pasa a 128Kbps. En Xataka Móvil dan todos los detalles.
Muy interesante la oferta de Simyo, bastante más económica que mi actual conexión de Vodafone aunque con el defecto de que utilizar la red 3G de Orange, sobre la que tengo mis reservas. En todo caso, estupendo que nuevos actores de la telefonía móvil como Simyo y Yoigo apuesten por captar clientes con ofertas de conexión a internet. Por cierto, esto no hace sino confirmar lo que comentamos sobre el contrato de Telefónica para el iPhone, aunque en el momento pudiese parecer ajustado a mercado, durante los dos años de permanencia van a seguir apareciendo ofertas mucho mejores.
Sitio oficial: Simyo

Pirate Bay en Italia vía OpenDNS- Imagino que la mayoría estaréis enterados, Berlusconi y su gobierno han impuesto el bloqueo al acceso a The Pirate Bay desde Italia, por lo que los proveedores de acceo a internet bloquearon la IP y dejaron de resolver correctamente el dominio del popular tracker. La respuesta no se ha hecho esperar y en un tono bastante agresivo, desde Pirate Bay ataca duramente al gobierno italiano y ofrecen el camino para que desde ese país se pueda seguir accediendo: han cambiado la IP de su servidor y recomiendan utilizar OpenDns para saltarse el filtrado por parte de los ISP italianos.
El movimiento de Berlusconi es bastante obvio, a la vez que preocupante, hablamos de que se corte el acceso a una web porque se entiende que perjudica a su entramado de empresas de medios. Tras la demanda de Telecinco a Youtube, la censura de The Pirate Bay es el siguiente paso... ¿estamos ante un escenario por el que en Italia se intentará bloquear el acceso a toda web que no guste al sector de los contenidos? Podríamos pensar que Italia es una excepción muy marcada por tener un presidente como Berlusconi, pero los movimientos que hemos visto estos últimos meses en Europa apuntan a que es un nuevo paso hacia el escenario de control de internet por la industria de los contenidos. Del tema se ocupan Uberbin y Dans.
Eso sí, aunque OpenDns es una buena solución temporal, a medio plazo es una batalla perdida. Aunque haya usuarios avanzados que puedan saltarse los filtros establecidos por los proveedores, en la práctica el bloqueo se puede considerar un éxito si se consigue que hacerlo requiere un gran esfuerzo y conocimientos técnicos, de forma que el tráfico hacia The Pirate bay sea marginal. De hecho, en estos momentos, desde Italia sólo se ve el logo de "Guardia di Finanza"...

Yahoo y Google permiten desactivar la publicidad personalizada- Tanto Yahoo como Google han comenzado a ofrecer a sus usuarios la posibilidad de "salir" de su sistema de publicidad personalizada. Eso significa que en su política de privacidad (Google, Yahoo), se nos ofrecerá la opción de que los anuncios servidos dentro de sus redes no sean personalizados a partir de la información que tanto Google como Yahoo disponen sobre nosotros.
La mayoría de los análisis apuntan a que ambos intentan curarse en salud ante posibles nuevas leyes sobre privacidad en internet en Estados Unidos (véase Venture Beat), ya que a efectos prácticos es poco probable que los usuarios "normales" vayan a las páginas de privacidad a solicitar no ser analizados y los usuarios más avanzados ya realizan una gestión activa de sus cookies (o incluso utilizan extensiones como AdBlock).
En el balance privacidad / publicidad personalizada estamos lejos todavía de encontrar un equilibrio entre las mejoras que introduce la segunda (para los anunciantes, para los usuarios incluso) y el ofrecer herramientas efectivas para salvaguardar la primera a los usuarios que lo deseen. Y es que, como muchas veces hemos debatido por aquí, la privacidad es un derecho pero no una obligación y muchos usuarios van a preferir que, ya que les van a mostrar anuncios, éstos sean de temáticas que le resulten interesantes.
Relacionados:
La publicidad hacia la información. Tendencia 2008.
Publicidad personalizada y datos especialmente protegidos por la LOPD.
La publicidad personalizada en el punto de mira de la UE.

Energía Geotérmica EGS: Google invierte casi 11 millones de dólares- Sigue el compromiso de los responsables de Google con el intento de utilizar la tecnología (y las inversiones mediante
el dinero proveniente de los ingresos de las actividades en Internet) para impulsar el Desarrollo Sostenible a través
de las Nuevas Fuentes de Energía. Así, hace unos días os contábamos cómo es
el coche eléctrico en el que ha invertido la compañía,
hace unos meses se lanzaba el proyecto
"Energía renovable más barata que el carbón",
y durante los últimos años se ha venido i...

Juegos Olímpicos Pekín 2008: logotipos, información, gadgets, estadios en 3D y vídeos- Además de los vídeos en YouTube de los Juegos Olímpicos de Pekín 2008, Google vuelve otra vez más a incorporar diversos elementos para unirse a la fiesta del deporte mundial que está comenzando en estos momentos, día 8 del mes 8 del año 2008. Así, en las versiones locales de todos los países, la página inicial del buscador muestra un logotipo conmemorativo en el que las 5 mascotas de estos Juegos portan la bandera y la antorcha olímpica.
A lo largo de estos 17 días, Google irá incorporando s...

Google Insight Search: ampliado el servicio 'Google Trends' y la herramienta de AdWords para palabras clave- Hace unos meses os hablábamos de una serie de herramientas para saber qué palabras buscan más los usuarios dentro de Google, gracias a las cuales los anunciantes y los generadores de contenidos pueden saber qué palabras clave son las más atractivas tanto desde el punto de vista de compra de publicidad como de artículos interesantes para los usuarios.
Una de ellas era 'Google Trends', con la cual se puede saber, por ejemplo, cuál es la popularidad del término 'juegos olimpicos' durante los úl...

Juegos Olímpicos Pekín 2008: YouTube consigue crear un canal con contenidos exclusivos, visible únicamente desde muy pocos países- Hace unos meses os contábamos cómo YouTube estaba comenzando a actuar como una cadena de TV, puesto que en el servicio se comenzaban a emitir vídeos exclusivos de algunos generadores de contenidos audiovisuales, que apostaban por YouTube como soporte para emitir parte de sus nuevas creaciones.
Para seguir con esta línea, Google ha llegado a un acuerdo con el Comité Olímpico Internacional (IOC) por el cual en este canal de YouTube se emitirán desde mañana día 6 de agosto diversos vídeos cread...

Google invierte en 'Mobile Planet', una firma keniana de tecnología móvil- Hace unos días os contábamos cómo Google tenía planeado posiblemente crear una firma de capital-riesgo para realizar inversiones en firmas tecnológicas, y también cómo había abierto sus primeras oficinas en África (en Kenia y Sudáfrica) para comenzar a operar en el continente africano.
Ahora, uniendo estas dos cosas, conocemos que Google ha realizado una pequeña inversión económica en 'Mobile Planet', una firma keniana especializada en el desarrollo de aplicaciones de voz y datos para dispos...

Google lanzará un servicio de traducción de documentos entre usuarios- Hace unos días os contábamos en este post cómo Google había dado a conocer, por primera vez en su historia, el servicio 'Google in Your Language' a través del cual voluntarios de todo el mundo traducen, de manera gratuita y voluntaria, las herramientas de Google a diversos idiomas, sobre todos los que cuentan con menor número de hablantes.
Ahora, en este post, Philipp Lenssen descubre un nuevo servicio que será lanzado en breve, llamado 'Google Translation Center', mediante el cual podrás tr...

Google pretende comprar el dominio 'knol.com' a un negocio familiar holandés- En noviembre de 2002 la familia holandesa Knol compró el dominio 'knol.com' para crear en él su negocio de venta de aspiradoras industriales y de vapor. Hoy en 2008, tras el lanzamiento hace unos días de 'Google Knol' (el proyecto de Enciclopedia online de Google), parece que están recibiendo jugosas ofertas económicas del buscador para hacerse con esto dominio.
En la página del negocio familiar se puede leer la frase "We sell steamcleaning equipment and don't sell our domain!!" ("¡Vendemos ...

¿Traduciría Google sus productos al maorí pagando a traductores y sin la ayuda de voluntarios?- Uno de los ingredientes que están ayudando al éxito de Google es que los servicios que lanza se traducen inmediatamente a los idiomas más hablados del planeta (español, francés, alemán, chino, etc.), y a medida que un servicio madura llegan otros muchos idiomas que consiguen que los usuarios no vean ninguna dificultad en utilizarlo, y que lo identifiquen con una herramienta cercana, y no con una hecha en EEUU. De hecho, cuando un servicio es traducido a nuevos idiomas, no falta nunca un post ofi...

¿El coche 'Google-car'? Vídeo del prototipo de vehículo eléctrico en el que ha invertido Google- Además de su actividad en el mundo de la "organización de la información mundial" (en el que es uno de los líderes indiscutibles), Google creó hace unos años la 'Fundación Google' (google.org), organismo que cuenta con aportaciones económicas de la compañía y que persigue, entre otras cosas, utilizar eficazmente la tecnología para desarrollar nuevas fuentes de energía y medios de transporte que garantizen el desarrollo sostenible de nuestra Civilización.
Así por ejemplo, 'google.org' está re...

Google adquiere la firma Omnisio para mejorar la creación de vídeos interactivos en YouTube- El pasado mes de junio os hablábamos de la nueva funcionalidad de YouTube que nos permite a los usuarios insertar anotaciones interactivas dentro de los vídeos de este servicio para poder así ampliar la información con indicaciones sobre lo que se está viendo en las imágenes, permitiendo incluso que otros usuarios interactúen con dicha información.
Ahora, en este post oficial se anuncia que Google ha adquirido la firma californiana Ominisio, lanzada públicamente hace solamente 5 meses, y esp...

Google creará una firma de capital-riesgo- Durante los últimos años, Google ha adquirido varias empresas tecnológicas (YouTube, Image America, Panoramio), y también ha realizado inversiones en otras (Comunidad WiFi 'Fon', navegador web 'Maxthon', tecnología P2P 'Xunlei', tecnología de energía solar 'eSolar', Comunidad WiFi 'Meraki'). Además, también se creó el proyecto 'Google Gadget Ventures' para dedicar 100.000 dólares a financiar proyectos basados en 'Google Gadgets'.
Por ello, muchos emprendedores ven a Google realmente como una...

Cadena italiana de TV demanda a YouTube y exige 500 millones de euros- Hace unos días os contábamos cómo un tribunal
español obligaba a YouTube a ir eliminando una serie de vídeos que la cadena de TV TeleCinco consideraba habían
sido publicados "ilícitamente y sin autorización" dentro del servicio.
Esa demanda, hasta la fecha (aunque no se descartan denuncias posteriores), no incluía exigencia de una compensación
económica por los supuestos daños generados, pero en Italia se acaba de conocer una demanda que sí que lo incluye.
Y es que, según se informa en
...

Lanzado Cuil, un buscador de alto contenido tecnológico que promete hacer sombra a Google y proteger nuestra privacidad- En enero de este año os contábamos en el post "2008: ¿el año en que veremos un competidor real al buscador web de Google?" cómo estaban surgiendo varios proyectos que intentaban hacer sombra al buscador web de Google. Uno de estos nuevos buscadores se llama Cuil, ha sido presentado hoy y, como os contamos en su día, está liderado por grandes expertos mundiales en la tarea de indexar la información contenida en miles de millones de documentos web.
:: Anna Patterson y Russell Power, antiguos res...
- Actualización del PageRank, anunciada previamente por Google

Tribunal italiano condenará a directivos de Google por un vídeo de bullying dentro de 'Google Video'- En noviembre de 2006 nos hacíamos eco de la noticia de que la Policía italiana había entrado en la sede de Google para investigar un vídeo colgado por varios jóvenes dentro de 'Google Video', y en el cual se mostraban imágenes de agresiones a un alumno por parte de sus compañeros de colegio en Turín.
La Justicia italiana comenzó a investigar si el hecho de no haber controlado los contenidos podía suponer causa de delito, y las posibles responsabilidades de varios de los directivos de Google....

Despliegue de Fecha I- En este tutorial vamos a aprender como manejar la fecha y hora en Perl así como una manera sencilla de desplegarla.
En este tutorial vamos a aprender como desplegar la fecha con Perl de manera sencilla y rápida.
time() y localtime()
En Perl podemos saber la hora del día usando la función time(), esta función regresa un número que si lo vemos es similar al siguiente:
1192320763
Este número representa la cantidad de segundos que han transcurrido desde una fecha en específico, en la mayoría de los sistemas esta fecha es el 1º de Enero de 1970 a las 0 horas GMT, una excepción de estos sistemas es la Mac, que cuenta los segundos desde el 1º de Enero de 1904 en la zona horaria del sistema.
A menos que tengamos la habilidad para hacer las fórmulas matemáticas en nuestro cerebro para convertir esos segundos en días, meses y años, realmente no nos ayuda de mucho, y para ello debemos de usar otra función de Perl que es localtime().
La función localtime recibe un número de tiempo similar al regresado por la función time() de Perl y convierte el número en una lista de 9 elementos.
# 0, 1, 2, 3, 4, 5, 6, 7, 8
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
$sec(segundos), $min(minutos), y $hour(horas), representan la hora de la fecha especificada por time.
$mday es el día del mes y $mon es un número del 0 al 11 que representa el mes, donde 0 es Enero y 11 es Diciembre.
$year es la cantidad de años desde 1900 a la fecha. Así que para 2007 este elemento tendrá un valor de 107.
$wday es el día de la semana, representado con un número del 0 al 6, donde 0 es Domingo y 6 es Sábado.
$yday es el número del día del año, este número está en el rango del 0 al 364 y hasta 365 en años bisiestos.
Finalmente $isdst es verdadero en el caso de que la fecha esté dentro del horario de verano, también conocido como Daylight Saving Time, será falso de lo contrario.
Ya teniendo nuestros elementos entonces es simplemente cuestión de imprimirlos como nosotros querramos para sacar la fecha y hora actual:
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
$year += 1900;
$mon++;
print "$mday/$mon/$year $hour:$min:$sec\n";
Primer recibimos nuestros 9 elementos de la fecha usando localtime().
Después sumamos 1900 al número que tenemos en $year, debido a que localtime() nos regresa la cantidad de años desde 1900.
En la cuarta línea sumamos uno al mes, pues recuerda que los meses los empieza a contar desde 0 y no de 1 como nosotros queremos.
Finalmente en la última línea imprimos la fecha y hora para que se vea de la siguiente manera:
13/10/2007 18:33:11
POSIX
Ya sabemos como imprimir la fecha, pero como todo en Perl, hay más de una manera de hacer las cosas, y de hecho hay una manera que es mucho más sencilla.
Todas las distribuciones de Perl vienen con módulos base, entre ellos POSIX. Este módulo contiene una función llamada strftime que nos permite darle formato a alguna fecha de manera sencilla.
Por ejemplo, para imprimir la fecha en el formato anterior, haríamos lo siguiente:
use POSIX qw/ strftime /;
print strftime( "%d/%m/%Y %H:%M:%S", localtime(time) );
En la primera línea cargamos el módulo POSIX con la función strftime para poder usarla en nuestro código.
Después, en la siguiente línea hacemos la llamada a la función e imprimimos el resultado.
Debemos enviar 10 argumento en total a strftime(), el primero es el formato en que queremos imprimir la fecha, y los otros nueve son todos aquellos elementos que nos regresa la función localtime. En este caso, simplemente hacemos una llamada a localtime que envía la lista a la función strftime.
Como ves es cuestión de un par de líneas desplegar la fecha como nosotros queremos, pero incluso podemos formatear la fecha de diversas maneras. Si ves, la cadena de formato está compuesta de varios símbolos de porcentaje seguidos de letras, estas expresiones serán sustiuidas por valores específicos por medio del POSIX, las posibles expresiones que podemos usar son:
%aabreviación del día de la semana en inglésSun a Sat
%Adía de la semana en inglésMonday
%bmes abreviado en inglésJan a Dec
%Bmes en inglésJanuary
%cfecha pre-formateadaej. Fri Apr 28 17:23:15 1995
%ddía del mesej. 01-31
%Hhora del día00-23
%Ihora del día01-12
%jdía del año0-365
%mmes del año01-12
%Mminuto00-59
%pAM o PMAM-PM
%ssegundos00-59
%usemana del año (Domingo como primer día)01-53
%wdía de la semana1 (Lunes) a 7 (Domingo)
%Wsemana del año (Lunes como primer día)01-53
%xfecha formateadaej. 04/28/95
%Xhora del díaej. 03:30:01 AM
%Yaño en 4 dígitosej. 2007
%Zzona horariaej. Center Daylight Time
El camino que tomes para desplegar la fecha en tu código depende de ti, pero mi recomendación es que uses POSIX pues te simplificará la vida.
En el siguiente tutorial veremos maneras más completas de desplegar la fecha en otros idiomas como el Español, usando unos módulos bastante sencillos.

Creando aplicaciones web con CGI::Application- En este tutorial vamos a aprender a crear aplicaciones web usando el módulo CGI::Application. Este módulo nos dará la capacidad de crear aplicaciones CGI portables y fáciles de mantener, sin duda una gran herramienta para el programador web.
En este tutorial vamos a aprender a usar el módulo CGI::Application.
El módulo CGI::Application nos brinda una estructura que nos permite escribir aplicaciones web rehúsables. Sencillamente CGI::Application proporiciona una estructura que usa todo lo que funciona de CGI y quita todo lo negativo que hoy en día se pueden encontrar en aplicaciones CGI creadas con Perl.
A través del siguiente tutorial verás que este módulo permite crear aplicaciones web que funcionan en todos lados siempre y cuando se tenga la capacidad de ejecutar Perl y CGI. Incluso, permite crear aplicaciones funcionales que podrían ser distribuidas por medio de CPAN.
Entendiendo CGI::Application
Todas las aplicaciones web consisten de diferente modos de ejecución, por ejemplo, si tuviéramos una aplicación que hace búsquedas en una base de datos, tendría un modo que desplegaría el formulario de búsqueda, otro modo donde se despliegan los resultados, otro modo donde se podrían ver los detalles de una entrada, etc. Todos estos modos de ejecución en su conjunto arman lo que sería nuestra aplicación.
Cada programador tiene una manera distinta de administrar o manejar los modos de ejecución de la aplicación. Lo más común es usar bloques de IF-ELSE para decidir que parte de la aplicación ejecutar.
Por ejemplo, para una aplicación que muestra los resultados de una base de datos, se podría seleccionar que parte ejecutar dependiendo de los parámetros enviados:
my $query = CGI->new();
print $query->header();
if ( my $busqueda = $query->param('busqueda') ) {
#Hacemos la búsqueda y la desplegamos
}
else{
#Mostramos el formulario de búsqueda
}
Este tipo de código es lo que da una mala reputación a los CGIs. Tiene una pésima estructura y cualquier cambio que se quiera hacer es sumamente complicado.
CGI::Application nos brinda una excelente solución para administrar y manejar los modos de ejecución de nuestra aplicación.
Creando las facetas de nuestra aplicación
Lenguajes como ASP, Cold Fusion y JSP intentan administrar estos modos de ejecución teniendo un archivo distinto por cada modo de la aplicación. Esto crea la desventaja de que terminas teniendo tantos archivos en tu aplicación como modos de ejecución. Al hacer esto, sacas de contexto los modos al independizar cada parte, pues al final de todo, estos modos de ejecución son parte de la misma aplicación.
CGI::Application ataca el problema desde otro punto de vista al brindar dos funciones básicas.
En primer lugar, CGI::Application designa un único campo de HTML como el "Mode Parameter" (parámetro de Modo). Este Mode Parameter es usado para almacenar el modo de ejecución actual de tu aplicación, cuyo valor es una simple cadena de texto. El Mode Parameter funciona como un policía de tráfico, dirigiendo la ejecución de la aplicación correctamente.
La segunda función, es que CGI::Application asocia cada modo de ejecución como una subrutina de Perl. Cada subrutina, llamada como "Método de Ejecución", contiene la manera en que la aplicación se comporta en cada modo de ejecución. Todos los Métodos de Ejecución se encuentran en un mismo módulo de Perl, al que llamaremos Módulo de la Aplicación.
Tu Módulo de la Aplicación es una subclase de CGI::Application. De hecho, CGI::Application no fue creado para usarse directamente.
Nuestra primera aplicación
Vamos a crear una pequeña aplicación que va a constar de tres modos de ejecución, en el primero mostraremos el formulario de búsqueda, en el segundo mostrará los resultados y en la tercera mostraremos los detalles de cada elemento.
Empecemos creando un nuevo archivo .pm para crear nuestro Módulo de la Aplicación al que llamaremos: "MiPrimeraAplicacion".
En al primera línea vamos a identificar a nuestro módulo:
package MiPrimeraAplicacion;
Después de ello usaremos la función base que nos permite cargar un módulo pero heredando todas sus funciones. En esta caso el módulo del cual queremos heredar es CGI::Application.
use base qw( CGI::Application );
El siguiente paso es hacer la inicialización de nuestra aplicación. La inicialización consiste en crear el mapa de nuestra aplicación. El mapa será usado para unir cada modo de ejecución con la subrutina correspondiente.
Piensa en este mapa como la lista definitiva de cosas que tu aplicación puede hacer. Si más adelante quieres agregar más funcionalidades, todo lo que tendrías que hacer es meter una nueva entrada en tu mapa.
Para hacer la inicialización tenemos que crear una función setup():
sub setup {
}
Debido a que el módulo CGI::Application está orientado a objetos, entonces nuestro módulo también creará un objeto. Hagamos el setup() de nuestra aplicación de ejemplo:
sub setup {
my $self = shift;
$self->run_modes(
'modo_1' => 'mostrar_formulario',
'modo_2' => 'mostrar_resultados',
'modo_3' => 'mostrar_detalles'
);
$self->start_mode('modo_1');
$self->mode_param('accion');
}
Expliquemos un poco lo que acabamos de hacer. Primero asignamos a la variable $self una instancia de nuestra clase de la aplicación. Después llamamos al método run_modes() que se encarga de crear el mapa. El método recibe un %hash en donde las llaves son el nombre de nuestro modo de ejecución, y el valor es el nombre de la función que queremos llamar en ese modo de ejecución.
Después debemos de asignar nuestro modo de ejecución default, en nuestro caso será el "modo_1" pues queremos mostrar de entrada el formulario de búsqueda.
Finalmente con el método mode_param() asignamos el nombre del Mode Parameter, es decir, ese campo del formulario HTML que nos dice que modo de ejecución es la que se debe de ejecutar. En este caso la llamaremos 'accion'.
Los modos de ejecución
Ahora debemos de crear las subrutinas de los modos de ejecución. Recuerda que cada modo de ejecución está asignado a su subrutina la cual identificamos al crear el mapa.
Las subrutinas de cada modo de ejecución se crean igual que cualquier otra subrutina. Al ser llamada se le envía como primer parámetro una referencia al objeto de la aplicación, y las subrutinas deben de regresar el "output" que queremos desplegar.
Es muy importante que nunca imprimas nada en el STDOUT en tus subrutinas, pues el módulo CGI::Application se encarga de hacer esto con los encabezados adecuados.
En tu aplicación siempre será necesario tener interacción entre los datos enviados por medio de GET o POST a tu CGI. CGI::Application no intenta hacer esto, en su lugar, usa el gran módulo CGI.pm para toda interacción con los querys de tu CGI.
Al llamar el método query() de CGI::Application el módulo te regresará un objeto de tipo CGI.pm que podrás ya usar con normalidad.
Ahora vamos a crear nuestra primer subrutina para el método de ejecución "modo_1. La subrutina la vamos a llamar mostrar_formulario().
sub mostrar_formulario {
my $self = shift;
# Obtener el objeto CGI.pm
my $q = $self->query();
$output .= $q->start_html(-title => "Formulario de Búsqueda");
$output .= $q->start_form();
$output .= "Buscar en el database: ";
$output .= $q->textfield(-name => 'database');
$output .= $q->submit();
# Ponemos la llamada al siguiente modo de ejecución
$output .= $q->hidden(-name => 'accion', -value => 'modo_2');
$output .= $q->end_form();
$output .= $q->end_html();
return $output;
}
Como podrás ver la subrutina es bastante clara. La subrutina del modo de ejecución es llamada en un contexto orientado a objetos ($self). Obtenemos un objeto CGI.pm por medio del método query() de nuestro Módulo de la Aplicación heredado desde el módulo CGI::Application.
En este caso, usamos el mismo objeto de CGI.pm para crear el formulario, pero básicamente lo puedes hacer como quieras, siempre y cuando regreses el resultado usando return(). Recuerda que NO debes de imprimir nada al STDOUT.
Como ves todo es bastante sencillo, quizá lo más "complicado" es que siempre debemos recordar poner un campo "accion" (en este caso es así porque así decidimos llamar a nuestro Mode Parameter) cuyo valor será el modo de ejecución que queremos ejecutar. En este caso como el responsable de mostrar los resultados de la búsqueda es el "modo_2", entonces tenemos que poner ese valor para que se llame a la función mostrar_resultados().
Veamos ahora un ejemplo de como sería nuestra subrutina mostrar_resultados().
sub mostrar_resultados {
my $self = shift;
# Obtener el objeto CGI.pm
my $q = $self->query();
# Creamos un hash con todos los parámetros recibidos
my %Input = $q->Vars;
my $output = "";
# Hacemos la búsqueda
# por ejemplo seleccionar de un database todas las
# entradas que tengan la palabra puesta por
# el usuario en $Input{'busqueda'}
return $output;
}
Bastante sencilla ¿no?. Ahora cuando mostramos los resultados podremos poner a cada resultado un link parecido al siguiente: 'miaplicacion.cgi?accion=modo_3&id_entrada=232562'.
Así el usuario podrá ver más detalles de cada entrada, recuerda que el modo_3 llama a la función mostrar_detalles() que se encargará de desplegar los detalles de la entrada, quizá buscando por el id enviado en el parámetro 'id_entrada':
sub mostrar_detalles {
my $self = shift;
# Obtener el objeto CGI.pm
my $q = $self->query();
# Creamos un hash con todos los parámetros recibidos
my %Input = $q->Vars;
my $output = "";
# Buscamos los detalles de la entrada con id $Input{'id_entrada'}
return $output;
}
Los encabezados de HTTP
Por default el módulo CGI::Application imprimirá todo el contenido con el MIME-Type "text/html". Si deseas usar otro MIME-Type, manipular algún cookie, o crear alguna redirección de HTTP, entonces deberás de cambiar los encabezados de HTTP.
Esto lo puedes hacer usando el método heredado header_type() y header_props(). Checa la documentación de CGI::Application para sus detalles.
Nuestro Script CGI
Listo, ya tenemos nuestro Módulo de la Aplicación listo, pero ahora tenemos que hacer el script CGI. Nuestro script CGI será el encargado de ejecutar nuestra aplicación.
En la programación tradicional de CGI, tendríamos un archivo llamado por ejemplo, miaplicacion.cgi que será ejecutado por nuestro servidor y mostrado el resultado. Normalmente este script sería muy grande pues contendría todo el código necesario para ejecutar la aplicación, pero usando CGI::Application todo el código está en nuestro Módulo de la Aplicación.
De esta manera nuestro script CGI estaría realmente vacío, pues de lo único que se encargaría es de cargar un nuevo objeto de MiPrimeraAplicación y listo. Así que vamos a crear un archivo CGI al que vamos a llamar miaplicacion.cgi:
#!/usr/bin/perl -w
use strict;
use MiPrimeraAplicacion;
my $app = MiPrimeraAplicacion->new();
$app->run();
Realmente sencillo. Cargamos nuestro objeto MiPrimeraAplicacion y lo ejecutamos.
En nuestra aplicación de prototipo MiPrimeraAplicacion vimos todos los elementos esenciales de una aplicación hecha con CGI::Application.
Nuestro Módulo de la Aplicación lo podemos poner en cualquier lugar de nuestro servidor, siempre y cuando pueda ser accesado por perl y nuestro CGI. Lo más recomendado es que lo pongas en un directorio que no pueda ser accesado por el servidor web.
Conclusiones y Conceptos Avanzados
En este tutorial vimos las bases para que puedas empezar a crear tus aplicaciones usando el excelente módulo CGI::Application. Sin embargo, el módulo nos ofrecer características más avanzadas que podrás aprovechar.
Reutilización del código
Uno de los puntos fuertes que tiene el crear tus aplicaciones cgi con CGI::Application, es que toda la funcionalidad de tu aplicación lo pones dentro de un módulo, siguiendo su estructura y sy lógica. Esto te permite rehusar código de manera sencilla.
En este tutorial no vimos el método cgiapp_init() que te permite inicializar el objeto de tu aplicación con unos parámetros iniciales, así podrías por ejemplo, permitir que ciertas partes de tu aplicación sean accesadas, o que otras se comporten de diferente manera dependiendo de como cargues el objeto desde tu script CGI.
En fin, las posibilidades son tantas como se te ocurran, lo importante es que sigas los linamientos de CGI::Application, y te encontrarás haciendo aplicaciones CGI fáciles de mantener y con excelente portabilidad.
Usando HTML::Template
En todo tipo de aplicación la separación entre lo que cambia y lo que nunca cambia es totalmente importante. Usando templates tenemos la capacidad de separar el diseño del código.
El módulo CGI::Application viene con una sencilla manera de integrar el módulo HTML::Template a nuestra aplicación por medio de los métodos tmpl_path() y load_tmpl(). Para más detalles acerca de ellas, checa la documentación de CGI::Application.
Otros Recursos
El tutorial lo basé en el artículo 'Using CGI::Application' de Jesse Erlbaum que lo puedes encontrar en:
http://www.perl.com/pub/a/2001/06/05/cgi.html
Documentación de CGI::Application
http://search.cpan.org/search?query=CGI%3A%3AApplication&mode=all
Documentación de CGI.pm
http://search.cpan.org/search?query=CGI&mode=all
Como usar el módulo HTML::Template
Usando HTML::Template

