Creează un cont pentru a te abona la acest blog și a-i urmări articolele pe pagina Lectură.
-
I used an AI agent to make a big update to my GiftyWeddings.com website, taking it from a gift registry to a full website builder in 275 commits.
-
In which I have some fun with Claude Opus 4.6, a seemingly indecisive AI coding agent.
-
Dependencies are a huge supply chain security risk; the more of them you have, and the more often you update, the bigger the attack surface.
-
Discusses some design choices used in Jubilant: Python subprocess.run to wrap a CLI tool, a code generator to convert Go structs to Python dataclasses, and the use of uv with a simple Makefile to run commands.
-
Shows how much the performance of Go has improved from version 1.0 through to 1.22 (including PGO) -- in its compiler, runtime, and libraries.
-
How I solved the One Billion Row Challenge (1BRC) in Go nine times, from a simple unoptimised version that takes 1 minute 45 seconds, to an optimised and parallelised version that takes 3.4 seconds.
-
How I switched my side project from using Amazon S3 for file hosting to using Tigris (which is built on Fly.io infrastructure).
-
This is a transcription of Jim Lawless's interview with Ben Hoyt on his Stray Pointers podcast.
-
Not technical writing, but Jim Lawless interviewed me on his "Stray Pointers" podcast.
-
Describes a simple Markov chain algorithm to generate reasonable-sounding but utterly nonsensical text, and presents some example outputs as well as a Python implementation.
-
Advice for how to (and how not to) apply for a software engineering job, particularly for the written parts of the interview process.
-
A discussion of the minimal version of Make included in 'The AWK Programming Language', as well as a Python port of the AWK program.
-
Describes the WordStar diamond, a wonderful set of key bindings from the 1970s, and how you can use it in 2023 on Linux or Windows.
-
A variable's name is more important than its type, so the name should be more prominent and come first in declarations.
-
A brief look at the proposed enhancements to the Go standard library HTTP request router, net/http.ServeMux: matching on HTTP method, and supporting wildcards in matched paths.
-
In which I rewrite my toy pygit client in Go to see how suitable Go is for simple scripts.
-
Short, meaningful names that take context into account are better than long, verbose names that don't.
-
An article about lookup tables in Forth that I co-authored with Hans Bezemer (creator of 4tH) when I was 16.
-
When designing Python packages, decoupling the file structure from the package's API makes your package easier to import and use.
-
Principles I've found useful for designing good Python library APIs, including structure, naming, error handling, and type annotations.
-
How I switched hosting my Go-based side projects from Amazon EC2 to Fly.io, significantly simplified deployment, and saved a bit of cash while I was at it.
-
This article describes GoAWK's code coverage support, which was contributed by Volodymyr Gubarkov.
-
In 2022, disk I/O is very fast, and not usually the performance bottleneck in programs.
-
What our crowdfunding startup microPledge was, why it failed, and what we learned from the process.
-
Translating Rob Pike's simple and elegant C regex matcher to Go.
-
How I build my website benhoyt.com with GitHub Pages, Jekyll, a simple HTML+CSS layout, Sublime Text, and Sublime Merge.
-
Why and how I added proper CSV support to GoAWK, my POSIX-compatible AWK interpreter.
-
Describes Prig, which is for Processing Records In Go.
-
Shows how much the performance of Go has improved from version 1.2 through to 1.18 -- in its compiler, runtime, and libraries.
-
How I sped up GoAWK by switching from a tree-walking interpreter to a bytecode compiler and virtual machine interpreter.
-
A discussion of AWKGo, a simple compiler that translates a useful subset of the AWK text processing language into Go source code.
-
My re-implementation of the code from the official Go tutorial 'Developing a RESTful API with Go and Gin', using only the standard library, adding tests, and fixing issues.
-
Simple Lists is a tiny to-do list web application written in Go, with old school server-side rendering and no JavaScript.
-
A critical but informative look at the new structural pattern matching feature in Python 3.10, with real-world code examples.
-
An overview of Mugo, a single-pass compiler for a tiny subset of the Go programming language -- just enough to compile itself.
-
An explanation of how to implement a simple hash table data structure, with code and examples in the C programming language.
-
Performance comparison of counting and sorting word frequencies in various languages (Python, Go, C++, C, AWK, Forth, Rust, and others).
-
A vision for the "small web", small software, and small architectures.
-
A look at the new os.ReadDir function and os.DirEntry interface coming in Go 1.16, with a comparison to os.scandir in Python.
-
An overview of fuzz testing and the go-fuzz tool, as well as a look at the recent draft design for including fuzz testing in the `go` tool (LWN.net).
-
A look at Sourcegraph, a code search and code intelligence tool (LWN.net).
-
Compares routing techniques in Go, including five custom approaches and three using third-party routing libraries.
-
A presentation of the Go draft designs for a filesystem interface and a standard way to embed files in a Go binary (LWN.net).
-
Talks about the valiant but almost-dead 10-year effort to prevent tracking with the Do Not Track header.
-
An overview of the new features in Lua 5.4 (LWN.net).
-
An overview of Hugo, a flexible static website generator written in Go and optimized for speed (LWN.net).
-
Gives some background, the current state, and potential timeline for including generics in the Go programming language (LWN.net).
-
Looks at some heavier replacements for Google Analytics, as well as the GoAccess log-based analytics tool (LWN.net).
-
Discusses what Google Analytics tracks, and presents two lightweight alternatives: GoatCounter and Plausible (LWN.net).
-
A brief introduction to Go for programmers who haven't used Go before: Why use it?