Mostrando entradas con la etiqueta Linux. Mostrar todas las entradas
Mostrando entradas con la etiqueta Linux. Mostrar todas las entradas

viernes, 19 de marzo de 2021

Creación de cómics: Formatos, tamaños y plantillas



Hola a todos de nuevo.

Tenéis un nuevo vídeo en mi canal de YouTube que habla sobre la creación de cómics.

La primera parte del vídeo contiene un breve agradecimiento y una pequeña reflexión sobre la importancia del software libre en la realización de este tipo de trabajos.

En la segunda parte hablo sobre la definición de tamaños y formatos. Las diferencias entre el US Letter y el A4. 

Por último doy unos apuntes para crear con Inkscape una plantilla para empezar a hacer vuestros pinitos en la creación de cómics. 

Aquí tenéis la página de Amazon donde podéis consultar todas las características técnicas que debe reunir vuestro libro para su publicación en esta plataforma.

Gracias a todos por vuestro apoyo y vuestros comentarios. 

Saludos.

viernes, 17 de octubre de 2014

Comunicación entre tu móvil Android y tu PC con Linux (ADB)

En algunas de mis anteriores entradas hablaba sobre la conexión entre tu dispositivo móvil y el ordenador para poder comprobar en tiempo real todos tus progresos en el desarrollo de tus aplicaciones Android. Hoy intentaré entrar en detalle en los entresijos de este proceso para Linux.

La principal herramienta de comunicación entre ambos dispositivos es ADB (Android Debug Bridge) que permite lanzar comandos y gestionar archivos o aplicaciones en tu móvil. Esta herramienta se encuentra normalmente disponible dentro de los repositorios de las principales distribuciones Linux. Sin embargo, os aconsejo que la descargueis manualmente como parte del sistema de desarrollo de Android (Android SDK) para tener un mayor control y evitar problemas de comunicación con tu dispositivo1.

1. ¿Cumplimos los requisitos?

Lo primero de todo es asegurarnos de tener instalado en nuestro sistema JDK (Java Development Kit). También puedes probar si funciona OpenJDK, aunque no está soportado oficialmente para el desarrollo de Android.

Para instalar JDK tendrás que asegurarte de que las listas de tus repositorios incluyan los “non-free”. Puedes comprobarlo en tu gestor de paquetes (Synaptic, Aptitude, etc.) o hacerlo mediante consola editando el archivo sources.list. Para Debian:
su
gedit /etc/apt/sources.list

Esto abrirá el archivo "sources.list" con tu editor de texto (en este caso gedit). Ahora, añade esta línea al final:
deb http://http.us.debian.org/debian stable main contrib non-free

Guarda el archivo y ejecuta los siguientes comandos para actualizar la lista de repositorios e instalar JDK:
apt-get update
apt-get install sun-java6-jdk

Más adelante, al ejecutar la herramienta SDK de Android, comprobaremos si existe algún problema de dependencias con las librerías de 32 bits en nuestro sistema. En caso afirmativo, será cuestión de identificarlas e instalarlas con nuestro gestor de paquetes.

2. ¿Cómo instalar la herramienta de desarrollo de Android?

Una vez se haya completado la descarga de Android SDK, procederemos a descomprimir los archivos y almacenarlos en tu directorio de trabajo (o en tu “home” si lo prefieres). Dentro de la carpeta “tools” comprobamos que el archivo “Android” tenga los permisos adecuados para poder ser lanzado (Pulsamos con el botón secundario y en la opción “Permisos” activamos “permitir ejecutar el archivo como un programa”).

Ahora, abre una terminal dentro de la carpeta donde se encuentra el ejecutable y  ejecuta:  
./Android
Al ejecutarlo a través de una terminal podemos comprobar si existe algún fallo o problema de dependencias. Si es así, toma nota de las librerías que te faltan e instálalas.
Una vez abierto, seleccionaremos a la opción “Available Packages” e instalaremos los paquetes que se encuentran seleccionados para actualizar tras aceptar sus correspondientes licencias. Cierra el programa una vez finalicen las actualizaciones.

3. ¿Cómo reconoce el PC a nuestro dispositivo móvil?

