c57

https://guix.gnu.org/manual/en/html_node/Binary-Installation.html >ATENCIÓN PUNTO 4

install glibc >saldrá error,

exports > sin respuesta

pull; -u >esta parte se demora, baja hartas cosas

$guix enviroment -C emacs >saldra error, hay que cambiar el contenido de un archivo de 0 a 1. Con # nano /proc/...... > volver a intentar, entrará a la maquina wix en terminal.

$[env] exit > salir de~

$ guix install emacs > instala emacs ¿porqué no con guix package -i? ni idea.

$ guix enviroment -C emacs >entra a: $[env]

$[env] emacs >sh: emacs: command not found


hasta ahí he llegado.

En estos días en 4libertades estamos definiendo las reglas que queremos que nos guíen como comunidad. La idea partió por la propuesta que se hizo en el canal gnu propaganda y tras una votación en el grupo se decidió revisar una por una para discutir si se adoptan para el grupo o no.

La discusión de las reglas estaba haciéndose a partir de un mensaje que yo enviaba diariamente, que abría la conversación respecto a si se tomaba tal cual o se modificaba. No todos los días he podido cumplir con postear una regla a la misma hora, así que decidí usar el bot para que lo haga.

Antes de dejar el código, comento: – creé un archivo de texto plano (reglas4lib) en el que están las reglas, una por línea. Al comienzo de cada una está el número de la regla a revisar; en los números inferiores a 10 agregué un cero, para que quedara de dos dígitos (para efectos de la generación del hashtag). – con cron hice que el archivo expuesto a continuación se ejecute una vez al día.

<?php
# datos del bot y canal de 4lib
$token = "token-del-bot"; 
$channel = "-1001087935936";

function sendMethod($token, $method, $params = array()) {
	$ch = curl_init("https://api.telegram.org/bot$token/$method");
	curl_setopt($ch, CURLOPT_POST, 1);
	curl_setopt($ch, CURLOPT_POSTFIELDS, ($params));
	curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; Linux i686; rv:32.0) Gecko/20100101 Firefox/40.0');
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
	curl_setopt($ch, CURLOPT_FRESH_CONNECT, TRUE);
	curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5000);
	curl_setopt($ch, CURLOPT_TIMEOUT, 5000);
	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
	curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
	return curl_exec($ch);
}

# lee reglas, guarda la primera
$reg0 = file('reglas4lib');
$reg1 = $reg0[0];

# escribe archivo de reglas, borrando la primera
$file = fopen('reglas4lib', "w+");

for($i = 0; $i <= (count($reg0)-1); $i++){
    if($i != 0){
        fwrite($file, $reg0[$i]);
    }
}
fclose($file);

$msj= 'Estamos creando las normas de la comunidad 4lib. Por <a href="https://t.me/c/1087935936/74507">votación de los participantes</a> de este grupo se decidió discutir diariamente una por una las <a href="https://t.me/GNUKCG">reglas de comunidad</a> creadas por Richard Stallman y modificadas por Brett Gilio para adaptarlas como nuestras.'.PHP_EOL.'La regla en discusión hoy es la siguiente:'.PHP_EOL.PHP_EOL.'<b>'.$reg1.'</b>'.PHP_EOL.PHP_EOL.'Los comentarios sobre esta regla, por favor, acompáñalos del hashtag #regla'.substr($reg1,0,2).'. Las reglas definitivas serán publicadas en la <a href="https://wiki.cuatrolibertades.org/reglas_de_la_comunidad">wiki de 4libertades</a>.';

# array para enviar por telegram con sendmethod
$params = array(
    "chat_id" => $channel,
    "parse_mode" => "HTML",
    "text" => $msj
);

// manda mensaje
sendMethod($token, "sendMessage", $params);

Imagino que deben haber más soluciones para este asunto, pero hasta el momento, esta me ha funcionado mejor que ninguna.

Problema: al editar el archivo css de una página, los cambios no se ven reflejados inmediatamente porque el navegador ocupa el archivo css que está en el caché. Para ver el resultao final, era necesario o borrar caché o entrar en modo de navegación privada.

Esta solución funciona en php, pero puede ser adaptada a cualquier otro lenguaje.

