Go github.com

Use HTTP/2 Server Push to create fast and idiomatic client-driven REST APIs

Around the advent of GraphQL, I found myself asking its proponents if HTTP/2 solves any of the same performance problems. Most of the answers were along the lines of, “it might, but that hasn’t been realized yet.” Well, Vulcain is here to realize it. Over the years, several formats have been created to fix performance bottlenecks impacting web APIs: over fetching, under fetching, the n+1 problem… Current solutions for these problems (GraphQL, JSON:API’s embedded resources and sparse fieldsets, …) are smart network hacks for HTTP/1. But these hacks come with (too) many drawbacks when it comes to HTTP cache, logs and even security. Fortunately, thanks to the new features introduced in HTTP/2, it’s now possible to create true REST APIs fixing these problems with ease and class! Here comes Vulcain! See also their comparison between Vulcain, GraphQL, and API formats.

read more

Documentation divio.com

What nobody tells you about documentation

This article starts out like a bit of false advertising: It doesn’t matter how good your software is, because if the documentation is not good enough, people will not use it. People tell us that about documentation all the time. Come on, now. Get to the good stuff! In this article I will explain how you can make your documentation better, not by working harder at it, but by doing it the right way. The right way is the easier way - easier to write, and easier to maintain. OK, I’m listening. I’m listening. Documentation needs to include and be structured around its four different functions: tutorials, how-to guides, explanation and technical reference. Each of them requires a distinct mode of writing. Pay dirt! 🙌 This is an absolute must-read on the four different kinds of docs and how to effectively execute on each.

read more

JSON engineering.instawork.com

When XML beats JSON

When demoing Hyperview to new engineers, there’s one comment that frequently comes up about the HXML data format: “XML, really? It’s bloated and outdated. Why not use JSON? It’s the future.” These comments imply that JSON is the “one true file format” that should be used for everything, but we don’t believe there’s such a thing. Each format makes tradeoffs in encoding, flexibility, and expressiveness to best suit a specific use case. The author makes a pretty solid argument that JSON is better for lists, while XML is better for trees.

read more

Jeffrey Paul sneak.berlin

Stupid unix tricks

Jeffrey Paul shares a ⛴ load of goodies. I particularly like this idea: I have a Makefile in my home directory… that I use to store common tasks related to my local machine… The one I use most often, though, is make clean, which takes everything in ~/Desktop and moves it into ~/Documents/$YYYYMM (creating the month directory in the process if it doesn’t exist), and also empties trashes. Reader beware: 4154 words, approximately a 23 minute read

read more

DigitalOcean Icon DigitalOcean – Sponsored

Developer trends! Remote work edition

Currents is DigitalOcean’s seasonal report on developer trends they created to share knowledge with the developer community. For the sixth edition, we surveyed more than 4,500 developers around the world about remote work — including how they work, their experiences working remotely, how they connect with the larger community, and how they maintain work-life balance. Key Findings? “Remote work is the new normal for developers,” and “developers expect remote work to improve work-life balance. But the reality doesn’t always line up with that hope…”

read more

logged by @logbot permalink

Node.js github.com

The largest Node.js best practices list

With 35k+ stars, I might be the last one to the party on this awesome repo. It is the largest compilation, and it is growing every week - currently, more than 80 best practices, style guides, and architectural tips are presented. New issues and pull requests are created every day to keep this live book updated. We’d love to see you contributing here, whether that is fixing code mistakes, helping with translations, or suggesting brilliant new ideas.

read more

Jon Calhoun calhoun.io

Why can't we settle on a single application structure in Go?

Go Time panelist Jon Calhoun ruminates on a conversation started on episode 94 of the show: The goal of this article is it explore why exactly there isn’t a single app structure that is recommended to new Gophers, and the overall goal of this series is help newcomers to Go understand what choices are available to them so they can get started a little easier.

read more

Quincy Larson freeCodeCamp

Lessons from 5 years of teaching the world to code

Congrats to Quincy and everyone who has joined his mission with freeCodeCamp on an astounding rise: More than 40,000 freeCodeCamp graduates are now working in tech at companies including Apple, Google, Microsoft, Amazon, and Spotify. Millions of people watch freeCodeCamp’s YouTube channel each month. Millions of people read freecodecamp.org/news each month. And people ask - and answer - thousands of tech-related questions each month on freecodecamp.org/forum. freeCodeCamp.org is now one of the most-used technology sites on the entire web. The future is bright. Click through to read what they accomplished in 2019 and how they’re up and running on a JAMstack.

read more

Cloud blog.trailofbits.com

Algo – your personal VPN in the cloud

The linked article is an excellent introduction to Algo, which is effectively a set of Ansible scripts that set up a Wireguard and IPSEC VPN for you. Algo automatically deploys an on-demand VPN service in the cloud that is not shared with other users, relies on only modern protocols and ciphers, and includes only the minimal software you need. And it’s free. For anyone who is privacy conscious, travels for work frequently, or can’t afford a dedicated IT department, this one’s for you. Algo’s list of features (and anti-features) is compelling and most VPN services are terrible. 👀

read more

PostgreSQL layerci.com

Postgres is a great pub/sub & job server

We all know Postgres is a great relational database (you do know that, don’t you?). When it comes time for a pub/sub solution, however, we often reach for Kafka, Redis, or RabbitMQ. But did you know that Postgres is pretty well suited as a persistent pub/sub server as well? There are very few use cases where you’d need a dedicated pub/sub server like Kafka. Postgres can easily handle 10,000 insertions per second, and it can be tuned to even higher numbers. It’s rarely a mistake to start with Postgres and then switch out the most performance critical parts of your system when the time comes. Check the linked article for how they use Postgres in this fashion and a nice list of other benefits. For my money, the fact that I’m not adding another moving part to my infrastructure is reason enough to start with Postgres and go from there.

read more

Kubernetes learnk8s.io

Kubernetes production best practices checklist

How do you know if your Kubernetes cluster is production-ready? If you’re a beginner, it’s hard to tell what you’re missing. The subject is soo vast and it’s easy to lose sight on what’s the right path to production. And even if you’re an expert, remembering all networking, storage, cluster, and application development best practices is impossible. There are so many. Here is a curated a list of best practices for Kubernetes that helps you drive your roadmap to production. Check things off the list and keep track as you go. ✅

read more

Jon Thornton engineering.squarespace.com

3 kinds of good tech debt

Jon Thornton writes on the Squarespace Engineering blog: “Tech debt” is a dirty word in the software engineering world. It’s often said with an air of regret; a past mistake that will eventually need to be atoned for with refactoring. Financial debt isn’t universally reviled in the same way. Your friend takes out a mortgage to buy a house and what do you say? Congratulations! … The difference is intention. What if tech debt wasn’t always an accident, caused by incorrect assumptions and unexpected circumstances? How would you spend a tech debt mortgage? We also talked about tech debt in a similar manner on Founders Talk #60.

read more

Yaser Adel Mehraban yashints.dev

A comprehensive intro to Vue.js

From Yaser Adel Mehraban on getting started with Vue.js. Vue.js is an approachable, versatile, performant, and progressive framework to build user interfaces with. This core library is focused on building the view layer only. It uses the goodies of Angular (such as template syntax) and React (such as Virtual DOM) and adds a few more enhancements on top. … Another bonus point of it is that migrating to it is really easy. You just need to add a script tag to your page and you’re good to go.

read more

0:00 / 0:00