martes, 6 de junio de 2017

Android Studio 3.0 - AAPT2 compile failed: invalid dimen

[Actualización: Este error está solucionado en la versión final de Android Studio 3.0]

Después de actualizar a la versión experimental de Android Studio 3.0 (Canary) se produce un error que no permite compilar. El error es el siguiente:

AAPT2 compile failed: invalid dimen 

Aparentemente, en aquellos equipos que tienen configurado la coma como separador de decimales en lugar de punto se produce este error.
En mi ordenador, LC_NUMERIC esta configurado como es_ES, es decir, para castellano.

viernes, 17 de marzo de 2017

Como instalar un repositorio Git

Aunque varios servicios online permiten la creación de repositorios privados, a veces puede ser conveniente instalar Git en un ordenador y dar servicio a usuarios que se conecten a el.

En este tutorial se va a mostrar como configurar Git en un servidor y acceder mediante SSH. Todos los comandos se realizan en un terminal de Linux y desde el ordenador cliente. El procedimiento es el siguiente:

Configuración del servidor Git:
ssh usuario@servidor.com ## Previamente ha de existir el usuario en el servidor
cd /home/usuario/
mkdir demoGit
git init --bare ## Inicializa Git

Configuración del cliente:
git clone ssh://demo@servidor.com:/home/demo/demoGit
cd demo/
git status -s

Primer commit desde el cliente
touch TestFile.txt
echo "Texto de prueba" > TestFile.txt
git add TestFile.txt 
git commit -m "Primer commit"
git push

Comprobación del repositorio
mkdir testgit
cd testgit
git clone ssh://usuario@servidor.com:/home/demo/demoGit
git log

lunes, 13 de marzo de 2017

Acceso a una maquina virtual de Virtualbox por red

A veces es interesante crear una maquina virtual y acceder a ella desde el ordenador desde donde se ejecuta. Esto nos puede servir para poder conectarse mediant SSH o hacer ping.
Para ello se ha configurar una conexión de red de tipo "Adaptador puente". A continuación en la maquina virtual, la red se ha de configurar con DHCP automático.



domingo, 27 de noviembre de 2016

Guía de instalación de drivers propietarios NVIDIA en Fedora 25

Hasta la versión 25 de Fedora, he utilizado los drivers propietarios de NVIDIA de RPM Fusion. Son sencillos de instalar y se van actualizando automáticamente.

Al ser mi tarjeta gráfica algo antigua (NVIDIA-GT-240) utiliza los drivers  "legacy" de NVIDIA. Es decir, NVIDIA solo se compromete a actualizar los driver para hacerlos compatibles con las nuevas versiones del servidor XOrg, no a nuevas funcionalidades  y solo hasta finales de 2019. Las ultimas versiones de los drivers pueden verse aquí .

Al actualizar a Fedora 25, no se pueden instalar los drivers de la version 340.XX de RPM Fusion ya que la versión de Xorg instalada por Fedora es la versión Xorg-server-1.19-RC-2 (Release Candidate). NVIDIA solo da soporte y actualizaciones a la versión final del servidor. La alternativa es utilizar el driver libre Nouveau. Aunque se puede utilizar para salir de apuro al permitir utilizar el ordenador, le falta buen soporte para la aceleración gráfica 3D y en mi caso, es algo inestable. De vez en cuando el sistema se cuelga teniendo que reiniciar.

La solución mostrada en este tutorial es hacer un downgrade a la versión antigua de Xorg-1.18, eliminar el driver Nouveau e instalar el driver binario propietario de NVIDIA.

lunes, 18 de julio de 2016

Como reemplazar Nautilus (Files) con Nemo en Gnome 3

En GNOME 3, el gestor de archivos por defecto es GNOME Archivos. No es un gestor que me guste y prefiero utilizar Nemo (de Linux Mint). Para evitar que GNOME Archivos siga gestionando los iconos del escritorio, no hace falta desinstalarlo. Con indicarle a GNOME que utilice Nemo es suficiente.

Una vez instalado Nemo mediante el gestor de paquetes, se abre un terminal y se escriben los siguientes comandos:
$ xdg-mime default nemo.desktop inode/directory application/x-gnome-saved-search 
$ gsettings set org.gnome.desktop.background show-desktop-icons false 
$ gsettings set org.nemo.desktop show-desktop-icons true 

Para comprobar que gestor es el que se está utilizando:
$ xdg-mime query default inode/directory 

En el caso que se quiera volver a usar Nautilus como gestor por defecto:
$ xdg-mime default nautilus*.desktop inode/directory application/x-gnome-saved-search 
$ gsettings set org.nemo.desktop show-desktop-icons false 
$ gsettings set org.gnome.desktop.background show-desktop-icons true

Si el texto de los iconos del escritorio no se puede leer bien, se puede cambiar el color editando el siguiente archivo:  ~/.config/gtk-3.0/gtk.css
Por ejemplo, para cambiar el color del texto a blanco, se ha de añadir las siguientes líneas al archivo gtk.css

    .nemo-desktop.nemo-canvas-item {
      color: #FFFFFF;
      text-shadow: 1px 1px @desktop_item_text_shadow;
    }

