Don't test with SQLite when you use Postgres in Production
Yesterday, I was looking for some help trying to have a clean way to roll back database transactions at the end of a test in a Python TestC...
The latest blog posts to take off on Hacker News. 14,544 posts.
Yesterday, I was looking for some help trying to have a clean way to roll back database transactions at the end of a test in a Python TestC...
LLVM is a godsend of a research tool. Here are some detailed notes on what LLVM is, why you would want to use it for research, and how to get started as a compiler hacker.
“We learn most when we have to invent” —Piaget In Part 2 you created a minimalistic WSGI server that could handle basic HTTP GET requests. And I asked you a question, “How can you make your server handle more than one request at a time?” In this article you will …
In my attempts to learn the C programming language well enough to write my own C compiler , I've encountered some very interesting examples of C syntax that you generally don't see every day. All of these examples you'll see here will compile without warnings or errors even with very strict compiler flags in gcc and…
I’ve been enamoured with languages in the Lisp family ever since I first encountered The Structure and Interpretation of Computer Programs now more than a decade ago. At the time I was disappointed that such beautiful systems found so little use in day to day programming. Lisp seemed both deeply pragmatic (Objects!)…
Tagged pointers are an interesting technology used to increase performance and reduce memory usage. As of OS X 10.10, NSString got the tagged pointer treatment, and today I'm going to take a look at how it works, a topic suggested by Ken Ferry.
The above is the Hello World program for Java, arguably one of the most popular programming languages. Encapsulated in the above three lines are several different concepts ranging from static functions to return types to stdout and to the entirety of object oriented programming in general.
In this post I go over how to extract a player's shot chart data and then plot it using matplotlib and seaborn .
In this post I’ll describe how I wrote a short (200 line) Python script to automatically replace facial features on an image of a face, with the facial features from a second image of a face.
A blog about ruby/spec.
Today I'm releasing two fuzzers: jsfunfuzz , which tests JavaScript engines, and DOMFuzz , which tests layout and DOM APIs.
Over the last week or so, I've spent my spare time working on a new roguelike game, with a focus on extensive and interesting planet generation. A key characteristic of the genre is that the game world is procedurally generated and this one is no exception.
Docker’s momentum has been increasing by the week, and from that it’s clearly touching on real problems. However, for many production users today, the pros do not outweigh the cons. Docker has done fantastically well at making containers appeal to developers for development, testing and CI environments—however, it has…
I have worked on optimizing the standard library deflate function, and I am happy to announce revised gzip/zip packages, that on x64 is about 30-50% faster with slightly improved compression. Project: https://github.com/klauspost/compress All packages are drop-in replacements for the standard libraries, so you can use…
Update (August 11th): A patch for this bug has been released by Microsoft. Here’s their update to the advisory: We released an updated version of RyuJIT tod...
Much has been written about a purported OpenSSH vulnerability. On closer inspection, the reports actually got most of their facts wrong. Rea...
My friend Lindsey Kuper recently remarked on Twitter that spreadsheets were commonly understood to be the most widely used dataflow program...
The Profound Weakness of the .NET OSS Ecosystem
A while back, John Regehr posted the Nibble Sort Programming Contest on his blog. The objective was to write a program that sorts the 4-bit components (nibbles) of 64-bit words as fast as possible. For example, 0x42badc0ffeed00d5 should result in 0xffeedddcba542000 after sorting.
Monad is a design pattern used to describe computations as a series of steps. They manage side effects in pure functional languages but can also be used in other languages to control complexity.
As an IBM PC historian, one aspect of my hobby is archiving gaming software. (You can take that statement to mean anything you want — whatever you think of, you’re probably right.) At…
David Baron put this up in Mozilla’s San Francisco office a while back: