Cambia de SO: Ahora con HTTP/2 y Cifrado SSL

Ha tardado, pero al final ha llegado. Siento las disculpas si llegaste hasta aquí hace algún día y te has encontrado con el mensaje por defecto de Nginx o directamente no respondía. La razón de esa pequeña indisponibilidad ya está resuelta y no es ni más ni menos que la configuración de un certificado SSL, el soporte de HTTP/2 y la activación del módulo pagespeed para Nginx.

Logo Nginx
Un servidor web muy rápido, pero hasta que lo configuras…

La verdad es que estos problemas surgen de escoger a Nginx como servidor en lugar de coger el más conocido en esta materia: Apache. Este último es compatible con un montón de módulos y la instalación de los mismos es automática. Si no me equivoco, la instalación del certificado SSL de Let’s Encrypt es prácticamente introducir un único comando y ya. Yo, sin embargo, me ha tocado seguir algún que otro tutorial para solucionarlo, editando los archivos de configuración de Nginx.

Continuar leyendo “Cambia de SO: Ahora con HTTP/2 y Cifrado SSL”

1 0

Recuperar el acceso al sistema cuando pierdes la contraseña de usuario

Lo mío con la Raspberry es una especie de relación amor-odio. La abandoné en su caja hace algún mes, y esta misma semana la quise retomar, de nuevo, como un proyecto multicosa (perdón por la patada al diccionario). Algo así como mediacenter Kodi, servidor de ficheros y alguna que otra cosa. Eso sí, con la lentitud propia de la primera raspberry (la de 256MB de RAM).

El caso, que para ahorrar algo de tiempo decidí que era más sencillo retomar la copia de la tarjeta de memoria que ya traía instalada la distribución OSMC. Todo bien hasta que no podía iniciar sesión con SSH. Ni una sola de las contraseñas que recuerdo hacía que diera válido el usuario (no, ni siquiera con la que viene por defecto: osmc). Me había olvidado la contraseña.

Por suerte, simplemente sacando la tarjeta SD y metiéndola en un ordenador cualquiera es posible acceder al sistema de archivos. Y es aquí donde radica la principal condición para poder aplicar este método: tienes que poder acceder, tanto como lectura y escritura, al sistema de ficheros, incluidos los que corresponden al usuario root. Dicho de otro modo, debes de ser capaz de acceder físicamente al disco desde otra máquina.

Atención: Este método es aplicable a cualquier sistema Linux al cual  tengas acceso root al disco duro, sea la tarjeta sd de una raspberry pi o el disco duro o SSD de un ordenador cualquiera. Eso sí, no puede estar cifrado. Continuar leyendo “Recuperar el acceso al sistema cuando pierdes la contraseña de usuario”

1 0

BookletImposer: Crear libros y folletos para imprimir desde PDF

El verano no sólo ha traído falta de lluvias, sino que también ha habido buena sequía de artículos por aquí. Pero vamos, que el ordenador no ha faltado en la mano y los documentos PDF son de los ficheros más utilizados cuando se navega por la red.

Dicho esto, los PDF no sólo están muy bien pensados para leer por la pantalla del ordenador, sino para imprimirlos y poder leerlos en papel. Pero imprimirlos en A4 a veces no es del todo respetuoso con el medio ambiente: el papel es un recurso muy preciado que hay que cuidar.

Una opción para ahorrar papel puede ser imprimirlo a doble cara, que muchas impresoras lo soportan hoy en día. Pero probablemente sea una idea mucho mejor convertirlo en un folleto DIN A5 que se grapa en el lomo y queda como un pequeño libro. Continuar leyendo “BookletImposer: Crear libros y folletos para imprimir desde PDF”

0 0

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

0 0

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)

0 0

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)

0 0

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)

0 0

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>
Un recorte del comando xinput que muestra todas las propiedades del ratón o método de entrada.
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

2 0