New
The latest blog posts to take off on Hacker News. 1,304 posts.
Why I switched from Vim to Emacs
EDIT: As pointed out on reddit (both in r/emacs and r/vim), many of my criticisms of Vim are unfair. Everything I posted about was based purely on my personal experience with the two, but much of m…
Don Libes' Expect: A Surprisingly Underappreciated Unix Automation Tool
In this article, I will attempt to convince you that Expect is an extremely underappreciated tool for automating terminal applications in Unix.
Wizards and warriors, part one
A common problem I see in object-oriented design is: A wizard is a kind of player. A warrior is a kind of player. A staff is a kind of weapon. A sword is a kind of weapon. A player has a weapon. Bu…
Talks that changed the way I think about programming
The best teacher I had in graduate school spent the whole semester destroying any beliefs we had about computing. He was a real iconoclast. He happened to be a genius, so we took it. At the end of the course, we were free because we didn't believe in anything. We had to learn everything, but then he destroyed it. He…
Data Wrangling at Slack
For a company like Slack that strives to be as data-driven as possible, understanding how our users use our product is essential. The Data Engineering team at Slack works to provide an ecosystem to help people in the company quickly and easily answer questions about usage, so they can make better and data informed…
The State of Babel
- Some History
Yoga: A cross-platform layout engine
Visit the post for more.
An Algebra of Graphs
Graph theory is my favourite topic in mathematics and computing science and in this blog post I’ll introduce an algebra of graphs that I’ve been working on for a while. The algebra has become my go-to tool for manipulating graphs and I hope you will find it useful too.
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!
It Takes 6 Days to Change 1 Line of Code (2015)
(A true story.) Philip (President): Our factory is underutilized by 10%. Either we start building more of our backlog or we lay people off. I'd rather keep everyone busy, build inventory, and get...
Newsletter #7 - Summer of Road
hyperextensible Vim-based text editor
Closure Compiler in JavaScript
The Closure Compiler was originally released, in Java, back in 2009 . Today, we're announcing the very same Closure Compiler is now available in pure JavaScript , for use without Java. It's designed to run under NodeJS with support for some popular build tools.
Actually using ed (2012)
The classic ed editor is a really good example of a sparse, minimal, standard Unix tool that does one thing, and does it well. Because there are so many good screen-oriented editors for Unix, there’s seldom very much call for using ed , unless you’re working on very old or very limited hardware that won’t run anything…
Write a Shell in C (2015)
A tutorial on how to write a Unix shell in C.
Analysis of longevity of code across many popular projects
As a project evolves, does the new code just add on top of the old code? Or does it replace the old code slowly over time? In order to understand this, I built a little thing to analyze Git projects, with help from the formidable GitPython project.
Why does calloc exist?
[Edit: Welcome Hacker News readers! Before we dive into the neat memory management esoterica, I want to briefly note that as engineers we have an ethical obligation in our work to consider the "safety, health, and welfare of the public" , because if we don't, terrible things happen . This is a challenging…
Dear JavaScript
This article has been moved to: http://thejameskyle.com/dear-javascript.html
Measuring GC latencies in Haskell, OCaml, Racket
James Fisher has a blog post on a case where GHC's runtime system imposed unpleasant latencies on their Haskell program: Low latency, large working set, and GHC's garbage collector: pick two of three The blog post proposes a very simple, synthetic benc...
Design and Implementation of a Win32 Text Editor (2005)
Welcome to the brand new tutorial series - “Design and Implementation of a Win32 Text Editor!” The purpose of these tutorials is to follow the development of a …
Disassembling Sublime Text
This afternoon I spent some time with the free trial of the Hopper Disassembler looking through the binary of Sublime Text 3. I found some interesting things and some undocumented settings.