We’re talking about designing and building HEY with Jonas Downey, the lead designer behind HEY. In their words, “Email sucked for years, but not anymore.” We were super interested in how they went about solving the problems with email, so we invited Jonas on to share all the details and a behind-the-scenes look at the making of HEY.
News and podcasts for developers
Subscribe to get the latest news and podcasts for developers in your inbox, every week.
We make it super easy to keep up with developer news that matters.
Already a member? Sign in
In a post aptly titled “Tripping over the potholes in too many libraries,” Carl Johnson explains his philosophy on using dependencies.
In short, I think it’s become entirely too easy for people using certain programming languages to use libraries from the wide world of clowns that is the Internet. Their ecosystems make it very very easy to become reliant on this stuff. Trouble is, those libraries are frequently 💩. If something about it is broken, you might not be able to code around it, and may have to actually deal with them to get it fixed. Repeat 100 times, and now you have a real problem brewing.
I have a simple rule: never use a dependency that you could replace with an afternoon of programming.
Today Mitchell Baker, CEO of Mozilla Corporation, shared news of big changes taking place at Mozilla in the wake of COVID-19. In addition to the changes noted below, Mozilla is also laying off 250 employees while it makes these changes.
…going forward we will be smaller. We’ll also be organizing ourselves very differently, acting more quickly and nimbly. We’ll experiment more. We’ll adjust more quickly. We’ll join with allies outside of our organization more often and more effectively. We’ll meet people where they are. We’ll become great at expressing and building our core values into products and programs that speak to today’s issues. We’ll join and build with all those who seek openness, decency, empowerment and common good in online life.
This internal document includes the details about the restructuring and other specifics.
I’ve reached out to Mitchell via LinkedIn messages to invite her on The Changelog for deep dive into the future of the internet. If you or anyone you might know has a direct connection to Mitchell, please pass this invitation on to her — we’d love to have her on the show.
If you’re using and loving Zeno Rocha’s dark mode theme, you might be interested in pairing it with a dark mode wallpaper. These were created by Dracula user kajwski and collected by Zeno for easier sharing.
Linode Kubernetes Engine (LKE) is a fully-managed container orchestration engine for deploying and managing containerized applications and workloads. LKE combines Linode’s ease of use and simple pricing with the infrastructure efficiency of Kubernetes. You can now get your infrastructure and workloads up and running in minutes instead of days.
If you’ve been following along with the Changelog infrastructure, you’ll be pleased to know we’re rolling out LKE as we speak. We love what we’ve seen so far! Oh and be sure to use the code
changelog2020 (whichever works) to get our special pricing.
Can be used as an embeddable Go library or as a language-agnostic service. Here’s their list of use cases:
With this feature set, Olric is suitable to use as a distributed cache. But it also provides distributed topics, data replication, failure detection and simple anti-entropy services. So it can be used as an ordinary key/value data store to scale your cloud application.
Built in Go,
askgit is an open source CLI and coming soon web interface (linked above). With this tool in your toolbox, you can mine your repo for info like commit count by author on each day of the week:
SELECT count(*) AS commits, count(CASE WHEN strftime('%w',author_when)='0' THEN 1 END) AS sunday, count(CASE WHEN strftime('%w',author_when)='1' THEN 1 END) AS monday, count(CASE WHEN strftime('%w',author_when)='2' THEN 1 END) AS tuesday, count(CASE WHEN strftime('%w',author_when)='3' THEN 1 END) AS wednesday, count(CASE WHEN strftime('%w',author_when)='4' THEN 1 END) AS thursday, count(CASE WHEN strftime('%w',author_when)='5' THEN 1 END) AS friday, count(CASE WHEN strftime('%w',author_when)='6' THEN 1 END) AS saturday, author_email FROM commits GROUP BY author_email ORDER BY commits
We made it to 100 episodes of Practical AI! It has been a privilege to have had so many great guests and discussions about everything from AGI to GPUs to AI for good. In this episode, we circle back to the beginning when Jerod and Adam from The Changelog helped us kick off the podcast. We discuss how our perspectives have changed over time, what it has been like to host an AI podcast, and what the future of AI might look like. (GIVEAWAY!)
Musicians and developers go together like peas and carrots, Jenny. So it makes sense that techniques used by musicians to hone their skills might transfer over to software people. One of those techniques is the “masterclass”
A masterclass is a format in which musicians perform a work for an established artist and the artist then gives them feedback rather like a lesson, except that all of this happens in front of an audience.
Click through for a compelling distillation of what software teams can learn from musicians when it comes to giving and receiving feedback.
This is a great opportunity if you build sites for clients. Here’s what Brian Webster of Delicious Simplicity had to say about Gatsby’s partnership program:
Partnering with Gatsby has been a game changer for our business. We’re able to exceed customer expectations, bring in new business, and delight our developers.
Give your clients confidence as a Gatsby certified partner. Get started today.
Have you heard of the GitHub Arctic Code Vault? If not, the goal of GitHub Arctic Code Vault is to preserve open source software for future generations. Which means we need thorough docs describing how the world makes and uses software. Which I find completely fascinating!
We are now also opening up the initial compilation of Tech Tree resources to community input. Inspired by the Long Now Foundation’s Manual for Civilization, the Tech Tree is a collection of technical works which document and explain the layers of technology on which today’s open-source software relies, along with works included to provide additional cultural context for the Arctic Code Vault.
What follows, which we call the Tech Tree, is a selection of works intended to describe how the world makes and uses software today, as well as an overview of how computers work and the foundational technologies required to make and use computers. The purpose of the GitHub Archive Program is to preserve open source software for future generations. This implies also preserving the knowledge of other technologies on which open-source software runs, along with a depiction of the open-source movement which brought this software into being.
Developers encounter technical writing everywhere: product & API docs, manpages, tutorials & more. We know it matters but what is technical writing exactly? And how does it differ from other writing?
In this brief post, I define what technical writing is, provide examples of technical writing in software and beyond, and explore other skills technical writers must develop to create successful and effective documentation.
I built a new go Playground that uses Web Assembly to run Go code right in the browser. One of the cool things about this is is that it made it way easier to build a secure server execution environment because the server doesn’t execute anything, it just compiles.
Whether you’re preparing for an interview or you want to design a distributed/microservice oriented application, this list will definitely help you achieve that.
1️⃣ Value contributions to documentation just as much as code contributions
2️⃣ Put documentation and code in the same project repo
3️⃣ Make documentation a requirement for a merge or release milestone
4️⃣ Have a consistent contribution process for code and documentation
5️⃣ Have well-documented processes for contributing to documentation
That’s the TL;DR, but each of these is expanded upon in the article.
These iconic, low-resolution designs are the perfect tool to learn the basics of physical interface design. Armed with 52 different bricks, let’s see what they can teach us about the design, layout and organisation of complex interfaces.
The gang officially welcomes Amal Hussein as a panelist! After that it’s Pro Tip Time, then we finish up by attempting to demistify CSS Sweeper and the Space Toggle Trick.
I had a dream. I’d write a fast JSON parser, generic data, and a JSONPath implementation and it would be beautiful, well organized, and something to be admired. Well, reality kicked in and laughed at those dreams.
This post lays out Peter’s plan, his journey, and his lessons learned in great details. Seems like it’d pair nicely with the recent Go Time all about JSON.
Have you heard the phrase, “Put yourself in their shoes?” In this episode, the conversation focuses on the “HOW” and why it all begins with empathy. Empathy is the key that enables access to another person’s perspective and emotional state. It is also a fundamental aspect of building and sustaining relationships with others. The fascinating thing is that there are 3 types of empathy: cognitive, social, and empathic concern. Plus there’s a counterpart component called compassion that moves us to take action.
The impact of COVID-19 is multifaceted. Our infrastructure team observed an exhaustion of our server resource pool for auto scaling due to a drastic traffic increase! Learn how we achieved 2× faster application run with only 1/3 of the servers by tuning auto scaling rules and switching to Puma threads.
Nikola Đuza makes a compelling case for the powerful text editor that developers love (or love to hate):
What Vim is excellent at is navigating, making some changes, and repeating the process. The process most call editing (not to be confused with writing). Most developers tend to overlook this fact, but this is one of the strong selling points of Vim. Developers are more prone to reading code, jumping from file to file, making small incisions in the code, and writing code all the time.