Un OS para gobernarlos a todos. Un OS para encontrarlos.

Quien no recuerda la primera estrofa del poema con que abre el libro "La comunidad del anillo", en la cual está la famosa frase "Un anillo para gobernarlos a todos. Un anillo para encontrarlos, un anillo para atraerlos a todos y atarlos en las tinieblas en la Tierra de Mordor donde se extienden las sombras.", al parecer Google ha conseguido fabricar el anillo, perdón el OS.

He encontrado en Engadget dos dispositivos que me han mostrado el camino del futuro, el primero es un PlayStation celular y el segundo es el nuevo eBook de Barnes & Noble el Nook Color. Ambos dispositivos están basados en Android, pero personalizados por cada fabricante para ser lo suficientemente incompatibles como para permanecer protegidos de la piratería y lo suficientemente compatibles para ahorrar costos de desarrollo. Balance difícil de lograr, pero que al parecer Google ha conseguido con Android.

Aquí una imagen del celular PlayStation:

Celular Play Station

Al parecer una vez más los sistemas abiertos triunfaran sobre los cerrados, ya que Android continúa creciendo a expensas de todas las demas plataformas de smartphones, incluyendo el iPhones. Pero al parecer como si Apple deseara ayudar a Android a serguir ganando mercado ha retirado del AppStore una aplicación que ya había aprobado llamada iDOS, que como su nombre lo indica permitía emular la plataforma DOS y con ello poder usar los miles de juegos que existen para este patriarca de los sistemas operativos. iDOS esta basado en el conocido proyecto Open Source DOSBox.

Pero este producto de pago, que aún puede ser instalado en iPhones siempre y cuando uno le haga el jailbreak para instalar aplicaciones fuera del AppStore, existe desde hace mucho tiempo atras un proyecto para Android llamado aDOSBox o Andoir DOSBox, que permite hacer exactamente lo mismo que hace el iDOS para los iPhone. Y hasta se ha reportado que es posible correr Windows 3.1 en Android usando aDOSBox. El único inconveniente con aDOSBox es que necesita que el celular tenga teclado ya que no soporta el teclado virtual (lo que deja a mi Nexus One fuera de juego ). Sin embargo esto se incluirá en próximas versiones, al menos es lo que espero, no quiero decirle adios tan pronto a mi casi nuevo Nexus One.

Con muchas tablets entrando en el mercado para estas fiestas navideñas (Acer, Samsung) con precios muy competitivos (más baratas que los iPad equivalentes) y con la mayoría usando Android 2.2 y probablemente las primeras con Android 3.0. Con televisiores como el Sony Internet TV, que incorporan Android como su OS. Creo que queda claro que el anillo el OS para gobernarlos a todos, ya existe y se llama Android. No en vano Ray Ozzie en su último memo antes de dejar Microsoft advirtió de dos mega tendencias para las cuales Microsoft no está preparado, el servicio continuo y los dispositivos conectados.

Realidad disminuida

En estos momentos con la proliferación de smartphones y aplicaciones como Layar o Acrossair,el concepto de realidad aumentada ha tenido cierta difusión, es decir usar las computadoras para agregar información complementaria a un video en tiempo real. Pero ahora el Departamento de Mundos Virtuales y Juegos Digitales de la Universidad Técnica de Ilmenau, nos presenta la "Realidad Disminuida" (RD), que consiste como su nombre lo indica en remover objetos en tiempo real de un video.

En un video que los creadores del proyecto Jan Herling y Wolfgang Broll, han subido a Youtube nos explican como funciona la RD. El principio es el siguiente, se debe primero definir el área dentro del cuadro de video que queremos desaparecer, para ello en el ejemplo trazan un circulo en torno al objeto, pero mientras esto sea una curva cerrada que determine un área no habría problema. Luego empieza la magia, un sintetizador de imágenes empieza con un el cuadro (frame) original, reduce la calidad de la imagen y remueve el área en cuestion. Luego extrapola del área circundante datos para llenar el agujero dejado. Finalmente vuelve a incrementar la calidad de la imagen, todo eso hecho para cada cuadro en menos de 40 milisegundos. El resultado es este:

 

 

Parece increíble, pero es cierto. Actualmente el software sólo trabaja en Windows, pero los investigadores están trabajando en una versión para Android. Así que si antes no podían creer en todas las fotos que veían gracias al Photoshop, ahora gracias a la RD no podrán creer tampoco en las transmisiones "en vivo y en directo". El mundo es cada vez más complicado, asi que la única forma de sobrevivir es adaptarce a los cambios antes de que estos pasen.

