It’s not just the end product that matters. The process and intent behind its genesis matters too.
5,617 karma · joined August 30, 2017
Codeberg: https://codeberg.org/ashton314
GitHub: https://github.com/ashton314
Blog: https://lambdaland.org
It’s not just the end product that matters. The process and intent behind its genesis matters too.
https://lambdaland.org/posts/2023-12-20_functional_langauge_...
https://lambdaland.org/posts/2024-09-27_threaded_interpreter...
Matthew Flatt, the Racket lead, says that Racket’s performance should be fairly comparable to Java, much faster than Python, slower than Julia/Rust/etc. That’s been a helpful model for me: if Java is fast enough, Racket will do fine.
In less than an hour I reproduced my résumé—complete with fancy functions to typeset employment entries on a grid system. In under 24 hours I was tinkering with the Typst source code.
Typst is amazing. Syntax is clean and consistent. The compiler is so so fast. Docs are excellent. And it is very close to TeX when it comes to typesetting quality. There are a few tiny rough edges that any \usepackage{microtype} enjoyer will miss, but stuff is improving rapidly.
(Also, XKCD disclaimer: this was not an LLM—I just use em-dashes a lot because TeX made them easy to type and I got used to having them.)
The website I link to is really quite fascinating if you haven't seen it already: https://arewedecentralizedyet.online/
Go decentralization!
I cannot abide any LLM that tries to be friendly. Whenever I use an LLM to do something, I'm careful to include something like "no filler, no tone-matching, no emotional softening," etc. in the system prompt.
You can have a module written in the `#racket` language (i.e., regular Racket) and then a separate module written in `#datalog` and the two can talk to each other!
Yay! That's 100% what it was made for. Any suggestions on how to make key features more discoverable welcome.
Bedrock differs philosophically from Doom et al. in that Bedrock is meant to be as simple as possible. There's no magic, no extra package management system (looking at you Doom) to break or confuse. By default, it doesn't install any 3rd-party packages—it just sets better defaults. Recent versions of Emacs can do a lot, but the defaults are painfully outdated. Bedrock fixes that. It's basically a vanilla Emacs experience without some of the cruft carried over from the previous century.
Bedrock also comes with a curated set of packages to enhance Emacs beyond better defaults. You can load these into your config as you begin to need them. List here: [2] If you are looking for a set of "modern" packages, this is it. I do pretty well keeping up in this space, and a lot of these (esp. Vertico, Consult, Corfu, etc.) seem to be accepted as the de-facto best replacements for older packages like Helm, Ivy, etc. (That said, I should add some config for Casual—very neat package to help with seldom-used features of Emacs.)
Bedrock is meant to be understandable: clone it once, and then tweak from there. You'll find a lot of forks of Bedrock on GitHub as people have forked it and then built their own config on top.
I'm working on updating Bedrock for Emacs 31. There won't really be that many changes, so like, don't wait for 31 to start your Emacs journey, but know that Bedrock is actively maintained and that the packages I've curated for it are the best I could possibly find. :)
Oh, also, if you search "best Emacs packages", my blog post [3] will come up on the first page on basically every search engine I've tried. ;)
Happy hacking!
[1]: https://codeberg.org/ashton314/emacs-bedrock
[2]: https://codeberg.org/ashton314/emacs-bedrock#extras
[3]: https://lambdaland.org/posts/2024-05-30_top_emacs_packages/
Pray you never have to flee your country to escape violence or persecution. Most of these people are just desperate.
The interface builder has since been spun out as a separate library (and now included with stock Emacs!) called Transient, so there are several packages that leverage it. My favorite LLM interface (gpt.el) makes heavy use of transient menus. I've created my own transient menus for thinks like my PKM (Denote by Prot), my LSP client of choice (Eglot), and my citation manager (Citar).
There are edge cases, sure, but I have yet to encounter a deadlock after 7 years of professional work with Elixir.
> I didn't find any primtives in OTP for handling this
See `GenServer.call/2`. This covers 99% of call/return patters in distributed systems. I take it you haven’t written much (any?) Elixir because you would have found this function.
> The actor model doesn't really offer any benefit over other models while bringing significant downsides.
Actors are a way better abstraction for pretty much any application-level code I can think of. I say this having written Go, Rust, and Elixir. What downsides are you talking about specifically?
> Plus, there are major downsides to using an unpopular platform like Erlang/BEAM.
The BEAM is popular. At least 3 different serious languages use it. What down sites are you waving your hands up here?
The only viable option would be to buy the book and then pirate a de-DRM'd copy.
…
“Why do you suppose it became obsolete, then?” asked Orolo.
“So that the people who brought us Kinagrams could gain market share.”
Orolo frowned and considered this phrase. “That sounds like bulshytt too.”
“So that they could make money.”
“Very well. And how did those people achieve that goal?”
“By making it harder and harder to use Logotype and easier and easier to use Kinagrams.”
“How annoying. Why did the people not rise up in rebellion?”
“Over time we were led to believe that Kinagrams really were better.”
…
“Where were we?” Quin asked, then answered his own question: “You were asking me if I could read, not these, but the frozen letters used to write Orth.” He nodded at my leaf, which was growing dark with just that sort of script.
“Yes.”
“I could if I had to, because my parents made me learn. But I don’t, because I never have to,” said Quin. “My son, now, he’s a different story.”
---------------------------
That section plus Samman's little bit about the "Artificial Inanity" systems that made the internet basically unusable are hitting way too close to home these days.