Instalando Android en el iPhone en seis sencillos pasos

Dado que el hardware de los iPhone está basado en hardware genérico (por más que Apple hable de diseños optimizados), es posible correr Android, o cualquier otro OS para móviles como puede ser Symbian en un iPhone. En el blog Life Hacker, ha aparecido un interesante artículo sobre como hacer esto, el modelo que recomiendan para intentar el experimiento es el iPhone 3G que puede comprarse en eBay por $250.

Los pasos en principio son sencillos:

  1. Jailbrake el iPhone, con alguna de las herramientas conocidas PwnageTool, Redsn0w, o Blackra1n.
  2. Instalar Bootlance en Cydia.
  3. Ejecutar Bootlance y parchar el kernel para soportar el iPhone.
  4. Instalar OpeniBoot.
  5. Instalar iDroid.
  6. Reiniciar el celular y comenzar a disfrutar de Android.

La gente de LifeHacker han preparado este video que explica como hacerlo (disponible sólo en inglés):

 

 

Tenga en cuenta que este es un proyecto aún en desarrollo y puede que algunas funciones no estén completamente operativas, así que no pretenda usar esta solución para un usuario final, esto es para los aficionados a experimentar con gadgets y sobre todo como una manera de ejercitar la mente.

Borrando e-mails en masa en Zimbra

Zimbra es una de las soluciones de correo electrónico que más rápidamente está ganando popularidad tanto por su facilidad de uso, como por sus medidas de seguridad. Aunque es una solución Open Source, la forma como almacena los correos no es ni el clásico Maildir o mbox de la mayoría de otros servidores de correo. La razón para almacenar los correos electrónicos en su propia base de datos es que de esta manera optimizan las búsquedas y pueden integrarlos fácilmente con los otros servicios que incluye el programa. Discutir si esta es la mejor forma de hacerlo o no será motivo para otro post en este blog, pero para ir entrando en materia permitanme contarles el caso de un cliente que tenía aproximadamente 13,000 correos antiguos que ocupaban un espacio de aproximadamente 3.5GB y deseaba que borrara todos los e-mails anteriores a una fecha determinada, este es un problema relativamente fácil de resolver en otros MTA especialmente si usan Maildir, pero este no era el caso ¿qué hacer?

Descrito el problema, les contaré que la solución la encontré en los forums de Zimbra en la forma de un script que hace uso del comando zmmailbox. Como dicen su autor, el script no es perfecto y tiene la limitación de que sólo borra un máximo de 2,500 e-mails cada vez que ejecuta un ciclo a pesar de que claramente el script dice que debe hacerlo en grupos de 100,000; pero aparte de ese pequeño inconveniente funciona a las mil maravillas, al menos en mi caso.

Aquí el script levemente modificado para mostrar los mensajes en español: 

#!/bin/bash
# version .1
#

ZIMBRA_BIN=/opt/zimbra/bin
echo "Introduzca la cuenta de correo:"
read THEACCOUNT

echo "Introduzca la fecha hasta la cual a Ud. le gustaria borrar los correos, en el formato MM/DD/AA. Ejemplo 04/10/09:"
read THEDATE

echo "Desde que directorio desea borrar los mensajes?:"
read THEFOLDER

echo "Ud. va a borrar todos los correos del directorio $THEFOLDER hasta la fecha $THEDATE para la cuenta $THEACCOUNT."
echo "Desea continuar? (s/N): "
read ADD

