Ayer lunes entró en producción uno de nuestros proyectos más ambiciosos junto a Irc-Hispano, la red de chat más grande e importante del mundo hispanohablante. Se puede acceder a nuestra aplicación desde aquí.
Hacía muchos años que queríamos algo así pero no existía la tecnología necesaria. Los que usamos Internet desde hace muchos años, en mi caso desde 1994, sabemos que antes de que existiese el Messenger ya estaba el IRC, el chat de toda la vida. El problema era que se necesitaban programas concretos para utilizarlo (Mirc) y después había que saber configurarlo y tener unas nociones básicas (servidores, nicks, canales, kick, ban, join…). Muy complicado para el usuario no experto. Así apareció a finales de los 90 la probablemente mayor utilidad de los applets de Java: el cliente IRC online. Ahora los usuarios ya no necesitaban conocimientos ni instalarse nada, simplemente accedían a la web, ponian su nick, el canal donde querían chatear, y a “relacionarse”. Incluso aparecieron clientes IRC en HTML, muy útiles pero sin las opciones de usabilidad de las otras.
La idea era muy buena, pero nadie había contado con los problemas asociados: necesidad de la máquina virtual de Java, lentitud, pesadez, etc. Los usuarios no tenían más que problemas.
Corría entonces el año 2002 cuando se nos ocurre hacer lo mismo pero en Flash, una tecnología presente en la mayoría de navegadores y con una implantación mucho mayor que la de Java. Nos pusimos a investigar y nos llevamos una gran decepción, no había forma de comunicarse con un servidor IRC estandar, en aquél momento Flash sólo disponía de xmlsocket, que permitía conectarse a hosts remotos pero siguiendo unas especificaciones especiales.
Todo estaba perdido hasta 2006. En junio de este año Adobe (que ya había absorvido a Macromedia) lanzaba Flex2 y junto a él la versión 9 de Flash Player con la funcionalidad más esperada por nosotros: la posibilidad de crear sockets binarios. Con esto ya se podían hacer en Flash clientes pop/smtp, ftp y, por supuesto, IRC. Esto marcó un antes y un después y nos pusimos de inmediato a planificar nuestro sueño. Tardamos más de seis meses en meternos de lleno en el proyecto puesto que ya estábamos trabajando en otros.
Desde el primer día tuvimos que comenzar a pelearnos con el RFC del protocolo IRC, fundamental para conocer el funcionamiento del sistema ya la sintaxis de todos los mensajes de ida y vuelta con el servidor. Una vez tuvimos el núcleo básico fue relativamente sencillo construir toda la interfaz de usuario sobre él, creando los comandos y acciones así como los eventos de respuesta. El primer problema era que había muchas opciones distintas, así que fuimos fijando prioridades y trabajando sobre ellas.
Cuando teníamos una versión básica pero funcional y debido a las políticas de seguridad de la máquina virtual Flash, nos pusimos en contacto con Irc-Hispano y desde el primer momento les encantó la idea, los planes y nuestro prototipo, con lo que fue sencillo llegar a un acuerdo que beneficiase a ámbas partes. Mientras nosotros desarrollábamos, la gente de Irc-Hispano se ocupaba del testing.
Hablando ya técnicamente, y aunque esté mal que yo lo diga, se ha hecho un trabajo impresionante exprimiendo toda la potencia de Flex. Hemos conseguido integrar bastantes cosas que a simple vista son casi imposibles de utilizar en Flex, como los smileys en un área de texto, o los colores de fondo. Documentándonos por aquí y por allí y viendo lo que habían conseguido otros conseguimos adaptar ciertos sistemas a nuestras necesidades quedando el conjunto francamente bien.
Desde el primer momento tuvimos claro que la única forma de conseguir sacar una aplicación de este tipo era usando técnicas de desarrollo ágiles, y así lo hicimos, preparando periódicamente versiones funcionales de lo que hubiese y poniéndola a disposición de los usuarios para que nos aportasen el feedback necesario, no solo de errores sino también de usabilidad y funcionalidad en general. La experiencia ha sido perfecta y todo el equipo ha salido beneficiado de este modo de trabajo, ya que se elimina automáticamente el estrés del miedo a los cambios cuando el producto está ya terminado.
Y así llegamos hasta hoy en que se lanza públicamente. Se han hecho muchas más funcionalidades de las previstas inicialmente y seguramente se irán haciendo muchas más a medida que se vaya utilizando. Por nuestra parte ha sido un esfuerzo enorme en horas de trabajo y quebraderos de cabeza para hacer y solucionar problemas sin respuesta aparente, pero el resultado ha valido la pena.
A partir de ahora esperamos ir corrigiendo bugs y añadiendo mejoras, ideas no nos faltan y seguramente habrá muchas sorpresas ;). Algún día también refactorizaremos :P.



