lunes, 26 de abril de 2010

Convertiendo archivos a MP3 con iTunes

El otro día me topé con un problema al tratar de reproducir archivos de audio que no eran MP3. iTunes ofrece una forma fácil de convertir los archivos, simplemente los seleccionas, click derecho, y después "Convert to MP3". Yo pensé que al hacer la conversión, iTunes ofrecería la opción de reemplazar los archivos originales. Lo que pasa en realidad es que después de convertir la canción, acabas con dos canciones iguales, pero en diferente formato. Esto no es un problema si tienes que convertir 10 o 20 canciones, pero en mi caso implicaría tener que manualmente buscar y eliminar cada duplicado mas de 800 veces.

Para casos como estos, iTunes ofrece el "iTunes COM Interface". Esto es un API que se conecta directamente a iTunes, y permite control programático de casi todas las funciones del reproductor. Para información detallada, recomiento bajar el iTunes COM for Windows SDK (require registro). Los scripts son fáciles de programar, y son ejecutados por el Windows Scripting Host (WSH). Yo elegí programar en JScript, aunque podrías usar Visual Basic, C# o C++.

Aquí dejo el código del script, por si a alguien le sirve. Para correrlo, hay que seguir estos pasos:
  • Escoger las opciones de conversión en iTunes(Menu edit -> preferences -> Import Settings)
  • Seleccionar las canciones que quieres convertir. El script solo funciona si seleccionas canciones dentro de la biblioteca principal de iTunes, no un playlist.
  • Correr el script desde la linea de comando, e.g.
    c:\>cscript <ruta al archivo>\convert_and_delete.js
    

martes, 13 de abril de 2010

Nunca hay suficiente espacio

Recuerdo que a principio de los 90s, mi papá llegó a la casa con un disco duro de 1GB. En ese entonces, esto era de lo más grande que se podía conseguir a precios comerciales. Era increible la cantidad de cosas que imaginaba podrían caberle a este nuevo disco. Aún asi, siempre aplica la ley que dice que cuanto mas espacio tengamos, mas espacio ocuparemos. Para experimentar con el nuevo disco, le copié el CD completo de Novastorm, para ver si lo podía jugar sin tener que meter el CD. Con esto y otras cosas, logré ocupar el 90% del disco en menos de 3 horas, pero no dejó de impresionarme que al disco le pudiera copiar un CD-ROM completo. Casi 20 años después, me sorprende mucho poder comprar una memoria flash USB de 8GB en menos de $300 pesos. Es ocho veces la capacidad de aquel "enorme" disco de 1GB, a una décima parte del precio (en su tiempo costó alrededor de $3,000 pesos), sin mencionar que cabe en la bolsa de mi pantalón. La capacidad de los discos no ha dejado de aumentar en forma exponencial:



En fin, a lo que voy es que una vez más me estoy quedando sin espacio. Tengo un NAS de 1TB que muy pronto no va a ser suficiente. Entre música, películas y series ya solo me quedan alrededor de 100GB. Este NAS fue mi primera experiencia con almacenamiento en red, y resultó ser una maravilla en comparación con mi solución anterior de tener todo en discos USB externos. Usar un NAS como este, sin embargo, tiene varios problemas. El primero es que entre mas información almaceno, mas preocupante se vuelve tenerlo todo en un solo lugar. Toda esa información se puede perder en cualquier momento. No tengo la disciplina para estar haciendo respaldos, además de que hacer un respaldo completo representa un gasto adicional. Otro problema es que este dispositivo no otorga muchas prestaciones aparte de almacenamiento, y aunque hay formas de lograrlo, el hardware no da para mucho. Con estos puntos en consideración, decidí armar un servidor de archivos basado en Ubuntu, que además de funcionar como un NAS (samba, ftp), me sirva para esto:
  • Servidor de música accesible desde cualquier lugar utilizando Subsonic
  • Cliente de torrents con transmission
  • Servidor web
  • HTPC con XBMC o MythTV
  • Y lo mas importante de todo: almacenamiento con RAID basado en software
Después de analizar varias opciones, me decidí por esta configuración:
  • Tarjeta Madre Gigabyte P43-ES3G(6 puertos SATA)
  • Disco duro 40GB @ 7200RPM
  • 3 Disco duros de 1TB @ 7200RPM
  • Procesador Intel Core 2 Duo @ 2.93GHz
  • 2GB de RAM @ 800MHz
  • Tarjeta de red gigabit D-Link
Los 6 puertos SATA me dejan bien preparado para aumentar el espacio cuando sea necesario. El plan es empezar con 3 discos para poder crear un volumen de RAID 5. Este tipo de arreglo mantiene un buen balance entre redundancia y eficiencia de espacio. Próximamente estaré publicando mis experiencias armando este sistema.