Geek & Roll » aplicaciones

Sincronizar 2 carpetas en GNU/Linux y Windows

Cesar August 4th, 2010 FLOSS, aplicaciones, linux, tips, windows Haz un comentario

Tengo una carpeta llena de música que he ido acumulando a lo largo de los años. Siempre trato de mantener los ID3 tags correctos, pero de vez en cuando me encuentro algún MP3 que le hace falta información. Toda esta colección de música la tengo en el disco duro de mi computadora en una partición EXT4 para su uso desde Ubuntu, y respaldada en un disco duro externo de 1 TB con formato FAT32 para su uso en cualquier otro lugar.

El problema es que si edito, agrego, elimino o muevo un archivo en el disco externo, tengo que hacer lo mismo en el disco interno. Hacerlo manualmente no es una opción, y no puedo sincronizar utilizando alguna otra herramienta (como rsync) porque sólo sincronizan de una fuente a un destino, y en mi caso los cambios pueden darse en cualquiera de las dos carpetas, inclusive en las dos al mismo tiempo.

Esto es muy similar a como funcionan los sistemas de control de versiones, y precisamente el programa Unison File Synchronizer toma esta aproximación, le agrega algo de multiplataforma y facilidad de uso, resultando en una herramienta indispensable. Básicamente Unison puede tomar dos carpetas, compararlas y propagar los cambios de tal manera que al final queden ambas exactamente igual.

Por último, si alguna de las carpetas es de un sistema de archivos que no soportan permisos (como por ejemplo en mi caso, FAT32), hay que configurar Unison para que no intente sincronizar estos permisos. Para hacerlo hay que editar el archivo que se encuentra en ~/.unison/nombreDelPerfil.prf y agregar al final:

perms=0

Iconos de Eclipse y Netbeans para Docky

Netbeans

Ya que andamos en eso de hacer que Eclipse se vea bien en GNU/Linux, ahora le toca el turno a los iconos tanto de Eclipse como de Netbeans.

Normalmente tengo los dos IDEs instalados, y sus iconos de aplicación se ven pésimo a resoluciones altas como las que maneja Docky. Afortunadamente la solución es simple, reemplazarlos por unos de mayor resolución.

Para Eclipse, hay un excelente icono en formato SVG que sigue las especificaciones del proyecto Tango. Este icono lo encuentran en Gnome-Look.org.

Para Netbeans es más interesante, se puede usar el mismo icono que se usa en OSX. Resulta que cuando instalas Netbeans en OSX el icono se ve muy bien, pero usuarios de otros sistemas operativos nos tenemos que conformar con una versión de menor resolución. Afortunadamente podemos tomar el icono de OSX en formato icns y usar icns2png (disponible en tu distro favorita) para convertirlo a PNG. Ahora que si se quieren ahorrar esos pasos, solo click derecho y guardar como. Gracias este blog por el tip.

Cómo hacer que Eclipse se vea más bonito en Ubuntu

Cesar July 9th, 2010 aplicaciones, linux, programacion, tips 1 comentario

Tradicionalmente Ubuntu no le ha dado la prioridad que debería a eclipse, mi IDE de preferencia a la hora de programar. La diferencia es más notable si, como yo, constantemente te encuentras cambiando entre sistemas operativos.

Eclipse IDE en Windows 7
eclipse_windows

Eclipse IDE en Ubuntu
eclipse_ubuntuhuge

Notese como en Ubunto en el mismo espacio se muestra mucho menos área útil, ya que los botones y la interfaz en general ocupan más espacio del que deberían. El problema real está en GTK y sus limitantes, no en eclipse o SWT (el toolkit gráfico utilizado por eclipse). Para arreglarlo, al lanzar eclipse es posible especificarle a gnome que use un tema diferente, modificado especialmente para que eclipse use mejor el espacio disponible.

Lo primero es asegurarnos que las fuentes liberation-fonts se encuentran instaladas (en mi caso ya estaban instaladas):

sudo aptitude install ttf-liberation

Después descargamos este zip y lo descomprimimos en el directorio raíz donde se encuentra eclipse. El zip contiene dos archivos:

  • gtkrc-sar es el archivo de propiedades para el tema de GTK que vamos a utilizar específicamente con eclipse.
  • ec es un shell script muy sencillo que se encarga de crear la variable de entorno para el tema de eclipse y finalmente lanzarlo

Ahora hacemos el shell script ejecutable:

chmod 755 ec

Y finalmente ejecutamos ec en vez de eclipse:

./ec

Eclipse en Ubuntu después de las modificaciones
eclipse_ubuntubetter

El resultado es un eclipse con un espacios mucho más normales en las tabs y los iconos de la barra de herramientas, aprovechando mejor el espacio y mejorando la experiencia de usar este IDE en Ubuntu.

Si se quiere modificar la entrada del menú para lanzar eclipse, lo cual a su vez tiene el efecto de permitirnos de lanzar eclipse con el nuevo tema desde Gnome Do, o Docky por ejemplo, lo que se tiene hacer es editar el script ec y dejarlo de la siguiente manera:

