I was only intending to test the evaluation order, but I used `splice()` and made it worse because the actual method I wanted was `shift()`, but I completely skipped over it because I was looking for something named like `popFirst()` or `remove(index)`.
developer.mozilla.org/en-US/docs/W...
Posts by Ian
JavaScript WAT quiz: Does this error? If not, what is the value of `array` at the end?
```js
var array = [0, 0, 0]
var pair = [1, 2]
array[pair.splice(0, 1)] += pair.splice(0, 1)
```
Hint: `pair.splice(0, 1)` removes the first element of `pair` and returns it as an array.
Typst layout iterations >:(
Did you know that arXiv is exploring to add Typst? The world's largest preprint archive faces unique challenges to keep science open. Join arXiv veteran Norbert Preining and learn what's ahead for arXiv and Typst.
www.youtube.com/watch?v=zNZl...
have a chuckle at this "Git flow" slop
might explain GitHub's recent outages
learn.microsoft.com/en-us/traini...
You're gonna love learning what the VL stands for in VLSI
You would either be interested in Par or Hazel, and I can't quite tell which so I'll l recommend them both
hazel.org
faiface.github.io/par-lang/int...
God it looks like a Dark Souls level
Never attribute to malice what could be explained by LaTeX quirks
I've been working on a new tool with @tonofcrates.bsky.social to make publishing easier called Rheo:
rheo.ohrg.org
In a nutshell, it lets you produce an EPUB, a PDF, and a static site (HTML) from a folder of @typst.app files. The Rheo doc site is naturally made with Rheo (PDF and EPUB linked).
Quit while you're ahead!
Shame on thee: developer.mozilla.org/en-US/docs/W...
(The examples at the top are great, but the complexity just skyrockets if you need more than that)
BNF is really nice as a reference or for formal proofs, but it's *so bad* at actually conveying what a language looks like.
I hate hate hate that's it's copied directly by MDN from the web standards when explaining CSS properties.
Before this, jj would recognize that all of the files in your repo were in-fact executable, and would “helpfully” mark all files as modified to be executable. Definitely not the kind of commit that would get past code review 😅
I’m part of this! I added the new executable bit configuration option that should unlock the use of jj when dual-booting with an NTFS drive or on Windows Subsystem for Linux!
It's just a blogpost, Michael. What could it take? 5 minutes?
The star history of the typst/typst Github repository. The star axis goes up to 50k and the date axis roughly encompasses the start of 2024 to start of 2026. The graph jumps to around 15k at the start and then steadily rises to 50k along the years.
Happy 50k stars @typst.app :)
The Advent of Compiler Optimization series has been consistently charming and thought-provoking. Great work Matt, have a Merry Christmas!
Happy to share the good word
Typst!
It’s integral.double and integral.triple in Typst ^^
typst.app/docs/referen...
Well Rust hasn’t always been 10 years old with a big ecosystem. I think it’s almost always worthwhile for individuals to explore different ideas and tradeoff points: society isn’t really limited by _number of humans_ working on a given project.
Typst builds on the foundation of purity with mutability (+=, dict.insert, array.pop), but only for scope-local variables. This leaves functions fully pure: they can’t modify values from outside their scope. I love this tradeoff and think it perfectly balances local reasoning and expressivity.
OH. MY. GOD. TYPST IS SO SMOOOOOTHHH.
100ms recompiles on save, by the time my eyes move from Emacs to pdf viewer it's already updated. I'm literally too slow to even see it update.
Also, this is why escape now maps to save. Saving allll the time. And Lshift-># (alongside much older Rshift->$).
A simple low-property DSL would be a Concrete Syntax Tree. KDL is a perfect match for making trees that just mark-up token boundaries in text.
```kdl
FuncCall {
Ident "func"
LParen "("
Args { Ident "x"; Comma ","; Space " "; Ident "y" }
RParen ")"
}
```
Hmm. You might be able to refactor to use the ? operator some more to avoid a lot of the `unwrap_or_else` calls.
Also it looks like your `unwrap_or_else` calls could just be `unwrap_or_default`, unless you're intentionally calling `vec![]`
This article by Philipp Hagenlocher is a good reference for some of the real usability problems in LaTeX that are part of why I love @typst.app so much. Typst is able to lose the legacy baggage and design an actually ergonomic system from the start.
He’s in his own class ^-^