HNHacker News
TopNewBestAskShowJobs

ashton314

5,617 karma · joined August 30, 2017

Programming languages researcher

Codeberg: https://codeberg.org/ashton314

GitHub: https://github.com/ashton314

Blog: https://lambdaland.org

submissionscomments
ashton314··on We're losing our voice to LLMs
A analogy: For the same reason why natural wood is more beautiful than plastic. Natural wood gets its beauty from little faults and irregularities. The process of growing a tree takes a long time and thereby is more valuable. A plastic facsimile can be made to look similar and be cheaper to produce, but it lacks the unique grain and quality of the wood.

It’s not just the end product that matters. The process and intent behind its genesis matters too.

ashton314··on We're losing our voice to LLMs
* it writes in an imitation of your voice.
ashton314··on Moss survived outside of the International Space Station for 9 months
Now we need to selectively breed moss until we have astrophage
ashton314··on Racket v9.0
These are small benchmarks, so don’t over-generalize from this data point alone, but Racket absolutely crushes Python in terms of speed and goes speedily enough against other popular performance-focused languages:

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.

ashton314··on Markdown is holding you back
I watched Typst from afar for many years. I finally took it out for a spin about a month ago after version 0.14 dropped.

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.)

ashton314··on Federate Away from GitHub
Author here—happy to answer any questions.

The website I link to is really quite fascinating if you haven't seen it already: https://arewedecentralizedyet.online/

Go decentralization!

ashton314··on The code and open-source tools I used to produce a science fiction anthology
Typst is so stupidly easy to use. It took me an hour to go from zero Typst knowledge to reproducing my résumé perfectly. The docs are easy to read and there’s a guide for making templates. I feel like if you’ve written CSS and are familiar with associating some kind of selector with some properties, then you’ll be able to pick up Typst and make whatever template you want in no time.
ashton314··on GPT-5.1: A smarter, more conversational ChatGPT
Yay more sycophancy. /s

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.

ashton314··on Learn Prolog Now (2006)
Racket really shines in this regard: Racket makes it easy to build little DSLs, but they all play perfectly together because the underlying data model is the same. Example from the Racket home page: https://racket-lang.org/#any-syntax

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!

ashton314··on Btop: A better modern alternative of htop with a gamified interface
My favorite part about btop is how smooth the color gradient is from the top of the process list to the bottom. Soooo smooooth…
ashton314··on State of Terminal Emulators in 2025: The Errant Champions
Holy crap you’re right. I just found that and it’s amazing
ashton314··on Ask HN: Where to begin with "modern" Emacs?
lmk if you get stuck—feel free to open issues on Codeberg. (There's a GitHub mirror too where you can open issues if you don't have a Codeberg account.)
ashton314··on Ask HN: Where to begin with "modern" Emacs?
You're welcome! I'm glad it was useful for you. :)
ashton314··on Ask HN: Where to begin with "modern" Emacs?
> started adjusting it to my own needs

Yay! That's 100% what it was made for. Any suggestions on how to make key features more discoverable welcome.

ashton314··on Ask HN: Where to begin with "modern" Emacs?
Thank you for the kind words. :) I'm so glad it was useful to you.
ashton314··on Ask HN: Where to begin with "modern" Emacs?
One of the sharpest people I know—he's a professor and hacks on the LLVM for a living—uses stock Emacs in the terminal with no discernible customization.
ashton314··on Ask HN: Where to begin with "modern" Emacs?
I maintain a pretty popular Emacs starter-kit called Bedrock. [1] I suggest starting with it, or at least taking a look at it to get some ideas!

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/

ashton314··on ICE and the Smartphone Panopticon
At the cost of misidentifying innocent citizens and deporting them? These surveillance technologies have way too many false positives.

Pray you never have to flee your country to escape violence or persecution. Most of these people are just desperate.

ashton314··on NaN, the not-a-number number that isn't NaN
Not at all sufficient. NaN typically means that something has gone wrong—e.g. your precision requirements exceed that of the floating point representation you've selected, you've done a nonsensical operation. inf and -inf might be perfectly acceptable results depending on your application and needs.
ashton314··on You already have a Git server
Git was explicitly designed to be decentralized.
ashton314··on Magit Is Amazing
Ediff and smerge are both fun to use in Emacs.
ashton314··on Magit Is Amazing
For me, the magic in Magit is how its interface is perfect for new users as well as long-time power users: new users get helpful menus to show them what options are available, but the menus display instantly and are entirely keyboard-driven, so that long-time power users who know the keystrokes by heart are not impeded one whit. There's no trade-off between power tool and beginner-friendliness here: everyone gets all the goodness all the time.

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).

ashton314··on Gleam OTP – Fault Tolerant Multicore Programs with Actors
> Whenever you message another process and need a reply there is a risk of deadlock.

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?

ashton314··on How I bypassed Amazon's Kindle web DRM
The thing that killed the download -> crack DRM workflow is that Amazon removed the "download and transfer via USB" option. I haven't bought an ebook from Amazon since.

The only viable option would be to buy the book and then pirate a de-DRM'd copy.

ashton314··on I almost got hacked by a 'job interview'
Maybe a mini desktop computer hooked to a separate vlan that you nuke the disk every night at midnight?
ashton314··on America Is Sliding Toward Illiteracy
The extramuros language is “Fluccish” and it’s stated that it uses the same alphabet as Orth. I think it’s a little more pictorial (esp. Kinagrams with animation) than Chinese
ashton314··on America Is Sliding Toward Illiteracy
They all use Kinagrams—a moving picture script. Very few are literate. Well-off burgers typically can read and write, but lots of the workers and virtually all the slines can't read.
ashton314··on America Is Sliding Toward Illiteracy
Quin stood up and tossed his long body in a way that made his jacket fly off. He was not a thick-built man but he had muscles from working. He whirled the jacket round to his front and used his thumbs to thrust out a sheaf of tags sewn into the back of the collar. I could see the logo of a company, which I recognized from ten years ago, though they had made it simpler. Below it was a grid of tiny pictures that moved. “Kinagrams. They obsoleted Logotype.”

…

“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.

ashton314··on Emacs agent-shell (powered by ACP)
I'm going to pile-on here: I enjoy using Journelly a lot and it was an easy purchase for me to make. Thanks for building it!
ashton314··on Kirigami-inspired parachute falls on target
I mean, sure, it does, but I could have had a PhD in folding pieces of paper!
← PreviousPage 5 of 34Next →