#!/bin/sh
GTK2_RC_FILES=/home/usuario/eclipse/gtkrc-sar /home/usuario/eclipse/eclipse

Lo que estamos haciendo es utilizar rutas absolutas en vez de relativas. En este caso estoy suponiendo que eclipse se encuentra instalado en /home/usuario/eclipse/ hay que editar el archivo para que concuerde con el sistema de cada quien.

Con esta modificación al script, en el menú principal podemos agregar una entrada para eclipse (si no es que ya tenemos una) poniendo como comando lo siguiente:

sh /home/usuario/eclipse/ec

Ahora sí, tanto Gnome Do como un lanzador de Docky creado a partir del menú principal deberán de iniciar eclipse con el nuevo tema.

Gracias a Sarath Chandra por el post original.

Un simple reproductor de música por favor

Cesar July 6th, 2010 FLOSS, aplicaciones, linux 4 comentarios

Cuando de reproducir música se trata, GNU/Linux tiene opciones para todos: amarok, banshee, BMP, exaile, rhythmbox, xmms, et al. En lo personal, cuando quiero escuchar mi colección de mp3s por tiempo indefinido uso rhythmbox, que me permite mantener mi colección, editar los tags ID3, buscar, enviar a last.fm, descargar portadas de CDs, descargar la letra, entre muchas otras cosas. Por lo general hay un player para todos, algunos prefieren la navaja suiza que es amarok, o el me-parezco-a-winamp-retro xmms.

Aún con todas las opciones que existen, hay un caso de uso que no consigo cubrir. Hay veces en las que quiero escuchar uno o varios mp3 pero sin agregarlos a una biblioteca, ni a una playlist ni nada por el estilo. Sólo doble click y que comience a escucharse. Lo que necesito es un player que:

  • Al dar doble click en un mp3 en nautilus comience a reproducir
  • Si son varios archivos seleccionados, se abren secuencialmente
  • No mantiene una playlist
  • Puede enviar el track escuchado a last.fm
  • De preferencia sólo reproduzca música
  • Se integre bien al escritorio de gnome

Por default gnome incluye rhythmbox, pero para poder escuchar algo tienes que agregarlo a tu biblioteca o a la cola. También esta el Movie Player que se incluye con gnome y puede reproducir mp3, pero no tiene soporte para last.fm (que yo sepa. Sólo me interesa el scrobbler, es decir enviar el track a mi cuenta en last.fm)

Los dos players que investigué fueron VLC y Exaile, y estos fueron mis resultados:

vlc

VLC
VLC se integra bastante bien al escritorio gnome, excepto por su icono del system tray que se ve muy feo en Ubuntu 10.04. Además no tiene caso tenerlo ahí para reproducir unos cuantos mp3s, así que hay que deshabilitarlo utilizando el switch –no-qt-system-tray. Para hacer esto, abrir el programa Main Menu y en la sección de Sonido y Video, seleccionar VLC media player, click en Propiedades y en el comando utilizar vlc %U –no-qt-system-tray

Una vez hecho lo anterior, lo que sigue es habilitar el scrobbler. Para esto los redirijo a este sitio que lo explica con fotitos y toda la cosa. Hay que ir directamente a la sección que dice Enable Last.fm Scrobbling Option In VLC Media Player. Con la versión de VLC que viene en Ubuntu, no es necesario tener el cliente de last.fm abierto para que VLC pueda hacer uso del scrobbler.

Hablando del scrobbler, el soporte que tiene en VLC podría ser mejor. VLC reporta el track sólo hasta que haya terminado de reproducirse, y no reporta el estado de “Now playing” como lo hacen otros (rhythmbox por ejemplo) pero cumple con lo básico.

VLC se abre en pocos segundos, el soporte para distintos formatos es impresionante, y otro bonus es que no depende de librerías presentes en el sistema operativo, sino que hace uso de sus propios codecs. También reproduce video, y aunque uno de mis requerimientos era que de preferencia se limitara a música, VLC es mi reproductor de video por default por lo que ya estaba instalado en mi sistema. Además es multiplataforma. VLC rocks!

exaile

Exaile
Exaile es un player específicamente para gnome con una interfaz GTK+. Se integra perfectamente al escritorio gnome, con soporte para descarga de portadas, notificaciones y OSD entre otras cosas. Sin embargo todas estas cosas salen sobrando en este caso.

De primera instancia, hay que configurar algunas opciones de exaile para que funcione como lo necesitamos. Afortunadamente todo lo podemos encontrar en el diálogo de preferencias, que es mucho más simple que el de VLC ya que exaile se encarga sólo del audio y de nada mas (un plus en este caso). Las opciones que cambio son:

  • Deshabilitar el abrir la última playlist al abrir el reproductor
  • Deshabilitar el preguntar si se desea grabar la playlist al cerrar el reproductor
  • En apariencia, deshabilitar el mostrar la pantalla de inicio (splash screen)
  • Deshabilitar el mostrar el icono del system tray (lo mismo que VLC, pero más fácil)
  • En Playback, deshabilitar el iniciar la última reproducción desde donde se quedó
  • Deshabilitar el iniciar la reproduccion en pausa al abrir el reproductor
  • En plugins, habilitar el AudioScrobbler
  • Configurar el username y password

