New
The latest blog posts to take off on Hacker News. 14,544 posts.
Kotlin Is Better
I've also ended up using Emacs along side Jetbrains IDEs (PyCharm & Webstorm). It is an odd combo but it works great. Emacs for mind-control level text editing, and the IDE works great for mouse-oriented poking around and small edits.
The Hitchhiker’s Guide to D3.js
The landscape for learning d3 is rich, vast and sometimes perilous. You may be intimidated by the long list of functions in d3’s API…
Approximating sin(x) to 5 ULP with Chebyshev polynomials
Weblog/homepage for a developer/engineer/artist. DIY projects, opinions and code.
Programmers Should Automate More
Last week, I created a small script to aid my workflow which left me wondering why I didn't make it earlier. It adds an option in [Finder](https://en.wikipedia.org/wiki/Finder_\(software\))'s context menu to start a static web server in any folder which makes it easier to preview static websites. Technically, it's…
The Story of a Rust Bug
A while ago, I built a system-tray application in Rust to notify me of new e-mail called buzz. It was working fine, but every now and again, it would fail to connect to the mail server on boot if it started before my network connection was up. Sounds easy enough to fix, so I just added a loop around my connect (even…
The Many Layers of Packaging: Why PyPI Isn't an App Store
Thoughts on FOSS and fintech, layered by Mahmoud Hashemi
Making a Game in Rust
Last week, I released A Snake’s Tale on iOS , Android , Windows, Mac, and Linux .
Fearless concurrency in your microcontroller
A blog about Rust and embedded stuff
Turning Sublime Text into a Lightweight Python IDE
A solid text editor is a developer’s best friend. You use it constantly and it becomes like a second pair of hands. The keyboard commands you use daily become so engrained in your muscle memory that you stop thinking about them entirely.
The Configuration Complexity Clock
When I was a young coder, just starting out in the big scary world of enterprise software, an older, far more experienced chap gave me a ste...
Zip Files All the Way Down (2010)
A well-known scientist (some say it was Bertrand Russell) once gave a public lecture on astronomy. He described how the earth orbits around the sun and how the sun, in turn, orbits around the center of a vast collection of stars called our galaxy. At the end of the lecture, a little old lady at the back of the room…
Lightmap Compression in the Witness
In my initial implementation of our lightmapping technology I simply stored lightmap textures in RGBA16F format. This produced excellent results, but at a very high memory cost. I later switched to the R10G10B10A2 fixed point format to reduce the memory footprint of our lightmaps, but that introduce
Rust Memory Management
In the light of my latest fascination with Rust programming language, I've started to make small presentation about Rust at my office , sinc...
I Broke Rust's Package Manager for Windows Users
Last weekend I was playing around with a way to represent null-terminated UTF8 strings in Rust. Rather than just toying with it forever, I decided ...
Key differences between Python 2.7.x and Python 3.x (2014)
Many beginning Python users are wondering with which version of Python they should start. My answer to this question is usually something along the lines…
Sorting Two Tons of Lego, the Software Side
All the software written for this project is in Python. I’m not an expert python programmer, far from it but the huge number of available libraries and the fact that I can make some sense of it all without having spent a lifetime in Python made this a fairly obvious choice. There is a python distribution called…
Generating all permutations, combinations, and power set of a string (2012)
Combinatorics is a branch of mathematics that deal with counting of discrete structures. Two concepts that often come up in the study of c...
GUI Architectures (2006)
Describing the way architectures for UIs have evolved over the years, in particular the many and often misunderstood definitions for Model-View-Controller.