RSS.Social

nickb.dev

follow: @[email protected]

Posts

Are SIMD gather instructions underrated?

The DuckDB and Arrow rabbit hole: data modeling adventures

A Bevy app entirely off the main thread

Wasm's curious word size and the SWAR advantage

Default musl allocator considered harmful (to performance)

The right tool for the job: positioned IO for Zip archives

Keeping up with the fronted Joneses: streaming server side rendering

Cloudflare's forbidden Steam

The hidden nuance of the JavaScript File API

SQL reduction: ask for forgiveness

Next.js on Cloudflare: a gem with rough edges

The accidental journey to TrueNAS Scale

Dot or Not? A type safety story about file extensions

Practical responsive image sprites for the web

Pitfalls of React Query

You might not need a React animation library: transitions

The composition king: compound components

The WebAssembly value proposition is write once, not performance

The dark side of inlining and monomorphization

Split Next.js across hosting providers and advocate for direct S3 uploads

MySQL text ID collation: tread carefully

Decapitation: a migration from antd to headless story

Advantages of opaque types over value objects

Too edgy, a serverless search

There and back again with zstd zips

New browser APIs unlock new possibilities

CycleList: a cyclical activity tracker

Designing Responsive React Components for 2023

Wasm compression benchmarks and the cost of missing compression APIs

Rethinking web workers and edge compute with Wasm

Cloudflare Tunnel saved my home server when my apartment got a new ISP

Avoiding allocations in Rust to shrink Wasm modules

Favoring SQL over Redis for an evergreen leaderboard

DEFLATE yourself for faster Rust ZIPs

Avoiding dynamic CSS-in-JS styles in React

The footgun with Docker Compose shared configurations

The subjective nature of JS libraries exposing an off the main thread API

Recommendations when publishing a Wasm library

Don't freak, but our Rust web server is now Node.js

Accessing public and private B2 S3 buckets in Rust

Authoring a SIMD enhanced Wasm library with Rust

Replacing an unavailable ZFS drive

A workaround for Rust's lack of structural subtyping

Reality check for Cloudflare Wasm Workers and Rust

Simulating the EU4 map in the browser with WebGL

Git Rebase to Squash Commits to Most Recent Message

Wasm and Native Node Module Performance Comparison

Stumbling with WebGL Image Processing

Cargo Workspace and the Feature Unification Pitfall

Leveraging Rust to Bundle Node Native Modules and Wasm into an Isomorphic NPM Package

Writing a Secure Systemd Service with Sandboxing and Dynamic Users

A Quick Tour of Trade-offs Embedding Data in Rust

Designing a Decaying Leaderboard with Redis

Results of Authoring a JS Library with Rust and Wasm

Migrating a 160k Word Jekyll Blog to Hugo

Backblaze B2 as a Cheaper Alternative to Github's Git LFS

My Bet on Rust has been Vindicated

Reasons to Migrate away from Gatsby

Opinionated Guide for Web Development with Rust Web Workers

Parsing Performance Improvement with Tapes and Spatial Locality

Monitoring Remote Sites with Traefik and Prometheus

Downsampling Timescale Data with Continuous Aggregations

SQLite: Dropping an index for a 300x speedup

Azure Pipelines for Rust Projects

Guidelines on Benchmarking and Rust

Quick investment advice for the smart and lazy

Leaning on Algo to route Docker traffic through Wireguard

Exploring TimescaleDB as a replacement for Graphite

Hashing strings bytewise in C#

IPv6 only networking not viable in 2018

Satisfying NAS share and backup solution

Migrating to Actix Web from Rocket for Stability

Viewing WireGuard Traffic with Tcpdump

Lessons learned: ZFS, databases, and backups

Routing Select Docker Containers through Wireguard VPN

Integrating Kotlin with a Dropwizard App

Dropwizard 1.3 Upcoming TLS Improvements

Fighting Instability and Rust

Replacing Elasticsearch with Rust and SQLite

Back to the Register: Distilling the Federal Register for All

