diff --git a/content/posts/pills/pil_aneng8009.md b/content/posts/pills/pil_aneng8009.md new file mode 100644 index 0000000..895c71e --- /dev/null +++ b/content/posts/pills/pil_aneng8009.md @@ -0,0 +1,150 @@ +--- +weight: 4 +title: "Multímetro Aneng 8009" +date: 2023-11-06T14:04:14+0100 +draft: true +summary: "Manual de Usuario del polímetro ANENG8009" +categories: + - pildoras +tags: + - intrumentación +--- + +## Polímetro Aneng 8009 + +{{< admonition type=abstract title="Referencias" open=true >}} + +- +- +- +- + +{{< /admonition >}} + + + +AN8009 True-RMS: Multímetro Digital de Rango Automático, NCV, Ohmiómetro, AC / DC Voltaje y Corriente, Medición de Temperatura P20 + +ANENG AN8009 es uno de los primeros multímetros digitales con rango automático de 9999 unidades. + +Este producto funciona con batería con rms verdadero, pantalla LED y luz de fondo. + +Portátil y fácil de usar. + +### CARACTERISTICAS: + +- La luz de fondo puede hacer que la pantalla sea fácil de leer en condiciones oscuras. +- De tamaño pequeño, portátil con una bolsa, puede llevarlo a cualquier lugar que lo necesite. +- Fácil de trabajar, el rango automático mide de forma precisa con el chip de autocalibración para garantizar la precisión y la estabilidad. +- ESPECIFICACIONES TECNICAS: + - Nombre de la marca: ANENG + - Número de modelo: AN8009 + - Temperatura de funcionamiento: 0 - 40 ° + - Humedad de funcionamiento: =75% RH + - Condición de almacenamiento: -20 ~ 60 ° + - Humedad de almacenamiento: =80% RH + - Suministros de bricolaje: eléctricos + - Modo de funcionamiento: rango automático / manual + - Rango de medición de la inductancia: no + - Rango de temperatura de medición: -20 ~ 1000 C / -4F-1832F + - Rango de capacidad de medición: 9.99nF / 99.99nF / 999.9nF / 9.99uF / 99.99uF / 999.9uF / 9.999MF + - Rango de voltaje de medición: 999.9mV / 9.999V / 99.99V / 999.9V + - Rango de corriente de medición: 60mA / 600mA / 10A + - Rango de resistencia de medición: 99.99 / 999.9 / 9.999k / 99.99k / 999.9K / 999.9M + - Frecuencia: 99.99Hz / 999.9Hz / 9.999KHz / 99.99KHz / 999.9KHz / 9.999MHz + - Voltaje DC / AC (mV): 9.999mV / 99.99mV + - Voltaje DC / AC (V): 999.9mV / 9.999V / 99.99V / 750ACV (999.9DCV) + - Corriente DC / AC (mA & A): 999.9mA / 9.999A + - Corriente DC / AC (uA): 99.99µA / 999.9µA + - Tipo de pantalla: Pantalla digital + - Prueba de diodo: si + - Continuidad: si + - Ciclo de trabajo: 1% -99% + - Frecuencia de muestreo: 3 veces por segundo + - Potencia: 2 * 1.5V pilas AAA (no incluidas) + +- Contenido del Paquete: + - 1 x multímetro + - 1 x cable de prueba + sensor de temperatura + - 1 x manual de usuario + - 1 x bolsa de almacenamiento + - 1 x 16pc sonda de prueba + +Advertencia: + +1. NO exceda el “valor máximo” indicado en la Especificación; + +2. NO ingrese voltaje en el modo actual, el modo de resistencia, el modo de diodo, el modo de continuidad o el modo de temperatura; + +3. NO use el producto cuando las baterías o la tapa de la batería no estén colocadas correctamente; + +4. Apague el producto y retire los cables de prueba de los puntos de prueba antes de cambiar las baterías o los fusibles. + +5.Do no excede la tensión de entrada de 36V CC o 25V AC cuando está en el ajuste de la corriente de medición. + +Referencia de producto: AN8009 + + + +### Botones + +#### Range/Backlight + +Al presionar este botón entramos en los rangos manuales, cada presión en el botón aumenta el rango, al llegar al mayor rango la siguiente presión del botón te lleva al menor. Para salir del rango manual hay que mover el selector rotativo de función. +Si presionamos el botón continuamente más de 2 segundos encendemos la luz de la pantalla. + +#### Select/Hold + +Permite seleccionar entre distintos modos de funcionamiento dependiendo de la posición del selector rotativo de función. Si presionamos el bótón mas de 2 segundos entramos en el modo ___Hold___. + +#### Selector de función + +Posiciones + +| Pos. | Significado | +|:-----|:-------------------| +| Off | Polímetro apagado | +| DC V | Voltajes en DC y AC, Frecuencia (alto voltaje y baja frecuencia), Ciclo de trabajo | +| mV | Voltajes en DC y AC en el orden de milivoltios, Temperatura, | +| 100M | Resistencia, Continuidad, Diodo y Capacidad | +| Hz | Frecuencia (bajo voltaje y alta frecuencia), Ciclo de trabajo | +| A | Medidas de intensidad en DC y AC | +| µA | Medidas de intensidad en DC y AC en el orden de micro amperios | +| NCV | Detección de cables con AC | + + +### Medidas de voltaje AC y DC + +1. Conecta las puntas de prueba en las posiciones correspondientes (comun y conector derecho) +2. Selecciona la función de medida de voltajes en el selector rotativo +3. Selecciona AC o DC en el botón __Sel__ +4. Procede con las medidas + +### Medidas de corriente AC y DC + +1. Conecta las puntas de prueba en las posiciones correspondientes: Negra en `COM` y roja en `A mA` (centro e izquierda respectivamente) +2. Selecciona la función de medida de intensidades en el selector rotativo (posición `A mA`) +3. Selecciona AC o DC en el botón `Sel` +4. El medidor tiene que estar conectado en serie, tendrás que abrir el circuito donde quieres hacer la medida y poner el medidor en el medio. + +__Mucho ojo con respetar las especificaciones y los rangos de funcionamiento del polímetro__ + +### Medidas de corriente AC y DC (rango de micro amperios) + +### Medidas de resistencia + +### Medida de continuidad + +### Comprobar diodos + +### Medir Capacidad + +### Medidas de frecuencia y ciclo de trabajo + +### Medida de temperatura + +### Medidas de NCV + +### Auto-apagado + +El medidor se apaga a los quince minutos de inactividad. Pitará cinco minutos antes de apagarse para avisar. Puedes cancelar el apagado pulsando el botón __Sel__. Puedes cancelar el apagado automático si mantienes pulsado el botón __Sel__ mientras lo enciendes, pitará cinco veces para avisar de la cancelación. diff --git a/content/posts/pills/pil_emacs_build.md b/content/posts/pills/pil_emacs_build.md new file mode 100644 index 0000000..d0cd38e --- /dev/null +++ b/content/posts/pills/pil_emacs_build.md @@ -0,0 +1,296 @@ +--- +weight: 4 +title: "Emacs: Compilar Emacs en Linux Mint Vanessa" +date: 2023-07-26T11:24:41+0200 +draft: +summary: "Apuntes para compilar Emacs 28 y Emacs 29 en Linux Mint Vanessa. Debería funcionar sin muchos cambios para cualquier versión de Emacs en cualquier linux de la familia Debian" +categories: +- pildoras +tags: +- emacs +--- + +{{< admonition type=info title="Referencias" open=true >}} + +- [Building Emacs 28 on Ubuntu Linux](https://practical.li/blog/posts/build-emacs-28-on-ubuntu/) by Practicalli, la guia más completa que me he encontrado con diferencia. +- [The update-alternatives Command in Linux](https://www.baeldung.com/linux/update-alternatives-command) by Baeldung (también nos hará falta) +- [Installing Emacs 29.1 on Ubuntu 22.04 LTS](https://arnesonium.com/2023/07/emacs-29-1-on-ubuntu-22-04-lts) + +{{< /admonition >}} + + +Normalmente no me suelo complicar la vida compilando programas a menos que tenga unas ganas locas de probar algo y no haya más remedio, pero esta vez me dejé llevar. + +Trás actualizar a Linux Mint 21 (Vanessa) decidí que ya era hora de probar Emacs con _native compilation_ así que instale Emacs 28.1 desde el [ppa de Kelleyk](https://launchpad.net/~kelleyk/+archive/ubuntu/emacs). La instalación no dió ningún problema pero al intentar configurar Emacs una de las primeras cosas que hice fué poner _straight.el_ en lugar de _Package_ y me dió el error: + +`Symbol's function definition is void: gv-setter` + +Y con este error falla totalmente la carga de mi fichero `init.el`. + +El error puede comprobarse fácilmente con el comando: `emacs -q --eval "(require 'gv)"` + +A la hora de ponerme a compilar estaba convencido de haber leido en internet que era un fallo del código en Emacs y que se corregía con la siguiente versión, pero a la hora de escribir esto ya no estoy tan seguro por que soy incapaz de encontrar la referencia. + +En cualquier caso, decidí compilar Emacs 28.2 y estos son los pasos que seguí: + + +## Preparando el terreno + +Ajustamos nuestras preferencias de paquetes en Linux Mint (por ejemplo abriendo _Synaptic_) de forma que estén activados los orígenes de las fuentes del software (___Source Code___). Si lo haces con _Synaptic_ se encargará de actualizar, de lo contrario asegurate de hacer un `sudo apt update` desde el terminal. + + +Instalamos las dependencias para la compilación con `sudo apt build-dep` pero también instalamos algunos programas a mayores: + +```bash +sudo apt build-dep emacs && / +sudo apt install libgccjit0 libgccjit-11-dev libjansson4 libjansson-dev gnutls-bin +``` + +Los paquetes adicionales son para aprovechar todas las características del nuevo Emacs con _native compilation_, son necesarias para aprovechar todas las mejoras del rendimiento de Emacs. + +También tenemos que [descargar el código fuente de Emacs](https://www.gnu.org/software/emacs/download.html) + + +## Compilando el código fuente + +Establecemos las variables para el compilador: + +```bash +export CC=/usr/bin/gcc-11 && export CXX=/usr/bin/gcc-11 +``` + +Si tienes dudas de cual es tu gcc, ejecuta: + +```bash +$ which gcc +/usr/bin/gcc +$ ls -lha /usr/bin/gcc +/usr/bin/gcc ⇒ gcc-11 +``` + +{{< admonition type=warning open=true >}} +Si las variables de entorno CC y CCX no se especifican el script de configuración no va a poder encontrar muchas bibliotecas y dará errores del tipo `error: ELisp native compiler was requested, but libgccjit was not found.` +{{< /admonition >}} + +Ejecutamos el script `autogen.sh`, que creará un script `configure` específico para nuestro sistema. + +Y procedemos con la configuración ejecutando: + +```bash +./configure --with-native-compilation --prefix=/opt/emacs-28.2 +``` + +La opción `prefix` no es necesaria, pero yo quiero tener controlado donde se instala esta versión compilada de Emacs, no quiero que se mezcle con los ficheros del sistema. + +Como de momento no uso Emacs para gestionar mi correo puedo ignorar los warnings de `movemail` en cualquier caso ejecutando `./configure --help` podemos ver todas las opciones disponibles. En general `configure` ve disponibles en el sistema las bibliotecas necesarias, se habilitan las opciones correspondientes, aunque `--with-native-compilation` es obligatorio especificarla. + +Ahora lanzamos el proceso de compilación con + +```bash +make -j$(nproc) +``` + +Este comando asigna todos los nucleos del sistema a la compilación, podemos asignar un número fijo si queremos (por ejemplo `make -j2`) + +Una vez completada la compilación del programa sin errores, podemos probar nuestro Emacs recién compilado con `./src/emacs -q` + +También podemos comprobar que ya no tenemos el error de _gv_ con el comando `emacs -q —eval "(require 'gv)"` + + +## update-alternatives + +Suponiendo que hemos instalado nuestra nueva versión de Emacs en `/opt/emacs-28.2/`. Tendremos que usar la utilidad de sistema `update-alternatives` para dejar nuestro nuevo Emacs accesible. + +Si echamos un vistazo `/opt/emacs-28.2/bin`: + +```bash +ls /opt/emacs-28.2/bin +.rwxr-xr-x root root 445 KB Tue Nov 1 17:08:00 2022 ctags +.rwxr-xr-x root root 199 KB Tue Nov 1 17:08:00 2022 ebrowse +lrwxrwxrwx root root 10 B Tue Nov 1 17:08:01 2022 emacs ⇒ emacs-28.2 +.rwxr-xr-x root root 24 MB Tue Nov 1 17:08:01 2022 emacs-28.2 +.rwxr-xr-x root root 234 KB Tue Nov 1 17:08:00 2022 emacsclient +.rwxr-xr-x root root 441 KB Tue Nov 1 17:08:00 2022 etags +``` + +Veremos todos los programas ejecutables que hemos instalado al ejecutar el `make install`. + +Tomemos como ejemplo el comando `emacs`, vamos a ver como funciona la llamada a `emacs` en nuestro sistema. + +```bash +$ which emacs +/usr/bin/emacs + +$ ls -lha /usr/bin/emacs +/usr/bin/emacs ⇒ /etc/alternatives/emacs + +$ ls -lha /etc/alternatives/emacs +/etc/alternatives/emacs ⇒ /usr/bin/emacs28 +``` + +El Emacs de nuestro sistema `/usr/bin/emacs` apunta en realidad a `/etc/alternatives/emacs`. A su vez `/etc/alternatives/emacs` apunta a `/usr/bin/emacs28` (el que he instalado desde el PPA) + +Podemos inspeccionar la configuración de `update-alternatives` con dos comandos: `update-alternatives --config emacs` y `update-alternatives --display emacs`. El primero no da mucha información por que sólo tenemos una alternativa definida para emacs (de momento). El segundo es más interesante: + +```bash +$ update-alternatives --display emacs +emacs - auto mode + link best version is /usr/bin/emacs28 + link currently points to /usr/bin/emacs28 + link emacs is /usr/bin/emacs + slave emacs.1.gz is /usr/share/man/man1/emacs.1.gz +/usr/bin/emacs28 - priority 27 + slave emacs.1.gz: /usr/share/man/man1/emacs28.1.gz +``` + +Vamos a añadir nuestra nueva alternativa con prioridad 28: + +```bash +sudo update-alternatives --install /usr/bin/emacs emacs /opt/emacs-28.2/bin/emacs-28.2 28 \ +--slave /usr/share/man/man1/emacs.1.gz emacs.1.gz /opt/emacs-28.2/share/man/man1/emacs.1.gz +``` + +Ahora tendremos: + +```bash +$ update-alternatives --display emacs +emacs - auto mode + link best version is /opt/emacs28/bin/emacs-28.2 + link currently points to /opt/emacs28/bin/emacs-28.2 + link emacs is /usr/bin/emacs + slave emacs.1.gz is /usr/share/man/man1/emacs.1.gz +/opt/emacs-28.2/bin/emacs-28.2 - priority 28 + slave emacs.1.gz: /opt/emacs-28.2/share/man/man1/emacs.1.gz +/usr/bin/emacs28 - priority 27 + slave emacs.1.gz: /usr/share/man/man1/emacs.1.gz +``` + + +Si vemos todo los programas que tenemos disponibles en `/opt/emacs-28.2` veremos que tenemos que actualizar las alternativas para `emacsclient`, tags`, `etags` y `ebrowse`. + +```bash +sudo update-alternatives --install /usr/bin/emacsclient emacsclient /opt/emacs-28.2/bin/emacsclient 28 \ +--slave /usr/share/man/man1/emacsclient.1.gz emacsclient.1.gz /opt/emacs-28.2/share/man/man1/emacsclient.1.gz + +sudo update-alternatives --install /usr/bin/ctags ctags /opt/emacs-28.2/bin/ctags 28 \ +--slave /usr/share/man/man1/ctags.1.gz ctags.1.gz /opt/emacs-28.2/share/man/man1/ctags.1.gz + +sudo update-alternatives --install /usr/bin/etags etags /opt/emacs-28.2/bin/etags 28 \ +--slave /usr/share/man/man1/etags.1.gz etags.1.gz /opt/emacs-28.2/share/man/man1/etags.1.gz + +sudo update-alternatives --install /usr/bin/ebrowse ebrowse /opt/emacs-28.2/bin/ebrowse 28 \ +--slave /usr/share/man/man1/ebrowse.1.gz ebrose.1.gz /opt/emacs-28.2/share/man/man1/ebrowse.1.gz +``` + +## Ficheros desktop + +Ya casi hemos terminado, para finalizar solo tenemos que actualizar (o crear) ficheros `.desktop` que apunten a nuestro nuevo Emacs. + +Podemos comprobar los ficheros `.desktop` existentes con: + +```bash +$ ls -lha /usr/share/applications/*emacs* +.rw-r--r-- root root 440 B Tue May 17 05:05:27 2022 /usr/share/applications/emacs28.desktop +.rw-r--r-- root root 260 B Tue May 17 05:05:27 2022 /usr/share/applications/emacs28-mail.desktop +.rw-r--r-- root root 412 B Tue May 17 05:05:27 2022 /usr/share/applications/emacs28.desktop +.rw-r--r-- root root 643 B Tue May 17 05:05:27 2022 /usr/share/applications/emacsclient28-mail.desktop +.rw-r--r-- root root 826 B Tue May 17 05:05:27 2022 /usr/share/applications/emacsclient28.desktop +``` + +Tendremos que crear nuevas versiones de esos ficheros que apunten al Emacs recién instalado (o editar los existentes), por poner un ejemplo este es el fichero `emacs-28.2.desktop` resultado de modificar el `emacs28.desktop`: + +```ini +[Desktop Entry] +Name=Emacs-28.2 +GenericName=Text Editor +Comment=Edit text +MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++; +Exec=/opt/emacs-28.2/bin/emacs-28.2 %F +Icon=emacs28 +Type=Application +Terminal=false +Categories=Development;TextEditor; +StartupNotify=true +StartupWMClass=Emacs +``` + +Hay que ver el resto de ficheros desktop y comprobar si necesitan modificaciones para funcionar sin problemas. + + +## ACTUALIZACIÓN: Compilando emacs 29 + +Unas notas rápidas de los pasos seguidos para compilar Emacs 29. + + + + +```bash +# Recuerda que previamente hay que activar los origenes de software de Source Code +# Después de activarlos hacemos un update +sudo apt update + + +# Deberías tener instalado build-essential y git +# Ademas de algunas herramientas de compilación +sudo apt install build-essential git +sudo apt autoconf automake libtool + + +# Para tener las dependencias de Emacs instaladas hacemos un: +sudo apt build-dep emacs + +# Averigua que versión de libgccjit instalar (yo tengo gcc-11 ahora mismo) +# gcc --version + +# Instalamos algunas dependencias fundamentales: +sudo apt install texinfo libgccjit0 libgccjit-11-dev \ +libjansson4 libjansson-dev gnutls-bin + + +# Dependencias para tree-sitter +sudo apt install libtree-sitter-dev + +# Descargamos los fuentes, en este caso solo de la rama emacs-29 +cd ~/tmp +git clone --single-branch --branch=emacs-29 http://git.savannah.gnu.org/r/emacs.git emacs29 + + +# Preparamos el fichero configure +cd emacs29 +export CC=/usr/bin/gcc-11 && export CXX=/usr/bin/gcc-11 +./autogen.sh +./configure --without-compress-install --with-json --with-tree-sitter \ + --with-native-compilation=aot --with-rsvg \ + --prefix=/opt/emacs-29 + +# Opciones para investigar en el futuro: +# --with-mailutils +# --with-xwidgets ( apt install libwebkit2gtk-4.1-dev) +# --with-imagemagick +# --with-xft + +# Compilamos con los nucleos que queramos (yo le dedico cuatro) +# Si no tienes prisa, con la opción bootstrap haces un 'clean' y +# recompilas todos los ficheros, incluidos los ficheros elisp + +# make -j4 +make -j4 bootstrap + +# Comprobamos con +src/emacs -q + +# Instalamos +make check +sudo make install +``` + + +Podemos hacer `git tag --list` para ver todas las versiones disponibles, y con `git checkout` nos cambiamos a la versión que nos interese para compilarla. diff --git a/content/posts/pills/pil_freecad_versions.md b/content/posts/pills/pil_freecad_versions.md new file mode 100644 index 0000000..76adbe1 --- /dev/null +++ b/content/posts/pills/pil_freecad_versions.md @@ -0,0 +1,156 @@ +--- +weight: 4 +title: "Varias versiones de FreeCAD aisladas (appimages)" +date: 2021-10-25T23:16:27+0200 +draft: false +summary: "Como instalar varias versiones de FreeCAD aisladas (AppImages)" +categories: + - pildoras +tags: + - freecad +--- + +## Varias versiones de FreeCAD aisladas entre si + + +{{< admonition type=abstract title="Referencias" open=true >}} + +- Estos scripts están basados en el script propuesto por el usuario _**Maxi**_ en el [Grupo de Telegram FreeCAD en Español](https://telegra.ph/Grupo-Telegram-de-FreeCAD-en-Espa%C3%B1ol-07-12) + +{{< /admonition >}} + +Con la instalación propuesta podemos tener instaladas varias versiones de FreeCAD, por ejemplo la *stable* la *nightly* y la *real thunder* con configuraciones y módulos independientes entre ellas. + +Tenemos que crear un directorio para cada versión diferente que queramos instalar. Yo tengo todas en el directorio `~/apps/freecad` + +El contenido de ese directorio tiene esta pinta: + +```bash +tree freecad +freecad +├── fc019 +│ ├── current -> FreeCAD_0.19-24291-Linux-Conda_glibc2.12-x86_64.AppImage +│ ├── FreeCAD_0.19-24276-Linux-Conda_glibc2.12-x86_64.AppImage +│ ├── FreeCAD_0.19-24291-Linux-Conda_glibc2.12-x86_64.AppImage +│ ├── Mod +│ ├── system.cfg +│ ├── temp +│ └── user.cfg +├── fc020 +│ ├── current -> FreeCAD_weekly-builds-26155-Linux-Conda_glibc2.12-x86_64.AppImage +│ ├── FreeCAD_weekly-builds-25943-Linux-Conda_glibc2.12-x86_64.AppImage +│ ├── FreeCAD_weekly-builds-26155-Linux-Conda_glibc2.12-x86_64.AppImage +│ ├── Mod +│ ├── system.cfg +│ ├── temp +│ └── user.cfg +└── fcrt + ├── current -> FreeCAD-asm3-Stable-Conda-Py3-Qt5-20211015-glibc2.12-x86_64.AppImage + ├── FreeCAD-asm3-Stable-Conda-Py3-Qt5-20210922-glibc2.12-x86_64.AppImage + ├── FreeCAD-asm3-Stable-Conda-Py3-Qt5-20211015-glibc2.12-x86_64.AppImage + ├── Mod + ├── system.cfg + ├── temp + └── user.cfg +``` +En cada subdirectorio (`fc019`, `fc020` y `fcrt`): +- Creamos un directorio `Mod` +- Descargamos el fichero `appimage` correspondiente +- Creamos el enlace simbólico `current` + +Los scripts para arrancar las versiones tienen este contenido: + +```bash +#!/usr/bin/env bash +set -euo pipefail +IFS=$'\n\t' + +# Uncomment next line for using dot as decimal separator +# export LC_NUMERIC=en_US.UTF-8 +# Uncomment next line for having a comma instead of a dot in numeric pad (it's a global option) +setxkbmap -option kpdl:comma + +export HOME=/home/salvari/apps/freecad/fc019 +export FREECAD_USER_HOME=$HOME +~/current --user-cfg ~/user.cfg --system-cfg ~/system.cfg --module-path ~/Mod + + +# Set default keymap for numeric pad +setxkbmap -option '' +``` + +Establecen la variable `HOME` y `FREECAD_USER_HOME` al directorio de la versión particular. + +{{< admonition type=note title=Notas open=true >}} + +* En mis scripts originales sólo establecía la variable `HOME` pero las distintas versiones de FreeCAD seguían compartiendo el directorio de _add-ons_, al establecer la variable `FREECAD_USER_HOME` cada versión tiene sus _add-ons_ independientes. + +* Todavía no tengo muy claro que se almacena en el `module-path`, pero queda establecido "por si acaso" + +{{< /admonition >}} + +### Actualizar la versión + +- Descargamos el fichero `appimage` correspondiente a la nueva versión. +- Borramos el antiguo enlace simbólico `current` +- Creamos de nuevo el enlace apuntando a la nueva `appimage` (`ln -s current`) + +No es necesario tocar los scripts que lanzan *FreeCAD* + +### Un solo script para todo + +{{< admonition type=abstract title="Referencias" open=true >}} + +Este script se basa directamente en el script propuesto por _Maxi_ uno de los usuarios del [Grupo FreeCAD Español](https://t.me/FreeCAD_Es) en Telegram. + +{{< /admonition >}} + +Con sólo este script podemos lanzar todas las versiones: + +```bash +#!/usr/bin/env bash +set -euo pipefail +IFS=$'\n\t' + +# Menu + +echo "##### #### ### ####" +echo "# # # # # #" +echo "# ## #### #### # # # # #" +echo "#### # # # # # # # ##### # #" +echo "# # #### #### # # # # #" +echo "# # # # # # # # #" +echo "# # #### #### ### # # ####" +echo " " +echo " *************************" +echo " Elegir versión de FreeCAD" +echo " *************************" +echo " (1) FreeCAD 0.19" +echo " (2) FreeCAD 0.20" +echo " (3) RT Stable" +echo " (4) RT Daily" +echo " *************************" + +read opcion +case $opcion in + 1) + FREECAD_DIR=/home/usuario/apps/freecad/fc019 ;; # Ruta al archivo AppImage + 2) + FREECAD_DIR=/home/usuario/apps/freecad/fc020 ;; + 3) + FREECAD_DIR=/home/usuario/apps/freecad/fcrt ;; + 4) + FREECAD_DIR=/home/usuario/apps/freecad/fcrtd ;; + *) + echo "Invalid Option" + exit ;; +esac + +export HOME=$FREECAD_DIR +export FREECAD_USER_HOME=$FREECAD_DIR +~/current --user-cfg ~/user.cfg --system-cfg ~/system.cfg --module-path ~/Mod + +# Set default keymap for numeric pad +setxkbmap -option '' +``` + diff --git a/content/posts/pills/pil_install_bbb.md b/content/posts/pills/pil_install_bbb.md new file mode 100644 index 0000000..01b9247 --- /dev/null +++ b/content/posts/pills/pil_install_bbb.md @@ -0,0 +1,167 @@ +--- +weight: 4 +title: "Instalación de Big Blue Button" +date: 2021-11-15T10:11:01+0100 +draft: false +summary: "Desplegar un Big Blue Button" +categories: + - pildoras +tags: + - bbb +--- + +## Big Blue Button + +### Instalación + +Escogemos como imagen un Ubuntu 18.04 (es lo que recomiendan en la página oficial) + +Una vez instalado nuestro VPS con Ubuntu 18.04 abrimos sesión y dejamos el sistema actualizado + +```bash +apt update +apt upgrade +``` + +Es **super importante** que nuestro nuevo servidor tenga IPV6 activado. En mi caso basta con ejecutar `enable_ip6`. No sigas hasta tener esto activado por que fallará. + +Deja instalado el `redis-server` con `sudo apt install redis-server` + +Podemos comprobar el estado del servicio con `sudo service redis-server status` + +Yo siempre añado un usuario para administración del sistema (vamos a prohibir el login de `root` más tarde) + +```bash +adduser --uid=1111 hostadmin +gpasswd -a hostadmin sudo +``` + +Asegúrate de ser `root` y ejecuta: + +```bash +wget -qO- https://ubuntu.bigbluebutton.org/bbb-install.sh | bash -s -- -v bionic-24 -s bbb.example.com -e correoCertificados@provider.com -w -g -a +``` + +Con este comando le estamos diciendo: + +`-v bionic-24` + +: Instalar la última version (2.4) en nuestro Ubuntu Bionic (18.04) + +`-s bbb.example.com` + +: Nuestro _site_ va a tener esta URL + +`-e correoCertificados@provider.com` + +: Correo de referencia para negociar los certificados con _Let's Encrypt_ + +`-w` + +: Instalar y configurar UFW (_Uncomplicated FireWall_) + +`-g` + +: Instalar _Greenlight_: el interfaz web de nuestro servicio BBB + +`-a` + +: Instalar la API de pruebas de _Big Blue Button_ + +La instalación puede llevar hasta media hora, todo depende de lo rápido que sea tu servidor y tu proveedor. + +Una vez terminada nos indica direcciones URL para hacer pruebas sin necesidad de hacer login. Comprobamos que podemos establecer conferencias. + +Podemos sacar la lista de programas instalados: + +```bash +dpkg -l | grep bbb- +ii bbb-apps-akka 2.4.0-103 all BigBlueButton Apps (Akka) +ii bbb-config 1:2.4.0-53 amd64 BigBlueButton configuration utilities +ii bbb-demo 1:2.4.0-3 amd64 BigBlueButton API demos +ii bbb-etherpad 1:2.4.0-14 amd64 The EtherPad Lite components for BigBlueButton +ii bbb-freeswitch-core 2:2.4.0-28 amd64 BigBlueButton build of FreeSWITCH +ii bbb-freeswitch-sounds 1:1.6.7-5 amd64 FreeSWITCH Sounds +ii bbb-fsesl-akka 2.4.0-43 all BigBlueButton FS-ESL (Akka) +ii bbb-html5 1:2.4.0-2561 amd64 The HTML5 components for BigBlueButton +ii bbb-learning-dashboard 1:2.4.0-29 amd64 BigBlueButton bbb-learning-dashboard +ii bbb-libreoffice-docker 1:2.4.0-9 amd64 BigBlueButton setup for LibreOffice running in docker +ii bbb-mkclean 1:0.8.7-1 amd64 Clean and optimize Matroska and WebM files +ii bbb-playback 1:2.4.0-19 amd64 BigBlueButton playback +ii bbb-playback-presentation 1:2.4.0-9 amd64 BigBluebutton playback of presentation +ii bbb-record-core 1:2.4.0-14 amd64 BigBlueButton record and playback +ii bbb-web 1:2.4.0-99 amd64 BigBlueButton API +ii bbb-webrtc-sfu 1:2.4.0-65 amd64 BigBlueButton WebRTC SFU + +``` + +Cuando estemos satisfechos con las pruebas, eliminamos la API de pruebas con: + +```bash +apt purge bbb-demo +bbb-conf --restart +bbb-conf --status +``` + + + + +Creamos un usuario administrador para nuestra instancia de BBB: + +```bash +docker exec greenlight-v2 bundle exec rake admin:create + +Account successfully created. +Email: admin@example.com +Password: administrator +Role: admin +PLEASE CHANGE YOUR PASSWORD IMMEDIATELY +``` + +Hacemos caso del aviso y nos conectamos enseguida al BBB para cambiar la password del usario administrador. + +Los comandos para crear nuevos administradores y/o usuarios con todos los datos son: + +```bash +docker exec greenlight-v2 bundle exec rake user:create["name","email","password","admin"] +docker exec greenlight-v2 bundle exec rake user:create["name","email","password","user"] +``` + +Importante cambiar el registro a cualquier modalidad que no sea `Open Registration`, salvo que queramos gestionar las peticiones de registro claro. + +Puede ser interesante añadir al usuario administrador al grupo `docker`: + +```bash +gpasswd -a administrator docker +``` + +{{< admonition type=warning title="¡Asegura el servidor!" open=true >}} +Solo hemos descrito la instalación de BBB. Es responsabilidad tuya asegurar el servidor. + +La instalación descrita se encarga de instalar el UFW (Uncomplicated Firewall) pero como mínimo deberías: + +1. Prohibir el login de root en el sistema a través de ssh +2. Prohibir el login a través de ssh con contraseña y exigir certificados ssh +3. Instalar y configurar `fail2ban` o alguna herramienta similar. + +{{< /admonition >}} + + +### Referencias para optimizar nuestro servidor: + +- [Documentación Oficial: Custom Settings](https://gitlab.com/MaadiX/bbb-tuning/-/wikis/Big-Blue-Button-Custom-settings) +- [Multiples optimizaciones por Manish Katyan](https://github.com/manishkatyan/bbb-optimize) +- [Guía de BBB (por Higher Ed Lab)](https://higheredlab.com/bigbluebutton-guide/) + + +### Recetas + +#### Resetear password de usuario + +Nos conectamos al servidor de BBB + +```bash +docker exec -it greenlight-v2 bash +bundle exec rails c +User.find_by(email: "").update_attribute(:password,"") +``` diff --git a/content/posts/pills/pil_press.md b/content/posts/pills/pil_press.md new file mode 100644 index 0000000..275c5b8 --- /dev/null +++ b/content/posts/pills/pil_press.md @@ -0,0 +1,23 @@ +--- +weight: 4 +title: "Sistemas para hacer presentaciones" +date: 2022-06-17T12:29:53+0200 +draft: false +summary: "Diferentes sistemas para generar presentaciones en Linux" +categories: +- pildoras +tags: +- impress.js +- reveal.js +- pandoc +--- + +## Referencias + +- [reveal.js](https://revealjs.com/) el de siempre, imprescindible +- [impress.js](https://impress.js.org/) Un framework _javascript_ para hacer presentaciones al estilo _JessyInk_ +- [Latex-beamer](https://latex-beamer.com/quick-start/) otro clásico +- [slide-decks](https://gitlab.com/benjifisher/slide-decks) basado en reveal.js, permite generar presentaciones desde _markdown_ con _Pandoc_ +- [StoryMaps](https://storymap.knightlab.com/) Mapas con _javascript_ +- [JessyInk en Linux Journal](https://www.linux-magazine.com/Issues/2021/242/Create-appealing-presentations-with-Inkscape-and-JessyInk) Esta serie de tres artículos parece que es la mejor documentación del plugin JessyInk para Inkscape +- [JessyInk cutroom](https://jessyink-cutroom.glitch.me/) Para editar presentaciones hechas con JessyInk (no lo probé) diff --git a/content/posts/pills/pil_sshfs.md b/content/posts/pills/pil_sshfs.md new file mode 100644 index 0000000..c5b5209 --- /dev/null +++ b/content/posts/pills/pil_sshfs.md @@ -0,0 +1,47 @@ +--- +weight: 4 +title: "sshfs: Cómo usarlo" +date: 2021-06-30T21:00:41+0200 +draft: true +summary: "sshfs" +categories: + - pildoras +tags: + - ssh +--- + +## sshfs: modos de uso + +{{< admonition type=abstract title="Referencias" open=true >}} + +- + +{{< /admonition >}} + + +Ante todo tenemos que tener instalado `sshfs`: + +```bash +sudo apt install sshfs +``` + +Supongamos que queremos mapear un directorio de un usuario remoto (`remuser`) en nuestro directorio personal. + +Creamos un directorio que funcionará como punto de montaje en local y montamos el remoto: + +```bash +mkdir -p ~/mnt/ +sshfs remuser@remote_host:/home/remuser ~/mnt/remote_host +``` + +Montarlo como `root` + +`sudo sshfs -o allow_other,default_permissions,IdentityFile=~/.ssh/id_rsa root@xxx.xxx.xxx.xxx:/ /mnt/droplet` + + +Desmontamos con `umount` + + +### Entrada en fstab + +`sshfs#root@xxx.xxx.xxx.xxx:/ /mnt/droplet` diff --git a/content/posts/pills/pil_sshtunnel.md b/content/posts/pills/pil_sshtunnel.md new file mode 100644 index 0000000..50d1fe7 --- /dev/null +++ b/content/posts/pills/pil_sshtunnel.md @@ -0,0 +1,31 @@ +--- +weight: 4 +title: "Túneles ssh" +date: 2021-01-27T21:09:10+0100 +draft: true +summary: "Túneles ssh" +categories: + - pildoras +tags: + - ssh +--- + +Hay tres tipos de túneles ssh: + +- _Local Port Forwarding_ +- _Remote Port Forwarding_ +- _Dinamic Port Forwarding_ + +## _Local Port Forwarding_ + +Conecta un puerto en mi máquina **local** a un puerto de una máquina remota, a través de un servidor _ssh_. + +* El puerto de la maquina remota tiene que ser accesible para el servidor _ssh_. + +`ssh -L {puerto_local}:[ip_maquina_remota|localhost]:{puerto_maquina_remota} {usuario_ssh@servidor_ssh}` + + +## _Remote Port Forwarding_ + + +## _Dinamic Port Forwarding_ diff --git a/content/posts/pills/pil_wget_site.md b/content/posts/pills/pil_wget_site.md new file mode 100644 index 0000000..6bbe7d4 --- /dev/null +++ b/content/posts/pills/pil_wget_site.md @@ -0,0 +1,33 @@ +--- +weight: 4 +title: "wget: Descargar un website" +date: 2021-09-03T13:47:23+0200 +draft: false +summary: "Descargar un website con wget" +categories: + - pildoras +tags: + - wget +--- + +## wget: descargar un website + +{{< admonition type=abstract title="Referencias" open=true >}} + +- + +{{< /admonition >}} + + +```bash +wget \ + --recursive \ + --no-clobber \ + --page-requisites \ + --html-extension \ + --convert-links \ + --restrict-file-names=windows \ + --domains website.org \ + --no-parent \ + +```