441 karma · joined February 6, 2016
Weapons: • TS/Node.js, Rust, Go • Full-stack problem solving • Scaling, optimization & software design
Interests: • DevOps/Infra • Distributed Systems • Self-contained low-latency system designs: - Embedded databases - Modular monoliths - Stateful apps
Ping me: tasos at eveid.com
Personally, I have some notes and bookmarks that I'd like to scrape, then have an LLM summarize, generate hierarchical tags, and store in a database. For the notes part at least, I wouldn't want to give them to another provider; even for the bookmarks, I wouldn't be comfortable passing my reading profile to anyone.
Edit: I've loaded llama 3.1 8b instruct GGUF and I got 12.61 tok/sec and 80tok/sec for 3.2 3b.
- Atomic to track print order (name it counter).
- Results slice stores items: {index, err, data}.
- Goroutines: do work, store result, then loop-check if counter matches index to print (with tiny sleep).
Edit: Another solution would be to put printing loop outside with a channel to signal work finished but I don't know how I would avoid using nested loops, one for the items in the list and one to check if the result is back.
btw, you writing has such a dismissing, arrogant and undermining tone that I would downvote you if I could.
All the posts that appeared recently on Nix have the same vague, over-politicized language where they are complaining that the person with most potential as a dictator is not one and they want more power to make decision in behalf of nixos.
I feel for Dolstra, pain in the ....
From recent experiences in profiling and optimizing different backend apps, I'm confident that imposing some constraints on JS we can get noteworthy improvements on the performance front better or equal to golang. Here's a subset of the constraints I'm looking at:
- Avoid out-of-bound reads in arrays and monomorphization.
- Manage memory allocations. (pools)
- Implementing inlining, also done by V8 and JSCore.
- Keep variables close to usage context.
- Being picky about standard js operations.
- Using 'new Array(n)' for creating longer arrays, and '.push()' for smaller ones but if frequently calling methods on an array, avoid preallocating.
- Avoid arrays with holes, prefer using arrays with numbers.
- Use cached prototypes for object creation.
- Avoid working with strings as much as possible, use typed array when possible.
- Partial evaluation.
ps: Thank you for all your work in the Rust ecosystem, I've used a lot of your crates over the last year.
One of the additional goals I have is to be able to write type safe APIs between frontend and backend similar to trpc (elysia framework).
Browser, Std lib: Yes, the language should still be able to run in the browser and will provide a std but will not transfer each time, the benefit of writing a compiler would be that we can do dead-code-elimination and target native javascript methods instead of something like wasm.
Lifetimes: Honestly, currently I'm only working on the simplest transpiler but I would like to explore using typed arrays as the stack, heap.
ps: if you're hiring nodejs/ts, rust or golang in EU I put my email in the profile/about.
1. Exposure of techniques, tools to people that are new to the field, or now the context is right.
2. People with experience share their insights and opinions (TIL: Igraph an/cugraph)
I'm really sorry to hear about your mom. It's tough to see a loved one going through something like that. Wishing her strength and recovery, and hoping you get to spend many more happy moments together.