14 usuarios han comentado en " Cliente IRC online en Flex en colaboración con Irc-Hispano "
Feed Los comentarios para esta entrada TrackbackNada mas se olvidaron de un pequeño detalle… multiplataforma… en linux no corre, me pide la versión mas actual de flash, tengo la 9 pero no correo.
saludos…!
Buenas MaoP,
Sí que funciona, te lo aseguro, lo hemos más que comprobado.
Lo más probable es que tengas un Player 9 pero de los primeros, necesitarás una de las últimas actualizaciones, la 115 o 124.
Actualiza el player y verás como sí que te funciona. En Windows y Mac se actualiza automáticamente al entrar si no tienes la versión necesaria.
Un saludo!
[…] [Jesús Igleias le da un enfoque técnico en su blog] […]
Osus,
Tenías toda la razón, aunque bajé la actualización no me funcionó por no reiniciar el FF x).
Funciona genial en FFb5!
Felicidades, muy buen trabajo, ahora sólo faltaría que se pueda montar en cualquier web como widget y que se conectara a cualquier red, o las mas comunes al menos, freenode, oftc, etc…
Saludos…!
Genial MaoP!!
Nada me gustaría más que se pudiese usar con cualquier red, pero por desgracia las limitaciones de seguridad de la máquina virtual Flash lo hacen imposible sin la colaboración de la propia red, puesto que tienen que hacer ciertos ajustes de seguridad en sus máquinas. Esa ha sido una de las razones de que se nos haya alargado en exceso el desarrollo.
y otras mucho más espectaculares :P, todo se andará.
Hay muchas cosas en el tintero… una de ellas usarlo como widget como dices
Saludos,
Osus
¿Eres Osus de Pontevedra?
Hola Javi,
Sí, soy yo… o debo serlo
¿Nos conocemos?
Saludos,
Osus
Hola, ya probe el cliente y esta excelente, mis felicitaciones, llevaba tiempo buscando un irc-client en Flex, ¿Han pensado en liberar el codigo?
Hola Paren.
Gracias por la felicitación.
En principio no tenemos pensado liberarlo ya que ha sido un acuerdo con Irc-Hispano y estamos con ellos en esto. De todos modos te comento que, debido a las políticas de seguridad del Flash Player (http://blog.osusnet.com/2008/04/15/flash-player-sockets-y-politicas-de-seguridad/) no se podrá usar directamente en ninguna otra red, necesitarás siempre que la red de IRC colabore contigo para adecuar sus sistemas a esas políticas de seguridad.
Saludos,
Osus
Así es Osus, me leí tu post, un poco engorroso con estos tipos de Adobe, en fin, todo sea por la Seguridad, Fíjate que probé el cliente que esta en googlecode, y si conecta a freenode
Eso significa que tu cliente igual
pero en fin respetemos las políticas de privacidad con irc-hispano jeje
Lo reitero, les quedo muy chulo el cliente, y lo mejor es que esta rapidísimo, muy buena opción para los otros clientes web (CGI-Ajax y Java).
Gracias
Hola Paren!!!
¿Lo probaste en local o a través un servidor web público?
En local no se tienen en cuenta las políticas de seguridad, se asume que sabes lo que ejecutas, es cuando lo lanzas en un servidor público cuando te encuentras con el problema como nos ocurrió a nosotros.
Por favor, pruébalo y nos cuentas. Pero ya te digo que el puerto 843 de freenode no responde a nada
Saludos
Osus
Bien Osus, tenías razón, lo probé local, no lo he probado en server pero como ya dices con freenode no va jeje.
Gracias.
Realmente ha sido un cambio espectacular, sin embargo, yo soy de los de la vieja usanza y me han chafado lo de conectarme al script de la pagina y poder entrar desde las paginas web… Podeis buscar una manera sencilla de llamar al flash para implementarla como plugin para las webs en wordpress, google, myspace, etc.? Algo asi como : Tu nick:________ [ Conectar ] y que podamos dejar el canal oculto (para hacer mas accesible el chat del irc y poder implementarlo en las webs). Busco integrar la potencia del IRC-Hispano con las webs.
Hola Pesadillo!!
Puedes hacerlo de varias maneras, no tienes más que cargar el swf:
http://www.irc-hispano.es/webchat/ircFlex.swf
Puedes, además, pasarle parámetros: nick, clave y canal, por ejemplo:
http://www.irc-hispano.es/webchat/ircFlex.swf?canal=pesadillo&nick=pesado
Si pasas nick y canal automáticamente se conectará sin que salga la ventana de login. Como puedes pasar los parámetros por GET, puedes hacer tu propio formulario integrado en tu web que recoja los datos del usuario y abras una ventana nueva o lo que prefieras.
Espero haberte ayudado, de todos modos, si tienes problemas, no dudes en preguntar.
Saludos!!
Dejar una respuesta