My rant about the fact that cell phones are not two-factor authentication.

I do not use github because they are a  cowardly tool of censorship. If you care about freedom, take the time to arrange independent hosting for your content.


Thoughts on nontermination.

I think Haskell might be missing a non-instantiating parametric case.

Comments on Monads vs Arrows.

Why option-trees are better than lists.

Thoughts on static linkers.

My thoughts on the IPv6 mess

My thoughts on type systems and static analyses.

My adventures with my new Apple TV.

Here's how to get the verbatim environment in TeX to put tildes on the centerline of the text axis, so things like ~> look like arrows, etc:

  defineactive=\def~{\rlap{\lower.85ex\hbox{\text{\large\char126}}}\ }%

A diatribe on which directions the arrows should point in diagrams.

My only partially-formed thoughts on partial semantics.

A few thoughts on undergraduate education in programming languages.

I'm a big fan of tikz/pgf.

Some collected thoughts on laziness in pure functional languages.

An alternative explanation of what category theory is.

I recently switched from darcs to git. Here's a “rosetta stone” to help darcs users learn git and a review of some darcs-to-git translation tools.

I am quite disturbed by the recent trend towards greater centralization of the internet, usually under the guise of “cloud computing”. Most users today don't seem to understand the difference between our email system, which is fully decentralized, and services like facebook, which are operated by a single entity. The increasing centralization resulting from these services creates an irresistable target for hackers and puts censorship decisions in the hands of nongovernmental entities ->, which are not subject to the first amendment.

My attempt at explaining Macro Tree Transducers.

Why FPGA manufacturers keep their bitstream formats secret.

Advice on the IBM Remote Supervisor Adapter.

Advice on using OpenPBX to receive faxes from Gafachi using T.38.

Experiences with my macbook and video corruption.

Advice on afs.

My approach to Wikipedia.

Did you know that the comparison operator in PHP is not transitive? That's a pretty good reason not to use PHP.

I do not support IP blacklist based spam filtering. A recent example of why this is a bad idea can be found in the instance where SpamHaus blacklisted Amazon's IP space

$ dig +short -x

I'm tired of people talking about IPv6 as if it were the solution to the IPv4 address crunch – when in fact it has caused that crunch by being a horrifically bad proposal which has distracted all attention from any attempt to come up with a better solution.

Thoughts : Old

Bitcoin seems to be getting a lot of attention right now, and I think it's an incredibly clever technical solution to the double-spend problem. I've been interested in proof-of-work ever since hashcash.

My idea for snowboard poles.

A diagram of how to use –gc-sections to do class file pruning for gcj.

Web forms with a “country” pull-down menu (typically containing >150 entries) should use GeoIP to pre-populate it with an educated guess. The country you're physically in is the one that you're most likely to want to enter in the form.

How to create a cygwin to darwin cross-compiler.

Thoughts : Obsolete

How I used to have my mail set up and my spam filter as well as notes on dcc. I wrote my own mail server later on, which is what I use now.

Instructions on how to remotely replace a Redhat install with a Debian install. Specifically tailored for use with serverbeach's dedicated servers, but it should work for other providers with minor tweaking.