Categoría: Computación

Todo lo relacionado a la computación, programación, software y hardware.

  • todo.txt, calendar.txt, Simple.txt: Organización, Productividad y Simpleza.

    todo.txt, calendar.txt, Simple.txt: Organización, Productividad y Simpleza.

    Resumen

    todo.txt¹⁸ es una estructura simple de texto plano para listas de tareas que cumple una serie de reglas para su fácil entendimiento sin necesidad de aplicaciones interpretes. Tener control sobre el progreso de nuestras metas, proyectos, tareas cotidianas o laborales nos permitirá optimizar nuestro tiempo a diario para todas las actividades que requieran progreso o simplemente atención a diario (Vida personal, Trabajo, Aficiones, etc) El texto plano de la estructura todo.txt¹⁸ hace posible su uso en cualquier editor de texto, haciendo posible fácilmente su lectura entre distintas plataformas y sincronizarlo de cualquier forma existente. La estructura se puede aplicar a cualquier tipo de información clasificable, eventos de calendario, registro de actividades, finanzas, marcadores, entrenamiento, alimentación, etc.

    Introducción

    Buenas gente, hoy les hablaré de una joya que encontré hace bastantes años en cuanto a organización, productividad y porque no decirlo programación, el formato para listas de tareas o quehaceres, “todo” en inglés, todo.txt¹⁸ que consiste en una lista con unas pocas reglas para definir tareas de quehaceres en un archivo común y corriente, que puede o no necesitar una aplicación especifica para interpretarlo ya que el formato es tan simple que se entiende al leerlo, un archivo de texto que puedes leer con cualquier editor o lector de texto en cualquier plataforma, además esto mismo lo hace fácil de sincronizar a través de cualquier aplicación, por último su estructura es aplicable a casi todo en cuanto a información clasificable, pudiendo aplicarse en calendarios, registro de actividades, registro de finanzas, marcadores, o seguimiento diario de tus actividades para retroalimentación de la distribución del tiempo diario. No mas trabas de aplicaciones especificas para mantenerte organizado y productivo en tu día a día.

    Organización y Productividad

    Bueno podría hacer una publicación dedicada a la organización personal y por que es tan necesario en nuestro día a día, pero haré un pequeño acercamiento.

    Personalmente me gusta hacer varias cosas al día, proyectos de todo tipo, me refiero a distintas disciplinas, aunque ciertamente lo mejor que podemos hacer es dedicarle tiempo a una cosa a la vez, de seguro ya lo habrán escuchado… no me gusta seguir ese consejo, así no tengo un día monótono. Lejos de mis preferencias personales, interpolemos estos “proyectos” a la vida diaria, por ejemplo una persona con familia, empleo y aficiones, estos serían sus proyectos, a cualquiera le gustaría tener tiempo para todo durante el día, y avanzar en cada actividad que necesite desarrollo, entonces es cuando yo digo que si es muy posible esto, solo debes organizar tu día.

    Siempre que no eh tenido actividades programadas en mi agenda, tarde o temprano llego a los brazos del ocio, o como un adicto termino dedicándole todo el día a una sola cosa, entonces para mantener el control sobre nuestra vida es necesaria la autodisciplina, ya sea para entrenamiento físico, proyectos en tu empleo o proyectos personales, estudios, aficiones, incluso pasar tiempo con nuestros seres queridos, o en muchos casos poder dormir lo suficiente, existe una serie de aristas de por que no deberíamos entregarnos al ocio por completo como también no deberíamos entregarnos a cualquier proyecto como un adicto que influyen directamente en nuestra salud física y mental.

    Entonces lo que necesitamos es recordarnos nuestra agenda diaria, mas aun si es auto-impuesta, así cumplirla para lograr nuestras metas y objetivos sin perder la cabeza, que mejor para eso que los aparatos que usamos día a día, es decir, los móviles vienen con calendario desde que usaban esa pantalla verde de pixeles, cualquiera puede usarlas, cualquiera puede aprender rápidamente a usar ese tipo de aplicaciones.

    Problemas de aplicaciones especificas

    Actualmente tenemos aplicaciones de calendario, tareas, contactos casi por defecto en cada dispositivo inteligente, ya sea un móvil telefónico o una tableta, centros multimedia, televisores inteligentes, un computador, netbook o notebook los sistemas operativos incluyen ese tipo de aplicaciones, solo agregas un evento, tarea o contacto y ya está te lo muestra en pantalla, inclusive te da una alarma preconfigurada antes de que empiece el evento en caso de la agenda de calendarios.

    Bueno el problema que surge cuando empezamos a buscar la facilidad, la comodidad, la practicidad y la autonomía en algunos casos, que aplicación usar, por qué usarla, que plataformas usa, me permite estar sincronizado con mis otros dispositivos, siquiera puedo usarla en otro tipo de dispositivo?, así suma y sigue.

    Actualmente cada conglomerado tecnológico tiene su propia plataforma, usa ciertos formatos, actualmente compatibles, pero cada vez ponen mas trabas para usarlas en aplicaciones de terceros. Por ejemplo Microsoft, la suite de outlook, calendario, contactos, sus aplicaciones oficiales podrían o no ser de gusto de todos, algunos optan por software libre o de código abierto, o tampoco les gusta la idea de usar la red proporcionada por dicha empresa, lo mismo Apple o inclusive Google.

    Una solución sería usar aplicaciones neutrales en cuanto a plataformas, por lo general el software libre y el de código abierto es así, en algunos casos el freeware o adware también proporciona alternativas aceptables, pero en veces se pierde la cadena de uso, por ejemplo: durante el día necesitas los recordatorios en el móvil, y en otras ocasiones durante el día la necesitas en tu notebook, o inclusive en la pantalla del televisor, es un problema, no es cómodo, ya que es lo que necesitamos, 0 excusas para seguir nuestro itinerario.

    Texto plano

    Existe una solución la cual le veo mucho potencial, un formato simple de leer que pueda usar cualquier aplicación en cualquier plataforma, que se pueda guardar en un archivo simple, y pueda ser sincronizado de cualquier manera, es decir, tenemos rclone y syncthing, personalmente creo que con cualquiera de esas dos herramientas no tienes que buscar mas alternativas en sincronización de archivos a otros dispositivos.

    todo.txt

    Todo.txt¹⁸ consiste en un listado de tareas, una tarea por línea en un documento de texto simple, las cuales deben ser escritas siguiendo algunas reglas. Este formato fue ideado por la destacada programadora Gina Trapani¹, en una entrevista del podcast Postlight² habla sobre la productividad y la necesidad de TODO.txt para ella.

    Actualmente hay muchísimas aplicaciones compatibles con este formato de escritura de tareas, a continuación describo las reglas para escribir una tarea.

    Estructura

    Una tarea por línea de texto dentro del archivo todo.txt, ejemplo:

    x (A) 2025-03-20 2024-10-31 Escribir +publicación de Todo.txt para el blog @iltec due:2024-10-31
    ↓  ↓       ↓          ↓       ↓            ↓                                  ↓       ↓
    1  2       3          4       5           5.1                                5.2     5.3
    
    1. Opcional, marca de tarea completa.
    2. Opcional, Prioridad (A la más importante, Z la de menor importancia)
    3. Opcional, Fecha de tarea completa.
    4. Opcional, Fecha de creación de la tarea. Si la tarea tiene fecha de tarea completa debe tener esta fecha de creación.
    5. Descripción de la tarea, y etiquetas opcionales.
      1. Etiqueta de proyecto. +
      2. Etiqueta de contexto. @
      3. Etiqueta nombre:valor especial, extensiones opcionales.

    Reglas tareas incompletas, extraidas desde github de todo.txt ³

    1. Si la tarea tiene prioridad debe ir al principio, debe ser una letra entre la A y la Z, siendo la A de mayor jerarquía y bajando según el alfabeto, en mayúscula, entre paréntesis y seguido de un espacio.

       (A) Terminar publicación de +simpletxt
       (B) Comer algo
       (B) Dormir un poquito
      
    2. La fecha de creación (si es que la tiene) debe aparecer inmediatamente después de la prioridad y un espacio, de no tener prioridad, debe estar al principio.

       (A) 2025-03-20 Poner fecha de creación a las tareas.
       2025-03-20 Poner prioridad a las tareas para @iltec
      
    3. Contextos y Proyectos deben aparecer en cualquier parte de la línea de texto después de la prioridad y la fecha de creación si es que la tiene.

    4. Los contextos se preceden con un “@”, @iltec, contexto como su nombre lo dice, el contexto de la tarea de cualquier índole, un espacio donde la tarea se desarrolla.

    5. Los proyectos se preceden con un “+”, +publicaciones, como su nombre lo dice para etiquetar la tarea dentro de un proyecto.

         (A) Escribir +publicaciones para @iltec
         (B) 2025-03-22 Comer saludable y +entrenar en @casa
      

    Reglas para tareas completas

    1. Una tarea completa inicia con una “x” minúscula seguida de un espacio.

       x Avanzar en +publicaciones de +simpletxt parar @iltec
      
    2. La fecha de tarea completada aparece directamente despues de la “x” y un espacio, si es que la tarea tiene fecha de creación.

       x 2025-03-20 2025-03-19 Avanzar en +publicaciones de +simpletxt parar @iltec
      

    Extensiones con variables (nombre:valor)

    Estas combinaciones de nombre y valor como variables pueden servir para definir metadatos extra para las tareas, algunos que puedes encontrar comunmente adoptados por algunas aplicaciones todo.txt:

    1. uuid, define una identificación a una tarea.

       (B) Comprar monitor mas ancho. uuid:f06a3dcd-907a-452c-b1e0-5720b5877ff7
      
    2. due, define una fecha limite para terminar la tarea.

       (A) 2025-03-19 Avanzar en +publicaciones de +simpletxt parar @iltec due:2025-03-20
      
    3. t, define la fecha de inicio para completar la tarea.

       (A) 2025-03-15 Avanzar en +publicaciones de +simpletxt parar @iltec t:2025-03-19 due:2025-03-20
      
    4. rec, recurrencia, personalmente uno de los mas escenciales para mi al menos. Por ejemplo tienes tareas semanales, pero las mismas, quizás mensuales, quizás anuales, pongamoslo mas profesional, tienes una lista de tareas para mantenciones programadas. Describamos el funcionamiento:

    5. Posibles valores:

      • d Repetición diaria.
      • b Repetición diaria pero días de trabajo.
      • w Cada semana.
      • m Mensualmente.
      • y Repetición cada año.
    6. Cada cuantos valores se repite, al adjuntar un numero entero se hará la multiplicación de la siguiente repetición, por ejemplo, ésta tarea se repetirá cada 2 días.

             (A) Mirar si está lloviendo en la esquina. rec:2d
      
    7. Cuando se repite?

      • Usando la fecha de tarea completa. En el ejemplo vemos que la fecha de tarea completa es el día 20 de Marzo de 2025, y la repetición de la tarea es semanal, la tarea que se generará iniciará el día 27 del mismo mes.

            x (A) 2025-03-20 2025-03-13 Actualizar aplicaciones del @movil rec:1w
        
      • Usando la fecha límite (due), usando un signo + antes del múltiplo del valor. En el ejemplo para generar la repetición se usará la fecha límite en vez de la fecha de tarea completada, supongamos que completamos la tarea después de la fecha límite, aun así se sumará la semana desde la fecha límite.

            (A) Actualizar aplicaciones del @movil rec:+1w due:2025-03-20
        

    Implementaciones

    Algunas de las aplicaciones todo.txt que eh probado y funcionan con las extensiones que les presenté anteriormente.

    1. Sleek, multiplataforma en escritorio (Windows, Linux, macOS), FOSS (free and open source software), usa electrón como interfaz, básicamente es una webui que gestiona el archivo todo.txt, por lo mismo no le tenia mucha fe, prefiero las aplicaciones nativas, pero que tapón de boca me dio, la llevo usando un par de meses, de los años que llevo usando el formato, y se me ha hecho indispensable, gráficamente la aplicación mas completa en escritorio.

    2. Simpletask, a pesar de que ya no se desarrolla la sigo usando, porque es la mas completa para android, tan poderosa como lo es Sleek en escritorio, y ademas tiene widgets con filtros específicos para que veas tus tareas en la pantalla principal del móvil.

    Las siguientes las probé pero no me terminaron de gustar, por interfaz, por poco filtro o por la falta de extensiones

    1. qtodotxt2, interfaz qt, se ve muy profesional, además por ser qt puede usarse de forma multiplataforma en escritorio, no me funcionaron algunas extensiones, pero si lo recomiendo, aunque al parecer no está en desarrollo activo.

    2. Todour¹⁴, Lo usé muchos años en escritorio, pero su interfaz es muy pobre, pocas herramientas, y creo que ya no está en desarrollo.

    3. ntodotxt, lo mas actual y activo en cuanto a todo.txt que encontré para android, aun no tiene widget, y en comparación con simpletask le falta mucho, pero están activos, esperemos que tal vendrán las proximas veriones.

    4. markor¹³, en realidad esta es una herramienta para texto, partión como un editor de texto específicamente en el formato Markdown, pero ahora hace mucho mas, lo uso para casi todo lo que tiene que ver con documentos en mi móvil, indispensable para mi al menos, y además dentro de sus formatos lee el formato todo.txt, pero mas que nada visualizar, también puedes poner un widget, pero n puedes filtrarlo, de echo el modo visualización no es dinámico, claro tiene buenas herramientas en el modo edición, aunque su funcionalidad con este tipo de archivos no me parece cómoda, igual lo recomiendo para usos mas básicos, sirve muy bien, entre markor y ntodotxt, prefiero parar estas funciones ntodotxt.

    5. todo.sh y effitask¹⁰, es la original por asi decirlo, todotxt.sh un script para gestionar estos archivos, muy potente y extensible para la terminal, si quieres una interfaz gráfica tienes el modulo effitastk, aunque estaba muy deficiente la estética y últimamente no conseguí instalarlo, pero para su uso en terminal, funciona perfecto, combinado con conky, tienes un excelente widget para tu escritorio.

    Calendar.txt

    Calendar.txt¹¹ es la adaptación de Todo.txt a eventos de calendario, ideado por Tero Karvinen. Al igual que Todo.txt es un evento por línea y sigue una estructura especifica para describir los eventos que detallo a continuación.

    Estructura

    2021-02-19 w07 Fri  8-13 +pt. 16 holiday
          ↓     ↓   ↓     ↓          ↓
          1     2   3     4          5
    
    1. Año-Mes-Día
    2. Numero de Semana
    3. Día de la semana
    4. Inicio – Final
    5. Otro Evento

    Reglas, traducidas desde el sitio de la propuesta¹¹.

    • Una cosa por línea
      • Un día por línea
      • Opcionalmente metas semanales, mensuales o anuales son una sola línea.
    • La línea contiene (2025-05-01 w18 Thu 21-22 Publicación del blog. 23 Jugar Sims)
      • ISO-8601 fecha (2025-05-01)
      • ISO-8601 numero de semana (w18). La semana estándar parte en Lunes.
      • Día de la semana abreviado (inglés) (Thu)
      • Separador de Fecha, 2 espacios (" ")
      • Eventos diarios, ordenados por hora.
    • Eventos Diarios
      • Hora de inicio en formato 24hrs, (21:15)
        • Opcionalmente, puede ser abreviado (21)
        • Opcionalmente, separador de hora-minuto “:” pude ser omitido (2115)
      • Opcional, guion y hora final (-22:00)
        • Opcionalmente, puede ser abreviado (22)
        • Opcionalmente, separador de hora-minuto “:” pude ser omitido (2200)
      • Texto del evento (“Publicación del blog.”)
        • Opcionalmente se pueden usar etiquetas. (ejemplo: +Blog)
      • Los eventos diarios finalizan con un “.”
        • Opcionalmente después del ultimo evento del día se puede omitir el punto.
    • Opcional, metas semanales.
      • Las metas semanales aparecen después de las fechas semanales.
        • La sintaxis hace que las metas semanales se clasifiquen alfabéticamente antes de los días.
      • Igual que los eventos diarios excepto que se omite la abreviación del día de la semana (“2025-05-01 w18 Publico el articulo si o si”)
        • ISO-8601 Fecha (2025-05-01)
        • ISO-8601 Numero de semana (w18)
        • Separador de fecha, dos espacios (" ")
        • Meta semanal.
    • Hora de aeropuerto: todos los eventos están en la hora donde se leen, excepto que esté explicita la zona horaria (ISO_8601).
      • Ejemplo, Hora Local: “20:00 Conseguir documentación falsa en Rere” es zona horaria de America/Santiago(-04), “22:00 Huir de inmigración” zona horaria CDT de EEUU (-05).
      • Ejemplo, con zona horaria: 2100-04 Publicación del blog.
    • Formato de archivo
      • Codificación UTF-8
      • Nombre de archivo es “calendar.txt”
    • Opcionalmente metas mensuales.
      • La línea empieza con el año y el mes en formato ISO-8601 YYYY-MM (“2025-05”)
      • Separador de fechas, dos espacios (" ")
      • Texto de meta.
    • Opcional, metas anuales.
      • La línea empieza con el año (“2022”)
      • Separador de fecha, dos espacios (" ")
      • Texto de meta.
    • Opcional, etiquetas (+tag)
      • Puedes añadir etiquetas a cualquier sección de texto libre, eventos diarios; metas semanales, mensuales y anuales.
    • Opcional, contextos (@Work, @E, @N)
      • Definir lugares específicos.

    Implementaciones

    Actualmente no hay implementación de aplicaciones especificas para este formato, solo scripts de 15 minutos, pero como vemos un editor o lector de texto funciona perfectamente.

    ActivityLog.txt¹⁷

    Este es una estructura para registrar actividades, la llevo usando hace casi un año en conjunto con las aplicaciones Diary¹² y Markor¹³, para dispositivos móviles Android, estas permiten añadir código Javascript al leer sus documentos, además Diary¹² te presenta un archivo de texto distinto cada día, y Markor¹³ es una navaja suiza para el manejo de documentos de texto, lo uso para gestionar bitácoras de trabajo en el caso de ActivityLog.txt¹⁷, entre otros usos que le doy, útil para quienes nos gusta llevar registro de nuestras actividades.

    10:30 @Trabajo +proyecto2 +avances Continuaré con la investigación.
    09:30 @Trabajo +llegada 1 hora tarde 😓
    08:30 @Cotidiano +Despertar Puse la alarma en la calculadora 😅
    01:50 @Dormir Intentaré dormir.
    

    Estructura

        2025-05-01 23:36 @Cotidiano Al fin a la camita +tuto +dormir
        2025-05-01 23:00 @Comida Asalté el refrigerador. +snack
        2025-05-01 21:30 @Afición Continuar la publicación del +blog.
             ↓       ↓       ↓                     ↓
             1       2       3                     4
    
    1. (Opcional) Fecha de actividad
    2. Hora de actividad
    3. Tipo de actividad (@)
    4. Descripción de la actividad, opcionalmente puede tener etiquetas.

    Reglas

    1. Una actividad por línea.
    2. Orden inverso, las actividades mas nuevas se añaden al inicio del archivo.
    3. (Opcional) La fecha del día es opcional, en caso de organizar las actividades en archivos por día.
    4. Despues de la fecha y la hora debe estar el tipo de actividad con un “@” antepuesto, ejemplo: @Entrenar, esto con el objetivo de gestionar el tiempo de uso en cada tipo de actividad.
    5. (Opcional) Las etiquetas (+tag) están pensadas para usarse para una sub-clasificación de actividades, por ejemplo: @Entrenar +Sentadillas, @Entrenar +PushUp, etc. Pero no es necesario darle ese uso, se pueden usar para cualquier tipo de clasificación que necesiten.

    Implementaciones

    Como es una propuesta propia, nadie a parte de mi ha implementado éste formato, como dije llevo usándolo poco mas de un año antes de hacer esta publicación, tengo scripts y algunas bibliotecas en desarrollo para javascript, y ahora último eh trabajado mucho con scripts de 15 minutos en bash. **Pronto haré publico las repos de estos scripts y bibliotecas.formato hecho para leerlo sin interpretes

    Ésta y mis otras propuestas las agruparé bajo el proyecto Simple.txt

    Bookmarks.txt

    Este es otra propuesta que hago de estructura para clasificar información, marcadores, un enlace por línea, “@” para categorías, “+” para etiquetas, como cualquier gestor de marcadores.

    Iltec - Isla Laja Tecnologías  https://iltec.cl @Profesional +servicios
    GESU  https://gesu.noblogs.org @Personal +bitácora +blog
    

    Hay varias aplicaciones actualmente para gestionar marcadores, pero no hay un formato especifico que todas usen, existe una esquemática tipo xml, pero mas que nada se usa para exportar datos. Para su fácil entendimiento se necesitan aplicaciones.

    Personalmente creo que es muy raro que nadie haya implementado algo simple aún, ya que es una simple lista de enlaces, no necesitas una aplicación muy compleja, pero en fin.

    Estructura

    GESU  https://gesu.noblogs.org @Personal +bitácora +blog
     ↓           ↓                     ↓              ↓
     1           2                     3              4
    
    1. Titulo del sitio
    2. URL
    3. Categoría “@”
    4. Etiquetas

    Reglas

    1. Un enlace por línea.
    2. Separación entre Titulo y el resto de los datos son dos espacios " ".
    3. No se me ocurre que otra cosa podría necesitar una lista de enlaces. 🤣

    Implementaciones

    Como es una propuesta propia, nadie a parte de mi ha implementado éste formato, pronto haré publico mi repo con herramientas, pero por supuesto, cualquiera puede hacer un script de 15 minutos para gestionar este tipo de cosas.

    Finances.txt

    Este es un ejemplo un poco mas complejo, otra propuesta que hago para estructuras de clasificación, se me ocurrió porque al igual que los marcadores las aplicaciones para gestionar finanzas son algunas muy complejas, otras incompatibles, algunas tienen elementos innecesarios para el día a día, y ademas quiero implementarlo junto con ActivityLog.txt para el registro diario, quiero decir, que me muestre un tope diario de gastos, ahorro, etc, básicamente registra movimientos, igual que las demás.

    2025-03-23 11:00 @BECuentaRUT +15000 @chambitas Sacar pelos a los vasos
    2025-03-23 10:00 @BECuentaRUT >5000 @TENPO 
    2025-03-23 09:30 @BECuentaRUT -3.000 @AlmacenQuique Desayuno +gastos +comida
    

    Estructura

    2025-05-01 11:00 @Cuenta1 >5000 @Cuenta2 Descripción de movimiento +etiquetas
         ↓       ↓       ↓      ↓       ↓             ↓
         1       2       3      4       5             6
    
    1. (Opcional)Fecha de movimiento
    2. Hora de movimiento
    3. “@” Nombre de cuenta propia
    4. Tipo de movimiento “+” ingreso, “-” gasto, “>” transferencia seguido del monto.
    5. “@” Entidad o Otra cuenta propia según punto 4, si es gasto o ingreso el “@” es el nombre de cualquier entidad, tu empleador, una tienda, alguna organización a la que haces donaciones, de ser transferencia el “@” significa otra cuenta propia.
    6. (Opcional) La descripción del movimiento y etiquetas clasificatorias.

    Implementaciones

    Como ya dije, esta es un propuesta propia que formalizo al momento de hacer esta publicación, de partida la idea es implementarla en conjunto con ActivityLog.txt¹⁷, describir información de movimientos financieros en el momento y acumularlas en un archivo único o base de datos, pero siempre colectar estos datos mediante las hojas diarias de actividad, en este caso movimientos financieros simples. Pronto haré publico mis repos con estas herramientas en desarrollo.

    Otras propuestas

    Aquí haré algunos bocetos de ideas en mente, pero que no eh tenido tiempo de desarrollar, pero están en el tintero.

    Training.txt

    Esta es una propuesta que aun estoy puliendo para usar en conjunto con ActivityLog.txt, para los entrenamientos, los defino por conteo @count y por cantidad @amount, aplicar a la lectura de estos archivos 2 reglas diferentes.

    2025-05-01 12:25 @amount +Bycicle 10km0hrs55min +lastre 30kg
    2025-05-01 11:30 @amount +Bycicle 0km0hrs0min +lastre 30kg
    2025-05-01 11:00 @count +Push-up 30,30,28,35,12 +lastre 20kg
    

    MenuFood.txt

    Otra propuesta en proceso de estructuración, también para trabajar en conjunto con ActivityLog.txt, y mas o menos con el mismo objetivo de Finances.txt, saber la cantidad que me permito consumir cada día de cada alimento, incluso variar un menú, obvio se requiere de una base de información y se va colectando los consumos durante cada día para lograr el objetivo nutricional, bueno como una aplicación cualquiera para registrar, controlar y variar tu alimentación dado los alimentos disponibles según tu área o presupuesto.

    2025-05-01 18:00 @Cena +Pan 200gr +Miel 30gr +café 5gr
    2025-05-01 13:00 @Almuerzo +arroz 200gr +hamburguesa 30gr +café 5gr
    

    Warehouse.txt

    Otra de las grandes ideas que se me han quedado en el tintero es el registro de movimientos de insumos para una bodega, es vital tener esa información organizada, al igual que las anteriores propuestas, está pensada para usar con ActivityLog.txt¹⁷.

    2025-05-01 15:00 @LubricantesGrasas +WD40 <500ml
    2025-05-01 15:00 @Fijaciones +Clavos2 >200u
    

    Aplicable a todo

    Cualquier información clasificable para enlistar puede ser implementada con los ejemplos de propuestas que les presenté queda muy clara la idea, una entrada por linea, “@” Contextos, Tipos o clasificadores mayores, + Etiquetas, sub-clasificaciones, etc. Fecha y hora del acontecimiento, y una cadena de texto libre para una breve descripción.

    Extensible

    Como pudimos observar en la estructura todo.txt, hay extensiones tipo nombre:valor, al igual que todo.txt, se pueden implementar otro tipo de variables en otros usos de estructuras similares para suplir necesidades especificas que no se puedan detallar con “@” o “+”, aunque la idea de fondo es mantener cada línea lo mas simple posible.

    Sincronizable

    La libertad de sincronizar con el software que sea, es decir, se trabaja con archivo de texto simple, lo puedes sincronizar con aplicaciones de nubes de servicios conocidos, sincronizadores p2p, incluso usar el usb para copiar el archivo de un lugar a otro sin ningún problemas, es solo un archivo de texto.

    Humanamente Entendible

    La estructura está diseñada para que cualquier persona lo entienda al leerlo, no es un archivo de etiquetado XML, o un desastre de texto si estuviera embutido en un JSON, es solo texto, un elemento por línea.

    Fácil de trabajar

    Al ser un formato hecho para leerlo sin interpretes, es muy simple de trabajar para hacer scripts por ejemplo, puedes hacer unos scripts para tu equipo de escritorio no deberías demorarte mas de 1 hora en aplicar un código decente si tienes la experiencia. Básicamente es leer y separar partes de texto línea por línea en un archivo, no hay mucho que identificar y ordenar, “@”, “+”, Cadenas de texto, fechas y horas, ordenados en posiciones según la estructura que uses. Me hice un código en bash, apoyado con Zenity¹⁵ para añadir actividades en mi registro diario, no demoré mas de 30 minutos en lograrlo, Zenity (GTK) y sed, herramientas que encuentras en cualquier distribución de GNU/Linux, esto es solo un ejemplo.

    Conclusiones

    • Mantener la organización de nuestras actividades nos ayudará a ser productivos en cualquier aspecto de nuestras vidas, se traduce en el uso de algo totalmente invaluable: el tiempo.
    • Las estructuras simples de texto plano nos quitan las cadenas a aplicaciones especificas en cuanto a plataformas y métodos de sincronización.
    • La estructura inicialmente definida por Gina Trapani¹ en todo.txt se puede aplicar a casi todo tipo de información clasificable o enlistable como ha demostrado Tero Karvinen al adaptarla a su propia propuesta para eventos de calendarios, así como personalmente lo he adaptado para un seguimiento de actividades en mi propuesta de ActivityLog.txt¹⁷.

    Referencias

    1. Gina Trapani Autor
    2. Postlight Podcast – #0060: Gina Trapani has things TODO.txt
    3. todo.txt – Github
    4. Recurring todos (rec:) – Sleek
    5. Sleek
    6. SimpleTask
    7. Qtodotxt2
    8. ntodotxt
    9. todotxt-cli
    10. Effitask
    11. Calendar.txt
    12. Diary
    13. Markor
    14. Todour
    15. Zenity
    16. Tero Karvinen
    17. ActivityLog.txt
    18. todo.txt
  • Mantenimiento y Formateo Notebook

    Mantenimiento y Formateo Notebook

    Que tal gente, en esta ocación les traigo algo salido de la bitácora, les presento los detalles del trabajo realizado con este notebook del cual hice un video con fines publicitarios.

    El asunto con este notebook es que necesitaba un formateo, tenia windows 10 que ya no funcionaba con mucha fluidez, y tambien necesitaba instalar software propietario del tipo CAD, es decir, necesitaba mas que fluidez, por eso se optó por el formateo, demoraba menos, para asi no pelear con el registro de Windows, configuraciones y aplicaciones con Adware.

    Otro asunto a parte fue que el teclado fue ensuciado con alguna sustancia pegajosa, hubo manipulación de niños de pormedio, no recuerdo que era, peto en el video le puse que era caramelo, si no era caramelo, era algo similar, tuve que desarmarlo para verificar que no hubiera mayor suciedad en el interior con dicha sustancia, aproveche de limpiar el polvo, mantención de rutina, y bueno, la sustancia la limpié con alcohol y paciencia, tecla por tecla, no eran muchas las afectadas.

    Los invito ver el video, un cordial saludo gente, hasta la proxima.

  • Instalación ARCHLINUX vía Netboot (BIOS/GPT – LVM on LUKS)

    Instalación ARCHLINUX vía Netboot (BIOS/GPT – LVM on LUKS)

    Hola gente, les traigo una pequeña guía con esta extraña formula de instalación de esta popular distribución del sistema GNU/Linux espero les sirva a más de alguien.

    Últimamente tuve que formatear un par de maquinas con esta misma formula, y ya llevo un par de años usándola, así que decidí tomar nota de los pasos y hacer esta guía de instalación.

    Sugerencias

    Lo primero que les debo advertir es que este tipo de cosas con varias configuraciones y varios pasos nunca se deben hacer con poco tiempo, si no estas acostumbrado o si no estás familiarizado con esto es muy probable que cometas muchos errores, necesitas un par de horas, es decir, necesitas hacer esto con tiempo.

    También deben realizar un respaldo de todos sus archivos importantes que no quieran perder. Si en el disco duro que planean iniciar esta instalación tenían su antiguo sistema y les falló, hay mil formas de recuperar los datos, les recomiendo recuperarlos antes de seguir con esto (próximamente publicaré la manera en que lo hago yo), claro si es que los datos valen la pena. Por otro lado, si su antiguo sistema no les falló, y solo quieren renovar la instalación o cambiar al sistema que presento en esta guía, de igual manera, piensen dos veces los datos que tienen en el disco, esta guía tiene en mente el formato del disco, respalden configuraciones de programas, copias de seguridad de claves, albumes de fotos, documentos, etc, la mayoría de las personas cuentan con alguna nube, instituciones, empresas, organizaciones a las cuales pertenecen y tiene acceso a algún espacio para archivos en dichos lugares, hay miles de programas para crear sincronizaciones programadas, si temen a la falta de privacidad, también hay varias formas de encriptar archivos, o si tienen otros dispositivos bajo su poder, pueden hacer sincronización del tipo p2p o algún tipo de sincronización dentro de su red local (publicaré mas adelante acerca de sincronización, respaldo y encriptado de archivos), y bueno nunca está de más tener un dispositivo de almacenamiento usb como u pendrive o un disco duro portátil, solo piensen bien en lo que pueden perder al formatear su computadora y vean si vale la pena hacer un respaldo.

    Por ultimo leer bien las instrucciones, si bien explico con detalle algunas cosas, el usuario primerizo o con poca experiencia en algunas configuraciones podría llegar a tener problemas. También tener la wiki del sistema a mano para leer en caso de no entender algo (siempre leer las páginas en inglés, las de español a veces están desactualizadas).

    Bueno gente en resumen, necesitan tiempo, un respaldo si es que lo desean, y una buena comprensión lectora, también sugiero una buena lista de reproducción de música y un par de tazas de café.

    ¿Por que…?

    Usaremos una instalación tipo netboot desde algún dispositivo de almacenamiento usb (pendrive), que al momento de iniciar, éste nos dará la opción de escoger entre varios mirrors o ubicaciones de internet desde donde descargar la versión con los programas mas reciente de nuestro querido Archlinux, y así poder iniciar el proceso de instalación.

    Personalmente me sirve muchísimo un usb con inicio de red porque primero, teniendo ese usb podre siempre instalar la versión mas reciente de Archlinux, segundo, no pierdo tiempo descargando e instalando todo en algún usb cada vez que lo quiera utilizar, y tercero, no pesa casi nada, y hace tiempo atrás me estafaron en una feria con unos pendrives piratas, la famosa técnica de falsear el espacio, los compré de 8 GB, pero realmente se podían usar 120MB (lo descubrí mediante un proceso que compartiré en alguna próxima publicación), no sabía en que usarlos, así que el netboot calza como anillo al dedo.

    La publicación esta enfocada para computadoras con inicio de BIOS, o Legacy para maquinas contemporáneas, esto porque aun trabajo con estas computadoras mas antiguas e instalarle un sistema GNU/Linux les da una segunda oportunidad para estar vigentes, también porque a la fecha de esta publicación en Chile, las computadoras están carismas y cabe la casualidad que reviví varios notebooks y torres con estos sistemas.

    Usaré tambien una tabla de particiones GPT en un disco solido, por ser la tabla vigente el día de hoy, tambien el sistema, no así el boteo, estará encriptado, asi que nadie sin la contraseña podra tener acceso a nuestros archivos, sobre esto manejaremos los distintos puntos de montaje como lo son el root, el home y la memoria swap con volumenes logicos, y estos a su vez, exepto la swap, con formato btrfs, el cual tiene sus pro y sus contras, pero si tienen dudas, pueden usar el confiable ext4.

    La gran ventaja el día de hoy en la instalación de archlinux es el script (en desarrollo) archinstall, similar al que tenia Manjaro (derivado de archlinux) llamado architect que ya no se desarrolla, que simplifica varias configuraciones que no son mas que editar texto, copiar y pegar, algo tedioso, que nos quitaria varios minutos de nuestras vidas, mucho mas si no se manejan bien con la consola.

    Por último, ¿por que Archlinux? Personalmente uso archlinux desde que lo probé, es una de las distribuciones GNU/Linux madres, la instalación del sistema es, lo que tu quieres lo instalas, es decir, no se instala nada que tu no especifiques, no es como Ubuntu, Fedora, Linix Mint, Manjaro, que son mucho mas fáciles su instalación, y dejan todo preparado para el usuario según las preferencias de la distribución para que cada sistema funcione, me refiero a que instalando Archlinux tendrás un sistema ligero y a la medida, según tus propias especificaciones, obviamente como cualquier sistema, mientras mas cosas le instales y se ejecuten en su uso diario, mas va a pesar el sistema. Además se aprende mucho sobre el sistema GNU/Linux gracias a la wiki que explica los distintos procedimientos de instalación y configuración, y lo mejor es que es una distro rolling release, es decir, solo hay un Archlinux, no hay una version 2020, 2019, ni una versión Lite, ni una versión para músicos, nada de eso gente, tu debes especificar lo que quieres instalar y despues debes configurarlo, en resumen, vas a tener un sistema a tu medida, y va a ser tan ligero según tu especifiques.

    Nada mas que decir, toda la información recopilada está en la mítica wiki de Archlinux, yo la junté toda para este caso, y la ordené según mi experiencia, manos a la obra gente, y que les funcione a la primera.

    1. Configurar un usb para el Netboot

    Usaremos el método del archivo ipxe.lkrn, el cual podemos descargar desde aquí Arch Linux Netboot, si tenemos grub en nuestro sistema actual debemos instalar syslinux para tener los archivos suficientes para crear el pendrive de inicio.

    # sudo pacman -S syslinux

    Con nuestro pendrive conectado ejecutamos lsblk -l para conocer su ubicación:

    # lsblk -l

    Supongamos que está ubicado en /dev/sdc, montamos el pndrive en alguna carpeta vacía, en este ejemplo es la carpeta en la raiz mnt, creamos los directorios necesarios y copiamos el archivo descargado, de ser necesario lo renombramos.

    # mount /dev/sdc /mnt
    # mkdir -p /mnt/boot/syslinux
    # cp ipxe.xxxxxxxxxxxx.lkrn /mnt/boot/ipxe.lkrn
    

    Creamos el archivo de configuración para syslinux, en este ejemplo usamos el software nano, editor de texto para terminal.

    nano /mnt/boot/syslinux/syslinux.cfg

    Texto:

    DEFAULT arch_netboot
       SAY Booting Arch over the network.
    LABEL arch_netboot
       KERNEL /boot/ipxe.lkrn
    

    En nano presionamos ctrl+o para guardar y ctrl+x para salir. Procedemos a desmontar la unidad (ojo: no la retiramos de la computadora), e instalamos syslinux en ella:

    # dd bs=440 count=1 conv=notrunc if=/usr/lib/syslinux/bios/mbr.bin of=/dev/sdc
    # syslinux --directory /boot/syslinux/ --install /dev/sdc1
    

    Para otros tipos de netboot, ver aquí Netboot – Archwiki

    2. Bootear usb y lanzar archlinux

    Configuramos nuestro equipo para iniciar desde un usb, deben recordar que ésta publicación es para sistemas con BIOS, si usa UEFI es probable que puedas cambiar a inicio de tipo BIOS o Legacy dice también, ojo que para usar UEFI es ligeramente distinto el procedimiento, tendrá otra publicación en este sitio.

    Conectamos el usb y esperamos que se ejecute, seleccionamos un mirror, o ubicación de la descarga, obviamente mientras mas cerca de su ubicación mas rápido deberia ser la descarga, yo escogí las de Chile, el servidor de la UFRO eaeaeae.

    Esperamos la descarga y que se inicie el sistema para la instalación.

    3. Configurar distribución del teclado

    Una vez ejecutado el sistema, debemos configurar el teclado, ya que por defecto se ejecuta otra distribución y en el proceso debemos teclear constantemente caracteres especiales, para hispano hablantes con la distribucion latinoamericana del teclado es la-latin1.

    # loadkeys la-latin1

    Si usas otro tipo de teclado aquí hay mas información acerca de la configuración: Installation Guide, Set keyboar layout – Archwiki

    4. Conectarse a internet

    OJO: Se da por hecho que están conectados por cable si usamos el netboot.

    Nos conectamos a internet, pueden conectarse directamente por cable es mas rápido o conectarse a la wifi vía iwctl, si es que su tarjeta es compatible con los driver ejecutados.

    Si aun así necesitas conectarte a wifi durante el proceso de instalación, aquí hay un manual de uso de iwctl: Iwd, iwctl – Archwiki

    5. Actualizar el reloj del sistema

    Si es una computadora antigua que tenían guardada, es muy posible que la pila del reloj interno se haya agotado y deban cambiarla, y ademas que tengan una hora errónea, eso afecta en las descargas porque los certificados de seguridad de los sitios web tiene fecha de vida útil (https):

    # timedatectl set-ntp true

    6. Preparar el disco

    Particionar

    Iniciaremos la preparación del disco, primero borraremos todo (si, es mejor que respalden lo que no quieran perder), usaremos la utilidad gdisk (para crear tabla GPT), recuerden que haremos un sistema LVM-on-LUKS, volumenes lógicos sobre partición encriptada, y ademas nuestro disco tiene una tabla de particiones GPT, en un sistema BIOS o Legacy.

    • Identificar nuestro disco (usualmente y esta guía será /dev/sda)

      # lsblk -l

    • Ejecutar gdisk en nuestro disco

      # gdisk /dev/sdX

    • Usamos la opción z para destruir todo.

    Ojo: Se recomienda hacer una limpieza total, sin la limpieza es posible recuperar archivos borrados con anterioridad, esto es opcional, mas información aquí: Securely wipe disk – Archwiki.

    • Ingresar nuevamente a gdisk, crear partición para /boot, le damos default al primer sector, y al ultimo escribimos +200M, después default nuevamente par el tipo de sistema de archivos.

    • Crear partición contenedora a encriptar, e este caso será la totalidad del disco que queda a parte de /boot, default a todo.

    • Importante este paso, se debe crear partición de booteo necesaria para sistema de inicio bios con disco particionado gpt para GRUB (más información aquí GRUB, GUID Partition Table (GPT) specific instructions – Archwiki, cuando es la ultima partición usará el espacio en los primero sectores vacíos que quedan fuera por la alineación del espacio en las particiones comunes que ya creamos, le damos default a los sectores, y en el sistema de archivos escribimos ef02.

    • Le damos w para guardar los cambios y salimos de gdisk, la tabla debería verse así:

    /dev/sda1 -> Boot
    /dev/sda2 -> Contenedor encriptado
    /dev/sda3-> boot necesario para bios/gpt en GRUB
    

    Encriptado de partición contenedora

    Usaremos encriptado de sistema de archivos con LUKS:

    • encriptar contenedor: cryptsetup luksFormat /dev/sda2

    • Abrir contenedor, llamaremos cryptlvm cryptsetup open /dev/sda2 cryptlvm

    Quedara en /dev/mapper/cryptlvm.

    Creación de volumenes lógicos

    • Preparar contenedor para volúmenes lógicos, el grupo se llamará en este ejemplo MyVolGroup:
    pvcreate /dev/mapper/cryptlvm
    vgcreate MyVolGroup /dev/mapper/cryptlvm
    
    • Crear volúmenes lógicos para puntos de montaje, haremos uno para la memoria swap, otro para el directorio raíz del sistema, y otro para la carpeta de los usuarios, dejé 50GiB para la raíz, porque personalmente siempre instalo muchas cosas, entre juegos y aplicaciones y 50GiB me andan bien, con 30 que es lo que se recomienda siempre me queda corto.
    lvcreate -L 8G MyVolGroup -n swap
    lvcreate -L 50G MyVolGroup -n root
    lvcreate -l 100%FREE MyVolGroup -n home
    

    Queda así:

    /dev/MyVolGroup/swap
    /dev/MyVolGroup/root
    /dev/MyVolGroup/home
    

    Formato y montaje de volúmenes

    • Formatear volúmenes lógicos con nuestros sistemas de archivos preferidos, yo usaré btrfs, le ponen la etiqueta que quieran.
    mkfs.btrfs -L pcroot /dev/coralvm/root
    mkfs.btrfs -L pchome /dev/coralvm/home
    mkswap /dev/coralvm/swap
    
    • Ahora montamos los volúmenes en /mnt, para iniciar el proceso de instalación.
    mount /dev/MyVolGroup/root /mnt
    mkdir /mnt/home
    mount /dev/MyVolGroup/home /mnt/home
    swapon /dev/MyVolGroup/swap
    

    Preparar partición /boot

    Recordemos que esta partición está fuera del contenedor de encriptado, ojo que no es la partición especial que hicimos en /dev/sda3, está fuera del encriptado, de otra manera tendríamos que ingresar 2 veces la contraseña de encriptado, una para el boteo y otra para el inicio del sistema.

    mkfs.ext4 /dev/sda1
    mkdir /mnt/boot
    mount /dev/sda1 /mnt/boot
    

    Antes de seguir, si quieres mas información de proceso que acabamos de realizar, visita esta pagina de donde me guíe para este tipo de instalación: dm-crypt/Encrypting an entire system, LVM on LUKS – Archlinux.

    8. Escribir tabla de particiones, fstab:

    genfstab -U /mnt >> /mnt/etc/fstab

    9. Ejecutar archinstall (Varias configuraciones)

    Ahora ejecutaremos el script archinstall, que nos guiará en la configuración:

    • Seleccionar ubicación para idioma.
    • Mirrors para instalaciones (al igual que en el Netboot).
    • Particiones y formato, en esta opción deben escoger la selección que les dice usar la que ya montaron (la que acabamos de hacer), no lo hacemos desde archinstall, porque hasta la fecha no permite este tipo de configuración que propongo, por eso lo hicimos antes.
    • Escoger el hostname, el nombre de su computadora.
    • Contraseña root, la que usaremos para ejecutar comandos como Super Usuario.
    • Usuarios y contraseñas, es posible dotar a los usuarios como sudoers, que ejecuten ordenes como super usuario, sin ser el usuario root.
    • Escoger kernel, personalmente recomiendo linux-lts, linux avanza muy rápido y aveces eh tenido problemas de compatibilidad con aplicaciones que debo compilar porque no están en los repositorios oficiales.
    • Entorno de escritorio, nos pregunta si queremos interfaz grafica, terminal, etc.., si queremos grafica nos da a escoger que entorno queremos, personalmente uso siempre xfce.
    • Software extra para instalar escribimos nano y lvm2, uno para el editor de texto y el otro necesario para la configuración de mkinitcpio, que haremos en el paso siguiente.
    • Luego de instalar todo nos pregunta por entrar a nuestro sistema como chroot, le damos que si, para los toques finales del sistema ecriptado.

    10. Entrar en chroot

    Si por algún motivo no le dimos que si en el ultimo paso de archinstall, no importa basta con ejecutar arch-chroot /mnt

    11. Configurar mkinitcpio

    Configuramos el archivo /etc/mkinitcpio.conf, para añadir las opciones de encriptado y volúmenes lógicos, recordar haber instalado lvm2 y nano para editar el archivo, si no basta con ejecutar: pacman -S lvm2 nano, abrimos el archivo de configuración:

    nano /etc/mkinitcpio.conf

    Buscamos la línea que dice HOOKS, nos aseguramos de que se vea así:

    HOOKS=(base udev autodetect keyboard keymap consolefont modconf block encrypt lvm2 filesystems fsck)

    Es probable que falte añadir keyboard, keymap, encrypt y lvm2, guardamos los cambios ctrl+o y salimos ctrl+x en nano. Ahora ejecutamos la siguiente orden para guardar los cambios para mkinitcpio:

    mkinitcpio -P

    12. Instalar y configurar GRUB

    Llegamos a la parte crucial, necesitamos obtener el UUID del disco contenedor encriptado, que es una cadena alfanumérica bastante larga como para equivocarse a escribirla, así que anótenla bien en alguna parte, después deben ingresarla en el archivo de configuración GRUB:

    • Instalar GRUB:

    grub-install --target=i386-pc /dev/sda

    • Obtener uuid de /dev/sda2:

    lsblk -o NAME,UUID

    • Editar /etc/default/grub:

    nano /etc/default/grub

    y añadimos en la línea que dice GRUB_CMDLINE_LINUX=""

    cryptdevice=UUID=device-UUID:cryptlvm root=/dev/MyVolGroup/root

    Donde device-UUID es la UUID que obtuvimos anteriormente de nuestro contenedor encriptado /dev/sda2, es importantísimo no equivocarse al escribirlo, de escribirlo mal no se ejecutara el proceso de des-encriptado y fallará el inicio.

    Debería quedar algo así:

    GRUB_CMDLINE_LINUX="cryptdevice=UUID=a1b2c3d4-a1b2-c3d4-e5f6-a1b2c3d4e5f6:cryptlvm root=/dev/MyVolGroup/root"

    • Guardamos la configuración:

    grub-mkconfig -o /boot/grub/grub.cfg

    13. Reiniciar y ya esta lo básico listo para usar

    14. En caso de fallar

    En caso de que tengan todo listo, y le erraron a la configuración final, deberán iniciar nuevamente el pendrive de instalación:

    • Configurar teclado.
    • Des-encriptar partición contenedora.
    • Montar volúmenes lógicos.
    • Entrar al sistema con arch-chroot /mnt`.
    • Verificar los archivos de configuración.

    Si aún tienes problemas no dudes en escribirme, y buscar mas información en la wiki que es la fuente de esta pequeña guía.

    Un afectuoso saludo, mucho éxito gente.