Fernando Guillén

a Freelance Web Developer

cabecera decorativa

software development as an artistic expression

Archive for the ‘orgullo artesano’ Category

Friday, January 16th, 2009

Ruby on Rails: exception_logger con soporte jQuery

Estaba yo viendo el screencast éste sobre notificación de excepciones del grandísimo Ryan Bates y me puse a instalarlo, que son, calculando por lo alto, un par de minutos. Y cuando intento acceder al listado de excepciones veo que no funcionan los links ni las acciones ajax de borrar y tal… ouch¡.. resulta que está pensado para trabajar con Prototype y yo tengo todo por defecto con jQuery… así que nada, gracias al gran poder forkeador de github me puse a modificar el plugin para que soporte jQuery y aquí tenéis el resultado:

Exception_Logger_jQuery.

Instalarlo tal que así:

$ git clone git://github.com/fguillen/exception_logger_jquery.git vendor/plugins/exception_logger

Si queréis paginación hay que instalar la gema will_paginate y tocar el init.rb:

$ sudo gem install will_paginate
# init.rb
require 'will_paginate'
$PAGINATION_TYPE = 'will_paginate'
Saturday, January 10th, 2009

Monsters of Ruby!!!

No estaban todos los que eran ni eran todos los que estábamos pero si es cierto que se logró reunir a un buen grupo de Monstruos del Ruby.

Sábado 13 de Diciembre de 2008, 14horas, una convocatoria vía email logró reunir a rubistas de todo el estado en una sola habitación para enfrentarse a un reto por equipos.

Se trataba de enfrentarse a un fast-code de una aplicación web usando para el desarrollo de cada una de las capas herramientas que empiezan a emerger y de las que carecíamos de ningún dominio.

Nos mostraron como especificación una aplicación hecha en Rails llamada Frankenstein, para cuyo desarrollo emplearon un par de horas y otro poco para otorgarle un sugerente diseño.

Nos dividimos por equipos atendiendo a la suerta y también por sorteo se fueron repartiendo las herramientas (librerías) que cada equipo podía emplear.

A nuestro monstruoso equipo (los nosferatu) nos tocó:

Pero hubo combinaciones mucho más dolorosas.. :) que ahora no logro recordar.

Nuestro resultado lo podéis encontrar aquí: Nosferatu, pero está totalmente incompleto y dudo que logréis hacerlo funcionar sin nuestras explicaciones. El resto de  grupos y resultados los tenéis en el grupo monstersofruby de github.

A mi parecer no se puede entender lo logrado en esta reunión viendo el código generado. Lo que se ha conseguido va mucho más lejos del código, para mí ha sido una apertura de mente hacia las tecnologías que desconozco pues me da una pereza horrible enfrentarme a la primera línea de código, pero esta experiencia me ha demostrado que no es tan complicado y que hay muchas estrellas en el cielo por conocer.

Además también ha sido otra demostración más de la amigabilidad, sociabilidad, apertura y deseo de compartir que embriaga a toda esta peña entusiasmada con la programación.

Muchas gracias a todos.. ¡hasta la próxima! .. qué por cierto ya se está cociendo.

Tuesday, January 6th, 2009

Looking for _why

La gente que estamos intentando que se haga realidad la Euruko 2009 y entre todos ellos especialmente Marze y yo, nos gustaría mucho traer a _why a Barcelona a alegrar con sus excentricidades y genialidades alguna de las sesiones.

El caso es que no está resultando nada fácil dar con él, no nos quiere contestar a los mails. Incluso hemos contactado con DrNic a ver si él es capaz de hacerle llegar alguno de nuestros mensajes.

La mejor idea la ha tenido Marze que se ha currado una carta al más estilo un-plugged para intentar llamar su atención:

looking for _why

Si por favor ves a _why por algún ricón de la red dile que la gente de la SRUG le estamos buscando.

Friday, December 12th, 2008

Fichado por LaCoctelera

