Mathics3 en el navegador

Mathics3 es una herramienta de cálculo matemático capaz de resolver integrales, ecuaciones, dibujar funciones, matrices,… Su sintaxis es similar a la de Mathematica.

Se puede ejecutar directamente desde el navegador en el siguiente enlace sin instalar nada:

https://mathics3.github.io/Mathics3-live/

El manual de uso se encuentra en:

Tiene un tutorial muy recomendable de cómo usarlo en dicho manual.

Seguir leyendo
Publicado en Software | Deja un comentario

Un script para abrir una URL en modo aplicación en Firefox

Chrome y Edge tienen una opción que permite abrir una URL en modo aplicación de forma que se quitan las barras de navegación y se intenta imitar la apariencia de una aplicación de escritorio. Firefox antes también tenía esa opción, pero fue eliminada.

Lo echaba de menos y tras unos cuantos intentos he conseguido el siguiente script que simula dicho comportamiento:

#!/usr/bin/bash

function help() {
cat << EOF
Firefox app mode.

Opens url or file in Firefox as app mode. A new window will be opened with no navigation bar and it will show save as dialog when file would be downloaded.

$0 [--profile_path path] [--file path] [url]

--profile_path path : path to profile folder.
--file path : path to html file to open.

EOF
}

PROFILEPATH="firefox-appmode"
URL=""

POSITIONAL_ARGS=()
while [[ $# -gt 0 ]]; do
  case $1 in
    --profile_path)
      PROFILEPATH="$2"
      shift # past argument
      shift # past value
      ;;
    --file)
      URL=file://`realpath "$2"`
      shift # past argument
      shift # past value
      ;;
    --url)
      URL="$2"
      shift # past argument
      shift # past value
      ;;
   -*|--*)
      echo "Unknown option $1"
      help
      exit 1
      ;;
    *)
      URL="$1"
      POSITIONAL_ARGS+=("$1") # save positional arg
      shift # past argument
      ;;
  esac
done

if [[ $URL == "" ]] ; then
  echo "Error: No url"
  help
  exit 1
fi

echo "$URL"

mkdir -p "$PROFILEPATH/chrome"

if [[ ! -e "${PROFILEPATH}/chrome/userChrome.css" ]] ; then
echo Building "${PROFILEPATH}/chrome/userChrome.css"
cat << EOF > "${PROFILEPATH}/chrome/userChrome.css"
@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); /* only needed once */
#titlebar { visibility: collapse; }
#TabsToolbar { visibility: collapse !important; }
#nav-bar { visibility: collapse !important; }
#PanelUI-menu-button {display: none;}
#navigator-toolbox {visibility: collapse;}
EOF
fi

if [[ ! -e "${PROFILEPATH}/user.js" ]] ; then
echo Building "${PROFILEPATH}/user.js"
cat << EOF > "${PROFILEPATH}/user.js"
 // Enable userChrome.css
 user_pref("toolkit.legacyUserProfileCustomizations.stylesheets", true);
 // Enable save as dialog
 user_pref("browser.download.useDownloadDir", false);
EOF
fi

# Show system window decoration
export MOZ_GTK_TITLEBAR_DECORATION=system
exec firefox --profile "$PROFILEPATH" -no-remote "$URL"
Seguir leyendo
Publicado en Internet, Software | Deja un comentario

Cambiando el brillo de pantalla en KDE6 (Plasma 6) usando la línea de comando

Estoy probando Debian testing y acabo de sufrir el cambio de Plasma 5 a Plasma 6. Uno de los problemas que he encontrado es que al intentar cambiar el brillo de pantalla, el cambio es muy brusco de forma que sólo un 5% de cambio ya ponía la pantalla muy brillante. Como no tengo ganas de quemarme los ojos y quería mejorar la duración de la batería el siguiente comando te permite ir cambiando el brillo más finamente:

$ qdbus6 local.org_kde_powerdevil /org/kde/Solid/PowerManagement/Actions/BrightnessControl setBrightness 150

El 150 lo he puesto como ejemplo. Debéis ir ajustando este número hasta encontrar el brillo perfecto.

Seguir leyendo
Publicado en Software | Deja un comentario

Nueva versión de PDFMovePages

Está disponible la versión 0.4 de PDFMovePages. Un programa escrito en Java que permite mover, borrar, añadir y separar páginas de archivos PDF:

Seguir leyendo
Publicado en Software | Deja un comentario

Instalando Linux Debian 12 en un Microsoft Surface 3 de 2015 con 4Gb de RAM y 128Gb de disco

Aunque el proceso de instalación viene indicado en la siguiente página:

https://github.com/linux-surface/linux-surface/wiki/Installation-and-Setup

