Like XKCD for History Buffs

Take a look at Hark! A Vagrant:

She also has an LJ at beatonna.

An Interesting Idea

Reading the Canterbury Tales, old school

After my previous encounters with the Canterbury Tales, I’ve decided to read the entire thing. As before, I think that reading a modern translation loses the interesting parts of the language and screws up the poetry, so I want to read it in Middle English. and just because I can, I’m reading (a copy of) a 600-year old handwritten version. Those are images of the Hengwrt (“HENG-urt”) manuscript, which was probably written sometime between 1400 and 1410 (note that Chaucer himself died in 1400, but it’s hard to get closer to when he was alive). The images are very high quality; click the “all sizes” button towards the top to enlarge it a bit, then the “original resolution” link to see its true glory. I wish there was a way to set the default resolution higher, but I don’t know if that’s possible.

Sure, I could read a version with original spelling in a modern font, and towards the end I probably will. but for the moment, the novelty of reading a handwritten manuscript hasn’t worn off, so I’m persisting. It took a bit of time to get the hang of the handwriting and grammar, so in the interests of helping others follow in my footsteps, here is an illustrated guide to reading the manuscript.

Learn about letters and the alphabet, grammar, spelling and vocabulary, and other tips for reading Middle English manuscripts behind this cut →

C++ is bad: structs aren’t the same as structs

Here’s a fun little problem. Suppose you’ve got a system that makes use of the following struct:

struct User {
  unsigned int user_id;
  unsigned short access_level;
  float account_balance;  // stored as US dollars
}

Your system is ridiculously well-tested, all the tests pass, everything works totally fine. I’ll be so bold as to say it’s (kinda) bug-free.

One day, you decide to add a new field to the User struct, a string called name. You recompile everything, and suddenly all kinds of tests fail! New users have all kinds of access levels, some have account balances in the billions while others have accounts worth negative billions. What happened, why, and how do you fix it (without removing name again)? Edit: and no, the code does not rely on brittle assumptions about the value of sizeof(User), nor does it break type safety and have unsafe casts or void*’s pointing into the middle of Users. That would be too easy.

The answers, and more →

Oh, yes.

I don’t care if it’s old; it’s new to me.

Will It Lens? Temperature Breakthrough!

In case you missed it, here are the other parts of the Will It Lens? series. I know I haven’t updated in a while, and I’ve got a huge backlog of pictures. So, part will be discussed here and I already have enough for another post as well.

Remember that all the safety warnings from the other posts in the series still apply here, though I don’t have anything new to add. Thanks for all the suggestions you’ve given us; we’ve tried some, and there have been quite a few good ones!

Improvements to our setup and more pictures of results →

I just found a fantastic show

I totally prefer these dudes over Dawkins and Hitchens; they’re great. Also, their stuff is released under the Creative Commons!

Full episodes (is that the right word for a talk show?) are available at atheist-experience.com.

The photograph lies at my feet, falls from my fingers, is in my hand.

Dearest Internet, I write you today to share a discovery that excited my very being. I have found a wonderful connection between two ideas in which I merely dabble, and the way they complement each other so perfectly has given me new insight into both. The phrase “strawberries and cream” comes to mind. I am, of course, referring to quantum electrodynamics and video games.

If the complementarity is not immediately obvious, let me direct your attention to a particular video game, Braid. Oh, Internet, it is a marvelous game, full of challenge and fun! In the way that Portal is a puzzle game wherein you must manipulate space to solve the puzzles, Braid is a puzzle game wherein you manipulate time. Braid is also an homage to Super Mario Brothers, which gives it a nostalgic feel. But on top of the usual “go left,” “go right,” and “jump” commands, you have at your disposal a “rewind time” button that is your main tool throughout the game. You control a character named Tim, whose goal is to go from the door on the left of the level to the door on the right side, while solving any puzzles preventing this (yes, I am simplifying, but that’s the important part for now).

Although the connection to QED may already be coming into focus, I should like to take a moment to remind you about the discipline. As you may recall, Internet, a man named Richard Feynman worked many a year on QED. He invented something called Feynman Diagrams, which are a very simple way to visually represent interactions between particles. He drew them as graphs with time along one axis and space along another, such as this:

In this image, the horizontal axis is time and the vertical axis is space. Depicted is one possible interaction between an electron and a photon. If one views time as monotonically moving forward (in the intuitive sense by which one normally perceives it), the photon coming down from the top spontaneously degenerates into an electron-positron pair (note that the positron is an anti-electron), and then the positron encounters the electron near the bottom of the diagram, and the two annihilate each other and turn into another photon.

However, there is another way to view this event. Anti-particles behave just like their (non-anti) counterparts moving backwards in time, since they have opposite charge and opposite spin but are otherwise identical. In other words, my good Internet, we could just as easily view this diagram as depicting an electron moving along the bottom of the diagram, then spontaneously “turning around” and moving backwards in time, while shooting off a photon as it reverses direction. It continues to move up the diagram, traveling backwards through time, and then spontaneously reverses its direction once more to travel forwards through time, sending out another photon as it does so. Although this photon gets sent backwards in time, we would perceive it normally because the photon is its own antiparticle (because it has no charge).

This reminded me quite strongly of certain levels in Braid, wherein time goes forwards as Tim moves to the right and backwards as he moves to the left. Here is an example, though it contains spoilers if you have not yet played the game. To give a better illustration of their similarity, consider the following diagram. Living things are in blue, photons are in red, and objects and platforms are in black.

If one were playing the game, one would see Tim come out of the door at the bottom left of the image, travel to the right (going forwards through time) until time E, then shoot out a photon, turn around, and jump up onto the platform (going backwards in time), jump over the Goomba at time B (Goombas can only be killed when going forwards through time). Tim would then turn around at time A (shooting a photon to the left in the process), jump forwards through time and land on the Goomba to kill it, then jump at time D to get to the platform with the door and exit the level.

If, instead, we needed to watch these events as time monotonically increased, we would observe a photon on the platform and a Tim on the floor. At time A, the photon spontaneously decays into a Tim-antiTim pair. The Tim jumps immediately, while a moment later the antiTim unjumps. At time B, a Goomba comes into existence and is killed by the descending Tim. The antiTim, meanwhile, is high above and dodges the event. At time C, the Tim and antiTim collide, annihilate each other and become a photon again, though this photon decays into another Tim-antiTim pair at time D. The Tim jumps and the antiTim unjumps. Then the platform winks out of existence, and the antiTim falls through the space where it used to be. At time E, the antiTim encounters the Tim from the floor, the two annihilate each other and become a photon. The platform materializes above, the remaining Tim lands on it and encounters the final door, finishing the level. When I first realized this, it was a very exciting connection for me. I imagine, dear Internet, that you now share my spark of insight.

If you desire to play Braid for yourself, it is available for download on XBox, Windows, and Mac. The demo is free, and the entire game is $15.

If the arctic ice cap melts…

…where would Christians tell their children that Santa’s workshop is located?

Haven’t you ever wondered? About consonants?

I’ve just finished reading Righting the Mother Tongue, a book about English orthography (spelling). It’s amazing how much English has changed over the centuries. A 200 page book summed up in about 3 pages of text →