Planificar un ruta en GoogleMaps, cargarla en OSMAnd

OSMAnd+ (web/store) es genial, en particular porque es el único Software GPS que funciona offline. OSMAnd+ es Software Libre que utiliza los datos de OpenStreeMaps. OSMAnd+ es la versión de pago, OSMAnd es la versión gratuita. Con la versión de pago apoyas al proyecto, así que más que una compra hay que verlo como una donación o contribución, y en todo caso, la recomiendo plenamente.

Si bien el ruteo offline de OSMAnd+ es muy bueno, hay veces que me gusta planificar la ruta en GoogleMaps desde mi computadora, en particular si es muy larga o quiero que pase por determinados lugares. Acá describo como cargar una ruta hecha en GoogleMaps a nuestro OSMAnd+.

  1. Crear la ruta en GoogleMaps. Entrar a GoogleMaps, crear la ruta, y guardarla como KML. No voy a discutir ese proceso acá.kml
  2. Instala en tu computadora el Software GPSBabel.
    sudo apt-get install gpsbabel
  3. Convierte el archivo KML a un archivo GPX:
    gpsbabel -i kml -f miarchivo.kml -o gpx -F miarchivo.gpx
  4. Conecta tu dispositivo Android a la computadora, ya sea por medio de una cable USB o de algún otro medio que permita escribir en la memoria del mismo.
  5. Copia el archivo GPX a:
    /osmand/tracks/miarchivo.gpx
  6. Inicia, o reinicia OSMAnd. Asegúrate de reiniciarlo, si es necesario termina el proceso desde el gesto de tareas. Entra a:
    Settings -> Data Management -> GPX Data.
    Dejando presionado la entrada podrás desplegar la ruta en OSMAnd.

Espero les sirva. Saludos.

Etiquetado , , , , ,

Use a wireless bluetooth speaker on Ubuntu 12.04

The integrated audio on my computer is the worst. So I recently bought a JBL Wireless Bluetooth Speaker, and while get it working with my Android tablet was straightforward, I wasn’t that lucky with my Ubuntu 12.04 with Gnome 3 laptop.

The pairing with my computer was successful, but I was unable to reproduce any sound. My problem is that this device, and many new devices of this type, allows not only allow Audio Sink mode (A2DP), but also Headset mode. Headset mode is more complex because it can handle calls, audio sink (speakers) and audio source (microphone). By default, my device connected as Headset, and I’m speculating, but it seems that doesn’t know how to handle this profile. This is how I fixed it:

First, pair the device. Go to Bluetooth system applet, select Bluetooth settings and add a new device. How to pair the device is out of the scope of this article.

Once paired, install the Blueman manager, it allows to setup the device. Default Ubuntu system dialog for Bluetooth lack the advanced options we require.

sudo apt-get install blueman

Launch the applet:

blueman-applet

The applet will appear in bottom bar on Gnome 3. Click it and select Devices…

Select your device, and go to menu:

Device -> Setup

Select A2DP profile (instead of the Headset profile) and save. Now, the device should appear available on the Sound Configuration dialog. Open the Ubuntu sound options and select your device. Now you can close the Blueman applet and the device will work from now on, including that each time your device is paired the audio will be redirected to it.

Blueman

Etiquetado , , ,

Ubuntu 12.04 LTS and Nvidia GeForce 7025

If you have the GeForce 7025 integrated card then you have problems with Ubuntu 12.04 LTS. This is how to get a usable setup with 3D acceleration.

Boot to the lastest kernel you have and update your system:

sudo apt-get update && sudo apt-get upgrade

Then restart the machine and boot using the latest kernel.

If you have already installed some drivers:

sudo apt-get purge nvidia-common nvidia-*

Add Ubuntu X updates and install latest driver:

sudo add-apt-repository ppa:ubuntu-x-swat/x-updates
sudo apt-get update && sudo apt-get upgrade
sudo apt-get install nvidia-current

Once installed, delete the X Window Server configuration file. Don’t worry, it will be regenerated. This is important.

sudo rm /etc/X11/xorg.conf

Finally, restart the computer and get into the BIOS. Find the Chipset configuration and lower the Shared Memory to 128MB (in my case from auto to 128MB), yep, not optimal, not pretty, but otherwise your graphics will be slow as hell.

