« « « Home
Cargando » » »

Musepack MPC a MP3 en Ubuntu Linux

Hace poco tuve que pasar un archivo de audio comprimido en el formato Musepack. Por alguna razón, y a pesar de ser un formato libre, en Ubuntu los paquetes relativos a este formato no están muy organizados. El problema principal que he tenido es que existe un paquete llamado mppenc que contiene un codificador para este formato, pero no existe un paquete análogo de decodificación. Además, es extraño que exista un paquete que contenga sólo el codificador, en lugar de un paquete con ambas herramientas (y otras que puedan existir relacionadas con el formato Musepack).

Sin embargo, he encontrado un paquete llamado mpc123 que permite reproducir ficheros de audio en este formato, y lo que es más importante, volcarlos a un fichero de audio sin compresión WAV. Normalmente, los discos comprimidos en Musepack suelen ir acompañados de un fichero de tipo CUE que contiene la división de las pistas una vez transformadas a MP3. Por lo tanto, para realizar todo el proceso necesitamos instalar los siguientes paquetes:

sudo apt-get install mpc123 lame mp3splt

Para convertir el fichero MPC en un fichero WAV, utilizamos el siguiente mandato:

mpc123 --wav FICHERO.wav FICHERO.mpc

Para convertir ese fichero WAV a un fichero MP3, utilizamos el siguiente mandato:

lame -V 7 FICHERO.wav FICHERO.mp3

La opción -V 7 sirve para que el fichero MP3 tenga una compresión variable de calidad medio-alta (se puede elegir de 0 a 9). Finalmente, partimos ese archivo MP3 en las distintas pistas utilizando el fichero CUE, mediante la siguiente orden:

mp3splt -f -c FICHERO.cue -o "@n+-+@t" FICHERO.mp3

@n+-+@t es el formato que tendrá el nombre de cada fichero generado (@n es el número de pista, y @t el nombre, si consultais el manual de mp3splt seguramente vengan más opciones).

Ruby on Rails: link_to_remote sin Javascript (noscript)

Bueno, tras este confuso título se esconde un pequeño truco que me ha costado horrores encontrar. Estoy usando el framework Ruby On Rails para un proyecto personal y he decidido que ya soy mayor y puedo usar Ajax. El problema es que tuve una asignatura, Diseño Web Accesible, que corrompió mi mente para siempre y ahora me ando preocupando de si el navegador tiene o no Javascript y zarandajas así :roll: .

La función link_to_remote proporciona la posibilidad de incluir un enlace que usa Javascript y XMLHttpRequest (es decir, Ajax :razz: ), pero si el navegador no dispone de Javascript o lo tiene desactivado, el enlace queda inútil, y no es lo más deseable sobretodo si ese enlace no tiene que usar Ajax por narices, aunque usarlo mejora la eficiencia y la experiencia del usuario.

Sin más preámbulos, os dejo un código de ejemplo de la función en la cuál se genera un enlace normal o uno tipo Ajax según la disponibilidad de Javascript en el navegador:

<%= link_to_remote _("login"), {
   :url => {:controller => "account", :action => "login", :layout => "false"}, # If JS
   :update => "content",
   :loading => "new Effect.Appear('loading_message', { duration: 0.5} ); ",
   :complete => "new Effect.Fade('loading_message', { duration: 0.3 }); " },
   :href  => url_for(:controller => "account", :action => "login") # If no JS
%>

Las líneas interesantes son la segunda y la última. La segunda especifica la acción para Javascript, mientras que la última especifica el destino del enlace cuando no existe Javascript. Ambas opciones ejecutan la acción login sobre el controlador account. La opción layout que se usa en caso de tener Javascript indica al método que no genere el HTML general que rodea al formulario (es decir, la cabecera de la página, el pié, etcétera) ya que sólo se va a recargar el contenido (como se ve en la opción :update). En el caso del enlace sin Javascript, sí necesitamos dicho HTML ya que se recargará la página completa.

