A fun optimization trick from rsync
From the highly eclectic blog of Mark Dominus
The latest blog posts to take off on Hacker News. 14,543 posts.
From the highly eclectic blog of Mark Dominus
Systemd has a remotely exploitable bug in its DHCPv6 client . That means anybody on the local network can send you a packet and take control...
A blog about computers, functional languages, Lisp, and Scheme.
While experimenting with enhancements of the prediction model of Guess.js, I started looking at deep learning. I’ve focused mainly on recurrent neural networks (RNNs), specifically LSTM because of their “unreasonable effectiveness” in the domain of Guess.js. In the same time, I started playing with convolutional…
In the fall of 2016, I was a Teaching Fellow (Harvard's version of TA) for the graduate class on "Advanced Topics in Data Science (CS209/109)" at Harvard University. I was in-charge of designing the class project given to the students, and this tutorial has been built on top of the project I designed for the class.
SIMD is a powerful performance technique, and is especially valuable in signal and image processing applications. I will be using it very extensively in my synthesizer, and also it’s increasingly used in xi-editor to optimize string comparisons and similar primitives.
Array and hash table are probably the most important data structures. Some programming languages such as Perl, Lua and Javascript, almost build the language core on top of the two data structures. …
In this post, we set up the programmable interrupt controller to correctly forward hardware interrupts to the CPU. To handle these interrupts, we add …
Agile Software Development may be mainstream, but much of what's done is faux-agile, and we need to push back.
When receiving bytes from the network, we often assume that they are unicode strings, encoded using something called UTF-8. Sadly, not all streams of bytes are valid UTF-8. So we need to check the strings. It is probably a good idea to optimize this problem as much as possible. In earlier work, we showed that ……
Aftermath of how I moved stars to a great project from an simple project with undeserved stars
I recently learned that in the mid 90s in Japan, the Super Nintendo had a peripheral called a Satellaview, which was a satellite modem that would receive data broadcasts from Nintendo.
Let's talk about when it might be a good or bad idea to start using microservices. SPOILER ALERT: it's not the same for every project.
We need programming, but do we need the program?
Ever since version 1.1, Opus has been able to automatically detect whether its input is speech or music, and choose the optimal encoding mode accordingly. The original speech/music detector was based on a simple (non-recurrent) neural network, followed by an HMM-based layer to combine the neural network results over…
Everything you need to know today about Python Packaging: PEPs 517/518, pyproject.toml, Pipenv, setuptools, and—of course—pip.
In this post we’ll explore Haskell’s kind system, the similarities between types and kinds, and show how these can be leveraged to write safer and more reusable code.
As a developer, you have the power to change the world! You can write programs that enable new technologies. For instance, develop software to find an earlier diagnosis of diseases. But that’s not the only way. You might do it indirectly by creating projects that make people more productive and help them free up time…
I really like decision tables but they’ve fallen out of common knowledge. Let’s fix that. A decision table is a means of concisely representing branching and conditional computations. In the most basic form, you have some columns that represent the “inputs” as booleans and some columns that represent outputs and…
Windows has long had a reputation for slow file operations and slow process creation. Have you ever wanted to make these operations even slower? This weeks’ blog post covers a technique you can use…
Hitting the limit for maximum allowed connections is a common operational problem in Postgres. Here we look at a few techniques for managing connections and making efficient use of those that are available.
Check out how you can use the proc filesystem to retrieve the kernel stack trace of a given process
As someone who frequents the PHP tag on StackOverflow I pretty often see questions about how to parse some particular aspect of HTML using regular expressions. A common reply to such a question is:
The Racket GUI library provides an "editor toolkit" which can be used to implement programs that use an interactive graphical canvas where objects can be moved around with the mouse. This toolkit has good reference documentation, however this documentatio...
There are a lot of places you’ll see * and ** used in Python. These two operators can be a bit mysterious at times, both for brand new programmers...
I’ve spent a good deal of my professional life arguing against using protobuffers. They’re clearly written by amateurs, unbelievably ad-hoc, mired in gotchas, tricky to compile, and solve a problem that nobody but Google really has. If these problems of protobuffers remained quarantined in serialization abstractions…