Now boot to the latest kernel. That’s it.

EDIT: If you get in the dark after a kernel upgrade, you need to rebuild the Nvidia kernel modules installed:

  1. Reboot in the latest kernel. If you have no video at all you can CTRL+ALT+F1 to get into a terminal.
  2. Make sure you have the kernel headers for your current version:
    sudo apt-get install linux-headers-`uname -r`
  3. Reconfigure nvidia-current package:
    sudo dpkg-reconfigure nvidia-current
  4. Reboot:
    sudo reboot

Hope it helps.

Etiquetado , , ,

“inputenc Error: Unicode char \u8″ error in LaTeX/Nested

The problem is quite common when you copy text from other sources like PDF documents into your source document. What happens is that there is some UTF-8 invisible / whitespace that you cannot see and that LaTeX is unable to interpret.

You can fix your document using sed command line program to replace all those invisible characters with nothing:

sed -i 's/\xe2\x80\x8b//g' [your_document].tex

Or in case of Nested files:

sed -i 's/\xe2\x80\x8b//g' [your_document].t2t

Fix for Nested will be published with Nested 2.0 so documents with whitespace UTF8 characters get automaticly converted.

Etiquetado ,

Configurar CSipSimple para CallMyWay (VoIP Costa Rica)

CallMyWay es una empresa costarricense proveedora de servicios VoIP (voz sobre IP). CSipSimple es Software Libre para Android que nos permite hacer llamadas por Internet vía un proveedor de servicios.

Requisitos:

  • Teléfono inteligente o algo parecido. En mi caso un Samsung Galaxy Player 5.0.
  • Sistema operativo Android. En mi caso Gingerbread 2.3.5.
  • Instalada la aplicación CSipSimple y Codec Pack for CSipSimple.
  • Cuenta en CallMyWay (proveedor VoIP). Tener a mano usuario y contraseña.
  • Estar conectado a Internet (ah pos si…).

Una vez instalada la aplicación debemos ingresar al panel de cuentas:

  • Add Account -> Generic Wizards -> Basic.
    • Account name: CallMyWay
    • User: [su número de usuario]
    • Server: sip2.callmyway.net
    • Password: [su clave]

Ok. Cuando intenten habilitarla si sale “Internal Server Error”, se ingresa a la configuración:

  • Network:
    • Enable STUN: Check.
  • Media -> Codecs:
    • G729 8 kHz.

Ok. Con ésto ya podrían realizar llamadas. Hasta la fecha no puedo recibir llamadas, pero sigo en eso.

Etiquetado , ,

Prevenir montaje y ocultar particiones en Ubuntu

Hay particiones que uno preferiría evitar que usuarios normales NO puedan montarlas, por ejemplo, particiones de sistema. También existe la posibilidad de que existan particiones que NO nos interesa montar o que se muestren en el navegador de archivos (Nautilus). Un ejemplo muy común podría ser la partición de “Sistema” que crean nuevos sistemas operativos MS Windows en caso de entornos de doble booteo. Para prevenir el montaje por otro usuario diferente de root, y para eliminar esa partición de los medios disponibles en Nautilus, se puede configurar el /etc/fstab de la siguiente manera:

UUID=A70889A1788980GG /mnt/Hidden1 ntfs noauto,umask=222 0 0

Para saber el UUID y tipo de una partición se puede ejecutar:

sudo blkid

Es importante definir el punto de montaje dentro de /mnt/ de forma que sólo root pueda montar la partición. El noauto también es importante para que no monte la partición al inicio. Al agregar dicha línea al fstab Nautilus ya no mostrará dicha partición como opción de montaje.

Etiquetado ,

Ocultar directorios lost+found y otros

En la documentación de Nautilus (el navegador de archivos de Ubuntu) me encuentro con lo siguiente.

Nautilus no muestra:

  1. Archivos ocultos, cuyo nombre comienza con un punto (.)
  2. Archivos de copia de seguridad, cuyo nombre termina con una tilde (~).
  3. Los archivos que se enumeran en el archivo .hidden de dicha carpeta.

La carpeta lost+found, que se crea en la raíz de cada partición cuando es montada y verificada, es una carpeta en la que se almacena todo archivo encontrado en caso que haya un desmontaje indebido (por ejemplo, se va la electricidad) y el sistema de archivos no quede “cerrado”. Sin embargo, en el caso de un partición multimedia, por ejemplo, o en caso de particiones en las que se utilice la raíz como primer nivel para organizar los archivos personales, es “incomodo” estar viendo constantemente la carpeta lost+found. Si tomamos en cuenta el punto 3 anterior podemos:

cd /media/[dispositivo]/
echo "lost+found" >> .hidden

Refrescamos la vista en Nautilus (F5) y ya no veremos la carpeta en cuestión (o cualquiera que queramos ocultar).

Etiquetado , ,

Instalar VirtualBox con soporte para USB en Ubuntu 12.04 LTS

1) Instalar VirtualBox

sudo apt-get install virtualbox virtualbox-dkms

El primero instala el programa y el segundo los módulos del kernel para ser recompilados automáticamente (DKMS: Dynamic Kernel Module Support), de forma que no sea necesario recompilar los módulos de VirtualBox en cada actualización del kernel. En Ubuntu 12.04 LTS la versión en repositorios es la 4.1.12.

Se requiere instalar en huéspedes los guest additions puede instalar el ISO para ser montado en los mismos con:

sudo apt-get install virtualbox-guest-additions-iso

2) Agregar extensiones propietarias

VirtualBox es Software Libre bajo la GPL desarrollado por Oracle. Sin embargo el soporte para USB es una extensión propietaria bajo una licencia diferente, la PUEL (VirtualBox Personal Use and Evaluation License). Para instalar el soporte USB se debe descargar dicha extensión desde la página de VirtualBox: https://www.virtualbox.org/wiki/Downloads

Para la versión incluida en los repositorios oficiales es ésta.

Al descargar el archivo .vbox-extpack se hace doble click en el mismo y se abrirá VirtualBox. Se acepta la licencia y se ingresa la clave de root para su instalación.

3) Incluir usuarios al grupo de VirtualBox

Todos los usuarios que deseen capturar dispositivos USB en sus máquinas virtuales deben pertenecer al grupo vboxusers. Para agregar el usuario actual al grupo se ejecuta:

sudo usermod -aG vboxusers $USER

Se puede confirmar los grupos a los que pertenece el usuario con el comando id, por ejemplo:

$ id
uid=1000(cjenkins) gid=1000(cjenkins) groups=1000(cjenkins),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),109(lpadmin),124(sambashare),125(vboxusers),1001(bumblebee)

SE DEBE SALIR de la sesión de escritorio y volver a entrar para que los cambios de grupo surtan efecto.

4) (Opcional) Actualizar versión a 4.2

Para actualizar a la versión 4.2 se debe agregar la clave y repositorio de VirtualBox:

wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add -
sudo sh -c 'echo "deb http://download.virtualbox.org/virtualbox/debian $(lsb_release -sc) contrib" > /etc/apt/sources.list.d/virtualbox.list'
sudo apt-get update

Seguidamente se instala la versión 4.2:

sudo apt-get install virtualbox-4.2

Seguramente es necesario instalar la versión de las extensiones propietarias para ésta versión en particular.

Etiquetado , , ,

Cómo configurar Ubuntu para disco de estado sólido (SSD)

HDD-vs-SSD

El siguiente tutorial tiene por objetivo configurar Ubuntu 12.04 LTS después de ser instalado en o bien utilizar un disco de estado sólido. La SSDs son muy diferentes de los HDs, no tienen discos magnéticos rotatorios y son muchísimo más rápido (no me lo creía hasta que instalé uno en mi computadora). Existe muchos tutoriales de éste tipo, pero son algo antiguos y realizan acciones que o ya no son necesarias y que según mi criterio no valen la pena.

Tomar en cuenta que éste artículo aplica para sistemas de archivos ext4. En mi caso mi SSD es un OCZ Technology 256GB Agility 4 Series SATA 6Gb/s 2.5-Inch.

Se realizarán las siguientes acciones:

  1. Habilitar TRIM.
  2. Desactivar registro de acceso de los archivos.
  3. Ajustar el planificador de disco.

1) Habilitar TRIM

