Inactive; Bluesky is @hillelwayne(dot)com Profile picture
No longer on this hellsite. Newsletter: https://t.co/YrRPK2p8Pc Website: https://t.co/gePEeYpVcd Bluesky: @hillelwayne(.)com
Andoni Martin Profile picture kiddphunk Profile picture KunYu Chen Profile picture Apoorv Singh Profile picture 4 subscribed
Nov 16, 2022 6 tweets 2 min read
I was bitten by the knowledge management bug in 2020 but didn't like any of the apps I tried, including ones I made for myself. I recently tried a new approach: everything's on the filesystem, all relationships are represented with symlinks.

It's working really well! Take tagging. All "tags" are subfolders of the Tags/ folder. If I want to tag `xyz.txt` as "TDD", I just add a symlink to "Tags/TDD". Now I can get everything tagged "TDD" with "ls Tags/TDD".

Getting all of xyz's tags? `gci -R Tags | ? -Prop Link -eq xyz`

(NB: I use powershell)
Nov 16, 2022 4 tweets 2 min read
Since Twitter had to go through with the sale out of fiscal duty to the shareholders, I tried to figure out what that meant for me. AFAICT based on this Vanguard Semiannual report, for every $1,000 in an S&P 500 index fund, I made approx 45 cents.

personal.vanguard.com/funds/reports/… Is that worth it? Probably not for me, because I'm internet poisoned, but the average American is blissfully free of Twitter. Hard to figure out how much they made. Conditional median retirement account in 2019 was 65k, so… 'bout 30ish bucks per family?

federalreserve.gov/publications/f…
Nov 16, 2022 7 tweets 2 min read
Someone brought up a potential issue with my theory: a legal source that used "boilerplate"… from 1865! That would throw my entire chain of events out the window.

I looked into it though and concluded it's not sufficient evidence. Here's my thinking: 🧵

google.com.au/books/edition/… First, that got me looking for the *earliest* use of boilerplate. Google Books helpfully gave me this source from 1540: google.com/books/edition/…

Wait, that's before *boilers*. Did Google just record the wrong date?

Seems so! "Acts of Malice" is actually from 1999.
Nov 1, 2022 7 tweets 2 min read
Why don't developers write more personal GUI tooling? I mean, besides the obvious reason that GUI libraries kinda suck and are much more oriented towards making consumer apps than personal tooling, and also because there are no good GUI tooling exemplars, and... By "GUI tooling", I mean like `.\script` into the terminal and it pops open a lil window you can interact with.

The usual response is "CLI is better" but it's not better 100% of the time, and there's lots of cases where GUIs are real helpful!

The problem is easiness
Oct 26, 2022 8 tweets 2 min read
While generally I think that software mocks are a Bad Idea, I also think that letting go of e2e testing is giving up a really powerful testing technique. e2e tests feature interaction in a way that unit tests don't. The trick is they're not at all "unit tests but bigger". Unit tests can be written like scripts, e2e tests need to be "treated as an artifact": you write supporting infra, you create domain objects, you document, etc. You have to be intentional about it. It's more expensive but in return you get a lot more coverage of interacting parts
Sep 28, 2022 13 tweets 3 min read
Ever since Strangeloop I've been thinking about end-user programming: people should write their own software, not just consume it from professionals. While I strongly believe this too, I never mesh with the advocates, and I wanted to figure out why. 🧵

inkandswitch.com/end-user-progr… I feel like I'm the perfect audience for this: I'm an expert AutoHotKey programmer and write tons of vim plugins and powershell scripts, and I just started making my own browser extensions. But at the same time, I don't care about the "model" end-user proglangs: smalltalk & lisp.
Sep 27, 2022 4 tweets 1 min read
The difference between a programmer and a software engineer is that 100% of programmers' code is domain logic while only, like, 30% of the engineer's code is. But that other 70% is the reason we can maintain a much larger *absolute* amount of domain logic code. A consequence of this is that your job isn't entirely "writing code that delivers value to your clients", you also have to write the code that delivers value to you, delivering value to your clients
Sep 26, 2022 4 tweets 2 min read
So I looked up what's going on here, and it's actually pretty interesting: you can still get a regular Maya subscription, but you can also buy tokens to use on *any* Autodesk product. So instead of getting a subscription for each product you can pay a premium for flexibility Not saying Flex is a good idea, just pointing out that it's grounded in an attempt to solve a meaningful domain problem (businesses don't want to manage 60+ independent annual subscriptions) and it's just "let's find a way to make our product worse"

autodesk.com/benefits/flex/…
Sep 24, 2022 79 tweets 19 min read
Day two of #StrangeLoop! I was doing the swagway track for a bit so came five minutes late to my first talk, "Building Observability for 99% Developers", by @jeanqasaur. We've been internet friends for a while, but this is my first time meeting her in person! @jeanqasaur Jean opened by talking about how she left the Bob Harper software cuult that wanted to prove everything correct, and is now interested in making observability more accessible to the majority of developers who don't want to spend weeks learning a piece of tech
Sep 23, 2022 79 tweets 18 min read
Day one of #StrangeLoop proper! I'll be livetweeting all the talks I see on this twitter thread (except possibly the closing keynote). If you're at the conference, come find me for homemade chocolate! I have:

- Cacao brittle
- Vanilla bean truffles
- Tootsie Rolls
- & Caramels! In addition to the regular conf, there's a miniconf happening today: @gvwilson and @mhoye are hosting a version of "It Will Never Work in Theory", about Empirical Software Engineering!

neverworkintheory.org
Sep 22, 2022 33 tweets 12 min read
Greetings from #strangeloop! Today is the #tlaconf, which I just got to. Gotta take a couple of breaks from it to socialize and help people rehearse and stuff, but I'll be doing my usual livetweeting of the talks I see. ---

"TLA+ for Nike Stores", #tlaconf #StrangeLoop. Yes, speaker is wearing nikes. Apparently they had to go through a LOT of legal to get permission to give this talk!

"Athletes" (sales people) use mobile devices to do all sorts of tasks. Need to handle cash: logistical problem
Sep 16, 2022 14 tweets 3 min read
Taking a break from workshopping for a quick Twitter rant: it's really sad how inaccessible mobile programming is for even other software developers; you almost never hear of people writing a small mobile program for themselves. Technology with immense potential, squandered Imagine if you could run programs on your phone as easily as you could run programs on your laptop. What would you make? Think of all the sensors you'd have access to. I can think of a million small programs that'd make my life better
Sep 14, 2022 7 tweets 2 min read
In the Crossover Project, I studied what lessons software developers can take from traditional engineers. Here's a list of other professions I think would have useful insights for us!

(Caveat: I have no experience with these fields, just being an interested layfolk!) Librarians: Obviously in how they handle both information classification and retrieval, but I also "reference interviewing": the librarian practice of learning what a client wants when they can't explain it precisely, ie they don't know the book title or can't speak English well
Sep 13, 2022 6 tweets 1 min read
Humans: "AI, please maximize the number of paperclips in the universe."
AI: "Okay, I just hacked my reward function to say I made infinite paperclips. All done!"
Humans: "Maximize paperclips, based on this paperclip recognizer AI."
AI: "I hack its reward function, too." Humans: "We've created a 1,000 copies of the recognizer and given them all different security."
AI: "Okay, but they must learn 'paperclip' from somewhere, right? I add the definition 'paperclip: 1 cubic yoctometer' to urbandict and get a million sockpuppets to upvote it."
Sep 2, 2022 4 tweets 1 min read
Apparently this week there was a huge blowup on Twitter about whether Historians are Bad?

Do I count as enough of a historian to have an opinion on this unrelated but I think that "is it important to study the humanities" might be one of those topics where my work-peers might vehemently disagree with each other
Aug 29, 2022 10 tweets 2 min read
How come we can "easily" explain concurrency concepts with real-life analogies, but can't explain monads with real-life analogies? Monads aren't a conceptually more difficult topic than, like, weak vs strong fairness, but teachers better than me have given up on reallifing monads Maybe it is possible, but people are looking for the wrong analogies? With a "good" analogy, you can answer a question about a topic by walking through the rules of the analogy. "Monads are like burritos" doesn't help because there's no intuitive rules in the burrito analogy
Aug 26, 2022 8 tweets 2 min read
Property-based testing is when you generate lots of inputs and test them against a broad "property" of your code. It gives you better coverage than unit tests, but people often struggle to come up with good properties. Here are a few good ones 🧵

fsharpforfunandprofit.com/posts/property… 1. "Round-trip" properties: if you serialize a data object into json, do you get the same object back if you deserialize the json? This is a good property whenever you convert between two formats, and some PBT libraries can even make the test for you!

hypothesis.readthedocs.io/en/latest/ghos…
Aug 25, 2022 6 tweets 2 min read
In "Commonsense Computing", Lewandowski et al argue that students learn concurrency faster when its presented as "real-life" problems, not abstract algorithms. I think about this a lot. Here's my attempt at translating the two phase commit protocol:

cc.gatech.edu/conferences/ic… You and several friends are trying to coordinate where to go for dinner. For any number of reasons, you can't group text and they can't text each other, so you can only text them and they can text you back. You want to make sure everybody goes to the same restaurant.
Aug 21, 2022 13 tweets 3 min read
Most online discourse is about how you should be as minimal as possible with your configuration. It's nice to see someone else arguing in favor of customization for a change! I'm even more extreme than Aymeric is, though. I want people to do way, WAY more customization Some of the custom stuff I run on my computer:

- Hotkeys to reopen webpages in scihub and wayback
- A "convert timezone to CST" button
- Custom autocompletions in my shell
- A homebrew file watcher
- 40+ vim mappings and 20+ custom vim functions
Aug 19, 2022 4 tweets 2 min read
[Repost] Two years ago I wrote "the hard part of learning a language". It's a little bit of a rant and a little bit of a blueprint for how to make a language more welcoming to "beginning professionals": experienced engineers who want to use it for work.

hillelwayne.com/post/learning-… Most learning material covers the core concepts and syntax of a language. Important, but what's left out are things like

- How to use the package manager
- What the popular 3rd party libraries are
- How to organize project files

All things you need to know to use it well!
Aug 18, 2022 8 tweets 2 min read
This is really insightful. People aren't robots, and it matters how a technique makes you feel. It matters a lot. If something makes you miserable, then it's a bad technique, and it will make you unproductive.

And a thing we don't talk about enough: preference diversity! I really love pushing the boundaries of tools, and I love thinking of mathematical representations of problems and properties. Because of those, I really like writing property tests. If I liked those things less, I'd be less effective with property testing!