XOR
Recently I was called on to explain the ‘XOR’ operator to somebody who vaguely knew of its existence, but didn’t have a good intuition for what it was useful for and how it behaved.
Welcome to my web site. I'm Simon Tatham, a software engineer and free-software author in Cambridge, UK.
Visit chiark.greenend.org.uk/~sgtatham → On Hacker News May 2010 – May 2026
Software Engineering 10Open Source 5Security & Privacy 4Math & Algorithms 4Systems & Performance 2Tools & Productivity 1
Recently I was called on to explain the ‘XOR’ operator to somebody who vaguely knew of its existence, but didn’t have a good intuition for what it was useful for and how it behaved.
Home | FAQ | Feedback | Licence | Updates | Mirrors | Keys | Links | Team Download: Stable · Snapshot | Docs | Privacy | Changes | Wishlist
In March 2025 I received an email asking about PuTTY’s “logo” – the icon used by the Windows executable. The sender wanted to know where it had come from, and how it had evolved over time.
This article attempts to give a sort of ‘orientation tour’ for people whose previous programming background is in high (ish) level languages such as Java or Python, and who now find that they need or want to learn C.
I’ve written quite a lot of free software in my life. Most of it was from scratch: projects I started myself. So I get to choose where to host them – or rather, I have to choose where to host them.
Structuring a large program is always a difficult job. One of the particular problems that often comes up is this: if you have a piece of code producing data, and another piece of code consuming it, which should be the caller and which should be the callee?
In the 2010 film Tron: Legacy , there's a scene where the main character Sam Flynn sits down at a computer in his father’s study, and types some commands to try to figure out what Flynn senior had last been working on, before mysteriously disappearing.
Home | FAQ | Feedback | Licence | Updates | Mirrors | Keys | Links | Team Download: Stable · Snapshot | Docs | Privacy | Changes | Wishlist
In my puzzle collection , there are many games in which you have to connect points together by edges, making a graph, and the puzzle rules say you must avoid making any loop in the graph. Examples are Net , Slant , and some configurations of Bridges (although not the default one). Loopy and Pearl also care about…
[Part of a series: Penrose and hats | Spectres | finite-state transducers | more transducers | refining tilings ]
I encountered the idea as a student, when I first read The Art of Computer Programming . I’d been programming already for most of my childhood, and I was completely blown away by the idea, which was entirely new to me. In fact, it’s probably not an exaggeration to say that in the whole of TAOCP that was the single…
Home | FAQ | Feedback | Licence | Updates | Mirrors | Keys | Links | Team Download: Stable · Snapshot | Docs | Privacy | Changes | Wishlist
Code review seems like a great idea, right? Two developers looking at the same code means two chances to spot problems; it spreads understanding of the way the project is evolving; the reviewer can learn useful tricks from reading the author’s code in detail, or spot opportunities to teach the author a useful trick…
Some friends of mine play the board game Settlers Of Catan . In this game, each player rolls two ordinary dice on their turn, and the number which comes up determines what resources people get for the turn. When a seven is rolled, something special happens: no resources are generated, and instead a robber moves on the…
Home | FAQ | Feedback | Licence | Updates | Mirrors | Keys | Links | Team Download: Stable · Snapshot | Docs | Privacy | Changes | Wishlist
[ English | Português | 简体中文 | Česky | Dansk | Deutsch | Español | Français | Magyar | Italiano | 日本語 | Nederlands | Polski | Русский | 繁體中文 ]