TRIM es una instrucción que le permite al sistema operativo comunicarle a un disco de estado sólido (SSD) qué bloques de datos ya no están en uso. En sistemas de archivos tradicionales el disco duro nunca sabe qué información es borrada, pues el sistema de archivo la marca como espacio disponible en su estructurada de datos en RAM. Al poder ser notificado de bloques borrados, el firmware del SSD puede balancear la escritura de información en otras celdas de forma que pueda prolongar la vida útil del mismo. TRIM está disponible en Linux desde la versión 2.6.33 pero hay que habilitarla manualmente para cada partición en la que se desee utilizar. Para ello se requiere agregar la opción discard en las opciones de montaje de una partición en el archivo fstab.

En mi caso, las particiones de root y home quedan de la siguiente forma:

$ cat /etc/fstab

# / was on /dev/sda3 during installation
UUID=[MI-UUID] / ext4 discard,errors=remount-ro 0 1
# /home was on /dev/sda4 during installation
UUID=[MI-UUID] /home ext4 discard,defaults 0 2

2) Desactivar atime

Access Time (o atime) es un campo definido en el sistema de archivos que indica la fecha del último acceso de un archivo. Si, suena genial, pero es terrible. Es decir, para cada acceso de lectura a un archivo… hagamos una escritura a disco :S Es ridículo. Más sobre el problema de tener activado la actualización del atime (por defecto es relatime, parecido) pueden leer este link, este y este.

En el caso particular de un SSD es interesante desactivar la actualización del atime porque prolonga la vida del SSD al no tener que estar escribiendo información irrelevante para cada acceso de lectura. En el caso de los HDs es interesante desactivar la actualización del atime porque elimina el overhead importante de tener que realizar una escritura por cada lectura. Tiene consecuencias desactivar la actualización del atime? Si, programas como mutt pueden no funcionar… y, ya, este es el único ejemplo que conozco. Yo no uso mutt, por lo que no hay problema para mi.

Para desactivar la actualización del atime, tanto para carpetas como para archivos se debe agregar la opción noatime a las opciones de montado de cada una de las particiones en las cuales queremos desactivarlo. En mi caso:

$ cat /etc/fstab

# / was on /dev/sda3 during installation
UUID=[MI-UUID] / ext4 noatime,discard,errors=remount-ro 0 1
# /home was on /dev/sda4 during installation
UUID=[MI-UUID] /home ext4 noatime,discard,defaults 0 2

3) Ajustar el planificador de disco

El planificador de disco es el componente del sistema operativo que se encarga de calendarizar y ordenar las solicitudes de escritura y acceso a disco. Existen diferentes criterios para organizar la escritura a un disco. Por defecto, Linux utiliza el planificador llamado CFQ (Completely Fair Queuing). El CFQ, entre otros aspectos, asigna un margen de tiempo para el cual cada proceso puede enviar solicitudes de escritura a disco. En disco magnéticos tradicionales, esto permite que el rendimiento de acceso mejore. En el caso de un SSD, dado que el acceso es de tiempo prácticamente fijo, similar al RAM, este planificador no tiene sentido. Vamos a reemplazarlo por el planificador noop, o bien deadline. Para información de cada planificador disponible puede visitar este link.

Para verificar qué planificador está siendo utilizado para el disco sda (o cualquier disco) se puede ejecutar el comando:

$ cat /sys/block/sda/queue/scheduler
noop deadline [cfq]

Se mostrará el planificador en uso entre backets. Para cambiar el planificador en tiempo de ejecución se puede ejecutar el comando:

sudo sh -c "echo deadline > /sys/block/sda/queue/scheduler"

Para hacer este cambio permanente se edita el archivo /etc/rc.local y se agrega la una instrucción antes del exit 0 de la siguiente forma:

echo noop > /sys/block/sda/queue/scheduler
exit 0

Espero les sirva.

Etiquetado , , , ,

Steam for Linux on Optimus enabled computer running Ubuntu 12.04 64bits

steam-linux

Install Bumblebee

First step is to make Optimus work. We will use a Software called Bumblebee for that.

1) Install Bumblebee and the nVidia propietary driver

sudo add-apt-repository ppa:bumblebee/stable
sudo add-apt-repository ppa:ubuntu-x-swat/x-updates
sudo apt-get update
sudo apt-get install bumblebee bumblebee-nvidia

