New
The latest blog posts to take off on Hacker News. 21,837 posts.
Write a toy strace and gdb
Being able to peek into a process is a very helpful thing when we want to fully understand how a program behaves.
Tips for Self-Learning Programming
Jorge Silva's personal blog on programming and software engineering
Fast Fourier transform in x86 assembly
I have a simple fast Fourier transform implementation on the page Free small FFT in multiple languages , whose asymptotic time complexity is the optimal Θ( n log n ). I wanted to know how much additional speed-up could be obtained by reorganizing memory access patterns and using SIMD vector arithmetic instructions…
Python 3.6 – Asynchronous Comprehensions
PEP 492 and PEP 525 introduce support for native coroutines and asynchronous generators using async / await syntax. This PEP proposes to add asynchronous versions of list, set, dict comprehensions and generator expressions.
Why I'm Making Python 2.8
For the past two months I've been spending half my time on Tauthon . Tauthon is a backwards-compatible Python interpreter that runs Python 2 code and C-extensions exactly as-is, while also allowing Python 2 programmers to use the most exciting new language features from Python 3. These new backported language features…
Developers’ side projects
If you’re a developer working for software company, does that company own what you do in your spare time?
SeaHash: Explained
I explain how SeaHash works.
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