Es conveniente mencionar la relación que presenta el uso de las tecnologías de
información y comunicación (TIC) con la música y los jóvenes. En la actualidad, los jóvenes
emplean diariamente las TIC para incrementar conocimiento, buscar información, relacionarse
con otras personas o para divertirse. En la música, las TIC influyen en la manera en que ésta se
crea, se produce y se difunde; éstas también han generado cambios que ofrecen gran cantidad de
opciones musicales, desde la composición hasta el consumo de la música, y que gracias a los
medios de comunicación han permitido la distribución musical masiva, inmediata y global

http://musica.rediris.es/leeme/revista/terrazasetal13.pdf

En la página oficial de spotify nos dice como debemos instalar el cliente de spotify en linux

  1. Agrega esta línea a tu lista de depósitos al # editar tu /etc/apt/sources.list

    deb http://repository.spotify.com stable non-free

  2. Si quieres verificar los paquetes descargados,
    necesitarás agregar nuestra clave pública

    sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 94558F59

  3. Ejecuta la aplicación - obtén la actualización

    sudo apt-get update

  4. ¡Instala Spotify!

    sudo apt-get install spotify-client

Recientemente quise instalarlo y me arrojó errores debido a que no localizaba el servidor repository.spotify.com

Al parecer esto se debe a algún problema con sus servidores DNS, para instalarlo debes utilizar http://repository-origin.spotify.com en vez de http://repository.spotify.com

Fuentes:
https://www.spotify.com/mx/download/previews/
http://community.spotify.com/t5/Help-Desktop-Linux-Mac-and/Spotify-0-9-11-for-GNU-Linux/td-p/842969/page/4

Anuncios

El tamaño máximo de un archivo que puedes almacenar en una USB (fat32) es de 2Gb (o 4Gb si estas utilizando LFS).

Si quieres copiar un archivo con un tamaño mayor, en linux, puedes hacerlo mediante el comando split, por ejemplo

split -b 2048 image.iso

que nos producirá una serie de archivos

image.isoaa
image.isoab
image.isoac
...

Después para juntarlos utilizamos el comando cat

cat image.iso* > ~/image.iso

El comando anterior no nos muestra un avance del progreso. Para ver el progreso podemos utilizar el comando pv, para instalarlo ejecuta sudo apt-get install pv y lo utilizas de la siguiente manera

cat image.iso* | pv -s $(du -cb image.iso* | grep total | awk '{print $1}') > ~/image.iso

Fuentes:
http://unix.stackexchange.com/questions/24630/whats-the-best-way-to-join-files-again-after-splitting-them
http://www.catonmat.net/blog/unix-utilities-pipe-viewer/
http://en.wikipedia.org/wiki/File_Allocation_Table#FAT32
http://unix.stackexchange.com/questions/41550/find-the-total-size-of-certain-files-within-a-directory-branch

Para probar tus aplicaciones móviles, el android SDK incluye un emulador. El problema es que no puedes utilizar este emulador si estas ejecutando alguna otra máquina virtual -en virtualbox, por ejemplo-
Al intentar ejecutar el emulador mientras ejecutas alguna máquina virtual aparecen errores como los siguientes

ioctl(KVM_CREATE_VM) failed: Device or resource busy
ko:failed to initialize KVM

[Emulator] error libGL.so: cannot open shared object file: No such file or directory
[Emulator] Failed to load libGL.so

Tiene algo que ver con la aceleración por hardware. En la documentación de Google especifica lo siguiente

If you use another virtualization technology in your Linux platform, unload its kernel driver before running the x86 emulator. For example, the VirtualBox driver program is vboxdrv.

Para hacer esto supuestamente ejecutas sudo /etc/init.d/vboxdrv stop pero si instalaste VirtualBox desde los repositorios en Ubuntu 14.04, ete archivo no existe. Supuestamente tendrías que ejecutar los siguientes comandos para tenerlo disponible

sudo apt-get install linux-headers-`uname -r`
sudo dpkg-reconfigure virtualbox-dkms  
sudo modprobe vboxdrv

Pero seguía sin existir el archivo, descubrí -sin embargo- que existe un archivo llamado /etc/init.d/virtualbox así que ejecute el comando /etc/init.d/virtualbox stop y detuvo efectivamente los drivers del kernel. Después de hacer esto ya pude iniciar el emulador pero ahora no podía iniciar la máquina virtual de VirtualBox.

