Uno de los grandes cambios al pasar de Linux a Mac, es sin duda, el teclado. Y con ello vienen todas las combinaciones de teclas (shortcuts) a las que estaba acostumbrado.

Intenté varias cosas como

  • Aprender los shortcuts de cada sistema operativo
  • Utilizar el keymap de OSX en ambas plataformas. Para ello busqué la forma de mapear la tecla CMD (command/meta) a la tecla Super (Windows) en Ubuntu, pero no tuve éxito.
  • Mapear distintas configuraciones de teclas para que la distribución se pareciera a la del teclado de la Mac
  • Incluso pensé en comprar un teclado Mac y utilizarlo en Ubuntu, pero al parecer tampoco es del todo transparente.

Si utilizas IntelliJ Idea lo mejor que puedes hacer es utilizar el mismo “Keymap” en las 2 plataformas. Decidí utilizar el de “Eclipse” debido a que previamente usaba Eclipse como IDE primario y ya conocía bastantes combinaciones. Además es la que más se parece en ambos sistemas operativos.

Fuentes:
http://superuser.com/questions/246345/how-can-i-make-my-super-keys-windows-key-behave-more-like-ctrl-alt-shift-in-li
https://radu.cotescu.com/remapping-keys-in-ubuntu-14.04/
https://help.ubuntu.com/community/AppleKeyboard
http://stackoverflow.com/questions/21845209/remap-ctrl-alt-super-keys-in-ubuntu-13-10
https://www.jetbrains.com/idea/help/keyboard-shortcuts-you-cannot-miss.html

Anuncios

Puedes abrir una terminal desde el launcher o mediante spotlight. Si ejecutas un comando como java -version o git --version y no tienes estos programas instalados, te muestra un diálogo con la opción para descargar/instalar estas herramientas (en el caso de git te dará la opción de instalar Xcode, que de cualquier forma tendrás que instalar si vas a desarrollar aplicaciones)

Si instalaste java 7, y quieres utilizar intellij idea 13 o 14 te pide que instales la versión 6. Para utilizar java 7 con intellij idea modifica el archivo Info.plist. Para editarlo abre en Finder la carpeta de Aplicaciones y da clic derecho en intellij idea y selecciona “Show package contents” y busca el archivo mencionado. Cambia el valor de la llave JVMOptions->JVMVersion de 1.6* a 1.7*

http://stackoverflow.com/questions/13019199/how-do-i-run-idea-intellij-on-mac-os-x-with-jdk-7
http://blog.jetbrains.com/idea/2013/09/jdk7_compatibility/

Para facilitar la instalación de otras herramientas instala homebrew, puedes leer más acerca de homebrew aquí
Una vez instalado brew puedes instalar nodejs

Instalar postgresql

Para autocompletar los comandos en la terminal (presionando tab tab) es necesario instalar ‘bash-completion’

Para ejecutar scripts de inicio, configurar variables de ambiente, incluir rutas en el $PATH utiliza el archivo ~/.bash_profile. Si no existe crealo con el comando touch ~/.bash_profile y editalo con el comando open -a TextEdit ~/.bash_profile

http://superuser.com/questions/409501/edit-bash-profile-in-os-x

Lo que no me gustó

  • La distribución del teclado. No existe por ejemplo la tecla DEL, tienes que presionar fn + BACKSPACE para borrar el carácter delante del cursor. No encuentras la tilde ´~´ en el teclado (muy útil para hacer referencia al directorio ‘home’ del usuario en una terminal) tienes que presionar alt + ñ. No existen las teclas de inicio o fin (utiliza cmd + flecha_izuierda/flecha_derecha). Tampoco existen avanzar o retroceder página, utiliza cmd + flecha_arriba/flecha_abajo.
    Para seleccionar texto por palabra, en linux utilizaba ctrl + flecha en mac utilizas alt + flecha

