New
The latest blog posts to take off on Hacker News. 278 posts.
Massive: The asm.js Benchmark
asm.js is a subset of JavaScript that is very easy to optimize. Most often it is generated by a compiler, such as Emscripten, from C or C++ code. The result ...
Porting rr to x86-64
(TL;DR: rr from git can record and replay 64-bit programs. Try it for yourself !)
What Does an Idle CPU Do?
In the last post I said the fundamental axiom of OS behavior is that at any given time, exactly one and only one task is active on a CPU. But if there’s absolutely nothing to do, then what? It turns
Terminals Are Weird
Terminals 1 are quite weird. Most modern users assume that they can just have straightfoward keybindings. Right? To bind Ctrl+i to something, they listen for Ctrl+i in their application. If they want to bind Ctrl+Shift+i to something different, they certainly can, they just listen for Ctrl+Shift+i as well. Naturally…
Spidermonkey has passed V8 on Octane performance
Robert O'Callahan. Christian. Kiwi. Software guy. All content human-authored unless otherwise noted.
Post Mortem: A single whitespace character
Cloud printing for retail and food and beverage operations.
Will It Optimize? (2010)
See how well you know (or can anticipate) gcc's optimizer. For each question, the left box contains some code, while the right box contains code that purports to do the same thing, but that illustrates a particular optimization. Will gcc apply that optimization? Put another way, will the code on the left be as fast as…
X86 boot sector written in C (2010)
Writing an MS-DOS-compatible boot sector in C: parsing the FAT BIOS parameter block, finding IO.SYS, and loading it via BIOS INT 13h in real mode.
Avoiding systemd isn't hard
The former contents of this blog post have been removed.
Facebook's software architecture
I had summarized/discussed a couple papers ( Haystack , Memcache caching ) about Facebook's architecture before. Facebook uses simple arch...
How Unreliable is UDP?
Unlike TCP, UDP doesn't provide any delivery or ordering guarantees. Put into practice, just how bad, or good, is UDP?
Linux 3.17
Summary of the changes and new features merged in the Linux kernel during the 3.17 development cycle
Why threads can't fork
There is an interesting thread on the Go issue tracker about daemonizing processes. Most of the thread is not about daemonizing processes though, but more about why Go has no Fork() function which you can call directly in your code. The first time I read through it I was wondering and saying to myself: “Yeah, why is…
Fun with Shellshock
This is great work. Though I must confess I’m more interested (and far more uneasy) about the other side of the coin — people developing projects like these involving machine learning to find and exploit the vulnerabilities in a fully automated fashion. This is related to, but not quite the same as, attempts at…
Spark Breaks Previous Large-Scale Sort Record
Read how Apache Spark sorted 100 TB of data (1 trillion records) 3X faster using 10X fewer machines in 2014.
Intel Underestimates Error Bounds by 1.3 Quintillion
Intel’s manuals for their x86/x64 processor clearly state that the fsin instruction (calculating the trigonometric sine) has a maximum error, in round-to-nearest mode, of one unit in the last place…
History of Apache Storm and Lessons Learned
Apache Storm recently became a top-level project , marking a huge milestone for the project and fo...
On the Computational Complexity of MapReduce
I recently wrapped up a fun paper with my coauthors Ben Fish, Adam Lelkes, Lev Reyzin, and Gyorgy Turan in which we analyzed the computational complexity of a model of the popular MapReduce framework. Check out the preprint on the arXiv. Update: this paper is now published in the proceedings of DISC2015. As usual I’ll…
EC2 Maintenance Update II
I’d like to give you an update on the EC2 Maintenance announcement that I posted last week. Late yesterday (September 30th), we completed a reboot of less than 10% of the EC2 fleet to protect you from any security risks associated with the Xen Security Advisory (XSA-108). This Xen Security Advisory was embargoed until…
ZooKeeper: Wait-free coordination for Internet-scale systems
Zookeeper is an Apache project for providing coordination services to distributed systems. ZooKeeper aims to provide a simple kernel (a fil...
Counting bytes fast
An apparently trivial and uninteresting task nonetheless received some special optimization care within FSE : counting the bytes (or 2-...