Al terminar me encontré que el equipo se «congelaba» de forma aleatoria. Estabas trabajando y dejaba de responder a todo. También me encontré que a veces el sonido no funcionaba correctamente y en otras la pantalla se «descentraba» veía la parte izquierda de la pantalla a la derecha y viceversa.

Después de muchas pruebas e investigaciones he conseguido que funcione correctamente sin necesidad de instalar el núcleo externo que la página de «linux-surface» sugiere.

Sólo decir que no he conseguido hacer funcionar correctamente la cámara ni el micrófono, tal y como se indica en la página de «linux-surface». Tampoco he conseguido la hibernación y no he investigado la suspensión. Lo del fallo en las cámaras y el micrófono lo considero una feature.

Vamos al lío. Decir que y he instalado Debian 12 siguiendo las instrucciones anteriores con el entorno de escritorio Plasma (KDE). Recomiendo usar un ratón USB después de la instalación para hacer algunas de las labores siguientes.


Muy importante: La arquitectura del Surface3 es “Cherry Trail”. Esto es importante pues se deberán habilitar las opciones disponibles para dicha arquitectura en el kernel.

En el archivo /etc/default/grub, hay que editar la línea:

GRUB_CMDLINE_LINUX_DEFAULT="quiet"

Y cambiarla por:

GRUB_CMDLINE_LINUX_DEFAULT="quiet i915.fastboot=1 i915.enable_guc=0 snd_intel_dspcfg.dsp_driver=2 intel_idle.max_cstate=2"

Ahora en un terminal se ejecuta lo siguiente:

su
export PATH=/sbin:$PATH
update-grub

Después de esto reiniciamos. Con esto se solucionan los problemas de congelaciones del sistema.

Para solucionar los problemas de reproducción de programas que usen ALSA hay que añadir en el archivo /etc/environment la línea:

PULSE_LATENCY_MSEC=100

Para que el clic del touchpad funcione en el gestor de sesión hay que crear el archivo /etc/X11/xorg.conf.d/99-synaptics-overrides.conf con el contenido:

Section  "InputClass"
Identifier "touchpad overrides"
Driver "libinput"
MatchIsTouchpad "on"
Option "Tapping" "on"
Option "TappingButtonMap" "lmr"
EndSection

Se vuelve a reiniciar el equipo.

Conviene entrar en las «Preferencias del sistema» y configurar a tu gusto el touchpad. sobre todo ajusta el modo de hacer clic.

A disfrutar.

¿Qué se está haciendo?

Si se enumeran las opciones que se activan en el kernel:

  • i915.fastboot=1: Sirve para habilitar la opción fastboot de la arquitectura “Cherry Trail”. He comprobado que elimina numerosos errores, artefactos gráficos y cuelgues. Los kernel modernos lo tienen activado por defecto. Más información en: https://wiki.archlinux.org/title/Intel_graphics
  • i915.enable_guc=0: Haciendo pruebas he visto que no soporta la opción GUC. Por lo que la dejo desactivada por defecto.
  • snd_intel_dspcfg.dsp_driver=2: Se usan los drivers de sonido antiguos. Por defecto, el kernel tiende a usar los driver libres, pero dan problemas, como he sufrido en mis carnes. Por lo que hay que activar los drivers antiguos. Más información en: https://fedoraproject.org/wiki/Changes/SofDefaultForIntelLpe
  • intel_idle.max_cstate=1: Desactiva los estados de suspensión del procesador. https://docs.kernel.org/admin-guide/pm/intel_idle.html

https://www.linuxium.com.au/how-tos/running-ubuntu-on-intel-bay-trail-and-cherry-trail-devices

aconseja poner:

intel_idle.max_cstate=2

Con este valor me ha funcionado correctamente. Los estados soportados vienen descritos en el siguiente enlace:

https://www.intel.com/content/www/us/en/support/articles/000006619/processors/intel-core-processors.html

En el caso del sonido se daban cortes en la reproducción, silencios cada poco tiempo o incluso cuelgues que dejaban congelado el equipo. Descubrí que sólo se daba en las aplicaciones que usaban ALSA. En un foro perdido alguien lo resolvía con:

PULSE_LATENCY_MSEC=100

Habría que jugar con los valores de latencia para encontrar la óptima.

¿Qué se ha ganado?

Me he encontrado que el rendimiento de la máquina es más que aceptable. Se me pasó mirar el espacio libre en disco con el sistema recién instalado, pero creo que es más que aceptable.

Respecto al espacio en disco, me he quedado con ganas de instalar un sistema de ficheros btfrs y activarle la compresión de archivos para así tener mucho más espacio en disco.

Una pequeña crítica que hago es que debería haber una wiki con los listados de fabricantes y equipos en los que la gente pudiese contribuir con sus aportaciones de cara a las configuraciones que hay que hacer después de instalar Linux en un equipo.