Al momento de incluir la línea dentro del html que llama al css <link rel="stylesheet" href="estilo.css" /> hay que agregar algo que agregue un dato siempre distinto después de css. Puede ser un arreglo con date() o, lo que yo prefiero, un número al azar (rand()):

echo '<link rel="stylesheet" href="estilo.css?'.rand(0,99999).'" />

Con esto, la llamada al css siempre será distinta, el navegador no la tendrá guardada y los cambios que se hagan al css serán cargados al instante. Siempre y cuando no ocurra que se repita el número al azar (por eso recomendaría usar date('U')).

A continuación explicaré como crear un modo en i3 que permita crear atajos rápidos para ejecutar programas con solo una tecla, sin embargo, si no quieres personalizar tanto i3 (además de no arriesgarte a caer en la demencia) dejé al final una explicación rápida para crear atajos sin necesidad de un modo. En el archivo .config/i3/config hay que agregar algo, más o menos, así:

mode "atajos" {
        bindsym e exec emacs
        bindsym g exec gimp
        bindsym f exec firefox

        bindsym $mod+c mode "default"
}
bindsym $mod+c mode "atajos"

Para hacer esto me inspiré en el modo “resize” que está también en el mismo archivo. El formato de las líneas es el siguiente:

  • bindsym: indica que se señalará una(s) tecla(s) que ejecutarán un(os) comando(s).
  • [tecla(s)]: cualquier tecla... en caso de querer referirse a Alt (o Super, si es la que se usa), indicar con $mod.
  • comando: en el ejemplo usé exec + programa. Se pueden usar otros comandos (ver en el mismo config. Ej: workspace, move, restart, etc.). en caso de querer ejecutar más de un programa, separar con punto y coma, ej: bindsym a exec killall firefox; exec emacs, el efecto de esto sería que, al presionar a, dentro del modo “atajos”, se cerraría firefox y se abriría emacs.