Hace ya bastantes meses que debería haber escrito este post pero la entrada ha sido tan suave que casi no encuentro el punto de inflexión, cuando verdaderamente ya podía decir que estaba dentro.

Creo que el día D fué cuando Blat me dió acceso a la rama master de la LaCoctelera y me dijo “¡commitea sin miedo!“.

Hace ya como 7 u 8 meses desde aquella reunión de primer contacto en los vagones de la línea 1 del metro de Madrid entre Álvaro, Blat y un servidor. Los inicios fueron lentos, limitados por mi inexperiencia y por mi preferencia a no tener mucha responsabilidad, acordamos que le dedicaría un día a la semana a la implementación de módulos cercanos a LaCoctelera pero que no formaban parte del core. Incluso manejaba mi propio repositorio.

Hace ya tres meses que hemos ampliado mi participación en este equipo, ahora sí que hay cachitos en el corazón de este magnífico proyecto Ruby on Rails que han sido desarrollados con estos deditos.

Desde que me llegó el flechazo con Rails hace ya exactamente un año uno de mis objetivos profesionales era formar parte del equipo de LaCoctelera, para mí el buque insignea de la flota Rails hispana, ahora ese sueño se ha cumplido, mi agradecimiento a Álvaro por la confianza que ha depositado en mí y a Blat por convertirse en mi mentor :).

Friday, September 26th, 2008

Idea: twitter con voz

Todo parte de la siguiente visión: estar a tus quehaceres con el ordenador y mientras tanto, en background, escuchando un mini-podcast en tiempo real de los desvaríos sonoros de todos tus amigos.

La implementación me imagino que se basaría en un cliente flash que fuera capaz de capturar de tu micro y enviar diréctemente al servidor. El mismo cliente se encargaría de recoger todos los streamings que le están llegando y hacérselos llevar a tus followers.

Como ves es una tontada sin modelo de negocio ninguno y con un gran gasto en ancho de banda, pero que en caso de funcionar crearía situaciones bastante locas y curiosas… y seguramente insoportables :)

… Como suele ocurrir cuando empiezas a creerte original sin mirar en google esto ya está requete rebenio:

Aunque veo que tienen la gran idea de usar el teléfono como cliente de envío, a todas ellas les falta un cliente flash para enviar los twitt-voice desde tu ordenador.