A continuación, vamos a establecer unas “reglas” para que el sistema reconozca nuestro dispositivo conectado mediante un cable USB2. Para ello, primero crearemos un archivo llamado “51-android.rules” con permisos de superusuario (su o sudo):
su
gedit /etc/udev/rules.d/51-android.rules

Con esto se crearía ese archivo y se abriría el editor de texto Gedit para editarlo. Si utilizáis cualquier otro editor de texto, cambiar “gedit” por el nombre de vuestro editor de texto (nano, vim, kate, etc.). Ahora añade la siguiente línea, aunque no cierres tu editor todavía, ya que toca personalizarla en función de tu modelo de móvil y usuario de sistema:
SUBSYSTEM==”usb”, ENV{DEVTYPE}==”usb_device”, ATTRS{idVendor}==”0bb4″, MODE=”0666″

El atributo “idVendor” es distinto para cada fabricante de móviles, así que debes utilizar el que se corresponda a tu dispositivo según la tabla que aparece al final de esta página. Si el fabricante de tu móvil no se encuentra en ella, puedes averiguarlo mediante el comando “lsusb” que nos proporciona un listado de los dispositivos usb conectados en tu ordenador. Localiza la línea que corresponda a tu dispositivo y en el apartado ID tienes dos cuartetos de números: el primero corresponde al “idVendor” y el segundo al modelo:
lsusb
Bus 003 Device 005: ID 0bb4:0c03 HTC (High Tech Computer Corp.)

En este ejemplo el idVendor es 0bb4 que corresponde a un HTC (o también Jiayu).

En el caso de Debian te tocará configurar dos cositas más:

Duplica el archivo “51-android.rules” y renombra el duplicado por “99-android.rules” (conserva ambos):
su
cp /etc/udev/rules.d/51-android.rules /etc/udev/rules.d/99-android.rules

Además, tendrás que configurar también el siguiente archivo en /lib/udev/rules.d/91-permissions.rules. Para ello:
su
gedit  /lib/udev/rules.d/91-permissions.rules 

Busca la siguiente línea de texto:
# usbfs-like devices 
SUBSYSTEM==”usb”, ENV{DEVTYPE}==”usb_device”, \ MODE=”0664″ 

Cambia el valor MODE a 0666 para que quede como abajo:
# usbfs-like devices 
SUBSYSTEM==”usb”, ENV{DEVTYPE}==”usb_device”, \ MODE=”0666″

Si has terminado de configurar estos archivos, guárdalos, ciérralos y, a continuación, reinicia el gestor de dispositivos (“udev”):
/etc/init.d/udev restart

4. ¿Qué debemos configurar en nuestro móvil?

Para que todo funcione, antes de conectar el móvil al ordenador has de activar la “Depuración USB” en tu dispositivo android. Para ello, entra en Ajustes > Opciones de Desarrollo.

Además, también debes activar la opción “Permitir la instalación de aplicaciones de origen desconocido” dentro del apartado Ajustes > Seguridad. Con esto, permitiremos que nuestra plataforma de desarrollo (Eclipse o JMonkey) cree e instale los archivos necesarios cuando construyamos y ejecutemos nuestra aplicación.

5. ¿Funciona?

Por fin podemos comprobar si nuestro esfuerzo ha valido la pena:
Enchufa tu teléfono móvil a un puerto USB. Localiza la carpeta que descomprimiste con SDK Android e ingresa en el directorio “platform-tools”. Por último, abre un terminal y ejecuta:
su ./adb devices
Recuerda que debes ejecutarlo como superusuario.

Como respuesta debemos obtener algo como esto:
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached
0123456789ABCDEF device

Si es así, ADB está correctamente configurado y funcionando. Sin embargo, si en lugar de números aparecen interrogantes primero comprueba que estés ejecutando la herramienta ADB como superusuario. Si el problema persiste, algo debe haber ido mal al definir nuestras reglas (dispositivo incorrecto) o falta alguno de los archivos de configuración:
List of devices attached
???????????? no permissions

Revisa la configuración de los archivos del punto 3 y prueba a lanzar de nuevo ADB asegurándote de hacerlo como root:
su
adb kill-server
/etc/init.d/udev restart
adb start-server
adb devices

6. ¿Cómo veo mi aplicación corriendo en el móvil?

