viernes, 22 de julio de 2011

unga, o como complicarse la vida (I)

¿Alguien recuerda Second Life? Yo todavía estoy por allí, y de vez en cuando cae alguna venta. De hecho hemos llegado a ganar bastante dinero allí dentro. Es un mundo virtual 3D con bastantes posibilidades, si se hubiese explotado bien, no sólo para ver animaciones de muñequitos practicando sexo, sino para educación, representación arquitectónica o incluso juegos.

Pero seguro que muchos no conocen OpenSimulator, que intenta ser algo así como un Second Life open source y añade algunas cosas interesantes y otras realmente horribles. Corre sobre la plataforma .NET/Mono, pero es que nadie es perfecto. Le llamaremos Opensim, porque es un coñazo ir refiriéndose a su nombre oficial todo el rato.

Si algo tienen en común los dos entornos es la evidente falta de buen gusto, al menos visual. No es coña, la mayor parte de lo que allí se ve, construcciones sobre todo, te haría vomitar y arrancarte los ojos si estuvieses en el mundo real. Si el caso es grave en Second Life, mejor no hablemos de Opensimulator, donde el material suele ser creado por... desarrolladores o, en el peor de los casos, por usuarios con ínfulas pero nulo talento.

Que no es que todos los desarrolladores tengan mal gusto; por ejemplo yo tengo un gusto excelente y es una delicia utilizar las aplicaciones que diseño. No tengo abuela, eso no, pero es que ya sería demasiada perfección en una sola persona y no es cuestión de ir humillando al resto de la humanidad. Ante todo uno es humilde y modesto y se compadece de esas pobres mentes inferiores que pululan por este nuestro planeta.

Si quieres conseguir un absoluto fracaso de usabilidad dile a un desarrollador que diseñe el interface gráfico de tu aplicación. Si te gustan las emociones fuertes dile a un desarrollador (que no sea yo, claro) que te diseñe un edificio. Normalmente el resultado es parecido, por su elegancia, a esos engendros mitad orco mitad no se sabe qué que aparecían en el señor de los anillos.

Y me disperso...

Lo que quería explicar es que yo estuve mezclado en el tema de OpenSim. Hace ya mucho tiempo sugerí e hice las primeras pruebas para utilizar NHibernate, alguien lo implementó y un año después fue deshechado por falta de mantenimiento. La verdad no me importa demasiado porque lo que a mí me importa va por otro lado.

OpenSim es una especie de servidor de realidad virtual, es decir, que envía texturas, posiciones de objetos, colisiones... a un cliente visual y se encarga de mantener el contenido (persistirlo). Puede ejecutarse en solitario o pueden unirse varios servidores en lo que se viene a llamar un grid, y ahí empieza lo interesante.

Los servidores de Opensim, cuando se conectan entre sí, utilizan a su vez unos servidores de soporte que se encargan de controlar los usuarios, el inventario de objetos, los objetos en sí y la conectividad entre los servidores. Lo interesante de esta parte es que estos servidores utilizan http para comunicarse, por lo que podría usarse sin problemas cualquier servidor web.

En Opensim como son más chulos que un ocho se han currado sus servidores y se han hecho sus pajas mentales reinventando una arquitectura de plugins, unos servidores dedicados corriendo en .NET y, en mi opinión, es la peor parte del proyecto. Por ejemplo, se ha de usar una consola para realizar cualquier operación (dar de alta usuarios, crear servidores, bloquear usuarios...). O eso o escribes guarramente en la base de datos, que también hay "aplicaciones" que lo hacen... ahí con toda la seguridad.

Claro que ha habido intentos de hacer correr esos servidores de soporte en servidores web y algunos de ellos están funcionando, tanto programados en Perl, como con PHP o Python.

Pero aquí el menda es más chulo que un ocho y no le gustó absolutamente nada de lo que había así que decidió currárselo él solito y, aproximadamente en Marzo o Abril de 2010, presenté unga, mi propuesta de servidores de soporte. El éxito fue tan moderado que sólo lo estoy usando yo, pero el asunto prometía... aunque he de reconocer que me equivoqué en su concepción.

unga, que al principio era una serie inconexa de servicios, programados en PHP, que usaban XML-RPC y ligeramente jquery y algunos plugins bonitos para hacer ventanitas y efectos visuales, ha evolucionado muchísimo en un año. Este sistema, que al principio únicamente quería para conectarse a servidores Opensim se está convirtiendo en todo un framework o una plataforma, más bien, porque estoy rediseñando incluso la filosofía de funcionamiento.

Está programado con PHP, corre sobre el framework Code Igniter (el más rápido y eficiente que he encontrado), usa intensamente REST (sí, el puro, el que usa los comandos http, no esa paja mental que algunos llaman REST y después no es más que un POST mal entendido), Ajax (con jquery, que es de lo mejorcito), es modular (pegar, activar y a trabajar) y lo he usado para otros proyectos ya, entre ellos un gestor de descargas y una aplicación de control de fabricación.

