diff options
author | Santiago Soler <santiago.r.soler@gmail.com> | 2021-03-22 21:14:44 -0300 |
---|---|---|
committer | Santiago Soler <santiago.r.soler@gmail.com> | 2021-03-22 21:14:44 -0300 |
commit | ef0577ab9df4285fb016398e7545fe68c2df5b3a (patch) | |
tree | c2a4696330dcfadc2102e5863b0bec20160f514c | |
parent | 1e3abc4d7b60f36d75a79589f949a485d8e2ccc7 (diff) | |
download | website-ef0577ab9df4285fb016398e7545fe68c2df5b3a.tar.gz |
Refactor website to use Jekyll
26 files changed, 529 insertions, 1241 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a9e1dc7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +.jekyll-cache +Gemfile.lock +_site/ @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +source "https://rubygems.org" + +gem "jekyll" +gem 'jekyll-feed' @@ -1,2 +1,8 @@ +all: + bundle exec jekyll build + serve: - python -m http.server + bundle exec jekyll serve + +clean: + bundle exec jekyll clean @@ -1,2 +1,23 @@ -# website-texto-plano.xyz -Source code for personal website in texto-plano.xyz +# Source code para blog personal en texto-plano.xyz + +Código fuente para generar mi blog en +[texto-plano.xyz](https://texto-plano.xyz): +[texto-plano.xyz/~santisoler](https://texto-plano.xyz/~santisoler) + +Realizado con [Jekyll](https://jekyllrb.com) y un CSS propio. + +## Cómo construir el sitio web + +1. Instalar [Jekyll](https://jekyllrb.com) +2. Clonar el repositorio con `git clone https://git.texto-plano.xyz/santisoler/website` +3. Construir y servir el sitio web a través de Jekyll con: `bundle exec jekyll serve` + +## Licencia + +Contenido bajo +[Licencia Creative Commons Atribución 4.0 Internacional][cc-by]. + +[![CC BY 4.0][cc-by-image]][cc-by] + +[cc-by]: https://creativecommons.org/licenses/by/4.0/deed.es +[cc-by-image]: https://i.creativecommons.org/l/by/4.0/88x31.png diff --git a/_config.yml b/_config.yml new file mode 100644 index 0000000..c71a0a4 --- /dev/null +++ b/_config.yml @@ -0,0 +1,11 @@ +title: ~santisoler +author: ~santisoler + +baseurl: /~santisoler + +plugins: + # Use jekyll-feed for compiling RSS + - jekyll-feed + +# If you want to show posts excerpt on the home page set this to true +show-excerpt: false diff --git a/_includes/footer.html b/_includes/footer.html new file mode 100644 index 0000000..95a7a35 --- /dev/null +++ b/_includes/footer.html @@ -0,0 +1,17 @@ +<footer> + <p> + Contenido disponible bajo + <a href="https://creativecommons.org/licenses/by/4.0/deed.es" + >Creative Commons Atribución 4.0 Internacional</a + > + </p> + <p> + Construida con + <a href="https://jekyllrb.com/">Jekyll</a> y + <a href="https://github.com/tonsky/FiraCode">Fira Code</a> font + </p> + <p> + Este sitio no trackea tu actividad y consume la menor cantidad de recursos + posibles + </p> +</footer> diff --git a/_layouts/base.html b/_layouts/base.html new file mode 100644 index 0000000..dec11b7 --- /dev/null +++ b/_layouts/base.html @@ -0,0 +1,40 @@ +<!DOCTYPE html> +<html lang="es"> + <head> + <meta charset="UTF-8" /> + <title>{{ site.title }}</title> + <link rel="shortcut icon" href={{ "/images/favicon.png" | absolute_url }} /> + <link rel="stylesheet" href={{ "/assets/fira_code_v5.2/fira_code.css" | + absolute_url }} /> <link rel="stylesheet" href={{ "/css/style.css" | + absolute_url }} /> + </head> + + <body> + <nav> + <ul> + <li> + <div class="nav-item"> + <a href="{{ site.baseurl }}/"> + {% if page.layout == "home" %} + ~ + {% else %} + .. + {% endif %} + </a> + </div> + </li> + <li> + <div class="nav-item"> + <a href={{ "/feed.xml" | absolute_url }}> + RSS + </a> + </div> + </li> + </ul> + </nav> + + {{ content }} + </body> + + {% include footer.html %} +</html> diff --git a/_layouts/default.html b/_layouts/default.html new file mode 100644 index 0000000..cfd9590 --- /dev/null +++ b/_layouts/default.html @@ -0,0 +1,5 @@ +--- +layout: base +--- + +<main>{{ content }}</main> diff --git a/_layouts/home.html b/_layouts/home.html new file mode 100644 index 0000000..654be00 --- /dev/null +++ b/_layouts/home.html @@ -0,0 +1,29 @@ +--- +layout: base +--- + +<header> + <h1>{{ site.title }}</h1> + + <h2> + Sitio de {{ site.author }} en + <a href="https://texto-plano.xyz">texto-plano.xyz</a> + </h2> +</header> + +<main> + + <h1>Blog</h1> + + <ul class="posts-list"> + {% for post in site.posts %} + <li> + <h2><a href="{{ post.url | relative_url }}">{{ post.title }}</a></h2> + <p><em>{{ post.date | date: "%Y-%m-%d"}}</em></p> + {% if site.show-excerpt %}<p>{{ post.excerpt }}</p>{% endif %} + </li> + {% endfor %} + </ul> + + {{ content }} +</main> diff --git a/_layouts/post.html b/_layouts/post.html new file mode 100644 index 0000000..ac73226 --- /dev/null +++ b/_layouts/post.html @@ -0,0 +1,9 @@ +--- +layout: default +--- + +<h1>{{ page.title }}</h1> + +<p class="date"><em>{{ page.date | date: "%Y-%m-%d" }}</em></p> + +{{ content }} diff --git a/_posts/2021-03-13-software-libre-android.md b/_posts/2021-03-13-software-libre-android.md new file mode 100644 index 0000000..bfc4822 --- /dev/null +++ b/_posts/2021-03-13-software-libre-android.md @@ -0,0 +1,177 @@ +--- +title: Software Libre en Android +layout: post +excerpt: | + Una lista de aplicaciones de Software Libre para utilizar en nuestro + Android como alternativa a las aplicaciones privativas que viene de + fábrica. +--- + +## TL;DR + +- [Tu teléfono celular es una computadora](#computadoras) +- [Cómo reemplazar las aplicaciones de tu celu por Software + Libre](#fdroid) + +## Nuestras computadoras de bolsillo {#computadoras} + +Los tiempos en los que el término *computadora* se limitaba a ese +aparato de color beige que encontrábamos en los escritorios de algunas +casas han quedado en el pasado. Hoy las computadoras están en todos +lados y tienen mil formas distintas. Desde laptops super finitas, +computadoras de escritorio con muchas luces RGB, PCs viejas que aguantan +el paso del tiempo, netbooks como las de Conectar Igualdad hasta mini +computadoras como las Raspberry Pi. Sin embargo, esta lista deja afuera +lo que puede ser la categoría de las computadoras más populares hoy en +día: los smartphones o teléfonos celulares. + +¡Sí, ese teléfono que tenés en el bolsillo es una computadora! De hecho, +tiene muchísimo más poder de procesamiento que computadoras de hace 20 +años. Los procesadores que encontramos en dispositivos que corren +Android o iOS son muy poderosos: tienen múltiples núcleos, procesan +gráficos en alta definición, realizan múltiples tareas de manera +simultánea. Son tan poderosos que la NASA eligió un Snapdragon (un +procesador bastante común en dispositivos Android) para que el drone +[Ingenuity](https://es.wikipedia.org/wiki/Mars_Helicopter_Ingenuity) +pueda volar de manera autónoma en Marte: [Ingenuity volará en Marte con +software de código abierto y un chip de +smartphone](https://www.muycomputer.com/2021/02/22/ingenuity-codigo-abierto-linux/). + +Personalmente disfruto mucho de interactuar con computadoras, pero creo +que mi mayor placer viene de sentir que puedo modificar mi computadora a +mi antojo, *programarla* para que realice las tareas que yo quiero. Esto +es relativamente sencillo de alcanzar en computadoras de escritorio o +laptops si instalamos en ella Software Libre. Hoy en día encontramos +Sistemas Operativos que se instalan muy sencillamente en cualquier +computadora de escritorio o laptop, sin necesidad de ser un experte en +informática. Los ejemplos más comunes son las distribuciones de +GNU/Linux, que hoy en día presentan una oferta super amplia para +novates: Ubuntu, Xubuntu, Fedora, Manjaro, entre otras. + +Sin embargo, el panorama no es el mismo para la otra gran categoría de +computadoras que utilizamos a diario: los celulares. Voy a tratar +particularmente los dispositivos Android, ya que los iOS merecen otra +larga conversación. Estas computadoras suelen venir de fábrica con un +sistema operativo preinstalado: Android. Este sistema operativo está +basado en el kernel Linux, el mismo que usan las tan benévolas +distribuciones de GNU/Linux, y a su vez se encuentra disponible bajo +**licencias de Software Libre**. Hasta acá todo bien, pero el problema +es que los fabricantes de teléfonos nos entregan un Android +completamente modificado, con muchísimo software que probablemente no +necesitemos (*bloat software*) o que nos espía (*spyware*) y con muchas +limitaciones para modificar el sistema (no tenemos acceso al usuario +**root**). En resumen: no tenemos el control sobre nuestra computadora +de bolsillo. + +Estas características del teléfonos que compramos atentan contra nuestra +libertad, son funcionales a la obsolesencia programa para que tengamos +que cambiar de dispositivo cada dos años y nos exponen a aplicaciones +cuyo interés es recopilar nuestros datos para llenar nuestras pantallas +de publicadades apuntadas a nuestros intereses. + +## ¿Qué podemos hacer? + +Existen muchas formas de "saltar" ese cerco impuesto por los +fabricantes. Una de ellas consiste en *rootear* el teléfono, un proceso +mediante el cual accedemos al usuario root y con ello a los privilegios +de realizar cualquier cambio que deseemos en nuestro teléfono. Esto nos +permite desde eliminar definitivamente aplicaciones que no deseamos, +hasta instalar un sistema operativo completamente distinto (como +[LineageOS](https://lineageos.org/)). El principal problema de estas +prácitas es que requieren algún nivel elevado de conocimiento y se suele +correr el riesgo de *brickear* nuestro teléfono (dejarlo inutilizable, +solo sirve de *brick*==ladrillo). + +Existen soluciones más sencillas para usuaries sin tantos conocimientos. +Podemos comenzar por **deshabilitar** las aplicaciones que no queremos +utilizar. Usualmente esto se puede realizar desde Preferencias > +Aplicaciones. Sin embargo es posible que deseemos tener las +funcionalidades que esa aplicación ofrece, pero no a través de esa +aplicación que nos espía o consume muchos recursos. Para ello podemos +optar por instalar aplicaciones alternativas, y ya que estamos, por qué +no elegir Software Libre. + +## F-Droid y Software Libre en Android {#fdroid} + +La forma más rápida de acceder a aplicaciones Libres en Android es a +través de [F-Droid](https://f-droid.org/), una alternativa a las tiendas +de aplicaciones como el Play Store, pero que sólo incluye Software +Libre. Podés descargar F-Droid, instalarlo en tu teléfono y acceder a la +tienda como una aplicación más. Si bien hablo de *tienda*, las +aplicaciones que se encuentrar en F-Droid son en su mayoría gratuitas, +aunque muchas invitan a sus usuaries a realizar una donación para +continuar los proyectos. La ventaja de las aplicaciones que encontramos +en F-Droid son más o menos las mismas que encontramos en nuestras +distribuciones de GNU/Linux: + +- Tenemos las 4 libertades del Software Libre +- Suelen consumir menos recursos que las alternativas privativas +- No nos espían +- No poseen publicidades +- No exigen permisos innecesarios + +F-Droid tiene un número muy grande de aplicaciones, por eso voy a dejar +una lista de las aplicaciones que personalmente recomiendo. + +- [Simple File Manager + Pro](https://f-droid.org/en/packages/com.simplemobiletools.filemanager.pro/): + Explorador de archivos +- [Simple Gallery + Pro](https://f-droid.org/en/packages/com.simplemobiletools.gallery.pro/): + Galería de imágenes +- [Simple Contacts + Pro](https://f-droid.org/en/packages/com.simplemobiletools.contacts.pro/): + Agenda de contactos +- [DuckDuckGo Privacy + Browser](https://f-droid.org/en/packages/com.duckduckgo.mobile.android/): + Navegador web (que respeta tu privacidad) +- [Open + Camera](https://f-droid.org/en/packages/net.sourceforge.opencamera/): + Cámara +- [Simple Calendar + Pro](https://f-droid.org/en/packages/com.simplemobiletools.calendar.pro/): + Calendario +- [K-9 Mail](https://f-droid.org/en/packages/com.fsck.k9/): Cliente de + mail +- [Vanilla + Music](https://f-droid.org/en/packages/ch.blinkenlights.android.vanilla/): + Reproductor de música +- [VLC](https://f-droid.org/en/packages/org.videolan.vlc/): + Reproductor de videos +- [Binary + Eye](https://f-droid.org/en/packages/de.markusfisch.android.binaryeye/): + Lector de códigos QR +- [Voice + Recorder](https://f-droid.org/en/packages/com.simplemobiletools.voicerecorder/): + Grabador de audio +- [Syncthing](https://f-droid.org/en/packages/com.nutomic.syncthingandroid/): + Sincronizador de archivos entre dispositivos +- [OsmAnd](https://f-droid.org/en/packages/net.osmand.plus/): Mapas y + GPS (la mejor aplicación GPS del mundo, mapas offline, imágenes + satelitales, trackea recorridos, navegación por voz y mucho más) +- [OpenBoard](https://f-droid.org/en/packages/org.dslul.openboard.inputmethod.latin/): + Teclado en pantalla (la aplicación de teclado que viene por defecto + *podría* espiar todo lo que tipeamos) +- [NewPipe](https://f-droid.org/en/packages/org.schabi.newpipe/): Ver + videos de Youtube (sin publicidades, podemos reproducir de fondo y + hasta descargar los videos para verlos cuando no tenemos conexión) +- [MuPDF + mini](https://f-droid.org/en/packages/com.artifex.mupdf.mini.app/): + Lector de PDF +- [Markor](https://f-droid.org/en/packages/net.gsantner.markor/): + Editor de Markdown (útil para tomar notas y sincronizarlas con + Syncthing a nuestras compus) +- [KeePassDX](https://f-droid.org/en/packages/com.kunzisoft.keepass.libre/): + Gestor de contraseñas (usemos gestores de contraseñas, **no repitas + el mismo password en todos lados**) +- [andOTP](https://f-droid.org/en/packages/org.shadowice.flocke.andotp/): + Aplicación para autenticaciones con doble factor (2FA), alternativa + a Google Authenticator (usemos 2FA en lo posible, aumenta muchísimo + la seguridad de nuestras cuentas en la red) + +**Observación:** La lista fue actualizada en 2021-03-13, algunas de las +aplicaciones pueden haberse discontinuado o pueden haber alternativas +mejores. + +Si conocés alguna aplicación que creés que merece estár en esta lista, +por favor escribime a santisoler arroba texto-plano.xyz diff --git a/_posts/2021-03-17-chatear-con-irssi.md b/_posts/2021-03-17-chatear-con-irssi.md new file mode 100644 index 0000000..7475833 --- /dev/null +++ b/_posts/2021-03-17-chatear-con-irssi.md @@ -0,0 +1,102 @@ +--- +title: Chatear por IRC con irssi +layout: post +excerpt: | + Una breve tutorial sobre cómo configurar irssi para chatear por IRC en + texto-plano.xyz. +--- + +Una de las formas de conectarse al IRC de texto-plano.xyz es a través de +pdmenu, eligiendo la opción "IRC de texto-plano (directo con +catgirl)". Una de las cosas interesantes de texto-plano.xyz es que +muchas cosas suceden dentro del servidor, hay interacciones que **solo +existirán en el servidor** como todo lo que escribamos en BBJ. + +Sin embargo mi curiosidad me llevó a probar conectarme al IRC desde una +de mis computadoras, sin tener que loguearme texto-plano.xyz. Al +principio logré conectar Pidgin, siguiendo las instrucciones que varies +de la comunidad compartieron en la BBJ. Pero ese llamado a no salir de +la terminal volvió a sonar en mi cabeza, así que decidí conectarme por +`irssi`. + +## Configurar irssi para el IRC de texto-plano + +Empezamos descargando irssi desde el gestor de paquetes de tu distro, +por ejemplo: + +En Manjaro y Arch: + +``` +sudo pacman -S irssi +``` + + +o en Ubuntu y Debian: + +``` +sudo apt install irssi +``` + + +Luego lo ejecutamos por primera vez con: + +``` +irssi +``` + +Irssi utiliza como nickname por defecto el nombre de nuestro usuario, +sin embargo ese puede no coincidir con el usuario con el que nos +logueamos en IRC. Para cambiarlo vamos a salir de irssi con `/exit` y +editar el archivo `~/.irssi/config`. Tenemos que buscar la línea que +define nuestro nickname y cambiarlo a gusto. Luego volvemos a entrar a +irssi. + +Una vez adentro, vamos a empezar por crear una nueva NETWORK que +llamaremos *tilde.chat*: + +``` +/network add tilde.chat +``` + + +Después añadiremos el servidor de irc.tilde.chat + +``` +/server add -auto -tls -port 6697 -network tilde.chat irc.tilde.chat +``` + + +Con la opción *auto* le indicamos a irssi que se conecte automáticamente +a este servidor cuando iniciamos. Con *tls* habilitamos SSL y con *port* +indicamos a qué puerto debe conectarse (tilde.chat utiliza el 6697). + +Luego podemos conectarnos con: + +``` +/connect tilde.chat +``` + + +Es probable que la primera vez que nos conectemos nos den instrucciones +para validar nuestro nickname y asignarnos una contraseña. Acordate de +guardar esa contraseña utilizando un gestor de contraseñas como +[KeepassXC](https://keepassxc.org/). + +Una vez que nuestro nickname se encuentre validado, podemos finalmente +acceder a la sala de **#texto-plano** con: + +``` +/join #texto-plano +``` + + +Podemos salir de la sala con `/leave` y salir definitivamente de irssi +con `/exit` + +Si tuviste algún problema siguiendo estos pasos, encontraste algún error +o creés que vale la pena agregarle algo más, no dudes en escribirme a +santisoler *arroba* texto-plano.xyz + +## Referencias + +- [Documentación de Irssi](https://irssi.org/documentation/startup/) diff --git a/assets/fira_code_v5.2/README.txt b/assets/fira_code_v5.2/README.txt deleted file mode 100644 index 95e1667..0000000 --- a/assets/fira_code_v5.2/README.txt +++ /dev/null @@ -1,566 +0,0 @@ -Installing -========== - -Windows -------- - -In the ttf folder, double-click each font file, click “Install font”; to install all at once, select all files, right-click, and choose “Install” - -OR - -Use https://chocolatey.org: - - choco install firacode-ttf - - -macOS ------ - -In the downloaded TTF folder: - -1. Select all font files -2. Right click and select `Open` (alternatively `Open With Font Book`) -3. Select "Install Font" - -OR - -Use http://brew.sh: - - `brew tap homebrew/cask-fonts` - `brew cask install font-fira-code` - - -Ubuntu Zesty (17.04), Debian Stretch (9) or newer -------------------------------------------------- - -1. Make sure that the `universe` (for Ubuntu) or `contrib` (for Debian) repository is enabled (see https://askubuntu.com/questions/148638/how-do-i-enable-the-universe-repository or https://wiki.debian.org/SourcesList#Component) -2. Install `fonts-firacode` package either by executing `sudo apt install fonts-firacode` in the terminal or via GUI tool (like “Software Center”) - - -Arch Linux ----------- - -Fira Code package is available in the official repository: https://www.archlinux.org/packages/community/any/otf-fira-code/. - -Variant of Fira Code package is available in the AUR: https://aur.archlinux.org/packages/otf-fira-code-git/. - - -Gentoo ------- - - emerge -av media-fonts/fira-code - - -Fedora ------- - -A Fedora copr repository is available: https://copr.fedorainfracloud.org/coprs/evana/fira-code-fonts/. Package sources https://gitlab.com/evana11/fira-code-fonts-fedora. - -To install, perform the following commands: - - dnf copr enable evana/fira-code-fonts - dnf install fira-code-fonts - - -Solus ------ - -Fira Code package is available in the official repository: `font-firacode-ttf` and `font-firacode-otf`. -They can be installed by running: - - sudo eopkg install font-firacode-ttf font-firacode-otf - - -Void linux ----------- - - xbps-install font-firacode - - -Linux Manual Installation -------------------------- - -With most desktop-oriented distributions, double-clicking each font file in the ttf folder and selecting “Install font” should be enough. If it isn’t, create and run `download_and_install.sh` script: - - #!/usr/bin/env bash - - fonts_dir="${HOME}/.local/share/fonts" - if [ ! -d "${fonts_dir}" ]; then - echo "mkdir -p $fonts_dir" - mkdir -p "${fonts_dir}" - else - echo "Found fonts dir $fonts_dir" - fi - - for type in Bold Light Medium Regular Retina; do - file_path="${HOME}/.local/share/fonts/FiraCode-${type}.ttf" - file_url="https://github.com/tonsky/FiraCode/blob/master/distr/ttf/FiraCode-${type}.ttf?raw=true" - if [ ! -e "${file_path}" ]; then - echo "wget -O $file_path $file_url" - wget -O "${file_path}" "${file_url}" - else - echo "Found existing file $file_path" - fi; - done - - echo "fc-cache -f" - fc-cache -f - -More details: https://github.com/tonsky/FiraCode/issues/4 - - -FreeBSD -------- - -Using pkg(8): - - pkg install firacode - -OR - -Using ports: - - cd /usr/ports/x11-fonts/firacode && make install clean - - -Enabling ligatures -================== - -Atom ----- - -To change your font to Fira Code, open Atom's preferences (`cmd + ,` on a Mac, `ctrl + ,` on PC), make sure the "Settings" tab is selected, or the "Editor" in Atom 1.10+, and scroll down to "Editor Settings". In the "Font Family" field, enter `Fira Code`. - -If you wish to specify a font weight, for example, Light, use `Fira Code Light` as a font name (Windows) or `FiraCode-Light` (macOS). - -Ligatures are enabled by default in Atom 1.9 and above. - - -VS Code -------- - -To open the settings editor, first from the File menu choose Preferences, Settings or use keyboard shortcut `Ctrl + ,` (Windows) or `Cmd + ,` (macOS). - -To enable FiraCode in the settings editor, under "Commonly Used", expand the "Text Editor" settings and then click on "Font". In the "Font Family" input box type `Fira Code`, replacing any content. Tick the check box "Enables/Disables font ligatures" under "Font Ligatures" to enable the special ligatures. - -If you wish to specify a font weight, for example, Light, use `Fira Code Light` as a font name (Windows) or `FiraCode-Light` (macOS). - - -IntelliJ products ------------------ - -1. Enable in Settings → Editor → Font → Enable Font Ligatures -2. Select `Fira Code` as "Primary font" under Settings → Editor → Font - -Additionally, if a Color Scheme is selected: - -3. Enable in Settings → Editor → Color Scheme → Color Scheme Font → Enable Font Ligatures -4. Select Fira Code as "Primary font" under Settings → Editor → Color Scheme → Color Scheme Font - - -BBEdit, TextWrangler --------------------- - -Run in your terminal: - - defaults write com.barebones.bbedit "EnableFontLigatures_Fira Code" -bool YES - -Source: https://www.barebones.com/support/bbedit/ExpertPreferences.html - - -Brackets --------- - -1. From the `View` menu choose `Themes....` -2. Paste `'Fira Code'`, at the begining of `Font Family` - - -Emacs ------ - -There are a few options when it comes down to using ligatures in -Emacs. They are listed in order of preferred to less-preferred. Pick one! - -1. Using composition mode in Emacs Mac port - -If you're using the latest Mac port of Emacs (https://bitbucket.org/mituharu/emacs-mac by Mitsuharu Yamamoto) for macOS, you can use: - - (mac-auto-operator-composition-mode) - -This is generally the easiest solution, but can only be used on macOS. - -2. Using prettify-symbols - -These instructions are pieced together by https://github.com/Triavanicus, taking some pieces from https://github.com/minad/hasklig-mode. - -This method requires you to install the Fira Code Symbol font, made by https://github.com/siegebell: -https://github.com/tonsky/FiraCode/issues/211#issuecomment-239058632 - - (defun fira-code-mode--make-alist (list) - "Generate prettify-symbols alist from LIST." - (let ((idx -1)) - (mapcar - (lambda (s) - (setq idx (1+ idx)) - (let* ((code (+ #Xe100 idx)) - (width (string-width s)) - (prefix ()) - (suffix '(?\s (Br . Br))) - (n 1)) - (while (< n width) - (setq prefix (append prefix '(?\s (Br . Bl)))) - (setq n (1+ n))) - (cons s (append prefix suffix (list (decode-char 'ucs code)))))) - list))) - - (defconst fira-code-mode--ligatures - '("www" "**" "***" "**/" "*>" "*/" "\\\\" "\\\\\\" - "{-" "[]" "::" ":::" ":=" "!!" "!=" "!==" "-}" - "--" "---" "-->" "->" "->>" "-<" "-<<" "-~" - "#{" "#[" "##" "###" "####" "#(" "#?" "#_" "#_(" - ".-" ".=" ".." "..<" "..." "?=" "??" ";;" "/*" - "/**" "/=" "/==" "/>" "//" "///" "&&" "||" "||=" - "|=" "|>" "^=" "$>" "++" "+++" "+>" "=:=" "==" - "===" "==>" "=>" "=>>" "<=" "=<<" "=/=" ">-" ">=" - ">=>" ">>" ">>-" ">>=" ">>>" "<*" "<*>" "<|" "<|>" - "<$" "<$>" "<!--" "<-" "<--" "<->" "<+" "<+>" "<=" - "<==" "<=>" "<=<" "<>" "<<" "<<-" "<<=" "<<<" "<~" - "<~~" "</" "</>" "~@" "~-" "~=" "~>" "~~" "~~>" "%%" - "x" ":" "+" "+" "*")) - - (defvar fira-code-mode--old-prettify-alist) - - (defun fira-code-mode--enable () - "Enable Fira Code ligatures in current buffer." - (setq-local fira-code-mode--old-prettify-alist prettify-symbols-alist) - (setq-local prettify-symbols-alist (append (fira-code-mode--make-alist fira-code-mode--ligatures) fira-code-mode--old-prettify-alist)) - (prettify-symbols-mode t)) - - (defun fira-code-mode--disable () - "Disable Fira Code ligatures in current buffer." - (setq-local prettify-symbols-alist fira-code-mode--old-prettify-alist) - (prettify-symbols-mode -1)) - - (define-minor-mode fira-code-mode - "Fira Code ligatures minor mode" - :lighter " Fira Code" - (setq-local prettify-symbols-unprettify-at-point 'right-edge) - (if fira-code-mode - (fira-code-mode--enable) - (fira-code-mode--disable))) - - (defun fira-code-mode--setup () - "Setup Fira Code Symbols" - (set-fontset-font t '(#Xe100 . #Xe16f) "Fira Code Symbol")) - - (provide 'fira-code-mode) - -Alternative instructions: https://github.com/Profpatsch/blog/blob/master/posts/ligature-emulation-in-emacs/post.md#appendix-b-update-1-firacode-integration - -3. Using composition char table - -Thanks to https://github.com/seanfarley for putting this together; extended by https://github.com/jrblevin. - -Put this lisp in your .emacs: - - (when (window-system) - (set-frame-font "Fira Code")) - (let ((alist '((33 . ".\\(?:\\(?:==\\|!!\\)\\|[!=]\\)") - (35 . ".\\(?:###\\|##\\|_(\\|[#(?[_{]\\)") - (36 . ".\\(?:>\\)") - (37 . ".\\(?:\\(?:%%\\)\\|%\\)") - (38 . ".\\(?:\\(?:&&\\)\\|&\\)") - (42 . ".\\(?:\\(?:\\*\\*/\\)\\|\\(?:\\*[*/]\\)\\|[*/>]\\)") - (43 . ".\\(?:\\(?:\\+\\+\\)\\|[+>]\\)") - (45 . ".\\(?:\\(?:-[>-]\\|<<\\|>>\\)\\|[<>}~-]\\)") - (46 . ".\\(?:\\(?:\\.[.<]\\)\\|[.=-]\\)") - (47 . ".\\(?:\\(?:\\*\\*\\|//\\|==\\)\\|[*/=>]\\)") - (48 . ".\\(?:x[a-zA-Z]\\)") - (58 . ".\\(?:::\\|[:=]\\)") - (59 . ".\\(?:;;\\|;\\)") - (60 . ".\\(?:\\(?:!--\\)\\|\\(?:~~\\|->\\|\\$>\\|\\*>\\|\\+>\\|--\\|<[<=-]\\|=[<=>]\\||>\\)\\|[*$+~/<=>|-]\\)") - (61 . ".\\(?:\\(?:/=\\|:=\\|<<\\|=[=>]\\|>>\\)\\|[<=>~]\\)") - (62 . ".\\(?:\\(?:=>\\|>[=>-]\\)\\|[=>-]\\)") - (63 . ".\\(?:\\(\\?\\?\\)\\|[:=?]\\)") - (91 . ".\\(?:]\\)") - (92 . ".\\(?:\\(?:\\\\\\\\\\)\\|\\\\\\)") - (94 . ".\\(?:=\\)") - (119 . ".\\(?:ww\\)") - (123 . ".\\(?:-\\)") - (124 . ".\\(?:\\(?:|[=|]\\)\\|[=>|]\\)") - (126 . ".\\(?:~>\\|~~\\|[>=@~-]\\)") - ) - )) - (dolist (char-regexp alist) - (set-char-table-range composition-function-table (car char-regexp) - `([,(cdr char-regexp) 0 font-shape-gstring])))) - -**Note!** If you get `error in process filter: Attempt to shape unibyte text`, check out https://github.com/tonsky/FiraCode/issues/42. Emacs Cider users may avoid this issue by commenting the following line from the above config: - - ;; (46 . ".\\(?:\\(?:\\.[.<]\\)\\|[.=-]\\)") - -Char `45` is also known to have issues in macOS Mojave. - -If you are having problems with helm you can disable ligatures in helm: - - (add-hook 'helm-major-mode-hook - (lambda () - (setq auto-composition-mode nil))) - -4. Using font-lock keywords - -If none of the above worked, you can try this method. - -This method requires you to install the Fira Code Symbol font, made by https://github.com/siegebell: -https://github.com/tonsky/FiraCode/issues/211#issuecomment-239058632 - - ;;; Fira code - ;; This works when using emacs --daemon + emacsclient - (add-hook 'after-make-frame-functions (lambda (frame) (set-fontset-font t '(#Xe100 . #Xe16f) "Fira Code Symbol"))) - ;; This works when using emacs without server/client - (set-fontset-font t '(#Xe100 . #Xe16f) "Fira Code Symbol") - ;; I haven't found one statement that makes both of the above situations work, so I use both for now - - (defconst fira-code-font-lock-keywords-alist - (mapcar (lambda (regex-char-pair) - `(,(car regex-char-pair) - (0 (prog1 () - (compose-region (match-beginning 1) - (match-end 1) - ;; The first argument to concat is a string containing a literal tab - ,(concat " " (list (decode-char 'ucs (cadr regex-char-pair))))))))) - '(("\\(www\\)" #Xe100) - ("[^/]\\(\\*\\*\\)[^/]" #Xe101) - ("\\(\\*\\*\\*\\)" #Xe102) - ("\\(\\*\\*/\\)" #Xe103) - ("\\(\\*>\\)" #Xe104) - ("[^*]\\(\\*/\\)" #Xe105) - ("\\(\\\\\\\\\\)" #Xe106) - ("\\(\\\\\\\\\\\\\\)" #Xe107) - ("\\({-\\)" #Xe108) - ("\\(\\[\\]\\)" #Xe109) - ("\\(::\\)" #Xe10a) - ("\\(:::\\)" #Xe10b) - ("[^=]\\(:=\\)" #Xe10c) - ("\\(!!\\)" #Xe10d) - ("\\(!=\\)" #Xe10e) - ("\\(!==\\)" #Xe10f) - ("\\(-}\\)" #Xe110) - ("\\(--\\)" #Xe111) - ("\\(---\\)" #Xe112) - ("\\(-->\\)" #Xe113) - ("[^-]\\(->\\)" #Xe114) - ("\\(->>\\)" #Xe115) - ("\\(-<\\)" #Xe116) - ("\\(-<<\\)" #Xe117) - ("\\(-~\\)" #Xe118) - ("\\(#{\\)" #Xe119) - ("\\(#\\[\\)" #Xe11a) - ("\\(##\\)" #Xe11b) - ("\\(###\\)" #Xe11c) - ("\\(####\\)" #Xe11d) - ("\\(#(\\)" #Xe11e) - ("\\(#\\?\\)" #Xe11f) - ("\\(#_\\)" #Xe120) - ("\\(#_(\\)" #Xe121) - ("\\(\\.-\\)" #Xe122) - ("\\(\\.=\\)" #Xe123) - ("\\(\\.\\.\\)" #Xe124) - ("\\(\\.\\.<\\)" #Xe125) - ("\\(\\.\\.\\.\\)" #Xe126) - ("\\(\\?=\\)" #Xe127) - ("\\(\\?\\?\\)" #Xe128) - ("\\(;;\\)" #Xe129) - ("\\(/\\*\\)" #Xe12a) - ("\\(/\\*\\*\\)" #Xe12b) - ("\\(/=\\)" #Xe12c) - ("\\(/==\\)" #Xe12d) - ("\\(/>\\)" #Xe12e) - ("\\(//\\)" #Xe12f) - ("\\(///\\)" #Xe130) - ("\\(&&\\)" #Xe131) - ("\\(||\\)" #Xe132) - ("\\(||=\\)" #Xe133) - ("[^|]\\(|=\\)" #Xe134) - ("\\(|>\\)" #Xe135) - ("\\(\\^=\\)" #Xe136) - ("\\(\\$>\\)" #Xe137) - ("\\(\\+\\+\\)" #Xe138) - ("\\(\\+\\+\\+\\)" #Xe139) - ("\\(\\+>\\)" #Xe13a) - ("\\(=:=\\)" #Xe13b) - ("[^!/]\\(==\\)[^>]" #Xe13c) - ("\\(===\\)" #Xe13d) - ("\\(==>\\)" #Xe13e) - ("[^=]\\(=>\\)" #Xe13f) - ("\\(=>>\\)" #Xe140) - ("\\(<=\\)" #Xe141) - ("\\(=<<\\)" #Xe142) - ("\\(=/=\\)" #Xe143) - ("\\(>-\\)" #Xe144) - ("\\(>=\\)" #Xe145) - ("\\(>=>\\)" #Xe146) - ("[^-=]\\(>>\\)" #Xe147) - ("\\(>>-\\)" #Xe148) - ("\\(>>=\\)" #Xe149) - ("\\(>>>\\)" #Xe14a) - ("\\(<\\*\\)" #Xe14b) - ("\\(<\\*>\\)" #Xe14c) - ("\\(<|\\)" #Xe14d) - ("\\(<|>\\)" #Xe14e) - ("\\(<\\$\\)" #Xe14f) - ("\\(<\\$>\\)" #Xe150) - ("\\(<!--\\)" #Xe151) - ("\\(<-\\)" #Xe152) - ("\\(<--\\)" #Xe153) - ("\\(<->\\)" #Xe154) - ("\\(<\\+\\)" #Xe155) - ("\\(<\\+>\\)" #Xe156) - ("\\(<=\\)" #Xe157) - ("\\(<==\\)" #Xe158) - ("\\(<=>\\)" #Xe159) - ("\\(<=<\\)" #Xe15a) - ("\\(<>\\)" #Xe15b) - ("[^-=]\\(<<\\)" #Xe15c) - ("\\(<<-\\)" #Xe15d) - ("\\(<<=\\)" #Xe15e) - ("\\(<<<\\)" #Xe15f) - ("\\(<~\\)" #Xe160) - ("\\(<~~\\)" #Xe161) - ("\\(</\\)" #Xe162) - ("\\(</>\\)" #Xe163) - ("\\(~@\\)" #Xe164) - ("\\(~-\\)" #Xe165) - ("\\(~=\\)" #Xe166) - ("\\(~>\\)" #Xe167) - ("[^<]\\(~~\\)" #Xe168) - ("\\(~~>\\)" #Xe169) - ("\\(%%\\)" #Xe16a) - ("[0\[]\\(x\\)" #Xe16b) - ("[^:=]\\(:\\)[^:=]" #Xe16c) - ("[^\\+<>]\\(\\+\\)[^\\+<>]" #Xe16d) - ("[^\\*/<>]\\(\\*\\)[^\\*/<>]" #Xe16f)))) - - (defun add-fira-code-symbol-keywords () - (font-lock-add-keywords nil fira-code-font-lock-keywords-alist)) - - (add-hook 'prog-mode-hook - #'add-fira-code-symbol-keywords) - -On some systems, `==` will appear incorrectly as a blank space in certain modes unless you add the following lines to your init file: - - (set-language-environment "UTF-8") - (set-default-coding-systems 'utf-8) - - -GoormIDE --------- - -In a workspace: - -1. Click goormIDE, then Preferences. -2. Go to Theme, then focus Custom Theme CSS. -3. Copy & paste the following: - - @font-face{ - font-family: 'Fira Code'; - src: url('https://raw.githubusercontent.com/tonsky/FiraCode/master/distr/eot/FiraCode-Regular.eot') format('embedded-opentype'), - url('https://raw.githubusercontent.com/tonsky/FiraCode/master/distr/woff2/FiraCode-Regular.woff2') format('woff2'), - url('https://raw.githubusercontent.com/tonsky/FiraCode/master/distr/woff/FiraCode-Regular.woff') format('woff'), - url('https://raw.githubusercontent.com/tonsky/FiraCode/master/distr/ttf/FiraCode-Regular.ttf') format('truetype'); - font-weight: normal; - font-style: normal; - } - - .editor_container pre { - -webkit-font-feature-settings: "liga" on, "calt" on; - -webkit-font-smoothing: antialiased; - text-rendering: optimizeLegibility; - font-family: 'Fira Code'; - } - -4. Click Aplly or OK -5. Happy coding! - - -Cloud9 ------- - -In a workspace: - -1. Click Cloud9, then Preferences (or use keyboard shortcut CTRL + ,) -2. Go to Themes, then click on You can also style Cloud9 by editing your stylesheet (this will open a blank styles.css file in the C9 editor) -3. Copy & paste the following: - - @font-face{ - font-family: 'Fira Code'; - src: url('https://raw.githubusercontent.com/tonsky/FiraCode/master/distr/eot/FiraCode-Regular.eot') format('embedded-opentype'), - url('https://raw.githubusercontent.com/tonsky/FiraCode/master/distr/woff2/FiraCode-Regular.woff2') format('woff2'), - url('https://raw.githubusercontent.com/tonsky/FiraCode/master/distr/woff/FiraCode-Regular.woff') format('woff'), - url('https://raw.githubusercontent.com/tonsky/FiraCode/master/distr/ttf/FiraCode-Regular.ttf') format('truetype'); - font-weight: normal; - font-style: normal; - } - - .ace_editor{ - -webkit-font-feature-settings: "liga" on, "calt" on; - -webkit-font-smoothing: antialiased; - text-rendering: optimizeLegibility; - font-family: 'Fira Code'; - } - -4. Back in Preferences tab, click on User Settings, then click on Code Editor (Ace) -5. In Font Family field, enter Fira Code -6. Optionally, repeat step 5 for Preferences > User Settings > Terminal, if you want Fira Code font in C9 terminal. - - -MacVim ------- - -Add this to ~/.gvimrc: - - set macligatures - set guifont=Fira\ Code:h12 - -MacVim supports ligatures starting from version 7.4. - - -RStudio -------- - -In RStudio: - -1. Go to Tools > Global Options > Appearance -2. Select "Fira Code" as Editor Font. In older versions of RStudio, check "Use Ligatures". -3. Hit "OK" and enjoy - - -Sublime Text ------------- - -Preferences --> Settings - -Add before "ignored_packages": - - "font_face": "Fira Code", - "font_options": ["subpixel_antialias"], - -If you want enable antialias, add in font_options: "gray_antialias" - - -Visual Studio -------------- - -1. Launch Visual Studio (2015 or later). -2. Launch the Options dialog by opening the "Tools" menu and selecting "Options". -3. In the Options dialog, under the "Environment" category, you'll find "Fonts and Colors". Click on that. You'll see a combo-box on the right hand side of the dialog labelled "Font". Select "Fira Code" from that combo-box. -4. Click "OK" to dismiss. -5. Restart Visual Studio. - -Now, most FiraCode ligatures will work. A notable exception is the hyphen-based ligatures (e.g. the C++ dereference '->'). See https://github.com/tonsky/FiraCode/issues/422 for details. - - -Troubleshooting -=============== - -See https://github.com/tonsky/FiraCode/wiki/Troubleshooting diff --git a/assets/fira_code_v5.2/specimen.html b/assets/fira_code_v5.2/specimen.html deleted file mode 100644 index 6dce70b..0000000 --- a/assets/fira_code_v5.2/specimen.html +++ /dev/null @@ -1,95 +0,0 @@ -<!DOCTYPE html> -<html lang="en"> -<head> - <meta charset="UTF-8"> - <meta name="viewport" content="width=device-width,initial-scale=1.0"> - <title>Fira Code Specimen</title> - - <link rel="stylesheet" href="fira_code.css"> - <style> - body { font: 14px/1.5em "Fira Code"; } - .code { - font-feature-settings: "calt" 1; /* Enable ligatures for IE 10+, Edge */ - text-rendering: optimizeLegibility; /* Force ligatures for Webkit, Blink, Gecko */ - width: 30em; - margin: 5em auto; - white-space: pre-wrap; - word-break: break-all; - } - .light { font-weight: 300; } - .regular { font-weight: 400; } - .medium { font-weight: 500; } - .semibold { font-weight: 600; } - .bold { font-weight: 700; } - .variable { font-family: 'Fira Code VF'; font-variation-settings: 'wght' 400; } - i { font-style: normal; color: #c33; } - b { font-weight: inherit; color: #c33; } - </style> - <script type="text/javascript"> - function onWeightChange(weight) { - // code_variable.style['font-weight'] = weight; - code_variable.style['font-variation-settings'] = "'wght' " + weight; - span_wght.innerText = weight; - } - </script> -<body> - -<div class="code light"><b># Fira Code Light</b> - -take = (n, [x, <i>...</i>xs]:list) <i>--></i> - | n <i><=</i> 0 <i>=></i> [] - | empty list <i>=></i> [] - | otherwise <i>=></i> [x] <i>++</i> take n-1, xs - -last3 = reverse <i>>></i> take 3 <i>>></i> reverse</div> - - -<div class="code regular"><b># Fira Code Regular</b> - -take = (n, [x, <i>...</i>xs]:list) <i>--></i> - | n <i><=</i> 0 <i>=></i> [] - | empty list <i>=></i> [] - | otherwise <i>=></i> [x] <i>++</i> take n-1, xs - -last3 = reverse <i>>></i> take 3 <i>>></i> reverse</div> - - -<div class="code medium"><b># Fira Code Medium</b> - -take = (n, [x, <i>...</i>xs]:list) <i>--></i> - | n <i><=</i> 0 <i>=></i> [] - | empty list <i>=></i> [] - | otherwise <i>=></i> [x] <i>++</i> take n-1, xs - -last3 = reverse <i>>></i> take 3 <i>>></i> reverse</div> - - -<div class="code semibold"><b># Fira Code SemiBold</b> - -take = (n, [x, <i>...</i>xs]:list) <i>--></i> - | n <i><=</i> 0 <i>=></i> [] - | empty list <i>=></i> [] - | otherwise <i>=></i> [x] <i>++</i> take n-1, xs - -last3 = reverse <i>>></i> take 3 <i>>></i> reverse</div> - - -<div class="code bold"><b># Fira Code Bold</b> - -take = (n, [x, <i>...</i>xs]:list) <i>--></i> - | n <i><=</i> 0 <i>=></i> [] - | empty list <i>=></i> [] - | otherwise <i>=></i> [x] <i>++</i> take n-1, xs - -last3 = reverse <i>>></i> take 3 <i>>></i> reverse</div> - -<div id="code_variable" class="code variable"><b># Fira Code Variable</b> - -<input type="range" min="300" max="700" value="400" step="10" style="width: 300px;" oninput="onWeightChange(this.value)" onchange="onWeightChange(this.value)"> <span id="span_wght">400</span> - -take = (n, [x, <i>...</i>xs]:list) <i>--></i> - | n <i><=</i> 0 <i>=></i> [] - | empty list <i>=></i> [] - | otherwise <i>=></i> [x] <i>++</i> take n-1, xs - -last3 = reverse <i>>></i> take 3 <i>>></i> reverse</div> diff --git a/assets/fira_code_v5.2/ttf/FiraCode-Bold.ttf b/assets/fira_code_v5.2/ttf/FiraCode-Bold.ttf Binary files differdeleted file mode 100644 index 39265a1..0000000 --- a/assets/fira_code_v5.2/ttf/FiraCode-Bold.ttf +++ /dev/null diff --git a/assets/fira_code_v5.2/ttf/FiraCode-Light.ttf b/assets/fira_code_v5.2/ttf/FiraCode-Light.ttf Binary files differdeleted file mode 100644 index ed3258e..0000000 --- a/assets/fira_code_v5.2/ttf/FiraCode-Light.ttf +++ /dev/null diff --git a/assets/fira_code_v5.2/ttf/FiraCode-Medium.ttf b/assets/fira_code_v5.2/ttf/FiraCode-Medium.ttf Binary files differdeleted file mode 100644 index 2cad018..0000000 --- a/assets/fira_code_v5.2/ttf/FiraCode-Medium.ttf +++ /dev/null diff --git a/assets/fira_code_v5.2/ttf/FiraCode-Regular.ttf b/assets/fira_code_v5.2/ttf/FiraCode-Regular.ttf Binary files differdeleted file mode 100644 index 0d57068..0000000 --- a/assets/fira_code_v5.2/ttf/FiraCode-Regular.ttf +++ /dev/null diff --git a/assets/fira_code_v5.2/ttf/FiraCode-Retina.ttf b/assets/fira_code_v5.2/ttf/FiraCode-Retina.ttf Binary files differdeleted file mode 100644 index 248d36b..0000000 --- a/assets/fira_code_v5.2/ttf/FiraCode-Retina.ttf +++ /dev/null diff --git a/assets/fira_code_v5.2/ttf/FiraCode-SemiBold.ttf b/assets/fira_code_v5.2/ttf/FiraCode-SemiBold.ttf Binary files differdeleted file mode 100644 index 56a8016..0000000 --- a/assets/fira_code_v5.2/ttf/FiraCode-SemiBold.ttf +++ /dev/null diff --git a/assets/fira_code_v5.2/variable_ttf/FiraCode-VF.ttf b/assets/fira_code_v5.2/variable_ttf/FiraCode-VF.ttf Binary files differdeleted file mode 100644 index fd59413..0000000 --- a/assets/fira_code_v5.2/variable_ttf/FiraCode-VF.ttf +++ /dev/null diff --git a/blog/chatear-con-irssi.html b/blog/chatear-con-irssi.html deleted file mode 100644 index 09f849d..0000000 --- a/blog/chatear-con-irssi.html +++ /dev/null @@ -1,149 +0,0 @@ -<!DOCTYPE html> -<html lang="en"> - <head> - <head> - <meta charset="UTF-8" /> - <title>~santisoler</title> - <link rel="shortcut icon" href="../images/favicon.png" /> - <link rel="stylesheet" href="../assets/fira_code_v5.2/fira_code.css" /> - <link rel="stylesheet" href="../style.css" /> - </head> - </head> - <body> - <main> - <a href="../">../</a> - - <h1>Chatear por IRC on irssi</h1> - - <p class="date"><em>2021-03-17</em></p> - - <p> - Una de las formas de conectarse al IRC de texto-plano.xyz es a través de - pdmenu, eligiendo la opción "IRC de texto-plano (directo con catgirl)". - Una de las cosas interesantes de texto-plano.xyz es que muchas cosas - suceden dentro del servidor, hay interacciones que - <strong>solo existirán en el servidor</strong> como todo lo que - escribamos en BBJ. - </p> - <p> - Sin embargo mi curiosidad me llevó a probar conectarme al IRC desde una - de mis computadoras, sin tener que loguearme texto-plano.xyz. Al - principio logré conectar Pidgin, siguiendo las instrucciones que varies - de la comunidad compartieron en la BBJ. Pero ese llamado a no salir de - la terminal volvió a sonar en mi cabeza, así que decidí conectarme por - <code>irssi</code>. - </p> - - <h2>Configurar irssi para el IRC de texto-plano</h2> - - <p> - Empezamos descargando irssi desde el gestor de paquetes de tu distro, - por ejemplo: - </p> - - <p>En Manjaro y Arch:</p> - - <pre><code> -sudo pacman -S irssi - </code></pre> - - <p>o en Ubuntu y Debian:</p> - - <pre><code> -sudo apt install irssi - </code></pre> - - <p>Luego lo ejecutamos por primera vez con:</p> - - <pre><code> -irssi - </code></pre> - - <p> - Irssi utiliza como nickname por defecto el nombre de nuestro usuario, - sin embargo ese puede no coincidir con el usuario con el que nos - logueamos en IRC. Para cambiarlo vamos a salir de irssi con - <code>/exit</code> y editar el archivo <code>~/.irssi/config</code>. - Tenemos que buscar la línea que define nuestro nickname y cambiarlo a - gusto. Luego volvemos a entrar a irssi. - </p> - <p> - Una vez adentro, vamos a empezar por crear una nueva NETWORK que - llamaremos <em>tilde.chat</em>: - </p> - - <pre><code> -/network add tilde.chat - </code></pre> - - <p>Después añadiremos el servidor de irc.tilde.chat</p> - - <pre><code> -/server add -auto -tls -port 6697 -network tilde.chat irc.tilde.chat - </code></pre> - - <p> - Con la opción <em>auto</em> le indicamos a irssi que se conecte - automáticamente a este servidor cuando iniciamos. Con - <em>tls</em> habilitamos SSL y con <em>port</em> indicamos a qué puerto - debe conectarse (tilde.chat utiliza el 6697). - </p> - - <p>Luego podemos conectarnos con:</p> - - <pre><code> -/connect tilde.chat - </code></pre> - - <p> - Es probable que la primera vez que nos conectemos nos den instrucciones - para validar nuestro nickname y asignarnos una contraseña. Acordate de - guardar esa contraseña utilizando un gestor de contraseñas como - <a href="https://keepassxc.org/">KeepassXC</a>. - </p> - - <p> - Una vez que nuestro nickname se encuentre validado, podemos finalmente - acceder a la sala de <strong>#texto-plano</strong> con: - </p> - - <pre><code> -/join #texto-plano - </code></pre> - - <p> - Podemos salir de la sala con <code>/leave</code> y salir definitivamente - de irssi con <code>/exit</code> - </p> - - <p> - Si tuviste algún problema siguiendo estos pasos, encontraste algún error - o creés que vale la pena agregarle algo más, no dudes en escribirme a - santisoler <em>arroba</em> texto-plano.xyz - </p> - - <h2>Referencias</h2> - - <ul> - <li><a href="https://irssi.org/documentation/startup/">Documentación de Irssi</a></li> - </ul> - - </main> - <footer> - <p> - Contenido disponible bajo - <a href="https://creativecommons.org/licenses/by/4.0/deed.es" - >Creative Commons Atribución 4.0 Internacional</a - > - <br /> - Construida utilizando la fuente - <a href="https://github.com/tonsky/FiraCode">Fira Code</a> disponible - bajo licencia - <a href="https://opensource.org/licenses/OFL-1.1">OFL-1.1</a> - <br /> - Este sitio no trackea tu actividad y consume la menor cantidad de - recursos posibles - </p> - </footer> - </body> -</html> diff --git a/blog/software-libre-android.html b/blog/software-libre-android.html deleted file mode 100644 index 15a708d..0000000 --- a/blog/software-libre-android.html +++ /dev/null @@ -1,296 +0,0 @@ -<!DOCTYPE html> -<html lang="en"> - <head> - <head> - <meta charset="UTF-8" /> - <title>~santisoler</title> - <link rel="shortcut icon" href="../images/favicon.png" /> - <link rel="stylesheet" href="../assets/fira_code_v5.2/fira_code.css" /> - <link rel="stylesheet" href="../style.css" /> - </head> - </head> - <body> - <main> - <a href="../">../</a> - - <h1>Software Libre en Android</h1> - - <p class="date"><em>2021-03-13</em></p> - - <h2>TL;DR</h2> - - <ul class="tldr"> - <li> - <a href="#computadoras">Tu teléfono celular es una computadora</a> - </li> - <li> - <a href="#fdroid" - >Cómo reemplazar las aplicaciones de tu celu por Software Libre</a - > - </li> - </ul> - - <h2 id="computadoras">Nuestras computadoras de bolsillo</h2> - - <p> - Los tiempos en los que el término <em>computadora</em> se limitaba a ese - aparato de color beige que encontrábamos en los escritorios de algunas - casas han quedado en el pasado. Hoy las computadoras están en todos - lados y tienen mil formas distintas. Desde laptops super finitas, - computadoras de escritorio con muchas luces RGB, PCs viejas que aguantan - el paso del tiempo, netbooks como las de Conectar Igualdad hasta mini - computadoras como las Raspberry Pi. Sin embargo, esta lista deja afuera - lo que puede ser la categoría de las computadoras más populares hoy en - día: los smartphones o teléfonos celulares. - </p> - <p> - ¡Sí, ese teléfono que tenés en el bolsillo es una computadora! De hecho, - tiene muchísimo más poder de procesamiento que computadoras de hace 20 - años. Los procesadores que encontramos en dispositivos que corren - Android o iOS son muy poderosos: tienen múltiples núcleos, procesan - gráficos en alta definición, realizan múltiples tareas de manera - simultánea. Son tan poderosos que la NASA eligió un Snapdragon (un - procesador bastante común en dispositivos Android) para que el drone - <a href="https://es.wikipedia.org/wiki/Mars_Helicopter_Ingenuity" - >Ingenuity</a - > - pueda volar de manera autónoma en Marte: - <a - href="https://www.muycomputer.com/2021/02/22/ingenuity-codigo-abierto-linux/" - >Ingenuity volará en Marte con software de código abierto y un chip de - smartphone</a - >. - </p> - <p> - Personalmente disfruto mucho de interactuar con computadoras, pero creo - que mi mayor placer viene de sentir que puedo modificar mi computadora a - mi antojo, - <em>programarla</em> para que realice las tareas que yo quiero. Esto es - relativamente sencillo de alcanzar en computadoras de escritorio o - laptops si instalamos en ella Software Libre. Hoy en día encontramos - Sistemas Operativos que se instalan muy sencillamente en cualquier - computadora de escritorio o laptop, sin necesidad de ser un experte en - informática. Los ejemplos más comunes son las distribuciones de - GNU/Linux, que hoy en día presentan una oferta super amplia para - novates: Ubuntu, Xubuntu, Fedora, Manjaro, entre otras. - </p> - <p> - Sin embargo, el panorama no es el mismo para la otra gran categoría de - computadoras que utilizamos a diario: los celulares. Voy a tratar - particularmente los dispositivos Android, ya que los iOS merecen otra - larga conversación. Estas computadoras suelen venir de fábrica con un - sistema operativo preinstalado: Android. Este sistema operativo está - basado en el kernel Linux, el mismo que usan las tan benévolas - distribuciones de GNU/Linux, y a su vez se encuentra disponible bajo - <strong>licencias de Software Libre</strong>. Hasta acá todo bien, pero - el problema es que los fabricantes de teléfonos nos entregan un Android - completamente modificado, con muchísimo software que probablemente no - necesitemos (<em>bloat software</em>) o que nos espía (<em>spyware</em>) - y con muchas limitaciones para modificar el sistema (no tenemos acceso - al usuario <strong>root</strong>). En resumen: no tenemos el control - sobre nuestra computadora de bolsillo. - </p> - <p> - Estas características del teléfonos que compramos atentan contra nuestra - libertad, son funcionales a la obsolesencia programa para que tengamos - que cambiar de dispositivo cada dos años y nos exponen a aplicaciones - cuyo interés es recopilar nuestros datos para llenar nuestras pantallas - de publicadades apuntadas a nuestros intereses. - </p> - - <h2>¿Qué podemos hacer?</h2> - <p> - Existen muchas formas de "saltar" ese cerco impuesto por los - fabricantes. Una de ellas consiste en <em>rootear</em> el teléfono, un - proceso mediante el cual accedemos al usuario root y con ello a los - privilegios de realizar cualquier cambio que deseemos en nuestro - teléfono. Esto nos permite desde eliminar definitivamente aplicaciones - que no deseamos, hasta instalar un sistema operativo completamente - distinto (como <a href="https://lineageos.org/">LineageOS</a>). El - principal problema de estas prácitas es que requieren algún nivel - elevado de conocimiento y se suele correr el riesgo de <em>brickear</em> - nuestro teléfono (dejarlo inutilizable, solo sirve de - <em>brick</em>==ladrillo). - </p> - - <p> - Existen soluciones más sencillas para usuaries sin tantos conocimientos. - Podemos comenzar por <strong>deshabilitar</strong> las aplicaciones que - no queremos utilizar. Usualmente esto se puede realizar desde - Preferencias > Aplicaciones. Sin embargo es posible que deseemos tener - las funcionalidades que esa aplicación ofrece, pero no a través de esa - aplicación que nos espía o consume muchos recursos. Para ello podemos - optar por instalar aplicaciones alternativas, y ya que estamos, por qué - no elegir Software Libre. - </p> - - <h2 id="fdroid">F-Droid y Software Libre en Android</h2> - - <p> - La forma más rápida de acceder a aplicaciones Libres en Android es a - través de <a href="https://f-droid.org/">F-Droid</a>, una alternativa a - las tiendas de aplicaciones como el Play Store, pero que sólo incluye - Software Libre. Podés descargar F-Droid, instalarlo en tu teléfono y - acceder a la tienda como una aplicación más. Si bien hablo de - <em>tienda</em>, las aplicaciones que se encuentrar en F-Droid son en su - mayoría gratuitas, aunque muchas invitan a sus usuaries a realizar una - donación para continuar los proyectos. La ventaja de las aplicaciones - que encontramos en F-Droid son más o menos las mismas que encontramos en - nuestras distribuciones de GNU/Linux: - </p> - <ul> - <li>Tenemos las 4 libertades del Software Libre</li> - <li>Suelen consumir menos recursos que las alternativas privativas</li> - <li>No nos espían</li> - <li>No poseen publicidades</li> - <li>No exigen permisos innecesarios</li> - </ul> - - <p> - F-Droid tiene un número muy grande de aplicaciones, por eso voy a dejar - una lista de las aplicaciones que personalmente recomiendo. - </p> - - <ul> - <li> - <a - href="https://f-droid.org/en/packages/com.simplemobiletools.filemanager.pro/" - >Simple File Manager Pro</a - >: Explorador de archivos - </li> - <li> - <a - href="https://f-droid.org/en/packages/com.simplemobiletools.gallery.pro/" - >Simple Gallery Pro</a - >: Galería de imágenes - </li> - <li> - <a - href="https://f-droid.org/en/packages/com.simplemobiletools.contacts.pro/" - >Simple Contacts Pro</a - >: Agenda de contactos - </li> - <li> - <a - href="https://f-droid.org/en/packages/com.duckduckgo.mobile.android/" - >DuckDuckGo Privacy Browser</a - >: Navegador web (que respeta tu privacidad) - </li> - <li> - <a href="https://f-droid.org/en/packages/net.sourceforge.opencamera/" - >Open Camera</a - >: Cámara - </li> - <li> - <a - href="https://f-droid.org/en/packages/com.simplemobiletools.calendar.pro/" - >Simple Calendar Pro</a - >: Calendario - </li> - <li> - <a href="https://f-droid.org/en/packages/com.fsck.k9/">K-9 Mail</a>: - Cliente de mail - </li> - <li> - <a - href="https://f-droid.org/en/packages/ch.blinkenlights.android.vanilla/" - >Vanilla Music</a - >: Reproductor de música - </li> - <li> - <a href="https://f-droid.org/en/packages/org.videolan.vlc/">VLC</a>: - Reproductor de videos - </li> - <li> - <a - href="https://f-droid.org/en/packages/de.markusfisch.android.binaryeye/" - >Binary Eye</a - >: Lector de códigos QR - </li> - <li> - <a - href="https://f-droid.org/en/packages/com.simplemobiletools.voicerecorder/" - >Voice Recorder</a - >: Grabador de audio - </li> - <li> - <a - href="https://f-droid.org/en/packages/com.nutomic.syncthingandroid/" - >Syncthing</a - >: Sincronizador de archivos entre dispositivos - </li> - <li> - <a href="https://f-droid.org/en/packages/net.osmand.plus/">OsmAnd</a>: - Mapas y GPS (la mejor aplicación GPS del mundo, mapas offline, - imágenes satelitales, trackea recorridos, navegación por voz y mucho - más) - </li> - <li> - <a - href="https://f-droid.org/en/packages/org.dslul.openboard.inputmethod.latin/" - >OpenBoard</a - >: Teclado en pantalla (la aplicación de teclado que viene por defecto - <em>podría</em> espiar todo lo que tipeamos) - </li> - <li> - <a href="https://f-droid.org/en/packages/org.schabi.newpipe/" - >NewPipe</a - >: Ver videos de Youtube (sin publicidades, podemos reproducir de - fondo y hasta descargar los videos para verlos cuando no tenemos - conexión) - </li> - <li> - <a href="https://f-droid.org/en/packages/com.artifex.mupdf.mini.app/" - >MuPDF mini</a - >: Lector de PDF - </li> - <li> - <a href="https://f-droid.org/en/packages/net.gsantner.markor/" - >Markor</a - >: Editor de Markdown (útil para tomar notas y sincronizarlas con - Syncthing a nuestras compus) - </li> - <li> - <a href="https://f-droid.org/en/packages/com.kunzisoft.keepass.libre/" - >KeePassDX</a - >: Gestor de contraseñas (usemos gestores de contraseñas, - <strong>no repitas el mismo password en todos lados</strong>) - </li> - <li> - <a href="https://f-droid.org/en/packages/org.shadowice.flocke.andotp/" - >andOTP</a - >: Aplicación para autenticaciones con doble factor (2FA), alternativa - a Google Authenticator (usemos 2FA en lo posible, aumenta muchísimo la - seguridad de nuestras cuentas en la red) - </li> - </ul> - - <p> - <strong>Observación:</strong> La lista fue actualizada en 2021-03-13, - algunas de las aplicaciones pueden haberse discontinuado o pueden haber - alternativas mejores. - </p> - - <p> - Si conocés alguna aplicación que creés que merece estár en esta lista, - por favor escribime a santisoler arroba texto-plano.xyz - </p> - </main> - <footer> - <p> - Contenido disponible bajo - <a href="https://creativecommons.org/licenses/by/4.0/deed.es" - >Creative Commons Atribución 4.0 Internacional</a - > - <br /> - Construida utilizando la fuente - <a href="https://github.com/tonsky/FiraCode">Fira Code</a> disponible - bajo licencia - <a href="https://opensource.org/licenses/OFL-1.1">OFL-1.1</a> - <br /> - Este sitio no trackea tu actividad y consume la menor cantidad de - recursos posibles - </p> - </footer> - </body> -</html> diff --git a/style.css b/css/style.css index e29077c..fa60005 100644 --- a/style.css +++ b/css/style.css @@ -1,18 +1,13 @@ +/* ---------------------- */ +/* General configurations */ +/* ---------------------- */ body { font-family: "Fira Code", monospace; background-color: #282c34; color: #f3f3f3; } -a { - color: #61adf5; - text-decoration: none; -} - -a:hover { - color: #c678dd; -} - +nav, header, main, footer { @@ -20,28 +15,46 @@ footer { margin: auto; } +h1, +h2, +h3, +h4 { + margin-top: 1.6em; + margin-bottom: 1em; +} + h1 { - margin-top: 70px; font-size: 30pt; text-align: center; } + h2 { font-size: 18pt; - margin-top: 50px; } + h3 { font-size: 16pt; - margin-top: 30px; } + h4 { font-size: 14pt; font-weight: 400; } + p { font-size: 12pt; line-height: 1.5em; } +a { + color: #61adf5; + text-decoration: none; +} + +a:hover { + color: #c678dd; +} + li { line-height: 1.7em; font-size: 12pt; @@ -49,6 +62,8 @@ li { pre { padding-left: 20px; + margin-top: 2em; + margin-bottom: 2em; } code { @@ -60,9 +75,48 @@ pre code { font-weight: 500; } +dd { + display: normal; +} + /* ------ */ -/* Header */ +/* Navbar */ /* ------ */ + +nav { + display: flex; +} + +nav ul { + width: 100%; + list-style: none; + display: flex; + justify-content: space-between; + align-items: center; + padding: 0; +} + +.nav-item { + text-align: center; + width: 3em; + height: 1.5em; + padding: 5%; + font-size: 14pt; + font-weight: 500; +} + +.nav-item a { + color: #e5c07b; +} + +.nav-item a:hover { + color: #e06c75; +} + +/* ---------------- */ +/* Header and main */ +/* ---------------- */ + header { margin-top: 80px; margin-bottom: 110px; @@ -75,9 +129,10 @@ header h2 { header h1 { font-size: 54pt; - margin-top: 70px; - margin-bottom: 30px; + margin-top: 1em; + margin-bottom: 0.6em; } + header h2 { font-size: 20pt; font-weight: 400; @@ -86,48 +141,28 @@ header h2 { } /* ---- */ -/* Main */ +/* Home */ /* ---- */ -main { - margin-top: 80px; - margin-bottom: 80px; -} - -dd { - display: normal; -} -.home ul { +ul.posts-list { list-style: none; - margin-left: 0; - margin-right: 0; - /* padding-left: 0; */ - padding-right: 0; -} -.home ul li { - font-weight: 400; - font-size: 14pt; } -.home p { - font-size: 14pt; +ul.posts-list h2 { + margin-top: 1.6em; + margin-bottom: 0.7em; } .date { text-align: right; } -ul.tldr li { - line-height: 1.5em; - font-size: 14pt; -} - /* ------ */ /* Footer */ /* ------ */ footer { border-top: 1px solid #dedede; - padding-top: 8px; + padding-top: 25px; padding-bottom: 8px; margin-top: 100px; text-align: center; @@ -136,4 +171,6 @@ footer { footer p { font-size: 10pt; + margin-top: 0px; + margin-bottom: 0px; } diff --git a/index.html b/index.html deleted file mode 100644 index fd631eb..0000000 --- a/index.html +++ /dev/null @@ -1,91 +0,0 @@ -<!DOCTYPE html> -<html lang="en"> - <head> - <meta charset="UTF-8" /> - <title>~santisoler</title> - <link rel="shortcut icon" href="images/favicon.png" /> - <link rel="stylesheet" href="assets/fira_code_v5.2/fira_code.css" /> - <link rel="stylesheet" href="style.css" /> - </head> - <body> - <header> - <h1>~santisoler</h1> - - <h2> - Sitio de ~santisoler en - <a href="https://texto-plano.xyz">texto-plano.xyz</a> - </h2> - </header> - - <main class="home"> - <h1>Blog</h1> - - <ul> - <li> - 2021-03-17 | - <a href="blog/chatear-con-irssi.html"> Chatear por IRC con irssi </a> - </li> - <li> - 2021-03-13 | - <a href="blog/software-libre-android.html" - >Software Libre en Android</a - > - </li> - </ul> - - <h1>Acerca de</h1> - - <p> - Soy Santiago Soler de Argentina. Físico terminando el Doctorado en - Geofísica y un entusiasta del Software Libre. Formo parte del grupo de - desarrolladores de - <a href="https://www.fatiando.org">Fatiando a Terra</a>: librerías de - Python para Geofísica, y milito a favor de una ciencia más abierta y - reproducible. - </p> - - <p> - En este sitio podrás encontrar algunas de mis ideas y algunos tutoriales - o tips para acercar el Software Libre a todes. - </p> - - <h2>Mis perfiles en la red</h2> - - <ul> - <li> - Sitio web: - <a href="https://santisoler.github.io">santisoler.github.io</a> - </li> - <li>GitHub: <a href="https://github.com/santisoler">santisoler</a></li> - <li> - Twitter: <a href="https://twitter.com/santirsoler">@santirsoler</a> - </li> - <li> - Gopherhole: - <a href="https://gopher.tildeverse.org/texto-plano.xyz/1/~santisoler"> - ~santisoler - </a> - </li> - <li>Mail: santisoler arroba texto-plano.xyz</li> - <li><a href="santisoler_pub.asc">Clave pública GPG</a></li> - </ul> - </main> - - <footer> - <p> - Contenido disponible bajo - <a href="https://creativecommons.org/licenses/by/4.0/deed.es" - >Creative Commons Atribución 4.0 Internacional</a - > - <br /> - Construida utilizando la fuente - <a href="https://github.com/tonsky/FiraCode">Fira Code</a> disponible - bajo licencia - <a href="https://opensource.org/licenses/OFL-1.1">OFL-1.1</a> - <br /> - Este sitio no trackea tu actividad y consume la menor cantidad de - recursos posibles - </p> - </footer> - </body> -</html> diff --git a/index.md b/index.md new file mode 100644 index 0000000..a52947e --- /dev/null +++ b/index.md @@ -0,0 +1,22 @@ +--- +layout: home +--- + +# Acerca de + +Soy Santiago Soler de Argentina. Físico terminando el Doctorado en Geofísica +y un entusiasta del Software Libre. Formo parte del grupo de desarrolladores de +[Fatiando a Terra](https://www.fatiando.org): librerías de Python para +Geofísica, y milito a favor de una ciencia más abierta y reproducible. + +En este sitio podrás encontrar algunas de mis ideas y algunos tutoriales o +tips para acercar el Software Libre a todes. + +## Mis perfiles en la red + +- Sitio web: [santisoler.github.io](https://santisoler.github.io) +- GitHub: [santisoler](https://github.com/santisoler) +- Twitter: [@santirsoler](https://twitter.com/santirsoler) +- Gopherhole: [~santisoler](https://gopher.tildeverse.org/texto-plano.xyz/1/~santisoler) +- Mail: santisoler arroba texto-plano.xyz +- [Clave pública GPG](santisoler_pub.asc) |