Si todo ha ido bien y ya tienes funcionando ADB, abre cualquiera de tus plataformas de desarrollo y ponlo a prueba.

A) Eclipse:
- Haz clic con el botón secundario sobre la carpeta de tu proyecto en la ventana lateral izquierda.
- A continuación, selecciona “Run as > Android Application”.

B) JMonkeyEngine: 
- Haz clic sobre el botón secundario en la carpeta del proyecto en la ventana lateral izquierda y abre “Properties”.
- Desactiva “Compile on Save” dentro de las preferencias de tu proyecto.
- En el apartado “Application>Mobile” habilita la opción “Enable Android Deployment” y selecciona en “Android Target” la versión del dispositivo en la que vas a trabajar.
- En el apartado “Run” selecciona tu dispositivo android (“Android Device”) y ejecuta tu aplicación .

Ahora ya podrías ejecutar la aplicación con el botón “Play” de la barra de herramientas. Para finalizar el testeo, haz clic en el botón “x” que se encuentra al lado de la situación de estado en la parte inferior derecha.

Espero que dentro de lo aparentemente complejo de este tema, hayas conseguido salir indemne y con tu aplicación corriendo en tu móvil.

NOTA 1: Incluyo "su" en cada bloque de comandos para recordar que se han de ejecutar como superusuario. Evidentemente, si lo estás haciendo todo desde una misma ventana del terminal sólo hará falta que accedas como "su" la primera vez.
NOTA 2: Si tu sistema es MacOS, puedes saltarte el punto 3 en el que se configuran los archivos de reglas. Además, la instalación del paquete JDK que se explica en el punto 1 puedes hacerla de manera normal. El resto de comandos para lanzar las aplicaciones (./adb devices) es exactamente igual pero sin ingresar como superusuario. Recuerda que tienes la terminal del sistema en: Aplicaciones > Utilidades > Terminal.
_____________________
1. Un posible error es tener varias instancias de ADB en el sistema y que se encuentre en ejecución la inadecuada. Así, aunque tu dispositivo esté conectado, no será visible para la plataforma desde la que estés desarrollando tu aplicación (Eclipse, JMonkey, etc.). Para evitar problemas, el proceso de ADB que esté ejecutándose debe formar parte del SDK que se encuentra enlazado dentro de estas plataformas.
2. También puedes conectar tu dispositivo a través de Wifi. Para ello, sigue las instrucciones que se explican en DesdeLinux.

jueves, 27 de diciembre de 2012

Cómo actualizar el Sistema y no morir en el intento

Hola a todos, esta entrada es bastante extensa y dedicada a peripecias diversas con Linux, así que avisados estáis...

Tiempos de Cambio...
Estos días, aprovechando que tenía algo más de tiempo libre, acometí una tarea que había pospuesto durante bastante tiempo: la actualización de mi sistema operativo LinuxMint Debian. Como los proyectos que tenía en marcha requerían de una cierta estabilidad, había desactivado el Gestor de Actualizaciones. Sin embargo, esta 'desactualización voluntaria' provocaba problemas cuando intentaba instalar algún paquete de software nuevo, sobre todo por dependencias relacionadas con Gnome 2 (descansa en paz, querido compañero).

Había seguido el axioma bastante extendido en el mundo de la informática de "si funciona, no lo toques". Mi sistema estaba felizmente anclado en el 'Update Pack 3' y con 'Gnome 2' como sistema de escritorio. Teniendo en cuenta el tiempo que había pasado desde mi última actualización, esta operación parecía una maniobra arriesgada, así que por si acaso realicé una copia de seguridad del sistema con 'Redo Backup', me armé de valor y arranqué el Gestor de Actualizaciones.

Efectivamente, la actualización apuntaba hacia el 'Update Pack 6', con cerca de 1 Gb de datos y un salto importante en el kernel (desde el 2.6.39 hasta el 3.2.0-4). Tenía la impresión de que iba a pasar unos días la mar de entretenidos. Crucé los dedos y activé el proceso...

La mayor parte de esa tarde la ocupo en descargar, desempaquetar y comenzar la instalación. Uno de mis mayores temores eran los problemas que pudieran surgir con la tarjeta gráfica Nvidia, cuyos paquetes se actualizan a la par que el Kernel. Sobretodo, porque había conseguido un buen equilibrio para trabajar con Blender y el soporte Cuda con el motor Cycles...