Finalmente, y lo señalo aparte, la orden bindsym $mod+c mode "default", que está dentro de “atajos”; y, `bindsym $mod+c mode “atajos”, que está fuera, son respectivamente para salir y entrar del modo.

No hay límite para la cantidad de modos que se puedan crear, ni tampoco para los atajos (que no necesariamente tienen que ser de sólo una tecla). Las posibilidades son prácticamente infinitas¹.

¹ no, no son infinitas, pero son muchas. Muchísimas.

Bonus Track! Comparto mi modo de atajos, seguido de una imagen que muestra los programas que ejecuto con cada tecla.

mode "atajos" {
        # fast-switch to workspace
        bindsym 1 workspace $ws1
        bindsym 2 workspace $ws2
        bindsym 3 workspace $ws3
        bindsym 4 workspace $ws4
        bindsym 5 workspace $ws5
        bindsym 6 workspace $ws6
        bindsym 7 workspace $ws7
        bindsym 8 workspace $ws8
        bindsym 9 workspace $ws9
        bindsym 10 workspace $ws10

        # workspace 1
        bindsym q exec emacs

        # workspace 2
        bindsym w workspace $ws2; exec Telegram
        bindsym x exec "killall Telegram"

        #workspace 3
        bindsym e exec firefox

        # workspace 4
        bindsym r exec i3-sensible-terminal
        bindsym f exec pavucontrol

        # workspace 5
        bindsym t exec audacity
        bindsym g exec gimp
        bindsym b exec inkscape

        #workspace 6
        bindsym y exec loffice
        bindsym h exec xpdf
        bindsym n exec firefox --private-window

        # workspace 7
        bindsym u exec mcomic

        # workspace 8
        bindsym i exec vlc

        #workspace 9
        #bindsym o exec 
        #bindsym l exec 
        #bindsym . exec 

        # workspace 10
        #bindsym p exec 
        #bindsym ñ exec 
        #bindsym - exec 

        # back to normal: Enter or Escape or $mod+c
        bindsym Return mode "default"
        bindsym Escape mode "default"
        bindsym $mod+c mode "default"
}

bindsym $mod+c mode "c57"

No! un modo es demasiado para mí

Propuesta para usuarios que no quieran jugar i3 en nightmare, agregar atajos con las teclas F. Agregar en .config/i3/config lo siguiente

bindsym $mod+F1 exec emacs
bindsym $mod+F2 exec pavucontrol
bindsym $mod+F3 exec firefox
bindsym $mod+F4 exec vlc
bindsym $mod+F5 exec audacity
bindsym $mod+F6 exec gimp
bindsym $mod+F7 exec loffice

EN CONSTRUCCIÓN!

respaldar configuración de impresoras

Crear un archivo comprimido con los archivos que están en /etc/cups. Se puede hacer con xarchiver u otro. O por terminal:

# tar -cvzf impresoras.tar.gz /etc/cups

Hay que respaldar el archivo impresoras.tar.gz (en un pendrive, otro pc, etc) y, tras haber instalado el nuevo sistema, sobreescribir su contenido en la carpeta /etc/cups. Tras hacerlo, reiniciar el servicio.

Con systemd:

# systemctl restart cups

o con initd (nunca se sabe):

# /etc/init.d/cupsys restart

Fuente: https://www.cyberciti.biz/tips/linux-migrate-printer-configuration.html


Instalación

Esto está documentado por todas partes (dejo dos links de ejemplo tras las imágenes), pero como respaldo, dejo capturas de como dejé las particiones. En mi caso, quería conservar intacta la partición que uso como /home.

PS: mientras subía las fotos me di cuenta que había un botón para capturar pantalla, jaja.

Links de tutoriales de instalación: https://www.forosla.com/como-instalar-debian-10-buster-ilustrado-paso-a-paso/ https://www.solvetic.com/tutoriales/article/7658-como-actualizar-a-debian-10-como-instalar-debian-10-paso-a-paso/


Agregar usuario a sudo

También se pueden ejecutar programas como root entrando como root, pero siempre será más rápido tener sudo a mano.

Editar /etc/sudoers. Desde una terminal, con # nano /etc/sudoers

# User privilege specification
root 	ALL=(ALL:ALL) ALL
usuario	ALL=(ALL:ALL) ALL

Obviamente cambiar usuario por tu nombre de usuario.


Configuración de red (ath10k)

Decidí no agregar repos non-free hasta que sea imprescindible, así que bajé el paquete (que es non-free :–( )desde: https://packages.debian.org/buster/all/firmware-atheros/download Instalar con

# dpkg -i firmware-atheros_20190114-1_all.deb

En caso de que salga error de dpkg, ver paso subsiguiente. Si no, reiniciar.


Configuración de bluetooth y otros (rtl)

Lo mismo de arriba, pero con este paquete: https://packages.debian.org/buster/firmware-realtek


error dpkg: aviso: `ldconfig’

Abrimos un Terminal como root y ponemos:

export PATH=$PATH:/usr/local/sbin:/usr/sbin:/sbin

Para que se quede fijo en el sistema tenemos dos opciones. Añadimos al fichero /etc/sudoers las siguientes líneas:

Defaults   env_reset
Defaults   secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

O ponemos dentro de nuestro .bashrc:

echo 'export PATH=$PATH:/usr/local/sbin:/usr/sbin:/sbin' >> /home/usuario/.bashrc

Fuente: https://blog.desdelinux.net/como-solucionar-error-dpkg-aviso-ldconfig-en-debian-testing/


Repositorios

Editar archivo /etc/apt/sources.list.

### Debian 10 Buster
 
# Oficiales
deb http://ftp.cl.debian.org/debian/ buster main contrib
#deb-src http://ftp.cl.debian.org/debian/ buster main contrib
 
# Actualizaciones de segudidad
deb http://security.debian.org/debian-security buster/updates main contrib
#deb-src http://security.debian.org/debian-security buster/updates main contrib

# Updates
deb http://ftp.cl.debian.org/debian/ buster-updates main contrib 
#deb-src http://ftp.cl.debian.org/debian/ buster-updates main contrib

Luego, actualizar los repositorios con # apt update. Si se quiere actualizar los programas, #apt upgrade.


ntfs-3g

Posiblemente en algún momento será necesario tener compatibilidad con discos NTFS, por defecto no se leerán hasta que se instale el programa que le da compatibilidad:

# apt install ntfs-3g

Poner tema (xfce4)

