MoreRSS

site iconBetter Dev LinkModify

Collects links around the web that aims to help you learn something new.
Please copy the RSS to your reader, or quickly subscribe to:

Inoreader Feedly Follow Feedbin Local Reader

Rss preview of Blog of Better Dev Link

Issues #278 Mar 31, 2025

2025-03-31 20:19:00

Better Dev Link - Resource around the web on becoming a better programmer

Hi all,

So this week, Github CodeQL leaked their token; the token was only publicly exposed for about 2 seconds, but that’s enough. Then, we had Malware found on npm infecting local packages with a reverse shell. And an atop heap issue. The world truly fell apart last week, no joke. That’s why it’s helpful to be paranoid whenever we run any piece of software on our CI, on our dependencies—always vet them yourself.

If you enjoy BetterDev, please spread the word by sharing it with your friends. And if you’d like to support my work, buying me a coffee would be much appreciated.

Code to read

  • hann

    A fast approximate nearest neighbor search library for Go

  • Physix

    A simple Physics engine in GoLang

  • shezem-rs

    A Rust implementation of a fast audio fingerprinting system inspired by Shazam, for audio recognition and identification. It focuses on speed, efficiency and simplicity

  • pgledger

    A ledger implementation in PostgreSQL

Tools

  • gaia

    A tool by AMD to run LLM Agents on Ryzen AI PCs in Minutes

  • stable-virtual-camera

    Generative View Synthesis with Diffusion Models

  • star-vector

    a foundation model for SVG generation that transforms vectorization into a code generation task. Using a vision-language modeling architecture, StarVector processes both visual and textual inputs to produce high-quality SVG code with remarkable precision.

  • gopass

    The slightly more awesome standard unix password manager for teams

  • lakekeeper

    an Apache-Licensed, secure, fast and easy to use Apache Iceberg REST Catalog written in Rust. Apache Iceberg is a project that allow us to run SQL query on a set of file(CSV, Parquet, JSON) directly from storage such as S3.

  • goavatar

    This package provides a simple way to generate unique, symmetric identicons based on an input string (e.g., an email address or username). It uses an MD5 hash to create a deterministic pattern and color scheme, then mirrors the design for a visually appealing avatar.

Issues #277 Mar 25, 2025

2025-03-25 20:19:00

Better Dev Link - Resource around the web on becoming a better programmer

Hi all,

Last week, NextJS has a new security vulnerability, CVE-2025-29927 that allow by pass middleware auth checking by setting a header to trick it into thinking this is an internal request and skip the auth middleware check. If you’re hosted on Vercel there is no action to take, but if you run the vercel server in your infra, you should update.

Another one for k8s, if you’re running ingress-nginx, you should update this patch. The attack require the ability to have a pod already running inside K8S network, such as sharing namespace with other users, or exposing admission controller webhook to internet. So if your cluster is dedicated to you, and not doing stuff like host network or expose admission controller service, you can buy sometime for the upgrade.