Actualmente dependes de los buscadores, foros y las páginas de Arch Linux para, si hay suerte, encontrar la configuración que haga que tu equipo funcione correctamente.

A no ser que compres un equipo de un fabricante que ya te lo venda preinstalado, es un juego que los usuarios nóveles no pueden superar:

https://www.genbeta.com/genbeta/estas-marcas-que-venden-portatiles-linux-instalado

Espero que os sea útil.

Publicado en Hardware | Deja un comentario

El ordenador a veces se congela y los c-states de Intel

Un valor incorrecto en el Intel C-state puede a veces congelar el ordenador.

Estos estados controlan el ahorro de energía y están descritos en el siguiente enlace:

https://www.intel.com/content/www/us/en/support/articles/000006619/processors/intel-core-processors.html

En caso de que vuestro Linux sufra “cuelgues” o se quede “congelado”, podéis intentar lo siguiente:

Edite su /etc/default/grub.

Cambie la línea que empieza por GRUB_CMDLINE_LINUX_DEFAULT por:

GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_idle.max_cstate=1"

Esto desactiva el c-state.

Ahora, actualice grub:

sudo update-grub

Reinicie.

Si funciona y el sistema no se congela, puedes intentar cambiar los valores de max_cstate a 2, 3, 4 hasta encontrar la mejor configuración.

Si no funciona, restaura tu /etc/defaul/grub.

Buena suerte.

Publicado en Hardware | Deja un comentario

Un forma sencilla de programar/parar la hora de apagado en Linux

La siguiente aplicación permite programar la hora de apagado del ordenador de forma sencilla:

https://codeberg.org/selairi/schedule_shutdown_asking_daily

Desde una ventana se pueden añadir las horas de apagado. Entre 20 y 15 minutos antes de la hora de apagado, a los usuarios que estén conectados les aparecerá una ventana en la que se les permite parar este apagado con sólo pulsar aceptar o cerrar:

De esta forma un usuario puede continuar trabajando sin que se le apague el ordenador.

Seguir leyendo
Publicado en Hardware, Programación, Software | Deja un comentario

PDFMovePages Java: Añade, borra y cambia la posición de las páginas de un documento en PDF de forma sencilla

Me gusta PDF-Shuffler, es una aplicación para poder modificar las páginas de un documento PDF:

https://sourceforge.net/projects/pdfshuffler/

Su gran limitación es que sólo la podía ejecutar en Linux, por ello escribí:

https://selairi.github.io/PDFMovePages/PDFMovePages.html

Que es una versión web de la misma. Pero descubrí que tenía limitaciones para documentos grandes.

He estado escribiendo una versión en Java de PDFMovePages. Esta versión se puede utilizar en Linux, Windows o Mac.

Para descargarla, podéis seguir las instrucciones de:

https://codeberg.org/selairi/PDFMovePages

y luce tal que así:

El botón «+» permite añadir nuevos documentos. Se pueden unir tantos documentos PDF como se deseé.

Con los botones de subir y bajar «⬆», «⬇» se pueden mover las páginas seleccionadas. También se puede arrastrar y soltar las páginas.

Con el botón de la papelera «🗑» podremos eliminar páginas.

El botón de guardar «▶ 🖫» permite guardar el documento final.

Si se selecciona una página, se mostrará una previsualización. Con los botones de la lupa se podrá ampliar o reducir la imagen previsualizada.

Espero que os sea útil.

Publicado en Software | Deja un comentario

Resolviendo el problema del sonido entrecortado cuando se abren dos aplicaciones en pipewire

El problema: Tienes tu flamante sistema GNU/Linux funcionando y cuando abres dos aplicaciones que usen, o vayan a usar, sonido suena entrecortado. En mi caso también me sucedía que ciertas aplicaciones tenían un rendimiento muy pobre. Tienes instalado como sistema de sonido Pipewire y Wireplumber.

La solución:

Seguir leyendo
Publicado en Hardware | Deja un comentario

Pongo un servidor casero en la Raspberry Pi y recibo numerosos ataques

Por azares del destino puse a funcionar una Raspberry Pi con pequeño servidor que lo único que hacía es servir una página en mensaje de «Hola mundo». Probé a redirigir los puertos del router y en el log empecé a ver cosas extrañas.

Mi router tiene IP dinámica por lo que esperaba no tener apenas visitas. Pero las tuve.

La moraleja de esta historia es que aunque sea un simple servidor casero hay que tener todas las precauciones:

Tenerlo siempre actualizado, usar contenedores para proteger los servicios, usuarios sin privilegios,…

Seguir leyendo
Publicado en Internet | 2 comentarios