Geek & Roll » 2010 » June

Cómo usar los temas de Windows 7 en Gnome

Una de las cosas que me agrada de Windows 7 es su galería de temas de escritorio, los cuales ahora incluyen una pequeña pero agradable funcionalidad que permite estar cambiando el fondo de pantalla cada determinado tiempo. Algunos temas incluyen fondos de pantalla de alta resolución con imágenes muy adecuadas para este propósito.

Por fortuna podemos utilizar esos mismos fondos de pantalla, obtenidos directamente de los temas de Windows 7, en nuestro escritorio Gnome además de rotarlos de la misma manera. Para eso vamos a utilizar lo siguiente:

Instrucciones:

  1. Instalar 7 zip. Para eso pueden usar la consola con el siguiente comando:
    sudo aptitude install p7zip-full p7zip-rar p7zip
  2. Descargar el tema elegido y renombarlo de nombredeltema.themepack a nombredeltema.rar. Aunque usamos rar como extensión, es necesario usar 7 zip y no el unrar que viene con Ubuntu ya que este último no puede descomprimir correctamente el archivo.
  3. En la consola, ir a donde descargamos el archivo (en mi caso en Downloads/) y utilizar el comando 7za para descomprimir el archivo:
    7za e Mexico.rar -o Mexico/

    Lo que nos debe crear una nueva carpeta llamada Mexico con las imágenes de fondo dentro y un archivo Mexico.theme que no vamos a utilizar.

  4. Descargamos el DEB de XML slideshow creator de su sitio (link directo). Para instalarlo solo dar doble click en el archivo descargado y seguir las instrucciones.
  5. Abrimos XML slideshow creator (se agrega al menú accesorios) y seleccionamos la carpeta Mexico donde se descomprimieron las imágenes, ajustamos el tiempo de cambio entre imágenes así como el tiempo de la animación, y por último seleccionamos la opción de aplicar el fondo después de generar.
  6. Por último damos click en generar. El fondo se aplica y debe cambiar de acuerdo al tiempo configurado. Los fondos generados se van guardando en sus respectivas carpetas, pero además podemos acceder a ellos en el diálogo de configuración de apariencia (Sistema | Preferencias | Apariencia)
  7. En caso de que no se agregue automáticamente, se puede agregar manualmente utilizando el botón agregar, y seleccionando el archivo Background.xml generado por la herramienta.

Es importante mencionar que solamente estamos haciendo uso de los fondos de pantalla, y no sonidos, colores u otros recursos del tema. Por último, una imagen de mi escritorio.

Cargando recursos binarios desde JavaScript

Desde que Google mostró al mundo su port de Quake 2 a JavaScript usando GWT, no me podía sacar una pregunta de la cabeza: ¿Cómo hacen para cargar los recursos (como por ejemplo los modelos de los jugadores, o los niveles) desde el servidor al cliente, para su uso por el motor del juego en JavaScrip? ¿Es posible obtener archivos binarios del servidor, guardarlos en el sistema de archivos local, y ejecutarlos finalmente por una aplicación en JavaScript? La respuesta obviamente era sí, pero no sabía cómo.

Pero una consulta al código fuente del proyecto quake2-gwt aclaró las dudas. El secreto es sobreescribir un tipo MIME, lo que le permite al objeto XMLHttpRequest recibir respuestas binarias en vez de texto, para lo cual es más comúnmente utilizado.

function load_binary_resource(url) {
  var req = new XMLHttpRequest();
  req.open('GET', url, false);
  //XHR binary charset opt by Marcus Granado 2006 [http://mgran.blogspot.com]
  req.overrideMimeType('text/plain; charset=x-user-defined');
  req.send(null);
  if (req.status != 200) return '';
  return req.responseText;
}

En GWT necesitamos hacer uso de una funcion JavaScript nativa (JSNI) para lograr lo mismo:

private native void overrideMimeType(XMLHttpRequest req, String mimeType) /*-{
    req.overrideMimeType(mimeType);
}-*/;

Y finalmente crear un objeto XMLHttpRequest, hacer la petición y procesar los datos binarios en el cliente:

XMLHttpRequest req = XMLHttpRequest.create();
overrideMimeType(req, "text/plain; charset=x-user-defined");

req.setOnReadyStateChange(new ReadyStateChangeHandler(){
    //procesar la respuesta binaria
});

