Home/2020
Archive

Year 2020

2,167 articles published in 2020.

SRE & Ops — Vouching for Docker Images - Shopify

Vouching for Docker Images - Shopify

If you were using computers in the ‘90s and the early 2000s, you probably had the experience of installing a piece of software you downloaded from the internet, only to discover that someone put some nasty into it, and now you’re dragging your computer to IT to beg them to save your data. To remedy this, software developers started “signing” their software in a way that proved both who they were a

SEShopify Engineering·December 1, 2020SRE & Ops
Databases — Scaling Datastores at Slack with Vitess

Scaling Datastores at Slack with Vitess

From the very beginning of Slack, MySQL was used as the storage engine for all our data. Slack operated MySQL servers in an active-active configuration. This is the story of how we changed our data storage architecture from the active-active clusters over to Vitess — a horizontal scaling system for MySQL. Vitess is the present…

RCRafael Chacon Vivas·December 1, 2020Databases
Engineering — How We Built It: Spotify Lite, One Year Later

How We Built It: Spotify Lite, One Year Later

What if, for some users, the very best Spotify is a little less Spotify? Spotify Lite started as an experiment that had to be proven, both from a technical and a product-market fit perspective. In 2017, we found that a significant portion of registrations in some of our fastest-growing markets were happening on Android devices much older than what we were used to seeing in North American and Europ

SESpotify Engineering·December 1, 2020Engineering
Frontend — Native CSS Masonry Layout In CSS Grid

Native CSS Masonry Layout In CSS Grid

Rachel Andrew introducing the fact that masonry layout is going to be a thing in native CSS via CSS grid layout. The thing with masonry is that we can already

CCChris Coyier·November 30, 2020Frontend
Frontend — Super Tiny Icons

Super Tiny Icons

A bunch of SVG icons (of popular things) all under 1KB. SVG is awesome for golfing.

CCChris Coyier·November 30, 2020Frontend
Design & UX — Weaving Web Accessibility With Usability — Smashing Magazine

Weaving Web Accessibility With Usability — Smashing Magazine

You can provide access to people with visual impairments without involving them in the product development lifecycle, by formally adopting web accessibility standards... but does that mean the end product is usable? In this article, Uri Paz explains how a site complying with accessibility guidelines may still present usability issues when testing with real users. Find out how weaving accessibility

UPUri PazUri Paz·November 30, 2020Design & UX
Engineering — Dreaming Of A Magical December (2020 Wallpapers Edition) — Smashing Magazine

Dreaming Of A Magical December (2020 Wallpapers Edition) — Smashing Magazine

Let’s welcome December with some new wallpapers! Designed by artists and designers from across the globe, they are available with and without a calendar for the month. All images can be clicked on and lead to the preview of the wallpaper. We respect and carefully consider the ideas and motivation behind each and every artist’s work. This is why we give all artists the full freedom to explore their

CMCosima MielkeCosima Mielke·November 30, 2020Engineering
Engineering — A Thanksgiving 2020 Reading List

A Thanksgiving 2020 Reading List

If you want to relax in an active and learning way this Thanksgiving weekend, here are some of the topics we’ve covered on the Cloudflare blog this past week that you may find interesting.

VValVal·November 28, 2020Engineering
SRE & Ops — A Byzantine failure in the real world

A Byzantine failure in the real world

At Cloudflare, we are always on the lookout for Single Points of Failure. In this post, we explore the role a failure mode known as a Byzantine fault played in a a real-world incident.

TLTom Lianza, Chris SnookTom Lianza, Chris Snook·November 27, 2020SRE & Ops
Networking — ASICs at the Edge

ASICs at the Edge

At Cloudflare, we pride ourselves in our global network that spans more than 200 cities in over 100 countries. To accelerate all that traffic through our network, there are multiple technologies at play. So let’s have a look at one of the cornerstones that makes all of this work.

TSTom StrickxTom Strickx·November 27, 2020Networking
Engineering — Reactive Variables In GraphQL Apollo Client — Smashing Magazine

Reactive Variables In GraphQL Apollo Client — Smashing Magazine

Reactive variables work with GraphQL Apollo and offer you the same functionality with Redux or Context API without the complexity or extra layers that come with these other tools. A reactive variable in GraphQL Apollo is easy to use and doesn’t have as much setup process compared to Redux. In this article, Daniel Don will look at how to set up reactive variables, how the GraphQL cache polices come

DDDaniel DonDaniel Don·November 27, 2020Engineering
Engineering — Copy Docs: Make Your Microcopy Full And Consistent, And Maintain It — Smashing Magazine

Copy Docs: Make Your Microcopy Full And Consistent, And Maintain It — Smashing Magazine

Copy docs is a framework that allows product designers and writers to manage their in-product copy in a smart way. In this article, Valeriia Panina shares her experience in how the copy docs technique turned out to be a game changer for her workflow. The copy docs technique was a game changer for Valeriia’s workflow and she’d be happy if it boosts yours, too!

VPValeriia PaninaValeriia Panina·November 26, 2020Engineering
Engineering — Moving Quicksilver into production

Moving Quicksilver into production

We previously explained how and why we built Quicksilver. This second blog post is about the long journey to production which culminates with Kyoto Tycoon removal from Cloudflare infrastructure and points to the first signs of obsolescence.

GPGeoffrey PlouviezGeoffrey Plouviez·November 25, 2020Engineering
Engineering — Playfulness In Code: Supercharge Your Learning By Having Fun — Smashing Magazine

Playfulness In Code: Supercharge Your Learning By Having Fun — Smashing Magazine

In the product-focused world of development, it can be easy to forget the joy of making for the sake of making. By dropping the ‘Why’ and ‘How’, and focusing instead on the ‘What’ of weird, wonderful ideas, you can nurture a totally different side to your skill sets. You can read the docs, you can follow the tutorials, but wouldn’t you be more motivated by trying to make something unique, somethin

JTJhey TompkinsJhey Tompkins·November 25, 2020Engineering
Frontend — Testing Vue Applications With The Vue Testing Library — Smashing Magazine

Testing Vue Applications With The Vue Testing Library — Smashing Magazine

The Vue Testing library can help you to test your applications by mirroring the way that a user would interact with them. Here’s everything you need to know if you want to get started right away. In this article, Kelvin Omereshone will look at testing Vue applications using the Vue Testing Library — a lightweight library that emphasizes testing your front-end application from the user’s perspectiv

KOKelvin OmereshoneKelvin Omereshone·November 24, 2020Frontend
Frontend — Creating UI Components in SVG

Creating UI Components in SVG

I’m thoroughly convinced that SVG unlocks a whole entire world of building interfaces on the web. It might seem daunting to learn SVG at first, but you have a

SDSarah DrasnerSarah Drasner·November 23, 2020Frontend
Frontend — Graphery SVG

Graphery SVG

I've compared SVG and Canvas before. If you're trying to decide between them, read that. I'd say the #1 difference between them is vector (SVG) versus raster

CCChris Coyier·November 23, 2020Frontend
Frontend — Boop!

Boop!

An in-depth tutorial that teaches how to create one of the most adorable interactions I've ever created. We'll learn how to use React components and hooks to abstract behaviours, and see how to design the perfect API. Even if you're not into animations, I think you'll find it interesting!

JWJosh W. Comeau·November 23, 2020Frontend
Frontend — A Comparison Of async/await Versus then/catch — Smashing Magazine

A Comparison Of async/await Versus then/catch — Smashing Magazine

In JavaScript, there are two main ways to handle asynchronous code: then/catch (ES6) and async/await (ES7). These syntaxes give us the same underlying functionality, but they affect readability and scope in different ways. In this article, Bret Cameron will show you how one syntax lends itself to maintainable code, while the other puts us on the road to callback hell!

BCBret CameronBret Cameron·November 23, 2020Frontend
Career & Teams — What A Time To Be Smashing! — Smashing Magazine

What A Time To Be Smashing! — Smashing Magazine

With so much going on, it’s nice to have an overview of what’s new at Smashing — all in one place. Read on to find out what’s been keeping the team busy alongside some inspiring community resources that have made it to the top list of our newsletters!

ILIris LjesnjaninIris Ljesnjanin·November 20, 2020Career & Teams
Networking — Many services, one cloudflared