If you enjoy BetterDev, please spread the word by sharing it with your friends. And if you’d like to support my work, buying me a coffee would be much appreciated.

  • When You Deleted /lib on Linux While Still Connected via SSH

    A classic tale of Linux horror. You’re SSH’d into a machine, you make one wrong move, and suddenly your system is broken. This post walks through how to recover from this self-inflicted nightmare.

  • Think About SQL MERGE in Terms of a RIGHT JOIN

    RIGHT JOIN is an esoteric feature in the SQL language, and hardly ever seen in the real world, because almost every RIGHT JOIN can just be expressed as an equivalent LEFT JOIN. There is, however, one place in the SQL language where RIGHT JOIN is surprisingly ubiquitous and today we learn about it.

  • Zero-Knowledge Proofs

    An approachable introduction to the magic of zero-knowledge proofs—how they let you prove something without revealing the details. Perfect for anyone curious about cryptography without diving into hardcore math.

  • Understanding Solar Energy

    This one’s a bit outside the usual programming realm, but trust me—it’s fascinating. A deep dive into how solar panels actually work, the engineering behind them, and why understanding electricity at this level is surprisingly useful.

  • A Synchronization Engine for Everyone

    Syncing data is one of those things that sounds easy until you try to build it. This post walks through a synchronization engine design that’s both simple and powerful.

  • Leaking Passwords (and more!) on macOS

    A deep dive into how macOS can unintentionally leak sensitive data like passwords, thanks to clipboard behavior and debugging tools. A must-read for anyone who cares about security.

  • A Deep Dive into the Inline Background Overlap Problem

    Ever tried putting text over an image and ended up with weird background overlaps? This post explains why that happens and how to fix it. If you do anything with CSS, you’ll want to bookmark this one.

  • BPF: Or How I Stopped Worrying and Loved the Kernel

    BPF is like a superpower for peeking into Linux. Whether you care about performance monitoring, security, or just love cool system hacks, this is a fantastic read.

  • A History of Null Pointer Dereferences on macOS

    A nostalgic yet technical look at how null pointer dereferences have plagued macOS over the years. Great for those who love debugging deep OS issues.

  • Improving Recommendation Systems & Search in the Age of LLMs

    AI-powered recommendations are everywhere, but how do they really work? This post explores how LLMs are changing search and recommendation engines for the better.

  • Ruby Ractors and Lock-Free Data Structures

    If you’re a Rubyist curious about parallelism, this is for you. A practical look at Ruby’s Ractors and how they enable truly parallel execution without locks.

Code to read

  • retroboy

    A Game Boy emulator written in Rust.

  • rhino

    A Rack web server written in Ruby from scratch.

  • konva

    an HTML5 Canvas JavaScript framework that extends the 2d context by enabling canvas interactivity for desktop and mobile applications.

  • landrun

    Need to run untrusted code safely? This sandboxing tool might be your new best friend.

  • Physix-go

    A physics engine in Go that makes simulating motion, collisions, and forces as simple as possible.

  • fastplotlib

    A blazing-fast plotting library for massive datasets, using modern GPU rendering to keep things smooth.

  • zimdjson

    Parsing gigabytes of JSON per second. Zig port of simdjson with fundamental features.

Tools

  • playwright-mcp

    A Model Context Protocol (MCP) server that provides browser automation capabilities using Playwright. This server enables LLMs to interact with web pages through structured accessibility snapshots, bypassing the need for screenshots or visually-tuned models.

  • debugbar

    Powerful devtools for Ruby on Rails. Inspired by the Laravel Debugbar.

  • xata agent

    an open source agent that monitors your database, finds root causes of issues, and suggests fixes and improvements. It’s like having a new SRE hire in your team, one with extensive experience in Postgres.

  • pgFormatter

    Free Online version of pgFormatter a PostgreSQL SQL syntax beautifier (no line limit here up to 100000 characters). This SQL formatter/beautifier supports keywords from SQL-92, SQL-99, SQL-2003, SQL-2008, SQL-2011 and PostgreSQL specifics keywords. May

  • atlas

    A database schema management tool that works like Terraform—diff, apply, and keep your schema in check.

  • typespec

    Define your API once in a simple tsp file, then generate OpenAPI, gRPC, client code, and docs automatically.

  • ferronweb

    A fast, memory-safe web server powered by Rust. Similar to Caddy or Nginx but written in Rust.

Issues #276 Mar 18, 2025

2025-03-18 20:19:00

Better Dev Link - Resource around the web on becoming a better programmer

Hi all,

This week the github action tj-actions/changed-files are compromise and steeling credential of github action env. I had always found the concept of trusting randome github action is scary. Especially github make the action appear under the global namespace /marketplace/actions make it seems trust worth. Had github adopt a <user-org>/name probably more people will aware. I recommend for any non official github action, fork it to your own org or account and review source code manually.

Second thing, if you has been using WHOIS to find out domain owner or registra info, that is going to change. ICANN is Launching RDAP; Sunsetting WHOIS and a CLI to replace whois too.

If you enjoy BetterDev, please spread the word by sharing it with your friends. And if you’d like to support my work, buying me a coffee would be much appreciated.

  • Developer AI for real software engineering work

    Lots of coding AIs have cool X demos on greenfield apps. But the day-to-day of a pro software engineer working on a team looks…a little different from vibe coding. Enter Augment Code. The first developer AI built for teams and large codebases, Augment works on codebases of millions of lines of code and thousands of files, bringing full codebase context to every keystroke. Customers like Datastax, Observe, Kong, and Lemonade trust Augment because it’s fast, high quality, and secure. Even better - you don’t have to switch your IDE - Augment works in VS Code, JetBrains, and even Vim. Augment is free to try and never trains on code without consent. Start building for free today.

  • IO devices and latency

    Non-volatile storage is a cornerstone of modern computer systems. Every modern photo, email, bank balance, medical record, and other critical pieces of data are kept on digital storage devices, often replicated many times over for added durability. we’re going to cover the history, functionality, and performance of non-volatile storage devices over the history of computing, all using fun and interactive visual elements.

  • Zen and the Art of Microcode Hacking

    Google release the full details of EntrySign, the AMD Zen microcode signature validation vulnerability which they initially disclosed on Feb 2025. This vulnerability allows an adversary with local administrator privileges (ring 0 from outside a VM) to load malicious microcode patches. We have demonstrated the ability to craft arbitrary malicious microcode patches on Zen 1 through Zen 4 CPUs

  • Going down the rabbit hole of Git's new bundle-uri

    Exploring an unpopular git bundle-uri that can help speed up Git by pre-populate git local object cache from https instead of fetching from git server.

  • Dive Into WebGPU — Part 1

    WebGPU is a modern graphics API designed to provide high-performance graphics and computation capabilities across different platforms, including web browsers, desktops, and mobile devices. It is intended to be a successor to the WebGL API, offering more advanced features, better performance, and greater flexibility for developers

  • CSS Relative Colors

    CSS is evolving realy fast. This is a useful feature used to cover by CSS pre-processor like SCSS or LESS.

  • What Makes Code Hard To Read: Visual Patterns of Complexity

    The question everyone have an answer for. The OP share with us an interesting concept: visual patterns of code, specifically the ones that make their brain hurt!

  • Paxos made visual in FizzBee

    Any distributed system you will hear the term Raft or Paxos. Some expert consider Paxos is super simple, some say it’s the most complicated. In this post, the OP modeling Paxos with FizzBee, a design specification language and model checker to specify distributed systems at a much higher level of abstraction than a programming language for system analysis and design. So we will learn 2 things in this post.

  • Sorting Algorithms with CUDA!

    Building on a previous post on sorting algorithms, I implemented the same algorithms using CUDA to explore performance improvements through parallel computing. The goal is to see how we can leverage the power of parallel computing to speed up our sorting algorithms. I went for a NVIDIA recruiting event some days ago, that was a great event and it motivated me to try to rewrite the sorting algorithms using CUDA.

  • PostgreSQL: 1 trillion rows in Citus

    “PostgreSQL scales” - we have all heard this phrase over and over again. However, the question is: What does this actually mean? Does it mean 1 million rows? Or maybe even 1 billion rows? So, on a rainy weekend, I decided to do a little experiment to figure out if it is possible to squeeze 1 trillion rows (= 1000 billion rows) into my local personal computer

  • Getting started with Compilers

    As an engineer we’re all curious how a compilers to made. The bad news is there is no single resource to grasp all of that. The good news are all the resource widely available for us to get started.

  • Azure’s Weakest Link? How API Connections Spill Secrets

    Binary Security found the undocumented APIs for Azure API Connections. In this post we examine the inner workings of the Connections allowing us to escalate privileges and read secrets in backend resources for services ranging from Key Vaults, Storage Blobs, Defender ATP, to Enterprise Jira and SalesForce servers.

Code to read

  • ruby_llm

    A delightful Ruby way to work with AI. No configuration madness, no complex callbacks, no handler hell – just beautiful, expressive Ruby code.

  • filter

    a powerful, web-based image editor built with React and TypeScript. It provides a modern, intuitive interface for quick image edits and filters, optimized for both desktop and mobile devices.

  • ⌘K: Fast, composable, unstyled command menu for React.

    If you ever need a short-cut like a spotlight search for your app. You would want this

  • ghw

    Go HardWare discovery/inspection library

  • shelgon

    a robust Rust framework for building interactive REPL (Read-Eval-Print Loop) applications and custom shells. It provides a flexible, type-safe foundation with built-in terminal UI capabilities using ratatui.

  • octotools

    An agentic framework with extensible tools for complex reasoning

  • Reticulum

    The cryptography-based networking stack for building unstoppable networks with LoRa, Packet Radio, WiFi and everything in between.

Tools

  • PRevent

    Prevent merging of malicious code in pull requests

  • agents-json

    The agents.json Specification is an open specification that formally describes contracts for API and agent interactions, built on top of the OpenAPI standar

  • shorts_maker

    a Python package designed to facilitate the creation of engaging short videos or social media clips. It leverages a variety of external services and libraries to streamline the process of generating, processing, and uploading short content.

  • MotifyX

    Elevate your designs with our curated collection of modern background patterns. Preview, customize, and implement with just a few clicks.

  • smart-turn

    an open source, community-driven, native audio turn detection model. Hugging Face model is available

  • dicedb

    an open-source, fast, reactive, in-memory database optimized for modern hardware.

  • pgdog

    Horizontal scaling for PostgreSQL.

  • nubmq

    A blazing-fast KV store written in pure Golang without any dependencies with native pub-sub support, engineered for high-frequency, contention-heavy workloads

  • olmocr

    Toolkit for linearizing PDFs for LLM datasets/training

Issues #275 Mar 10, 2025

2025-03-10 20:19:00

Better Dev Link - Resource around the web on becoming a better programmer

Hi all,

In the wave of ByBit exchange being hack for 1.6billion, and the hack is very sophisciated, exploit developer access key to change an s3 bucket. The attack start by having the developer run some untrusted docker compose with privileged: true I’ll include a few more tools in security, vulnerable scan, and supply chain attack.

