25 jul 2011

Comunicaciones unificadas, de que estamos hablando?

Ahhhh.... Unified Communications, ese tipo de palabritas que me es imposible resistir, de salir a buscar significados, propuestas, productos, en fin, deleitarse con toda esa parafernalia marketinera que nos haga sentir que ahora sí, tenemos a disposición la tecnología del futuro para entendernos.
Este es uno de esos términos tan ambiguos como prometedores y claro, hay que acercarse y ver de que se trata, de que va la cosa, y hoy más que nunca cuando esta más que claro que la eficiencia en las comunicaciones es vital para cualquier actividad productiva, bah, desde siempre para cualquier actividad diría yo, solo que ahora tenemos la pista libre, es más fácil buscarle otro sentido, unir esto con aquello y obtener algo que le de esa vuelta de tuerca que no imaginábamos.

Volviendo al termino tan vendedor de Comunicaciones Unificadas, no me voy a explayar sobre lo que es, no me gusta inventar, solo contar mis impresiones luego de una extensa lectura en paginas de productos, fabricantes y vendedores de humos varios.
Al trabajar en el desarrollo orientado a las comunicaciones VoIP los conceptos se vuelven familiares, pero se pierde un poco el foco, el de que se trata esto, y de como se puede mejorar.
Una constante que veo es la tendencia a integrar todas las vías de comunicación en un único punto central, una especie de hub de mails, chat, VoIP, fax.. y si me das tiempo te agrego capacidades de videoconferencia, SMS y una lata con una piola para hablar con el compañero de enfrente.
Amén de todo esto, a nuestra bandeja de entrada con esteroides podemos darle una patina social, otro buzzword de esos que me encantan, es el mismo planteo anterior solo que ahora le agregamos un botón de "me gusta", algo de Twitter o porque no Google+, total, mas vale que sobre a que falte, pero sobre esto me lo reservo para otra entrada :)

Wires Chaos...

Esto de unificadas, si bien se refiere a una especie de concentrador de diferentes vías de comunicación, o por lo menos así lo entienden no pocas empresas, surge de la necesidad de concentrar en algún punto toda esa parafernalia de chat, mail, llamadas telefónicas..., pero no basta, no es suficiente, para mi necesitamos continuar al próximo paso: volver transparente el como para ocuparnos del que, olvidarse de que se utilizo en el camino para establecer este contacto y ocuparnos de que es sobre lo que estamos tratando.
No estoy hablando de semántica, no me refiero a que la aplicación entienda sobre que trata el hilo de datos, me refiero a que el soporte de este hilo de información sea transparente, vital si, pero no condicione la comunicación, a ver, me explico, que tal si estoy chateando y tengo que adjuntar documentos, no debería ser la aplicación lo suficientemente capaz de proporcionarme esta alternativa sin tener que salir del chat para abrir el cliente de correo, no debería ver en mi timeline un SMS entrante en medio del hilo de mensajes?, son ejemplos simples, pero recién cosas de este tipo considero que pueden ser llamadas comunicaciones unificadas.

Claro que dicho así parece fácil, solo resucitemos un Google Wave y listo, comunicación + comunicación + comunicación con un plus de trabajo colaborativo, pero creo que va un poco mas allá, no solo saber como volver un recurso en compartido, algo que sea aplicable al mail, a los SMS, a un chat, a un loquesea, sino también capaz  de abstraerme incluso de la plataforma que  utilice, sea un smartphone, un pc u otro.
Por supuesto, algo tan abstracto no puede ser sencillo, un protocolo genérico , algo como BEEP tal vez?, XMPP recargado?, agrupar recursos según prestaciones, canales mixtos predefinidos con un input/output común?, mmmmmm, nada trivial, tampoco imposible, pero clave para abstraer un canal del tipo que sea y convertirlo en solo eso, un canal mas, solo otro recurso de los disponibles, y mientras lo digo lo pienso: 
la tecnología subyacente es lo de menos, basta que sea confiable, algo de que fiarse, otro paso hacia olvidarnos de ella, es mas, si un tipo de comunicación no esta disponible que el sistema utilice otro, que decida el mejor camino por mi, solo debo saberlo y decidir si me es relevante.

Obviamente se requiere algo que pueda mostrar coherentemente este panorama, algo que me ilustre "te llame y no contestabas así que te deje un mensaje, como no estas conectado te reenvío un mail y fijate vos" y me ayude a digerirlo, ni hablar ya de si tenemos que incluir documentación, con todo el marasmo de formatos y demás, tranquilamente toda una aplicación aparte solo para eso, en ese caso con mostrar los docs como un flujo asociado y observaciones de forma organizada creo que es mas que suficiente, la comunicación hoy día ya ni por asomo se limita solo a la voz, es un flujo de datos multiformato, no nos estanquemos en el VoIP, hablamos de comunicaciones, no de comunicaciones de tal tipo.

