If I had only known this in college. We students heard “One two seven dot zero dot zero dot one” a lot from professors. This could’ve been a really fun inside joke. And then on the last day of class, “Yeah, 127.1 is the same thing, and that’s what I’ve been typing this whole time.” The look on their face!

We can’t change the past, but we can the future. If you know someone who’s a computer science student, arm them with this.

Strava Pulls the Plug on Relive  


Strava decided to no longer work with us and shut down our access to your activities. This means you can no longer create Relive videos based on your Strava activities.


We then tried to call, email, and talk this out with Strava. No response, except for new ultimatums and threats about our existing features they’ve applauded for years.


Nothing has changed about how Relive uses and protects your data or how we use their API.

This is a very different sounding memo than the email Strava sent last night:

Many of us at Strava have enjoyed using Relive over the last few years, but because of Relive’s recent updates, unfortunately, we have decided to end this integration. The current version of Relive violates several of the terms that we ask of API partners. These terms are in place to safeguard your personal information, to ensure a level playing field for all our partners, and to protect what makes Strava unique. We’ve worked hard with Relive to try to fix this, but they have ultimately chosen not to make the changes needed to honor their agreement. So as of today, Strava will no longer send your activities to Relive for playback.

Does the “current version of Relive violate” terms, or has “nothing changed about how Relive uses” Strava’s API? Has Strava “worked hard with Relive to try to fix this” or has Strava given “no response” to Relive’s calls and emails? It’s hard for me to understand how both of these sides of the story can both be fully factual.

Tech Giants Are Censoring Anti Big Pharma  

Mike Adams:

YouTube has already begun scrubbing historical documentaries as part of its accelerated purge. Facebook is going to start taking down all anti-cancer food channels, and diabetes will be next. MailChimp just started banning all vaccine safety email lists today, blocking any senders from distributing emails that are critical of vaccine safety. Amazon.com is about to dump all small brand nutritional supplements and replace them all with synthetic, toxic vitamin products made by Big Pharma subsidiaries.

This part about MailChimp has been corroborated. It’s disgusting. This means war. For the first time ever, this week I’m trying to use FireFox and DuckDuckGo instead of Chrome and Google.

Malcolm Gladwell Talks About Puzzle Rush  

Malcolm never said “chess.com” in the episode, but here’s a fact: the only place you can play Puzzle Rush is at chess.com.

I’ve had the privilege to be a core developer on this project, and it was fun to hear a high-profile outsider’s take on the feature.


We’re all patiently waiting for Slack to introduce Dark Mode for its Mac app. Meanwhile though, Sblack is an interesting app if you’re looking for a way to have dark mode in a native Slack App.

The challenge with 3rd party dark mode support is that it constantly has to adjust to the HTML and CSS changes of the host DOM. I’m noticing that recent threaded replies have lost whatever customization they used to have, for instance. Little broken details like this keep someone like me from being able to use this, but your mileage will vary. It’s worth checking out.

Why Jason Fried Doesn’t Wear an Apple Watch  

Jason Fried:

I love mechanical watches for a number of reasons – the art, the science, the ingenuity behind the mechanisms, the continuation of a craft dating back centuries, the look, the feel, the freedom from batteries and tethers and cords.

But lately it’s really come down to this: When I look at my watch, it gives me the time. It asks nothing in return. It’s a loyal companion without demands.

This freedom from distraction is one of the reasons I’ve never bought an Apple Watch and continue to primarily wear leather-banded Fossils. Smartwatches are ubiquitous in my line of work, but Jason’s onto something.

Apple’s New 6k Monitor Is Not the Monitor for the Rest of Us  

If you’re regularly in a coworking space like I am, you want the non-glossy finish. So instead of the $5,000 one, you need the $6,000. And on top of that you need the stand, which sells separately for $1,000. So all totaled, you’re looking at $7,000 pre-tax. Where I live with a roughly 8.5% sales tax, that’s $7,600 total. To put things in perspective, that’s more than what I paid for the Honda Accord that I bought in 2012 and that I still drive to work every day.

This new monitor isn’t the monitor for the rest of us. It’s the monitor for the elite of the elite. And here I was thinking that LG’s 5K monitor was a splurge at $1,300. 🙄