Edito: Recomiendo encarecidamente que si has llegado hasta aquí usando Google leas esta entrada del blog Ruido Blanco que nos apunta su creador en un comentario. Tanto el contenido de la entrada como las posteriores aclaraciones de los comentarios me han ayudado muchísimo a comprender cómo funciona Rails y incluso el protocolo HTTP :smile:

Fuente (madrecita lo que me ha costado encontrarla :lol: ): Rails Track

Fedora Core 7: notas post-instalación (paquetes varios, plugins multimedia, compiz, etcétera)

Reciéntemente he tenido que instalar una Fedora Core 7 en el trabajo. Dejo aquí una pequeña lista de algunos pasos posteriores a la instalación que he seguido para tenerla a mi gusto, con capacidades multimedia, compiz, aceleración 3d y avant-window-navigator. Por supuesto, todo desde la terminal y sin mariconadas gráficas :lol: no, ahora en serio, es lo que resulta más rápido.

Actualización de todo el sistema
Lo primero es lo primero: los paquetes que vienen en el DVD de instalación no son los últimos disponibles, así que actualizamos el sistema completo antes de hacer nada más.

# yum -y upgrade

Repositorio Livna y algunos paquetes interesantes
A continuación añadimos a la lista de repositorios de paquetes el repositorio Livna, que contiene todo tipo de paquetes que no están incluidos en el repositorio de Fedora y que pueden resultar interesantes. Además, instalamos algunos de esos paquetes y otros que quizá no se hayan instalado con el sistema (codecs multimedia, reproductores de música y vídeo como xine, mplayer o vlc, rippers de CD’s como grip, o programas de grabación de CD y DVD como gnomebaker o k3b):

rpm -ihv http://rpm.livna.org/livna-release-7.rpm ; yum -y install xmms xmms-mp3 xmms-faad2 gstreamer-plugins-ugly gstreamer-plugins-bad libmad libid3tag grip rhythmbox xine xine-lib xine-skins xine-lib-extras-nonfree libdvdcss
lib-extras-nonfree libdvdcss mplayer mplayer-gui mplayer-skins mplayer-fonts mplayerplug-in videolan-client gnomebaker testdisk thunderbird screen cups-pdf filelight unrar boost k3b gkrellm gnome-applet-netspeed

Compiz Fusion y Avant Window Navigator
Para tener un escritorio más espectacular y útil, nada mejor que unos efectos 3d y un dock a la Mac OS X. Procedemos a añadir sus repositorios y posteriormente instalamos los paquetes necesarios:

# cd /etc/yum.repos.d/ ; wget 'http://devel.foss.org.my/~kagesenshi/repo/pub/kagesenshi.repo' ; wget 'http://www.csc.calpoly.edu/~admiller/repo/pub/kirov.repo' ; rpm --import http://www.csc.calpoly.edu/~admiller/repo/pub/RPM-GPG-KEY-Kirov ; yum -y install compiz-gnome compiz-fusion-plugins-main compiz-fusion-plugins-extra compizconfig-settings-manager fusion-icon-gtk emerald emerald-themes compiz-kde compiz-fusion-plugins-main compiz-fusion-plugins-extra compizconfig-settings-manager fusion-icon-qt avant-window-navigator awn-applets-core

Para arrancar ambos, teneis los mandatos fusion-icon y avant-window-navigator y sus correspondientes accesos en algún lugar de los menús. Lo mejor es ponerlos para que arranquen con la sesión gráfica (en los menús, sí, está bien, los menús ayudan a veces :lol: , en Sistema - Preferencias - Personal - Sesiones en Gnome, el escritorio por defecto en Fedora). Para que funcione correctamente, debereis tener configurada la tarjeta gráfica con aceleración 3D y demás historias (ver siguiente paso).

