[Tip] Activar servidor SSH en Manjaro

consola con el comando sudo systemctl enable sshd
Ejemplo de ejecución

No es algo nada difícil, pero en ocasiones viene bien tenerlo a mano. Simplemente tendremos que usar Systemd para gestionar el demonio sshd que es el que se encarga de gestionar el acceso:

Con este comando podemos decir a Systemd que lo deje activado “para siempre”:

sudo systemctl enable sshd

Si queremos desactivarlo en algún momento, simplemente tendremos que cambiar la palabra enable por disable.

Adicionalmente, si lo queremos sólo para nuestra sesión usaremos este otro. Quizás es lo que buscas si no tienes pensado usar tu máquina como un servidor, y te evitarás dejar puertos abiertos innecesariamente:

sudo systemctl start sshd

Para este otro caso, si queremos apagar el servicio ssh sin tener que reiniciar el ordenador, cambiamos start por stop.

Usando LaTex en Atom

Quizás haya formas mucho mejores para editar código LaTeX en Linux, pero ya que podemos hacer un montón de cosas con Atom y existen las extensiones para ello, también podemos editar documentos LaTeX. No he encontrado un asistente que configure un documento desde el principio, pero no creo que sea demasiado problema coger la base que tengamos de un documento anterior.

Documento LaTeX en Atom
CV de billryan/resume@GitHub en Atom usando el resaltado de sintaxis.

Tenemos unas cuantas extensiones que nos facilitarán nuestra tarea:

  • language-latex: Habilita el coloreado de sintaxis para los documentos .tex
  • latex: Añade soporte para compilar documentos LaTeX en Atom.
  • latexer: Permite el autocompletado de sentencias LaTeX.
  • pdf-view: Esta extensión nos permite ver en una pestaña nueva un PDF, en nuestro caso, el que haya generado el compilador de LaTeX.

Por supuesto, no estamos limitados sólo al compilador de LaTeX, sino que con la extensión latex si entramos en la zona de configuración, podremos seleccionar qué motor de TeX queremos. Os recomiendo echarle un ojo a todas las configuraciones de los paquetes propuestos.

Una opción alternativa que a mí me gusta bastante, es generar un Makefile para nuestro proyecto, de esta forma podemos utilizar varias herramientas que tenemos en Atom para ejecutar make y compilar en un PDF nuestro archivo. Como extra, está configurado para tener una carpeta más o menos limpia, en el sentido de que los archivos que se generan en la compilación están siempre dentro de una carpeta que se llama build/

He copiado en un gist el fichero que necesitaríamos. Tenemos que copiarlo a la carpeta donde se encuentre nuestro .tex y cambiar la primera línea del Makefile, indicando el nombre correcto del archivo.

No, no me he olvidado de la extensión que he mencionado antes. Primero necesitamos instalar el paquete build y después build-make.

Hipervitaminando Atom con plugins

Hoy quiero enseñaros algunos plugins que no te solucionarán la vida especialmente, pero al menos sí que te hará más agradable el tiempo que estés programando.

El primero nos hará sentir como si usásemos Sublime Text. Una de las cosas más características que vemos en este último editor es que tenemos a la derecha un mapa en pequeño donde ver el código, y nos permite navegar mucho más fácilmente a la zona que queramos.

Archivo de código Python con el minimap activado en la derecha
Archivo de código Python con el minimap activado en la derecha

Esta extensión se titula minimap. Es bastante útil cuando estás trabajando con un fichero más o menos largo habitualmente, ya que con el tiempo te habitúas a ver la zona del código que más usas simplemente con ver la estructura. Para los que tenemos memoria visual, es muy útil.

El segundo plugin que podemos instalar es un paquete de iconos que nos pondrá una imagen más descriptiva que el aburrido icono por defecto en cada archivo. Se llama file-icons.

Árbol de archivos de un proyecto python
Árbol de archivos de un proyecto python

Todas las capturas de pantalla que he puesto por aquí son de este proyecto en Github, por si queréis echarle un ojo 🙂

