-- Leo's gemini proxy

-- Connecting to gmi.osiux.com:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini;lang=es_AR

Semana Negra - Sobrevivir en la shell


AUTHOR: Osiris Alejandro Gómez

EMAIL: osiux@osiux.com

DATE: 2014-04-25 12:52


#+ATTR_HTML: :width 640 :height 480 :title Semana Negra usando TMUX

[IMG]

[1]


el juramento


Desde el 28 de Abril del 2014 y por **una semana completa** debía cumplir con el juramento propuesto desde el sitio elbinario.net[2] ^1[3]


Te deposito mi corazón junto al tuyo, para hacer que el nuestro
sea uno más ancho y seguro. Hago compromiso ante ti,
terminal. Seré tuya por una semana. Cuando me sienta débil, seré
fuerte y no arrancaré las x, cuando el ascii de los vídeos me
agobie, seré fuerte y veré la saga entera de starwars en ascii,
seré firme cuando los ojos no aguanten, seré tu sombra cuando no
sepa algún comando, seré sonrisa, seré llanto.

Hasta que la interface gráfica nos separe.

motivación


A diario abuso de la terminal, de hecho practicamente la única aplicación gráfica que uso es *Firefox*, todo lo demás vive en un `screen/tmux` usando `terminator` y como siempre digo:


**yo uso la consola sólo por si en algún momento no tengo X**


Que mejor ocasión para probar vivir sin `X`.


desafío doble


Tenía que lograr sobrevivir la semana en una desktop en el trabajo (trabajando) y en una notebook compartida en casa, en el primer caso coincidió justo con el cambio de distro, asi que directamente deshabilité `X` en mi nuevo **Huayra GNU/Linux 2.0** ^2[4].


En casa no pude deshabilitar `X` por tratarse de una compu compartida, asi que me mantuve en una `tty` usando `CTRL+ALT+F1` cada vez que necesitaba hacer algo.


blog desde la `tty`


Justo 2 días antes, participé del **FLISoL en la UNDAv** ^3[5] asi que tenía que comenzar la mañana escribiendo un post lo cual no representaba mayores desafíos porque uso **Org-mode** ^4[6] que es parte de **EMACS** ^5[7], pero me encontré con un primer problema, ver y editar las fotos que incluiría...


Probé de utilizar `cacaview` del paquete `caca-utils` ^6[8] y la verdad que hace honor a su nombre ;-), al menos para ver una foto en *ascii-art* no sirve de mucho, la imagen inicial a pantalla completa se ve así:


#+ATTR_HTML: :width 640 :height 360 :title Semana Negra cacaview

[IMG]

[9]


Haciendo un zoom se puede apreciar mejor pero, hay que scrollear mucho para entender toda la imagen:


#+ATTR_HTML: :width 640 :height 360 :title Semana Negra cacaview zoom x20

[IMG]

[10]


Por suerte contamos con la ayuda de `fbi` que utiliza el *Framebuffer* ^7[11] y se visualiza a la perfección:


#+ATTR_HTML: :width 640 :height 360 :title Semana Negra fbi

[IMG]

[12]


El resultado final, pude visualizarlo mediante `links2` agregando los parámetros `-driver\=directfb -g`


#+ATTR_HTML: :width 640 :height 360 :title Semana Negra links2

[IMG]

[13]


`tmux` y `mplayer`


A diario uso `tmux`, sólo tuve que modificar la `statusbar` porque se redibujaba mal, en realidad no usaba muchas características, tiendo a un entorno minimamilista, y sólo para probar pude ver un video usando `mplayer` con la opción `-vo fbdev2` sin inconvenientes por sobre el `tmux`.


#+ATTR_HTML: :width 640 :height 360 :title Semana Negra fbi

[IMG]

[14]


problemas encontrados


No funciona correctamente el *UTF8* en la terminal, probé con `/bin/unicode_start` pero no se ve nada bonito, después vi que algunas fuentes no tienen todos los caracteres, usando `fbterm` mejora notablemente la experiencia.


resumen y encuesta