Cables in Zürich

Seguramente no menciono nada nuevo, es mas, quizás ya hay alguna aplicación que hace esto hace rato y no tengo el gusto, el resto de soluciones que por ahora solo se limitan a manejar estas vías aun así parten con ventaja, ya tienen disponibles estos canales de datos, ahora solo falta buscarle la forma de hacerlos pasar de protagonistas a mero soporte.

22 jul 2011

Mi opción de Speech Bubble

"La necesidad es la madre del ingenio" dicen, y que mejor que vivirlo uno mismo para comprobarlo.
Estaba en el trabajo realizando unas interfaces de usuario (perdón: GUI's) cuando vi que un texto de aviso podría llegar a quedar mucho mejor si en vez de un tosco marco colocaba el mismo dentro de una burbuja de diálogo.
Así que, manos a la obra me dije peeeero... luego de buscar un poco por aqui y por allá me encontre con soluciones demasiado complejas que si bien son muy vistosas me parecieron excesivas, ni hablar de las que utilizan jQuery.

Hubo que ponerle ganas y hacerlo uno mismo, así que buscándole la vuelta llegué a un código que para mi gusto esta bastante compacto y claro:

<div style="overflow:auto;width:50%;">
   <img src="tip_top.gif" style="float: right; margin-right: 10px;"/>
   <div style="border: solid 1px #CCC; margin-top: 6px; padding: 5px; background: #FFF;">

    contenido de prueba
    contenido de prueba
    contenido de prueba

   </div>
  </div>

Es casi sin estilos y solo algunos tags, de acuerdo que la burbuja en este caso solo señala hacia arriba pero
modificándolo un poco seguro se adapta a mas de una necesidad.
Lo primero es un div que actúa como contenedor de los demás elementos, aquí podemos definir el ancho que queramos, luego colocamos la imagen que marca el origen del diálogo y seguido otro div que sera el que defina el borde de nuestra burbuja.
Ahora lo interesante, al darle a la imagen un float: right; esta se coloca encima de nuestro segundo div, con un poco de margen en la misma y en este div de contenido podemos afinar posiciones, y listo, un diálogo súper sencillo.

Si se quiere posicionar la imagen con respecto al elemento que lo invoque un poco de javascript basta, solo tenemos que obtener su posición y ajustar el left y top del contenedor principal, lo probé en varias versiones de FF, Chrome, Opera, IE y Safari tanto en Linux como Windows y no tuve problemas, mas sencillo creo que difícil.




PD: adjunto la imagen del tip en este ejemplo para ahorrarles el trabajo, eso si, solo en borde gris :)

21 jul 2011

How to hire good Java developers?

Comparto unas líneas traídas desde Java.net, entiendo que no todo es fácilmente aplicable pero no deja de ser un punto de vista interesante independientemente del lenguaje que utilicemos.
Destaco el punto 2, que me gustaría ver mucho mas seguido en empresas de estas latitudes, de corolario un palito para los fanáticos de las "métodos ágiles":
How to hire good Java developers?
Just in case you are seriously looking for good Java developers, some hints:
  1. Raise the salary (no excuses).
  2. Offer learning as part of the job benefits (conferences, books, courses, etc).
  3. Allow your developers to take project decisions.
  4. Use modern Java technologies (Still using Java 1.4?)
  5. Give the developers some stability and carrier perspective, and don't try that in a bureaucratic way.
  6. Flexible working time and remote office should be available.
  7. Give the developers more than water and coffee.. how about fruits? cokes and other beverages? How much it costs for you to buy 1 coke per developer a day? If you think it is too much, please leave the market :)
  8. Don't try poor copies of Google and IBM ideas, these companies are just richer than yours. Be creative and honest with your developers.
Good luck :) Java market is dry, good developers are scarce.. it is time for smart managers to raise the salaries and catch the good ones, the rest can be shared by people reading Scrum and Kanban manuals.
Y ojalá no les toque como a mi que tuve que arreglar mi propia silla :(


15 jul 2011

Google DevFest 2010

Aunque ya paso un tiempo ahora que estoy evaluando ir al Google Developer Day de Buenos Aires traigo por aquí algunas fotos del DevFest del 2010, en el que tuve el gusto de poder participar en el mismo, como cualquiera vamos, ahi van:

Google DevFest 2010

14 jul 2011

Google Master Plan





Genial fotografia con las propuestas de los empleados de Google para dominar el mundo, me encanto "Reemplazar a Britney Spears con Google Generic Pop Singer" o esta "Contratar ingenieros de hardware" modificada por "Robar ingenieros de hardware de NVidia" , se puede pasar un buen rato recorriendola y seguro hechar unas risas

Enlace: GoogleMasterPlanEN