martes, 5 de julio de 2016

Instalación de Geoserver en Docker

Hace unos días encontré los archivos de mi proyecto final de carrera. Consistía en una aplicación web programada en JavaScript que usaba Geoserver y la API de Google Maps. La aplicación permitía dibujar un conjunto de puntos, líneas y áreas sobre un mapa de Google Maps y posteriormente guardarlas mediante WFS-Transaccional en Geoserver.

Para poder usarla, se ha de instalar como una webapp en Geoserver. Así que pensé que seria interesante instalar Geoserver en un contenedor Docker.

viernes, 1 de julio de 2016

Cambiar los colores de Logcat en Android Studio

Una forma de detectar algún error mientras se desarrolla en Android Studio es vigilar  la salida de Logcat. En esta ventana se muestran diferentes tipos de mensaje pero el esquema de colores es muy parecido y hace difícil distinguirlos. Para cambiarlos se ha de acceder a los ajustes de Logcat.

Se puede acceder mediante File -> Settings y a continuación en:
Editor -> Color & fonts -> Android Logcat

Click en "Save As..." para guardar el esquema de colores actual y darle un nombre nuevo.
Se ha de desmarcar "Use inherinted attributes" para poder cambiar el estilo de texto. Se puede modificar tanto el texto y el color de fondo como el estilo de la fuente y añadir algunos efectos.

Estilo por defecto:

Estilo modificado:

miércoles, 16 de septiembre de 2015

Configuración de Atom para Python