De hecho me estoy pensando hasta en crear un módulo de gestión de contenido para poder usarlo como cualquier Drupal de la vida.

Lo interesante para un desarrollador quizás no sea unga en sí sino todas las tecnologías y metodologías que he usado y estoy aplicando en el proyecto, y de ellas voy a hablar en próximas entradas.

Entre los temas que voy a tratar estarán:
  • Configuración de un entorno de desarrollo para PHP (con debugger).
  • TDD y PHPUnit y ,sobre todo, los problemas de integrarlo con Code Igniter.
  • Construcción automática, deployment, etc. con Phing.
  • REST y cómo implementarlo.
  • Aventuras con jquery o como llevar adelante una arquitectura visual ajax independiente del entorno de servidor.
  • Migración a Python (Django y Tornado Web).
  • Por qué Java es el demonio y huyo como de la peste de ese lenguaje.
  • También programo con C# y todavía no he sido abducido por el lado oscuro de Micro$oft.
  • ¿Tendré huevos para migrar ciertos servicios UDP a Node.js?
Y todo esto amenizado con comentarios sobre cómo configurar servidores Linux, optimizar bases de datos, uso de cache de código, CDNs y demás historias "modelnas" que podrían poner palote a muchos.

Que no es que sea para enseñar a nadie (que realmente dudo que le interese a demasiada gente), es que aquí el amigo escribe y escribe y como soy un figura se me pierden los manuales en el disco duro de no se qué ordenador y no recuerdo nada después. Al menos si lo pongo en internet ya se encargará de buscármelo el señor Google.

Pues nada, que prontito empezaré a guarrear la blogosfera con mi pajerío mental tecnofriki.

Salut!

jueves, 21 de julio de 2011

Cualquier memo se monta un blog

Creo que fue allá por el 2006 cuando decidí que tenía que montar un blog. No había ninguna razón, es que todo el mundo lo tenía y yo soy un "culo veo, culo quiero".

No pasó de la primera entrada.

Con el tiempo vas madurando y te vas dando cuenta de que hay que valer para escribir un blog. No sólo requiere un dominio mínimo de la palabra sino también tener cosas que decir y que además interesen a alguien. Has de saber recibir críticas y enriquecer tus siguientes entradas con los comentarios que tus lectores te aportan.

También está el otro grupo de blogeros que se han montado un invento de estos porque tienen ya la espalda destrozada de intentar autofelaciones y prefieren que sus amiguitos virtuales les hagan el trabajo. No tienen gran cosa que decir, pero entre unos amiguitos y otros van creando la gran cadena del "hoy te la como yo, pero mañana te quiero comentando en mi blog". Es algo así como el trenecito chuchú.

Si te lo has imaginado y no has potado, malo malo...

Según una estadística (creada por mí) los fabricantes de enjuagues bucales han aumentado progresivamente sus ingresos de manera contínua desde el 2004, a razón de un 20% más de ventas anuales. Según otro estudio (hecho por mí también) cada vez que Apple saca una de sus tonterías, en urgencias se registran un 50% más de mandíbulas desencajadas por la cantidad de material que han admitido en su cavidad bucal.

Como decía el anuncio de cierta bebida isotónica con sabor a bicarbonato mezclado con jabón e ingentes cantidades de sacarina: la humanidad es maravillosa. Y yo añado: haciendo estupideces, y no tenemos quien nos supere.

El caso es presentar este blog al mundo porque tengo la espalda bastante cansada ya y todo el tiempo que he estado practicando no ha servido más que para agravar mi frustración.

Voy a postear lo que me venga en gana hasta que Google me lo censure o algún imbécil con ínfulas me denuncie porque no le ha gustado algo que voy a decir (sí, voy a decir muchas cosas feas) y mis abogados me digan que o lo retiro o me espera la trena y esas cosas.

Escribiré de los temas que, más o menos controlo: el desarrollo de software. Y lo voy a hacer desde mi punto de vista, desde lo que me gusta y criticando lo que me disgusta.

Aunque sé que ésto podría ser mi condena al ostracismo en las diversas consultoras que pululan por ahí, también voy a hablar del mercado de las TIC, de las malas prácticas empresariales y de la gente que me rodea... y no me voy a callar demasiado. Ya soy perro viejo en estos asuntos y realmente me importa bien poco que la cárnica de turno no me quiera contratar... tampoco es mi ideal de vida hacer que otros se hagan ricos mientras yo como mierda.

Así que, amigo lector (en másculino genérico, que ya sé que las mujeres sabéis leer, pero soy bastante clásico y me revientan las estupideces del politicorrectismo) me presento humildemente ante ti.


Deposita tu sacrificio humano por la ranura.