My day-to-day monitor is a discontinued Dell 27” 4k Monitor. I bought it used from a friend for $200 earlier this year. It’s not as elegant as Apple’s aluminum Thunderbolt Display monitor of yore but it’s got a sharper display and (very importantly) it has a matte finish. Unless you want to see your face in a mirror all day, if you’re in a well-lit open office environment, you need a matte finish.

In a way, it’s a relief that Apple’s one and only standalone display is so ridiculously out of our price range. It keeps us from even being tempted. Still, this is bonkers. Nobody except those within rich Hollywood film studios (and similar) are going to buy this. In making the best monitor in the world, in settling for nothing except the best, Apple priced itself out. Apple made its accomplishment irrelevant. Meaningless. It would have been far better for Apple to offer an aluminum 27” 5K monitor that was “close enough,” and offer it at $1,000. That’s what the Steve Jobs Apple did with the Thunderbolt Display.

Don’t give me some nonsense about “Apple just doesn’t compete at those lower margins.” The 27” 5K iMac starts at $1,800. What I’m asking is that Apple take that computer body, gut the internals so it’s just a standalone monitor, and slash off $800.

Maybe they’ll still do that at some point in the future. But I’m not holding my breath.

Google Chrome Restricting Ad Blockers  

Tl;dr — Google is making it harder for ad blockers to block ads. If you worship the shrine of privacy, this will bother you. For the rest of us, it’s fine; Google Chrome remains the #1 browser with the most market share and the best developer toolset. Ads are how sites make money. Ads pay the bills. That’s the way it is. 🤷🏾‍

Virtual Dom Is Pure Overhead  

Great article by a core contributor to Svelte about why the pure DOM that’s offered in React and Vue and most every other modern JS framework is not all it’s cracked up to be. Both the clarity of the writing and the typography of the Svelte blog are a joy to behold.

I’ve gotten to the point where if I have a choice in a new project, I go with Svelte. Smaller bundle sizes and faster runtime outweigh its slightly more verbose syntax.

Why Light Modes Are Better for the Eyes  

Turns out, there’s scientific reasons backing up the argument that light modes (dark text on light backgrounds) are better than dark modes. We live in an an era in which websites, apps, and operating systems are trying hard to accommodate both. But they’re not created equal.

CSS-Only Async Chat  

Add this to the list of “using CSS for things that most people would say require JS.” This is one of those incredibly innovative things that you would never do unless you were truly resource-constrained and couldn’t use WebSocket and Ajax. But knowing that it is possible and how it’s possible is worth the read.

8-Digit Hexadecimals  

I’m not sure how I never knew about this, but you can specify transparency in a hexadecimal color in CSS. Keep in mind that IE 11 and Edge don’t support this yet, but you can get around that by using something like SCSS that then compiles this into a more compatible and recognizable rgba() output. Serious levels of Unobtanium, this.

Chrome 73 Brings Dark Mode Finally  

This looks so good. I refused to use a dark Chrome theme because I just couldn’t stomach the gradients. So I’ve gone from the native light mode to this native dark mode after many moons of waiting.1 The new breakpoint editor is also amazing.

  1. Ever since Dark Mode came out in Mojave last fall. ↩︎

Navigating macOS Dialog Boxes Using Keyboard Only  

Dave Land:

tab moves between buttons
space presses focused button (with blue outline)
return presses default button (with blue background)
⌘+first letter on button presses that button (works sometimes)
⌘+. cancels
esc cancels (works sometimes)

I’d forgotten ⌘+first, and I don’t think I’ve ever known about space and ⌘+.. Definitely going to be using this.

January 2020 Will Be End of Life for IE10  

From the Microsoft blog:

You will have until January 2020 to complete the transition from Internet Explorer 10 (IE10) to IE11. After this, we will not release any security or non-security updates, free or paid assisted support options, or online technical content changes for IE10.

Once IE10 and eventually IE11 die the death, it’s not clear what we’re going to be doing with all of our free time. It will feel weird only having to write code for browsers that actually adhere to web standards.

Confusionsoft Changes Its Name  

