Manual de Crosterm

Crossterm es una biblioteca de Rust que permite crear interfaces en modo texto para nuestro terminal.

He escrito un pequeño manual sobre su uso que podéis descargar desde el siguiente enlace:

Seguir leyendo
Publicado en Programación | Deja un comentario

Comparando rendimientos en Rust a la hora de saber si un número es impar

Hay varias formas de saber si un número entero es impar en programación.

Una de ellas es mirar el resto de la división entre dos. Si es 0, es un número par. En Rust se averiguaría si es impar con:

número % 2 != 0

Otra es ver si acaba en 1 en binario. En Rust sería:

número & 1== 1

¿Cuál tiene más rendimiento?

Seguir leyendo
Publicado en Programación | Deja un comentario

Term39

Term39 es un pequeño entorno para el terminal, escrito en Rust, que permite abrir terminales a modo de ventanas:

Estas ventanas se pueden gestionar con el ratón. Está pensado para ser usado fuera de un entorno gráfico, directamente en la consola. Muy útil para servidores o equipos que no tengan entorno gráfico.

Para instalarlo y obtener información:

https://github.com/alejandroqh/term39

Como está pensado para usarlo en un terminal sin entorno gráfico hay que instalar gpm para poder usar el ratón. Para poder usar gpm, hay que teclear:

$ systemctl start gpm

Hay que usar el botón derecho y el botón izquierdo del ratón para sacarle su potencial.

Las ventanas se gestionan con el ratón. De hecho no parece haber atajos de teclado para moverlas. Pulsando F1 aparece la ayuda cuando no hay una ventana seleccionada.

Curiosamente, si lo abres en un terminal en KDE no permite arrastrar las ventanas, pero en la consola sí parece funcionar correctamente.

Espero que os sea útil.

Publicado en Software | Deja un comentario

Mejorando el rendimiento de una tarjeta gráfica Nvidia con los drivers Nouveau cambiando la velocidad de reloj

Tengo un ordenador al que recientemente le he puesto una tarjeta gráfica Nvidia. El caso es que notaba que el rendimiento de la misma era bajo.

Estuve investigando por los foros y parece ser que en algunos modelos, Linux inicia la tarjeta con la velocidad de reloj más baja. Esto sucede al usar el controlador libre Nouveau.

Seguir leyendo
Publicado en Hardware | Deja un comentario

Reduciendo el tamaño de un archivo PDF

Hace poco tuve que subir un PDF a una página web. La página permitía subir hasta 100Mb y el mío ocupaba 117Mb.

Hay un pequeño truco que descubría por casualidad en los tiempos en los que usaba LaTEX y que funciona en la mayoría de los casos:

Primero se pasa el PDF a Postscript:

$ pdf2ps archivo.pdf temporal.ps

Donde «archivo.pdf» es el nombre del archivo original y «temporal.ps» es el archivo Postscript temporal que se va a crear.

Ahora el Postscript a PDF:

$ ps2pdf temporal.ps nuevo.pdf

En «nuevo.pdf» tendremos el archivo original de nuevo, pero su tamaño habrá variado.

Por ejemplo, en mi caso pasé de 117Mb a 92 Mb. El caso más llamativo se me dio cuando una vez pasé de 22Mb a 8Mb.

Como he comentado, funciona en la mayoría de los casos. Pero, hay situaciones que el archivo se vuelve absurdamente enorme.

Espero que os sea útil.

Publicado en Software | Deja un comentario

Controla una presentación de LibreOffice impress desde Android

Una característica de LibreOffice Impress es que se puede controlar una presentación desde un teléfono móvil con Android.

Se puede controlar por Bluetooth o por Wifi si el ordenador que controla la presentación y el teléfono móvil con Android están conectados a la misma red Wifi.

Lo primero será instalar la aplicación en el móvil «LibreOffice Impress Remote»:

Una vez instalada, se debe ir a la presentación y en el menú «Pase de diapositivas/Configurar presentación» se deben activar las casillas «Activar control remoto» y «Permitir conexiones por Wifi inseguras».

Una vez activadas las opciones, se cierra Impress y se vuelve a abrir la presentación. En el menú «Pase de diapositivas/Control remoto de Impress» se debe buscar nuestro dispositivo móvil. Para ello, vamos a la aplicación del móvil y tocaremos en Wifi y después en el símbolo «+».

Nos pedirá la IP de nuestro equipo portátil. La forma más sencilla de conocer la IP es teclear en un terminal:

$ ip a

Nos aparecerá algo similar a:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute 
       valid_lft forever preferred_lft forever
2: wlp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether a8:e2:91:37:56:4e brd ff:ff:ff:ff:ff:ff
    altname wlxa8e29137564e
    inet 192.168.100.10/24 brd 192.168.1.255 scope global dynamic noprefixroute wlp2s0
       valid_lft 41758sec preferred_lft 41758sec

La parte marcada en negritas, después de «inet» es vuestra IP.

