Reparar el AUR en Antergos: Package-query Instrucción Ilegal

No suelo utilizar el AUR a no ser que sea estrictamente necesario para instalar algún programa en concreto. Pero hoy lo he ido a utilizar en Antergos para instalarme y probar el cliente de Twitter Corebird.

Y nada, no había manera, no encontraba ningún paquete. Al mismo tiempo, escupía la siguiente línea de error

/usr/lib/yaourt/util.sh: línea 190: 21133 Instrucción ilegal     (`core' generado) package-query "${PKGQUERY_C_ARG[@]}" "$@"
 error: destino no encontrado: corebird

Lo que parecía indicar que realmente el problema lo generaba el programa package-query. Afortunadamente, no he sido el único usuario que se ha topado con este error, y hay información de cómo solucionarlo en Reddit, y dicha solución es bastante sencilla: se basa en desinstalar ese paquete y compilarlo a mano. Siguiendo los comandos uno a uno es imposible perderse:

#Primero desinstalamos el paquete
sudo pacman -Rdd package-query
#Descargamos el archivo fuente
wget https://aur.archlinux.org/cgit/aur.git/snapshot/package-query.tar.gz
#Extraemos la carpeta
tar -xzvf package-query.tar.gz
cd package-query
#Dejamos la magia de la compilación a makepkg
makepkg -sri

Fuente | Reddit

WordPress: Programación perdida

Seguramente, si también eres usuario de WordPress te haya pasado alguna vez aquello de que tenías programado un post pero éste no se ha publicado a la hora prevista, o incluso, ni siquiera se ha llegado a publicar, mostrándote en la página de Entradas un mensaje de “Programación Perdida”

Captura de pantalla de "Programación Perdida" en WordPress
WordPress Missed Schedule

La explicación a este problema es sencilla: WordPress utiliza un sistema cron para gestionar, entre otras cosas, las entradas programadas. Sin embargo, no puede tener una tarea cron real en el ordenador donde esté instalado, por lo tanto, lo simula, de tal forma que cada vez que se carga una página cualquiera de WordPress, se ejecuta el cron y si hay alguna entrada programada, la publica. Así que es posible que este error se produzca porque en la hora en la que se había programado, no había ningún usuario en la web.

La solución a este problema pasa por varias opciones: Podemos instalar un plugin más a WordPress, lo que hará que se ralentice más la carga, o añadir una tarea cron propia. Dejo el enlace al plugin por si alguien no se quiere quebrar mucho la cabeza, pero lo ideal es utilizar el cron, que para algo está.

Si disponemos sólo de un hosting, seguramente nuestro panel nos de la opción de añadir de forma visual la tarea cron, y en caso contrario, tiraremos de SSH al servidor donde esté instalado:

crontab -e

Y en la pantalla que se nos abre, pondremos lo siguiente:

# min hora dia mes sem comando
*/5 * * * * wget -O /dev/null http://<dominio.com>/wp-cron.php?doing_wp_cron

Una vez que hayamos guardado la tarea en cron, podremos desactivar el cron simulado en wp-config.php, concretamente añadiendo la línea:

define(‘DISABLE_WP_CRON’, true);

Y finalmente, si veis esta entrada publicada, es gracias a que este sistema funciona.

Un saludo 😉

Fuente | Hormigas en la Nube – Foto | WordPress Time (CC By-Sa  titanas@Flickr)

Mejoras que se avecinan para Nautilus 3.20

No suelo escribir entradas de tipo noticia, me gustan más los artículos atemporales, pero creo que la noticia lo merece. Gnome empezó en su momento rompiendo esquemas, provocando dolores de cabeza en parte de la comunidad que no entendieron el cambio. Sin embargo, ahora poco a poco, aunque la filosofía sigue siendo la misma, el sistema está más pulido con cada nueva versión que sacan.

Un aspecto estético, pero no poco importante es la separación entre iconos. Siempre había pensado que se podría haber aprovechado mejor el espacio, ahora todos nos beneficiamos de los cambios

Diferencias entre Nautilus 3.18 y 3.20.
Diferencias entre Nautilus 3.18 y 3.20. Destaca el espaciado entre los iconos.

Otra mejora que viene es también los filtros, que nos ayudan a refinar las búsquedas. Ahora podremos señalar de una forma mucho más amable al usuario las fechas entre las que buscar. No sólo buscar por fechas, sino también por tipo de archivo.

Dos capturas que muestran distintos modos de filtrar por fecha de útlima modifiación
Muestra de los filtros de búsqueda disponibles en Nautilus 3.20

También se han añadido más niveles de zoom (sólo uno más, para ser exacto), una ventana rápida para mostrar los atajos de teclado, se han ampliado las opciones de configuración y otras muchas cosas.

Sin duda, el próximo Gnome 3.20 viene bien cargado de novedades, esto es una muy breve pincelada. Podéis ver más información sobre el lanzamiento aquí: Gnome Wiki

Fuentes | WoGUE | I Intended to live forever (csoriano) (1 y 2)

Los lenguajes más influyentes en 2014

Sí, estamos en 2016, lo sé, no está demasiado actualizado, pero sigue siendo relativamente válido.

En el grafo que veis arriba se ven los distintos lenguajes de programación que hay registrados en FreeBase, y cómo de influyentes han sido para otros lenguajes. Por ejemplo, si pinchamos en uno de los nodos, podemos ver con qué nodos está conectado, y en una lista se muestra si es porque han sido influyentes para otros o, al contrario, cuáles les han influido.

Grafo que muestra las influencias de Python
Grafo que muestra las influencias de Python

Los colores del grafo dividen a los nodos en función del paradigma que usan, si es imperativo, funcional, declarativo, etc… Sin duda, merece la pena echarle un vistazo.

Y, por cacharrear con algo tan interesante, he intentado construir el grafo por mí mismo, pero no ha habido manera. Quizás al autor se le haya olvidado incluir algún que otro archivo necesario para construir el grafo. De todas formas, el autor sí que ha subido en un repositorio de GitHub un script en Python que extrae todos los datos que necesita (de Freebase) a un fichero plin.gexf, un formato que almacena grafos. Os lo dejo por si alguien consigue algo más que lo que yo he hecho, pero, si lo conseguís, ¡no dudéis en comunicarmelo!

Un saludo 😉

Enlaces | Repositorio con las fuentes (adjunto).zip | Repositorio Git | Exploring Data (GitHub)

xinput: Reducir la velocidad del ratón en Linux

Probablemente, cuando te compras un nuevo ratón puede ser que notes que va más lento o más rápido que lo que estabas acostumbrado a tu anterior ratón. Esto puede no parecer un problema, porque no hay más que ir a la sección de Ratón del panel de control y asunto arreglado: se reduce la velocidad.

Pero, no siempre esta es la mejor solución. Planteemos por ejemplo una situación muy común: usar un portátil. Aquí es probable que con frecuencia nos apañemos con el trackpad (o touchpad, o panel táctil). Pero si la diferencia de velocidad es muy grande con respecto al nuevo ratón que conectamos por bluetooth o por USB, se puede hacer incómodo: ajustaremos por ejemplo la nueva velocidad para que nuestro ratón USB vaya más rápido, pero por ejemplo notaremos que el trackpad va innecesariamente rápido.

Bueno, pues para solucionar esto podemos recurrir a herramientas de las X.org, en concreto una para manejar los métodos de entrada y que se llama xinput. Nos permitirá ajustar muchos parámetros de forma individual a cada dispositivo de entrada (Ratones, trackpads o incluso teclados).

Si ejecutamos el comando xinput nos salen todos los dispositivos que tenemos conectados, tanto los físicos como los virtuales.

cambiadeso@cambiadeso.es ~ $ xinput
⎡ Virtual core pointer                  id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer        id=4    [slave  pointer  (2)]
⎜   ↳ MOSART Semi. 2.4G Wireless Mouse  id=10    [slave  pointer  (2)]
⎜   ↳ Atmel Atmel maXTouch Digitizer    id=12    [slave  pointer  (2)]
⎜   ↳ ETPS/2 Elantech Touchpad          id=15    [slave  pointer  (2)]
⎣ Virtual core keyboard                 id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard       id=5    [slave  keyboard (3)]
    ↳ Power Button                      id=6    [slave  keyboard (3)]
    ↳ Video Bus                         id=7    [slave  keyboard (3)]
    ↳ Video Bus                         id=8    [slave  keyboard (3)]
    ↳ Sleep Button                      id=9    [slave  keyboard (3)]
    ↳ USB Camera                        id=11    [slave  keyboard (3)]
    ↳ Asus WMI hotkeys                  id=13    [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard      id=14    [slave  keyboard (3)]

Buscaremos el dispositivo que más se parezca a lo que necesitamos. En mi caso, estoy tratando de ajustar un ratón inalámbrico, así que parece que la opción con id=10 es razonable que sea la que me interese.

Aquí ahora podremos jugar con las propiedades, que es lo que nos interesa. Podremos mostrarlas todas con el comando

xinput list-props <nombre o id del dispositivo>
xinput list-props "MOSART Semi. 2.4G Wireless Mouse"
Un recorte del comando xinput que muestra todas las propiedades del ratón o método de entrada.

En nuestro caso, nos interesa la propiedad Device Accel Constant Deceleration, y que, en mi caso, he ajustado de la siguiente manera:

xinput set-prop <id o nombre del dispositivo> <id o nombre de la propiedad> <valor

Te invito a probar distintas combinaciones o probar con otras propiedades, para ver si hay alguna otra configuración que te guste más.

Archivo .xsessionrc mostrando el comando xinput que mejor se adapta
Archivo .xsessionrc mostrando el comando xinput que mejor se adapta

Aquí no acaba la cosa. Bueno, acaba hasta que apaguemos el equipo, ya que al volver a iniciar sesión estos cambios se habrán ido, y entonces, tendremos dos opciones: Ejecutar el comando de arriba siempre, o que se ejecute solo (sin enterarnos) al iniciar sesión.

Si optáis por la segunda, la solución es fácil. Consiste en añadir al fichero /home/usuario/.xsessionrc el comando anterior de xinput que nos funciona. Simplemente hay que ejecutar

gedit ~/.xsessionrc

y en la pantalla que nos salga, copiar el comando xinput con las opciones que se ajustan a lo que necesitamos al final del archivo. Es bastante probable que esté vacío, no te asustes porque es normal. En la última foto podéis ver el resultado.

Visto en | Patrickmn | LinuxMint User

MySQL: Añadir usuarios a una base de datos con SQL

Puede pasar, y de hecho, seguramente ocurra de forma habitual, que necesites instalar una aplicación en tu servidor web que pida una conexión con tu base de datos MySQL. Lo más lógico es crear una base de datos y un usuario aislados, con los permisos justos. Si dispones de PhpMyAdmin, no hay problema, se pueden añadir usuarios sin ninguna dificultad.

El problema es que ahora mismo, esto que estáis leyendo está alojado en un servidor virtual, que tiene los recursos que tiene, lo justito para que funcione y ya, y para no sobrecargarlo, he decidido no instalar PhpMyAdmin, y realizar todas las operaciones necesarias con la base de datos a pelo, con la consola SQL.

Para estos ejemplos crearé el usuario wordpress con la contraseña pass y la base de datos blog. Sólo necesitarás cambiar estos parámetros por los tuyos. Empezemos:

Lo primero que vamos a necesitar es acceder a la consola SQL. Lo más probable es que estés utilizando MySQL, así que nos podemos conectar de esta forma. Necesitaremos saber, eso sí, la contraseña para el usuario root.

mysql -u root -p

Si nos conectamos a una base de datos remota, necesitaremos dar la dirección del servidor MySQL con el parámetro “-h 0.0.0.0:3306”, cambiando la ip o el puerto por lo que corresponda.

Salida en pantalla de una base de datos MySQL recién instalada
Bases de datos de MySQL recién instalada.

Ahora crearemos la base de datos:

CREATE DATABASE blog;

Ahora ya podremos crear el usuario que queremos y sólo con los permisos necesarios en esa base de datos:

CREATE USER wordpress@localhost IDENTIFIED BY 'pass';
GRANT ALL ON blog.* TO wordpress@localhost;

Si queremos, podremos comprobar que hemos creado correctamente la base de datos y el usuario mostrando todos los datos:

SHOW DATABASES; /* Muestra todas las bases de datos */
SELECT user FROM mysql.user; /* Muestra todos los usuarios *

Saludos 😉

Oracle MySQL trademark Logo: http://www.mysql.com/

Unir PDF desde la terminal con Poppler, o usando PDF Mod.

Quizás no es algo a lo que se suela recurrir muy a menudo, pero sí que es verdad que cuando necesitas unir unos cuantos PDF, lo necesitas ya. Yo personalmente suelo desconfiar de la multitud de sitios que hay online que te hacen este servicio de forma gratuita (¡Algunos incluso no te meten marcas de agua!). Me gusta que sea en plan Juan Palomo: Yo me lo guiso, yo me lo como.

Diálogo Acerca de... PDF Mod
Mostrando el diálogo de Acerca de… PDF Mod

Hasta ahora había utilizado una herramienta bastante pulida que tiene una interfaz gráfica y es bastante útil. Seguramente os suene bastante: PDF Mod. La suelo instalar de las primeras cada vez que reinstalo mi ordenador, nunca se sabe cuando la puedes necesitar. Sin embargo, en mi portátil no había tenido la oportunidad de hacerlo. Y da la casualidad que lo necesito y no puedo instalarlo.

El portátil está equipado con OpenSuse Leap 42.1, pero fui completamente incapaz de encontrar en el repositorio dicho paquete. Lo encontré en formato RPM, pero ni por esas se instaló. En fin, estas cosas pasan también…

El caso es que la solución más sencilla pasaba por instalarse Poppler, un conjunto de librerías, programas, scripts o comandos que sirven para manejar documentos en formato PDF o PS, entre otros. Una vez instalado, a un golpe de comando puedes unir varios archivos PDF al instante.

pdfunite archivo1.pdf archivo2.pdf archivo3.pdf archivosalida.pdf

Es importante recalcar que el útlimo archivo (archivosalida.pdf) es donde se guardará el PDF con todo unido, según el orden en el que se hayan puesto los documentos. No leerá de ese archivo, y si ya existe, lo sobreescribirá. Así que, si no queréis liarla, procurad que sea un nombre nuevo. Continuar leyendo “Unir PDF desde la terminal con Poppler, o usando PDF Mod.”