Al final he decidido no utilizar el emulador y en su lugar utilizar un dispositivo físico para poder ejecutar mi máquina virtual y probar la aplicación móvil al mismo tiempo.

Fuentes:

Después de haber instalado un servidor LAMP, para depurar aplicaciones web, con el comando

sudo apt-get install lamp-server^

creé un enlace simbólico a una carpeta de mi directorio, /home/cirovladimir/Projects/websites/agenda que representa mi proyecto.

cd /var/www
sudo ln -s /home/cirovladimir/Projects/websites/agenda
Al intentar acceder desde un navegador a la URL

http://localhost/agenda

me arrojaba un error 403 – Forbidden, y en el log de apache el mensaje “Symbolic link not allowed or link target not accessible”

después de hacer una búsqueda exhaustiva y probar diferentes configuraciones. Llegué a esta página dónde se encontraba la respuesta.
El problema es que el directorio raíz, Projects, no tenía permisos ni de lectura ni de ejecución. Lo solucioné con el comando

chmod 755 -R /home/cirovladimir/Projects

Fuentes:
google search
stackexchange

Screenshot from 2013-10-15 08:38:37

Estamos probando JIRA junto con Stash para administrar nuestros proyectos y el código fuente.
Lo que me gustó de la integración con Stash es poder “cerrar” una incidencia abierta desde un commit.
No se que haya modificado en nuestro servidor, pero las incidencias no estaban siendo cerradas, sólo se encontraban en un status “done”. Para corregirlo tuve que modificar el flujo de trabajo que utilizaba el proyecto, agregando una “post-function” que actualizara el campo Resolución a las transiciones que derivaban en el status “done”.

Fuentes:
https://confluence.atlassian.com/display/JIRAKB/Resolutions+Are+Not+Set
https://confluence.atlassian.com/display/JIRAKB/How+to+Edit+the+Resolution+of+an+Issue
https://confluence.atlassian.com/display/JIRA/Configuring+Workflow#ConfiguringWorkflow-Addingatransition

SmartGwt especifica 2 tipos de errores: de validación e irrecuperables.

Los errores de validación se representan en JSON de la siguiente manera

    {    "response":
           {   "status": -4,
           "errors":
               {   "field1": [
                       {"errorMessage": "First error on field1"},
                       {"errorMessage": "Second error on field1"}
                   ]
               }
           }
    }

de acuerdo a la documentación un error irrecuperable se representa de la siguiente forma

    {"response": {"status": -1, "data": "Error message..."}}

Pero cuando utilicé un RestDataSource en un SelectItem y ocurría un error en el servidor, la petición se reintentaba de forma cíclica. La solución fue agregar la propiedad totalRows a la respuesta.

    {"response": {"status": -1, "data": "Error message...", "totalRows": 0 }}

Fuentes:
http://www.smartclient.com/smartgwt/javadoc/com/smartgwt/client/docs/ErrorHandling.html
http://www.smartclient.com/smartgwt/javadoc/com/smartgwt/client/data/RestDataSource.html
http://forums.smartclient.com/showthread.php?t=22975

Para organizar el código del cliente utilizo Overlay Types.

En un método intenté regresar un valor de tipo Integer, lo cuál me arrojaba una excepción de tipo IllegalArgumentException.

    public class Sala extends JavaScriptObject{
        public native final Integer getId()/*-{
            return this.id;
        }-*/; 

        public final String getNombre(){
            return JSOHelper.getAttribute(this, "nombre");
        }
        protected Sala() {
        } 

    }

esto es debido a que, en Javascript, el atributo ‘this.id’ es de tipo number y JSNI no puede hacer la conversión automáticamente.
Debemos realizar la conversión de la siguiente manera

    public native final Integer getId()/*-{
        return this.id ? @java.lang.Integer::valueOf(I)(this.id) : null;
    }-*/;

Fuentes:
https://code.google.com/p/google-web-toolkit/issues/detail?id=2972#c6
https://developers.google.com/web-toolkit/doc/latest/DevGuideCodingBasicsJSNI#methods-fields
http://docs.oracle.com/javase/1.5.0/docs/guide/jni/spec/types.html#wp16432