http://superuser.com/questions/406356/how-to-make-a-tilde-on-a-spanish-keyboard-set-to-english

  • No asocia automáticamente la configuración de la red inalámbrica al punto de acceso, es decir, si tu configuración (IP, Proxy, DNS, Gateway, etc.) difiere entre la red inalámbrica de tu trabajo y la de tu casa, tienes que utilizar “Locations” (Ubicaciones) lo cual apesta porque tienes que seleccionar tu ubicación cada vez que, bueno, cambias de ubicación. En linux, esto es automático.

http://superuser.com/questions/341182/mac-network-locations-automatic-selection-by-available-network

  • No tiene un cliente por default para descargar torrents, tienes que instalar transmission. Para descargar un torrent mediante ‘magnet links’ en transmission, solo copia el enlace y pega cmd + v en la ventana de transmission.

  • En finder no aparece por ningún lado mi directorio “home”, puedes navegar a el presionando shift + cmd + h o en el menú “go -> home” y luego agregarlo a los favoritos en el sidebar presionando alt + cmd + t

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

Para comenzar un proyecto, de las primeras cosas que necesitamos es una base de datos. En ubuntu podemos utilizar postgresql.

Para instalar postgres basta con ejecutar el siguiente comando

sudo apt-get update
sudo apt-get install postgresql postgresql-contrib

Una vez instalado podemos conectarnos como el usuario postgres (super admin)

sudo -i -u postgres
psql

Una vez en el prompt de postgresql podemos ejecutar los siguientes comandos

\conninfo    # nos muestra información de nuestra conexión
\conn database_name    # cambiar la base de datos activa
\d    # lista los objetos de la base de datos
\dt    # lista las tablas de la base de datos
\q    # salir del prompt de postgresql

Ya fuera del prompt de postgresql podemos crear un usuario y su base de datos de la siguiente manera

createuser -D -A -P username
createdb -O username dbname

El primer comando crea un usuario sin privilegio de crear bases de datos (-D), ni agregar usuarios (-A) y nos preguntará la contraseña para el usuario (-P). El segundo comando crea la base de datos y asigna como propietario al usuario que especifiquemos.

Para conectarnos como un usuario diferente necesitamos hacerlo de la siguiente manera

psql -U username -h 127.0.0.1 database

Fuentes:
https://www.digitalocean.com/community/tutorials/how-to-install-and-use-postgresql-on-ubuntu-14-04
http://stackoverflow.com/questions/8420761/postgres-authentication-fails-when-try-to-login-with-different-unix-user
https://help.ubuntu.com/community/PostgreSQL#Managing_users_and_rights

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


Una vez creada tu aplicación móvil con ionic framework, lo más natural es probarla. Intenté hacerlo con un emulador pero no lo puedes ejecutar al mismo tiempo que otras máquinas virtuales. Así que decidí mejor probarlo en mi teléfono.

Para ello, primero es necesario activar el modo de depuración usb en tu teléfono. Si tienes una versión de Android igual o superior a la 4.2, ve a los ajustes del teléfono->acerca de y busca hasta el final el número de compilación (build number), toca 7 veces y se activará la opción progrmador. Regresa a los ajustes y ve a la opción de programador, activa la depuración usb.
Después, en ubuntu, crea un archivo llamado /etc/udev/rules.d/51-android.rules con el siguiente contenido, reemplazando 0bb4 por el id del proveedor de tu dispositivo, lo obtienes conectando tu teléfono y ejecutando lsusb, son los 4 carácteres antes de los dos puntos

SUBSYSTEM==”usb”, ATTR{idVendor}==”0bb4″, MODE=”0666″, GROUP=”plugdev”

guarda el archivo y agrega permisos de lectura con sudo chmod a+r /etc/udev/rules.d/51-android.rules

Desconecta y vuelve a conectar tu teléfono, te pedirá que aceptes una llave RSA para permitir el acceso de tu computadora, selecciona “aceptar siempre” y acepta. Verifica que puedes acceder a tu dispositivo ejecutando adb devices y debe aparecer en el listado.

Para probar tu aplicación en el dispositivo basta con ejecutar

ionic run android --device

Fuentes:

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: