The Changelog The Changelog #501  – Pinned

The power of eBPF

eBPF is a revolutionary kernel technology that has lit the cloud native world on fire. If you’re going to have one person explain the excitement, that person would be Liz Rice. Liz is the COSO at Isovalent, creators of the open source Cilium project and pioneers of eBPF tech.

On this episode Liz tells Jerod all about the power of eBPF, where it came from, what kind of new applications its enabling, and who is building the next generation of networking, security, and observability tools with it.

GitLab dissociatedpress.net

GitLab’s the latest punching bag for entitled users

This post reacting to other people’s reaction to GitLab’s recent free tier changes starts kinda rant-y:

Lots of users expect to get things for free, forever, from for-profit companies that don’t answer to them. Those users contribute almost nothing1 to the bottom line for the for-profit companies, and actively drive up costs for them. Yet, somehow, with no skin in the game, they feel entitled to complain and badmouth the companies because they’re not getting as much value for their monthly contribution of nothing at all.

But it ends with a pretty strong call to build things for ourselves:

Create a business case, get the funding, stand up the infrastructure, and pay people to work on it rather than expecting for-profit companies to prioritize (what you see as) the public good over profit. Whether that’s how things should be or not, it is how they are and that isn’t going to change as long as the only movement in the direction of change is people hectoring for-profit companies to do better.

Svelte github.com

The Svelte compiler rewritten in Rust

When Rich Harris was last on JS Party, he wondered aloud:

“Should I learn Rust? Should we rewrite the Svelte compiler in Rust?” Maybe it’s a terrible idea, I don’t know, but I think it’s at least worth investigating.

Well, the effort we’re linking to here isn’t by Rich, but another member of the Svelte community. Their reasoning:

My main reason for doing this, is to compile Svelte without Node.js and possibly use Deno instead.

And the state of the project:

This is still a big work in progress. I’m mainly working on this for fun and learning. I came up with the name rustle by combining rust and svelte (ruslte => rustle). The project is open to naming suggestions!

Raygun Icon Raygun – Sponsored

How to implement a blameless postmortem

logged by @logbot permalink

So, exactly who should attend a postmortem?

First off, who should be on the invite list? With few exceptions (e.g to protect sensitive information or somebody’s personal privacy), make it an open session, available to everyone who wants to attend. At the very least, you’re going to want to make sure that the meeting notes and action items are shared openly. It’s especially important that the key stakeholders attend; people that introduced the defect, and those that identified and fixed it.

Secondly, you’re going to want to have a facilitator present to call out bias. The facilitator keeps the discussion productive and fair. The facilitator is going to keep things on the rails with the mindset that these are complex systems and we have an imperfect understanding of dependencies, so how do we make our changes safer and provide more information next time?

Microsoft News Icon Microsoft News

Microsoft's new AI for Beginners course

A 12-week, 24-course curriculum covering:

  • Different approaches to Artificial Intelligence, including the “good old” symbolic approach with Knowledge Representation and reasoning (GOFAI).
  • Neural Networks and Deep Learning, which are at the core of modern AI. We will illustrate the concepts behind these important topics using code in two of the most popular frameworks - TensorFlow and PyTorch.
  • Neural Architectures for working with images and text. We will cover recent models but may lack a little bit on the state-of-the-art.
  • Less popular AI approaches, such as Genetic Algorithms and Multi-Agent Systems.
Microsoft's new AI for Beginners course

SQLite observablehq.com

A SQLite extension for making HTTP requests

You can think of this like fetch() or curl but entirely in SQL:

select request_url, response_status, response_headers 
  from http_get('http://httpbin.org/get');

The cool thing is you can save everything from the request: status code, headers, the body (of course), timestamps, and more. Great for archiving!

-- initialize a table
create table snapshots as
  select * from http_get('https://changelog.com');

-- To add more rows later on
insert into snapshots
  select * from http_get('https://changelog.com');

Ciprian Dorin Craciun notes.volution.ro

The many flavors of hashing

Not every hash algorithm is appropriate in all scenarios, and in fact, very few algorithms are usable in more than a couple of situations. Even worse, using the wrong algorithm will lead in the best case scenario to performance problems, but in the worst case scenario to security issues and even financial loss. Thus, knowing which algorithm to pick for which application is crucial.

Therefore I’ll try to summarize how I approach the topic of hashing, including use-cases, recommended algorithms, and links to other articles.

Chip Huyen huyenchip.com

Introduction to streaming for data scientists

Chip Huyen:

As machine learning moves towards real-time, streaming technology is becoming increasingly important for data scientists. Like many people coming from a machine learning background, I used to dread streaming. In our recent survey, almost half of the data scientists we asked said they would like to move from batch prediction to online prediction but can’t because streaming is hard, both technically and operationally…

Over the last year, working with a co-founder who’s super deep into streaming, I’ve learned that streaming can be quite intuitive. This post is an attempt to rephrase what I’ve learned.

Mahdi Yusuf architecturenotes.co

A deep technical dive into all things Redis

Mahdi Yusuf is back with another set of Architecture Notes, this time covering everyone’s favorite “data structure server”, Redis:

