Top posts
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 21,844 posts.
The context sensitivity of C's grammar
Context free grammars (CFGs) are a valuable theoretical tool on which the modern compilation theory relies for parsing the code of programming languages. For example, the most popular tool used for parsing – YACC , generates parsers for CFGs. What most people don’t know 1 is that the vast majority of programming…
GitLab + Google Cloud Platform = simplified, scalable deployment
We’ve teamed up with Google Cloud Platform – here’s what that means for you.
RLHF: Reinforcement Learning from Human Feedback
[LinkedIn discussion, Twitter thread]
Prototypal Inheritance
Five years ago I wrote Classical Inheritance in JavaScript ( Chinese Italian Japanese ) . It showed that JavaScript is a class-free, prototypal language, and that it has sufficient expressive power to simulate a classical system. My programming style has evolved since then, as any good programmer's should. I have…
Project Cambria: Translate your data with lenses
Changing schemas in distributed software is hard. Could adopting bidirectional lenses help?
The Biggest Myths
Posts and writings by Lennart Poettering
PEP 3113 – Removal of Tuple Parameter Unpacking
Tuple parameter unpacking is the use of a tuple as a parameter in a function signature so as to have a sequence argument automatically unpacked. An example is:
A Million-user Comet Application with Mochiweb, Part 1
In this series I will detail what I found out empirically about how mochiweb performs with lots of open connections, and show how to build a comet application using mochiweb, where each mochiweb connection is registered with a router which dispatches messages to various users. We end up with a working application that…
Errors are values
Idioms and patterns for handling errors in Go.
Using FizzBuzz to Find Developers who Grok Coding
On occasion you meet a developer who seems like a solid programmer. They know their theory, they know their language. They can have a reasonable conversation about programming. But once it comes do…
Bell Labs and CSP Threads
This page is a slice of the history of concurrent programming, focusing on one particular lineage of Hoare's language of communicating sequential processes (CSP) [1] [1a] . Concurrent programming in this style is interesting for reasons not of efficiency but of clarity. That is, it is a widespread mistake to think…
The Tao Of Programming
Last substantive modification 1996-04-10 or earlier; Kragen link updated 2016-11-30
Why Neovim is Better than Vim
I know Vim better than most. Vim was my first real text editor.[1] I used it for years. I helped write the Floobits plugin for Vim. I’ve delved into Vim’s source code to figure out its workings. I e…
Boundaries
This talk is about using simple values (as opposed to complex objects) not just for holding data, but also as the boundaries between components and subsystems. It moves through many topics: functional programming; mutability's relationship to OO; isolated unit testing with and without test doubles; and concurrency, to…
steve yegge - tour-de-babel
Tour de Babel Stevey's Drunken Blog Rants™ This is my whirlwind languages tour — the one I was going to write for the Amazon Developers Journal this month, but couldn't find a way to do it that was... presentable. For one thing, I lapse occasionally into coarseness and profanity here, so it
John Resig - Simple JavaScript Inheritance
I’ve been doing a lot of work, lately, with JavaScript inheritance – namely for my work-in-progress JavaScript book – and in doing so have examined a number of different JavaScript classical-inheritance-simulating techniques. Out of all the ones that I’ve looked at I think my favorites were the implementations…
Concurrency is not parallelism
Watch Rob Pike's talk, _Concurrency is not parallelism._
How to Build an Agent
Building a fully functional, code-editing agent in less than 400 lines.
mikeash.com: NSBlog
accessors (2) advertisement (11) advice (4) apple (7) apress arc (6) arduino assembly (11) assert (2) atomic (3) audio (4) autorelease (3) blocks (14) bolo (3) book (4) books (2) braaaiiiinnnssss (2) bridging bug (3) c (19) c++ (4) c99 casestudy chemicalburn (4) clang (5) classic (2) cocoa (42) code (4) codeinjection…
V is for Vaporware
Xe Iaso's personal website.
The Story of Mel
This was posted to USENET by its author, Ed Nather (utastro!nather), on May 21, 1983.
File over app
If you want to create digital artifacts that last, they must be files you can control, in formats that are easy to retrieve and read. Use tools that give you...
Boolean Blindness
I hate Booleans! But isn’t everything “just bits”? Aren’t computers built from gates? And aren’t gates just the logical connectives? How can a Computer Scientist p…
Proof of Stake: How I Learned to Love Weak Subjectivity
<p>Proof of stake continues to be one of the most controversial discussions in the cryptocurrency space. Although the idea has many undeniable benefits,...
Five Questions about Language Design
(These are some notes I made for a panel discussion on programming language design at MIT on May 10, 2001.) 1. Programming Languages Are for People. Programming languages are how people talk to computers. The computer would be just as happy speaking any language that was unambiguous. The reason we have high level…
How To Become A Hacker
As editor of the Jargon File and author of a few other well-known documents of similar nature, I often get email requests from enthusiastic network newbies asking (in effect) "how can I learn to be a wizardly hacker?". Back in 1996 I noticed that there didn't seem to be any other FAQs or web documents that addressed…