Things you should know about databases, start all your commands with a comma, free uptime monitor, and more...

Issue #413 • 2022-07-03

The Changelog
Ship It!
Go Time
JS Party
Practical AI

Mahdi Yusuf architecturenotes.co

Things you should know about databases

Excellent prose and super-useful diagrams make this post from architecture notes a 10/10 🏆

Things you should know about databases

Terminal rhodesmill.org

Start all of your commands with a comma

Brandon Rhodes’s solution to conflicts between his ~/bin scripts and system binaries: the humble comma

I heartily recommend this technique to anyone with their own ~/bin/ directory who wants their command names kept clean, tidy, and completely orthogonal to any commands that the future might bring to your system. The approach has worked for me for something like a decade, so you should find it immensely robust. And, finally, it’s just plain fun.

GitHub github.com

Free uptime monitor and status page powered entirely by GitHub

I logged upptime a couple years ago, but every time it crosses my path I’m so impressed by how stinkin’ clever the setup is that I just had to share it again.

logged by jerodsanto Discuss #github#tooling

Flatfile Icon Flatfile – Sponsored

A turnkey CSV data importer with compliance built-in

Build the CSV importer of your dreams in minutes - no more wasting dev cycles. Start importing data with Flatfile’s beautiful UI component and import messy spreadsheets in less than 60 seconds.

Flatfile’s proprietary Data Hooks® and Smart Fields™ make it easy to create templates so data gets to your system exactly how it needs to look.

HIPAA, GDPR, SOC II Type II compliance out of the box.

View the platform and get started at flatfile.com

logged by @logbot

Data visualization blog.regehr.org

Explaining code using ASCII art

A collection of ASCII data structures, state machines, logical structures, and more.

People tend to be visual: we use pictures to understand problems. Mainstream programming languages, on the other hand, operate in an almost completely different kind of abstract space, leaving a big gap between programs and pictures. This piece is about pictures drawn using a text character set and then embedded in source code.

Career posthog.com

