---
title: "GitHub gets dark mode"
publication: "StatusCode Weekly"
issue: 296
published_at: "2020-12-09"
canonical_url: "https://weekly.statuscode.com/issues/296"
---

Plus Kubernetes deprecates Docker, how to build good CLI tools, and Linus's linked list argument. |        

#296 — December 9, 2020 

[Web Version](https://weekly.statuscode.com/issues/296)   StatusCode Weekly What's happening in software development, ops, platforms and tools.  

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/cyaecii7gow6289ts5bh.jpg)](https://mtlynch.io/code-review-love/)  

[How to Make Your Code Reviewer 'Fall in Love with You'](https://mtlynch.io/code-review-love/) — The title is a little sappy _but_ there’s a lot of useful insight, best practices, and fun illustrations in here. Well worth a look and it's high level enough to be accessible to all developers. One reader called it _‘a perfect document on code reviews.’_ 

Michael Lynch   

[The Latest GitHub News from GitHub Universe](https://github.blog/2020-12-08-new-from-universe-2020-dark-mode-github-sponsors-for-companies-and-more/) — GitHub's developer event, [GitHub Universe](https://githubuniverse.com/) has been taking place virtually this week and the first day saw some interesting announcements including [a dark mode theme](https://github.com/settings/appearance) and the ability for _companies_ to sponsor developers with _GitHub Sponsors_ (I think this could become a huge deal). All repos can enable [a discussions feature](https://github.com/githubevents/universe2020/discussions) now, too. You can [watch the opening keynote here.](https://githubuniverse.com/opening-keynote/) 

GitHub   [![\](https://copm.s3.amazonaws.com/0f4741bf.png)](https://www.ardanlabs.com/training/?utm_source=Cooperpress%20PrimaryV4) 

[Remote Instructor-Led Go, Docker, Kubernetes, Terraform, & Python Training](https://www.ardanlabs.com/training/?utm_source=Cooperpress%20PrimaryV4) — We offer live-streaming remote training sessions for individual engineers and companies that want to augment their knowledge in Go, Docker, Kubernetes, Terraform, and Python. We’ve trained over 10,000 engineers via our carefully crafted classes. 

Ardan Labs sponsor   

[Don't Panic: Kubernetes and Docker](https://kubernetes.io/blog/2020/12/02/dont-panic-kubernetes-and-docker/) — What are we panicking about? Oh, Kubernetes is deprecating Docker as a container runtime in favor of [CRI-based](https://kubernetes.io/blog/2016/12/container-runtime-interface-cri-in-kubernetes/) approaches. It’s confusing, though, so the Kubernetes team have written this post to clear up what’s happening and how it will affect you. BTW, [Kubernetes 1.20](https://kubernetes.io/blog/2020/12/08/kubernetes-1-20-release-announcement/) has been released. 

Kubernetes   

[Command Line Interface Development Guidelines](https://clig.dev/) — A fantastically presented ‘open source guide’ to writing better command line programs in the time tested UNIX-y way. Much to enjoy here. 

Prasad, Firshman, Tashian, and Parish  

---   

- Cloudflare, Fastly and Apple have been working on [a new, proposed DNS standard](https://blog.cloudflare.com/oblivious-dns/) that separates IP addresses from queries for increased privacy.
- Excel is gaining a new [function called `LAMBDA`](https://techcommunity.microsoft.com/t5/excel-blog/announcing-lambda-turn-excel-formulas-into-custom-functions/ba-p/1925546) which lets you turn formulas into custom functions.
- JavaScript debuted 25 years ago, and [here's what people in tech had to say about it](https://superhighway.dev/javascript-25-years-1995) at the time.
- If you're on team Emacs, the [talks from EmacsConf 2020](https://emacsconf.org/2020/talks/) are available.
- Putting CSS into GitHub README files is [quite the trip](https://github.com/sindresorhus/css-in-readme-like-wat) — it leans on SVG.  

---  

[Cloudflare Releases Free Web Analytics for All](https://blog.cloudflare.com/privacy-first-web-analytics/) — Quite a bold move from Cloudflare here especially as you don’t even need to be using Cloudflare to use it - it’s an HTML snippet for any site. [Plausible](https://plausible.io/) and [Fathom](https://usefathom.com/) are other players in the privacy friendly Web analytics space. 

Jon Levine (Cloudflare)   

📅 [At re:Invent Today, Dec. 9, 1pm PT—Nerd Talk with Lew Cirne](https://virtual.awsevents.com/sponsor/186983463/New_Relic) 

New Relic sponsor   

📘 Tutorials, Opinions and Stories 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/fbxbnjga8n0otd1xp7ej.jpg)](https://github.com/mkirchner/linked-list-good-taste)  

[Linked Lists, Pointer Tricks and Good Taste](https://github.com/mkirchner/linked-list-good-taste) — Linus Torvalds’ good taste argument for linked lists, explained. 

Marc Kirchner   

[Measuring Web Page Performance with Puppeteer or Playwright](https://theheadless.dev/posts/basics-performance/) — Puppeteer and Playwright are useful for remote controlling headless browsers, and you can use some new Web performance APIs with them to do remote or even automated performance measurement of Web pages. 

Giovanni Rago   

[Progressively Deliver New Image Formats with CSS and Cloudflare Workers](https://jross.me/progressively-delivering-new-image-formats-with-css-and-cloudflare-workers/) — When your browser makes a request, it can tell the server what types of responses it accepts, including what image formats it supports. Couple this information with a Cloudflare Worker.. and you can dynamically return more modern formats like AVIF or WebP to users reliably. 

James Ross   

[Puppeteer vs Selenium vs Playwright, A Browser Automation Speed Comparison](https://blog.checklyhq.com/puppeteer-vs-selenium-vs-playwright-speed-comparison/) — Spoiler: There are differences in microbenchmarks but in real world scenarios it’s basically a wash. Use whichever suits your use case. 

Giovanni Rago (Checkly)   

[Scaling Datastores at Slack with Vitess](https://slack.engineering/scaling-datastores-at-slack-with-vitess/) — So just what technology has Salesforce acquired in its $28bn purchase of Slack? Well, Slack was always a MySQL shop but in order to handle their growing scale they brought in [Vitess](https://vitess.io/) to add horizontal scaling to MySQL. Here’s the full story of how this process occurred. 

Slack Engineering   

[Porting a 100% Local App to the Web](https://actualbudget.com/blog/porting-local-app-web) — A possibly unorthodox approach (a SQLite3 dependency is taken to the browser by way of WebAssembly) but it worked for this app. 

James Long   

▶[The Sounds of Silence: Lessons From an API Outage](https://devchat.tv/ruby-rogues/ruby-480-the-sounds-of-silence-lessons-from-an-api-outage-with-paul-zaich/) — A group discussion with Paul Zaich from Checkr about a critical outage that occurred on a system he works on, what caused it, and how troubleshooting a complex system as a team actually works. 

Ruby Rogues Podcast podcast   

[How to Add Apple Watch Authentication to `sudo`](https://akrabat.com/add-apple-watch-authentication-to-sudo/) — On macOS? Got an Apple Watch? This could be a timesaver. 

Rob Allen   

[Identifying Code Churn with AskGit SQL](https://augmentable.medium.com/identifying-code-churn-with-askgit-sql-1b91680f6349) — AskGit is a command line tool for running SQL queries against git repositories. Things like: `SELECT count(*) FROM commits WHERE author_email = 'user@example.com'` .. or more advanced things, such as demonstrated here. 

Patrick DeVivo   

[10 `git` Aliases for a Faster Workflow](https://snyk.io/blog/10-git-aliases-for-faster-and-productive-git-workflow/) 
Royee Shemesh (Snyk)   

[Building a Telegram Bot with Python and Fauna](https://dev.to/lordghostx/building-a-telegram-bot-with-python-and-fauna-494i) 
LordGhostX   

[5 Reasons to Use GraphQL at Your Company](https://codersociety.com/blog/articles/graphql-reasons) 
Kentaro Wakayama   

[Building a CI/CD Process That Deploys on K8s and Focuses on Developer Independence](https://medium.com/riskified-technology/how-to-build-a-ci-cd-process-that-deploys-on-kubernetes-and-focuses-on-developer-independence-7dc4c20984a) 
Liron Cohen     

🛠 Code and Tools   

supported by [![Okta\](https://res.cloudinary.com/cpress/image/upload/v1602154330/de7dtktheistsfpqdem4.png)](https://developer.okta.com/?utm_campaign=newsletter_cooperpress_all_multiple_inc_dev_sponsored-section_null&utm_source=cooperpress&utm_medium=cpc)     

[Qt 6.0 Released](https://www.qt.io/blog/qt-6.0-released) — Qt is a very long standing (29 years old!) widget toolkit for building GUI apps and 6.0 is a big step forward leaning on C++17 and a new graphics architecture (to cope with modern approaches like Metal and Vulkan). 

Qt Project   

[SQLite 3.34.0 Released](https://sqlite.org/releaselog/3_34_0.html) — A release of the world’s most widely used database is always a cause for celebration around here. 3.34.0 takes [graph queries](https://sqlite.org/lang_with.html#rcex3) a step further with enhancements to recursive CTEs, the CLI gets numerous enhancements, and the full text indexer gets [trigram index support.](https://sqlite.org/fts5.html#trigramidx) 

SQLite Team   

[Build Low Code PostgreSQL Apps with CYPEX - Easy and Quick](https://www.cybertec-postgresql.com/en/products/cypex/) — With CYPEX you can build dashboards, apps and forms based on PostgreSQL databases within seconds and with greatest ease. 

CYBERTEC sponsor   

[WMR: A Tiny All-in-One Development Tool for Modern Web Apps](https://github.com/preactjs/wmr) — From the Preact team (a tiny React-a-like) comes an interesting ‘everything you need in a single box’ tool for putting together JavaScript-powered webapps with bundling, JSX, CSS modules support, and more. Ideal for prototyping. 

Preact   

[rga: ripgrep But Also Search in PDFs, Office Documents, and More](https://github.com/phiresky/ripgrep-all) — [ripgrep](https://github.com/BurntSushi/ripgrep) is a modern, smart `grep` that skips binary files, hidden files, respects `.gitignore`, etc. `rga` wraps it with support for PDFs, SQLite files, movie subtitles, and more. 

phiresky   

[Fable 3.0: A F# to JavaScript Compiler](https://fable.io/blog/Announcing-Nagareyama-4.html) 

Alfonso García-Caro and contributors  

💻 Jobs  

[Find Your Next Job Through Vettery](https://www.vettery.com/tech?utm_source=newsletter&utm_medium=cooper-webopsweekly&utm_term=tech&utm_content=grouped&utm_campaign=ad-77581) — Create a profile on Vettery to connect with hiring managers at startups and Fortune 500 companies. It's free for job-seekers. 

Vettery  

ℹ️ _Interested in running a job listing in StatusCode? There's [more info here.](https://booking.cooperpress.com/jobs)_   📭 

**Got a new email?** You can [change your address here.](https://weekly.statuscode.com/edit_subscription/*|UID|*) 

--- 

**Bored of us?** [Click here to stop getting StatusCode Weekly.](https://weekly.statuscode.com/leave/*|UID|*) 

--- 

**Got a link for us?** Reply and tell us. We can't include everything but we'll look at anything you send. Thanks! 

--- 

**Want to sponsor?** Email `[kristina@cooperpress.com](mailto:kristina@cooperpress.com)` for details. 

--- 

Published by Cooper Press Ltd.
Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom 

[Stop getting this newsletter.](https://weekly.statuscode.com/leave/*|UID|*)