En mi caso, instalé xfce4. El tema que trae por defecto no es malo, pero creo que ocupa mucho espacio, así que siempre descargo mi favorito: mini (link: https://www.xfce-look.org/p/1016130/) que, a mi parecer, ocupa lo justo y necesario que el encabezado de las ventanas debe tener:

El archivo descargado trae unas instrucciones para instalarlo, pero invito a omitirlo y simplemente descomprimir la carpeta mini y mini-nigra en la carpeta .themes. Adjunto pantallazo de xarchiver:

Es importante que quede desactivada la opción Extraer ficheros en su ruta completa.

Ahora, para cambiar a mini, en el menú principal, acceder a Configuración/Gestor de Ventanas y seleccionar mini o mini-nigra.


Seguridad en firefox

Firefox viene instalado por defecto. Por defecto también, usa google como buscador principal, permite todas las cookies y otras cosillas que pueden cambiarse (en realidad, cosas que cualquier usuario responsable debería cambiar). Sugiero estos dos links (a anclas dentro de la misma) página: addonsabout:config

Al addon uBlock se le pueden agregar filtros, para que bloquee a los clásicos intrometidos. Lo primero es entrar al dashboard de uBlock (cuarto ícono, bajo el botón grande de activación; al costado del campo de url), luego a la pestaña My Rules y, en la sección de la derecha (donde dice behind-the-scene...), agregar al final lo siguiente:

 * facebook.com * block
 * facebook.net * block
 * fbcdn.net * block
 * google.com * block
 * googleapis.com * block
 * gstatic.com * block
 * media-amazon.com * block
 * twitter.com * block
 * youtube-nocookie.com * block
 * youtube.com * block

Finalmente, presionar [save] y después [← commit].

Fuente: FF.


Fondos de pantalla

No es que sea imprescindible, pero igual bien tener una imagen bonita de fondo. Sugerencias recogidas en el chat de 4lib (https://t.me/cuatrolibertadeschile): FF https://unsplash.com/ DELM http://simpledesktops.com/

En ocasiones es necesario alterar la fecha de edición de ciertos archivos, para lograrlo, se puede usar el siguiente comando:

$ touch -d HHMMSSAAMMDD archivo

Obviamente reemplazando h por hora, m por minuto, etc. En la oportunidad que aprendí esto, necesitaba cambiar la fecha de un pdf y con touch se alteraba la fecha de creación (en realidad, de la última modificación) del archivo pero no los metadatos incrustados en el pdf. Resolví esto usando pdftk para extraer, luego modificar y después actualizar la información.

$ pdftk archivo.pdf dump_data output infoyeah

Luego, abrir el archivo donde quedó la información: $ nano infoyeah y editar los metadatos que queramos.

Editando fecha de creación del archivo

Ojo que acá la fecha se escribe en este formato AAAAMMDDHHMMSS.

Una vez editados los metadatos, con el mismo pdftk, los actualizamos en el pdf: $ pdftk archivo.pdf update_info infoyeah output archivo2.pdf

De nada, no abuses.

Antes de comenzar, admito que el título es medio bait... pero da la idea sobre que es lo que aprenderás en este artículo.

El plan es el siguiente: crear un servidor ssh que, al entrar, ejecute directamente un programa que esté en éste (y no bash, como haría normalmente).

Pasos: -1 – Instalar ssh. Desde Debian y remedos, con el siguiente comando: # apt install ssh

0 – Crear un usuario dedicado e indicarle qué programa será su shell por defecto. Para esto bastará el siguiente comando (en este ejemplo lo llamaremos testshh):

# adduser --shell /home/testssh/miterminal.sh --home /home/testssh/ testssh

1 – El archivo miterminal.sh no existe aun, así que lo crearemos. Las opciones son tan infinitas como cualquier cosa que puedas hacer localmente con el servidor. Para efectos de este tutorial, ofrezco este programa que consiste en un prompt con dos opciones y un huevo de pascua:

#!/bin/bash                                                                                                    
input=""
p1="mi terminal :-D > "
while [ "$input" != "exit" ]
do
    echo -n $p1 && read input
    case $input in
	q)
	    exit
	    ;;
	h)
	    echo 'h  help -- q  quit'
	    ;;
	test)
	    echo 'Ceci n'est pas une test.'
	    ;;
    esac
done
exit

Y listo! Pero... como se ve en ejecución??