(Que raro que este dominio esté en párking: http://twittervoice.com )

Wednesday, September 24th, 2008

Idea: Generador de tests de carga vía web para aplicaciones web

Existen muchos sistemas para ejecutar tests de carga y rendimiento sobre aplicaciones web.

Pero no logro encontrar ninguno que funcione directamente como servicio web, configurable vía formularios y con salida de informes en múltiples formatos desde excel a estadísticas gráficas.

Con esto nos ahorraríamos el tener que instalar cualquiera de las aplicaciones existentes, enterarnos de como configurarlas,  conseguir los servidores y ancho de banda necesarios, …

El sistema requeriría una gran inversión en ancho de banda y capacidad de proceso pero veo un claro modelo de negocio incluso permitiendo cuentas gratuitas para probar el sistema y cuentas de pago para cosas más serias.

¿Quién no pagaría 40€ (por decir algo) por poder hacer este tipo de pruebas sin perder todo un día en documentarse, configuraciones e instalaciones?

Internamente el sistema podría utilizar cualquiera de los sistemas ya existentes. Y el desarrollo duro estaría en implementar una capa anterior (la configuración gráfica) y una final la exportación a diferentes formatos de los resultados.

También, con un poco más de dificultad, se podría hacer que el sistema controlase una amplia red de servidores en diferentes continentes para poder hacer las pruebas mucho más completas y personalizables.

Esta idea ha surgido a partir de una conversación, como no, en la lista ror-es.

Jaime Iniesta nos ha comentado su inquietud por que este sistema se pueda usar para putear aplicaciones web de terceros generando mucha carga falsa sobre ellas, pero Ceritium ha salido al rescate proponiendo un sistema de validación al estilo Google Webmaster Tools que permite corroborar tu potestad sobre la aplicación colocando un determinado fichero en el root de tu aplicación.

¿Alguna idea de que exista algo parecido?¿Qué pegas le ves? ¿Comentarios?

Thursday, September 18th, 2008

Port Forwarding: accediendo a las máquinas de una intranet desde una sóla máquina pública.

Las redes de los clientes son celosas y normalmente sólo se puede acceder a las máquinas de su red desde dentro de la red misma. Lo que viene a llamarse una intranet.

Pero muchas de mis tareas de mantenimiento requieren acceso a varias máquinas de una intranet y desplazarme al cliente no lo veo una opción factible ni acorde con nuestros tiempos.

Una de las soluciones que más me ha gustado es pedirle al cliente un sólo acceso, una sola máquina con IP pública.

Para dar seguridad se puede configurar para que sólo se pueda acceder desde la IP estática de tu oficina, y, para ofrecer flexibilidad, que también se pueda acceder desde la IP estática de tu servidor en un datacenter. Pero bueno todo este párrafo te lo puedes saltar si no hay mucho inconveniente con la seguridad.

La máquina con la IP pública mola que sea linux, más que nada porque si no lo es ya no hace falta que sigas leyendo pues el resto del artículo sobreentiende esta premisa.

Lo que vamos a hacer es lo que se ve en la ilustración.

port forwarding

Aquí me ves a mí con más pelo y sin barba deseando acceder a todos los servicios de las máquinas de la intranet 10.10.10.* y sin embargo sólo pudiendo acceder a la máquina con la IP pública 205.205.205.205.

Lo que necesito tiene un nombre y este es Port Forwarding, y la implementación de esto más sencilla que he visto se hace mediante IP Tables.

Va a ser más rápido escribir los comandos que hay que ejecutar para que esto funcione que toda la charla previa que te he contado.

Mi máquina con acceso público tiene la distribución de linux Gentoo así que los ejemplos son para esta distro pero no deberían variar mucho para otras distros.

Instalamos iptables (si no está ya)

# emerge iptables

Le decimos al kernel que permita ip-forwarding

# echo 1 > /proc/sys/net/ipv4/ip_forward

Flasheamos toda la configuración de iptables que haya por defecto

# iptables -F
# iptables -t nat -F

Permitimos el forward desde iptables (eth0 es la interface pública)

# iptables -A FORWARD -i eth0 -j ACCEPT
# iptables -A FORWARD -o eth0 -j ACCEPT

Esto hace que las ips se enmascaren para no liar a los routes y saltarse posibles filtros de seguridad por IP

# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Y aquí por fín las reglas del Port Forwarding

# iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 213306 -j DNAT --to-destination 10.10.10.21:3306
# iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 2180 -j DNAT --to-destination 10.10.10.21:80
# iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 2280 -j DNAT --to-destination 10.10.10.22:80
# iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 2221 -j DNAT --to-destination 10.10.10.22:21
# iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 2322 -j DNAT --to-destination 10.10.10.23:22

Guardamos la configuración de iptables actual para que no haya que reescribirla al reiniciar

# /etc/init.d/iptables save

Ponemos el servicio de iptables para que arranque al inicio

# rc-update add iptables default

Creo que esto también hay que hacerlo

# vim /etc/sysctl.conf

Añadir/descomentar las siguientes líneas:

net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1

Y ya debería funcionar. Si me voy a mi máquina en mi oficina y accedo a:

$ mysql -h205.205.205.205 -P 213306

Me encontraré con la mysql de la máquina 10.10.10.21.

Si accedo con un navegador a:

http://205.205.205.205:2280

Me encuentro con el Apache de la máquina 10.10.10.22.

Si no te funciona revisa la linkografía:

Wednesday, September 17th, 2008

Idea: La conversación detrás de la ponencia

El turno de preguntas en una conferencia siempre es un momento de tensión, por una parte están los nervios y la ansiedad que te invade mientras dudas en si levantar la mano o no para exponer esa duda que te está rumiando desde el principio por si resultará interesante y por si sabrás exponerla con claridad frente al todo el auditorio. Por otra parte está la mala suerte del orador y de toda la platea cuando se le da el turno a un voluntario que expone una pregunta (o varias) de dudoso interés y que agota todo el tiempo disponible para preguntas.

Pero analizando este tema me doy cuenta de otra cosa y es el enfoque completamente anticuado, en este vanagloriado mundo web 2.0 en el que vivimos, que se le da a las ponencias de ser un 99% unidireccional.

Están las mesas redondas que intentan solventar este problema y también el turno de preguntas pero las unas acaban convirtiéndose en micro-charlas también unidireccionales y sobre el turno de preguntas ya he expuesto mi opinión.

Mi propuesta intenta ofrecer una bidireccionalidad ponente/público a las charlas y además una moderación mucho más ágil y democrático al turno de preguntas.

Durante una charla siempre es de agradecer tener algún conocido al lado con el que compartir alguna opinión, comentario o chascarrillo del tipo “vaya rollo” o “este tío mola” o “esto me recuerda a..“. Cuánto mejor estaría poder compartir estos pensamientos directamente y en tiempo real tanto con el resto de oyentes como con el ponente mismo.

Las preguntas que vayan surgiendo se añadirían al mismo pull público de la ‘conversación’ y se podrían votar para cuando el ponente lo decida poder moderarlas y elegir las que considere más oportunas contestar.

Lo que propongo es una especie de mini-digg con una vida muy limitada y un contexto muy concreto: la charla. Donde todo el mundo pueda exponer, anónimamente o no, sus comentarios y percepción de cada porción de la charla y además sugerir preguntas que puedan ser revisadas y votadas por el resto de oyentes.

La conversación

No se está inventando nada nuevo, los programas del corazón hace tiempo que tienen implementado un sistema muy parecido donde se puede ver la entrevista del ‘famoso’ de turno y, debajo de él, mensajes de apoyo o crítica enviados en tiempo real por los oyentes.

aqui hay tomate

Este sistema tiene serios problemas de moderación, generador de ruido y caldo de cultivo para trolls pero la diversión está asegurada si detrás del ponente podemos ver en una pantalla gigante cual es el estado de ánimo y la opinión de el resto de oyentes mientras al mismo tiempo atendemos respetuosamente a la oratoria.

Puede que un ponente no esté de acuerdo con que en su charla se implante este sistema, pero si de verdad tiene interés en su público debería agradecer conocer en todo momento la temperatura de la platea, al más puro estilo DJ.

El sistema de preguntas y de comentarios se podría separar y usar uno u otro pero creo que los dos son complementarios y todo debería pertenecer a la misma ‘conversación‘.

Si no hay posibilidad de ofrecer la ‘conversación‘ en una pantalla gigante tampoco importa, en las charlas suele haber accesos wifi así que podríamos estar con nuestros portátiles atendiendo a la ‘conversación‘ a la vez que escuchamos al ponente. Lo que quiero decir es que no hay necesidad de que este sistema sea ofrecido oficialmente por la organización del evento, siempre podrá participar el que quiera de una manera extraoficial.

El histórico de comentario y preguntas podría enriquecer la documentación de la ponencia para consulta en el futuro.

El modelo de negocio no está para nada claro, pero a quién le importa cuando una idea es útil y divertida.

En esta idea me voy a poner a trabajar en cuanto tenga un momento, si algún grafista de los presentes quiere participar con la estética será bienvenido.

¿Qué te parece? ¿Conoces algo parecido? ¿Tienes alguna sugerencia o crítica?

Monday, September 15th, 2008

Idea: Traductor simultaneo vía web

Cada vez que estoy en un evento en el que se hace uso de la traducción simultanea se me viene a la mente la misma idea:

¿No se podría usar el poder de la red para dar una solución mucho más económica y adaptable a la necesidad de una traducción simultánea?

Mi idea es bastante sencilla y no es un gran alarde de originalidad: se trata de usar un streaming de audio para enviar la voz del orador hasta el traductor y que éste emita la traducción también vía streaming a todos los interesados.

Entonces en mi imaginación aparece el traductor simultáneo ya sea en su misma casa o en una zona apartada del auditorio escuchando y retrasmitiendo su traducción a cualquier interesado que se encuentre en la sala (o no, esto es un plus) que através de su portatil y unos cascos domésticos está escuchando la charla en su idioma seleccionado.

Este sistema, claro está, permite varias traducciones simultáneas en diversos idiomas. También se podría pensar en que el traductor hiciera la traducción en modo texto… claro que esto depende de las cualidades mecanógrafas del traductor.

Traductor Simultaneo

Económica porque el asunto de la cabina de traductores, los auriculares multibanda, el desplazamiento del traductor in-situ, ya no sería necesario.

Adaptable porque se podrá ofrecer el servicio de traducción simultanea en cualquier lugar donde se celebre la charla aunque no tenga todo el tinglado de radio y auriculares montado.

También me agrada la idea de poder implantar este sistema en eventos no demasiado enterprise, eventos familiares y de ‘bueno rollo’ :), porque en estos casos el traductor pudiera ser cualquier voluntario que le apeteciese intentarlo.

