New
The latest blog posts to take off on Hacker News. 14,544 posts.
Is Semantic Versioning an Anti-Pattern?
The classic X.Y.Z style of software numbering, sometimes known as Semantic Versioning, may be hurting more than it helps. Semver.org has codified how these numbers should be used for some cases, describing what is meant by the major and minor version numbers, when to change them, what
Announcing Remacs: Porting Emacs to Rust
programming, language design, and human factors
A deep dive into ClojureScript reagent
Programing in Clojure and ClojureScript
The design of Chacha20
Chacha20 is a secure, fast, and amazingly simple encryption algorithm. Let's take a look.
Working on Chrome made me develop a tool for reading source code
Coati is a developer tool for fast and efficient source code navigation and exploration. This is the story of how an internship at Google…
Go and Dogma
[ Cross-posting from last year’s Go contributors AMA on Reddit, because it’s still important to remember. ]
Add a const here, delete a const there
Update, February 2019: Two years later the VC++ bug I reported here still exists, even in VS 2019 preview. However Chromium no longer builds with VC++ so I’m reverting the changes where I del…
An obscure research project could accelerate innovation in language design
An obscure research project could radically accelerate innovation in programming language design
Research papers in the .NET source
This post is completely inspired by (or ‘copied from’ depending on your point of view) a recent post titled JAVA PAPERS (also see the HackerNews discussion). However, instead of looking at Java and the JVM, I’ll be looking at references to research papers in the .NET language, runtime and compiler source code.
A Tourist’s Guide to the LLVM Source Code
Hi, would you allow me to translate your article to French, preferably under a free lincense like CC-by-sa?
Select(2) is fundamentally broken
In a previous blog post we discussed a brief history of the select(2) syscall . The article concludes that some I/O multiplexing was necessary to do console emulation, games and non-trivial TCP/IP applications.
Goroutines, Nonblocking I/O, and Memory Usage
I am generally a fan of Go's approach to concurrency: writing code with goroutines is a lot easier than writing traditional nonblocking network servers in a language like C or C++. However, while working on a highly concurrent network proxy I came across an interesting realization about how the Go concurrency model…
Lock-Free Bugs
[ I wrote this post in mid-2014 for debuggers.co, which seems to have gone at least partly defunct, so I am reproducing it here. That site collected answers from programmers to the prompt “What’s the most interesting bug you’ve encountered?” ]
Why isn't memset() async-signal-safe?
Really, POSIX? Really? memset() isn't async-signal-safe? How is it not safe? … oh … that's why
Writing a Faster Sorting Algorithm
These days it’s a pretty bold claim if you say that you invented a sorting algorithm that’s 30% faster than state of the art. Unfortunately I have to make a far bolder claim: I wrote a …
Why recursive data structures?
In this essay, we are going to look at recursive algorithms, and how sometimes, we can organize an algorithm so that it resembles the data structure it manipulates, and organize a data structure so that it resembles the algorithms that manipulate it.
How I Write Tests
The longer I spend as a software engineer, the more obsessive I get about testing. I fully subscribe to the definition of legacy code as “code without an automated test suite.” I’m convinced that the best thing you can do to encourage fast progress in a test suite is to design for testing and have a fast, reliable…
How (Not?) to Use Python’s List Comprehensions
Lesser known is that you can have nested list comprehensions, that handle nested for loops:
The Memory Models That Underlie Programming Languages
There are about six major conceptualizations of memory, which I’m calling “memory models”, that dominate today’s programming.
Be Careful with Python's New-Style String Format
Some general warnings about the use of str.format in Python.