Top posts
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 14,544 posts.
Version control without Git
If you have any question or suggestions about this tutorial, please file them as issues here .
A todo list for new ASP.NET Core projects
Here are a few things you can do to make your life easier when starting a new ASP.NET Core project, or reducing duplicate code without using boilerplate. Validate model state automatically The usual way would be to have this in almost every action in all controllers: if (!ModelState.IsValid) { // return bad request…
My Git Habits
From the highly eclectic blog of Mark Dominus
Xcode Constantly Phones Home
Building StopTheMadness Pro in Xcode is usually very fast, because my project doesn't use any Swift. It's a combination of Objective-C, which compiles much more quickly than Swift, and JavaScript, which doesn't need to be compiled. However, sometimes the builds were very slow for some strange reason. Checking the…
Beginner's guide to error handling in Rust
Easy to follow guide using practical examples
Predicting the next Math.random() in Java
A while back a friend of mine hosted a programming competition where you were given 9 random numbers one at a time and you had to guess the rank (the sorted position amongst the 9) of each as they are coming in. The goal was to submit a strategy in Java that will maximize the number of these games won. The best…
Hilbert space: Treating functions as vectors
The tools of linear algebra are extremely useful when working in Euclidean space (e.g. \mathbb{R}^3 ). Wouldn’t it be great if we could apply these tools to additional mathematical constructs, such as functions and sequences? Hilbert space allows us to do exactly this - apply linear algebra to functions.
More Things I Wish I’d Known About Bash
My previous post took off far more than I expected, so I thought I’d write another piece on less well-known bash features.
Embrace Complexity; Tighten Your Feedback Loops
Talk transcript on various patterns that slowly influence how teams deal with reliability, and highlight some of the key interactions and behaviors I keep finding work well in the organizations I've been part of.
How I failed to replicate an $86M project in 1 line of code
When an experiment with existing open source technology just cherry-picks results to make it look good
Gameboy Doctor: debug and fix your gameboy emulator
Are you building a Gameboy emulator? Are you stuck? Are you failing Blargg’s test ROMs and can’t work out why?
Tracking Down a Python Memory Leak
In this post, you will discover how I used various tools to track down a memory leak in my Python application under Windows!
Sorting algorithms with CUDA
Building on my previous post on sorting algorithms, I implemented the same algorithms using CUDA to explore performance improvements through parallel computing. The goal is to see how we can leverage the power of parallel computing to speed up our sorting algorithms. I went for a NVIDIA recruiting event some days ago…
Vert.x native: how to run a JVM app in 10Mb of RAM
I’ve been working with GraalVM for a while now mostly on the Polyglot aspect, but some work has been done in the native image support. Today I’d like to shar...
A Comparison of Differential Equation Solver Suites
Many times a scientist is choosing a programming language or a software for a specific purpose. For the field of scientific computing, the methods for solving differential equations are one of the important areas. What I would like to do is take the time to compare and contrast between the most popular offerings. This…
An Update on TinyKVM
Hey all. TinyKVM was open-sourced this february and since then I’ve been working on some things that are very much outside of the scope of…
Exploring mullender.c – A deep dive into the first IOCCC winner
This post will explore the famous winner of the first IOCCC contest, dive into the story behind the code, and even display the original source programs!
Visual Guide to NoSQL Systems
There are so many NoSQL systems these days that it's hard to get a quick overview of the major trade-offs involved when evaluating relational and non-relational systems in non-single-server...
Scaffolding to Superhuman: How Curriculum Learning Solved 2048 and Tetris
Training gaming agents is an addictive game. A game of sleepless nights, grinds, explorations, sweeps, and prayers. PufferLib allows anyone with a gaming computer to play the RL game, but getting from “pretty good” to “superhuman” requires tweaking every lever, repeatedly.
Thoughts on porting NumPy to PyPy
Last weekend, I attended GitHub's PyCodeConf in Miami Florida and had the opportunity to give a talk on array-oriented computing and Python....
The Hitchhiker’s Guide to PlantUML
share a model or diagram between all members of the team that they can all understand and contribute to and edit
Symbolic Execution: Intuition and Implementation
In this article I give a brief tour of a program analysis technique called symbolic execution. As the title indicates, I aim to explain both the intuition behind the technique, and also the details of a simple implementation. My intended audience is professional programmers who have no background in program analysis.
I Built a Ruby Parser
Sorry, this post will read like a “dear diary” entry rather than some life-changing HN-worthy guidance. Back in November 2020, almost on a whim I started work on a new parser for the Ruby programming language. It was almost exactly a year after I had started working on my compiler project (I hope to write a longer…