Creamos la conexión y nos conectamos. Nos aparecerá un pin en el móvil que hay que teclear en LibreOffice. Si no os aparece la casilla en LibreOffice para teclear el pin, volved a abrir «Pase de diapositivas/Control remoto de Impress».

Ya está, así de simple.

Ahora se puede controlar la presentación desde el móvil.

Espero que os sea útil.

Publicado en Software | Deja un comentario

Un script sencillo para obtener la configuración de red completa de tu equipo en Linux

El siguiente script permite obtener la configuración de IP, puerta de enlace y DNS del equipo en el que se ejecute:

#!/bin/sh
echo "*** IP:"
ip a
echo
echo "*** Gateway:"
ip r
echo
echo "*** DNS:"
cat /etc/resolv.conf

Para ejecutarlo simplemente lo almacenamos en un archivo llamado «network_info.sh» y lo ejecutamos tecleando:

$ sh network_info.sh

Devolverá algo similar a:

*** IP:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute 
       valid_lft forever preferred_lft forever
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether a0:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
    altname enxd02788163592
    inet 192.168.1.100/24 brd 192.168.1.255 scope global noprefixroute enp1s0
       valid_lft forever preferred_lft forever
    inet6 fd03:caa4:aaaa:aaaa:aaaa:aaaa:aaaa:aaaa/64 scope global dynamic noprefixroute 
       valid_lft 1788sec preferred_lft 1788sec
    inet6 fe80::aaaa:aaaa:aaaa/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

*** Gateway:
default via 192.168.1.1 dev enp1s0 proto static metric 100 
192.168.1.0/24 dev enp1s0 proto kernel scope link src 192.168.1.2 metric 100 

*** DNS:
# Generated by NetworkManager
nameserver 8.8.8.8

Espero que os sea útil.

Publicado en Hardware, Software | Deja un comentario

Si tu impresora no coge bien el papel, hidrata las gomas de los rodillos con Nivea

Estaba yo imprimiendo y a mi impresora le costaba coger el papel. Ya ni con empujarlo con la mano lo cogía.

Una solución muy simple a este problema es hidratar las gomas de los rodillos que cogen el papel con Nivea (una conocida marca de crema de manos).

Una vez hidratados, hay que imprimir un papel en sucio un par de veces para quitar el exceso de crema.

Así de simple.

Espero que os sea útil.

Publicado en Hardware | Deja un comentario

El escritorio tradicional no es la mejor idea para usuarios nóveles

En el mundo hay todo tipo de usuarios de escritorio. Hay médicos, abogados, profesores, albañiles,… Todos ellos usan los ordenadores, pero no saben informática. Muchos de ellos no quieren saber de informática y no se van a esforzar.

Con Windows 95, Microsoft llevó al gran público el escritorio que ahora podemos llamar tradicional. En este escritorio los usuarios ponen sus documentos y tienen un acceso rápido a ellos.

Los usuarios saben que ese documento que deben consultar constantemente, lo han colocado en el centro. Los relacionados con el tema X están a la derecha. El tema Y en…

Muchos usuarios acaban colocando TODO en el escritorio. No usan carpetas o algún tipo de organización. Aquí comienzan los problemas.

Un usuario hace un «Guardar como» de su documento para trabajar con otra versión. ¿Qué hace el escritorio? Lo pone al azar en cualquier parte. Si el usuario tiene experiencia, lo buscará y lo recolocará en una posición más adecuda. Si no la tiene, lo más probable es que al día siguiente abra la versión anterior, con lo que no continuará su trabajo en el mismo documento. Dirá que el ordenador le ha borrado lo que había hecho y que hace cosas raras. Y dirá el tan conocido: Odio los ordenadores.

Puede que llame a alguien con más conocimientos que, después de un buen rato, le explique lo que ha sucedido. Le aconseje usar carpetas con las distintas versiones y organice el trabajo para evitar errores. A  la semana siguiente, el mismo usuario habrá vuelto al comportamiento inicial. Vuelta a empezar.

La forma de organizar los iconos del escritorio tradicional, puede parecer intuitiva, pero es una trampa para los nuevos usuarios.

¿Habría que transformar el escritorio en un mero lanzador de aplicaciones al estilo de algunos temas de Gnome Shell y las versiones iniciales de Windows 3.1? Tal vez sea lo más adecuado, pero yo no tengo la respuesta adecuada.

Nota: Escribo esto después de ver a una persona que encontró inconsistencias en su trabajo y casi se puso a llorar cuando descubrí su fallo.

Publicado en Opinión | Deja un comentario

Resumen de las optimizaciones que se pueden hacer al programar

En el siguiente enlace tenéis un resumen de las posibles optimizaciones que se pueden hacer al programar:

https://gist.github.com/Raimo33/a242dda9db872e0f4077f17594da9c78

Está orientado al lenguaje C, pero se puede aplicar a otros lenguajes.

Publicado en Programación, Software | Deja un comentario