req.open("GET", "archivo.binario");
req.send();

Para convertir la respuesta en un InputStream, en este caso utilizando GWT y clases de emulación io y nio que tomé prestadas del proyecto quake2-gwt:

response = xhr.getResponseText();
byte[] responseBytes = new byte[sbb.stringToByteBuffer(response).remaining()];
InputStream inputStream = new ByteArrayInputStream(responseBytes);

En este punto pueden usar el InputStream como lo harían en un programa Java tradicional, por ejemplo si cargaron los bytes de una imagen, pueden aplicarle filtros a-la-photoshop, en tiempo real, en el cliente, sin necesidad de procesamiento en el servidor mas allá de descargar la imagen.

Arrancar la partición HP Recovery con GRUB

En el pasado, cuando comprabas una computadora con Windows preinstalado, normalmente se incluía un disco de recuperación con el cual podías reinstalar el sistema operativo de manera desatendida, dejándolo como de fábrica. Sin embargo, en años recientes esta práctica es cada vez menos común, reemplazando el disco de recuperación por una partición “especial” que contiene la imagen de recuperación más el software necesario para arrancar desde la partición y reinstalar la imagen.

HP BIOS

Este es el caso de las computadoras HP. Al iniciar, el BIOS te presenta con la oportunidad de presionar una tecla (F11 en el caso de la imagen) para arrancar la partición de recuperación. El problema es que cualquier modificación del Master Boot Record (MBR) elimina la posibilidad de arrancar la partición de recuperación presionando F11. El MBR puede ser modificado por actualizar el mismo Windows (por ejemplo si tu PC la compraste con Vista y actualizas a Win7 o desactualizas a WinXP), o por instalar otros sistemas operativos como GNU/Linux o OS X.

Después de un largo proceso a prueba y error (los detalles más adelante), descubrí que es posible arrancar la partición de recuperación utilizando GRUB. Este programa es un gestor de arranque muy popular en GNU/Linux, es Free Libre Open Source Software y es utilizado en muchas distribuciones GNU/Linux, como por ejemplo Ubuntu.

Si necesitas restaurar tu sistema operativo, pero no puedes arrancar tu partición de recuperación, puedes seguir los siguientes pasos: Leer el resto de este post.

Instalar WUSB54GC en Ubuntu Lucid 10.04

Cesar June 24th, 2010 FLOSS, linux, sistemas operativos, tips 3 comentarios

El WUSB54GC de Linksys es un dongle WiFi USB. Lo compré pensando en que lo podría usar en Ubuntu sin mayor complicación, pero no fue así. El driver necesario se incluye así que no hay necesidad de descargar nada, sin embargo se necesita configuración adicional.

Lo primero es asegurarnos que el hotspot al que nos queremos conectar usa WEP o WPA. Al inicio intenté conectarme a un hotspot con WPA2 y nunca logré conectarme. Cambiar la configuración a WPA arregló el problema.

Lo siguiente es editar el archivo blacklist.conf

sudo gedit /etc/modprobe.d/blacklist.conf

Agregar la siguiente línea al final:

blacklist rt2800usb

Y listo, al conectar el dongle el sistema debe reconocer las redes inalámbricas disponibles y conectarse sin problemas.

El CPU del Nintendo Entertainment System

Soy un geek de la emulación desde que supe se podía emular el SNES en mi modesta Pentium 2. Desde entonces he utilizado varios emuladores y hasta programado un simulador por mi cuenta (para el microcontrolador 68HC11 de Motorola).

Lo que me lleva a este post: el NES. El NES es interesante ya que es el sistema más emulado que hay, aún así crear un emulador del NES no es tarea fácil. Además las computadoras (y otros gadgets) de hoy tienen lo suficiente para emularlo sin penalización en la velocidad. También, su CPU (MOS 6502 ligeramente modificado) de 8 bits fue el CPU elegido para la mítica Commodore 64, el Atari 2600, Terminator y Bender. Leer el resto de este post.

You’re geniuses for cryin’out loud!

Boynas June 8th, 2010 tecnología 5 comentarios

Tengo que reconocer que el iPhone como concepto (no precisamente como un modelo en especial) ha tenido en los últimos años la capacidad de empujar a la industria de la tecnología y de las telecomunicaciones.