$ ssh testssh@localhost
testssh@localhost's password:
Linux servium 4.19.0-5-amd64 #1 SMP Debian 4.19.37-5 (2019-06-19) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
mi terminal :-D >
mi terminal :-D > h
h  help -- q  quit
mi terminal :-D > test
Ceci n'est pas une test.
mi terminal :-D > q
Connection to localhost closed.

Obviamente, si tienes un servidor transmitiendo hacia la red, habrá que cambiar localhost por la ip (o dirección dyndns que hayas configurado); y, si estás dentro de la misma red local que el servidor, cambiar localhost por la ip interna.

[extra] doy por hecho que todos lo saben, pero siempre habrá alguien que aun no, así que igual: Los comandos se sabe si son ejecutados por un usuario normal o como superusuario fijándose en el primer caracter, siendo éstos $ y #, respectivamente.

tint2 is a simple panel/taskbar made for modern X window managers. It was specifically made for Openbox but it should also work with other window managers (GNOME, KDE, XFCE etc.).

Por defecto funciona con solo un panel, pero en este post enseñaré a dejar dos (o más) paneles funcionando.

Para llamar a tint2, desde terminal basta con escribir tint2. El programa aguanta el parámetro -c, para indicar a mano la ruta de la configuración.

El mecanismo que usé para esto (para efectos de tutorial y para tener la configuración a mano), será hacer un programa que ejecute las dos instancias de tint2 y agregarlo a las aplicaciones al inicio.

Entonces, creamos el archivo tint2.sh que tendrá el siguiente contenido:

#!/bin/bash
cd
tint2 -c .config/tint2/panel_arriba
tint2 -c .config/tint2/panel_abajo

En la ruta que indiqué ya existe el archivo tint2rc, que usaremos como base para panel_arriba y panel_abajo. Entonces, para conservar la config original, en una terminal ejecutamos lo siguiente:

$ cd .config/tint2
$ cp tint2rc panel_arriba
$ cp tint2rc panel_abajo

Ahora viene la edición de cada panel (en caso de no hacerlo, habrán dos paneles iguales ¬¬). En esta etapa, obviamente importará lo que quiere cada uno. En mi caso, quiero dejar un panel arriba con información (tiempo, hora/fecha, estado de la batería y area de notificaciones) y abajo el típico panel con botones para cambiar entre las aplicaciones abiertas.

En este link está la documentación para editar la configuración. En adelante, mencionaré los cambios que hice .

panel_arriba 1. en la línea 65 están los ítems que tendrá el panel: panel_items = LTSC Según lo que indica la documentación:

L shows the Launcher T shows the Taskbar S shows the Systray (also called notification area) B shows the Battery status C shows the Clock F adds an extensible spacer (freespace). You can specify more than one. Has no effect if T is also present. (since 0.12) E adds an executor plugin. You can specify more than one. (since 0.12.4) P adds a push button. You can specify more than one. (since 0.14) : adds a separator. You can specify more than one. (since 0.13.0)

entonces, esta línea la dejaré así: panel_items = CBS

Es super sencillo el proceso, pero mi subconciente deseaba más desafío y me negué a pensar en la primera solución, hasta que en el grupo 4lib tsolar me dio una pista valiosa que había neciamente obviado. Para que quede registro y para evitar que alguien en el futuro se vea confundido como estuve yo, con la actualización de 9 a 10 (e imagino que el método seguirá funcionando cuando llegue la 11, etc) y no encuentre una respuesta clara a Cómo actualizar Debian.

Manos a la obra 1- corroborar los repositorios. En los parámetros de cada repositorio¹ debe decir stable en vez de stretch.

entonces: deb http://debian.redlibre.cl/debian/ stretch main pasaría a ser deb http://debian.redlibre.cl/debian/ stable main

  • Solo cambia stable por stretch. La url y las otras palabras que están ahí no las cambies ni borres.

Para hacerlo, usa tu editor favorito como superusuario.² Si ya decía stable déjalo así, este paso fue en vano. De nada.

2- actualizar repos y actualizar En una terminal, como superusuario³ escribe: apt update; apt dist-upgrade

Lo que acabas de escribir son dos órdenes, una para actualizar la información de los repositorios (así tu pc “sabe” que hay versiones nuevas de los programas que ya tiene instalados) y luego para actualizar los programas cuya versión disponible sea superior a la que tienes instalada. Luego de eso (pasará un rato, dificilmente más de dos minutos) te encontrarás con algo parecido a esto:

