This week we’re talking with Evan Weaver about Fauna — the database for a new generation of applications. Fauna is a transactional database delivered as a secure and scalable cloud API with native GraphQL. It’s the first implementation of its kind based on the Calvin paper as opposed to Spanner. We cover Evan’s history leading up to Fauna, deep details on the Calvin algorithm, the CAP theorem for databases, what it means for Fauna to be temporal native, applications well suited for Fauna, and what’s to come in the near future.
After seeing TODO or die in Rust here a few days ago, I wanted to have the same feature available in Python. No reason this should only be available in Ruby and Rust. Python deserved better TODOs too!
In this video I kick the tires on Mat Ryer’s xbar, an open source utility that lets you “put anything in your macOS menu bar.” I get it to tell us dad jokes, keep us abreast of Covid case counts, and write a custom plugin that pulls from Plausible Analytics to display changelog.com’s real-time visitor count.
Here are a few ways to use feature flags from this post, or check out the full list.
Rate limit APIs - You can customize how many requests each API route can send based on a purchased tier or contractual commitments. For example, a common use case of operational feature flags is limiting API calls to 100 requests/minute for all customers, but making exceptions for some.
Run a chaos experiment - Chaos engineering is about intentionally injecting failure into systems to see how they react and identify points of weakness. Explore how you can use feature flags to control how failures are presented or identify how to recover from them during your next chaos experiment.
Test in production - No matter how much testing you do in pre-production, nothing is the same as testing in production. Feature flags provide the ease of mind you need to deploy a feature to production knowing you can quickly disable if things go wrong.
Run an experiment - Not sure whether a feature will have the return on investment you’re hoping for? Run an experiment. Experiments let you collect data on how a feature impacts performance or conversions or other metrics important to your business to help guide decisions.
Eugene Yan, in a post titled The first rule of machine learning: start without machine learning:
Applying machine learning effectively is tricky. You need data. You need a robust pipeline to support your data flows. And most of all, you need high-quality labels. As a result, most of the time, my first iteration doesn’t involve machine learning at all.
Eugene is stating the obvious with this post, but hey sometimes you just gotta state it. What’s even more interesting to me is how nicely the format generalizes! Let’s pattern match this sucker:
The first rule of X: start without X
Now, apply the pattern a few times and see if it holds:
- The first rule of Kubernetes: start without Kubernetes
- The first rule of goroutines: start without goroutines
- The first rule of coding: start without coding
Yeah, that abstraction holds pretty true. Surely there will be cases where it falls flat on its face, though. Can you think of any examples?
Datree is a CLI tool that supports Kubernetes admins in their roles, by preventing developers from making errors in Kubernetes configurations that can cause clusters to fail in production. Our CLI tool is open source, enabling it to be supported by the Kubernetes community.
It’s far more effective than manual processes, such as sending an email to a slew of developers, begging them to set various limits, which likely falls on deaf ears because developers are already overwhelmed.
In addition the CIL, Datree provides a web app interface which you can see in action right here.
In this post, I cover in a step by step manner how to do software estimation for project bids where there is limited clarity and a lot of ambiguity. I cover how we can use an uncertainty factor to cover the unknowns, questions/things to ask/consider at each step of the software estimation process, and some practical advice. This process is based on estimates I have done for multiple projects in the last couple of years.
In this episode, Gerhard talks to David and Marques from Equinix Metal about the importance of bare metal for steady workloads. Terraform, Kubernetes and Tinkerbell come up, as does Crossplane - this conversation is a partial follow-up to episode 15.
David Flanagan, a.k.a. Rawkode, needs no introduction. Some of you may remember Marques Johansson from The new changelog.com setup for 2019. Marques was behind the Linode Terraforming that we used at the time, and our infrastructure was simpler because of it!
This is not just a great conversation about bare metal and Kubernetes, there is also a Rawkode Live following up: Live Debugging Changelog’s Production Kubernetes 🙌🏻
This is our second Kaizen episode, where Adam, Jerod & Gerhard talk about changelog.com improvements since episode 10. OK, so Gerhard deleted the DNS API token. Not only did he take the time to understand how that happened, so that he could actually learn from his mistake, but now we have a system in place so that we can share learnings from incidents. By the way, these are publicly available in our #incidents Slack channel.
A great and unexpected thing that happened since we recorded this, is Jerod fixing 99% of all the errors that were happening in prod. The top error was the broken Twitter auth - sorry Matt - which was a result of us upgrading to OTP 24 a few months back. Episode 3 show notes include a YouTube stream which captures it all.
We wrap up this episode by each of us sharing the improvements that we would like to do until our next Kaizen. You heard it from Adam first: Ship It Driven Development
Square APIs make building apps for businesses simple. Start building and submit your application to the Square Unboxed Hackathon for a chance to win one of 7 prizes and up to $17,500!
Plus, you’ll have the chance to partner with Square to monetize your app and distribute it to millions of Square merchants.
Chris McCord gives a deep history on Phoenix LiveView, going all the way back to the state of Ruby on Rails in 2013 up to the present. A 30-minute read! (LiveView-based uploads looks particularly interesting to me, since I’m rewriting how our uploads work at the moment.)
Mitch and Andrew from the 1Password team talk with Amal and Nick about the company’s transition to Electron and web technologies, and how the company utilized its existing web stack to shape the future of its desktop experience.
This is part 1 of a 5-part series on learning Astro, a new-kid-on-the-block static site builder that’s capturing the hearts of web developers due to its Bring Your Own Framework (BYOF) approach and Zero Emitted JS (ZEJS?) by default.
Throughout this series, I’ll walk you, step-by-step, through building an Astro-based blog(codenamed: Astro-Ink). You’ll discover more of Astro, its benefits, and super-interesting constructs and patterns that Astro brings to the table.
Ever wonder how new features get added to the
go command? Or where tools like
gopls come from? Well, there’s an open team that handles just those things.
Just like the programming language itself, many of the tools that Go engineers use everyday are discussed and developed in the open. In this episode we’ll talk about this team, how it started, where it’s going, and how you can get involved.
Craig Kerstiens on the little wins coming in Postgres 14, which is scheduled for the end of September:
Postgres is, and for some time will continue to be, the first database I turn to. As Postgres focuses on the little things, it just deepens my commitment to it. Why look elsewhere when the bond just grows over time? So today I wanted to call some extra attention to those little things, the ones that don’t get the spotlight, but simply make a developer’s life better.
He goes on to highlight the JSON syntax improvements, read-only roles, what’s new in
psql, and more.
Trisha Gee writes (because Someone Is Wrong On The Internet):
The problem is not that we shouldn’t write readable code. Of course we should aim to write readable code, if only for our own poor selves further down the line (there is no one less capable of reading my code the following week than me). The problem is that these two issues are not mutually exclusive. It’s not “write readable code” or “learn to read code”. That’s like saying, “I’m going to drive really economically so I don’t need to put petrol in the car”. No. You’re still going to need to put fuel in the car (if it’s not electric!) at some point no matter how economically you drive.
She writes a lot more than just that (of course) and even gave a talk about it, which is also worth digesting.
I’ve never gone full mouseless (nor do I necessarily recommend it), but there’s extreme productivity wins to be mined by keeping your hands on the home row as much as possible.
Building a development environment with the shell as a keystone offers multiple benefits. You can use tools that fit nicely with each other, you can customize everything depending on your own needs, and the biggest of all, you can control your entire development environment with your keyboard. This can save a lot of cognitive energy as well as deliver a pleasant user experience.
This is an excellent walk-through on Smashing Mag for those ready to level up their terminal game:
Today, I’d like to share with you these tools so that you too can increase your efficiency and your comfort in your daily job. They work well together — shaping what I call my Mouseless Development Environment. More precisely, we’ll discuss:
- Why using the Linux shell can be very powerful when working with plain text (including code);
- Why using the dreaded Arch Linux;
- The advantage of a tiling window manager;
- How to have a great terminal experience with URxvt, tmux, and tmuxp;
- Why Vim can become your best friend.
Dan Moren writing for Six Colors:
Safari Keyword Search is a little tool that allows you to define shortcuts for searching specific sites. For example, you could type “imdb George Clooney” to be taken directly to the IMDb search results for George Clooney, or “w iPhone 13” to go straight to the Wikipedia page for the iPhone 13. You can also define your own shortcuts, so, for example, I’ve defined “sc” as a Google search limited to sixcolors.com, which helps me quickly turn up articles here…
On iOS 15, Mobile Safari supports web extensions. That means this free and awesome tool is now available on the go, where it shortcuts are even more useful.
Nice is a highly customizable and lightweight framework for crafting CLI apps.
Nice respects idiomatic Go code and focuses to be clear, efficient and easy to write and maintain.
You can use it as a full-featured non-opinionated framework or use any nice packages as stand-alone libraries.
I’m a big fan of the similar projects section in the README. Classy!
Will McGugan is a full-stack developer and Python expert who is offering up free reviews for any/all qualifying open source projects.What a great idea/service to the community!
The reviews will focus on API design and general architection of your project with a view to making them a) more maintainable b) future proof and c) user friendly, but will avoid anything that a linter could do for you. Reviews are intended to be constructive and hopefully give advice you can act on, but are in no way a “grade”.
I won’t need to run your code to do a review and reviews aren’t intended to fix bugs.
All reviews will be public and will be published in the repo in a markdown file. An exception would be for any security issues, where I would notify you first.
Not everyone all at once, now. There’s already quite a few requests in the queue.