Se realizó un resumen ^8[15] de la experiencia y se realizaron las siguientes preguntas, las cuales paso a responder...


¿Cómo me he sentido en la consola?


Muy bien, confirmé que mi entorno esta preparado para una `tty` aunque algunas configuraciones tuvieron que ser adaptadas, en general no tuve inconvenientes.


¿Lo más sencillo?


Utilizar `tmux` en una `tty` no varía de un emulador de terminal, asi que rápidamente estaba operativo y podía también trabajar en remoto levantando mi `tmux` vía `ssh`. Sólo que `tmux` no se llevó bien con `fbterm` que aparenta ser una buen terminal que usa *framebuffer*


¿Lo más difícil?


Navegar por la web, si bien en mi *Firefox* tengo *plugins* que deshabilitan *javascript* por defecto, algunos sitios fueron imposibles de navegarlos usando `w3m` y `links2`.


¿Qué necesidades no he podido cubrir durante la semana?


Usar el *Home Banking*, nuevamente *javascript* y un diseño para navegadores modernos impidió realizar movimientos, al menos pude ver el saldo de mi cuenta :-)


Herramientas que he usado:


Las habituales, sólo tuve que reemplazar *Firefox* por `links2`. Se puede ver un ranking de los comandos más usados en la semana, de acuerdo al historial de `bash`.


cat ~/semana-negra.log | head
echo
cat ~/semana-negra.log | awk '{print $3,$4}' | sort | uniq -c | sort -nr | head -20 | barra

2014-04-28 08:27 clear
2014-04-28 08:27 df -h
2014-04-28 08:27 ps ax | grep -i x
2014-04-28 08:27 tls
2014-04-28 08:30 cd
2014-04-28 08:30 cdo
2014-04-28 08:30 cdo
2014-04-28 08:30 unicode_start
2014-04-28 08:31 cd
2014-04-28 08:31 cd /mnt/data/

 23.97 %  23.97 %        58 ████████████ ls
 36.36 %  12.40 %        30 ██████ :q
 46.69 %  10.33 %        25 █████ l
 54.13 %   7.44 %        18 ███ cd
 59.92 %   5.79 %        14 ███ sudo
 65.70 %   5.79 %        14 ███ pwd
 69.83 %   4.13 %        10 ██ mplayer
 73.97 %   4.13 %        10 ██ for
 76.86 %   2.89 %         7 █ telegramas
 79.75 %   2.89 %         7 █ ps
 82.64 %   2.89 %         7 █ clear
 85.12 %   2.48 %         6 █ gst
 87.60 %   2.48 %         6 █ cdh
 89.67 %   2.07 %         5 █ tls
 91.74 %   2.07 %         5 █ ln
 93.39 %   1.65 %         4 █ reboot
 95.04 %   1.65 %         4 █ mmi
 96.69 %   1.65 %         4 █ cd
 98.35 %   1.65 %         4 █ cdi
100.00 %   1.65 %         4 █ cd
                        242

Usos de la shell frente a X y viceversa


El mejor de los mundos es que exista un comando que hace todo lo que necesitás, si con mil parámetros y luego una o varias *gui* que permitan usos simples y cada usuario podrá elegir su interfaz.


El frío en la shell


Para nada! mi `$TERM` esta seteada en `screen-256color` :-P, además no hay como el fondo negro y letras verdes para aclimatar los ojos, **la shell es mi amiga**


¿Programas pesados?


No hay duda que las aplicaciones gráficas son enormes y tienen varias capas de abstracción y niveles que no hacen más que gastar un montón de bytes para mostrar un pixel gris oscuro para tener un bonito sombreado. OjO no hay duda, si hacés diseño o necesitás alguna aplicación que verdaderamente aprovecha el entorno gráfico usala, para todo los demás existe una terminal liviana y ágil.


¿Cómo resumirías tu experiencia Alone in the shell?


Muy productiva, pude poner a prueba mi entorno, corrigiéndolo para que se vea casi igual tanto en `X` o en una `tty`.


Lo mejor fue que logré sobrevivir toda la semana a la consigna, lo cual demuestra cierta disciplina, más allá de los tecnicismos.


