orgzly-integrations

Table of Contents

1. Integraciones con orgzly   project

1.1. Arreglos orgzly-integrations   project someday_20230330

1.1.1. Actualizar el README.md y mergear dev con master

1.1.2. Notificar sólo cuando recupera conexión

Después de X veces que notifica que no tiene conexión, que notifique sólamente cuando vuelve la conexión
Lo dejo en la rama feature/reduce_notifications
También no notificar siempre que pierde conexión, sino cuando ya pierde conexión varias veces
Intente utilizar Dunst, pero no tiene un modo bueno de hacerlo
Quizás utilizar Dunst con un botón para que diga si desactivo las notificaciones o no
Esto es complicado porque uso una variable $NOTIFY_LOST_CONNECTION, habría que crear una nueva función y llamarla dentro de esto para que vaya bien, porque tengo que coger el valor que devuelve si se pulsa un botón y blablabla
También lo intenté con --action pero tampoco consigo llegar a nada
En Arch me está matando el proceso por GDBus.Error:org.freedesktop.Notifications.Error.ExcessNotificationGeneration: Created too many similar notifications in quick succession

1.1.3. Evitar que se quede parado git-sync

  • A veces deja de funcionar, no sincroniza ni con touch
  • A veces se queda parado porque muere un proceso y .git/index.lock no se ha borrado bien
  • A veces se soluciona, a veces no
  • Esto tiene pinta de que deja de funcionar git-sync-polling?
  • Si se lanza pero no hay cambios, no los detecta con inotifywait
  • Hacer un servicio que si git-sync lleva mucho tiempo con archivos no comiteados, entonces reinicia el servicio. También puede ser simplemente porque ha perdido la conexión?
  • Poner un touch ~/org/0.org en crontab para que no se queda parado git-sync
1.1.3.1. Caso Concreto #1

Cuando hago un push y me lo rechaza porque hay cosas subidas nuevas, curiosamente PUSH_RESULT está vacío (o al menos la primera línea)

PUSH_RESULT=

Tocando un archivo (que puede ser el 0.org) se resuelve, porque hace pull el bucle de inotifywait
También pasa a veces que se atasca en la rpi porque no se modifica nunca un archivo (en los demás sitios seguro que lo acabo modificando en algún momento)

  1. git commit

    git commit fails if the repo it’s not up to date, but also if it’s up to date!
    si encuentro una manera mejor de evitar que se quede parado, hacer esta otra

1.1.4. Cuando haya un commit de borrado, lanzar el intent de borrado en orgzly

Creo que habría que detectarlo en base a la salida de git pull, grepeando
Sacar el nombre y borrar esa nota

1.1.5. Hacer un botón para crear una nueva nota

En roam/… project../ journal../ → Con el mismo formato que crea emacs
Idealmente que exista un intent de orgzly y lo conecte a través de una interfaz de termux

1.1.6. Hacer un botón para abrir el diario de ese día

Idealmente también se podría hacer una función para compartir lo que sea al diario del día? Alguna manera de preseleccionar el notebook por defecto al compartir a orgzly

1.1.7. Arreglar push que necesita un pull

Investigar: al hacer push habiendo cambios remotos, asume que sigue estando bien (no da error, hay que fijrse en el mensaje de push en vez de $?)
Este es un log de ejemplo de lo que pasa:
../../Documents/4archive/2022-11-21/txt/orgzly-integrations-1.txt ../Documents/4archive/2022-11-21/txt/orgzly-integrations-1.txt

1.1.8. Mejorar la concurrencia de git-sync

1.1.9. Poner en un .env los dispositivos

Así no tengo que andar detectando cosas y es más limpio

  • Móvil → Tiene termux y orgzly instalado.

1.1.10. Poner en un archivo el modo de gasto de batería

En vez de que sea directamente por detectar si está corriendo Syncthing (dejarlo como opcional)

1.1.11. Ir moviendo el estado de los TODOs en secuencia TODO→NEXT→HOLD→SOMEDAY manualmente

