I actually have created something very similar here: https://github.com/Black-Tusk-Data/crushmycode, although with a greater focus on 'pulling apart' the codebase for onboarding.
So many potential applications of the resultant knowledge graph.
Late chunking is a promising approach to computing text embeddings that incorporates more of the actual document into each chunk's embedding.
I think it's pretty promising.
Mostly as an academic exercise, I built a much simpler implementation of the Microsoft GraphRAG implementation laid out in this paper: https://arxiv.org/abs/2404.16130.
I find it to be nevertheless pretty functional, and certainly more hackable than the de-facto implementation.
This is a small book / guide I've written with the goal of demystifying the details of language models for developers without any ML / neural network experience.
From my perspective, there is a level of understanding within the grasp of most developers that will enable them to build software with drastically new capabilities. This guide is my attempt at bridging that gap in education.
Please share if you find it helpful!
I've always had view-mode come on by default, and I have a bunch of custom keybindings for view mode which are nicer on the hands when you're just reading text.
So (add-hook 'find-file-hook 'start-view-mode) to turn it on automatically.
(defun view-mode-background ()
(if (bound-and-true-p view-mode)
(face-remap-add-relative 'mode-line '((:background "#9400D3")))
(face-remap-add-relative 'mode-line '((:background "red")))))
^ this helps a lot to know whether or not you're in view mode
I think I'd have to say NextJS with SQLite. Every DB table would just be 'id' and 'data', where 'data' is JSON-encoded and the schema is only enforced in code. This lets you write a 30-line ORM. Foreign-key relationships are just modelled as lists. If speed is the major concern, I find this the fastest way to build.
You can bring structure to the DB as things are nailed down.