Tras finalizar la actualización, me hice el ánimo: era hora de reiniciar el sistema con el nuevo kernel. Bien, todo parece correcto y hasta levanta bien el modo gráfico... pero...

Gnome 3. Cualquier tiempo pasado...
Ahora entiendo las famosas declaraciones de Torvalds... porque lo que tengo frente a mí no sólo supone un cambio de apariencia. La nueva disposición de elementos y la ocultación de otros hacen que necesite unos cuantos minutos para comprender con lo que me enfrento... exactamente 10 minutos que es el tiempo que tardo en decidir que esto no es para mí. Una pequeña consideración: No me parece una buena idea que para acceder a distintos elementos tenga que hacer un movimiento con el ratón de un extremo a otro en un monitor de 23".

Una vez tomada la decisión, hay que buscar alternativas... Cinnamon o Xfce... ummm... pues nada probaremos los dos. Instalo sus correspondientes paquetes y a iniciar sesión con cada uno de ellos.

Cinnamon. Más bonito que un San Luis
El aspecto inicial al arrancar con este entorno de escritorio es impecable: sigue la disposición visual de Gnome 2 pero con una apariencia mucho más cuidada y bastantes efectos en las ventanas (teniendo en cuenta que yo venía de Gnome 2 con los efectos de Compiz desactivados).
Jugueteo un rato con él pero percibo cierta pesadez, sobre todo cuando añado algunos elementos para terminar de configurarlo... será cuestión de probar Xfce (aunque no lo descarto en absoluto).

lmde_cinnamon

Xfce. ¡¡ Esto es Esparta !!
Ya al arrancar se nota la diferencia con los otros dos entornos: mayor sencillez visual, sin efectos, aunque una cosa me intriga... pese a considerarse como un escritorio más ligero, existe un cierto 'lag' al mover y abrir ventanas.
Curioseando entre toda la paquetería que ha instalado Xfce veo 'Xfce4 mintDesktop', activo 'Compiz Fusion' y noto que la navegación gana muchísimo en fluidez (primer escollo resuelto). Seguimos toqueteando aquí y allá para habilitar el color blanco en las tipografías del escritorio, remover sus bordes, poner los temas de Mint (Mint-X)... vaya, esto ya va tomando cuerpo... añado y quito elementos de los paneles superior e inferior... incorporo Conky con medición de temperaturas y otros recursos et voilà.

lmde

Ahora unos apuntes para ajustar algunos detalles de este entorno de escritorio:

1. En 'Sesión e Inicio' > 'Autoarranque de aplicaciones' añado algunos elementos:
  • Para desactivar el molesto pitido del sistema añado un comando con:  xset b off
  • Para activar los dos monitores con pantalla separada, lo primero es comprobar mediante xrandr su nombre y posición. Luego preparo otro comando para el autoarranque: xrandr --output DVI-I-1 --right-of DVI-I-2 (Evidentemente aquí cada uno debería poner sus propios valores en función del resultado de 'xrandr').
2. Si tienes problemas porque las notificaciones aparecen en el segundo monitor: abre dconf-editor Navega hasta '/apps/notify-osd/multihead-mode'. Cambia 'dont-focus-follow' por 'focus-follow' y ya aparecerán en el sitio correcto.

3. Para completar las funcionalidades de Thunar, el navegador de archivos de Xfce, se pueden añadir algunas acciones personalizadas para el botón secundario. Abres cualquier ventana del navegador > Editar > Configurar acciones personalizadas > Botón añadir:
  • Abrir carpeta como administrador. Comando: gksu thunar %N En la pestaña de condiciones de apariencia seleccionar 'Directorios'.
  • Editar archivo como administrador. Comando: gksu mousepad %f En la pestaña de condiciones de apariencia seleccionar 'Archivos de texto'.
  • Para añadir un buscador puedes seguir estas instrucciones.

