The Changelog The Changelog #461  – Pinned

Fauna is rethinking the database

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.


The first rule of X: start without X

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:

  1. The first rule of Kubernetes: start without Kubernetes
  2. The first rule of goroutines: start without goroutines
  3. 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 to ensure K8s manifests and Helm charts follow best practices

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.

Shekhar Gulati

My software estimation process

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.

Ship It! Ship It! #20

Kaizen! Five incidents later

This is our second Kaizen episode, where Adam, Jerod & Gerhard talk about 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

Aftab Alam

Get up & running with Astro

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.

Go Time Go Time #198

The little known team that keeps Go going

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.

LaunchDarkly Icon LaunchDarkly – Sponsored

An intro to trunk-based development

logged by @logbot permalink

Trunk-based development is a method of version control branch management that seeks to remove complexity and user error by eliminating long-lived software feature branches in favor of developers merging to a single branch called the “trunk.” Choosing an effective Git branching strategy is an under appreciated requirement for software managers. Ineffective branching strategies create friction within and between software teams. This friction slows down the speed of development and leads to human error. When people make mistakes reconciling code between different git branches, bugs surface as a result.

This post covers the benefits of trunk-based development (tbd) and strategies for implementing tbd with feature flags.

Get a demo of how LaunchDarkly can help your team ship

Craig Kerstiens

Postgres 14: it's the little things

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

Reading code is a skill

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.

Smashing Magazine Icon Smashing Magazine

How to build your own mouseless development environment

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.

Six Colors Icon Six Colors

Safari Keyword Search hits 2.0, comes to iOS

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, 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.


A highly customizable and lightweight framework for crafting Go CLIs

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!

A highly customizable and lightweight framework for crafting Go CLIs

Will McGugan

Free code reviews for open source Python projects

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.

Practical AI Practical AI #150

From notebooks to Netflix scale with MetaFlow

As you start developing an AI/ML based solution, you quickly figure out that you need to run workflows. Not only that, you might need to run those workflows across various kinds of infrastructure (including GPUs) at scale. Ville Tuulos developed MetaFlow while working at Netflix to help data scientists scale their work. In this episode, Ville tells us a bit more about MetaFlow, his new book on data science infrastructure, and his approach to helping scale ML/AI work.


Introducing ClickHouse, Inc.

Alexey Milovidov, announcing the formation of a (VC funded) corporation around ClickHouse, an open source analytics DBMS:

Today I’m happy to announce ClickHouse Inc., the new home of ClickHouse. The development team has moved from Yandex and joined ClickHouse Inc. to continue building the fastest (and the greatest) analytical database management system. The company has received nearly $50M in Series A funding led by Index Ventures and Benchmark with participation by Yandex N.V. and others. I created ClickHouse, Inc. with two co-founders, Yury Izrailevsky and Aaron Katz. I will continue to lead the development of ClickHouse as Chief Technology Officer (CTO), Yury will run product and engineering, and Aaron will be CEO.

ClickHouse wasn’t always a business. It also wasn’t always open source.

Making ClickHouse open source was also not an easy decision, but now I see: doing open source is hard, but it is a big win. While it takes a tremendous effort and responsibility to maintain a popular open-source product, for us, the benefits outweigh all the costs. Since we published ClickHouse, it has been deployed in production in thousands of companies across the globe for a wide range of use cases, from agriculture to self-driving cars.


Seed – build your frontend in Rust

Seed is a Rust framework that uses an Elm-like architecture to help you build fast and reliable web apps that run on WebAssembly. Here’s why you might want to use it:

Seed allows you to develop the front-end with all the benefits of Rust, meaning speed, safety, and too many more things to count.

The Seed templating system uses a macro syntax that makes Rustaceans feel right at home. This means linting, formatting, and commenting will work, and it’s all in Rust. This is opposed to a JSX-like syntax that relies on IDE extensions to improve the developer experience.

Seed has a batteries-included approach. This means less time writing boilerplate and less time installing dependencies.

And a few reasons why you might not:

  • It’s newer. It’s harder to find support outside of Discord.
  • WebAssembly is newer with less support. Browser compatibility is at 92.9%.
  • Pre-built components are rare. You will likely have to roll your own components such as date pickers.
  • No server-side rendering yet
  • You may prefer other Rust frameworks like MoonZoon or Yew.


OpenSSL 3.0: API and license changes

Following thanks to all contributors, the blog notes:

Most applications that worked with OpenSSL 1.1.1 will still work unchanged and will simply need to be recompiled (although you may see numerous compilation warnings about using deprecated APIs). Some applications may need to make changes to compile and work correctly, and many applications will need to be changed to avoid the deprecations warnings.

And points out a couple of new features:

OpenSSL 3.0 introduces a number of new concepts that application developers and users of OpenSSL should be aware of. An overview of the key concepts in libcrypto is available in the libcrypto manual page.

A key feature of OpenSSL 3.0 is the new FIPS module. Our lab is testing the module and pulling together the paperwork for our FIPS 140-2 validation now. We expect that to be submitted later this month. The final certificate is not expected to be issued until next year.

And finally, LWN notes on the license change:

OpenSSL has also been relicensed to Apache 2.0, which should end the era of “special exceptions” needed to use OpenSSL in GPL-licensed applications.

Podcasts from Changelog

Weekly shows about software development, developer culture, open source, building startups, artificial intelligence, brain science, and the people involved.

0:00 / 0:00