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.

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.

Convirtiendo un router de $60 en uno de $600

Tal vez la mejor de todas las convinaciones posibles en el mundo TIC es cuando se usa un commodity hardware con un Open Source software, ese es el secreto tras la mayoría de exitosas empresas de nuestros días como Yahoo!, Google, Facebook o Twitter. Por otro lado así como los PC se convirtieron en un commodity, los routers de nuestros días también se han convertido en un commodity, todavía recuerdo cuando pagamos $5000 por un Cisco 2501 en 1997 cuando Red del Norte se convirtió en el primer CPI (el nombre que tenían los ISP en InfoVía) de Chiclayo.

WRT54GHay una gran variedad de routers, desde los super baratos como los TRENDnet hasta los más sofisticados Pepwave, pero el común denominador de estos equipos es que cada uno trata de ofrecer una solución integral basada en un sofware propietario, pero muchas veces usando un hardware bastante estándar (procesadores MIPS). Uno de los primeros fabricantes que integró Linux como el sistema operativo de sus routers fue Linksys (una subsidiaria de Cisco) en su modelo WRT54G, aunque luego lo cambiara por VxWorks, alegando ahorro de costes.

Sin embargo muchos entusiastas han creado frimware alternativos basados en Linux para estos routers basados en los procesadores Broadcom, aunque luego han ido incorporando soporte para otros routers también. Hay varias distribuciones Linux (frimeware) especializadas en routers, entre ellas DD-WRT, OpenWRT y Tomato, tan sólo por mencionar las más famosas.

Pero en particular quiero comentar sobre DD-WRT, una distribución Linux bastante poderosa que puede convertir un barato router WRT54GL de $60, en un poderoso y flexible router de $600, lo anterior no es exageración.

En adición a características interesantes como soporte a IPv6, la posibilidad de hacer overclocking del procesador del router, de aumentar la potencia de transmisión del equipo hasta 251 mW o habilitar un acceso ssh al dispositivo, una de las características más apreciadas puede ser el hecho de que el router puede ser usado como un load balancer de dos líneas WAN, según he encontrado en esté post. Pero por si todo eso fuera poco, en la versión estándar (std) del frimware DD-WRT en la opción de QoS podemos asignar ancho de banda basado en el MAC address, algo que era posible hasta no hace mucho sólo con caros routers Cisco.

Al ser el proyecto DD-WRT Open Source, es posible personalizarlo a nuestro gusto, pero si odiamos hacer todo otra vez, he encontrado esta práctica herramienta llamada Firmware Modification Kit (Open Source también), que permite agregar/remover paquetes del firmware o incluso cambiar themes y logos de la interface web para controlar el router, con lo cual los amigos de presumir sus "conocimientos" en tecnología podrían tener frimwares con sus nombres en ellos.

Lo dicho, si desean convertir su router de $60 en uno de $600 usen el firmware del proyecto DD-WRT, ojo no es la única opción pero es de la que puedo comentarles por el momento con confianza porque la he probado y definitivamente me siento muy satisfecho de haber actualizado a este firmware. Voy a continuar probando otras opciones como la OpenWRT y Tomato, sobre las que ya les comentaré luego.

Clonando instalación Debian (o cualquier distro que use dpkg)

Definitivamente el sistema de paquetes .deb es de lo mejor, y su herramienta de administración dpkg permite la fácil instalación/desinstalación de paquetes. Por otro lado las tecnologías de virtualización como Xen o VMWare facilitan tremendamente el desplegar servidores de prueba, el problema muchas veces es cuando se debe pasar de la fase de prueba a la implementación, muchas veces olvidamos llevar un control de que paquetes o que seteos aplicamos a los servidores de prueba, con lo que muchas veces no queda otra más que escribir un pequeño script que colecte los paquetes instalados y luego otro que haga la instalación en el nuevo entorno, pero he encontrado una estrategia mucho más sencilla en el blog PR0GR4MM3R, que sólo necesita 3 simples instrucciones.

Primero, generar un listado de todos los paquetes del sistema y su estado actual con el comando:

origen# dpkg –get-selections > lista_paquetes.txt

Luego, copiamos este archivo de texto al nuevo servidor que desamos tenga la misma configuración y ejecutamos los siguientes comandos:

destino# dpkg –set-selections < lista_paquetes.txt

destino# apt-get dselect-upgrade

Listo, con eso ya tenemos todos los paquetes que fueron instalados en el servidor "origen" en el servidor "destino". Esto funciona además de en Debian, en todas las distribuciones que usen el sistema de paquetes .deb como es Ubuntu y sus derivados.