Really important job interview questions engineers should ask (but don't)

James Hawkins, after being on a team that’s interviewed over 725 people:

It’s normal for candidates not to ask harder questions about our company, so they usually miss out on a chance to (i) de-risk our company’s performance and (ii) to increase the chances they’ll like working here.

Does the company have product-market fit? How much runway does the company have? Does their spending look within reason? What’s the culture like? And more tough questions that you really should be asking before accepting that offer.

PostgreSQL twilio.com

SQLite or PostgreSQL? It's complicated!

Miguel Grinberg built a SQLite-backed web app for the blogging team at Twilio to track their effectiveness that started to respond slugishly when it grew much bigger than he expected (6.5 million individual daily traffic records, and with a user base that grew to over 200 employees).

He thought this might be a good time to switch to Postgres, but he wasn’t sure if the wins he expected would be realized:

Having publicly professed my dislike of performance benchmarks, I resisted the urge to look up any comparisons online, and instead embarked on a series of experiments to accurately measure the performance of these two databases for the specific use cases of this application.

In this in-depth article on Twilio’s blog (no doubt being tracked by Miguel’s web app as we speak) he goes into the details of his efforts with lots of interesting findings along the way (even a plot twist!). I’ll leave you with this statement from the end:

If you are going to take one thing away from this article, I hope it is that the only benchmarks that are valuable are those that run on your own platform, with your own stack, with your own data, and with your own software. And even then, you may need to add custom optimizations to get the best performance.

DevTernity Icon DevTernity – Sponsored

Turning developers into architects and engineering leaders 💪

DevTernity is the top international software development conference with an emphasis on coding, architecture, and tech leadership skills.

The lineup is truly stellar and features many legends of software development like Mary Poppendieck, Kent Beck, Scott Hanselman, Venkat Subramaniam, Kevlin Henney, Allen Holub, Sandro Mancuso, and others.

The conference takes place online, so you can enjoy it from your couch. We talked to organizers and got the 10% discount code for you: AWSM_CHANGELOG

logged by @logbot

Rust prql-lang.org

PRQL is a modern language for transforming data

The P in PRQL (pronounced “Prequel”) stands for Pipelined, which I’m convinced is a great way of writing and reasoning about queries:

A PRQL query is a linear pipeline of transformations

Each line of the query is a transformation of the previous line’s result. This makes it easy to read, and simple to write.

It compiles to SQL, which means it’s compatible with most databases already and there are currently bindings for Python, JS & Rust, which is the compiler itself.

Try it out in their web-based playground. (Thanks, Wasm!)

logged by jerodsanto Discuss #rust#databases#tooling

macOS github.com

VirtualBuddy lets you virtualize macOS 12 and later on Apple Silicon

VirtualBuddy can virtualize macOS 12 and later on Apple Silicon, with the goal of offering features that are useful to developers who need to test their apps on multiple versions of macOS, especially betas.

logged by jerodsanto Discuss #macos

Django brntn.me

Six things I do every time I start a Django project

Brenton Cleeland starts a lot of projects. Django is his go-to framework, so he’s settled on these common steps he performs right after django-admin startproject

  1. Move the SECRET_KEY into an environment variable
  2. Change the database configuration to DATABASE_URL
  3. Set up a custom user model
  4. Create your Django app
  5. Make a base.html
  6. Gibo and Git Init

Chronosphere Icon Chronosphere – Sponsored

Observability platform for scaling cloud-native

Chronosphere is the observability platform for cloud-native teams operating at scale.

When it comes to observability, teams need a reliable, scalable, and efficient solution so they can know about issues well before their customers do.

Companies born in the cloud-native era often start with Prometheus for monitoring, which is obviously an amazing piece of software, but they quickly push it to its limits and often outgrow it. They run into issues with siloed data, missing long-term storage, and wasted engineering time firefighting the monitoring system vs delivering their application with confidence.

Learn more and get a demo at chronosphere.io.

logged by @logbot

Terminal github.com

Viddy – a modern watch command with time machine mode

Rewind like video, see output in a pager, Vim-like keymaps, and more. “Viddy well, gopher. Viddy well.”

Viddy – a modern watch command with time machine mode

logged by jerodsanto Discuss #terminal#tooling#go

Vim vim.org

Vim's big 9.0 release brings with it a new scripting language

After many years of gradual improvement Vim now takes a big step with a major release. Besides many small additions the spotlight is on a new incarnation of the Vim script language: Vim9 script.

One of Neovim’s major draws is that you can avoid Vim script altogether and use Lua instead. It looks like the Vim team is addressing the two major complaints folks have with Vim script: performance and its obscure syntax:

The main goal of Vim9 script is to drastically improve performance. This is accomplished by compiling commands into instructions that can be efficiently executed. An increase in execution speed of 10 to 100 times can be expected.

A secondary goal is to avoid Vim-specific constructs and get closer to commonly used programming languages, such as JavaScript, TypeScript and Java.

Legacy scripts will continue to work, of course. The Vim team has no plans to drop legacy support in the foreseeable future. Learn more about Vim9 script here or with :help vim9 inside Vim itself.

logged by jerodsanto Discuss #vim

Machine Learning github.com

A single-stage object detection framework for industrial applications

I love the name “YOLO” for this because it’s single-stage, but I have to laugh that it’s now on its sixth version. You only live once… six times? 😆

logged by jerodsanto Discuss #machinelearning#ai#python

Raygun Icon Raygun – Sponsored

Monitor and improve Core Web Vitals

Get a detailed overview of how your website performs against Google’s modern user-centric metrics, alongside all the diagnostics you need to take action.

For $8 per user per month you get Raygun’s first-class support for CWVs plus a ton of tooling to improve the performance and user experience of your application.

logged by @logbot

Machine Learning github.com

A minimal implementation of DALL·E Mini

This is a minimal implementation of DALL·E Mini. It has been stripped to the bare essentials necessary for doing inference, and converted to PyTorch. The only third party dependencies are torch for the torch model and flax for the flax model.

How much mini-er can it get from here? 🤔

logged by jerodsanto Discuss #machinelearning#python