L₂S - Life Logging System 🢁21

LifeAPI o Life Logging System es una idea que empezó hace no mucho. Quiero tener un lugar donde guardar mi información que genero diariamente utilizando servicios y que también me permita guardar mis stats de {{quantified-self-resources}}.

El nombre LifeAPI es un placeholder por el momento, seguramente cambie cuando se me ocurra uno mas descriptivo.

Si bien hace años que vengo trabajando en {{PHP}} quiero desarrollar este proyecto completamente en {{Golang}} por que me parece un buen lenguaje al cual empezar a migrar.

Hay algo como mas grande que contempla todo lo de life api, que es una especie de sistema operativo o de interfaz donde ver todos los datos que puedo recolectar relacionados a quantified-self o a mi productividad. Me imagino como un lugar (web o aplicación) a la que puedas entrar y que tenga un diseño especifico. Este diseño, podría estar compartido con mi web {{web-ideas}}.

Que contempla?

  • Una API que permita procesar datos desde distintos servicios, que pueden ser externos o internos.
  • Un API que me permita consumir datos para mostrarlos.
  • Los datos pueden ser públicos o privados.
  • Un dashboard en el cual pueda visualizar los datos.
  • una api para procesar los libros que lei, junto con sus clippings
    • los clippings pueden estar en el kindle, si el libro es electrónico
      • los clippings electrónicos se van a importar automáticamente, cuando conecto el kindle a la pc y ejecuto un script
    • o pueden estar marcados en el libro
      • estos tenemos que agregarlos manualmente
        Me gustaría que haya un panel o un dashboard donde poder filtrar por una fecha y que me muestre “todo” lo que paso en esa fecha, cosas como:
  • fotos que saque
  • mensajes que mande
  • si escribí un journal
  • y stats mas internos como los de {{quantified-self}}
  • cuantas horas dormí
  • si tuve ansiedad
  • https://beepb00p.xyz/unnecessary-db.html#append🡭

Aggregation o Data Aggregation

Esto sería como la forma de cruzar datos lo primero que se me ocurre cuando pienso en esto es una fecha. Creo que sería como un denominador general para todas las cosas. Es como un historial de eventos y cosas que pasan en mi vida, son a partir de una fecha. Es la forma que tenemos de relacionar la información.

Sería algo así como que el tiempo es horizontal a todas las cosas que se pueden cuantificar y registrar.

Esta relacionado con las estadísticas también, la idea es poder mezclar datos y poder sacar algo de información. No tengo idea como hacerlo, pero no es un problema para ahora. #todo-future

Tal vez tenga que armar en un principio un procesador de datos, que devuelva una estructura simple a la que yo le pueda pedir un día y me diga que cosas hice en ese día, si tuve ansiedad, si fui a crossfit, que páginas navegue, si escribí, etc. Serían como muchos procesos, uno para cada cosa, que procesen que hice en ese día y lo guarden en un archivo de datos común, que puede ser una DB o un archivo de texto plano.

Motivación

Quiero tener un lugar centralizado, donde los datos sean de mi propiedad y 100% privados. Pero ademas quiero tener diferentes estadísticas sobre las cosas que hago que puedan ser usadas en distintos lugares, por ejemplo mi página web.
Quiero una herramienta que me permita cruzar datos de forma fácil y para eso necesito normalizarlos.

Estructura

Arquitectura, software

  • por un lado esta la api que vendría a ser el cerebro de todo el SDK.
    • siento que la API tiene que ser WEB y que la interfaz principal tiene que ser por HTTP, que esto no quiere decir que tenga que tener conexión a internet.
  • por otro lado esta el bot que se comunicaría con la api por la interfaz.
    • esto estaría atado bastante a {{Telegram}} pero en un principio creo que estaría bien

Datos

  • device type
    • sensor de que?
      • heartrate
      • pasos caminados
      • sangre
  • communication interface
  • data transfer protocol
  • integration ?
    • how can you integrate the application ?
  • sensors

Preguntas?

  • como puedo controlar o tal vez generar una métrica cuando tomo una short term decision de forma compulsiva? algo que tenia pensado hacer, pero en el último momento cambie de parecer y no lo hice. Por ejemplo ayer {{2023-09-28}} iba ir a entrenar pero después no lo hice, me quede en casa.
  • puedo pensar los eventos que sucedieron en mi vida como algo relacionado a {{event sourcing}} donde cada evento es registrado de una forma concreta, que me permite no solamente saber el estado actual si no que me permite re armar la historia y ver como llegue ahi?

Búsqueda

Relacionado a la búsqueda, voy a definir una estructura simple de en que directorio debería realizar al búsqueda. Me imagino que tiene que existir un directorio data en mi compu y sobre ese directorio hacer la búsqueda que quiera. Estuve probando ripgrep y la verdad que funciona muy bien, el tema es como hago para meter eso dentro del ecosistema que quiero armar.

Eventos

Los eventos serian tipos de datos del pasado (o no?) que se pueden loggear con una fecha especifica, creo que acá no sirve de nada la hora exacta.
Algunos ejemplos:

  • el día que nací
  • cuando arranque la universidad
  • cuando terminé el colegio
  • cuando me mude por primera vez

Son cosas que probablemente pasen solo una vez pero me gustaría tener un registro histórico de todas las cosas que pasaron. Los eventos podrían tener distintos contextos, uno de esos serían las fotos que estarían relacionadas con ese evento. (acá lo que habría que pensar es si relacionamos las fotos “agregándolas” mágicamente como si fuera un aggregator o mas a mano, uniendo un registro.) otro contexto de ese evento podría ser un punto en el mapa una coordenada.

Interfaz

Hay una idea que me encontré hace no mucho que es poder exportar una interfaz a través de ssh, ej ssh git.charm.sh -t soft-serve que lo que hace es exponer a través de ssh una consola con una interfaz. Con esto se me ocurre que se puede pensar al server / computadora donde esta el proyecto corriendo sin ninguna interfaz distinta a la que ofrece por ssh. Esto generaría que para acceder a la información se a través de ese lugar. Existen proyecto como https://github.com/charmbracelet/bubbletea🡭 que están pensados para armar interfaces en la consola, usan {{Golang}}.

Específicamente la librería sería https://github.com/charmbracelet/wish🡭 .

Diseño

Que colores quisiera usar para la interfaz? colores o blanco negro?

  • space pirate
  • space futuristic
  • cybernetic
  • ethnic space🡭
  • retro futuristic
  • micro ecosystem
  • retro spaceship
  • bitmap design
  • sci fi