Many services, one cloudflared

Previously, if you wanted to proxy 100 services through Argo Tunnel, you needed 100 instances of cloudflared running on your server. Today, we’re thrilled to announce our most-requested feature: you can now expose unlimited services using one cloudflared.

ACAdam ChalmersAdam Chalmers·November 19, 2020Networking
Security — Securing the fight against COVID-19 through open source

Securing the fight against COVID-19 through open source

This blog describes a security vulnerability in the infrastructure that supports Germany’s COVID-19 contact tracing efforts. The mobile (Android/iOS) apps are not affected by the vulnerability and do not collect and/or transmit any personal data other than the device’s IP address. The infrastructure takes active measures to disassociate true positives from client IP addresses.

AMAlvaro MunozAlvaro Munoz·November 19, 2020Security
AI & ML — GitHub Archive Program: Making the archives beautiful

GitHub Archive Program: Making the archives beautiful

The GitHub Archive Program announces its latest milestone: storing collections of the most popular and depended upon open source repositories in beautiful art cases featuring 3D-printed and AI-generated artwork in significant libraries around the world.

JMJulia MetcalfJulia Metcalf·November 19, 2020AI & ML
Networking — The economic impact of subsea cables in Africa

The economic impact of subsea cables in Africa

High-quality internet connectivity gives people a voice, creates opportunities, and strengthens local and global economies. The need for widespread reliable internet connectivity and infrastructure is more apparent now than ever, as heavier reliance on remote work and online communication during the COVID-19 pandemic drives a dramatic surge in global internet usage. And yet, according to […] Read

MEMeta Engineering·November 19, 2020Networking
Distributed — Adopting Sorbet at Scale - Shopify

Adopting Sorbet at Scale - Shopify

Presenting how Shopify got from no Sorbet in our monolith to almost full coverage in the span of a few months. I’ll explain the challenges we faced, the tools we built to solve them.

SEShopify Engineering·November 19, 2020Distributed
SRE & Ops — Migrating Slack Airflow to Python 3 Without Disruption

Migrating Slack Airflow to Python 3 Without Disruption

Last year, we migrated Airflow from 1.8 to 1.10 at Slack (see here) and we did a “Big bang” upgrade because of the constraints we had. This year, due to Python 2 reaching end of life, we again had a major migration of Airflow from Python 2 to 3 and we wanted to put our…

ASAshwin Sai Shankar·November 19, 2020SRE & Ops
Frontend — A Thoughtful Way To Use React’s useRef() Hook — Smashing Magazine

A Thoughtful Way To Use React’s useRef() Hook — Smashing Magazine

In a React component, `useState` and `useReducer` can cause your component to re-render each time there is a call to the update functions. In this article, you will find out how to use the `useRef()` hook to keep track of variables without causing re-renders, and how to enforce the re-rendering of React Components.

AIAleem IsiakaAleem Isiaka·November 19, 2020Frontend
Security — Network-layer DDoS attack trends for Q3 2020

Network-layer DDoS attack trends for Q3 2020

In Q3 ‘20, Cloudflare observed a surge in DDoS attacks, with double the number of DDoS attacks and more attack vectors deployed than ever — with a notable surge in protocol-specific DDoS attacks such as mDNS, Memcached, and Jenkins amplification floods.

VOVivek, OmerVivek, Omer·November 18, 2020Security
Frontend — Thinking Outside the Box with CSS Grid

Thinking Outside the Box with CSS Grid

Great tutorial from Alex Trost (based on some demos, like this one, from Andy Barefoot) showcasing how, while CSS grid has straight grid lines across and

CCChris Coyier·November 18, 2020Frontend
Engineering — Upptime

Upptime

GitHub Actions are like free computers.

CCChris Coyier·November 18, 2020Engineering
SRE & Ops — Don't put data science notebooks into production

Don't put data science notebooks into production

We've come across many clients who are interested in taking the computational notebooks developed by their data scientists, and putting them directly into the codebase of production applications. Data science ideas do need to move out of notebooks and into production, but trying to deploy that notebooks as a code artifact breaks a multitude of good software practices. Predictably, that results in

DJDavid Johnston·November 18, 2020SRE & Ops