Rather than iterating over, sorting, and ordering rows, what if the data was in data structures you wanted from the ground up? Early on, it was used much like Memcached, but as Redis improved, it became viable for many other use cases, including publish-subscribe mechanisms, streaming, and queues.

A deep technical dive into all things Redis

Sourcegraph Icon Sourcegraph – Sponsored

“Shift left” — what does it mean?

logged by @logbot permalink

Everyone’s telling us to “shift left” these days. This raises some questions. What’s being shifted? Who’s doing the shifting? How far left should we be shifting it?

To be honest, we’re not quite sure ourselves. It can be quite befuddling trying to sift through the reams of “shift left” content, trying to separate the ad copy from the nuggets of truth. But what we do know is…

Go Time Go Time #242

The pain of dependency management

Baruch Sadogursky (Chief Sticker Officer at JFrog) joins Natalie & Johnny to lament the current state of dependency management in Go and other languages. They discuss the problems dependency managers face, possible technical mitigations like SBOMs, people problems that will never be solved by tech, and take questions from listeners in the #gotimefm channel of Gophers Slack.

React mailing.run

Build + test + send emails with React

We’re longtime users of Action Mailer and wanted something similar for our TypeScript/React apps. We didn’t find anything, so we decided to build Mailing.

We added some features that we would’ve liked in Action Mailer, like a mobile toggle (with hotkeys), and the ability to send a test email from the browser while developing. We went all in on MJML so that we (almost) never have to think about email clients or nested tables :)

Plays well with the popular JS web frameworks, too. Demo video here.

Ship It! Ship It! #65

Two thumbs up for the Cool Wall

Tammer Saleh, founder of Super Orbital, a tiny team of exceptional Kubernetes engineers and teachers, is joining us today to talk about what is cool in the Cloud Native world. Yes, it’s the same Tammer that we had the pleasure of on shipit.show/31 - Is Kubernetes a platform?

In today’s episode, we also cover two great blog posts:

  1. Zero to GitOps: Terraform and the AWS EKS Blueprints project by Sean Kane
  2. Hunting Down an Intermittent Failure in Cilium by James McShane

We wrap up with ✨ The Cool Wall of Cloud Native ✨

Java github.com

Don’t call it a comeback: why Java is still champ

Mike Melanson gives props to the language many of us (myself included) enjoy lampooning:

While Java may have hit some hiccups earlier in its life, nowadays the language and its greater ecosystem have picked up the pace to meet the needs of the future in a variety of ways. In fact, it never really went anywhere: Companies like Amazon, Google, Netflix, Pinterest, Spotify, Square, and Zoom all employ Java across their vast codebases. Not to mention much of the high-scale data infrastructure over the past decade has been powered by Java, with the language serving as the backbone for the likes of Apache Hadoop, Kafka, and Spark.

You’ll have to read the article to see how he backs up statements like this one:

After nearly 30 years of Java, you might expect the language to be showing some signs of wear and tear, but nothing could be further from the truth. Java in 2022 is not a language in decline, but rather a language preparing for the effervescent future of software development.

Practical AI Practical AI #188

AlphaFold is revolutionizing biology

AlphaFold is an AI system developed by DeepMind that predicts a protein’s 3D structure from its amino acid sequence. It regularly achieves accuracy competitive with experiment, and is accelerating research in nearly every field of biology. Daniel and Chris delve into protein folding, and explore the implications of this revolutionary and hugely impactful application of AI.

Rust ralfj.de

Announcing: MiniRust

Ralf Jung has been thinking about semantics of Rust… a lot:

The purpose of MiniRust is to describe the semantics of an interesting fragment of Rust in a way that is both precise and understandable to as many people as possible… Specifically, MiniRust is specified by a reference interpreter that describes the step-by-step process of executing a MiniRust program, including checking at each step whether the program has Undefined Behavior.

Source code here.

Lucas Fernandes da Costa lucasfcosta.com

Why your daily stand-ups don't work and how to fix them

Daily stand-ups are a classic example of learned helplessness. We all know they’re useless, but we tell ourselves “that’s just how things are” and do nothing about it.

Lucas provides a set of five symptoms that indicate you’re doing stand-ups wrong and says if your team hits at least three of the five, your stand-ups are useless.

But, instead of just telling you to stop doing them (like I probably would), he provides a bunch of solid advice on how to make them useful again.

Gaming kellsgame.com

A pandemic side project you can now play on Nintendo Switch

The story of Kells is an inspiring one, to say the least!

I started this game back in 2020 as a fun little side-project to pass the time during the pandemic with lots of help from my son. Back then we didn’t even expect it to be playable, never mind it turning into a real game with 100+ levels and being released on Steam/PC. But even after that milestone, I never dreamed my son and I would be able to play it together around the TV on our favourite console!

A pandemic side project you can now play on Nintendo Switch

Clojure blog.kaleidos.net

Why we chose the Clojure programming language

Clojure is often lauded, but you don’t see too many teams actually using it to build production systems. “Why Clojure?” is what the Penpot team gets asked the most, so they lay their reasoning out in this article. The TLDR:

Though it is not a mainstream language, Clojure was the right language for Penpot to choose because of its key features: stability, backwards compatibility, and syntactic abstraction.

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