If you enjoy BetterDev, please spread the word by sharing it with your friends. And if you’d like to support my work, buying me a coffee would be much appreciated.

  • Developer AI for real software engineering work

    Lots of coding AIs have cool X demos on greenfield apps. But the day-to-day of a pro software engineer working on a team looks…a little different from vibe coding. Enter Augment Code. The first developer AI built for teams and large codebases, Augment works on codebases of millions of lines of code and thousands of files, bringing full codebase context to every keystroke. Customers like Datastax, Observe, Kong, and Lemonade trust Augment because it’s fast, high quality, and secure. Even better - you don’t have to switch your IDE - Augment works in VS Code, JetBrains, and even Vim. Augment is free to try and never trains on code without consent. Start building for free today.

  • Tracking You from a Thousand Miles Away! Turning a Bluetooth Device into an Apple AirTag Without Root Privileges

    Imagine someone could turn your laptop, smartphone, or even your gaming console into a tracking device without your knowledge. Our research team discovered a way this can happen through Apple’s Find My network The Find My network uses over a billion Apple devices worldwide. We found a security problem that lets hackers use this system to track almost any device with Bluetooth capabilities - not just Apple products. We call this attack “nRootTag.”

  • The Complete Guide to Cloud-Native Ransomware Protection in Amazon S3 and KMS

    In this post, we’ll cover how to prevent ransomware and provide resources & code for 11 different ransomware prevention use cases to ensure preventative controls are in place to prevent against types of ransomware attacks targeting AWS S3.

  • TLS/SSL Certificates - For The Rest Of Us

    The internet is insecure by default. Attackers can intercept and modify traffic, so we need a way to secure communication and verify the server’s identity. Encryption ensures data privacy, but without verification, hackers could impersonate a legitimate website, intercepting traffic while still using encryption. This is why TLS/SSL combines encryption with authentication.

  • Kafka Transactions Explained (Twice!)

    When consuming Kafka in a consumer group, the offset each consumer has bit read the message and ack it is recorded by Kafka. When they crashed or restart, they can resume from the commited ack position. But what happen if a record has been processed by consumer but failed to send the ack, the app will consume the record again on restarting. How can we somehow do 2 thing: commit the offset and the result of operation somehow in a single atomic operation. Enter Kafka transactions allow.

  • CSS Meets Voxel Art: Building a Rendering Engine with Stacked Grids

    We usually don’t include this tutorial style link but this one is really interesting to see. We will learn how transforms, perspective, and stacked grids can create a fully addressable 3D space and push the boundaries of what’s possible with pure CSS

  • Crossy Road with React Three Fiber

    In this tutorial, we learn how to create a simplified clone of the mobile game Crossy Road with React Three Fiber. The goal of the game is to move a character through an endless path of static and moving obstacles. We have to go around the trees and avoid getting hit by a car or a truck. We start with the basic setup: setting up the scene, camera, and lighting. We learn how to draw the player and the map’s trees, cars, and trucks. We cover how to animate the vehicles and add event handlers to move the player through the map. Finally, we add logic to detect collisions between the player and the cars.

  • Representing graphs in Postgresql

    A very command problem when we need to re-present a relationship in databsae such as family, friend. Can come in very handy to write a single SQL query to find relationship instead of building them from the app level

  • XOR explanation

    XOR is every where. We use them in Linux permission: umask, chmod. We use them in Cryptography. We will learn about their hardware implementation, about their usage and all kind of trick to use them efficiently.

  • Writing an LLM from scratch, part 8 -- trainable self-attention

    Write up when following “Build a large language model from scratch” book.

  • How I Automated My Podcast Transcript Production With Local AI

    Den has been running podcast for half a decade. He use WhistpeX, run it locally and build a workflow to transcibe his podcast to text. He shared with us the setup. I think local ai is really useful and worth to explorer the self hosted path. It is much easiser to self hosted than we think even

  • Tips to debug hanging Go program

    Go specific but come in very handy when working with Go app.

  • Why fastDOOM is fast

    FastDOOM was a port of DOOM but it is 30% faster. On some complicated map, it’s even 48% faster. We will dive into the secret sauce of the technique that is used to optimized it. very low level thing like use the right assembly instruction to make code run in fewer instructions.

  • Performance optimization, and how to do it wrong

    I recently tried to optimize convolutions using SIMD instructions, but what I thought would be a simple task ended up taking me days, with issue after issue popping up one after another. Some of them make sense in hindsight, but others were utterly baffling. While the specific examples are for direct convolution, these considerations apply to pretty much any code with a hot loop.

Code to read

  • orama

    A complete search engine and RAG pipeline in your browser, server or edge network with support for full-text, vector, and hybrid search in less than 2kb.

  • pdfslick

    a library which enables viewing of and interaction with PDF documents in React and SolidJS apps. It’s build on top of Mozilla’s PDF.js, and utilises Zustand to provide a reactive store for the loaded documents.

  • zap: blazingly fast backends in zig

    I recently pickup Zig and I think this is going to replace Rust and C for me when I needed them. It has all the power of Rust while less restricted, and have power of C while being more friendly than C.

  • rayhunter

    A tool to detect cell site simulators on an Orbic mobile hotspot

  • phony

    E164 international phone number normalizing, splitting, formatting.

  • gore

    Yet another Go REPL that works nicely. Featured with line editing, code completion, and more.

  • PRevent

    Prevent merging of malicious code in pull requests

Tools

  • Peerdb: PostGres Replication Tool

    If you ever need to keep postgres in-sync with another datawarehouse, or even another postgres, this is the way to go.

  • mlx-audio

    A text-to-speech (TTS) and Speech-to-Speech (STS) library built on Apple’s MLX framework, providing efficient speech synthesis on Apple Silicon

  • sqldef

    Idempotent schema management for MySQL, PostgreSQL, and more

  • rogue

    An intelligent web vulnerability scanner agent powered by Large Language Models

  • pphack

    The Most Advanced Client-Side Prototype Pollution Scanner

  • FerretDB

    A truly Open Source MongoDB alternative

  • kunai

    powerful tool designed to bring actionable insights for tasks such as security monitoring and threat hunting on Linux systems. Think of it as the Linux counterpart to Sysmon on Windows, tailored for comprehensive and precise event monitoring.

  • Postgres query plan visualization tools