Bajos salarios en TIC

La crisis por la que atravesamos ha dejado una marca en los profesionales TIC, que para mantener su trabajo han tenido que aceptar más horas durante sus jornadas y salarios congelados desde que el problema comenzó. Un reciente artículo de ComputerWorld titulado "Salarios estancados empujan a trabajadores TIC a buscar empleos", comenta el resultado de una encuenta realizada por ellos a 343 profesionales TIC, que revela el hecho de que el 36% está actualmente en busca de un nuevo empleo en los próximos seis meses y el 69% reporta que no ha recibido un aumento en los últimos seis meses. El mensaje no puede ser más claro para los empleadores, con las noticias de que "lo peor ha quedado atras", los profesionales más telentosos están buscando mejores oportunidades laborales.

Otro dato interesante de esta encuesta es que el 54% de admite que su salario es ahora superior al que percibian en el 2008, el 26% dice que su salario ha estado estanacado y el 20% (es decir 1 de cada 5) dice que ahora gana menos que en el 2008. Esto es debido en parte a que sencillamente las empresas no están invirtiendo o lo hacen en tecnologías que permiten aumentar la productividad con lo que se requiere menos personal y por lo tanto es el empleador quien tiene la sarten por el mango.

Los resultados de esta última encuenta están en línea con otra realizada también por ComputerWorld en agosto del presente año, donde informaba que el 61% de los trabajadores TIC con un salario entre U.S.$ 35,000 y U.S.$50,000 al año estaban pensando cambiar de trabajo en los próximos 12 meses como resultado de que percibian que la situación económica había mejorado, pero sus salarios no.

Como dicen la mayoría de analistas, este es un jobless recovery, es decir una recuperación que no está creando trabajos y es así en parte porque la recuperación es sólo en papel, para la foto. Para que los publicistas puedan decir que la recesión ha terminado, claro diciendo que es la más larga que hemos tenido desde la segunda guerra mundial, pero terminó y por lo tanto cualquier otra caída sería una "nueva recesión". De esa forma estadísticasmente podemos decir que no estamos en depresión, algo que es materialmente cierto aunque no estadísticamente demostrable.

Ya lo dicen muchos analistas, cada vez se necesitaran menos trabajadores en todos los sectores productivos, con salarios a la baja en promedio, trabajando las horas que sean necesarias, cuando sea necesario, es decir la temporalidad será la constante y no la norma en los años por venir. Y específicamente en el sector TIC todo estará basado en proyectos, con fechas límites y presupuestos super ajustados. Sumado a lo anterior, las nuevas herramientas que hacen mucho más fácil abordar tareas como programación de aplicaciones (algo que ya comenté en el post "El ascenso del Programador Ciudadano") pondrá a más aprendices de brujo a la caza de las cada vez más escasas oportunidades laborales en las TIC. Como es lógico una mayor oferta de mano obra TIC hará que los precios tiendan a la baja en el futuro previsible.

Vampiros vs. Hombres Lobo

El presente título copia el de un post del blog Coding Horror, en el cuál Jeff Atwood nos cuenta como muchas veces los programadores (que el asocia con los vampiros) entran en conflicto con los system administrators (que son representados como hombres lobo). La pregunta que origino el post de Jeff, fue formulada por su sysadmin Kyle Brandt en el blog de Server Fault, que tanto control se le debe dar a los programadores sobre servidores en producción.

Aunque como dice tanto Jeff, no hay una respuesta simple y por el contrario en lugar de buscar este conflicto entre sysadmin y programadores, lo que dbe haber es una autoridad superior que defina objetivos claros para la empresa y los haga trabajar juntos en busca de un objetivo común, en lugar de que inicien discusiones unos contra otros. Jeff dice claramente que en muchos lugares donde esto ocurre es simplemente porque la división del trabajo no ha sido hecha adecuadamente y hay demasiado tiempo libre para perderlo en disputas sin sentido.

Por otro lado algo que no se discute en el post es que suscede en la empresas pequeñas, en donde los roles se vuelven más difusos debido a las limitaciones de presupuesto. Es en las pequeñas empresas donde por lo general el programador hace las veces de sysadmin o puede suceder que un sysadmin termina convertido en un programador por acceidente.