themagic ()
{
touch /tmp/deleteOldMessagesList.txt
for i in `$ZIMBRA_BIN/zmmailbox -z -m $THEACCOUNT search -l 100000 "in:/$THEFOLDER (before:$THEDATE)" | grep conv | sed -e "s/^ss*//" | sed -e "s/ss*/ /g" | cut -d" " -f2`
do
if [[ $i =~ [-]{1} ]]
then
MESSAGEID=${i#-}
echo "deleteMessage $MESSAGEID" >> /tmp/deleteOldMessagesList.txt
else
echo "deleteConversation $i" >> /tmp/deleteOldMessagesList.txt
fi
done

$ZIMBRA_BIN/zmmailbox -z -m $THEACCOUNT < /tmp/deleteOldMessagesList.txt >> /tmp/process-`date +%Y-%m-%d`.log
rm -f /tmp/deleteOldMessagesList.txt
echo "Terminado. Desea ejecutar otra vez el comando para el mismo usuario?"
read ADD
}

while expr "$ADD" : ‘ *[Ss].*’
do themagic
done

El formato de la fecha debe ser el establecido por Zimbra en la instalación, como en mi caso es el formato es el americano "Mes/Dia/Año" no he alterado esa parte del script, si Ud. eligio el formato europeo en la instalación debe hacer los cambios respectivos en el script. Para que el script pueda correr debe tener privilegios de administración, es decir debe ejecutarlo como el usuario zimbra o root, todo depende del seteo que se realizó al momento de instalar Zimbra.

Si tienen problemas con copiar/pegar el código del script lo pueden descargar desde aquí. Espero que este script les resulte tan útil como me ha resultado a mi.

Microsoft certifica aplicación Open Source desarrollada en PHP

En un mundo que tiende a la convergencia y donde la lucha por los clientes está forzando a todas las empresas a cambiar rápidamente su modelo de negocio, Microsoft no podía permanecer como una isla, si es que no quiere desaparecer. El día de ayer en el blog Port 25, que es el medio oficial que utiliza Microsoft para comunicar sus avances en lo referente a Open Source, apareció el anuncio de que el proyecto SilverStripe CMS, que es un sistema de gestión de contenidos web, había alcanzado oficialmente el status de "Certified for Windows Server 2008 R2". Hoy día Sigurd Magnusson, confundador de Silver Stripe Project, ha escrito sobre el hecho en el blog del proyecto bajo el título "SilverStripe la primera aplicación web Open Source que llega a ser Microsoft Certified", lo cual es un punto fuerte para promover SilverStripe a nivel corporativo.

Esto es interesante ya que demuestra que por un lado PHP ha evolucionado hasta alcanzar un nivel "empresarial", que hace apenas unos 3 años no gozaba, además prueba de que efectivamente no hay una contradicción entre un modelo de desarrollo Open Source (ojo no confundir con Free Software que es más restrictivo) y hacer dinero con un proyecto de esta naturaleza. Decir que no se podía desarrollar un modelo de desarrollo comercial de software basado en herramientas Open Source fue uno de los puntos "fuertes" de la estrategia de Microsoft para tratar de frenar la gran migración de desarrolladores que ha ocurrido en favor de alternativas libres como PHP, Python o Ruby; como ha quedado plenamente demostrado por la propia Microsoft tal contradicción nunca ha existido.

Ayer también Apple terminó por aprobar una aplicación que implementa el servicio de VoIP Google Voice, luego de 16 meses de espera este servicio gratuito de Google está por fin disponible en iTunes, según me enteré por TechCrunch. La conclusión que puedo sacar de todo esto es que estamos ante una nueva era de integración y aquellos que eligen el camino de cerrar sus plataformas sencillamente tienen sus días contados. Por otro lado espero que pronto Google atendiendo el clamor popular de los desarrolladores termine por incluir PHP como uno de los leguajes soportados en Google App Engine.

Limitando la velocidad de los virtuales en Xen

Este pequeño post es sólo para tomar nota de un truco que he encontrado en los forums de XenSource sobre como limitar la velocidad de subida (upload) de un servidor virtual, la velocidad de descarga (download) no se puede limitar desde xen porque esta depende de los requerimientos enviados desde Internet. Hecha la salvedad anterior he aquí como hacerlo, se debe editar el archivo de configuración del servidor virtual y en la línea donde definimos los parámetros de la interfase virtual (vif) agregamos el parámetro rate, aquí un ejemplo:

vif = [ ‘ip=192.168.1.25, mac=00:16:3E:20:F7:00, rate=256KB/s’ ]

Valores válidos para rate pueden ser tambieb 5 Mb/s (5 millones de bits por segundo), recuerde que "b" representa bits y "B" representa Bytes. Espero que este tip les resulte de tanta utilidad como lo ha sido para mi.

¿Es Android Open Source?

El día de ayer cuando leí las opiones de Joe Hewitt, recogidas por Business Insiders, de los tweets que hizo en respuesta al primer tweet del Jefe de Desarrolladores de Android, Andy Rubin, con respecto a las declaraciones de Steve Jobs donde negaba que Android sea un sistema abierto. Me pareció que algo faltaba en esos tweets. Business Insiders utilizó la palabra "farsa", para describir la opion que tenía Joe Hewitt con respecto a Android.

Al parecer hasta el mismo Joe Hewitt se ha dado cuenta que sus tweets han sido mal interprestados y en su blog ha escrito un post clarificando sus ideas respecto a Android. Demostrando que en primer lugar el hecho de que trabaje en Facebook y sea un prominente usuarios de la iPhones, no le quita imparcialidad en sus opiniones. Como me parece muy interesante lo que dice me he tomado la molestia de traducirlo al español.

Aquí la traducción de su último post:

"Ayer hice algunos comentarios en Twitter que fueron críticos con las alegaciones de cuan abierto es Android. Como muchos han aprendido a la fuerza, puede ser un reto discutir un tema complejo en trozos de 140 caracteres sin omitir partes importantes de tus opiniones, así que quiero aclarar algunas cosas.

No hay duda de que Android es el más abierto de todos los sistemas operativos para móviles más importantes, y que es digno de elogio por ello. Viniendo de iOS, me he quedado gratamente sorprendido de lo mucho más configurable que es Android. El hecho de que se puede reemplazar la pantalla de inicio con un lanzador de aplicaciones de terceros o incluso hacer tu propia tienda de aplicaciones es una clara señal de que el corazón de Google está en el lugar correcto. Sin embargo, es evidente que algo les impide ser aún más abiertos. Ese algo es, probablemente, los operadores móviles, y no la filosofía de la gerencia de Google.

Es claro para mí que la única razón para que Android haya disfrutado de tanto éxito es que Google ha dado a las operadoras móviles casi todo lo que se puede pedir, y las operadoras móviles han respondido con toneladas de dólares para la comercialización y las subvenciones que Google necesita para que Android pueda tener alguna oportunidad de competir con el iPhone. Mientras que se puede criticar a Google por poner en riesgo Android en un esfuerzo por complacer a las operadoras móviles, tengo que admitir que si no hubieran hecho esto, Android sería muy probablemente irrelevante al día de hoy.

Si desea ver una mejor representación de los valores de Google, visite Chrome OS. Ni siquiera ha sido liberado aún, pero ya se puede seguir el progreso diario en su repositorio de código fuente e instalar su propia versión en un PC. Los proyectos Chrome y Webkit que se basan en código abierto, también están completos, y usted puede ganar privilegios de escritura en sus repositorios y contribuir a ellos hoy. Queda por ver si Chrome OS tiene éxito, pero mi temor es que la falta de apoyo de las operadoras móviles y los fabricantes podrían impedir una adopción tan rápida como la de Android.

Desafortunadamente, el término "open" tiene tantos significados en la informática hoy en día, que es probablemente inútil que alguien se tome la molestia de criticar la forma en que se usa como lo hice yo ayer. Mi respuesta emocional tiene mucho que ver con mi formación. La primera vez que puse mis dientes en la industria del software fue para trabajar en el proyecto de código abierto Mozilla, así que cuando oigo hablar a otros acerca de la apertura, para luego verlos omitir aspectos importantes como un árbol de código fuente público y con privilegios de escritura a desarrolladores fuera de la organización, mi radar de porquería se enciende. El compromiso de Mozilla con la apertura es tan auténtico como es posible conseguir, pero el mundo de los navegadores de escritorio es difícil de comparar con el mundo de los sistemas operativos para móviles. Si Firefox hubiera requerido subsidios y publicidad para llegar al 20% del mercado, Mozilla hubiera tenido que hacer concesiones también.

Dicho esto, gran parte de lo que dije ayer sigue en pie. Me irrita escuchar el término "open" suavizado mucho. Me molesta que la primera exposición de tanta gente a la idea de código abierto (Open Source) sea una ocacional publicación de código fuente, y no una vibrante comunidad de colaboradores, como descubrí hace diez años con Mozilla. Espero que en algún momento se convierta en una práctica de Google y finalmente Android pueda moverse hacia el modelo de código abierto de Firefox, porque estoy seguro de que es lo que ellos quieren."

Estas declaraciones de Hewitt, muchísimo más centradas demuestran de que no debemos de juzgar a una persona por sus tweets. Por otro lado demustra que su visión de Open Source es claramente la de un desarrollador. En el caso de Steve Jobs, que no es más que un vendedor y que aparentemente está desesperado por el arrollador avance de Android, la respuesta que le dió Andy Rubin en un tweet con la definición de "Open" (abierto), es una pérdida de tiempo, ya que por un lado Jobs no lo entenderá y por otro, puede ser mal interpretado por desarrolladores como Hewitt.