Ir planeando de semana en semana
También tengo quizás demasiadas cosas en SOMEDAY/MAYBE y me estoy empezando a agobiaar
Quizás tiene más sentido hacer las queries en base a hace cuánto tiempo que lo moví a HOLD, u ordenar los HOLD por fecha en la que lo moví a HOLD. Esto me libera NEXT para usarlo bien
Se puede hacer en emacs con Bulk editing
https://orgmode.org/manual/Agenda-Commands.html#index-m
Incluso se puede definir una función custom para que rote cada estado de TODO a su correspondiente

1.1.11.1. https://www.reddit.com/r/gtd/comments/ljctac/comment/gnf0k33/?utm_source=share&utm_medium=web2x&context=3

Active, for things that I intend to move forward on in the next couple of weeks. These are the ones where the Next Actions appear on my lists.
Parked, for things I am committed to doing in the relatively near future but not right now for one reason or another. I’ve got an NA for each of these projects so when I activate it it’s ready to go (sometimes priorities change mid week after all). This also includes stuff that I can’t do till spring or after covid or whatever, as well as stuff that’s just lower priority than the things I chose for this week.
Someday, stuff I’m pretty sure I’ll actually do one day just not yet. This stuff often doesn’t have any planning or anything done (unless I shifted it out of Parked).
Maybe, blue skies stuff, things I may well never do but if I don’t write it down it’ll still take up space in my head.

1.1.12. Automatizar el sistema de poner las tareas del día en la nota del día

Cuando creo la nota de cada día:

  1. Añado todas las cosas que tengan scheduled o deadline para ese día, asegurándome de que si una tarea tiene las dos, no la incluyo dos veces
  2. Distinguir entre dos tipos de cosas:
    1. Pongo todas las tareas con scheduled para un mismo día. Eso se puede hacer automáticamente y puede ser un primer paso
    2. Pongo algunas tareas a mano, como por ejemplo los hábitos, que van scheduled en cada día para que me salga en org-habits, pero que luego tienen una hora concreta a la que lo hago ese día. Idealmente con org-edna cuando marco la instancia como hecha, me pone el hábito como hecho también
      Aquí tendría que poner un heading que fuese Scheduled

1.1.13. DONE Exportar con resaltado de sintaxis en batch   ARCHIVE

org-html-htmlize-output-type → contiene el mensaje de eror sobre lo que pasa

However, this will fail when using Emacs in batch mode for export, because
then no rich font definitions are in place. It will also not be good if
people with different Emacs setup contribute HTML files to a website,
because the fonts will represent the individual setups. In these cases,
it is much better to let Org/Htmlize assign classes only, and to use
a style file to define the look of these classes.
To get a start for your css file, start Emacs session and make sure that
all the faces you are interested in are defined, for example by loading files
in all modes you want. Then, use the command
M-x org-html-htmlize-generate-css to extract class definitions.

https://emacs.stackexchange.com/questions/31439/how-to-get-colored-syntax-highlighting-of-code-blocks-in-asynchronous-org-mode-e