Whenever you see one of these announcements, keep this in mind: a name change usually means that a company wants to change the perception of its brand.1

Back in my college days when I did a lot of freelancing, I worked with Infusionsoft on a number of client projects. It was a hefty piece of machinery and nowadays the much simpler GetDrip.com does everything it did, except it doesn’t come with a $2,000 initiation fee and a steep learning curve.

  1. Case in point: Apple isn’t going to be changing its name any time soon. ↩︎

How to Connect Your Old Thunderbolt Display’s Magesafe to Your 2018 MacBook Pro  

If you have an old Thunderbolt Display and a 2017 or 2018 MacBook Pro, I can’t recommend this $20 cable too highly. It allows you to recharge your laptop using the Thunderbolt Display’s Magsafe connector, which means you don’t have to take your laptop’s power adapter out of your bag.1

  1. It’s also a useful cable if you have some old power adapters lying around that are based on the old Magsafe connection. This cable will make those power adapters compatible with your new MBP. ↩︎

New Beginnings  

Drinking Caffeine has always been technology-focused, and it will continue to be so. But I might be writing at it a bit less in the future. I’ve dusted off an old domain of mine, martynchamberlin.com, and I’m using it to write about something that matters more than technology. See you there.

Aws Replaces MongoDB With Proprietary DocumentDB  

You can assume that when a company gets to a certain size, it’s going to replace its open-source version of something with a company-flavored version that is better tailored to its needs. I think if AWS had chosen to fork MongoDB in a way that was open source, the optics would’ve been better. That didn’t make business sense though because Amazon had already spent its open source budget on a Wikipedia donation. Sorry, fam. Next time!1

  1. I’m being cavalier here but make no mistake: it costs a lot more money doing something open-source than it does doing it closed-source. Anyone who’s worked at a company that actually did something open-source knows this. Not only do you have to do the same amount of work but you have to do it in a community-driven fashion, and that’s always less efficient. I assume there were also strategic reasons why closed-source made more sense for the AWS. ↩︎

Slack Gets a New Logo  

Instant win. Looks so much better on my iPhone home screen. Some people don’t like it, but they’ll get over it.

Things Dan Abramov Doesn’t Know  

Close to the bottom of last week’s issue of JavaScript Weekly, this article caught my eye. It’s a list of things that Dan doesn’t know. This one particularly stuck out to me, mostly because I know Flexbox very well nowadays:

  • Modern CSS. I don’t know Flexbox or Grid. Floats are my jam.

It’s always a weird feeling when someone who you consider an intellectual giant has a gap that you don’t. This is a great article.

A Horrific Javascript Bug in Safari  

This Stack Overflow thread talks about a JavaScript bug where the state of a JavaScript variable persists across multiple page sessions which is something I have never seen in nine years of web development.

MultiplyByZer0, writing on Sack Overflow:

It’s definitely a BUG! And it’s a very serious bug.

The bug is due to the optimization of array initializers in which all values are primitive literals.


The reverse() method mutates the array, so it should trigger a copy-on-write. But it doesn’t, because the original implementor (Keith Miller of Apple) missed the reverse() case, even though he had written many testcases.

Safari may be blazing fast and battery efficient, but in order to achieve that, the engineers are having to introduce a level of complexity and shenanigans that allows this sort of bug to creep into the mix. Not groovy.

And no, this bug is not fixed on all of Apple’s latest stable releases. You can still demo this bug in action on Safari on a Mac. [Update January 11: ok, it looks like this bug is fixed with macOS 10.14.2. But the reality is that millions of Mac users aren’t on this version yet (including yours truly). If you run a website that uses Array.prototype.reverse(), just because you’re on the latest version doesn’t mean that your users are. In this vein, Safari shouldn’t be held hostage to Mac software updates. In other words, you shouldn’t have to restart your computer in order to get the latest version of Safari. Browser updates should be fast and seamless and independent of OS version, similar to how Google Chrome and FireFox operate. That way, when Apple makes blunders like this, it can bring the fix to a higher number of users with a faster metabolism.]

It’s this kind of nonsense (as well as Apple’s stubborn position to be the only browser that does not support pointerdown) that makes frontend developers mock Safari and refuse to take it seriously.