Issues #274 Mar 04, 2025

2025-03-04 20:19:00

Better Dev Link - Resource around the web on becoming a better programmer

Hi all,

Welcome to second issue of BetterDev. I’m lagging behind a few issues but catching up. There are many things happens with LLM/AI recently. I encourage to give these tools a try, on your own hardware.

As a reader of this newsletter, you probably has the itch to build some app all the time. My friend at lapa.ninja has been curating almost 7000 landing pages, all hand pick. So you can get the inspiration next time when you want to build a landing page or a dashboard for your app.

If you enjoy BetterDev, please spread the word by sharing it with your friends. And if you’d like to support my work, buying me a coffee would be much appreciated.

  • How Core Git Developers Configure Git

    In this post, I’ll go through some of the perhaps obscure Git config settings that I have personally globally enabled and go into them to explain what they do and why they should probably be the default settings.

  • Hacking chromecast

    Do you want to be able to discover chromecast device on your network and broadcast arbitrary media to it? Sure, there is many tools to do it. But what is the protocol behind it. This is a 4 part series dive into that. We will learn the basic, the protocol, the casting server and gotcha.

  • Minecraft from scratch

    A Minecraft clone from scratch with only modern OpenGL. No game engines or frameworks. Using Go so it’s very h igh level and easy to follow.

  • What would happen if we didn't use TCP or UDP?

    Switches, bridges, routers, load balancers, firewalls—these network boxes keep the internet running. Routing, blocking, mirroring, duplicating and deduplicating traffic in ways most people never think about. Without them, this document wouldn’t have reached you

  • Build your own SQLite, Part 5: Evaluating queries

    We had been featuring this series in previos issue. In this part we will learn how to evaluate a SQL query. If you are interesting of understanding deep into your stack, these article provide great approach into learning and rebuilding them.

  • Performance Speed Limits

    Sometimes you just want to know how fast your code can go, without benchmarking it. Sometimes you have benchmarked it and want to know how close you are to the maximum speed. Often you just need to know what the current limiting factor is, to guide your optimization decisions.

  • Scaling with PostgreSQL without boiling the ocean

    Scaling PostgreSQL successfully doesn’t always require a full team of DBAs and experts. The beauty of PostgreSQL is that solutions often lie within the database itself - by rethinking your data access patterns from first principles, you can solve many business problems at scale.

  • Running Pong in 240 Browser Tabs

    What do you do with your unclosed browser tabs? I find that they take up a lot of screen space. So this week I figured out how to run pong inside mine.

  • Video streaming using http 206 partial content

    Implementing video streaming might be a pain for some cases, especially when we talk about memory management alongside scalability of the application. One common way is using HTTP Live Streaming Protocol where a single video could be broken down into smaller chunks and sent through multiple HTTP requests. But then we need to transcode video ahead of time. Can we stream MP4 file? has it playable asap instead of downloading whole video? Turn out we can thank to the modern browser support of byte “Rang: byte” header.

  • Multi-Hop WireGuard

    WireGuard is a very powerful VPN which support multiple topology and routing. Can come in very handy when you want to perform complex routing, especially in environment where you want to control egress. Give this a read to learn about these setups: Site Gateway as a Spoke, Internet Gateway as a Spoke, Chain of Hubs, Hub is Also a Site Gateway.

  • The power of interning: making a time series database 2000x smaller in Rust

    interning is a technique of storing only one copy of each unique piece of data in memory.Very common use in string so we don’t need to store the string multiple time. Imagine big JSON document with repeated field. In this post we look into a time series database and how interning help with different data type.

  • 3,200% CPU Utilization

    A tale into debugging a Java program to see why it use all 32 cores.