Aceleración 3D en NVIDIA
En mi caso, tengo una tarjeta NVIDIA (si tienes Intel, bien por ti :smile: , los drivers son libres y deberían funcionarte a la primera, si tienes ATI u otras cosas raras, a buscarse la vida tocan :wink: ). Lo mejor es ir a la página de NVIDIA y bajarse los drivers (a mi no me funcionó con los paquetes de Fedora) e instalarlos. Para ello hay que parar la sesión gráfica, pero GDM no se deja parar ni siquiera con gdm-stop, por lo que editas el fichero /etc/X11/xorg.conf y sustituimos:
Driver “nv”
por
Driver “nvidia”
y detienes el gdm con el mandato gdm-stop, a ver si ahora tiene huevos de volver a arrancarse :lol: . Cuando te salgan unos tenebrosos mensajes en azul, dile que no y ejecuta el programa de configuración de drivers desde una terminal de texto (ctrl-alt-F1). Cuando ya lo tengamos, ejecutamos los siguientes mandatos para hacer que funcionen los efectos de compiz:

# nvidia-xconfig--allow-glx-with-composite ; nvidia-xconfig --allow-glx-with-composite ; nvidia-xconfig --add-argb-glx-visuals ; nvidia-xconfig --composite

Una vez hecho esto, volvemos a editar el fichero /etc/X11/xorg.conf y sustituimos:
Section “Module”
Load “glx
EndSection

por
Section “Module”
Load “dbe”
Load “v4l”
Load “extmod”
Load “type1″
Load “freetype”
Load “glx
EndSection

Una vez hecho esto, reiniciamos la sesión gráfica con el mandato gdm-restart y debería salir el logo de NVIDIA seguido de la sesión gráfica. Si esto es así, ya podremos arrancar la sesión gráfica y lanzar compiz y demás. Si no, a buscarse la vida, que esto es una guía si-funciona-bien-si-no-usa-google :lol:

Habilitando SUDO
No me gusta tener que hacer su cada vez que quiero ser superusuario. Así que añadí la siguiente línea en el fichero /etc/sudoers:
deigote ALL=(ALL) ALL
donde deigote es mi nombre de usuario. Supongo que hay configuraciones mejores como crear un grupo admin y darle permisos a ese grupo e introducir mi usuario en el grupo, pero.. paso. El que no pase, que aprenda a poder no pasar :grin: .

Y esto es todo. Si alguien quiere añadir algo, que comente coño :evil: :lol:

Creando ficheros tipo JAR de Java en Unix (sólo clases)

Si, ya sé que algunas herramientas como ant hacen este tipo de tareas más fácilmente.

Pero para algún proyecto pequeño y gestionado por completo desde Eclipse o algún otro IDE o para algún script o similar, puede venir bien hacer esta tarea desde la terminal. El problema es que muchas veces tenemos las clases mezcadas con los ficheros fuentes y otros (por ejemplo, los directorios de control del subversion), y separarlas puede ser un poco tedioso. Aquí va un mandato que hace la magia:

jar cvf nombre-de-fichero.jar `find . -name '*.class' | awk 'BEGIN{todo=""}{todo = todo " " $0}END{ print todo}'`

Por cierto, que para matar dos pájaros de un tiro tenemos otro ejemplo para el fantabuloso tutorial de AWK :grin:

Edito: gracias a YoNoSoyTu, actualizo el truco a uno más sencillo y mucho menos vacilón :neutral:

jar cvf nombre-de-fichero.jar `find . -name '*.class'`

Momentos de cine en Los Simpsons

Genial esta recopilación de las referencias a películas más o menos clásicas en la serie Los Simpsons. Visto en Yonkis :wink:

El ciclo de la procrastinación

Creo que alguno debería descartar definitivamente Twitter…

Al final no ha podido ser

España ha perdido la final del europeo una vez más. Antes de nada, felicitar a los campeones, Rusia. No comentaré nada sobre el partido, ya que cualquiera podrá leer cientos de crónicas en la prensa escrita, digital, blogs y demás. Simplemente quería dar un apunte que en mi opinión es curioso como poco: las super estrellas NBA (los allstar, a los que teóricamente no les tiembla la mano en los momentos decisivos, los mejores de la mejor liga del mundo), a la hora de la verdad, en el partido decisivo, han estado muy mal: Tony Parker jugó de pena para entrar en semifinales, fallando además un tiro libre decisivo, Nowitzki contra España apenas hizo puntos para un jugador tan productivo ofensivamente (cierto es que a Alemania le cayó una paliza de escándalo y poco podía hacer, pero es que no estuvo bien en ningún momento) y hoy en la final Pau Gasol, a pesar de su gran influencia en el juego y su gran aportación en defensa, ha fallado todos los tiros libres habidos y por haber, muchos de ellos fundamentales, y ha tenido unos porcentajes de tiro muy malos, y Kirilenko no ha hecho nada a parte de cargarse de faltas estúpidas.