(setq-local org-html-htmlize-output-type 'css)
  (unless noninteractive
    (org-html-htmlize-generate-css)
    (with-current-buffer "*html*"
      (write-file css-file))
    (format "#+html_head_extra: <link rel=\"stylesheet\" type=\"text/css\" href=\"%s\"/>"
        css-file))

https://emacs.stackexchange.com/questions/38437/org-mode-batch-export-missing-syntax-highlighting → este no me ha funcionado
https://stackoverflow.com/questions/3591337/emacs-htmlize-in-batch-mode
No consigo que me saque los css bien, así que puedo exportarlo en un ordenador, coger el css y aplicarlo. Depende del lenguaje, entonces a ver cómo se hace eso
src/readtheorg_theme/css/htmlize.css → este es el archivo que está cogiendo al final

1.1.14. Ir moviendo el estado de los TODOs en secuencia TODO→NEXT→HOLD→SOMEDAY automáticamente

Necesito de alguna manera guardar para todos estos el momento en el que entran en ese estado
Esto puede ser simplemente un crontab que haga un sed a una hora s/\* TODO/* NEXT/
Tengo que tener alguna manera de revisar estos cambios (con git) para ver cómo se van moviendo estas tareas

1.1.15. Exportar estado de las tareas en base a última fecha de modificación de LectureNotes/git/…?

Requeriría que todo lo que me pongo a aprender lo escribo en LectureNotes
Asi cuando vuelvo a abrir un Notebook (y más importante, escribo cosas en él) entonces pasa la tarea correspondiente a seguir estando en ONGOING o lo que sea
Tengo que ver cómo se haría para cosas que no son LectureNotes (para cosas de git se me ocurre sacar una cierta periodicidad de git)
Modificación de archivos, y puede que envío de mensajes es un buen proxy de actividad

1.1.16. Añadir logging a export.py

Cuando haya una actualización, escribir en un archivo csv el tiempo actual y el tamaño de la cola

1.1.17. Hacer que el export.py no se atasque

Que la cola no contenga duplicados de archivos (si le llega una nueva actualización mientras tiene pendiente otra de procesar, que no lo exporte 2 o más veces). Lo que no está claro es en qué orden quedaría (la última actualización de cada nota? La primera?)
El setear la cola tiene que ser atómico para evitar dirty writes (más sencillo) o tener en cuenta concurrencia

1.1.18. Meterle Control Sockets

Para cuando tienes que loguearte muchas veces por ssh, hace las conexiones más rápidas
https://jrs-s.net/2017/07/01/slow-ssh-logins/

1.1.19. Investigar links a nodos específicos desde la pantalla de inicio

Se me ocurre un widget de termux que lanza un intent con url específica, pero no sé exactamente qué url lanzar para que la pille bien orgzly

1.1.20. Investigar variables de entorno específicas a servicios de systemd

Puede ser interesante utilizar Variables de entorno específicas a servicios de systemd

  • [ ] Hacer un script de inicio
  • [ ] Hacer un script para apagarlo al finalizar la sesión?? Puede que no sea necesario, sí que lo era con los scripts de autostart porque se volvía a lanzar al salir y volver a entrar en la sesión

1.1.21. Hacer un servicio de systemd para export.py

Primero he hecho una ñapa con bash, se puede mejorar si hiciese falta (spoiler: no hace falta), pero para aprender está bien
La idea es poder desactivarlo a unas horas y activarlo a otras para que:

  1. No se ponga a procesar cuando se modifican muchos archivos (caldav.sh, translate_links.py)
  2. Se limpie la cola cada día

Puede ser interesante utilizar Variables de entorno específicas a servicios de systemd

1.1.22. Sacar las funciones a alto nivel

Esto ya lo he ido haciendo más o menos
Intentar definir lo mínimo posible como funciones true/false para que valga en escritorio
Sacar la definición a la función de más alto nivel posible, definir orgzly_check_and_sync como true en vez de definir lo de dentro como true
El objetivo es poder correr el script para cargar las funciones sin ejecutarlo

1.1.23. Time tracking en orgzly [3/3]   project someday_20230330 someday_20230330

1.1.23.1. Arreglar las actualizaciones en una misma nota   project someday_20230330 defined_20230330

Si estoy midiendo el tiempo en la misma nota (journal) y paso de contar una tarea a otra en ese mismo archivo, entonces da problemas
(lo de siempre de borrar antes de sincronizar y demás)
Parece que lo más sencillo es meter un sleep 60 después del inotifywait y ya
Se resolvería al

1.1.23.2. Arreglar comportamiento errático, deja de funcionar   project someday_20230330 defined_20230330

A veces no me iba a ninguna nota, current estaba vacío, es posible que sea que no se espera hasta que está terminado de sincronizar
Se resolvería al
Aun así hay veces que se deja de actualizar porque sí (?), se queda atascado en el código de lanzar la notificación y no sale ni hace nada → se le puede poner un timeout a esa instrucción en particular que parece quedarse colgada

1.1.23.3. Cambiarlo a una notificación persistante con la tarea actual y goto   project someday_20230330 defined_20230330
1.1.23.4. Si hay varios timestamps activos, añadir una opción para saltar a cada una de las notas   project someday_20230330 defined_20230330

Esto lo hacía a mano

1.1.23.5. DONE Esperar a que terminen la PR de timetracking en orgzly

https://github.com/orgzly/orgzly-android/pull/691#pullrequestreview-560515187
Parece que está ya bastante avanzada, si lo mergean entoces daría igual todo lo demás y ya lo tendría implementado

1.1.23.6. DONE Crear el diario automáticamente en la rpi a las 00:00

La nota diaria pasa a ser lo que hago en ese día
El objetivo más global es irme moviendo a notas diarias

1.1.23.7. DONE Notificación que saque tarea en curso

Hacer un script bash que usa ripgrep para sacar la nota que está actualmente clocking
Que saque una notificación si matchea y entonces que meta una acción para abrir orgzly con una búsqueda de esa nota
Ahora estoy compilándome mi propia versión, esto me da un poco más igual

1.1.24. Optimizar consumo de batería en orgzly-integrations   someday_20230330 project someday_20230330

1.1.24.1. Profiling de inotifywait y git pull   project someday_20230330 defined_20230330

Ver cuando consume git-sync.sh/wrapper.sh (en general un periodo X, medir uso de CPU) y sus hijos, para ver dónde está el consumo de batería

  1. GitHub - Granulate/gprofiler: gProfiler is a system-wide profiler, combining multiple sampling profilers to produce unified visualization of what your CPU is spending time on.
1.1.24.2. No utilizar git pull todo el rato, gasta demasiada batería   project someday_20230330 defined_20230330
  1. Lo mismo lo crea más inotify el gasto de batería https://superuser.com/questions/968274/something-similar-to-inotifywait-without-being-able-to-install-inotifywait

    Probablemente sí, porque con top de ve mucho uso de inotifywait

    • En móvil, solo es estrictamente necesario hacer un inotify, sino sólo cuando se activa la notificación de sincronización, esperando a que acabe para que estén disponibles todos los archivos
      • Esto hace que dependa del SyncService de orgzly, que si quiero que lo quiten me fastidiaría esto
    1. CANCELLED Preguntar en syncthing si inotify consume batería

      Ellos usan también inotify (aunque creo que una implementación custom)

  2. Hacer git fetch y sólo git pull cuando hay cambios
    1. DONE Hacer una prueba de git fetch vs git pull y ver si hay diferencia de batería (móvil)

      Cerrar el resto de aplicaciones, crear un script que haga git pulls/fetch muy frecuentes
      No parece relevante, gasta la misma batería

  3. Crear un archivo vacío para disparar inotify

    Lo suyo sería un servicio con conexión abierta, que envía un mensaje que dispara un git pull, y así de paso gano syncs más rápidas todavía
    https://stackoverflow.com/questions/45693430/how-long-can-a-tcp-connection-stay-open → no se puede hacer una conexión TCP porque los routers intermedios lo cierran
    https://networkengineering.stackexchange.com/questions/30959/duration-of-tcp-connection-last-in-idle-stateno-data-exchange

    • Tengo que ver como abrir este servicio, complicado
    • El inotify no va a dar un timeout salvo que cree y borre un archivo
      Cuidado con esto, porque también tengo el timeout de los 60 segundos después de que se borre un archivo. No está claro como interaccionan
      1. Crear un archivo vacío .org dispara el proceso de sync
      2. Pero borrar ese archivo vacío .org también dispara el esperar 60s
      3. Una mejor solución puede ser tener un archivo .org que se sobreescribe con contenido irrelevante
  4. No crear archivo vacío
    1. Cuando llegue un mensaje de cambios, hacer git pull
    2. Si está sucio el árbol, (crear un archivo vacío .org) hacer todo el proceso de git add commit push
  5. Crear un servicio de mensajes para git pull de org   project someday_20230330 someday_20230330
    1. Protocolo custom
      • Tengo que mantener una conexión abierta iniciada por el móvil/tablet/ordenador (que estará detrás de un firewall)
      • Me conecto a lytex.space:puerto (un puerto por dispositivo, estará escuchando la rpi y lo tendré abierto en el firewall de casa)
        En cada dispositivo tengo lytex.space, puerto
      • En la rpi pongo un notify que envíe cualquier cosa por los puertos cuando cambia algo en org
      • En móvil/tablet/ordenador creo y elimino un archivo .org tonto para disparar inotifywait
      • Qué pasa si pierdo conexión??
    2. MQTT

      https://stackoverflow.com/questions/28565284/why-mqtt-android-drains-battery → probablemente no me resuelve lo de la batería
      https://stackoverflow.com/questions/45693430/how-long-can-a-tcp-connection-stay-open → tampoco se puede hacer una conexión TCP porque los routers intermedios lo cierran
      Para eso está MQTT, para mantener la conexión abierta. Vas a tener una conexión cada X min en vez de cada 15s como ahora, esto supone ahorro de batería
      Puedes elegir un valor tan grande como quieras de keepalive, pero te arriesgas a que se corte la conexión
      https://networkengineering.stackexchange.com/questions/30959/duration-of-tcp-connection-last-in-idle-stateno-data-exchange
      https://github.com/raphaelcohn/bish-bosh → cliente de bash
      https://pypi.org/project/paho-mqtt/ → librería de python, muy usada
      https://medium.com/@rapidvalue/mqtt-the-iot-protocol-dec2b8a9faf3 → alternativas mqtt
      https://mosquitto.org/download/ → broker/servidor (está en repos de rpi4, muy fácil de instalar)

    3. Posibles peligros
      • Puede que se retroalimente el setup si no está bien pensado
        • Cuando un nodo tiene cambios y hace push, envía un mensaje a la RPi que hace de servidor central
        • La RPi entonces envía un mensaje de que hay cambios (también puede hacer pull para comprobar que hay cambios realmente)
        • El mensaje llega a los nodos y hacen todos pull
      • Es vulnerable a DoS si no tiene ninguna manera de comprobar que un mensaje proviene de una fuente legítima
      • En cada mensaje se puede enviar
        “unix_timestamp,hash”
        Donde el hash es el timestamp salteado con una clave que conocen todos los nodos
    4. mqtt push notification behind nat - Google Search
  6. How to Make a Program Choose an Optimal Polling Interval
  7. Enviar sólo la última actualización

    Si estoy de viaje con la tablet, no voy a tener conexión y cuando se conecte le llegarían todos los mensajes de cambio a la vez.
    Habría que descartar los mensajes si llega un mensaje de actualización. En cuanto llega un nuevo mensaje de git pull, puedo dejar de enviar el último
    Para MQTT aquí está cómo “borrar” un mensaje retenido → https://www.hivemq.com/blog/mqtt-essentials-part-8-retained-messages/

1.2. Misc Someday orgzly-integrations   project someday_20230330

1.2.1. Actualizar 0.org cuando se cree o borre un archivo .org

Se puede poner como inotify y así no corre todo el rato

1.2.2. Que el servicio no se relance todo el rato

Si el servicio falla, no queremos que se lance todo el rato porque puede que no deje arrancar al entorno de escritorio. Poner un delay sensato
También si le falta una dependencia se lanza como loco

1.2.3. Poner links a los alias de roam en 0.org

mismo link, distinto texto
Procesar roam_alias en python y actualizar los backlinks

1.2.4. Arreglar make_index.py

Por los mismos Problemas que hay en LectureNotesIndex.py
Sólo funciona si tengo carpetas sin ningún .org (como los links roam/Documents por ejemplo)

1.2.5. Mover presupuesto a orgzly

Hacer una tabla en org mode Agrupaciones por ámbito como Time tracking (mirar lo del banco que tiene algo parecido)
https://www.xataka.com/empresas-y-economia/huchas-virtuales-al-metodo-ynab-soluciones-tecnologicas-que-plantean-ayudarte-a-ahorrar-1

1.2.5.1. Ver “Conquering Your Finances with Emacs and Ledger” en YouTube

1.2.6. Notificaciones para poner alarmas

Si a las SCHEDULED+9min o algo así no le he dado a reprogramar, entonces me pone una alarma que suena en 1min y sé que me tengo que ir
Para cosas muy constreñidas por tiempo
Poner con un inotifywait, si eso sólo para archivos concretos porque ya sé dónde me voy a poner esas alarmas (por ejemplo las puedo poner en tiempo.org,
o crearme uno nuevo que sea Alarmas.org)

1.2.7. Probar si poniendo el path custom me funcionan los links por file

Antes lo que pasaba era que si abría un archivo .org no me lo asociaba con orgzly
Ver si los abre usando orgzly
Aún así sólo me funcionaría desde la carpeta principal, no desde cualquier ruta…

1.2.8. Hacer un script que avise de si hay duplicados de id en archivos .org en toda la carpeta org/ excluyendo Documents y code

1.2.9. Tests de los links

1.2.10. Meteorological time

When does temperature rise/drop below XXXX?

1.2.11. GPS Time

Create a reminder 1-2min in the future when your GPS position is inside house or
something → Better a reminder with a tag @home

1.3. Mejorar el script de LectureNotes.py para que sea genérico   project someday_20230330

  • Sincronización de archivos .md con archivos .org

1.4. Misc Maybe orgzly-integrations   project maybe_20230330

1.4.1. Poner debug configurable

Poner un comando que sea ECHO_DEBUG o algo así, y lo puedo definir como “echo DEBUG: ” o como true en función de una variable de entorno por ejemplo

1.4.2. Separar las comprobaciones de correr el script

Que haga comprobaciones de que puede ejecutar todo lo necesario aparte, en tiempo de instalación mejor

1.4.3. Push a una nueva rama en caso de conflicto

Esto no me gusta demasiado porque al final tienes que hacer el merge en casa y tus sistemas dejan de ser confiables
Si dejas el conflicto y lo subes, entonces sólo tienes un texto raro que tienes que revisar más tarde, pero no tienes una tarea en una rama y otra tarea en otra

1.4.4. Tener accesibles las notas de LectureNotes desde el móvil también

1.4.5. Cambiarle el nombre?

Quizás cambiarlo de nombre, por las exportaciones no es sólo orgzly [o mover las exportaciones a doom.d, pero es más complicado porque allí no tengo instalado nada y no tengo ORG_DIRECTORY por ejemplo]

1.4.6. Alternativas para sustituir a inotify en otros sistemas

1.5. orgzly-android

1.6. Bugs orgzly

  • Cuando se sincroniza no se puede
    • Buscar notas
    • No envía notificaciones

1.6.1. Por qué no se envía notificaciones en orgzly?

Esto parece que ya no pasa?? No entiendo nada
Preguntar si podría ser porque en android 10 no se puede lanzar intent desde background → en tablet siempre me han funcionado
Voy a probar a ver qué tal va ahora con el nuevo sync
https://github.com/orgzly/orgzly-android/issues/783 Puedo sacar los logs también con adb
Parece que era simplemente cuestión de tener muchas notificaciones atrasadas??
Al final → Apagar y volver a encender el móvil xD
Siempre funciona en la tablet, puede ser cosa de Android 10

1.6.1.1. Stress test para ver si no saca notifs

Probar en la tablet

  • Si tiene una tarea con deadline y scheduled, se arurulla y no saca nada?

1.7. Automatizar todas las acciones posibles en orgzly integrations/link_translation.py   idea

Hacerlo en general, que sea muy fácil añadir una nueva funcionalidad

1.8.

1.9. Paralelizar a nivel de archivo las sustituciones   idea

Así son super rápidas, utilizar futures.ThreadPool o futures.ProcessPool (no sé
cuál de las dos será mejor, porque el trabajo parece bastante pesado una vez que
abres el archivo)

1.10. Paralelizar los commits en git-sync   idea

Para que vaya más rápido add-commit-push se puede pasar un parámetro para que se
ejecute en paralelo hasta justo antes del push, y entonces compruebe si hay
archivos borrados en el commit (si no lo detecta, va hacia delante)

1.11. Poner tareas con id fijo   idea

Así saben cómo sobreescribirse a sí mismas (sólo editan esa parte del archivo org mode)

1.12. https://github.com/cashTangoTangoCash/orgFixLinks

Repo para arreglar los links

1.13. Quitar la recursividad en link_translation por orden secuencial

No es necesario recorrer recursivamente los headings
Sólo hace falta recorrerlos de manera secuencial sean del nivel que sean
Esto no sé si lo permite la librería como tal

1.14. Estrategia y diseño de archivar el repo ~/org

Implementar un clustering de notas

  • Mover todo a un git antiguo y borrar los commits del repo actual
  • Borrar los commits salvo los de principio de día y final de día (no interesa mucho tener una granularidad por debajo del día)
  • Es esto necesario, consume muchos recursos? Mirar los cuellos de botella de git si quiero ver qué podría pasar
  • git clone --depth n <path to repository> más rápido, borrar la carpeta y recrear. El único sitio donde tendría que ir lento sí o sí sería en la rpi que tendría todo el histórico
  • Una estrategia para archivar es linkar a la orgwiki (reemplazar los links de org mode por links orgwiki), y si fuese necesario, moverlos de git a Syncthing para sincronizar
    • No se puede linkar a headlines privados

1.14.1. Hacer un archivo rebase_(device) / reset_(device) por cada dispositivo   project someday_20230330

Esto indica que no va por el camino normal y tiene que hacer un rebase (tiene un reset pendiente)
Lo hago por cada dispositivo porque si fuese único tienen que estar todos los dispositivos online a la vez (si no uno hace git pull y te fastidia el rebase)
Borrar cada archivo una vez que el dispositivo en cuestión hace fetch (importante, porque puede hacer reset a lo que cree que es origin/master, pero está desactualizado), reset y funciona bien

  • Lo bueno sería hacer stash → reset → stash pop → stash drop, con un drop siempre al final por si hay conflictos (sin el drop puede que en algún momento haga stash pop y me inserte cosas de hace tiempo sin ningún sentido)
1.14.1.1. Modificar en git pull en orgzly-integrations para que resetee a origin/master

La idea es poder hacer rebases y forzar el push y que luego eso mismo funcione cuando los demás dispositivos se lo bajan
https://stackoverflow.com/questions/1125968/git-how-do-i-force-git-pull-to-overwrite-local-files
Esencialmente es cambiar el git pull por:

git fetch --all
git reset --hard origin/master

Pero si hago esto y tengo un commit, lo voy a perder porque entonces no hago merge.
Habría que editar git-sync-polling, pero es complicado que cubra este caso y además el de que sí que haya cambios

1.14.2. Sacar estadísticas de uso por archivo en git   project maybe_20230330

Utilizando askgit
Es complicado de sacar estas estadísitcas con askgit, se queda pensando

1.15. Cuando tengo un error de sync con pdfs, hacer el diff de las anotaciones   idea

1.16. Meter links a versiones específicas de mis notas para hacer una cápsula del tiempo?   idea

Daily work notes

https://orgmode.org/worg/org-contrib/org-git-link.html → los links a commits específicos ya existen

1.17. Hacerlo con crontab o con intervalo en el propio script?   ARCHIVE

  • Puede haber errores extraños de sincronización si se ejecutan casi a la vez
  • El periodo es el periodo en el que se rescanea la carpeta (que está con inotify)

Author: Julian Lopez Carballal

Created: 2024-11-06 mié 12:55