#248 — January 8, 2020

Read on the Web

StatusCode Weekly
Covering the week's news in software development, ops, platforms, and tooling.

This Page is Designed to Last: A Manifesto for Preserving Content on the Web — A list of ‘unconventional guidelines’ (though if you were building Web pages in the 90s, they’ll seem very familiar!) for making web content that lasts. This one saw plenty of heated discussion over on Hacker News. Let's make plain, reliable HTML more of a 'thing' this decade? :-)

Jeff Huang

SHA-1 is a Shambles — Three years after the first collision was found, the first chosen-prefix collision for SHA-1 has been computed. Ars Technica has a more complete writeup on what this means and what the implications are.

Gaëtan Leurent and Thomas Peyrin

On-Demand Webinar: How to Prepare Your Data Pipeline for Machine Learning and AI — Training-based session on transforming your data to power machine learning and AI projects. Use AWS Data Pipeline to automate data movement and transformation and explore software solutions in AWS Marketplace that make your data analytics-ready.

Amazon Web Services (AWS) sponsor

AWS Fargate Spot: Serverless Containers.. When They're Cheap To Run — Fargate lets you run containers under a ‘serverless’-style model, and Fargate Spot takes things a step further by offering up-to a 70% discount by running on spare capacity (a la EC2 ‘spot instances’). Your tasks better be tolerant of interruptions, however.

Amazon Web Services

The Front-End Performance Checklist 2020 — This detailed, front-end performance checklist that has been updated for 2020 — filled with everything worth knowing about creating fast experiences on the web.

Smashing Magazine

Only 15% of Basecamp's Ops Budget is Spent on Ruby — Basecamp (formerly 37signals) is a popular SaaS product (indeed, a pioneer in the space) and was built using Ruby on Rails. Despite facing criticism, Rails’ creator and Basecamp founder David Heinemeier Hansson explains how it’s still the best choice for them.

David Heinemeier Hansson

Adopting A New Approach to HTTP Prioritization — HTTP prioritization is important for web performance. This is the story behind a new approach recently adopted for further work in the IETF. As the author says, “I expect the standardization process to refine the design and for things to go stale quickly” but it’s good to see where things are headed.

Lucas Pardue

Quick bytes:

💻 Jobs

DevOps Engineer at X-Team (Remote) — Work with the world's leading brands, from anywhere. Travel the world while being part of the most energizing community of developers.


Find a Job Through Vettery — Vettery is completely free for job seekers. Make a profile, name your salary, and connect with hiring managers from top employers.


📕 Tutorials

Best Practices for Designing a Pragmatic RESTful API — This topic is unavoidably opinionated, but there’s a lot of good pointers to digest here.

Vinay Sahni

Building a System to Do IPv4 to Host Lookups Quickly — I imagine the number of people who need to do this is relatively small, but it’s an interesting problem and solution.

Mark Litwintschik

Building a BitTorrent Client From The Ground Up in Go — If you’re a Go developer, don’t forget we have a Go newsletter too! :-)

Jesse Li

Shape The Trends: Take the Survey and Win Amazing Prizes & Gear — What are the biggest dev trends in 2020? Help us find out. Take the new DevEconomics survey, for a chance to win cool prizes.

Developer Economics Survey sponsor

Making S3 More Resilient using Lambda@Edge — Contentful (a popular CMS-as-a-service) had big problems when S3 had an outage back in 2017 so set out to make things more resilient. How? Here’s their story.

Julia Biro

How to Reduce Costs of an HTTP(S) API on AWS — An engineer at a gaming analytics tracking company shares some insights on running a large scale HTTP API on AWS and squeezing down the bytes used.

Magnus Henoch

Good Comments Read Well and Are to The Point — Some guidance on writing better comments in your code.

Martin Tournoij

From Zero to main(): Bare Metal Rust — Bringing an embedded Rust application from zero to main.

James Munns

5 Steps From Monolith to Microservices

Jasdeep Khalsa

💡 Stories and Opinions

Go + Services = One Goliath Project — Khan Academy’s journey from a monolithic Python 2 to a distributed, service-based Go platform, including the rationale and progress made to date.

Khan Academy

▶  Why GitHub Actions Is This Developer's New Favorite Programming Tool — While Github Actions is commonly associated with deployment and pipelines, it’s ultimately an engine for running JavaScript in the cloud, and that opens up some neat use cases as demonstrated here. 17 minutes.

Kristian Freeman

What I've Learned Over 10 Years on Stack Overflow — If you’re a developer, you’ll have spent some time on Stack Overflow even if you’ve not realized it.

Matt Bierner

How I Once Saved Half A Million Dollars with a Single Character Code Change — Or four one liners every Java programmer should know.

Henry Coles

RDS's Price Premium over EC2 Can Be More Than You'd Expect — RDS is Amazon’s Relational Database Service which can provide a fully managed Postgres (or MySQL, Oracle, and others) service on AWS. The increasing price premium of RDS over EC2, however, surprised this developer.

Rick Branson

Oracle Copied Amazon’s API — Was That Copyright Infringement? — Is copying APIs essential to competition in the software industry?

Ars Technica

How Blazor Is Going to Change Web Development — Blazor is a framework from Microsoft that can be used to develop interactive client-side web UIs with C#.

Jeremy Morgan

Ask HN: Is CS Likely To Still Be A Good Career in 3-5 Years? — A Hacker News discussion about the long-term value of a computer science education. Count me in with the bullish outlook.

Hacker News

Building a New Windows 3.1 App in 2019 — I admire people who indulge in these sorts of weird projects :-)

Yeo Kheng Meng

🛠 Code and Tools

Bash-my-AWS: A Set of CLI Commands for Working with AWS — Sure, there are already tools for working with AWS from the command line, but this aims to make things even simpler.

Mike Bailey

Track Down Performance Issues FAST with Scout APM. Try It for Free Today

ScoutAPM sponsor

Docuum: LRU Eviction of Docker Images — Performs least recently used (rather than least recently created) eviction of Docker images to keep disk usage below a given threshold.

Stephan Boyer

'We Are Giving Every IPv6 Address A Name' — There are limited use cases for this (also consider all the points raised on Hacker News), but if you want to have a hostname that resolves to any IPv6 address.. here you go.

ungleich glarus ag

httpserver.h: Single Header Library for Writing Non-Blocking HTTP Servers in C

Jeremy Williams

😂 A tip and a pun, all in one