Utilizar el modo gráfico sobre *framebuffer* debería estar más soportado por más aplicaciones aunque en cierto punto parecería que es hacer trampa, ya que nos estamos escapando de la salida a puro texto plano :-P


La destreza sobre una consola, sólo se consigue usándola a diario y puede ser vital tener dominio sobre ella, casualmente unos días después al realizar una entrega de un proyecto, un viernes a última hora, justo cuando estábamos terminando, se cortó la luz y pudimos continuar con los últimos minutos de la UPS desde una `tty` en el servidor, gracias a `screen/tmux` y unos bonitos túneles `ssh`, de otro modo, no hubieramos podido...


También para el usuario de notebook, mi experiencia demuestra que la batería rinde el doble trabajando únicamente desde una `tty`.


Asi que recomiendo a todos a tener una **semana negra** como entrenamiento para convertirse en un **console ninja**. :-)


ChangeLog


`2023-04-30 07:13`[16] agregar DESCRIPTION, KEYWORDS y actualizar OpenGrpah y links

`2022-11-13 20:39`[17] agregar y actualizar tags OpenGraph

`2019-04-18 00:21`[18] Agregar hora en header date

`2019-04-18 00:01`[19] Corregir identación header #+INCLUDE:

`2015-07-03 04:31`[20] @ 00:05 hs - elimino #+OPTIONS: de todos los archivos excepto header.gmi

`2015-07-03 03:59`[21] @ 01:00 hs - reemplazo :alt por :title y cambios menores

`2014-08-11 14:29`[22] @ 00:01 hs - Nuevamente Corrijo salida comandos mas usados

`2014-08-11 12:55`[23] @ 01:29 hs - Agrego resumen Semana Negra


1: file:img/semana-negra/tmux.png

2: http://elbinario.net

3: https://web.archive.gmi/web/20140428141314/https://elbinario.net/2014/04/21/semana-negra-sobrevivir-en-la-shell/

4: %5Bfile:2014-04-25-huayra-2.0.html%5D(2014-04-25-huayra-2.0.html)

5: %5Bfile:2014-04-26-flisol-avellaneda-undav.html%5D(2014-04-26-flisol-avellaneda-undav.html)

6: https://orgmode.gmi/

7: https://www.gnu.gmi/software/emacs/

8: http://caca.zoy.gmi/wiki/libcaca

9: file:img/semana-negra/cacaview.png

10: file:img/semana-negra/cacaview-zoom.png

11: https://es.wikipedia.gmi/wiki/Fbdev

12: file:img/semana-negra/fbi.png

13: file:img/semana-negra/links2.png

14: file:img/semana-negra/tmux-mplayer.png

15: https://elbinario.net/2014/05/06/resumen-de-la-semananegra/

16: https://gitlab.com/osiux/osiux.gitlab.io/-/commit/ce3e159dd0bd2d8bd3040fac736de1f567ccfda0

17: https://gitlab.com/osiux/osiux.gitlab.io/-/commit/bf3a61526ad2a73cecb77a18995f1d63494e3664

18: https://gitlab.com/osiux/osiux.gitlab.io/-/commit/e46ec52748a7ecc60f09c3b95e363e92eaa0bebc

19: https://gitlab.com/osiux/osiux.gitlab.io/-/commit/5c8643b83930c6269569c76602608bd33f93008b

20: https://gitlab.com/osiux/osiux.gitlab.io/-/commit/bbc3bbc728f2a3eeb4fe2e0a012ee5d8d613e3ef

21: https://gitlab.com/osiux/osiux.gitlab.io/-/commit/a2abb3b333c91e0d3c15ea9e93a21589bd4d86f7

22: https://gitlab.com/osiux/osiux.gitlab.io/-/commit/a5fa5b76cee7f57f7be005d4b8fd8d78726209df

23: https://gitlab.com/osiux/osiux.gitlab.io/-/commit/e43ef81dd85cb493fb64ad9cc3d2689e05e952b4

-- Response ended

-- Page fetched on Fri May 17 04:02:03 2024