Highly recommend writing a BitTorrent client. The spec is easy to grok, it has a bunch of fun subproblems that you can go as deep or as shallow as you want into, and it's super rewarding being able to download something like the Debian kernel after all of your hard work. Magnet links and seeding are two fun things to tackle post basic implementation. It also got me really interested in peer to peer systems and DHTs like Chord!
In college one of our end of semester projects was to make a “peer to peer” client. Not specifically BitTorrent. It was so much fun! Coming up with the ways of handshaking, chunk sizes, etc. It was so cool to see it actually work as a new student.
I think for me, the difference really comes down to how much ownership I want to take in regards to the project. If it’s something like a custom kernel that I’m building, the real fun is in reading through docs, learning about systems, and trying to craft the perfect abstractions; but if it’s wiring up a simple pipeline that sends me a text whenever my bus arrives, I’m happy to let an LLM crank that out for me.
I’ve realized that a lot of my coding is on this personal satisfaction vs utility matrix and llms let me focus a lot more energy onto high satisfaction projects
Wow, looks really nice, and the README’s super comprehensive. I don’t know if I missed it or not, but do you support inter-note link navigation (like Obsidian WikiLinks)? I know markdown-oxide did this with LSP actions, but I’d love to know more about your plans for navigation/lsp-like features, if any
GT used to have a collaboration with Meta's FAIR and one could do final projects in the DL and NLP classes on recent research topics from Meta AI; some people ended up at top conferences with their work. Not sure how it's going to be now given Meta effectively disbanding FAIR in favor of Wang's Superintelligence. GT also has team research project under VIP (Vertically Integrated Projects) where a prof leads a team of students towards new findings; there are also a bunch of PhD seminars one can take. Stanford has a plenty of CS3xx research classes one can take where the final project has to be some novel research.
OCaml’s REPL is lovely, but I found myself having some friction with initial startup. The build/package system was pretty convoluted, and I ended up choosing JS’s Core stdlib for my needs (a simple compiler). With the new multicore release it’d be cool to see OCaml in some more practical projects!
Many learning materials will push you that way, but the vast majority of FOSS packages don't use it.
There's nothing inherently wrong with using Jane Street's stdlibs if you miss the goodies they provide, but be aware the API suffers breaking changes from time to time and they support less targets than regular OCaml. I personally stopped using them, and use a few libraries from dbunzli and c-cube instead to fill the gaps.
I love this book! I worked through a bunch of it during my winter break last year and found the incremental teaching style extremely rewarding. For readers of the book, Sandler’s reference OCaml implementation is super useful for getting your bearings. I was kind of thrown off by the use of TACKY as an IR, but it was nice to have a solid reference as I worked through the book. For those more experienced with compilers: what are some good resources for stuff like SSA and optimisation? I’ve looked at some of the resources here https://bernsteinbear.com/pl-resources/ but are there other canonical resources?
the dragonbook is a good start to go deeper inthink (modern editions). its less practical, more theory heavy. does have all the algos and some example materials. if you have a bit of basis it will be useful reference.
This looks great! I’m really stoked to see egui being used for the desktop app. While I’m not a lawyer, I was wondering about the potential for external references to cases, i.e doc1 references a case which isn’t present locally, which can then be navigated to via something like “go to definition”. Maybe something like an indexer that crossrefs on a database of legal cases? Do you have any thoughts on some other use cases? The idea of an IDE for lawyers is super cool, can’t wait to see where this goes!
reply