(Actualización 2017-07-24)
Según esta noticia en Hacker News (https://news.ycombinator.com/item?id=14790458), una compañía llamada Kite ha adquirido el código de minimap y autocomplete plugin for Python. El problema es que han modificado los plugins para mostrar anuncios promocionales sin anunciarlo de forma clara.
Por otra parte, en el plugin de autocompletado tampoco está demasiado claro como analiza el código para mostrar las sugerencias. En principio sube el código fuente a los servidores donde se analiza y se muestran las sugerencias de autocompletado. Las versiones antiguas usaban un motor de análisis local (Jedi), sin enviar datos a los servidores de Kite. En las preferencias del plugin, se puede desactivar Kite.

Mas información en los enlaces siguientes.

Minimap: https://github.com/atom-minimap/minimap/issues/588
Minimap-plus: Fork de minimap sin los añadidos de Kite. https://github.com/mehcode/atom-minimap-plus
Autocomplete: https://github.com/autocomplete-python/autocomplete-python/issues/308

(Actualización 2017-07-28)
Después del revuelo formado, la compañía parece que quiere hacer bien las cosas.
https://kite.com/blog/responding-to-minimap-autocomplete-issues
--------------------------------------------
Atom es el editor creado por Github y fácilmente adaptable mediante plugins. A continuación se explica como adaptarlo para usarlo como editor de Python en GNU/Linux (en este caso  Fedora 22 ).

En primer lugar se ha de descargar Atom de su pagina oficial. Una vez descargado e instalado, se puede crear un archivo Python mediante el comando:

$ atom archivo.py

Esto abrirá el nuevo archivo en el editor con resaltado de sintaxis y Atom usara las plantillas predefinidas para Python. Por ejemplo para añadir una nueva función al archivo, se puede escribir "de" y automáticamente se sugieren dos funciones a elegir.




viernes, 28 de agosto de 2015

Tareas despues de instalar Fedora 22

Hace poco reinstale Fedora 22 desde cero en una partición limpia. Aunque viene bastante bien ajustada, se pueden hacer varios cambios para mejorar su uso instalando algunos programas que no están instalados por defecto.

jueves, 25 de junio de 2015

Escritura de etiquetas EXIF

El nuevo servicio de Google Photos permite realizar una copia de seguridad de las imágenes de nuestro móvil de forma automática. Desde la misma pagina web también se pueden subir fotos antiguas o bien imágenes que nos envían por mensajería y no están incluidas en la copia de seguridad.

Una vez en Google Photos, las imágenes se ordenan por la fecha y la hora que se tomaron. La información que usa para ordenarlas es la etiqueta EXIF que incluyen las imágenes y no el nombre de la imagen. Si las imágenes no tienen información EXIF, se ordenaran según el día en que fueron subidas a Google Photos. Esto puede pasar cuando se envían fotos por algún programa de mensajería o si se han eliminado las etiquetas EXIF.

lunes, 1 de septiembre de 2014

Mientras se programa conviene tener la documentación a mano para resolver las posibles dudas y los parámetros de los diferentes métodos. Android Studio permite mostrar un cuadro flotante con la documentación de un método en concreto. Para ello se ha de situar el cursor del ratón sobre el método que nos interese y a continuación pulsar CONTROL+Q.

lunes, 4 de agosto de 2014

Error con GConf daemon

A veces algunas aplicaciones escritas en GTK en Gnome 3.10 no se inician o dan error cuando se inician y se cierran automáticamente.
No es un error continuo (ni exclusivo de esta versión) y se produce de forma aleatoria y en algunas aplicaciones. Si se inician estas aplicaciones que dan error desde un terminal muestran el siguiente el error:

“glib.GError: No se pudo contactar con el servidor de configuración:
Error de D-Bus: El demonio de GConf se está apagando en este momento.”

jueves, 6 de febrero de 2014

Captura de vídeo en Android 4.4 KitKat

En la última versión del SDK de Android (4.4 ó KitKat) se ha añadido la capacidad de realizar un screencast o grabación de video de la pantalla del móvil. El archivo se genera en formato MP4 con un tiempo máximo de grabación de 3 minutos. Estos videos se pueden usar para explicar alguna característica o para presentaciones de marketing.

martes, 8 de octubre de 2013

Como usar ActionBarCompat

Aunque ActionBarSherlock  es una gran librería de desarrollo, nació con fecha de caducidad ya que su creador (Jake Wharton )  la ideó como una librería temporal hasta que Google sacara su librería nativa.
Hace unos meses, el equipo de Android presentó la versión 7 de Android Support Library que incluye ActionBarCompat de forma que las aplicaciones desde la versión 2.1 (API 7) de Android pueden usar ActionBar.

martes, 23 de julio de 2013

Uso de ffmpeg para capturar un video del escritorio en Linux

A veces interesa realizar una captura en vídeo de lo que ocurre en el escritorio, por ejemplo para explicar algo a otro usuario. Hay programas especializados, pero una forma rápida de hacerlo es con FFmpeg.Una vez instalado FFmpeg y desde un terminal, se escribe el siguiente comando:

ffmpeg -f x11grab -r 25 -s 1680x1050 -i:0.0 -sameq outputFile.mp4

sustituyendo 1680x1050 por la resolución del escritorio y outputFile.mp4 por el nombre del vídeo de salida.

Para parar la grabación basta con apretar la tecla "q".


jueves, 30 de mayo de 2013

Android - Error [INSTALL_PARSE_FAILED_NO_CERTIFICATES]

Un error que puede aparecer en el momento de compilar y subir al emulador es [INSTALL_PARSE_FAILED_NO_CERTIFICATES]. Este error impide que el APK se compile correctamente.

jueves, 15 de noviembre de 2012

No funcionan los botones Home y Búsqueda en Android


En Android, al instalar nuevas ROMs de CyanogenMod hay ocasiones en que los botones "Home"  y el de búsqueda dejan de funcionar sin motivo aparente. Tampoco se activa la pantalla de bloqueo automáticamente cuando el móvil queda sin uso. Aunque se limpie la cache de datos y la cache de Dalvik se sigue manteniendo el error.

martes, 18 de septiembre de 2012

Tutorial de ActionBarSherlock


En Android existe un patrón de diseño llamado ActionBar consistente en una barra situada en la parte superior de la aplicación. Identifica la aplicación y permite al usuario saber donde se encuentra dentro de la aplicación. También permite situar acciones y modos de navegación fácilmente usables para el usuario.

Ejemplo de ActionBar.
Este patrón de diseño se introdujo con la versión Android 3.0 (Honeycomb - API 11) por lo que no está disponible para versiones inferiores (mas detalles en la guia oficial). Al no estar soportadas de forma oficial las versiones inferiores a Android 3.0, para poder usarla es necesario recurrir a bibliotecas no oficiales. 
A continuación se explica como usar ActionBarSherlock creada por Jake Wharton . Esta biblioteca permite usar ActionBar de forma nativa  en versiones Android 3.0 o superiores y en dispositivos con Android 2.X implementa una versión propia de ActionBar compatible a nivel de API con la oficial. No es necesario duplicar código para soportar diferentes versiones ya que el API usado por la biblioteca, es un duplicado del ActionBar oficial de Android.

jueves, 12 de julio de 2012

Como instalar la fuente Roboto de Ice Cream Sandwich en Gingerbread

La última versión de Android llamada Ice Cream Sandwich (Android 4.0), presentó una nueva familia de tipografía llamada Roboto que facilita la lectura en pantallas pequeñas. Roboto es una fuente True Type y formar parte del SDK de Android.

viernes, 10 de febrero de 2012

Optimización de directorios en Linux


Un par de apuntes rápidos para optimizar el disco duro en Linux.

Limpieza de archivos temporales.

Algunos editores de texto mantienen archivos temporales acabados en el carácter ‘~' y no los borran al finalizar la edición. Estos archivos se pueden encontrar usando el comando "find".

$ find $HOME -type f -name "*~" -print

Este comando muestra todos los archivos que encuentra en el directorio del usuario pero no los borra. Para borrarlos se añade al final el comando rm:

$ find $HOME -type f -name "*~" -print -exec rm {} \; 

La linea anterior borra automáticamente todos los archivos sin preguntar confirmación. Ha de usarse con cuidado porque en caso de indicar erróneamente que tipo de archivos quieres borrar lo hará sin preguntar. Y si estas en el directorio raíz y como root, puedes borrar el sistema completo.