Pinned toot

Words to live by for those of us building machines:

“We think too much and feel too little. More than machinery, we need humanity; more than cleverness, we need kindness and gentleness. Without these qualities, life will be violent and all will be lost.”

~ Charlie Chaplin

Been working on a side project for a few years, always feels like the release is just around the corner until I run into another show-stopping bug.

Big lesson: if you want to ship fast, you want to go with boring tech. This project is event sourced, Elixir, and my first Phoenix project. I’ve got a few learning curves I’ve been trying to climb. Still worth it though - I’ve enjoyed all of it.

I’m going to see about publishing more thoughts about software here. Microblogging at its best. Hopefully by contributing more content, it will attract more to this platform, and kickstart this virtuous cycle.

Show thread

It seems every few weeks, I get fed up with big social media sites and I muse about how nice mastodon is, and how great it is to have a chronological feed.

I then bemoan that I haven’t been on mastodon in weeks, and that the network effects of other sites are so strong.

What’s it take to kickstart a serious social media community so that I’m more interested in this platform and less in the others?

Words to live by for those of us building machines:

“We think too much and feel too little. More than machinery, we need humanity; more than cleverness, we need kindness and gentleness. Without these qualities, life will be violent and all will be lost.”

~ Charlie Chaplin

Making chocolate mousse pie today for fun. Layered in some semi sweet chocolate on top of the Oreo crust, because why not? I think a recipe calling for eggs would have come out more decadent, and I should have cooled the mousse base more before folding in the whipped cream (hope the emulsion doesn’t break 🤞), but a fun experiment nonetheless.

It works! Column filtering is drafted. Row filters and a bunch of other capabilities are trivial to implement. Hopefully it’s fast enough. That’s the tricky part.

Show thread

Cracked the nut on my Authz implementation today. I think ideally you’d have a DSL for expressing permissions like IAM policies and interpreting those policies, but that couples interpreting to your domain. My approach is domain agnostic but totally flexible. Build complex policies and execute any code in making decisions. Produce partially evaluated results to mix into other sensitive operations like database access.

I’m excited to finish this.

I wonder if there’s any advantage to multi threading NodeJs. Anyone do this regularly for web app workloads? I doubt it, since concurrency works really well out of the box, but I’d love to get something that feels more like Elixir or actors but in typescript.

Family really is the most important thing. But don’t take it from me - loves these pieces from Paul Graham and a follow up from Fred Wilson on the subject:


We revised this to make a single hit to the database instead of two, so it's even faster now.

Also have the general authz solution drafted. Someday it might turn into a library. We'll see!

Show thread

Did you know Wikipedia just launched a social network? No ads, your data is private, news-focused, no shenanigans, donate to keep it free. Let's try something new.

The general solution arrived shortly after this tweet while reflecting in the shower in a moment of inspiration. Although a separate Authz service is in the works, for now we can create a subclass of our repository for handling authed queries, and directly attach a policy to the normal reps. Policy returns IDs a user is allowed to access based on a sql query. Fast and clean!

Show thread

Been feeling like a software engineering alchemist lately, trying to turn lead into gold. Much of the time it’s thinking about the “atoms” that make up our systems. Building blocks like repositories, query builders, authorization, hexagonal architecture, and stuff like that.

Authz has been a tricky concept to distill. It’s cross-cutting so everything needs it to some degree. It’s also domain specific so it has to be customizable in very specific ways.

Hoping to have a general solution soon.

Been thinking about the relationship between faith and certainty lately. Faith is believing in something you can’t directly sense. Certainty is confidence about something in the future.

Faith without certainty is not doubt. Faith, however uncertain, is still faith. Indeed, our faith is most realized when we lack certainty. Faith with certainty could be considered hope. Overconfidence risks pride.

Faith is not certainty. When we feel least certain is when we can choose to have the most faith.

“The heights by great men reached and kept were not attained by sudden flight, but they, while their companions slept, were toiling upward in the night.”

Presumptuous to be sure, but it’s how I convince myself that working on side projects until close to midnight is worth it.

It’s all too easy to build something when you have a stack of materials to work with. It’s all too hard to build the right thing.

So much of life is about building the right thing. That is not a product of merely effort or resources. It requires the unique dent that we as humans can make in the world. It requires our choice applied to making things a bit better.

This piece from Seth Godin is fantastic. Always love to get his thoughts in the morning:

Margins are underrated. They serves as a boundary, marking the difference between things. They give our minds space to think.

When writing software, I tend to try and build too much all at once. Margins and boundaries help reduce the clutter, amplify the signal and dampen the noise.

What margins do you need in your life?

Getting to pick up RabbitMQ for work. Always fun to know how zero-downtime upgrades work under the hood (spoiler alert: Erlang is awesome)

Show more

Server run by the main developers of the project 🐘 It is not focused on any particular niche interest - everyone is welcome as long as you follow our code of conduct!