New
The latest blog posts to take off on Hacker News. 14,543 posts.
Building a Distributed Log from Scratch, Part 1: Storage Mechanics
The log is a totally-ordered, append-only data structure. It’s a powerful yet simple abstraction—a sequence of immutable events. It’s something that programmers have been using for a very long time, perhaps without even realizing it because it’s so simple. Whether it’s application logs, system logs, or access logs…
Simulating Chutes and Ladders in Python
Edit 12/19/2017: added a new subsection on analyzing Chutes & Ladders as an Absorbing Markov Chain.
Tokio internals: Understanding Rust's async I/O framework
Tokio is a Rust framework for developing applications which perform asynchronous I/O — an event-driven approach that can often achieve better …
How to not waste time on a side project when trying to get a job
For the distinct purpose of getting a job in tech, side projects are either a great use of your time or a great waste of your time.
How do Ruby and Python profilers work?
How do Ruby & Python profilers work?
Kernel debugging for newbies
This week, I’ve been working on an application that sets up IPsec connections. PF_KEYv2 is the standard interface for configuring IPsec. PF_KEYv2 is widely-available; even systems with more advanced IPsec stacks (like XFRM on Linux) provide a PF_KEYv2-compatible wrapper. I want my application to work on OS X and…
Elixir multiple processes: Basics
How to work with multiple processes in Elixir
Matrices from a geometric perspective
Graphics is all about geometry. In particular, there are points that have a certain color, and the pattern of colors gives you a certain picture. You can change the way the points are distributed by applying certain transformations like translation (movement), rotation and scaling. While most people familiar with the…
The Emacs Calculator (2009)
Did you know that Emacs comes with a calculator ? Woop-dee-doo! Call the presses! Wow, a whole calculator! Sounds a bit lame, right?
REST is the new SOAP
A journey through a trendy hell
Ideology
Some people claim that unit tests make type systems unnecessary: "types are just simple unit tests written for you, and simple unit tests aren't the important ones". Other people claim that type systems make unit tests unnecessary: "dynamic languages only need unit tests because they don't have type systems." What's…
High-Level Problems with Git and How to Fix Them
When Git first came onto the scene in the mid 2000's, I was initially skeptical because of its horrible user interface. But once I learned it, I appreciated its speed and features - especially the ease at which you could create feature branches, merge, and even create commits offline (which was a big deal in the era…
Software compatibility and our own “User-Agent” problem
Sometimes you have to write code to do some ad-hoc things in order to make programs run in a variety of environments, but as time goes by, it could result in a tragicomical situation where ad-hoc features are built on other ad-hoc features. It is easy to identify that kind of problem, but in many cases, nobody can fix…
Finding bugs in Haskell code by proving it
Last week, I wrote a small nifty tool called bisect-binary , which semi-automates answering the question “To what extent can I fill this file up with zeroes and still have it working”. I wrote it it in Haskell, and part of the Haskell code, in the Intervals.hs module, is a data structure for “subsets of a file”…
Apple's CVDisplayLink Doesn't Link to Your Display
Edit 2017/12/10: So I screwed up, I thought I was safe confirming it in two different ways but I was using an external monitor and all of the below is accurate only for a specific multi-monitor case. Skip to the bottom to read about my new results.
Reading Simple Haskell
-> is right associative, The function definitions from the previous slide will be parsed like this:
Flare: Clojure Dynamic Neural Net Library
I wrote Flare, a Dynamic Neural Net library in Clojure.
Introduction to R Programming
This is a detailed step-by-step introduction to R programming. Starting with the two major reasons to learn R for Data Science, it will guide you through the installation process, and prepare you for the basics of R: arithmetics, variables assignment, data types, functions, and documentations.
Writing a C Compiler, Part 2
This is the second post in a series. Read part 1 here.
Why I love Go
Many years ago, I've been waiting for a language like Go. Back then, I was primarily working with C (for microcontrollers), and C++/Java/Python/etc (for bigger machines). These are great tools, but still I was longing for compiled, statically typed, memory-safe (and garbage collected) language, which compiles for the…
Neural Networks in JavaScript with Deeplearn.js
An extensive tutorial on how to implement a neural network in JavaScript with deeplearn.js to perform machine learning in JavaScript. You can bring neural networks to your browser by using the performance benefits of WebGL. Deeplearn.js makes it possible to implement a WebGL powered neural network ...
Dependent Types for F#
F# DependentTypes
Introduction to logic programming with Prolog
Short introduction to the Prolog language and its essential features.
Debugging an evil Go runtime bug
From heat guns to kernel compiler flags