En principio sólo le veo 2 limitaciones:

1) El ancho de banda necesario para el streaming, aunque creo que la tecnología actual no verá muchas dificultades en superar esta traba.

2) La necesidad de disponer de un portátil o dispositivo wifi o 3g para la recepción del streaming, como yo siempre ando en conferencias técnicas esto no será un problema :)

No lo veo una idea muy descabellada, incluso creo que tiene un grandes posibilidades comerciales. Mirando en google no encuentro nada parecido., aunque seguro que no estoy haciendo bien la búsqueda.

Al más estilo furilo: ¿Qué opinas? ¿Es factible? ¿Qué cosas parecidas existen?

Sunday, September 14th, 2008

Al calor de las estrellas

Ayer en el madinspain presentaron la futura web de domestika.org a bombo y platillo.

Borja Delgado se encargó de la presentación del proyecto usando modos y técnicas muy propias de predicador evangelista :).

En mi opinión la web tiene muy buena pinta, más allá del diseño sobrio y la utilidad de las funcionalidades mostradas, denota conocimiento, atrevimiento y acierto por parte de sus responsables. Le auguro un buen futuro.

Uno de los caprichos más divertidos y rompedores de esta futura web es el soporte para el desarrollo de mini-aplicaciones que se conectarán a los contenidos de domestika.org mediante una API pública y se ejecutarán en la web de manera background hasta que el usuario acceda a ellas mediante una combinación de teclas. No se pronunciaron en la conferencia palabras prohibidas como dashboard y widgets pero me temo que me entenderéis mejor si yo sí las uso. Me parece que esta funcionalidad marcará un antes y un después en el mundo de las aplicaciones web.

Otra funcionalidad que denota la sabiduría de los responsables del proyecto es la externalización de los portafolios cuyos contenidos serán almacenados en un servicio externo del que se alimentará tanto la sección de portafolios de domestika.org como una aplicación aparentemente independiente en dónde cada usuario podrá personalizar sin límites la estética y presentación de su portafolio. Ayudándose además de dominios personalizados.

Pero lo más emocionante para mi es darme cuenta de que conozco personal y profesionalmente a gran parte del equipo de desarrollo de este fantástico proyecto, me siento afortunado y espero saber empaparme de todo el talento del que últimamente me veo rodeado.

Más que mi enhorabuena lo que expreso mi agradecimiento.

a Freelance Web Developer is proudly powered by WordPress
Entries (RSS) and Comments (RSS).