Marijn Haverbeke is a user on mastodon.social. You can follow them or interact with them if you have an account anywhere in the fediverse. If you don't, you can sign up here.

Digging deeper and deeper into a design for weeks. Not sure if I'm doing something amazing or hopelessly wasting time.

With news of Unroll.me selling user inbox info to Uber, lots of people are repeating "if you're not paying for it, you're the product."

I've said before, and will continue to say, that that is the wrong formulation. Sometimes you pay for it and you're still the product – look at US ISPs. Sometimes you don't pay for it and you're not the product – free software.

The real question is whether a software or service empowers users, which can't be boiled down to whether you paid.

Had my talks rejected by all confs that I submitted to this season. Less talk-writing stress for me, I guess.

"We suggest that physical and situational inequality are built into people’s everyday environments—such as the modern airplane—and that exposure to these forms of inequality can trigger antisocial behavior. Analyses reveal that air rage is more common in economy class on airplanes, where inequality is physically present, and in both economy and first class when inequality is situationally salient."

pnas.org/content/113/20/5588

Regular expressions: convenient string processing with exponential complexity lurking in every shadow

@ginsterbusch I tried to start that way, but it was a disaster, so I wrote a clean version first

Three weeks of work and all I have is a 170-line prototype. This is fine.

Best variable name today: backtrackstack

After 20 years with emacs I still often accidentally fat-finger some key combo that triggers functionality I had no idea existed.

(This fact does not necessarily reflect well on Emacs' UX)

A series of great writeups about text editor implementation and rope data structures: github.com/google/xi-editor/tr

My grammar matcher's virtual machine pushes two return addresses on the stack for every call—one for success, one for failure.

Are there other systems with that kind of calling convention?

I know there's been a lot of work done on optimizing VM opcode dispatch in C. Is there any similar work for implementing a JS-based machine?

For some reason the majority of literature on Packrat parsing only uses Java and XML in benchmarks, which hardly require any backtracking

That's a bit like benchmarking a programming language by seeing how quickly it can add numbers

Sometimes I wince because I have ten new emails but then they are all nice things like people saying thanks, and it's actually okay

Seems that every time Ive thought “surely this corner case never comes up in the real world” it came back as a bug report a few months later

Academic tradition or not, two-column PDFs are still terrible to read digitally. _Please_ also distribute your scientific work as HTML.

Deriving parsers from declarative grammars is neat, but tools tend to be so inexpressive you end up writing hideous grammars to compensate

Parsing expression grammars are wonderful… but now you end up re-testing for every keyword before an identifier github.com/harc/ohm/blob/maste

In general, context-free grammars seem to be a hammer that we're awkwardly applying everywhere because we don't have a more appropriate tool