WireGuard VPN Walkthrough

Robust systemd Script to Store Pi-hole Metrics in Graphite

Building a Home Server

Investigation into the Inefficiencies of Node.js Http Streams

Writing a high performance TLS terminating proxy in Rust

Creating a parallel AMP site with Jekyll

Introduction to Journald and Structured Logging

Migrating to the new NET SDK MSBuild Project Files

The Difficulty of Performance Evaluation of HikariCP in Dropwizard

First Impressions of the Google Pixel

The Last Hooray, Bye Windows Phone

The Cost of TLS in Java and Solutions

Exporting Open Hardware Data into Graphite

Monitoring Windows system metrics with Grafana

Exploring Data: Michigan Traffic Accidents

Another Year, Another Site Refresh

Waning F#

Dropwizard 1.1 and Let's Encrypt with no Downtime

Dropwizard Multipart Form Quickstart

Boxcars: an Example Rocket League Replay Parser Using Rust and Nom

Know Thy Threadpool: A Worked Example with Dropwizard

Dropwizard 1.0 TLS Checklist

Fun with Pfarah: a Paradox Clausewitz Parser

ISO 8601 and Nanosecond Precision Across Languages

Visualizing Ann Arbor Incidents

Introduction to IMAP

Initial Impressions of a Website with Modern Build Tools

A Java Result Algebraic Data Type Worth Using

Turning Dropwizard Performance up to Eleven

Federal Register Data Exploration with R

Modern Website over HTTP 2 and SSL with Nginx and Let's Encrypt

Trading Beauty for Performance: F# active patterns vs Nullable

Most Popular Electron UI Libraries

Disecting the Postgres Bulk Insert and Binary Format

XSLT 2.0 Processing in Postgres

Guide and Explanation for Metrics in Dropwizard

Processing arbitrary amount of data in Python

Getting Started with Dropwizard: Testing

F# and Data go Hand in hand

Writing a Dropwizard JSON App

Optimizing Innodb for Bulk Insert

Announcing EU4 Stats

Continuous Integration and Delpoyment with .NET/Mono

C#, Mono, Nuget, Nunit, T4, CI, Oh My!

C# and Threading: Explicit Synchronization isn't Always Needed

Await Async in C# and Why Synchrony is Here to Stay

Deathmark Postmortem: a Game Where Everyone Dies

Migrating from GoDaddy/IIS/WCF/C#/MySQL to DigitalOcean/Apache/Flask/Python/SQLite

Computer Game Development at Michigan: Zelda Postmortem

Computer Game Development at Michigan Week 2: Start of Unity

Computer Game Development at Michigan Week 1: Introduction

Linux Virtualization with a Mounted Windows Share on Client Hyper-V

A New Way In Writing Documents With Markdown and Pandoc

Software Engineering Interview Questions that Make an Impact

Distributing and Deploying a Linux Python Application

Design Dilemma: Configuration Files

On Résumés

Design Pattern Dilemma: A Localizable Object

High Performance Unsafe C# Code is a Lie Redux

The Two Extremes of a Startup and a Corporation

The Perfect Blogging Workflow

Premier of Perl and Stocks

Chicago Calls

The Legacy and Opportunity of 1.5 Million Lines of Code

Designing a REST API: Unix time vs ISO-8601

The Joys and Woes of a Forever Project

Adventures with WriteableBitmap and Bit Manipulation

Create a Simple Session Aware SSL Bottle Login

A Lesson in Algorithms and Data Structures: the Traveling Salesman

The Devils that are Unsigned Numbers

I Did Not Cheat

Woes of Linux Virtualization on Windows 8

C# Refactoring and Failure

C# For Loops and Iterators Uncovered

NBSoftSolutions Now Runs on Jekyll

ENGR151++: Google AI Challenge

High Performance Unsafe C# Code is a Lie

Optimizing Code and Why We Should All be Language Agnostic

Windows 8: Lesser of the Evil

All Beautiful Code Starts Ugly