-
· design
Flexoki 2.0, a color scheme by Obsidian founder Steph Ango:
The problem is that using opacity to lighten a color makes it appear washed out.
Flexoki emulates the feeling of pigment on paper by exponentially increasing intensity as colors get lighter or darker. This makes the colors feel vibrant and warm, like watercolor.
-
I’ve always wanted to find great case studies from people building things. Not high level blogposts dictating “this is how you should do X”, but “here’s the 20 things we tried and the data we had at the time, and what we learned.” I started a side project at some point to aggregate them, but I literally couldn’t find many examples online.
Came across two of the best examples I’ve ever seen today:
- The Commoncog Case Library, specifically Y Combinator and Power in Silicon Valley about a YC company battling against their former employer
- Dan McKinley worked at Etsy and Stripe, and his keynotes are full of specific examples and projects, along with their outcomes.
- Egoless Engineering covers engineering team culture and structure
- Choose Boring Technology discusses how to choose languages and frameworks, and how that factors into product development
- Data Driven Products Now! is a framework for deciding what to work on that’s not simply A/B testing
-
One of the most enjoyable and educational shows I’ve watched in a while. Hilarious characters who demonstrate how difficult and thankless farming can be.
Some things I’ve learned:
- How a cultivator works
- How exact tractor rows need to be
- How heavy rain or weeks of drought affect the farming schedule
- The many regulations farmers face — from registering each field with its crops, to sanitrary requirements, to land use regs
- How necessary government subsidies for farming are, especially for less hearty crops
After a year of dawn to dusk tractoring, Season 1 ends with an unbelievably slim profit margin. Very worth a watch.
-
The WordPress and open source communities have lots of thoughts on Matt Mullenweg’s actions after his talk at WordCamp. Much of this commentary has overlooked what I think is a core concern at the heart of Matt’s argument: the growing role and influence of private equity in tech, particularly in open source.
PE firms raise money from institutional investors and high net worth individuals to buy companies, restructure them, and sell them later for a profit. They’re all about maximizing returns ASAP, usually in a 3-7 year window. That’s a shorter timeframe than the typical founder or public company shareholder, and far shorter than Matt’s time horizon:
I would like future generations to grow up with a web that is more open, more free, gives more liberty, and so open source is really my life’s work, even above WordPress and anything else. I hope to work on it the rest of my life.
When a PE firm acquires a tech company, a few things happen. The new owners focus on aggressive cost-cutting and “streamlining” operations to boost short-term profitability. This is extremely destructive, leading to mass layoffs, reduced benefits, and wholesale outsourcing. At the same time, PE firms often load up acquired companies with debt, extracting cash while leaving the businesses more financially unstable. With a myopic focus on an exit, long-term investments in innovation, customer service, and employee development fall by the wayside.
The result? Private equity backed companies are 10 times more likely to go bankrupt than public companies.
The basic business model of private equity firms often leads to disasters like that at ManorCare for three fundamental reasons. First, private equity firms typically buy businesses only for the short term. Second, they often load up the companies they buy with debt and extract onerous fees. And third, they insulate themselves from the consequences, both legal and financial, of their actions. This leads to a practice of extraction, rather than investment, of destruction, rather than creation. While not every company owned by private equity firms goes bankrupt, the chance of disaster meaningfully increases under their ownership.
— Plunder by Brendan BallouOpen source communities are particularly vulnerable to this model. They’re delicate ecosystems of volunteer contributors, transparent governance, and values-aligned sponsorships. Applying the PE playbook can easily destabilize that entire balance.
Take, for example, Vista Equity Partners’ $1 billion acquisition of Acquia in 2019. Acquia is the main commercial backer of Drupal, another popular open source CMS. In the years since the acquisition, the Drupal community has visibly struggled. Acquia appears to be contributing less code and providing less financial support to the ecosystem.
Just a few days ago, Acquia quietly laid off almost a third of its staff.
With fewer resources, core development and maintenance have slowed. This coincides with a sharp decline in Drupal’s market share compared to competitors like WordPress:
The Drupal story demonstrates how applying PE tactics to open source projects can undermine their health and sustainability. By nature, these communities aren’t a fit for rapid extraction of outsized returns. Their vitality depends on reinvestment, transparency, and long-term stability — the opposite of the PE model.
Toys “R” Us. Simon & Schuster. Even America’s ports. Not everyone can push back against private equity, but I believe we should support companies like WordPress that have a long history of admirable values and prescient leadership. WordPress powers more than 40% of the web — its community’s health is too important to ignore.
-
· projects
I recently ordered a Comma.ai kit to add semi-autonomous driving capabilities to my 2018 Mazda CX-5. It took some trial and error (and help from the Comma.ai community on Discord) to get it working properly, but I highly recommend it as I’ll explain later.
I’m sharing the steps I took in case it’s helpful for others looking to install the Comma 3X on the same or a similar vehicle. It’s a pretty intuitive process, all things considered, but there weren’t a lot of guides with photos on how to do the actual installation process.
A false start
When I initially received the Comma 3X kit and installed it (follow the installation video and Jafar’s post, it’s pretty simple) I thought I’d be up and running quickly. However, the device seemed stuck in dashcam mode and didn’t move the steering wheel at all. After digging into the Discord server and reading more, it appeared to be an issue with fingerprinting my specific Mazda model.
I reset the device and installed a special fork I found on the Discord server which had more Mazda car fingerprints to help identify how to interface with the car. This worked on a test drive, but the car would beep aggressively every 5 seconds if you weren’t holding the wheel very deliberately, making highway driving difficult. Even without Comma installed the car would complain when you had cruise control enabled and weren’t holding the steering wheel in the right place, but adding the Comma made it complain much more.
The Discord community recommends trying a wheel cover with weights underneath, which worked somewhat but was quite bulky. Ultimately, I decided to pursue the ultimate solution I had been trying to avoid: swapping out the EPS motor.
Swapping the EPS motor
The EPS motor on pre-2022 Mazdas is designed for very lightweight lane departure vibrations. I always thought it felt a bit underpowered, and you could feel the car lightly bouncing between the lane markers. On any serious turn, the car would just continue to depart the lane.
Newer Mazda EPS motors can apply more torque to the wheel, allowing for real LKAS (lane keep assistance) that can turn the car even through 10+ degree curves. I was initially hesitant to replace the EPS motor because I wasn’t sure exactly where it was located. But after reading the pinned messages on Discord and asking a few questions, the community reassured me it was pretty straightforward.
The process ended up being easier than I anticipated, although there were a few tricky parts. Here’s a detailed breakdown of how it works:
- Order the new EPS motor from eBay — the LKQ store has several options, but you have to make sure the vehicle is model year 2022 or higher. As an example, here’s a search on LKQ’s eBay store, or just look for “2023 Mazda CX-5 Power Steering Pump OEM”. You’ll also need a 10mm and 12mm wrench for later.
- You’ll receive a hunk of metal similar to this. The only part needed is the circular gearbox-looking piece on the left of this picture.
- Remove the two bolts pictured here, which will detach the shaft from the EPS motor. Use a 12mm wrench for these and be careful not to lose the small plastic gear in the center of the motor once you remove it.
- Disconnect your car battery using a 10mm wrench to prevent the airbags from firing.
- While not required, I recommend removing the cover to the left of the steering wheel. It pops out easily and improves access to the EPS motor.
- Now that you’re in, you’ll see the same motor mounted, as pictured here:
- Here’s the trickiest part: you need to remove the same two bolts on the old gearbox, but one bolt is close to a piece of metal, making it hard to fit the wrench in. It’s doable but will take a few attempts. Both bolts are on quite tight, so don’t be afraid to use some force to loosen them.
- Once the bolts are out, unhook the 3 cables at the top and detach the old motor.
One tip: the small gear kept falling out or misaligning as I tried to install the new motor. Rather than fumbling with alignment, I positioned the gear on the other (already mounted) side so it was already lined up correctly. You’ll see what I mean.
- Screw the bolts back in, reconnect your battery, and you’re all set! You’ll want to install this modified fork on the Comma 3X, which tells older Mazdas to use the new EPS motor.
Review
After installing the new EPS motor, I’ve been really impressed with its performance. I wouldn’t even bother installing Comma.ai on an older Mazda without it — the experience is just too annoying otherwise.
The upgraded EPS motor enables stop-and-go adaptive cruise control, which by itself is a fantastic improvement for city traffic. It also provides LKAS that keeps the car smoothly centered in the lane without any warnings to keep your hands on the wheel. These enhancements make long drives much more pleasant.
With the new motor, I’ve completed a few hundred-mile road trips with only three or four interventions to assist with turning, and just a handful of additional interventions in busy city traffic. It really is quite capable.
Since I had Comma installed before the EPS motor upgrade, I spent some time observing the Openpilot lane markings as we drove. There was never a point where the green outline indicating the car’s projected path was misdirected or where the detected lane markers deviated from reality. I also drove at night and in the rain, with no issues whatsoever. This gave me a lot of confidence in the system’s capabilities.
Special thanks to the Comma team for building an incredible hardware product, and to all the maintainers of Openpilot and volunteers in the #Mazda Discord channel.
-
· photos
-
· photos
-
· photos
-
I wrote this post a week ago and have been thinking hard about whether I believe the premise, which is that within a few years, the norm for source code will be that it is written and modified by LLMs via prompting. For all practical purposes, all source code will be written this way, with exceptions becoming ever rarer.
Not only do I believe it, I could even see it happening in 12-18 months at the current rate of LLM progress. I think the change will have a ton of fallout, only some of it foreseeable. And one casualty might well be junior devs, in the sense that they become less marketable and it could cause various kinds of crunches across the industry.
[…]
But change is coming. There will be social and cultural upheaval in tech, just as is happening in the legal profession. It’s already begun. The models are getting smarter and smarter with each passing month, which means they are going to be eating more and more jobs until they eat the world.
All I can tell you is this: Get there early. One time Googlers were complaining at TGIF that the parking garage was filling up by midmorning, and Larry Page jokingly suggested, “Maybe you should come earlier.” At that moment he reeked of billionaire. But if you really wanted to park in the garage, you took his advice.
Get good, fast. That’s what you need to do. Get ahead of the slackers while our industry turns upside down, and you might be the one to survive.
[…]
Don’t over-index on programming language arcana. That’s becoming a detail that machines handle for us. Focus on algorithms, data structures, software design and engineering, discrete math, operating systems, compilers, databases, networks. Focus on studying real systems. Find walkthroughs online and study them. And of course ML. Gobble up everything you can.
Understand how things are built. Make sure you know how every system in a computer works. Make sure you have an understanding of how every cloud service you depend on does its job. Read the docs, and then read the design docs. You won’t have to write any of it by hand. But you need to develop a senior programmer’s sensibilities around how these things fit together and interact, for good or ill.
Learn how to use frontier models to check other LLM models’ work. Sign up for multiple services (e.g. Claude and ChatGPT) and send your important prompts to at least two big models. Have them evaluate each other’s responses and study it all carefully. LLMs are better at reviewing and critiquing their own content than they are at producing it. So use a second LLM as your senior partner.
Another one of the key things that differentiates a senior developer from a junior one, in many contexts, is Operations experience. Read the O’Reilly/Google SRE book. Read it cover to cover. And find a good GitOps book, too; there seem to be quite a few to choose from. There may be no compression algorithm for experience, but fortunately a lot of that experience has been condensed and distilled. Go drink it up.
[…]
It doesn’t matter what approach you take, as long as you start making heavy use of chat in programming. Because that, friendo, is how it works now. Like it or not. And you need to survive it. Good luck to you.