The Modern Guide to OAuth
Is this yet another guide to OAuth 2.0? No. This document is based on hundreds of conversations and client implementations as well as their experience building FusionAuth, an OAuth server which has been downloaded over a million times. FusionAuth is a great OAuth solution which you can self hosted in this space now given that Okta has acquired Auth0. Give them a try. They’re great product too.
Font size is useless; let’s fix it
What happens when you set “font_size”: 32 in your favorite editor? I would’ve told you anyway, but I’m glad that you asked.
And do you know that 16 pt text on Windows is ⅓ larger than 16 pt text on macOS. Fun!
What problems do people solve with strace?
When a worker thread that seems to hang and have no log to indicate, I usually do
strace -p pid on it to see what call it stuck on. In this artcile, Julia Evans shares 9 problems that strace can help us identity/debug.
How the PostgreSQL query optimizer works
PostgreSQL uses a cost-based query optimizer that tries to turn your SQL queries into something efficient that executes in as little time as possible. For many people, the workings of the optimizer itself remain a mystery, so we have decided to give users some insight into what is really going on behind the scenes.
Safe ways to do things in bash
Like programming in C or driving a car, contemporary shellscript languages require some knowledge and discipline to use safely, but that’s not to say it can’t be done.
This article is a part of the tool shellharden we linked to below the code to read section for Rust.
How to execute an object file
For language that compile to native code, The output of the compiler is a number of object files. Then a linker assembling all these object files into one big program and create the final executable files. But most of Linux code use dynamic linking, means its object files are absence. At run time, it will borrow the file. Sound magically? Let’s dig in. Make sure to check part 2 as well.
Improving shell workflows with fzf
One way to improve shell workflows is finding patterns in the execution order of commands and extracting those into little scripts; this can often be helpful and is part of what makes working in a shell so powerful. Another way is to understand how the parameters are added and try to simplify this; that’s what I will focus mostly on in this blog post.
Code to read
A single file httpserver in C, no external dependencies. Interesting to see how to parse HTTP request.
All the missing SQLite functions: regular expressions, common statistical functions, CSV files as virtual tables, Unicode string functions
Never use print() to debug again
Fast HTML Parser is a very fast HTML parser. Which will generate a simplified DOM tree, with basic element query support.
Git hooks made easy 🐶 woof!
Fast JSON encoder/decoder compatible with encoding/json for Go. aim of being the fastest library. Use a few technique such as: Buffer reuse, Elimination of reflection, and more. A lot to lean in this code base
An easy, Ruby way to use the HaveIbeenPawn Passwords API.
It suggests changes to your script and highlight them, also support semi-automate the rewriting of scripts to ShellCheck conformance. Though we put this in Code to read, but it’s a great tool that you can install easily and use to improve your shell script.
the NATS.io persistence engine that will support streaming as well as traditional message and worker queues for At-Least-Once delivery semantics.
the Ultimate Plumber, a tool for writing Linux pipes in a terminal-based UI interactively, with instant live preview of command results.
organize tables in PostgreSQL databases with minimal locks
an extension and service for PostgreSQL that monitors and manages automated failover for a Postgres cluster.
a high performance peer-to-peer mesh VPN over UDP supporting strong encryption, NAT traversal and a simple configuration.
It establishes a fully-meshed self-healing VPN network in a peer-to-peer manner with strong end-to-end encryption based on elliptic curve keys and AES-25
Container Signing, Verification and Storage in an OCI registry.
Manage your dotfiles across multiple diverse machines, securely.
We linked to this in issue #85 but they got 2.x branch release this week so we included it again.
That's it for this round, have a great day! If you like this newsletter, please tell the world, or
tweet about this