How do we write software that survives in a world of malware? Is it just a matter of writing safer code or do some of our core assumptions need to be modified? […]
Over 20 years of programming. From video games to communications; science to finance; compilers to business processes. Too many languages to even track anymore.
Here's looking to another 20 years towards mastery of the craft.
Three key concepts comprise the essence of functional programming: first-class functions, pure functions, and immutable data. Together they express a fundamental architectural paradigm on how units of code interact with each other. […]
Testing graphical user interfaces is a challenge. Full automation is appealing but it’s expensive and doesn’t yield good results. UI’s are something where a real human should be involved. By using an […]
Microsoft has played a significant role in the damage of the WannaCry ransomware. Certainly the proximate cause lies with the malware’s authors, and they should be held accountable. The complacent NSA is […]
Finally, a big step for Leaf: something that could be called an actual program. Over the weekend I finished a program that loads a file, sorts the lines, and writes it to […]
Imperative programming is a paradigm that explicitly tells the computer what to do and how to do it. Unlike most other approaches it is a relatively concrete view on data and execution […]
Despite a label of 5.1 surround I only ever get stereo sound from Amazon Prime. I mange to get surround from other providers and devices, just not Amazon. Is it one of […]
When I saw the below demo I thought “neat, how’d they do that”? That may sound surprising if you knew that I wrote the API for this. In this article I’ll describe […]
Ad-block users are finding an increasing number of sites blocking access. I wonder if any of them asked themselves why we block ads? Do they suppose we’re anti-capitalist scum fundamentally opposed to […]
Why would somebody ever want to take perfectly fine code history and erase it? Phrased like that it makes git squashing seem ridiculous. Alas, some people find sanitizing history is the preferred […]
As types are a keystone in Leaf, working with them must be fluid and simple. I recently improved this area by adding named constructors and bare type names. The results are interesting. […]
I needed pleasant range values for the charting API in Fuse. These are the values written by the ticks on the plot, typically on the Y-axis. In the interest of simplicity it […]
What’s the difference between “horrible” and “horrifying”? It’s a simple question posed to me by a friend in the process of editing her novel. It set me off on a tangent, a […]
Language support for caching sucks. Despite an ever present need to cache data and calculations most languages require the programmer to do all the work. There’s no way to track dependencies, no […]