Programmer and art school dropout, maintainer of @_ohmjs Now: Engineering Manager @sourcegraph Past: @LyftLevel5, HARC, Google, BumpTop

München
Joined April 2008
I love this—putting heads on geometric forms makes it easier to do mental rotations.
40
1,737
154
3,704
Ways of configuring a CLI tool: 1️⃣ Command-line options 2️⃣ Config file 3️⃣ Env vars 4️⃣ Comments in input files (e.g. eslint, pretter) Huge difference. In 3 & 4 you don't need to know hardly anything about how the process is spawned, etc. It "just works"
3
0
1
4
I think this is a big part of why it's so much easier to use console.log vs. a debugger. Debugger often requires you to modify the way the process is launched. Adding a console.log / printf just works, even if your process is remote (e.g. CI), spawned by the test framework, etc.
1
0
0
4
Using "just JS" (not TypeScript) for side projects makes me feel so ~free~ …until I waste 30 minutes debugging something that would have been a type error.
6
0
1
43
This is just as much a condemnation of the state of debugging tools as it is a pro-types thing. If it had taken only 1-2 minutes to debug, the mistake wouldn't have bothered me at all.
0
0
0
7
🤩 I love this! See @MockMechanics for more examples.
Hey guys, version 1.1 of the MockMechanics software is out now and so is the sweet tetris game I made with it with almost no code. I hope you like it :)
1
0
0
3
Imagine if you could create debug visualizations like this as easily as using `console.log`
1
1
0
9
Feels good to see a paper that is a direct response to (and improvement on) something I published. Makes me feel like I actually put a brick in the wall of knowledge 😊
Interesting new paper from SLE '21: "Fast Incremental PEG Parsing", which builds on Ohm's incremental parsing algorithm (published at SLE '17). 📄Paper: people.seas.harvard.edu/~cho… 🎥Talk: redirect.invidious.io/watch?v=k3vBR58u…
0
0
0
21
What are the best ways of handling versioning and experimental features in a programming lang? • Python has the __future__ module: python.org/dev/peps/pep-0236… • JS has 'use strict' • Handle it outside of the language. Rust (?), JS (script vs. module)
3
0
1
2
One thing I am curious about is why experiments can't be enabled by the @ dart comments. E.g. `// @ dart=2.9+non-nullable` doesn't seem to be valid, only `// @ dart=2.9`.
1
0
0
0
This was the first detail I noticed. Why the hell not indeed!
This "make it look cool" illustration by some random App Store editorial artist is a way more functional VPL design than basically all VPLs in the wild. (sauce: apps.apple.com/ca/story/id15…)
1
0
0
8
I went ahead and wrote a brief but detailed design breakdown of this illustration. 🔬➡️ github.com/ivanreese/visual-… If you're making a node-wire visual programming language, this is the bar I want you to clear.
0
0
0
0
Seems like a missed opportunity that you can't click and drag the blocks in the Scratch documentation just start creating your program there.
0
0
0
9
This makes me reconsider the advantages of structure editors (e.g. hazel.org) and blocks-based programming environments like Scratch. It's usually considered a benefit that you can't make certain errors, but maybe there is also a lost opportunity there?
Adopting this attitude (ca. 2012 iirc) changed the whole way I do language design and tooling development. Compiler/interpreter error messages are the single best place to surface learning materials for a language, because trial *and error* is a huge aspect of how people learn!
Show this thread
3
0
0
7
It's similar to the problems with disabled buttons / greyed out menu items. As you user, you can see that something is not allowed, but you can't figure out why! smashingmagazine.com/2021/08…
1
0
0
2
It's interesting to think about languages / environments that would actually encourage you to break the rules, in order to teach you what the rules are.
3
0
1
2
Oooh — "Error training proved to lead to higher performance than a training that reduced the chances to make errors, the so-called error-avoidant training" core.ac.uk/download/pdf/2053…
0
0
0
1
Patrick Dubroy retweeted
Adopting this attitude (ca. 2012 iirc) changed the whole way I do language design and tooling development. Compiler/interpreter error messages are the single best place to surface learning materials for a language, because trial *and error* is a huge aspect of how people learn!
Replying to @ManishEarth
"people say the primary function of the compiler is to take well-formed code and produce output. i think its primary function is to take _malformed_ code and produce diagnostics" -- @ekuber WOOOOOOO
Show this thread
2
21
6
85
Show this thread