I recently ran into an issue where the Intercom chat widget was interfering with my Playwright integration tests. The widget was opening up and keeping some key elements from being clickable. A user could have easily dismissed the widget, but I didn’t want to bother dismissing it within Playwright. I couldn’t find any particular guidance on how to keep the widget from loading in the usual places on the web, so I had to come up with my own solution.
What I ended up doing was intercepting all outbound requests Playwright was making and skipping any that called the Intercom domain.
I created this helper function:
And then called it in the test files that were affected:
It shouldn’t be too difficult to modify this to also block chat widgets from other vendors like Zendesk or Drift.
I recently finished a book by Rolf Dobelli titled Stop Reading the News. Dobelli makes a compelling case to switch from daily news consumption to reviewing news once a week or not at all. As Dobelli argues that there’s not a lot you can do about the news literally as it happens, so why amp up your anxiety by consuming it every single day?
Now, I’m not ready to totally abandon the news — especially these days with COVID-19 raging in my home country — so I’m trying out the once a week strategy with a subscription to the print edition of The Economist. They give you the week’s news in a relatively condensed format that you can read in one sitting. Also, since it’s the print edition, I’m not getting lost following links all around the web. I’m also keeping tabs on COVID-19 cases in my area with tools like then Google News Coronavirus map, and as Dobelli suggests, I still read news about tech and development that have an impact on my career.
Stop Reading the News is a short book and I’d suggest giving it a read if you’re at all interested in understanding Dobelli’s reasoning for cutting back on the news and strategies for how to replace news in your life.
Sites that are served statically (meaning they aren’t backed by a scripting language or a database) have big advantages in terms of speed, simplicity, and security. But as Leon Paternoster notes, the definition of static sites is changing, and we’re losing speed and simplicity in the process.
Under the traditional static model, the heavy lifting of building pages from includes and local or external data is done when the website is compiled into flat HTML files, whether that’s on a PC or a server. This happens out of view (hence Jekyll, incidentally), completely separately from any user involvement. Javascript is used to enhance UI, perhaps through offering sorting or filtering functions. All the user does is download the HTML file and its assets.
Under a newer model (which even has its own Netlify-created brand name of JAMstack) much of this heavy lifting is moved to the user’s browser. Websites are created as SPAs, where HTML, CSS, data and javascript are downloaded in one bundle and the javascript creates pages based on user interaction.
The issue with a “newer model” static site is that the JavaScript required to render a page is often so large and complex that it can take a significant amount of time to download and then execute on a device. That could be a recipe for frustration when visitors have spotty internet connections or are using relatively slow phones or laptops.
I’ve been a Mac user since right before the transition to Intel in 2006. Over the years I’ve collected a large number of third party apps that I use regularly for work and sometimes for play. I’ve left default Apple apps off the list, but I use those as well.
A few weeks back I read James Clear’s book Atomic Habits and while I don’t think the book is a must-read, Clear made some interesting points that have led me to re-evaluate my relationship to my work computers.
The key insight from Atomic Habits is that even small percentage improvements in your life and work can lead to major changes as the benefits accrue over time 1. Going to bed 10 minutes earlier might only make you feel 1% better during your next morning workout, but that 1% added up across a year’s worth of workouts might be difference between you having six-pack abs or not.
So, what does that have to do with my tech setup? Well, since the introduction of the Butterfly keyboards on Pro Mac laptops in 2016, I’ve been on a bit of an odyssey to see if I should adopt Windows or Chromebooks as my work laptops. The Butterfly keyboard is notoriouslyunreliable2, and I lived in fear that my MacBook Pro would have a keyboard failure while I was traveling, and that I’d have to be without it for 2-3 weeks while it was being repaired. Luckily, that hasn’t happened 3, but my MacBook Pro still feels fragile. Meanwhile, Windows and ChromeOS laptops are diverse enough that you can easily find reliable great-feeling keyboards.
Last winter I bought a Pixelbook, and started moving my client work to Amazon’s Cloud9 service. Cloud9 gives you an IDE in a web browser tab, and using it has meant that I essentially have the same work environment from any computer with a decent web browser 4. It’s a great weight off my shoulders knowing that my work isn’t tied up to one computer with a keyboard that could fail at any time, and I think I’ll keep using a system like this going forward for the peace of mind.
However, the rest of the experience of using a Chromebook is frustrating in a lot of small ways. On a Chromebook I’ve run into hard limits with design software. I have clients that send me Photoshop files, and I can access them in an emergency using the awesome web app Photopea, but it doesn’t support all of Photoshop’s features or even custom fonts. Figma is a great alternative to Sketch, but it also lacks custom fonts on ChromeOS. I’m phasing out using FTP to deploy projects, but I still need it for many of my older projects that I help maintain. Sadly, I’ve yet to find an FTP client as nice as Transmit or Cyberduck for ChromeOS. The most pervasive annoyance is that system-wide keyboard shortcuts aren’t customizable, so moving between a Mac and ChromeOS can be frustrating 5.
I have an aging Windows PC I used for gaming, and using it for work is simply unpleasant. Software updates happen when Microsoft wants them to happen, even if you’d really like to get something done. Just about everything in Windows seems like it was hit with an ugly stick. Font rendering is particularly jarring after using a Chromebook or Mac. On the bright side, I can use Photoshop, Figma (with custom fonts), and Cyberduck, but the rest of the app ecosystem is sorely lacking. With the exception of FTP and design software, I’d actually say ChromeOS has a superior app platform thanks to the introduction of Android and Linux applications.
While I can make both of those platforms work in a pinch (thanks largely to Cloud9), I’ve realized, because of Atomic Habits, that those little annoyances are subtracting small percentages of efficiency and productivity from my daily work. So, today I’ve decided that my tech wanderlust is over. I’m sticking to the Mac because it should benefit my work over the long run. And luckily for me, Apple finally fixed the keyboards.
The rest of the Atomic Habits is about the best way to think about and create habits that you can actually stick to over the long-haul. ↩
And I personally think the Butterfly keyboard feels awful. ↩
Instead, I had to have my 2016 MacBook Pro replaced with a 2017 because the battery started swelling. Getting a replacement took Apple a month. ↩