CMS sin servidor ( ¡solo texto simple! ) Basado en Markdown con extensiones para la clasificación de taxonomía multidimensional, lo que permite navegar el contenido en función de los temas (ejes) y los subtópicos (coordenadas).
Estos proyectos tienen como objetivo proporcionar una herramienta fácil de usar para la gestión de la documentación "Long Life" (años o decenas de años).
Recomendado para almacenar y clasificar de manera segura el trabajo de investigación (PhD), documentación de software compleja, procedimientos complejos, redacción de libros, páginas web "industriales". Algunos ejemplos para el impaciente:
Dado que el contenido es solo texto plano (frente a un extraño formato de base de datos binaria), significa que muchas herramientas se pueden reutilizar para editar y administrar el contenido después de "¡Haz una cosa y hazlo bien!" Filosofía Unix.
Las siguientes características vienen de forma gratuita:
┌──────────────────────────────────────────────────────────────┐
├─ CONVENTIONAL CMS (CONFLUENCE, SHAREPOINT, ...) ────────────┤
├──────────────────────────────────────────────────────────────┤
│ │
│1) Central CMS Server 2) "Fool" Browser │
│ ────────────────── ────────────────│
│ DDBB <··· network···> Render conent │
│ Single place of failure │
│ (single place of attack) │
│ Binary format │
│ Server/CMS/Network Admins │
│ │
├──────────────────────────────────────────────────────────────┤
├─ STATIC SITE GENERATOR (NEXT, ...) ─────────────────────────┤
├──────────────────────────────────────────────────────────────┤
│ │
│1) "Source" Content 3) Web Server │
│ ───────────────── ┌····> ──────────── ···┐ │
│ (git versioned, p2p · Publish · │
│ distributed) · "compiled" html · │
│ · · · │
│ · · · │
│ · · v │
│ · 2) Compile 4)"Fool" Browser │
│ └─····> ───────────────── ────────────── │
│ Generates HTML Render content │
│ in opinionated ways │
│ using "complex" tooling │
│ (npm, transpilers, modules, │
│ packagers, ...) │
│ │
├──────────────────────────────────────────────────────────────┤
├─ TXT WORLD DOMINATION PROJECT ──────────────────────────────┤
├──────────────────────────────────────────────────────────────┤
│ │
│1) "Source" Content 2) "Inteligent" Browser │
│ ───────────────────────── ··> ─────────────────────────── │
│ markdown+topic.sub. tags Fetch local/remote "payload"│
│ (git versioned, p2p Processes it. Generate │
│ distributed) HTML, taxonomy, indexes, │
│ · extensions, ... │
│ · │
│ ├─·· or ··········>2) Printer │
│ · ─────────────────────────── │
│ · Print to paper │
│ · (extensions ignored) │
│ · │
│ ├─·· or ··········>2) LLM Learning Algorithm │
│ · ─────────────────────────── │
│ · - LLM training algorithm. │
│ · topics/subtopics provide │
│ · (huge) dimensionality │
│ · reduction!!! │
│ · │
│ ├─·· or ···········>2) JAVA/Rust/Python/... IDE │
│ · ─────────────────────────── │
│ · Improve source code │
│ · navigation based on │
│ · topics.subtopics concerns │
│ · like UI, QA, security, .... │
│ · │
│ ├─·· or ···········>2) (Fill with new ideas and │
│ · use-cases) │
└──────────────────────────────────────────────────────────────┘
Los conjuntos o subconjuntos de archivos de texto (Markdown, código fuente) se pueden agrupar en un solo archivo virtual "grande" final a través de listas de "carga útil". La lista es solo un archivo TXT normal que indica en cada nueva línea la lista de archivos de Markdown para concatenar para formar el documento final de Markdown. Ejemplo:
full_book.payload security_book.payload frontend_book.payload
----------------- --------------------- ---------------------
./introduction.md ./chapter4.md ./chapter1.md
./chapter1.md ./chapter5.md ./chapter2.md
./chapter2.md ./chapter9.md ./chapter9.md
./chapter3.md
./chapter4.md
./chapter5.md
./chapter6.md
./chapter7.md
./chapter8.md
./chapter9.md
Solo algunos ejemplos sobre cómo se está utilizando este proyecto para documentar la documentación del mundo real:
¿Por qué tomar notas en la era del aprendizaje automático y modelos de idiomas grandes?
En pocas palabras. Se complementan entre sí:
La IA funciona "bien" cuando se aplica a contextos limitados (no necesariamente pequeños), por ejemplo, tareas de programación básicas o tareas (no tan básicas) de matemáticas con un conjunto y operaciones bien definidos (problemas algebraicos, problemas de ajedrez, ...).
Trabajo en el mundo del desarrollo de software. Déjame resumir mi experiencia:
Por otro lado, al tomar notas de los expertos, podemos etiquetar productos competidores, resaltar pros/contras, tomar hojas de trucos, anotar con casos de uso, características pendientes, cosas así.
Podemos obtener alguna "información" y completar alguna nota anterior (tal vez escrita hace 4 años) para que el contenido que estaba incompleto comienza a "tener sentido". Finalmente, podemos tomar decisiones mucho más sensatas.
Es posible a través de la ingeniería rápida avanzada hacer que la AI devuelva las respuestas sensatas ... pero la ingeniería avanzada avanzada es mucho más difícil y lento que solo toma y clasifica las notas . De hecho, diría que tomar y clasificar notas, crear una taxonomía bien definida y estable es una ingeniería de aviso "debe" para "avanzada" .
Podemos preguntarle a un bot de LLM sobre resolver una tarea y muchas veces funcionará. Surgen algunas preguntas:
Estamos preguntando al LLM porque ignoramos la solución en primer lugar, por lo que probablemente ignoramos soluciones alternativas y probablemente ignoramos muchas otras cosas (recuerde el riesgo de las incógnitas desconocidas ). Si tomamos notas sobre tareas relacionadas y alternativas relacionadas para problemas similares, ahora podemos agregar dicha información a nuestro aviso y también podemos considerar llenar los aspectos "ortogonales" (QA, seguridad, estándarización, mejores patrones, ...). De esta manera, ayudamos a la LLM a reducir la dimensionalidad del problema y nuestro aviso será un aviso mucho más eficiente.
No es necesario decir que un LLM también puede ayudarnos a diseñar nuestra taxonomía sugiriendo temas y subtópicos. En ese sentido, ambos sistemas pueden alimentarse entre sí en un bucle infinito. Genial, ¿no?