New
The latest blog posts to take off on Hacker News. 4,390 posts.
Debug your programs like they're closed source
Debug your programs like they're closed source!
Command-line tools can be faster than your Hadoop cluster
Adam Drake is an advisor to scale-up tech companies. He writes about ML/AI/data, leadership, and building tech teams.
Arch Linux on MacBook Pro Retina 2014
[Version française] (/2015/01/arch-linux-sur-macbook-pro-retina-2014-avec-dm-crypt-lvm-et-hibernation)
Security: OpenBSD vs. FreeBSD
Blog about network and security, showing example of Linux iptables and Snort configuration, and Windows security softwares.
What's New in CPUs Since the 80s and How Does It Affect Programmers?
My mental model of CPUs is stuck in the 1980s: basically boxes that do arithmetic, logic, bit twiddling and shifting, and loading and storing things in memory. I'm vaguely aware of various newer developments like vector instructions (SIMD) and the idea that newer CPUs have support for virtualization (though I have no…
Be your own VPN provider with OpenBSD
Blog about network and security, showing example of Linux iptables and Snort configuration, and Windows security softwares.
We have broken HTTP
If you’re a web developer, then you owe your job to HTTP. You should probably know more about it than you do.
151-byte static Linux binary in Rust
Part of the sales pitch for Rust is that it's "as bare metal as C". 1 Rust can do anything C can do, run anywhere C can run, 2 with code...
Installing Red Star 3.0, North Korea's homegrown operating system
Earlier this week, someone who goes by slipstream (“pulling data out of DPRK’s ass since 2014!”) posted a torrent of North Korea’s Red Star 3.0 installer. My first instinct was to download and run it, because installing software from North Korea, what could possibly go wrong?
Notes on Red Star OS 3.0
How to navigate North Korea's home-grown Linux distribution.
NixOS and Stateless Deployment
If you just want to get in touch, you can talk to me in an emailwardly fashion here .
OS Technologies to Watch
If you just want to get in touch, you can talk to me in an emailwardly fashion here .
Considering performance in the small is not “premature optimization”
DISCLAIMER : The following are my own personal opinions and are not shared, sanctioned or endorsed by anybody in particular, especially my employer. Any criticisms expressed herein are of a general nature and are neither inspired by nor directed at any person, entity, or product in particular. Links to other online…
Interactive Programming in C
I’m a huge fan of interactive programming (see: JavaScript , Java , Lisp , Clojure ). That is, modifying and extending a program while it’s running. For certain kinds of non-batch applications, it takes much of the tedium out of testing and tweaking during development. Until last week I didn’t know how to apply…
PHP 7's new hashtable implementation
About three years ago I wrote an article analyzing the memory usage of arrays in PHP 5. As part of the work on the upcoming PHP 7, large parts of the Zend Engine have been rewritten with a focus on smaller data structures requiring fewer allocations. In this article I will provide an overview of the new hashtable…
The Lava Layer Anti-Pattern
TL:DR Successive, well intentioned, changes to architecture and technology throughout the lifetime of an application can lead to a fragmente...
The Performance Cost of Integer Overflow Checking
How much overhead should we expect from enabling integer overflow checks? Using a compiler flag or built-in intrinsics, we should be able to do the check with a conditional branch that branches based on the overflow flag that add and sub set. Code that looks like
Hidden Costs of Memory Allocation
It’s important to understand the cost of memory allocations, but this cost can be surprisingly tricky to measure. It seems reasonable to measure this cost by wrapping calls to new[] and delet…
The Offline Cookbook: caching and serving offline-first
Update: Together with Udacity I created a free offline-first interactive course . It involves taking an online-only site to full offline-first glory. Many of the patterns in this article are used.
Make your program slower with threads
Years ago, while taking a numerical methods course, I wrote some code to calculate the expected number of shared birthdays in a group. The code is very simple: each attempt constructs a vector of N birthdays, then counts the duplicates. The outer loop runs millions of attempts, and calculates the mean number of shared…
A quick tutorial on implementing C memory management functions
This is basically an expanded explanation of what I did after reading this tutorial by Marwan Burelle and then sitting down and trying to write my own implementation, so the steps are going to be fairly similar. The main implementation differences are that my version is simpler and more vulnerable to memory…
Programming Modern Systems Like It Was 1984
It's not about technology for its own sake. It's about being able to implement your ideas.