Code to read

  • micro_events.py

    Micro event loop library to teach the basic concepts of python coroutines and how event loop libraries might be implemented

  • opendbc

    Python API for your car. Control the gas, brake, steering, and more. Read the speed, steering angle, and more.

  • authie

    Improve user session security in Ruby on Rails applications with database session storage

  • bsky-parser

    Bluesky text parser that outputs parsed text with rich text facets

  • human-regex

    Human-friendly regular expression builder with English-like syntax.

  • re2js

    the JavaScript port of RE2, a regular expression engine that provides linear time matching

  • nativewebp

    This is a native WebP encoder written entirely in Go, with no dependencies on libwebp or other external libraries. Designed for performance and efficiency, this encoder generates smaller files than the standard Go PNG encoder and is approximately 50% faster in execution

Tools

  • cartography

    a Python tool that consolidates infrastructure assets and the relationships between them in an intuitive graph view powered by a Neo4j database.

  • gochromecast

    A simple tool to stream your media to android TV or chromecast device.

  • Waveform Renderer

    A lightweight and customizable TypeScript library for rendering audio waveforms on HTML canvas. Create beautiful, interactive audio visualizations with ease.

  • rails-diff

    Compare Rails-generated files with the ones in your repository

  • Cap.So

    Open source Loom alternative. Beautiful, shareable screen recordings.

  • stagehand

    An AI web browsing framework focused on simplicity and extensibility.

  • BemiDB

    Postgres read replica optimized for analytics. It consists of a single binary that seamlessly connects to a Postgres database, replicates the data in a compressed columnar format, and allows you to run complex queries using its Postgres-compatible analytical query engine.

  • pgwatch

    PostgreSQL metrics monitor/dashboard

Issues #273 Jan 12, 2025

2025-01-12 20:19:00

Better Dev Link - Resource around the web on becoming a better programmer

Hi all,

Happy new year. Welcome to the first issue of 2025. I’m trying to become more regular this year. Looking forward to a new year and hope everyone continue to build cool thing. For me, I was unable to launch my another SaaS last year. I did overhault my cloudcost https://ec2.shop and much more happy with its state now.

This week our sponsor is WarpStream, they have build an amazing Kafka alternative while 100% compatible with Kafka and way more cheaper. If you are running Kafka in Kubernetes, or looking to replace Redis with Kafka, like Honeybadger team did, then definetely give WarpStream a try.