[Tip] Disk Usage (du): comando alternativo a Baobab para ver el consumo de disco duro

Últimamente, sobre todo después de hacerme con un SSD de 256 GB, el espacio no es algo que se pueda derrochar, y siempre estoy pendiente de cada GB que estorbe para eliminarlo o moverlo a un disco externo. Aunque esto no es único del entorno “doméstico”: muchos servidores virtuales VPS suelen ofrecer capacidades de almacenamiento más bien comedidas y es necesario no exceder demasiado aquello que vayas a guardar en el servidor para no encontrarte con problemas serios de funcionamiento.

Baobab analizando la carpeta raíz del sistema
Baobab analizando la carpeta raíz del sistema

Bueno, el caso es que la aplicación Baobab, también conocida como Analizador de uso de disco duro, es tremendamente fácil de utilizar a la par de cómoda, pero dependes sí o sí de la interfaz gráfica. Pero, ¿qué pasa cuando no puedes disponer de una herramienta gráfica? Nada en absoluto, ponemos a funcionar la terminal y utilizamos Disk Usage (abreviado como du).

Esta utilidad es parte del proyecto coreutils de GNU, y como tal suele venir incluida. En caso contrario, busca el paquete coreutils o uno parecido en tu distribución. Su uso es bastante sencillo a la par de útil: sólo hay que indicar un par de opciones para entender mejor la salida y la carpeta a analizar.

du -h -d 1 /home/cambiadeso

Vayamos por partes:
* du: Es el comando abreviado, con el cual llamamos al programa
* -h: Como en ls, es una opción para hacer el tamaño de las carpetas “legible para humanos”, es decir, muestra los tamaños en bytes, kilobytes, megabytes, etc…
* -d 1: -d es la opción para indicar el nivel de profundidad del árbol a visualizar. Con esto, sólo veremos un subnivel de la carpeta que estemos mirando.
* /home/cambiadeso: Esta es la carpeta que queremos analizar.

La salida es como esta

12K ./Plantillas
6,5G ./Documentos
4,0K ./Público
58M ./Imágenes
48M ./Vídeos
3,9M ./Escritorio
3,1G ./Descargas
18G .

Y como truquillo: podemos ordenar de mayor a menor uso si le añadimos el comando sort de esta forma:

du -h -d 1 /home/cambiadeso | sort -h

Saludos 🙂

Expresiones regulares en Atom

Desde luego que esto daría para una entrada extensa, con pelos y señales de cómo funcionan, pero ni yo mismo todavía lo entiendo del todo. Pero al menos quiero enseñaros un poco cómo funcionan en un caso concreto donde yo las he usado, que nunca viene nada mal.

Donde son realmente útiles es en la función de buscar y reemplazar de Atom. Para abrirlo con un atajo de teclado deberemos pulsar Ctrl+F, y para activarlo debemos ir a la derecha de la ventana que nos aparece y pulsar el botón “.*”, que activará las expresiones regulares en ambos campos de buscar y reemplazar.

Detalle de la ventana de buscar y reemplazar de Atom
Detalle de la ventana de buscar y reemplazar de Atom

Con ellas podemos hacer cosas bastante complejas. Por ejemplo, un caso práctico: En un documento, buscar todas las palabras que estén entre comillas simples y cambiarlas por comillas dobles. Para casos normales, podríamos aplicar simplemente la sustitución del carácter ‘ por el de “, pero si tenemos comentarios donde utilizamos esa comilla simple, también nos lo comvertirá a comilla doble.

Es importante tener dos conceptos claros. En el cuadro de búsqueda, tendremos que poner una expresión regular que encaje con lo que queremos encontrar o seleccionar, y en el cuadro de reemplazar, tendremos que poner exactamente la cadena que lo reemplaza utilizando una variable.

Siguiendo con el ejemplo mencionado anteriormente, vamos a crear la expresión regular que cambie las comillas simples por otras dobles.

