HackerLangs
TopNewTrendsCommentsPastAskShowJobs

ashton314

5,438 karmajoined há 9 anos
Programming languages researcher

Codeberg: https://codeberg.org/ashton314

GitHub: https://github.com/ashton314

Blog: https://lambdaland.org

Submissions

Doom on Emacs

github.com
3 points·by ashton314·há 5 meses·0 comments

Tree-sitter vs. Language Servers

lambdaland.org
266 points·by ashton314·há 6 meses·69 comments

[untitled]

1 points·by ashton314·há 8 meses·0 comments

My system for organizing papers and notes as a PhD student

lambdaland.org
2 points·by ashton314·há 9 meses·0 comments

iPhone 17 Pro Camera Review: Rule of Three

lux.camera
3 points·by ashton314·há 10 meses·0 comments

comments

ashton314
·há 23 horas·discuss
I’m rather partial to Plankalkül actually
ashton314
·há 8 dias·discuss
I'm in Emacs 99% of my day, and I don't think I've ever used the function keys inside Emacs.

All my volume/brightness/etc functions are handled on a separate layer. I've got function keys on another layer as well, but I don't ever use them.

If you use function keys a lot, then you could do something like putting the function keys on one layer all on the right hand like it's a num pad and then adding a key on the left hand to switch to that layer. You could add combo-taps on your main layer to trigger the function key (e.g. press `q` and `1` at the same time to hit `f1`, `w` and `2` at the same time to send `f2`, etc.), etc. etc.

QMK gives you a lot of options to do what you want. There's also 3 keys towards the center of the keyboard on each side that I rarely hit (in fact, they're used for some layer switching some times!) that you could easy bind to function keys directly.

Note that a key can do like 4 different things depending if you tap, hold, double tap, or tap and hold if you want to get really fancy.
ashton314
·há 9 dias·discuss
Typing this on a Moonlander right now. Love it to pieces. The tenting kit is pricey but incredibly stable and, to me, is worth every penny. I've gotten used to the ortholinear so much so that I hate other layouts now.

I've looked at some other more minimal boards and, while they look nice, I actually make good use of pretty much all my keys and I would not like going down to a smaller layout.

In my mind, the most important pieces of a good keyboard are, in this order:

1. QMK/ZMK firmware so you can add stuff like mod-taps and whatnot

2. Split & tented to avoid bad wrist angles

3. Lots of buttons for your thumb to press: it's your strongest finger so you should put it to work

4. Ortholinear layout for more natural finger movement

ZSA (the maker of the Ergodox, Moonlander, and Voyager) is a great company—I've had incredibly positive experiences with their support team whenever I've needed help. One time I was having trouble using their online configuration tool (https://layout.new) and so I emailed support. I got an email back within the hour from a developer asking for more details. After I supplied this, it was just another hour until I heard back saying that they had found a bug and that the fix was live. So awesome!!
ashton314
·há 15 dias·discuss
This is Rhombus’ native data type! Such a nice data structure.
ashton314
·há 16 dias·discuss
More like the Knights who say Nil
ashton314
·há 17 dias·discuss
)

There matched your paren for you.
ashton314
·há 17 dias·discuss
Matthew Flatt picked “shrubbery” because it’s tree-like but not fully expanded, so it tends to be more broad/flat than deep like a tree. Hence also the term “enforrestation” when you fully expanded it.

I think the Monty Python reference is just a happy coincidence.
ashton314
·há 17 dias·discuss
Here's the paper I wrote: https://lambdaland.org/files/2024_ecoop_type_tailoring.pdf

Lots and lots of documentation, some experimentation, and asking people. :)
ashton314
·há 17 dias·discuss
I’ve written a little library Rhombus.

I think my favorite thing is the `…` operator. Go check it out. It’s not like the splat operator in other languages, though it does give that feel initially. It’s much more general: it works with nested data structures and can take the place of a `map` operation.

The best part of `…` is that it is not a built-in thing—it’s just a macro! The magic is that Rhombus lets you define different macros depending on whether or not the macro identifier appears in binding context (left side of `=`), expression context, or some other contexts. IIRC you can even define your own contexts too.

Rhombus takes the best-in-class macro system of Racket and somehow finds a way to improve upon it. I say this after researching and comparing detailed metaprogramming features across a dozen different languages. Rhombus is a very neat little language.

Last thing: Rhombus’ main data type, the list, is implemented with an RRB tree. RRB trees support structural sharing, functional updates, and have O(log n) iterate, insert, delete, append, and arbitrary read operations. The constant factor on that is tiny: I think it’s like log_16 or log_32. They’re designed to be very cache friendly. Super cool data structure.
ashton314
·há 20 dias·discuss
This needs a flag to insert random blank pages
ashton314
·há 21 dias·discuss
I think that this needs an application of Bayes Rule against the ¼ chance I guessed and got it right by luck.
ashton314
·há 22 dias·discuss
If you find yourself wanting to try out Emacs but are (understandably) turned off by some of its archaic defaults, I encourage you to check out my Emacs Bedrock [1] project. It is not a framework like Doom Emacs or Spacemacs. Instead, it's just a bunch of better defaults, plus some example configuration for some of the most popular packages. It's meant to just be a starting point, and not a framework to keep up-to-date in the long run.

Emacs has come a long way in terms of in-built features. The only problem is that, in the name of not breaking backwards-compatibility (or something like that), the archaic defaults have remained. Just a little bit of simple config (either from Bedrock or, heck, even an LLM) will get you very far.

I'm working on a new version of Bedrock for Emacs 31. If you're using the release candidate (which, because it's Emacs, is more stable than most other operating systems) then check out the `emacs31` branch.

[1]: https://codeberg.org/ashton314/emacs-bedrock
ashton314
·há 25 dias·discuss
I spoke to the couple (it’s like a single married couple + a bunch of scripts they’ve wrote) who handle the formatting for a bunch of the programming language-related conferences around the world (and others too maybe) and they are interested in Typst and are looking into it! (They’re also super nice folks.)
ashton314
·há 27 dias·discuss
100% Elixir is much more a Lisp than Ruby is.
ashton314
·há 29 dias·discuss
But are you wearing it slip-shod, like the natives do?
ashton314
·mês passado·discuss
No, it’s actually the right word. I’m saying you see past syntax and get to the underlying semantics of PLs after learning Racket. (And modulo is a perfectly acceptable word to express this.)
ashton314
·mês passado·discuss
Racket gets in your head like nothing else. Once you learn it, (Scheme does this too) you get x-ray vision to see every other language modulo syntax.

I have been writing Elixir professionally for the bulk of my career. (It’s been pretty awesome!) Despite this, I consider Racket to be my native language because it’s so easy for me to think in Racket. It’s the perfect bridge between my brain and the problem domain.
ashton314
·mês passado·discuss
All power to you!

As an aside, have you seen Typst? It’s got LaTeX-level typesetting quality but the markup syntax is a lot friendlier (close to Markdown) and the scripting language is a Real Language™ with sensible error messages and sub-second compilation times even for big documents.
ashton314
·há 2 meses·discuss
Pangram flags this as 100% AI generated with high confidence.
ashton314
·há 3 meses·discuss
I have a Kindle with KOReader on it and it’s awesome. I recently bought a book directly from the author (Isles of the Emberdark, Brandon Sanderson) and the author, being excellent, provided it without DRM so I had no trouble reading it.

But for less-excellent authors, where’s a good place besides Amazon to get ebooks?