If you enjoy BetterDev, please spread the word by sharing it with your friends. And if you’d like to support my work, buying me a coffee would be much appreciated.

  • Pixel Federation Swaps Amazon MSK for WarpStream, Saves 83% on Apache Kafka Costs

    The video game company Pixel Federation uses Kafka as the message bus to power its real-time data streaming infrastructure. However, they were leveraging Amazon MSK and their bill was growing faster than their data volumes and they had to use complex networking like VPC peering. By switching to WarpStream, they saved 83% and ditched VPC peering and manual partition rebalancing

  • Operating System in 1,000 Lines

    build a small operating system from scratch, step by step. You might get intimidated when you hear OS or kernel development, the basic functions of an OS (especially the kernel) are surprisingly simple. Even Linux, which is often cited as a huge open-source software, was only 8,413 lines in version 0.01. Today’s Linux kernel is overwhelmingly large, but it started with a tiny codebase, just like your hobby project. We’ll implement basic context switching, paging, user mode, a command-line shell, a disk device driver, and file read/write operations in C. Sounds like a lot, however, it’s only 1,000 lines of code!

  • A 2-ply minimax chess engine in 84,688 regular expressions

    So without further ado, I present to you … Regex Chess: sequence of 84,688 regular expressions that, when executed in order, will play a (valid; not entirely terrible) move given a chess board as input.

  • Mistakes engineers make in large established codebases

    Working in large established codebases is one of the hardest things to learn as a software engineer. You can’t practice it beforehand (no, open source does not give you the same experience). Personal projects can never teach you how to do it, because they’re necessarily small and from-scratch.

  • Seconds Since the Epoch

    People, myself included, like to say that POSIX time, also known as Unix time, is the number of seconds since the Unix epoch, which was 1970-01-01 at 00:00:00. This is not true. Or rather, it isn’t true in the sense most people think. For example, it is presently 2024-12-25 at 18:51:26 UTC. The POSIX time is 1735152686. It has been 1735152713 seconds since the POSIX epoch. The POSIX time number is twenty-seven seconds lower.

  • How NAT traversal works

    How 2 devices under a NAT can connect directly to each other without a server beind in the middle to relay traffic?

  • Linux Routing Fundamentals

    Routing table define what what happens when an IP packet is sent from or through a Linux box. But the simplify is which destination a package should send to? how do your computer know that a LAN ip need to send to othe laptop, and the rest go out to internet?

  • Writing a simple pool allocator in C

    When you need memory for your program, you can malloc. Similarly to malloc, a pool allocator allows the user to allocate memory at run time. The pool allocator, however, is much faster than malloc1, at the cost of having a fixed pool size. It allows the user to allocate and free memory blocks (referred to as chunks, from now on) in O(1) constant time. This implementation also uses very little memory: when creating the pool, a very small Pool structure is allocated, along with the pool itself. Free chunks are used to store information, so the memory impact is minimal.

  • Behind the scenes with Stream Live, Cloudflare’s live streaming service

    Stream Live accepts audio/video content from broadcasters and makes that content available to viewers around the world in real time through the Cloudflare network. This post look into how they build broadcast ingestion with RTMPS, SRT, WHIP and Spectrum. The data is converted and store in their Durable Object, then serve to viewer through HLS or DASH protocol.

  • B-Trees: More Than I Thought I'd Want to Know

    B-Trees were essentially “better” Binary Search Trees, with some hand-waving done that they had improved performance when used in database applications. But it’s more than just that, today we will look into disk constraint, slotted pages to see how B-Tree node fit naturally into a page - a chunk of data that the harddrive read all in the same time.

  • SQL NULLs are Weird

  • Breaking Up with Long Tasks or: how I learned to group loops and wield the yield

    Arrays are in every web developer’s toolbox, and there are a dozen ways to iterate over them. Choose wrong, though, and all of that processing time will happen synchronously in one long, blocking task. The thing is, the most natural ways are the wrong ways.

Code to read

  • rumale

    a machine learning library in Ruby. Rumale provides machine learning algorithms with interfaces similar to Scikit-Learn in Python.

  • go-haystack

    Track personal Bluetooth devices via Apple’s “Find My” network using OpenHaystack and Macless-Haystack with tools written in Go/TinyGo. No Apple hardware required!

  • postal-mime

    Email parser for browser and serverless environments

  • MegaParse

    File Parser optimised for LLM Ingestion with no loss 🧠 Parse PDFs, Docx, PPTx in a format that is ideal for LLMs.

  • @smoores/epub

    A Node.js library for inspecting, modifying, and creating EPUB 3 publications.

Tools

  • ggh

    Recall your SSH sessions (also search your SSH config file)

  • termo

    a simple terminal emulator that can be used to create a terminal-like interface on your website

  • wasm-vips

    libvips for the browser and Node.js, compiled to WebAssembly with Emscripten.

  • recur

    Retry a command with exponential backoff and jitter (+ Starlark expressions)

  • vanir

    a source code-based static analysis tool that automatically identifies the list of missing security patches in the target system. By default, Vanir pulls up-to-date CVEs from Open Source Vulnerabilities (OSV) together with their corresponding signatures so that users can transparently scan missing patches for an up-to-date list of CVEs.

  • OpenGFW

    OpenGFW is a flexible, easy-to-use, open source implementation of GFW (Great Firewall of China) on Linux

  • Pig: The Postgres Extension Wizard

    Ever wished installing or upgrading PostgreSQL extensions didn’t feel like digging through outdated readmes, cryptic configure scripts, or random GitHub forks & patches? The painful truth is that Postgres’s richness of extension often comes at the cost of complicated setups—especially if you’re juggling multiple distros or CPU architectures. Enter Pig, a Go-based package manager built to tame Postgres and its ecosystem of 340+ extensions in one fell swoop.

  • pgspot

    Spot vulnerabilities in postgres SQL scripts