Geek & Roll » Cesar

Programando para BlackBerry en OS X

Si quieres programar la siguiente killer application en BlackBerry, y eres usuario de OS X, tus opciones no son muchas. RIM ofrece un plugin beta para Eclipse en OS X, con la limitante de que no puedes usar simuladores para probar tu código. La única manera es utilizando un BlackBerry conectado por USB a la mac, y solo para aquellos con OS 6 (9800, 9670 y 9780)

Pero gracias a la virtualización, es posible ejecutar Eclipse y el plugin de BlackBerry para Windows que si tiene soporte para simuladores. En mi caso, no solo necesitaba programar bajo OS X sino también poder cambiarme entre OS X y Windows, dependiendo del lugar donde me encuentre. Para lograr el escenario anterior esto es lo que hice, en resumen:

  1. Instalar Windows virtualizado con VirtualBox en OS X
  2. Compartir la carpeta del workspace entre el Windows virtualizado y el host OS X
  3. Instalar Eclipse y el plugin de BlackBerry en Windows virtualizado
  4. Sincronizar la carpeta compartida con Dropbox
  5. Configurar Eclipse en la otra computadora (física) con Windows para que use el workspace sincronizado con Dropbox

Windows virtualizado
Esta es la parte fácil. VirtualBox es multiplataforma, open source, y muy sencillo de utilizar. Pueden encontrar el manual en línea aquí, pero no es necesario para instalar Windows virtualizado en OS X ya que VirtualBox es muy intuitivo.

Comaprtir la carpeta del workspace
Esto nos va a servir para dos cosas: que Dropbox pueda sincronizar la carpeta, y para compartir archivos entre Windows virtualizado y OS X. En la pantalla principal de VirtualBox damos click en Shared Folders, y configuramos el folder. En mi caso compartí el folder Public de mi /home como se indica en la siguiente imagen.

Shared Folders en VirtualBox

Al iniciar Windows virtualizado, este debe mostrar una unidad de red con el nombre del folder (Public en este caso). De no ser así, hay que asegurarse de que la opción de “Automount” se encuentre seleccionada al crear el folder compartido desde VirtualBox. Cualquier cosa que pongamos en el folder Public desde OS X, va a estar accesible para Windows virtualizado.

Eclipse y el plugin de BlackBerry en Windows virtualizado
Con el folder compartido podemos descargar desde OS X Eclipse (para Windows), el plugin para BlackBerry y tantos simuladores como necesitemos. Todos estos ejecutables los ponemos en el folder Public, vamos a Windows virtualizado y los instalamos como de costumbre en Windows.

Una vez con todo instalado, podemos ejecutar Eclipse y correr un proyecto de prueba solo para asegurarnos que efectivamente nuestra instalación funciona. En este punto podemos activar el modo Seamless de VirtualBox, para no tener todo el escritorio de Windows abierto, solo la ventana de Eclipse. Cuestión de preferencias.

Sincronizar la carpeta compartida con Dropbox
Si trabajáramos solo con OS X, hasta aquí ya podríamos crear y probar programas para BlackBerry. Pero en mi caso necesito poder moverme entre OS X y otra computadora con Windows, y tener el proyecto sincronizado en ambas. Para lograrlo hay que hacer dos cosas:

  1. Mover el workspace de Eclipse virtualizado al folder compartido
  2. Crear un link simbólico en OS X, para que Dropbox sincronice el folder

Vamos por partes, primero cerramos Eclipse, copiamos el folder del workspace de donde este actualmente a la carpeta compartida. Después reabrimos Eclipse y nos va a preguntar que si en donde está el workspace así que le indicamos el nuevo lugar y listo.

Ahora para que Dropbox sincronice ese folder aunque se encuentre fuera del folder de Dropbox, hay que hacer un link simbólico. Un link simbólico es como un atajo, un nombre que apunta hacia otra parte pero sin hacer una copia del contenido. Para eso tenemos que abrir la terminal, que en OS X podemos abrirla buscándo Terminal en spotlight. En la terminal tecleamos lo siguiente:

ln -s /Users/usuario/Public ~/Dropbox/destino/

De la línea anterior, reemplazar usuario por nuestro propio usuario, o la ruta completa si no usaron el folder Public. Lo importante es que la ruta NO DEBE terminar en / de lo contrario no funcionará. La segunda ruta es el folder de Dropbox donde queremos que se sincronice. El caracter ~ significa tu directorio home actual, y para ponerlo en el teclado de una mac es ALT + N.

En el folder de Dropbox debe aparecer el ícono del folder con una flecha negra, indicando que es un link como se muestra en la imagen.
Dropbox

