viernes, 28 de septiembre de 2018

¿Dónde buscar cuando tienes una duda o un problema en GNU/Linux?

Si alguna vez intentas hacer algo con tu distro y te sale un error, tienes una duda o quieres hacer algo especial, he aquí algunas pautas para encontrar la solución a tu dilema.
 

Pautas

Lo primero es saber plantear la pregunta, usa español neutro y exprésalo de la manera más clara posible para encontrar la coincidencia.

Primero busca la solución por tu cuenta y, SI NO LA ENCUENTRAS, pregunta en foros, blogs, redes sociales, etc... 

Si has preguntado en un foro y luego encuentras la solución por otro lado, lo correcto es que te respondas a ti mismo con la solución y en el primer mensaje pongas al principio del título [solucionado], así servirá para la siguiente persona que se encuentre con el mismo problema que tú.

A veces, hay que buscar en inglés sobre todo si es una duda muy rara o muy técnica, aunque ya no es tan necesario como hace unos años.


Identificar el problema

Si es un programa que no se ejecuta o lo hace mal intenta lanzarlo desde consola, el texto que devuelva es lo que vas a tener que poner en el buscador para buscar la solución.
En la carpeta /var/log están los logs de los programas, que te van a dar información valiosa para buscar la solución.
Si es un componente de hardware lo puedes identificar para su posterior búsqueda con comandos como lshw, lspci, lsusb 

¿Dónde Buscar?

1. Google y otros buscadores

Lo primero es buscar la solución por tu cuenta.
Afortunadamente hoy disponemos de la mayor base de conocimiento de la historia, pero es tan grande que es muy fácil perderse.

En el buscador deberías poner algo como lo siguiente:
Error que obtienes / duda + distribución + versión
La mayoría de buscadores permiten restringir la búsqueda en un determinado periodo de tiempo, si por ejemplo, dices que quieres los resultados publicados en el último año te vas a evitar perder el tiempo probado soluciones a problemas que se solucionaron hace años.

Si no quieres encontrar vídeos de youtube que consuman tu tiempo viendo algo que a lo mejor ni te sirve añade a la cadena de búsqueda al final:
-site:www.youtube.com 

Prueba también duck duck go, un búscador que respeta más tu privacidad.

2. Wikipedia

Cuando lo que busca es la definición de algo que no conoces o manuales genéricos para algo que quieres hacer es una excelente opción.

3. YouTube, Vimeo, etc...

Es una buena opción cuando quieres hacer algo paso a paso, pero se pierde mucho tiempo viendo todo el vídeo cuando lo que necesitas saber es qué se pone en un determinado archivo de configuración, por ejemplo.
Por otro lado, no te vas a dar cuenta que no te vale hasta a ver visto la mayor parte del vídeo.

4. Páginas oficiales

Excelente opción cuando quieres saber algo de un programa en concreto, quien mejor te va a explicar como funciona que sus creadores. 
Estas páginas suelen traer algún FAQ o wiki con los problemas más habituales y su solución.

5. Notas personales

Cuando encuentres la solución a un problema lo suyo es anotarlo y tenerlo a mano para cuando te vuelva a hacer falta, que puede ser dentro de años.
En mi caso este blog son mis notas personales de problemas con GNU/Linux, la ventaja de que sea público es que compartes el conocimiento y así te aseguras que no se pierde.
También puede ser un archivo de libreoffice.org y así poderlo consultar aunque no tengas internet en ese momento.

6. Foros y blogs

Pueden ser muy útiles cuando son temas de una tecnología en concreto, también es donde se suele terminar usando los buscadores de internet.

7. Libros

Hay libros buenísimos para aprender temas de lo más variado, y muchos son gratis y de libre descarga.

8. Redes sociales

En algunas se aprende más que en otras y en otras se pierde más el tiempo que en otras.
Recomiendo suscribirse a perfiles de twitter relacionados con GNU/Linux y tu campo de interés, todo lo que veas interesante te recomiendo que lo apuntes en tus notas personales siguiendo algún orden o lógica para que las puedas encontrar cuando te hagan falta.
Personalmente, las redes que te piden muchos datos como tu teléfono móvil no me gustan nada.

viernes, 21 de septiembre de 2018

Crear una nueva categoria en el menú de Ubuntu MATE (II): desde consola

Vamos a ver como crear una categoría de menú en Ubuntu MATE desde la consola, muy útil para hacer un script de instalación o inclusiones masivas/automáticas, por ejemplo.

Al lío.
  1. Lo primero sería disponer de los iconos que vayamos a utilizar tanto para los lanzadores como para la categoría, si no queremos tener que poner la ruta completa deberían estar en /usr/share/pixmaps
  2. Creamos los lanzadores en la carpeta ~/.local/share/applications/, podríamos crear uno para el emulador caprice que se llamara menulibre-caprice32.desktop con el siguiente contenido:
    [Desktop Entry]
    Version=1.1
    Type=Application
    Name=Caprice32 (CPC emulator)
    Name[es]=Caprice32 (emulador CPC)
    Comment=Amstrad CPC/CPC+ emulator
    Comment[es]=Emulador Amstrad CPC/CPC+
    Icon=cpc6128
    Exec=cap32
    Actions=
    Categories=menulibre-emuladores;
  3. Creamos los directorios necesarios para la categoría:
    mkdir -p ~/.config/menus/applications-merged
    mkdir -p  ~/.local/share/desktop-directories/
  4. Creamos el archivo ~/.local/share/desktop-directories/menulibre-emuladores.directory con el siguiente contenido:
    [Desktop Entry]
    Version=1.1
    Type=Directory
    Name=Emulators
    Name[es]=Emuladores
    Comment=Emulation and retrocomputing
    Comment[es]=Emuladores y retroinformática
    Icon=3disk
  5. Creamos el archivo ~/.config/menus/applications-merged/user-menulibre-emuladores.menu como administrador con vim, leafpad o el editor que queramos con este contenido:
    <!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
        "http://www.freedesktop.org/standards/menu-spec/menu-1.0.dtd">
    <!-- Do not edit manually - generated and managed by xdg-desktop-menu -->
    <Menu>
        <Name>Applications</Name>
    <Menu>
        <Name>menulibre-emuladores</Name>
        <Directory>menulibre-emuladores.directory</Directory>
        <Include>
            <Filename>menulibre-caprice32.desktop</Filename>
        </Include>
    </Menu>
    </Menu>
  6. Si quieres incluir más elementos dentro de la categoría solo hay que repetir el bloque <Menu></Menu> interior con los datos correspondientes de cada lanzador.