El soporte del scrobbler en exaile es mejor que el de VLC, además de contar con una opción importante: al presionar Ctrl + B, se deshabilita el scrobbler lo cual es muy útil cuando vamos a reproducir algo que no queremos que se envíe a last.fm como por ejemplo un podcast o un chiste de polo polo.

Exaile también abre en pocos segundos y cumple con el requerimiento de dedicarse a sólo audio. Su soporte de last.fm es mejor que el de VLC y tiene el plus de poder habilitarse y deshabilitarse fácilmente. También exaile se integra mejor con el escritorio gnome.

Veredicto
Lo único que no me gusta de exaile es que no puedo reducir su interfaz a lo mínimo necesario, cosa que en VLC es muy sencillo. Si pudiera lograr lo anterior con exaile, sería mi reproductor elegido pero por esta razón me quedo con VLC.

¿Tienen consejos sobre otros reproductores que debería de probar?

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.

Arreglar el parpadeo de la pantalla en Ubuntu 10.04 Lucid Lynx

Ahora que Ubuntu 10.04 LTS ha salido para su consumo masivo, no tardan en aparecer los posts tipo Las 10 cosas que debes hacer después de instalar Ubuntu Lucid Lynx.

Para mi, lo primero no fue instalar Gnome-Do, o los codecs propietarios. Lo primero fue arreglar el flickering de la pantalla, un molesto bug en el que la pantalla parece saltar de un lado a otro. Es difícil describirlo con palabras así que aquí tienen un video.

Aparentemente, el bug tiene que ver con el ancho de banda del CPU y la memoria. El problema es con tarjetas ATI móviles, las cuales comparten el RAM con la computadora. Aún más crítico es que con la salida de fglrx para tarjetas antiguas, todos los usuarios de ATI que se ven forzados a usar drivers radeon o radeonhd experimentarán el mismo problema.

La solución (al menos en mi caso) fue añadir un comando al kernel:

radeon.new_pll=0

Para añadir dicho comando, editamos el archivo /etc/default/grub

sudo gedit /etc/default/grub

Y en la siguiente línea:

GRUB_CMDLINE_LINUX=”"

Ponemos el comando:

GRUB_CMDLINE_LINUX=”radeon.new_pll=0″

Y finalmente ejecutamos el comando para que grub2 tome los cambios (gracias Infragilis!):

sudo update-grub2

Reiniciamos y listo, no mas flicker. Ahora sí, vayan a instalar los codecs y Gnome-Do.

Adobe IS lazy

Rafyta April 12th, 2010 aplicaciones, internet 6 comentarios

Cuando el tío Steve dijo que Adobe son una bola de huevones (mi paráfrasis), a mí me pareció muy exagerado, pero con el paso de los días y leyendo varios puntos de vista de ambos lados, a mí me pareció que si se duermen en sus laureles (basta recordar las tardanzas para portear a Mac las versiones nuevas de Photoshop en los 2000’s, ni qué decir de Flash en OS X). Ahora me queda más clara la postura del tío Esteban Talachas, me refiero a esto:

adobe-is-lazy

O sea, en un logo que no debe tomar más de 10 minutos (haciendo breaks para tomar café, ir al baño, etc.) se les va un error como éste. A menos que sea un homenaje a M.C. Escher (no, no es compa de M.C. Hammer), la verdad es que se ve bastante mal; descuidado, por no decir mediocre.

Aparte, ¿no se les ocurrió que en el top of mind de la mayoría de usuarios de internet “FB” está más asociado con “FaceBook”? Ya se sabe que son audiencias distintas, pero yo nomás digo…

Everlasting Flame y Bold 2 (OS 5)

Cesar February 26th, 2010 aplicaciones, tips, utilidades 11 comentarios

Everlasting Flame icon

Muchos usuarios han reportado problemas al utilizar Everlasting Flame con la BlackBerry Bold 2. Más particularmente, con el OS 5. Dicho problema no se presentaba en versiones anteriores a la 1.3.

El problema ha sido resuelto en la siguiente versión (2.0) sin embargo no se encuentra lista para consumo masivo. Por lo mismo, he subido de nuevo la versión 1.2 ligeramente modificada. Esta versión ha sido probada en la Bold 2, pero debería funcionar en cualquier dispositivo con OS 5.

Pueden descargar la versión 1.2 en el sitio oficial de Everlasting Flame. En la sección de descarga se encuentra la versión 1.2 para dispositivos anteriores.

Sus comentarios son bienvenidos.

Posts anteriores