Configurar Eclipse en la otra computadora (física) con Windows
Para esto basta con abrir Eclipse y seleccionar File | Switch Workspace, indicándole la ruta al workspace dentro del folder de Dropbox. En mi caso además de cambiar el workspace, tuve que importar el proyecto desde File | Import.

En este momento, cualquier cambio que hago en la computadora con Windows o OS X se sincroniza y puedo trabajar desde cualquiera sin problemas. Encima de todo esto uso git para llevar control de versiones, lo que funciona de maravilla.

No Te Pases ya a la venta

Cesar January 11th, 2011 aplicaciones, utilidades 12 comentarios

Me acabo de enterar que No Te Pases ya ha salido a la venta. Ahora si, todos los que estaban esperando el remarcado automático y la integración con la lista de contactos en Everlasting Flame, pueden pasarse por el sitio de No Te Pases y por módicos $200.00 pesitos pueden descargarlo directamente a su BlackBerry.

En lo personal yo lo uso diario para mis llamadas y no podría estar más satisfecho. Claro, esta la cosa de que soy un poco parcial al respecto, pero honestamente No Te Pases me ahorra mucho en mi factura y hace el proceso de llamar a mis números frecuentes algo mucho más placentero.

¿PS3 completamente abierto?

Cesar January 3rd, 2011 cracking, hacks Haz un comentario

Update: El primer firmware custom ha salido a la luz. Lo que hace es habilitar la opción de instalar archivos pkg, y se puede instalar desde cualquier firmware sin necesidad de jailbreak. ¿Que cómo se le hace? Bueno, para eso la gente de PS3-Hacks.com han preparado un detallado tutorial. Esto NO te permitirá jugar copias de juegos (o sea, diga no a la piratería) sólo te permitirá instalar futuro homebrew o homebrew actual que sea re-empaquetado para funcionar sin un kernel modificado.

Update 2: Un excelente artículo de este hack, por la BBC.

Esteban me pregunta por correo: ¿Es cierto que el PS3 ha sido completamente hackeado? Bueno, eso depende de la definición de “completamente hackeado”. Lo que si es que al PS3 se le puede considerar como un sistema abierto; abierto a correr programas creados por terceros sin la autorización de Sony, y de la misma manera en la que lo hacen los juegos u otras utilerías oficiales, es decir desde GameOS.

Detalles
En días pasados se presentó en la 27C3 (Chaos Communication Congress) PS3 Exploit Hacker Conference, un exploit en la implementación de ECDSA por parte de Sony en el PS3. El resultado (muy simplificado) es la posibilidad de obtener el código mediante el cual se implementa la firma de los ejecutables. Esto en comparación de lo que ocurre por ejemplo, con el Wii. En el Wii el error está en la verificación de la firma, lo que permite el llamado fakesigning. En el PS3 los ejecutables firmados (SELFs) son idénticos a los usados por Sony, es decir son tan legítimos como los legítimos.

Impacto
Lo anterior permite básicamente un jailbreak sin necesidad de dongles USB, y la creación de aplicaciones que no pueden ser bloqueadas por Sony ya que se ven como si ellos mismos la hubieran autorizado. El resultado seguramente será una oleada de aplicaciones, así como también copias masivas no autorizadas de juegos para el PS3 como sucede con Wii, 360 y PSP.

¿Cómo le hago?
Por el momento aún se necesita estar en el firmware 3.41 y utilizar un dongle para el jailbreak. Hecho esto se puede firmar cualquier ejecutable, copiarlo al disco duro y ejecutarlo sin necesidad de resetear en modo jailbreak. Más adelante actualizaré este post conforme más información se haga disponible.

fail0verflow (Twitter). El grupo responsable del exploit en ECDSA, mediante el cual Geohot obtuvo la llave maestra.

Comentarios finales
Contrario a lo que reportan muchos, la clave aleatoria no es siempre “4″, es otro número mucho más grande pero no deja de ser constante. El famoso 4 viene de una tira de XKCD y solo lo usan para ilustrar el punto.

Darkhogg en el blog clopezi.es comenta de manera muy acertada, cómo es que funciona este “bug”:

Para los que no hayan visto el vídeo, la explicación es sencilla: Para encriptar los juegos, se utilizan, aparte de un porrón de claves públicas, dos numeritos PRIVADOS, m y k. De esos dos, k es la clave que utiliza sony para firmar, es única y sólo la conocen ellos. m es un número que no importa cuál sea, pero tiene un detalle: Si existen dos “cosas” encriptadas con la misma k (garantizado) y el mismo m, puede despejarse de una ecuación matemática bastante sencilla k. Por eso m tiene que ser aleatorio, o por lo menos que no sea siempre igual. Si Sony firma con un m constante, es como si no lo firmara, así de sencillo.

Feliz año 2011

