I was so annoyed at why I couldn't instantly sort a slice in Go. Now that I understand interfaces better-- HOLY SHIT interfaces are RAD! 🌟

What does "hiring on an equity basis" mean ?

[C++] Any good references for C++ design patterns ?

The problems inherent in dynamic linking became apparent to the industry years ago, but instead of doing the logical thing and moving back to static linking, they invented Docker

"How do I get started contributing to open source? What are some good entry-level tasks to work on?"

These are questions I am often asked, so here's the answer for everyone to read:

Scratch your own itches. Find bugs that are causing you problems, conspicuously missing features you would find useful, and implement them - in literally any free/open-source software you're using. Don't worry about not being familiar with the codebase or programming language or whatever, just solve one problem at a time.

Try this: next time you go to report a bug, report it, and immediately start working on a patch which fixes the problem.

Scratching your own itches is the best source of motivation and maximizes your productivity.

Often that means not contributing to my projects at all, if you're asking how to get started with a specific project. Maybe you like it because it's flawless 😉 (hah!), in which case it wouldn't need your help anyway. Go fix something which is bugging you in another project. Spread the contributor wealth around and eventually it'll come back to my projects, too.

A lot of rambling about abusive tech and people who code it 

Years ago now I worked a gig that was doing some crap with ISP-grade software that was not great for privacy/safety.

When I realized what was going on I started making noise. I began filing bug reports against privacy/safety/freedom breaches I identified, they got ignored. I finally went up my management chain going "We can't sell this, it's abusive!"

I dunno if it was my cage-rattling or someone else's that got to the CEO, but he eventually announced to the company something to the tune of "We're not alone in this emerging market. If we don't do this, others will anyway so really we're not doing anything that won't happen anyway"

And that stuck with me, because at the time I didn't have a coherent argument against it. Now? My stance on it is pretty solid-- we need far more ethics training than we get now, and we need a union or unions to back up refusal to do this crap on moral and ethical grounds.

So many people in tech feel helpless because they can just ultimately be replaced. It may HURT to replace some people, but the entire industry is kind of a meat grinder and everyone is just a cog in the machine. If you refuse to turn, the org cuts you and spends 3 days to 3 months training a fresh grad to replace you, depending on role.

People need the training to identify the misuses of what they build, the conviction to refuse to build abusive software, and the backing from their peers when they put their foot down. We don't have any of that right now.

Environmental web design & use tips:

* Wherever possible, choose text. Text is by far the most efficient (and as I like to illustrate, universal) medium.
* Make sure everything on your site has a good reason to be there. Avoid frameworks to further this.
* Compress your images & video.
* Especially avoid JavaScript, it adds significantly more processing effort to rendering.
* If you love something, download it. Buy it. Avoid advertising.
* Make sure HTML & CSS downloads fast.


"When people long for the days of the early web, the glorious idiosyncracies of personal sites and forums, they are really longing for a time and a space where people were free to communicate their own values. Now that space is owned and rented to the highest bidder. A site like LinkedIn wraps you up into a tiny, uniform package..., sets you in an enormous data warehouse next to millions of other tiny people just like you, and sells the lot of you."


Usually I'm enamored by the potential of computing, technology and the web.
But some days it seems like just a lot of text file formats that don't work with eachother.

Stupid life advice from an unqualified source 

Try this exercise: take a sheet of paper (portrait orientation) and draw a line from top to bottom. Mark the top as "birth" and the bottom as "death". Look up your life expectancy and fill in your age at the bottom.

Then measure out tick marks along the length of the line, large marks for decades and small marks for years. Fill in a circle at where you are today. Write in annotations of milestones you've reached so far, along the side of the line before the present.

Then, annotate the other side. Do you know what you want to put there? And where it should go? Do you have a plan to make these predictions a reality?

Also: will your health habits allow you reach your life expectancy? Or maybe beyond it? Are you okay with the answer?

I've never actually conducted this exercise formally but I was thinking about how I frame my life planning and this is more or less how it goes in my head.

Know that if something happens to us at sea, that we have left this world without regrets, we had had the opportunity of being surrounded with amazing and kind people, that we've had the incredible chance of seeing more than we had ever hoped, and that we wish that our death will not discourage anyone to take on such an adventure for it's not about the length of life but how it is spent.

Show thread

Principles of UI, A Thread:
1. natural mapping
2. visibility of system state
3. discoverability
4. constraints and affordances
5. habits and spatial memory
6. locus of attention
7. no modes
8. fast feedback
9. do not cause harm to a user's data or through inaction allow user data to come to harm
10. prefer undo to confirmation boxes. For actions that can't be undone, force a "cooling off" period of at least 30 seconds.
11. measure using Fitt's, Hick's, GOMS, etc. but always test with real users.

Show more

Fosstodon is an English speaking Mastodon instance that is open to anyone who is interested in technology; particularly free & open source software.