El resumen, en una de las etiquetas que tanto gustan a algunos de mis lectores :wink:

Usa protector solar…

úsalo, y si puedes no hagas caso de todos los subtítulos, no están muy bien elegidos…

Lesvivo: disco gratis y concierto de presentación

Uno de mis grupos favoritos, Lesvivo, en el que casualmente toca mi hermano :wink: lleva un tiempo con un discazo, Trece, entre las manos, quemándoles en el disco duro del Mac con que lo grabaron, a la espera de que alguna discográfica pusiese los medios para distribuirlo. Pero por culpa de la piratería :lol: el tema de la música está muy mal, y hartos de esperar, han tomado el toro por los cuernos:

Podeis descargaros el disco gratis de su página web codificado en formato MP3. ¿A qué esperais?

Me voy a poner en plan Steve Jobs, one more thing…… no contentos con regalarnos el disco en formato digital, van a hacer un concierto de presentación del mismo el día 5 de octubre en Barracudas, en el que se regalarán algunos CDs con el disco, y nuevamente, ¡gratis! Aunque a mí no me importa pagar lo que suele costar un concierto de estos (5-10€ por ver música en directo me parece muy razonable teniendo en cuenta que el cine de mierda cuesta 6€ cada vez y los actores sólo trabajaron al rodarla), es una excelente oportunidad para que los que no conozcais a este grupo y os apetezca escucharlos, lo hagais sin gastar un duro.

Así que ya sabeis, no hay excusa, disco gratis en la red, concierto gratis en la sala Barracudas (mapa) el día 5 de octubre. Seguiremos informando para concretar la fecha, el día, la hora y confirmar el precio :grin:

Hay que mirar hacia delante al entrar en las rotondas…

… o si no acabas dando al pobre que está delante de ti y que todavía no ha salido, en este caso, yo y mi pobre Venox :cry: . Pues eso, hoy un señor me ha dado un golpe por detrás al ir a entrar a una rotonda, estando yo a punto de entrar en ella (iría a 2km/h en el momento del golpe) y que ha dejado temblandito la matrícula y su soporte. La moto ha caido con todo el peso de la ley sobre… la bendita defensa, sorprendente lo lejos que ha quedado todo (mi pierna incluida) del suelo :shock: vivan las defensas. Para el que no sepa que son:

La moto de la izquierda las lleva y la de la derecha no. ¿Adivinais? El hierro semicircular que sobresale lateralmente :grin:

A la moto no le ha pasado nada más que lo descrito, matrícula y soporte dobladas hasta tocar la parte de abajo del asiento del pasajero. La he sacado de ahí abajo con maña (dando marcha atrás y haciendo que la rueda empujase la pieza) porque a mala hostia no salía ni p’atrás :lol: .

En fin, dentro de lo malo bien porque no me ha pasado nada ni a mi ni a la moto, y el señor, a pesar de que al principio ha reaccionado un poco enfadado, no me ha hecho falta decirle nada: ha sacado el parte amistoso y se ha puesto como si fuese culpa suya, que lo era :evil: . Ahora a ver si los del seguro cumplen su parte, que ese es otro cantar…

Lo mejor de la experiencia, la cantidad de motos que se han parado para ver si necesitaba ayuda. Un gustazo, oiga. Yo no tengo ni zorra idea de mecánica pero a partir de ahora, motero que vea tirado, me paro aunque sea por el apoyo moral que da. También ha estado bien estar a decenas de kilómetros de mi casa y encontrarme al vecino del 2º entrando en la misma rotonda, estas casualidades el mundo es un pañuelo me encantan :roll:

Así que ya sabeis, hasta al mejor de los conductores puede pasarle, en las rotondas, antes de entrar, ¡mirad p’alante!