I've been going through @WhatGotDone and replacing validation functions with parse functions that output explicit types. The process exposed a few places where I forgot to validate untrusted input:
tl;dr - Instead of remembering to validate everywhere, use static typing to convert untrusted input into an explicit *type* that ensures the validation occurred.
When writing code that processes untrusted input, I've recently struggled with the boundary between "parsing" and "validating." This article by @lexi_lambda was tremendously helpful in unblurring the line between the two. https://lexi-lambda.github.io/blog/2019/11/05/parse-don-t-validate/
A look back at May. Sorry, I can't be bothered with a nicer excerpt. ✨️
Day 029 of #100DaysToOffload.
You can now list your Mastodon address in your WhatGotDone profile @joinmastodon #fediverse
Here's what I got done this week:
* Searched desperately for a reliable Raspberry Pi vendor
* Found a schedule coordination tool for TinyPilot
* Hosted @AndrewAskins as special guest speaker at my peer mentorship group to teach about outbound recruiting
Oh look who's come CRAWLING BACK!
The post is well organized, clear, and includes visualizations that complement the text effectively.
Crystallizing your thoughts into concise, cogent writing is mentally taxing and time-consuming, but it creates a huge difference in writing quality. https://tellspin.app/blog/why-interruptions-are-frustrating-to-developers/
When people ask how I'm able to get to the front page of Hacker News so frequently, my unexciting answer is that I spend 10-30 hours writing and editing each post.
@plainice_ tried investing more time into his latest blog post, and it reached the #2 spot on the HN front page.
Shout out to @deliberatecoder's https://hitthefrontpage.com/ course got me to #2 on HN.
He inspired me to put in the extra effort. I probably s…
I'm hiring a part-time Vue developer to join the @tinypilotkvm team.
If you're interested in working on a popular open source Raspberry Pi project or know someone who would be a good match, reach out! http://tinypilotkvm.com/jobs/vue-developer
I'm currently in talks with manufacturers up the chain so that I can order directly rather than strain these downstream vendors. I'll find out if they'll allocate me quota next week, so fingers crossed.
Finally launched a @WhatGotDone feature I've wanted for a while: profile photos!
Profile photos are now live! Give your What Got Done profile some personality by adding a photo.
The nice thing about Google Analytics v4 being so horrendously bad was that it finally gave me the push I needed to start migrating to @plausible
Plausible: open-source, privacy-sensitive, publish excellent articles, bootstrapped, and they build in public.
Google Analytics: closed source, privacy-hostile, painfully slow, and complicated.
The first site I've migrated is the landing page for my blogging course. Give me some clicks so I can see the dashboard do stuff. https://hitthefrontpage.com/
"How I Make $200k/Year By Writing Messages To Strangers"
Written in public, in a way
It's a post I've written before, and it reached #6 on HackerNews
But I adapted it into a completely new post, after listening to feedback
Solo developer. Lover of unit tests. Builder of TinyPilot. ex-Google, ex-Microsoft
Michael Lynch's personal Mastodon instance