Commands explained:

  • Add Bumblebee PPA (Personal Package Archive) to Ubuntu so you can download Bumblebee.
  • Add the drivers updates PPA so you can download the lastest nVidia driver.
  • Update the repository index with the two newly added sources.
  • Install Bumblebee and the package to support nVidia Optimus using the proprietary nVidia driver.

2) Reboot

Seriously.

3) Test Bumblebee

glxspheres

You should get something like this:

OpenGL Renderer: Mesa DRI Intel(R) Sandybridge Mobile
58.335930 frames/sec - 56.737059 Mpixels/sec
57.184303 frames/sec - 55.616995 Mpixels/sec

That is, you are rendering some graphics using the low power video card. Now:

optirun glxspheres

You should get something like this:

OpenGL Renderer: GeForce GT 525M/PCIe/SSE2
108.236036 frames/sec - 105.269502 Mpixels/sec
111.096688 frames/sec - 108.051750 Mpixels/sec
115.719165 frames/sec - 112.547535 Mpixels/sec

That is, you are now rendering some graphics using the high power video card.

Install Primus

The problem with optirun is the use of VirtualGL. VirtualGL has a huge overhead and thus impact on the performance. For a more technical description check this link: http://www.webupd8.org/2012/11/primus-better-performance-and-less.html

There is another alternative: Primus. Primus runs on top of Bumblebee and improves performance a lot.

1) Install Primus

sudo add-apt-repository ppa:zhurikhin/primus
sudo apt-get update
sudo apt-get install primus

Commands explained:

  • Add Primus PPA (Personal Package Archive) to Ubuntu so you can download it.
  • Update the repository index with the newly added sources.
  • Install Primus.

2) Test Primus

vblank_mode=0 primusrun glxspheres

You should get something like this:

OpenGL Renderer: GeForce GT 525M/PCIe/SSE2
214.447849 frames/sec - 208.570262 Mpixels/sec
220.159208 frames/sec - 214.125085 Mpixels/sec
220.226968 frames/sec - 214.190987 Mpixels/sec

Yeah. That’s a huge performance boost.

(Optional) Install nVidia experimental drivers 310

This are supposed to even double the performance of the nVidia card.

1) Install new driver

sudo apt-get install nvidia-experimental-310 nvidia-settings-experimental-310

2) Configure Bumblebee and Primus

Just follow the instructions here:

http://www.webupd8.org/2012/12/use-nvidia-experimental-drivers-310.html

When finished, RESTART. Seriously, you need to restart the X Window server.

3) Test new driver

vblank_mode=0 primusrun glxspheres

You should get something like this:

OpenGL Renderer: GeForce GT 525M/PCIe/SSE2
272.052255 frames/sec - 264.595847 Mpixels/sec
270.377649 frames/sec - 262.967139 Mpixels/sec
270.206138 frames/sec - 262.800328 Mpixels/sec

Yeah. That’s another huge performance boost.

Install Steam

1) Install Downloader

wget http://media.steampowered.com/client/installer/steam.deb
sudo apt-get install gdebi-core
sudo gdebi steam.deb

Commands explained:

  • Download oficial Steam downloader package.
  • Install GDebi to handle dependencies of local Debian packages.
  • Install the Steam downloader.

2) Run Steam

Well, do that. Steam will download and install the real Steam client in the
folder ~/.local/share/Steam.

3) Temporaly fix bug #312 “Failed to load steamui.so”

steam-error

This seem to happen on every 64bits OS. Full bug report here:

https://github.com/ValveSoftware/steam-for-linux/issues/321

Solution:

sudo nano /etc/ld.so.conf.d/steam.conf

Add next two lines to file:

/usr/lib32
/usr/lib/i386-linux-gnu/mesa

Then execute:

sudo ldconfig

Now you should be able to run Steam. Login with your account, confirm the new computer, etc, etc. Close Steam: Steam > Exit.

Install Flash for Steam

  1. Make sure you have libxt6:i386 installed.
  2. Go to your Home folder, unhide hidden files (Ctrl-H) and go to .local/share/Steam/ubuntu12_32/.
  3. Create a folder called “plugins”.
  4. Download Flash player plugin for Linux 32bits from:
    http://get.adobe.com/flashplayer/otherversions/
  5. Select the “.tar.gz” download. Open the downloaded file and extract file called libflashplayer.so to the plugins folder created before.