En el cuadro de búsqueda pondremos entre dos comillas simples nuestra expresión regular (\w.*), que quiere decir buscar cualquier número de palabras. En el cuadro de reemplazar, pondremos la variable que hemos encontrado ($1) entre comillas dobles, consiguiendo así reemplazar lo que queremos.

Ventana de RegExp en Atom
Ventana de RegExp en Atom

En general, la sintaxis que se sigue para estas expresiones regulares es la de Javascript, por lo que si necesitáis un uso más concreto, podéis consultar esta documentación.

Instalar impresora Brother MFC J480DW en ArchLinux

Hace no mucho tiempo me hice con una impresora Brother, un poco ya cansado del precio excesivo que tenían tienen los cartuchos de las impresoras HP. Sin embargo, si alguna vez habéis tenido una impresora de esta última marca os habréis fijado que prácticamente no hay que hacer nada, en Linux es todo bastante sencillo, e incluso existe la herramienta hplip, que provee de una interfaz gráfica para administrar (de mejor o peor manera) la impresora.

Brother por su parte no tiene un soporte tan bien trabajado, o al menos, no es todo tan sencillo como en HP. Pero siguiendo todo paso a paso veremos que conseguiremos tener nuestra impresora imprimiendo en un periquete. Continuar leyendo “Instalar impresora Brother MFC J480DW en ArchLinux”

Configurando temas y fuentes en Atom Editor

Lo prometido es deuda, (aunque sea más de un año tarde) así que aquí tenemos la continuación de la serie de Atom. De momento trataremos cosas como la personalización con temas y fuentes. Así dejo cosas que contar para más adelante…

Instalando temas

Hay que reconocerlo. Antes de llegar a la versión 1.0 la interfaz por defecto de Atom era francamente horrible. El tema por defecto Atom fue sustituido por uno más moderno y flat: One. Este es bastante más agradable a la vista. Tenemos una muestra del código antes y después.

Atom antes y después de la versión 1.0 y de la llegada del tema One
Atom antes y después de la versión 1.0 y de la llegada del tema One

Aún así, tenemos temas que son bastante más interesantes. Recordemos que Atom está construido con HTML, CSS y Javascript, que a priori puede parecer un impedimento en cuestiones de rendimiento (indiscutiblemente), pero ofrece ventajas bastante notables en el sentido de la personalización. A pesar de que los temas que nos propone la comunidad son excelentes, podemos mejorarlos aún más con una hoja CSS personalizada, cambiando y editando estilos a nuestro antojo.
Continuar leyendo “Configurando temas y fuentes en Atom Editor”

[Tip] Contando la magnitud de la Web semántica con SPARQL

SPARQL es un lenguaje de consulta de datos similar a SQL, pero pensado para consultas en bases de datos basadas en grafos. Estas bases de datos es común verlas en proyectos sobre los que se fundamenta la web semántica (o Web 3.0) como Wikidata o DBpedia, y almacenan información siguiendo siempre un patrón:

(sujeto, predicado, objeto)

El lenguaje SPARQL está pensado para que las secuencias que se pongan en la parte del where sea una especie de patrón que deba encajar con las tripletas que hay en el grafo. De esta forma, una de las consultas más sencillas que nos podemos plantear es precisamente la de contar cuántas tripletas hay en nuestra base de datos:

select (count(?suj) as ?tripletas)
where {
  ?suj ?pred ?obj
}

Por lo general, estos proyectos de libre conocimiento tienen disponible un endpoint al que mandar consultas para ejecutarlas. Aquí os dejo unos cuantos:

Desgraciadamente, tenemos que tener en cuenta que esta consulta es muy pesada, y algunos de estos endpoints pueden no responder nunca por timeout por no estar optimizados.

Pero en el caso de DBpedia, esta consulta parece que sí está optimizada y podemos extraer datos interesantes: En este momento, la DBpedia en español posee cerca de 170 millones de hechos. Por su parte, la DBpedia en inglés es mucho más grande y alberga casi 440 millones de tripletas.

Wikidata, o es mucho más grande (cosa que no descarto) o su sistema no está lo suficientemente optimizado como para ejecutar estas consultas tan pesadas.