The Metaprogrammer
There are some topics which, if posted onto a forum or news site, cause programmers to spew out more blather than all the rest put together. Such topics include:
The latest blog posts to take off on Hacker News. 14,544 posts.
There are some topics which, if posted onto a forum or news site, cause programmers to spew out more blather than all the rest put together. Such topics include:
In the post on matrices in Codea I mentionned that an affine transformation (things like rotation, scaling, translation) ℝ 3 → ℝ 3 could be specified by giving four vectors. In this post I want to examine that a little more closely for the special case of a rotation. That is to say: how can I encode a rotation in ℝ 3…
You're probably reading this page because you've attempted to access some part of my blog (Wandering Thoughts) or CSpace , the wiki thing it's part of. Unfortunately you're using a browser version that my anti-crawler precautions consider suspicious, most often because it's too old (most often this applies to versions…
If you’re familiar with my blog, you know I’ve lately taken a fancy to doing abominable things to my Intel GPU’s OpenGL driver.
An extensively updated and expanded version of the best-selling first edition. Now covers recent and more advanced features of Haskell.
Haiku uses a custom vector image format to store icons. This is surprising both because most OSes consider bitmaps to be totally sufficient to represent icons and because there are plenty of vector graphics formats out this (e.g. SVG). The goal of the Haiku Vector Icon Format (HVIF) is to make vector icon files as…
In 2005 Intel release the Pentium D, which began the era of multi-core desktop CPUs. Today, even our phones have multiple cores. Making useof all of those c...
There’s a neat variation on open-addressing based hash tables called Robin Hood hashing . This technique isn’t very well-known, but it makes a huge practical difference because it both improves performance and space utilization compared to other “standard” hash tables (e.g. chaining ). It also eliminates the major…
Abstract: Machine and language models of computation differ so greatly in the computational complexity properties of their representation that they form two distinct classes that cannot be directly…
I love Docker . It's so freakin' useful for distributing predictable runtime environments.
I've just read " The Low Quality of Scientific Code ", which claims that code written by scientists comes out worse than it would if "software engineers" were involved.
Learning new language or framework can sometimes be a struggle. Traditional approach is to read documentation which explains the concepts, and provides simple examples. Sometimes that might be enough, but what those documentations are often lacking are some advanced examples and usages in real projects.
This is an essay about what it means to teach a kid to program, using Seymor Paperts groundbreaking book Mindstorms as a reference.
Many programmers use malloc() and free() and pay no more mind to "allocating memory", but I often find 2-20× speed improvements by rethinking memory usage, so it is something I usually want to examine when joining a distressed project.
My experience contributing a medium-sized feature (os.scandir) to the Python 3.5 standard library.
The Sad State of Docker
Use attrs. Use it. Use it for everything.
Tell me if you recognize this scenario: you’re in the middle of rewriting your local commits when you suddenly realize that you have gone too far and, after one too many rebases, you are left with a history that looks nothing like the way you wanted. No? Well, I certainly do. It was in one of those moments of despair…
The Amazon Dash is a $5 WiFi button that summons a truck to deliver you water or other stuff. Want your Dash to do something else? The popular approach is to sniff its ARP requests. This requires that Dash connect to your network, putting you perilously close to having some DUDE delivered with your IoT mood lighting.
On the Z80 CPU there are so few registers and instructions that you can easily know and use them all and wish there were more of them. However, half of the time it feels like the only on you really use is ld. I imagine that if ld took half the number of clock cycles, average code would run twice as fast.
Software Engineer