Yo, soy por definición un sysadmin, ya que tanto por vocación, como por formación soy un ingeniero (mecánico electricista para más señas). Es decir carezco del sentido estético del que muchos programadores se enorgullecen. Por el contrario yo estoy más enfocado en eficacia y eficiencia, es decir terminar el proyecto dentro del presupuesto, en el tiempo estimado aunque haya que aplicar ciertos ajustes (muchas veces recortes) en el camino, ya que una solución parcial es infinitas veces mejor que una solución perfecta en un futuro distante.

Por el contrario muchos de los programadores con los que me he topado, suelen por lo general querer inventar la rueda, no desean usar código de otros programadores y sienten un profundo rechazo a documentar su código, algunos dicen que eso les reduce su productividad y hay que casi amenazarlos de muerte para que lo hagan.

En fin, este es un debate abierto ya que cada lado puede señalar los defectos del otro, sin embargo hay que sobre todo ser tolerantes y aprender a convivir en una empresa que necesita que ambos roles trabajen juntos, en lugar de estar tratando de demostrar quien tiene la razón.

Convirtiendo archivos AMR a MP3

Le ha pasado que sus usuarios reciben un archivo atachado en un e-mail que resulta haber sido enviado desde un Blackberry, iPhone o Andorid, que contiene un "importante" mensaje pero que según sus usuarios está corrupto porque no pueden abrirlo y culpan a tu servidor de correo, o le pides a alguien que te envié en nuevo mensaje de bienvenida para el PBX que sólo acepta WAV o MP3 como formato y reciber un archivo con extensión AMR. Pues a mi me ha estado pasando muy a menudo, así que he decidio escribir un mini-howto de como personalizar una versión de FFmpeg para soportar la conversión de AMR to MP3.

Por defecto FFmpeg no soporta ni AMR, ni MP3 en la mayoría de distros (en realidad las principales) por la sencilla razón de que ambos son formatos propietarios e incluirlos por defecto, más alla del hecho de que va contra el espiritu del Open Source, sería una violación de patentes y términos de licencia, que las comunidades que soportan dichas distribuciones no pueden hacer ya que se verían expuestas a demandas legales. Eso no quiere decir que para tu uso particular no puedas compilar desde las fuentes para obtener una versión de FFmpeg que tengas los codecs de ambos formatos.

Pues bien comencemos con el mini-Howto.

Primero, debemos descargar e instalar la librería x264 (Aquí sólo mostramos los comandos que debe tipear):

# cd /usr/src
# git clone git://git.videolan.org/x264.git
# cd x264
# ./configure
# make   
#make install
#ldconfig

Ahora, debemos descargar e instalar la librería que dará soporte al formato arm llamada opencore-amr:

# cd /usr/src
# wget http://downloads.sourceforge.net/project/opencore-amr/opencore-amr/0.1.2/opencore-amr-0.1.2.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fopencore-amr%2Ffiles%2F&ts=1285678081&use_mirror=surfnet
# tar -zxvf opencore-amr-0.1.2.tar.gz
# cd opencore-amr-0.1.2
# ./configure
# make all
# make install

Seguimos con los requerimientos, ahora a descargar e instalar la librería que da soporte al mp3 que se llama LAME:

 # cd /usr/src
# wget http://downloads.sourceforge.net/project/lame/lame/3.98.4/lame-3.98.4.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Flame%2Ffiles%2Flame%2F&ts=1285677746&use_mirror=softlayer
# tar -zxvf lame-3.98.4.tar.gz
# cd lame-3.98.4
# ./configure
# make all
# make install

 Ya tenemos todas las dependencias ahora a instalar FFmpeg desde las fuentes y activando el soporte para AMR y MP3:

# cd /usr/src
# svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg-svn
# cd ffmpeg-svn
# ./configure –enable-gpl –enable-pthreads –enable-libx264 –enable-libmp3lame –enable-version3 –enable-libopencore-amrnb –enable-libopencore-amrwb
# make all

Listo ya tenemos el binario que necesitamos, pero para evitar problemas y que esté en conflicto con otras versiones de ffmpeg que puedan estar instaladas le vamos a cambiar el nombre y luego moverlo manualmente a "/bin"

# mv ffmpeg ffmpeg+amr+mp3
# cp ./ffmpeg+amr+mp3 /bin

Listo ahora ya podemos convertir el formato de los archivoc de AMR a MP3 de la siguiente manera:

$ ffmpeg+amr+mp3 -i file_name.amr file_name.mp3

Espero les sea de utilidad este información.