Christmas shopping the IBM way: computerized gift selection in 1962
In 1962, the Simpson's department store in Toronto used an IBM computer to help customers select Christmas gifts, based on the characteris...
In 1962, the Simpson's department store in Toronto used an IBM computer to help customers select Christmas gifts, based on the characteris...
Today is the day! Today is the day we take our APL programs and interpret them, so that something like ÷ 1 2 3 -⍨ 1.1 2.2 3.3 can output 10 5 3.33333333.
Remembering the merger of Apple and NeXT and how anxious we …
A good scientist, in other words, does not merely ignore conventional wisdom, but makes a special effort to break it. Scientists go looking for trouble. — Paul Graham, What You Can’t Sa…
Mobile OSes and their most successful apps have drained browser choice of meaning for more than a decade. This has lead to confusion for users and loss of control over data. Web developers, meanwhile, face higher costs and reduced ability to escape walled gardens. It's time for the charade to end.
I wrote two posts on the topic of WebKit font smoothing before, but unfortunately the situation has grown worse since then. In allowing the designer to pick their own font smoothing mode with the -webkit-font-smoothing CSS property, WebKit developers have opened up an opportunity for typographic abuse, namely, the…
No, this is not an essay about commas
“I just sit in my office and read all day.” - Warren Buffett
Native-like Navigation for Web apps
I’ve been thinking about garbage collection in Rust for a long time, ever since I started working on Servo’s JS layer. I’ve designed a GC library, …
kelly kaoudis: application security, hacking, software engineering blog
To build a nuke or (can) not build a nuke
Sometimes we start things but decide midway through that we would prefer to rather not be doing them. That process is sometimes referred to as cancellation. Say we accidentally clicked "download" on a large file in the browser. We should have a way to tell the computer to stop downloading it.
Update : Dongli Zhang reports that newer Linux versions organize the stack differently . The code below will need to be modified accordingly.
It had been one hell of a year for the United States and most of the rest of the Western world — a year of rampant chaos and conflict at home and abroad, when the very foundations of democratic society seemed on the verge of crumbling to dust. In the course of twelve months, a brutal war with no prospect of ending had…
This isn't a late April Fools joke. (My April Fools joke that I got hired by Apple as a Swift Evangelist backfired with a profusion of congratulations.) This blog post is a kind of follow-up to some previous blog posts. Last month I wondered what's the best way to distribute Mac apps without notarization , and I…
Farmers effectively work from home, and in the past majority of the population was farming. What can they teach us about Work-Life Balance?
Econ gives us an example of when and why this happens.
With Donald Trump suspended from Twitter and Facebook, and Parler kicked off AWS, there is renewed discussion about what sort of speech is acceptable online, and how it should be enforced. Let me say up front that I believe that these bans were justified. However, they do raise questions that need to be discussed…
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…
A response to a developer weighing Clojure's benefits, explaining the REPL workflow through human-computer interaction and reflecting on individual productivity.
namedtuple has been around since forever, and over time, its convenience saw it used far outside its originally intended purpose. With dataclasses now covering part of those use cases, what should one use named tuples for? In this article, I address this question, and give a few examples from real code.
This article is the sequel to A Universal Async Abstraction for C++ , in which I talk about the Executor proposal targeting C++23. Quite a bit happened since then.