Bookmarklet is a nifty service for reading pages that might be limited in the number of pages you can read per month. I often use it to read articles on Bloomberg or the NY Times for example. Here’s a handy bookmarklet that can allow you to read paywalled pages using (also known as Note that I have code that removes all url parameters after the “?”. This is handy to remove all analytics parameters and other things that prevent the url from being found in the archive.

Extracting HN Book Recommendations with the ChatGPT API, Vol. II

This is a follow-on from the original blog post Extracting HN Book Recommendations with the ChatGPT API. Method used In the original post I didn’t describe the process used to arrive at the results. I originally had a much longer post with much discussion about the process, but it was too long and the structure was poor, so I rewrote it in a more concise form. In the process I excluded the explanatory stuff.

Extracting Hacker News Book Recommendations with the ChatGPT API

2023-10-12: I have written a followup with some details about the process used to generate this list: Extracting HN Book Recommendations with the ChatGPT API, Vol. II I love books and I enjoy reading through the Hacker News (HN) book recommendation threads. On HN, there’s almost 200 stories so far this year that have the separate word “book” in the title, and aren’t linked to another page. I wondered what the most commonly recommended or mention books are.

SIMD Within a Register (SWAR) on Strings in Go 1.20

To introduce SWAR (SIMD within-a-register) techniques in go, we’ll implement the simplest thing I can think of: checking if a string is ASCII. SWAR is the technique of operating over multiple datapoints within one register of the cpu. In our case one 64-bit variable will contain 8 bytes of our string so we can process 8 bytes at a time. We’ll do this in go without any C functions or assembly.

Which Consumer Computers Support AVX-512?

Intel’s latest generations of consumer CPUs have lost the ability to run AVX-512 instructions. Because they run a mix of powerful cores and low-power ‘Efficiency’ cores that don’t support AVX-512, the instruction have been disabled in the P-cores to prevent any problems with software that expects all cores to have the same instructions available. This is an irritation for someone who would like to have the convenience of running AVX-512 code on your own PC.

The Future of Autocompletion for Go, using Sublime Text 3

In which I describe a new editor tool for go programmers that implements the Language Server Protocol. I’m excited to have a tool that works with my editor of choice, Sublime Text 3, and is easy to install. Recently I tried installing some go tooling for Sublime Text 3, so I could get some auto-completion happening and get information about available functions. I tried installing goSublime, but found that there was no documentation on how to install it.

Installing the Hugo Blog software in WSL

I’m running Ubuntu 18.04 on WSL (Windows Sybsystem for Linux), and I want to run the hugo blogging software. I could have installed it in windows, but I thought the compatibility might be better in a linux environment. The version of Hugo that comes with Ubuntu, via sudo apt install hugo, is too old and doesn’t work with any of the themes I’ve tried. The easiest way to install hugo on ubuntu and get a recent version is to go to the hugo releases page at https://github.