This will make Flash movies in the store work, but slow as hell in some situations.

In commands:

sudo apt-get install libxt6:i386
mkdir -p ~/.local/share/Steam/ubuntu12_32/plugins
wget -qO- https://get.adobe.com/de/flashplayer/completion/?installer=Flash_Player_11.2_for_other_Linux_%28.tar.gz%29_32-bit | awk -F\' '/location.href/{print $2}'| sed s/http:/https:/ | wget -i- -qO- | tar zxvC ~/.local/share/Steam/ubuntu12_32/plugins libflashplayer.so

(Thanks to user Kano from the Steam forums and Alessio Gaeta for those commands).

Test that videos are working. Again close Steam: Steam > Exit.

(Optional) Move Steam library to another partition/HD

If like me you have a hard drive or partition specific for Steam or multimedia, you can move your Steam installation and games to that drive. To do so:

Move the library and installation folder

mv ~/.local/share/Steam /media/<your-device>/Steam

In my case:

mv ~/.local/share/Steam /media/Black/GNU-Linux/Steam
cd ~/.local/share/
ln -s /media/<your-device>/Steam/ .

Now try restarting Steam.

(Optinal) Configure NTFS partition

If you want to have the Steam library on a NTFS partition make sure that the volume is being mounted with your uid and gid AND files needs to be executable by you or your group, if not, Steam will not even start, and if starts, some games will not work.

If you are getting the dialog that Steam cannot find the library and you have an NTFS partition this should be the main cause.

Note: If setting the execution bit for all the files is too much for you, you can configure the NTFS partition to allow POSIX permissions like ext2/3/4. Is much more advanced (not that much), for more information about this option see:

For removable devices

To configure those settings to ONLY that drive and partition, install the utility udisks-glue and configure it:

sudo apt-get install udisks-glue
nano ~/.udisks-glue.conf

And put:

filter steam {
    optical = false
    partition_table = false
    usage = filesystem
    type = ntfs
    uuid = 40DC5EC613CFD8EB
}

match steam {
    automount = true
    automount_options = { 'dmask=000', 'fmask=000' }
}

Change the uuid token with the UUID of your drive. To know it type once is mounted:

sudo blkid

Finally make udisks-glue to start when the user logs in:

nano ~/.config/autostart/udisks-glue.desktop

And put:

[Desktop Entry]
Type=Application
Name=udisks-glue
Exec=udisks-glue
Comment=udisks-glue is a daemon that can perform user-configurable actions when a certain udisks event is detected
X-GNOME-Autostart-enabled=true

Note: Thas was tested on a NTFS USB 3.0 attached 7200rpm/32MB 3Gbps 1TB drive. My laptop has a 256GB internal SSD.

For static devices

Just edit the file /etc/fstab like this:

UUID=40DC5EC613CFD8EB /media/Black ntfs-3g defaults,uid=1000,gid=1000,dmask=000,fmask=000 0 0

Change the UUID and the mount point. To know them type once is mounted:

sudo blkid

Run Steam games using Primus

As you may have deducted, when you run Steam you’re running it with the low power graphics card. You can launch Steam with your high power graphic card using primusrun:

primusrun steam

This is only useful if you’re planning to use the Big Picture Mode. If not, don’t, is not necessary at all. What is absoluty necessary is to run some games with your high power nVidia graphics card. To do so, do the following.

(Relatively official instructions from http://steamcommunity.com/app/221410/discussions/6/846939854395110175/)

1) Add the OPTIMUS_PREFIX variable to your environment

sudo sh -c 'echo OPTIMUS_PREFIX=\"primusrun\" >> /etc/environment'

2) Logout and login from you session

Seriously. Desktop session, not Steam session. Steam is closed.

3) Configure each game you want

For each game you want to launch using you high powered nVidia card do:

  1. Select a game from the Library page of the Steam client, right-click, and
    select Properties.
  2. Click the SET LAUNCH OPTIONS button and specify $OPTIMUS_PREFIX %command%
    for the command line.
  3. Save your changes.

Post created using Nested: http://nestededitor.sourceforge.net/

Etiquetado , , , ,
Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.