He estado cerca de tecnologías móviles por mucho tiempo y recuerdo los tiempos de las Handspring, Palm pilots, iPaq y lo que sentí cuando se convirtieron en teléfonos una vez que HP se apodero de Compaq.

Por años se ha hablado de ciertas cosas que se pueden hacer con los teléfonos y los que aman la tecnología móvil entenderán porque los japoneses se “casan” (literalmente) con un Nintendo DS.

Acabo de ver los videos de publicidad de Apple para su nuevo iPhone, y me vinieron tantas cosas a la cabeza con respecto a “las novedades” que tiene. Los japoneses deben de estarse riendo de nosotros. Lo que me gusto y que envidio es la doble camara y la capacidad para hacer video conferencias. Sin embargo, no lo aplaudo. Lejos de alegrarme de que Apple este “empujando” a la industria telefónica en el mundo se me vienen muchas dudas a la cabeza.

Mi hermano compro un teléfono Fujitsu Siemens hace como 4 años, se enterco porque traia todo lo que tu mente puede necesitar, entre todas esas cosas eran doble camara y banda cuadruple, capacidad para UMTS, y un sin fin de cositas. Pero, era mediocre Windows Mobile usado en una mediocre red de Telcel, donde nadie tiene la capacidad de utilizar siquiera skype (al menos hace 4 años). Un completo fracaso.

En el caso de la iPad. La tecnología táctil en las pantallas es viejisima, creo que desde los 70’s o 60’s y lo multi-tactil sera ochentero. Pero hasta hace poco se han visto implementaciones reales. Lo peor es que ha habido compañías que es lo único que hacen: Tablets. Motion Computing, alguna vez trabaje con ellas en proyectos de tecnologías “Paperless”. Buenas computadoras, buena tecnología táctil, pero igual, estupideces como Windows XP Tablet Edition hicieron que nunca prosperara.

Es difícil pensar que habiendo tantas compañías que se dedican a hardware, tanto software libre, tanta especulación de las personas como mi hermano hace 4 años, los japoneses y todos los fanboys de mac que por 4 años estuvieron especulando acerca de la iTablet incluso haciendo diseños y prototipos de lo que les gustaría que fuera; A pesar de todo eso… Nos sorprendemos de la “innovación” de Apple. Nos sorprendemos de la manera en que el iPhone empuja a la industria telefónica.

Honestamente, no crean que no, me canso de ser tan amargado y de verle el lado malo a las cosas. Pero, ¿No piensan que hay una linea de tiempo o “timeline” previamente establecida por los poderosos de la industria en la que ya esta delimitado quien y cuando traerían avances tecnológicos? ¿Tal vez por medio de patentes?

Lo que siento, tratare de explicarlo con el dialogo de una película. Como dijo Bruce Willis en Armageddon (Me da padentro Bruce Willis, y me da padentro Armageddon) cuando la NASA no tiene un Plan B…

NASA Guy: “No, we don’t have a backup plan. This is it.”

Bruce Willis: “And this is the best that you could… That the government, the U.S. government can come up with?
I mean, you’re NASA, for cryin’out loud. You put a man on the moon. You’re geniuses! You’re the guys that think this shit up. I’m sure you got a team of men sittin’ around somewhere right now… just thinkin’ shit up and somebody backin’ them up.
You tellin’ me you don’t have a backup plan, than these eight Boy Scouts right here… That is the world’s hope, that’s what you’re tellin’ me?”

NASA Guy: “Yeah.”

Bruce Willis: “Oh, Jesus. Damn it.”

Para acabar pronto. Se me hace muy raro que las personas de UNA sola compañía sean las ÚNICAS en el mundo que se les prendió el foco de ponerle dos camaras a un teléfono, una adelante y una atras. Se me hace muy raro, que ellos también hayan sido los ÚNICOS que se les ocurrió hacer un aparato que puedes manejar con mas de un dedo. De hecho son los ÚNICOS que tienen programas para ser DJs o diseñadores gráficos. Y son los primeros que se les prendió el -foco-, de prenderle un -foco- al logo de su marca detras de la tapadera de sus laptops.

Es difícil pensar que eso es “innovación”, y necesito que me pongan en la cabeza de HP o de Dell. YA!

La historia se repite, Apple es el primer teléfono con doble camara para video conferencias. Al menos tengo que darle las gracias a Apple por forzar a la mediocre red móvil del norte de America a dar soporte a algo tan básico como video conferencia.