WebAssembly: Mozilla Won
Robert O'Callahan. Christian. Kiwi. Software guy. All content human-authored unless otherwise noted.
The latest blog posts to take off on Hacker News. 14,544 posts.
Robert O'Callahan. Christian. Kiwi. Software guy. All content human-authored unless otherwise noted.
Another reason for optimizing compilers: It allows us to write simple and obvious code expecting that the compiler will do the optimization. This both reduces the initial defect count and makes the code more maintainable in the long-run. Note that these are also often the simplest optimizations (e.g. a calculation…
This post covers essentially the same material as a 5-minute presentation I gave at RC .
For better or worse, we count lines of code. We (hopefully) feel a little dirty when we do it, because it's a flawed metric. But we do it . We do it on large codebases and small code snippets . Even badass hacker David Nolen does it .
Updated 2018-01-21: Added clarification related to assertion about lack of context free nature of the C preprocessor.
It happens at least once in the lifetime of every programmer, project manager or teamleader. You get handed a steaming pile of manure, if you’re lucky only a few million lines worth, the original programmers have long ago left for sunnier places and the documentation - if there is any to begin with - is hopelessly out…
An empirical study on the correctness of formally verified distributed systems Fonseca et al., EuroSys’17 “Is your distributed system bug free?” “I formally verified it!R…
I’ve been watching the Chinese TV show 他来了,请闭眼 (Love Me If You Dare). It’s a good show, kinda reminiscent of the BBC series Sherlock, likewise a crime drama ...
A short and self contained explanation that will guide you through an implementation of user threads.
In the last couple of months, I've been seeing the ú symbol on British receipts. Why? 1963 - ASCII In the beginning* was ASCII. A standard way for computers to exchange text. ASCII was originally designed with 7 bits - that means 128 possible symbols. That ought to be enough for everyone, right? Wrong! ASCII is the…
Building your own UNIX shell in parts. This post focuses on the semantics of the fork system call.
Almost five months ago, I wrote a blog post about my new programming language, Hackett , a fanciful sketch of a programming language from a far-off land with Haskell’s type system and Racket’s macros. At that point in time, I had a little prototype that barely worked, that I barely understood, and was a little bit of…
TLA+ is a formal specification and verification language intended to help engineers specify, design and reason about complex, real-life algorithms and software or hardware systems. We explore its motivation, application and principles of design.
Update, December 9, 2017: This overlay still exists, but this post’s instructions don’t work on iOS 11 and later. In an update to his excellent book, Advanced Apple Debugging and Reverse Engineering, Derek Selander describes how to get the panel working in iOS 11. He’s generously posted the chapter for free here.While…
Several holidays ago, I got a bee in my bonnet and wrote a fast JSON parser whose parsed AST fits in a single contiguous block of memory. The code was small and simple and the performance was generally on-par with RapidJSON, so I stopped and moved on with my life.
Some advices to writing Clojure code
Today I finally released the project I’ve been working on for the last two years at MIT CSAIL : An HTML-based language for creating (many kinds of) web applications without programming or a server backend. It’s named Mavo after my late mother ( Ma ria V er o u), and is Open Source of course (yes, getting paid to work…
Handy Git tricks and aliases: leaderboards, praise, word-diff, branch history, daily recaps, changelog generation, and more in one quick guide.
Little Lisp is an interpreter that supports function invocation, lambdas, lets, ifs, numbers, strings, a few library functions, and lists. I wrote it for a l...
The demoscene is about producing cool real time works (as in “runs on your computer”) called demos . Some demos are really small, say 64 kilobytes or less, and these are called intros . The name comes from “crack intros”. So an intro is just a demo that’s small.
I’ve used Linux as my primary operating system for well over ten years, yet I still stumble upon things that are completely unknown to me. For example...
Most users who use the internet today, are mostly focused on three protocols, HTTP, TLS, and DNS.
This article is about lexmachine , a library I wrote to help you write great lexers in Go. If you are looking to write a golang lexer or a lexer in golang this article is for you.
Now that the CoreCLR is open-source we can do fun things, for instance find out if it’s possible to add new IL (Intermediate Language) instruction to the runtime.