Mientras me preparo para la celebración de año nuevo, haciendo espacio para la cena tan tradicional en mi familia, quiero aprovechar este espacio para desearles a todos los que nos visitan un feliz y próspero año 2011. Veremos que nos espera en materia de tecnología, Internet, programación, seguridad, videojuegos y todo lo Geek&Roll de este mundo.

¡Nos leemos en el 2011!

Everlasting Flame es ahora No Te Pases

Cesar December 16th, 2010 aplicaciones 9 comentarios

Everlasting Flame icon

Como ya se anunció previamente, le dije adiós a Everlasting Flame y su desarrollo continuó a puertas cerradas. El resultado de este desarrollo es No Te Pases. Hoy me da mucho gusto ver que la página de No Te Pases tiene pies y cabeza, y hasta un video explicativo que les comparto después del salto. Leer el resto de este post.

Cómo instalar git en Windows

Cesar November 13th, 2010 Uncategorized 3 comentarios

Ya antes he hablado de git, el sistema de control de versiones que me hizo no odiar los sistemas de control de versiones. Git está muy amarrado a GNU/Linux en donde se instala fácilmente, pero no significa que no lo podamos instalar en Windows.

La manera más fácil, práctica y que te deja con un sistema completamente funcional es usando cygwin. En versiones anteriores, usar git con cygwin requería de compilación y magia negra, pero ahora que se incluye en su lista de paquetes es tan sencillo como point, click, listo.

Al final tendrás no solo git, sino también cygwin que te permite tener un ambiente GNU/Linux en tu máquina Windows. Eso para mi es invaluable.

Paso a paso
Descargamos cygwin de su sitio y ejecutamos el instalador, seleccionando la opción de instalar desde Internet. Después de varias pantallas donde podemos seleccionar una lista de mirrors y configurar un servidor proxy si lo necesitamos, llegamos a la pantalla de selección de paquetes:

cygwin

En la barra de búsqueda, buscamos git y dentro de la categoría devel seleccionamos git. Al presionar siguiente, el instalador automáticamente selecciona todas las dependencias y se pone a descargar e instalar todo. Esto puede tomar un tiempo, dependiendo de nuestra conexión a Internet y el mirror seleccionado.

Finalmente recomiendo seleccionar la opción de crear acceso directo al escritorio. Al dar doble click se abre una ventana similar al Command Prompt, pero las similitudes terminan ahí, ya que esa ventana es una terminal GNU/Linux hecha y derecha. Desde esa terminal pueden usar las herramientas GNU más habituales como bash, vi, nano, curl, perl, python y obviamente git. Si algo no está, pueden ejecutar el instalador de cygwin de nuevo y agregar las herramientas que desean.

Adiós Everlasting Flame

Cesar November 9th, 2010 FLOSS, aplicaciones, noticias, programacion 26 comentarios

Everlasting Flame icon

Hace aproximadamente 2 años (el 1ro de Diciembre se cumplen) inicié un proyecto, como empiezan la mayoría de estos: para rascar una comezón propia. A lo largo de los meses se fue desarrollando, hasta que se convirtió en algo útil no solamente para mi, sino para muchas otras personas en mi misma situación.

Se creó un sitio para que la gente pudiera descargarlo, probarlo, donar al proyecto pero más importante, contribuír. Como en cualquier proyecto Open Source, las contribuciones pueden ser de muchos tipos, no solamente en código. Con Everlasting Flame, recibí contribuciones muy importantes:

  1. La página fue hecha por mi compañero Geek&Roller Rafyta, además de estar hosteada en sus servidores
  2. Ideas de nueva funcionalidad
  3. Numerosas contribuciones monetarias por medio de paypal y depósitos directos

Pero llegó el momento de decir adiós.

¿Porque?
La razón principal es que ya no tengo el tiempo necesario para continuarlo como hobbie. No hay nadie que tome la batuta, nunca llegó otro programador a querer contribuir con el desarrollo. Un tiempo comencé a darle vueltas a la idea de cobrar por distribuir los binarios, o ponerlo en el App World de paga, pero en ese entonces no se podían comprar aplicaciones en la App World desde México. Finalmente llegó la empresa Innox y me compró el proyecto, asegurando su desarrollo futuro.

¿Qué va a pasar con Everlasting Flame?
Será responsabilidad de Innox continuar con su desarrollo, pero se vuelve closed source. Como parte del acuerdo yo dejo de distribuír los binarios desde mi sitio.

¿Y la tan prometida versión 2.0?
Toda la funcionalidad de esta versión estará presente en la primera que se libere por parte de Innox.

¡Cerdo capitalista!
Hay que comer pues…

Mi Dropbox no se conecta automáticamente en Ubuntu

Cesar October 18th, 2010 FLOSS, tips Haz un comentario

Si al iniciar sesión en tu escritorio GNU/Linux te encuentras con que Dropbox no se conecta automáticamente, y se queda de manera permanente en estado de “Conectado”, aquí la solución.

Copia y pega lo siguiente en un archivo de texto, en mi caso le puse de nombre restartdropbox.sh:

#!bin/bash
sleep 150
pkill dropbox
sleep 5; dropbox start -i
exit 0

Guarda el archivo y dale permisos de ejecución:
sudo chmod +x restartdropbox.sh
sudo mv restartdropbox.sh /usr/bin

Y finalmente lo configuramos para que se inicie junto con nuestro escritorio. Vamos a System, Preferences, Startup Applications. Algo como lo que se muestra en la imagen:

Screenshot

Listo. Dropbox deberá conectarse después de approximadamente 150 segundos. Lo que hace el script es simplemente reiniciarlo.

(Script via aquí)

Descargar portadas de juegos de Wii automáticamente

Cesar September 22nd, 2010 FLOSS, linux, tips, utilidades 1 comentario

El canal USB Loader GX de Wii tiene la capacidad de descargar las portadas de nuestros juegos. Si por alguna razón no las pueden descargar desde el Wii y quisieran mejor hacerlo desde la PC, aquí les presento una alternativa práctica para cualquier sabor de GNU/Linux

coverDownloader.sh

¿Cómo usarlo?
Descarga el script a cualquier directorio en tu computadora, ábrelo en un editor de texto para configurar lo siguiente:

  • GAMES: La ruta en donde tienes guardados todos tus juegos en formato wbfs (en un disco externo USB).
  • DEST_3D, 2D y DISC: La ruta en donde se guardarán las imágenes de las portadas de los discos (en la tarjeta SD)


# Ruta a los juegos
GAMES=/media/DISCOUSB/wbfs/*.wbfs
# Ruta a la carpeta destino para
# las imagenes en formato...
# 3D
DEST_3D=/media/tarjeta_sd/images
# 2D
DEST_2D=/media/tarjeta_sd/images/2D
# Disco
DEST_DISC=/media/tarjeta_sd/images/disc

Una vez configurado, lo ejecutamos:

chmod +x coverDownloader.sh
./coverDownloader.sh

El script lee el nombre de los juegos que tienes y descarga sus correspondientes portadas. Listo, no más descargar portadas manualmente, o por lo menos te ahorra mucho trabajo.

Tema de Ubuntu 10.10 Maverik en Lucid 10.04

Cesar September 20th, 2010 Uncategorized 2 comentarios

Normalmente actualizo mis instalaciones de Ubuntu cuando sale el Beta, aunque no es lo más recomendado cuando dependes de la estabilidad de tu sistema operativo. Si aún no puedes actualizar a 10.10 porque te da miedo el Beta, pero quieres probar el nuevo tema, estas de suerte porque es muy sencillo gracias a un PPA con los paquetes actualizados.

Para agregar el PPA e instalar los nuevos temas (Radiance y Ambiance) desde la consola:


sudo add-apt-repository ppa:murrine-daily/ppa
sudo aptitude update
sudo aptitude install light-themes gtk2-engines-murrine

Listo. En el diálogo de apariencia (puedes abrirlo dando click derecho en el escritorio y seleccionando la opción de cambiar la imagen de fondo) deben de aparecer los temas actualizados.

Bonus: Si como yo, eres fan del menu global (si, como el de la mac) y quisieras poder tener el que trae Unity, pero sin toda la interfaz para netbooks, también es posible agregando el PPA de los responsables de Unity.


sudo add-apt-repository ppa:canonical-dx-team/une
sudo aptitude update
sudo aptitude install appmenu-gtk libqtgui4 indicator-applet-appmenu indicator-appmenu

En mi caso fue necesario cerrar la sesión de Gnome y volver a entrar. En ese momento el menu global cargó automáticamente, pero en caso de que no lo hiciera basta con dar click derecho sobre el panel superior y agregar al panel el “Indicator Applet Appmenu”; después de 5 minutos estaba fuera de mi panel, como que no se lleva muy bien con el panel estándar de Gnome. En específico no me gusta:

  1. Cómo se acomoda con el menu de aplicaciones actual. Los menus de Aplicaciones, Lugares y Sistema quedan pegados al menu de la aplicación activa. Se ve feo y confunde al usuario.
  2. Existe un ligero pero notable redibujado al momento de mover el menu fuera de la aplicación hacia el panel superior.
  3. No es compatible con todas las aplicaciones, específicamente con algunas que uso mucho como Firefox, OpenOffice y Netbeans.
Posts anteriores Posts recientes