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.
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?
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.
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.
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!
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. https://wt.social/gi/brent-anderson/friends/tgch
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!
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.
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: https://seths.blog/2019/11/what-are-the-margins-for/
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?
It is proven! I am bja on Keybase: https://keybase.io/bja/sigchain#de500f7928df66c62e049e8720691138c48cda5fb1b10d512f846ba850ff6f780f
Senior Software Engineer (Web/Mobile/Cloud), Tech Consultant, Husband, Father, Latter-day Saint
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!