Sorpresa, sorpresa. A vueltas con Nvidia
Como ya había apuntado antes, uno de mis mayores temores venía de la actualización de los paquetes relacionados con Nvidia. Tras actualizar, no había trasteado en profundidad y parecía que todo iba correcto... pero... siempre hay un pero.
Tras dejar todo el sistema aparentemente acondicionado, decidí preparar los archivos de actualización del juego SteamPac 3D: buscar, comprobar fechas, versiones... bien... arranquemos el juego para ver si esto funciona:
Versión de 64 bits en Linux... OK
Versión de 32 bits en Linux... WTF... esto no arranca...
No perdamos los nervios y veamos la consola:
error while loading shared libraries: libGL.so.1: cannot open shared object file: No such file or directory
Ummm, parece que falta una librería... ale, a buscar: locate libGL.so.1
Pues algo relacionado con esa librería sí que hay, aunque me temo que la que necesita no está correctamente instalada... mañana será otro día.

Efectivamente, nada como un sueño reparador y 'San Google' para dar con la solución:
Las aplicaciones de 32 bits no funcionan correctamente en los sistemas de 64 bits con los drivers privativos de Nvidia debido a que los paquetes *nvidia*-ia32 se han convertido en unos paquetes vacíos tipo 'dummy' para ayudar en la transición de paquetes 'Multiarch'. Es decir, durante la actualización se elimina la librería antigua y se reemplaza por un archivo vacío.

Para recuperar esa funcionalidad existe una maniobra un poco arriesgada que a mí me ha funcionado: actualizar esos paquetes desde los repositorios de debian 'sid'.

Lo primero es añadir los repositorios 'sid'. Voy a apuntar dos posibles modos para ello:

  • Editar como 'root' /etc/apt/sources.list y añadir al final: deb [arch=amd64,i386] http://ftp.debian.org/debian/ sid main contrib non-free
  • Abrir el Gestor de Paquetes Synaptic > Configuración > Repositorios > Otro Software > Añadir: deb [arch=amd64,i386] http://ftp.debian.org/debian/ sid main contrib non-free

OJO: Cuando hayamos acabado toda la operación, hay que comentar esa línea con '#' o eliminarla para que los repositorios vuelvan a apuntar a 'testing'. Si lo habéis hecho mediante el Gestor de Paquetes, podéis desactivar la casilla correspondiente a 'sid'.

A continuación, como 'root', ejecutar los siguientes comandos en la consola:

dpkg --add-architecture i386
apt-get update
apt-get install libgl1-nvidia-glx:i386

Naturalmente te dirá que actualizará algunos paquetes y añadirá otros... yo le dí a 'Aceptar' con la esperanza de que no el sistema no saltara por los aires y para mi sorpresa todavía continúa vivo y ejecutando correctamente las aplicaciones de 32 bits.

Para acabar... y sí, acabo
No pretendo que esta entrada sea motivo de controversia sobre los entornos de escritorio en Linux. Se trata de una opinión basada en mi experiencia de trabajo. Para mí, lo importante son las aplicaciones con las que desarrollo mis proyectos. Al entorno de escritorio sólo le pido que me permita hacer esto de una manera eficaz y agradable. Así, no estoy en contra de que se apliquen determinados efectos, pero bajo mi punto de vista, cuando hago un render necesito que la mayoría de los recursos de mi equipo se empleen en esa tarea.

comparativa

En los tiempos que corren y con el auge de 'tablets' y teléfonos móviles, existe la tendencia de homogeneizar los sistemas y las experiencias de usuario (Véase Windows 8). Sin embargo, creo que los grandes perjudicados han sido los equipos de sobremesa que (pese a su gran potencia de cálculo) en cierta manera ven reducida sus capacidades encorsetándolas en entornos que a mi parecer no les favorecen. Por poner un ejemplo, jamás pondría a correr un Ferrari por una pista forestal...
Sin embargo, como en todo, todavía podemos ver la luz. La propia diversidad de Linux permite que siempre exista una alternativa que se adapte a tu modo de hacer las cosas y no seas tú quien deba ajustarse a la máquina...

Saludos

Aviso para navegantes:
- Como ya he comentado, alguna de las soluciones que se proponen en esta entrada podrían desestabilizar vuestro sistema operativo, así que no me hago responsable de los posibles daños que podáis causar en vuestros equipos.
- Si queréis algún detalle o aclaración sobre cualquiera de los aspectos, preguntad en los comentarios (no está de más exponer las dudas antes de ponerse a trastear con el sistema).

AddThis