Aprovecho esta investigación para que mi script de instalación de herramientas LDraw cree una nueva categoría de menú 'Tente y Lego 3D".


Posiblemente funcione con cualquier distro de la familia Debian y con otros entornos gráficos, en los comentarios podéis contarnos vuestras experiencias en este sentido.

Enlaces de interés

sábado, 15 de septiembre de 2018

Feliz día del software libre 2018

Hoy estamos de celebración todos los amantes del software libre ya que hoy es su día.

Recordemos que usamos software libre no solo por razones filosóficas sino por razones muy pragmáticas como:
  • Si tienes el código puedes modificar el programa y no dependes de los caprichos de una compañía que decide que ese producto que a ti te interesa y necesitas a ellos no les compensa o te lo pone a un precio prohibitivo y tienes que tragar porque en la próxima actualización del sistema deja de funcionar.
  • Si se usan formatos abiertos, esos archivos puedes abrirlos con otros programas o incluso hacer, o mandar hacer, uno que los lea y se ajuste a tus necesidades.
  • La transparencia es un valor muy importante hoy en día, y que hay más transparente que ver como está hecho el programa.
  • Incluso los que usan software propietario se benefician del software libre, ya que si no existiera hace tiempo que tendrían condiciones mucho más leoninas que las que tienen que soportar (o han elegido seguir soportando).
En fin, ¡feliz día del software libre! y recuerda, lo que no se comparte se pierde.

sábado, 8 de septiembre de 2018

Crear una nueva categoria en el menú de Ubuntu MATE (I): la solución gráfica

Imagina que, en el menú Aplicaciones, tienes muchos emuladores en una saturada categoría de los juegos, ¿no estarían mejor en una nueva categoría 'Emuladores'?
Hoy vamos a ver como crear una nueva categoría de menú de manera gráfica, más adelante veremos como hacerlo desde consola y así poder incluirlo en un script de instalación.

MATE incluye la aplicación mozo para añadir elementos a las diferentes categorías pero es poco intuitiva y muy confusa para crear categorías nuevas.
Para acceder a mozo hacemos clic con el botón derecho sobre la opción 'Aplicaciones' y seleccionamos 'Editar menús'.


Por ello es mejor instalar la aplicación menulibre desde los repositorios oficiales de tu distro, una vez instalada, al hacer clic con el botón derecho sobre Aplicaciones ahora se ejecutará esta aplicación que nos va a dar mucho más juego.



Si pulsamos en el botón + podemos crear:
  • Lanzador: un acceso directo a un programa concreto, se crea en la categoría que tengamos seleccionada.
  • Carpeta: una categoría en la que incluir más lanzadores, también permite crearla dentro de otra carpeta o categoría.
  • Separador: para incluir una línea de separación entre elementos.
Tanto si creamos un lanzador como una carpeta hay que pulsar el botón de guardar una vez hayamos rellenado todos los campos con la información de dicho elemento para que el cambio sea efectivo.


Otras opciones interesantes de la herramienta:
  • Cambiar la posición de los elementos con las flechas que aparecen en la esquina inferior izquierda.
  • Añadir categorías a los lanzadores.
  • Etc...
Como curiosidad puedes ejecutar mozo o menulibre desde consola escribiendo sus nombres en minúsculas sin espacios de separación.

domingo, 2 de septiembre de 2018

Volver a ejecutar aplicaciones java en Ubuntu MATE 18.04: solución y caza del "bug"

Hoy me he llevado una desagradable sorpresa al ejecutar jEdit que se negaba a funcionar.

Cuando ocurre esto lo mejor que hay para encontrar la solución es lanzar el programa desde consola
jedit
y ver que error devuelve, a mi me llama la atención la siguiente línea:
...
20:51:03 [main] [error] main: java.awt.AWTError: Assistive Technology not found: org.GNOME.Accessibility.AtkWrapper
...
Pongo el error en el buscador de internet, quitando la hora lógicamente, y salen algunas páginas que me dan pistas de cual es la solución, al final hay que comentar la siguiente línea (poniéndole un caracter almohadilla '#' al principio):
assistive_technologies=org.GNOME.Accessibility.AtkWrapper
en el archivo /etc/java-X-openjdk/accessibility.properties donde X es la versión de java instalada, como yo tengo la 8 y la 11 he comentado la línea en ambos.

En fin, otro error incomprensible de Ubuntu 18.04, del que me estoy arrepintiendo de haberle dado otra oportunidad en el i7 que se ha solucionado con calma y un poco de sentido común, como siempre.

En todo caso tampoco descarto que sea culpa de java que no pasa por sus mejores tiempos.