1959 actualizados, 694 nuevos se instalarán, 37 para eliminar y 0 no actualizados.
Se necesita descargar 3.704 MB/3.704 MB de archivos.
Se utilizarán 2.633 MB de espacio de disco adicional después de esta operación.
¿Desea continuar? [S/n]   

Presiona la tecla [S] (la letra) y luego [Enter]. Lo que tardes en descargar todo dependerá de tu conexión a internet.

HASTA ACÁ VOY AHORA, CUANDO SE HAYA TERMINADO DE DESCARGAR TODO SIGO “RELATANDO” EL PROCESO.

Listo.

Me mostró un texto informando sobre los cambios que se realizarían. Sugiero darle una léida por encima al menos (para tener idea de qué está pasando). Para salir, presionar [q]

La instalación transcurrió automáticamente, con solo algunas interrupciones:

MiniSSDP. Opción para buscar dispositivos upnp. Tiene un campo para indicar por medio de qué dispositivos, dejé sólo el del wifi y conexión por cable.

Consulta sobre reiniciar servicios durante la actualización. Da la oportunidad para optar si se quiere o no que druante la instalación se reinicien servicios.

Luego un buen rato instalando paquetes... termina la instalación. Reinicias el PC y ¡Bienvenido a Debian 10!

En mi caso particular tuve un problema con el sonido, pero eso lo seguiré tratando en este hilo.

Notas ¹ breve: Qué es un repositorio? Los repositorios son la fuente de donde tu sistema saca los programas, si los miras a simple vista, son solo links con un par de parámetros más. Eso es todo... jjaj no. Los respositorios (esos links) están en el archivo /etc/apt/sources.list (después de un tiempo te aprenderás esta ubicación de memoria) y son leídos por el programa apt (o synaptic) para confirmar si los programas instalados en el pc están en la última versión disponible.

² abre una terminal y escribe su luego ejecuta lo siguiente nano /etc/apt/sources.list

Cuando termines de editar el archivo, presiona Control + O (la letra o, de oblícuo) y luego Control + X. Para guardar y cerrar, respectivamente.

³ vid supra.

Nota: gracias Tom :–).

Les contaré un poco sobre el sistema de blog que tengo en mi página, se llama bashblog, lo encontré de casualidad en github y consiste en un archivo único .sh que genera un blog en html. Las instrucciones de uso son más que sencillas y utiliza el editor por defecto de la terminal.

Actualmente estoy usando una modificación personal del código al que quité algunas partes porque realmente no me interesaba implementarlas ni tener la posibilidad de hacerlo en el futuro (disqus, twitter y googleads), traduje las poquísimas cadenas de texto del formato (“leer más”, “archivo”, etc), edité levemente el archivo de estilo e hice otras modificaciones pequeñas.

Para postear Se llama al programa con ./bb.sh post, luego de eso, se abre editor por defecto de la terminal con un archivo temporal en el que uno escribe el contenido dispuesto así: [título] [contenido] [categorías]. Tras guardar los cambios y salir del editor, se vuelve a la terminal en que se dan las siguientes opciones:

[P]ost this entry, [E]dit again, [D]raft for later? (p/E/d)

Si se elige postear, el resultado será este:

Posted title-on-this-line30637.html
Rebuilding tag pages ..
Rebuilding the index ...
Creating an index page with all the posts ...
Creating an index page with all the tags ....
Making RSS ...

Las otras opciones son regresar al editor y guardar el artículo como borrador. Para publicarlo después es preciso utilizar estos parámetros: ./bb.sh post [nombredearchivo]. Esta opción permite también subir documentos previamente hechos, como si fueran entradas del blog.

Para escribir los artículos se puede ocupar markdown, siempre que esté instalado (en realidad, esto significa que el archivo Markdown.pl esté en la misma carpeta. Asumo que con algunos cambios en el código se puede utilizar cualquier otro lenguaje de marcado que envíe su resultado en html.

El procedimiento necesario para postear (recién descrito) lo agregué como un alias en .bashrc y así lo ejecuto directamente.

Mi página es cvillavicencio.com y la versión con modificaciones que estoy haciendo la publicaré cuando estime que está lista con los cambios que quiero que tenga.