Log in

Thoughts on the Library of Babel

Each book in the Library of Babel has 1312000 characters (22 letters, space, comma and period). This means that there are 251312000 ~= 1.956 * 101834097 books. This is a really really big number. There are only about 1080 atoms in the observable universe. If we wanted a set of unique books, each dedicated to an atom, each book would only have to be about 57 pages long.

Each hexagon contains 20 shelves of 35 books - that's 700 books. 251312000 / 700 ~= 251311997.964 hexagons. Borges describes them extending in all directions, and also conjectures that the Library is cyclical - keep going far enough in one direction, and you'll come around on the other side. Let us also assume that no matter which direction you go, you'll visit the same number of hexes before repeating (i.e. the space is roughly cubic). Each shelf has 35 books. If we assume that each book, plus the shelf ends, takes up between 1 and 2 inches (a 410 page book near me is about an inch thick, but that doesn't count shelf-ends, and its covers and pages may be thinner than the books here. On the other hand, they might be thicker; this is a divine library, after all.) This gives as a side length of between 35 and 70 inches, which means the distance from face to opposite face is between 59 and 121 inches - roughly five to ten feet. With the stair well in the center, it's no wonder that the inhabitants had to sleep upright in the closets.

The hallway between hexagons is described as narrow - indeed it would have to be! Assuming that both of the closets are roughly two feet wide, this leaves between -1 feet and 1.8 feet for the hallway. If they were only 1.5 feet wide, this leaves us with a hallway between 0 feet and 2.8 feet wide. While one might slide sideways into the sleeping closet, I can't think of any way I'd care to defecate in a room where one of the dimensions is less than a foot and a half.

If the space is roughly cubic, then each of the dimensions is roughly 25437332.6 hexagons in length. Assuming that each hex is only separated from the others by 7 feet, that's 25437333.4 feet in each direction. The universe is 93 billion light years across. That's only 2519.64 feet. The ratio between the diameter of a proton, and the observable universe, is 2530. The ratio between the universe and the Library is 25473313.7. I can think of no analogy to express how tiny the universe is in comparison to the Library.

Those searching for Vindications certainly have their work cut out for themselves.

Each book contains 1312000 characters. There are 25 possible characters. This translates to about 6.092 MB of information per book. If the information that you're looking for contains more than that amount of entropy, no one book is going to provide it for you. One option would be to have books point to other books. After providing a portion of the information, it would then have a pointer to the next piece of information. Would this be feasible, though? You'd need slightly over two characters to identify which book in a hex is important, leaving us 1311998 characters to identify which hex you need to find. If the hex is just the one next door, things are simple. Unfortunately, it might be +/- 25437332.4 hexes away, in three different directions. Assuming that we can magically know where each direction description begins and ends (thus avoiding the need for prefix-free which could save us space on smaller values, but cost us much more for larger ones) we would require 437332.6 characters per direction. Unfortunately, this means 1311997.96 characters to identify the hex. Add in that used to record which book in the hex it is, and we've filled the entire book, just telling us where to find the next one.

This is, of course, no surprise. If this was not the case, one could turn it into a perpetual compression system, by designing an algorithm for distributing the books (i.e. mapping a position in the library into the book held there), and then just providing the the first book. Even if each book only leaked a single bit, you could use a universal code to slowly get out an arbitrary message close 251312000 bits long, all encoded in a 6.1 MB file. This is, of course, impossible. In short, there exist books for which the shortest way of indicating how to read it is to simply provide the book itself.

What does this say for hopes of having a Catalogue (or even a catalogue of catalogues)? If one is to exist, the books it must be either be either multiple times longer than the books it references, or those other tomes must lie relatively close - remember that only 1/25 of the books in the Library lie close enough that only 1311999 characters are necessary to describe them, and in a standard sized book, that would only leave one character left. About one in 25656000 are close enough that you could fit the directions for two of them into a standard sized book.

This is, of course, assuming that The Catalogue is not the Book of Sand.

The real kicker, of course, is that ANY book could be a pointer to the catalogue, but it would take far longer than we can imagine to check even just one.

Mar. 3rd, 2008

Last week I wrote my first real Haskell code. For that my matter, it was my first non-trivial purely functional code. Pattern matching is nice. Typing was less annoying than I was expecting, and I suspect there are parts of Haskell that make it even less annoying. I ended up with a simple (unbalanced) binary tree implementation storing key/value pairs. The bit that took longest (apart from beating my head against the wall until I noticed that I'd mispelled the name of one of my datatypes) was the deletion code.

Over the weekend, math_foo and I went up to Toronto to see the Evil Dead musical with eehee , her boyfriend, and sbranzei. It was fun, a lot less serious than the movies it was based on, although the Candarian demons seemed to have a slightly greater obsession with reproductive organs than I recalled.

Patience Diff, a brief summary

Last night I went to a coding party at a friend's house. I was on my laptop, and so didn't have any of my regular projects with me, so instead I spent some time figuring out some code for another person at the party.

The code in question was the implementation of Patience Diff, a diffing algorithm written by Bram Cohen of Bittorrent fame, and used in (at least) the Bazaar version control system.

A cursory explanation of the algorithm, including edifying examplesCollapse )


Tonight was the Open Text Christmas party. After a slowish start, once people I knew started showing up, things started to improve. By the the time that dinner rolled around, a lot of people had gotten a few drinks in, and were starting to relax. I negotiated a trade for our table's bottle of red for a neighbouring table's bottle of white, and over the course of the evening, my boss bought our table three more bottles of wine. (The three employees at the table all worked for her.)

It was interesting meeting the SOs of some of my coworkers, and also just to meet them in a non-work setting. Overall, the evening was quite enjoyable.

My life has been otherwise ordinary. Last weekend I did a bit of bartending at hkarau's party. People seemed to enjoy my drinks, and I hope I introduced some people to things they'd never had before.

Last October, I graduated. I am now officially free from University, and don't feel like heading back to school for a while. math_foo and I also got a couch a few weeks ago. I should get around to converting random_dragon's old computer into a media station, so we can watch things on the TV.

Life has been otherwise quite uneventful. math_foo works on schoolwork, and I enjoy not having schoolwork any more.
For some strange reason, X has decided that clicking my middle mouse button should cause it to restart. (Also, the delete key takes screen shots.) This has lead to a number of accidents while using Firefox.
Exams are over (my last one was last Saturday.) Two went well, one went so-so, and the was blegh. I don't need the so-so one to graduate, and the blegh one was found blegh by a large number of other people in the class I talked to. It wasn't that the questions were difficult, but that a large number of them required you to remember a definition that was used in one question in one assignment, and never mentioned in class.

Right now I'm working on my project for Machine Learning. I've managed to piece together a program that clusters HTML documents based on LSA. It seems to work, so now I'm just writing up a report on it to submit as my project. Today is beautiful out, so I think I'm going to walk to the park and work on it there.

Shop Smart! Shop S-Mart!

Yesterday, dualistic sent me the URL of the Zombie Infection Simulator. I'd seen it before, but this time I noticed that the source code was available, and so decided to try making my own variant.

The result is the Zombie Infection Simulator: Housewares Edition, where there are random chainsaws, cricket bats, sawn-off shotguns, etc. lying around for people to use to fight back against the hordes of the undead. With 10 weapons lying about at any given time, the humans tend to survive with some frequency, so I've dropped it down to 6 to see how it affects things.
Other changes include slightly improved survivor AI, although some of the improvements also improve the zombies.

A couple of weeks ago I wrote a quick and dirty Python script that would scrape the local Zehrs flier and last night I tossed a GUI around it and hooked it up to a Bayesian classifier to have it filter between things I'm interested in and those that I'm not.

Unfortunately, it seems that the classifier is too unstable. Marking interest in a few things will drag over to the 'interested' side many other things, with no apparent relation. Telling it that I'm not actually interested in adult diapers will cause it to decide that I'm not interested in the items that I originally indicated interest in.

Can anybody who's more familiar with Bayesian classifiers explain why telling it I'm not interested in VEET IN-SHOWER HAIR REMOVER makes it think I'm less interested in MAPLE LEAF BACON, even though the two have no words in common?

I'm using a pair of classifiers, one for 'good' and the other for 'bad'. If one scores high and the other low, it gets marked interested or interested. Otherwise it's undecided.

Edit: Problem solved. Reason given in comments. Now it's working like a dream.
Last night our TV gave up the ghost. When we turn it on, it makes an ugly discordant buzzing noise. It's likely that the transformer's busted (the TV used to whine for a while after it was switched off). Looking at reviews, it seems that people tend to be dissatisfied with this model, and that about 9 or 10 months on a refurb is better than some have gotten.

I don't know yet whether we're going to try to get it repaired, replace it, or just go without DDR and other assorted video games until summer when I'm earning again. Certainly, we're going to do a bit more research next time.
Magic has been performed. I am now enrolled for CS 486 in spite of missing one of the prereqs.

Mar. 18th, 2007

Happiness is learning that 10 pages is the upper bound of the length of the essay that you're writing, not the goal.

Now I can work on making it as long as it has to be, and no longer.
For reasons beyond my ken, there is a half-eaten stick of butter sitting on my window sill. I didn't put it there. Caelyn has concluded that is an offering from the squirrels, demonstrating their acceptance of me as their god.
Tonight I discovered (rediscovered?) that I have an 80 GB drive sitting in my computer, all nicely formatted, that I haven't been using. The extra space is nice, but since I wasn't really running out before, I have no idea what I'm going to use it for.

I submitted my proposal today for Machine Learning. It was a bit more buzz-word bingo than I'd like, but this wasn't deliberate. If it gets approved (I'll know next week), I'll have about 6 days to work on it between my last exam and its due date, assuming I don't have any time before then.

The weather today was absolutely beautiful - it went up to around 12 degrees and was nice and sunny. I wish I could have spent more time outside enjoying it, but I've got a quiz tomorrow that I need to study for. Unfortunately, it looks like Friday is going to be freezing and snowy again.

Mr Biggs's new Macbook arrived today. We had a bit of fun with the Macbook's Bluetooth by installing Wiisabre. Unfortunately we could only get it to recognize one of the remotes at a time, so the potential for duelling was reduced.

Still alive

My little calendar reminds me that I haven't posted anything since January 3rd. This is mostly because I've been fairly busy with schoolwork (two classes giving weekly assignments, plus other assignments, quizzes, etc.).

I'm enjoying three of my courses. The other two are pretty boring. I've also learned that I don't have all the requirements to graduate - a combination of not being able to count, and missing a requirement. So as a result, I'm short one 3rd or 4th year CS course, I'll have one more non-math elective than I need, and I'll be taking a course (most likely AI) in the summer while I'm working. Fortunately OpenText is just on the other side of campus from where I'll be living, and AI is an 8:30 class, so I'll just be a little late to work three days a week. I'm on flextime, so it won't be an issue, hopefully.

I'm looking forward to reading week for a nice break. For once, it's going to be a full reading week instead of just a reading two days, at the cost of time math & CS courses now ending at the same time as everything else at the end of the term. I think I'd rather have the extra time next week.

I've been fooling around a bit with Blender and Ogre3d. I'm slowly figure out how Blender works, and I've managed to get one of my models into Ogre3d, and have it spinning slowly. All quite simple, but it's a start.

This next week I have two midterms on Wednesday - a delightful way to spend Valentine's Day. At least I've only got one (short) assignment on top of that.

I finally managed to get my hands on a Wii last month. After not having time to play it at all the last week and a half or so, last Friday night I finally got around to beating Zelda: Twilight Princess. Most of the game was quite enjoyable, although there were a few items that didn't seem to fit in. They were obviously added to solve puzzles in one particular dungeon, and had limited applicability outside of it. The endgame wasn't quite as engrossing as Ocarina of Time. The final dungeon thingie was relatively sparse, and the final battle seemed anticlimactic. Perhaps it was my experience from the other Zelda games, but it was never a surprise when it turned out there was another part to the battle.

My Wii code is 6955 4532 5992 7086.
First day of classes today. I don't think I'm used to two terms of classes in a row. Before waking up, I had a dream where I was late to my first day of work.

My Christmas holidays were largely dominated by Final Fantasy XII. On one hand, the characters practically do everything for you if you have the right gambit setup. On the other hand, if your actions can be replaced by the simplistic programming provided by the game, it probably wasn't all that involving or challenging. That said, I really enjoy the lack of random encounters. Those things are just annoying.

Still waiting for my marks in Concurrency and Algebraic Curves.
Sunday morning I woke up to find the Internet not working. It's continued to not function fairly consistantly since then, coming back only briefly a small handful of times since then. Bell's sending a technician tomorrow to check the lines.

This time next week, I'll be done lectures. Exams on the 9th, 18th and 22nd, with a take-home final from the 8th to the 15th. Right now I'm more concerned about the Chaos & Fractals project due Monday, and the Concurrency and Algebraic Curves assignments due Tuesday. I've gotten starts on them, but I think this is going to be a very busy weekend.
Survived my midterms. The term is nearing its end; only a handful of assignments left in each class, and after Thursday, baring Act of Prof, nothing I do (or don't do) in Old English will affect my mark (unless I choose to take the optional test). As it is, I'm guaranteed a pass.

On the 4th I went to a Halloween party as Rorschach. Unfortunately, only two people recognized me, but I managed to have a nice conversation with one of them about comics.
The mask was a bit of a last-minute affair, and consisted of a very light blouse that I painted black (for the details) and white (for opacity). The paint wasn't thick enough to prevent me from seeing out of it, though. Unfortunately, despite my efforts, I couldn't find a white scarf.

Last weekend I roasted a lamb and had some friends over to help me eat it. The potatoes should have been cut in half and microwaved a bit longer, but for the most part, it went quite well.

I've been playing a fair bit of DDR lately, and tonight I managed to pass my second 9 footer, although not nearly by the margin that I'd have liked. I should practice some more with the 8 footers.

Recently I've been playing around a bit with Django, a web framework written in Python. I'm still figuring out how to write good, maintainable, portable code in it, but it makes a lot of things really nice and easy, and comes with a lot of batteries included.

Today I bought a bunch of loose-leaf tea. I'm quite enjoying Rooibos.

Things I should be working on:
  • Studying for Old English test Thursday
  • Chaos & Fractals assignment due Friday
  • Concurrency assignment due next Monday (or Wednesday if I take a free late)
  • Algebraic Curves assignment due next Thursday or Friday
(The last two are a ways off, but tend to take a lot of time.)
Things I'd rather be working on:
  • 17th century Men In Black
  • Reading The Phoenix Guards (and wondering how, given the number of duels they fight and the associated mortality rate, how Dragaerans have managed to survive this long)
  • Coding something in/with Django
  • Playing more DDR
  • Sleep
Thursday: Algebraic Curves assignment, Old English test
Friday: Chaos & Fractals midterm
Monday: FLAP assignment. Concurrency midterm.

At least the midterm means that Concurrency's assignments are no longer due the same Mondays as FLAP's.
In one of my less shining moments, while working on my assignment I typed
rm a2q3*
instead of
rm a2q3*.o

Fortunately I still had the important files open in vim so could just resave them.

Sep. 27th, 2006

It seems that I haven't posted since the end of June. Rest assured that I am still alive and have no fallen of the face of the Internet.

Summer term is over, and with it the end of near-nightly cooking experiments. There's nothing really now stopping me, but lack of audience and time.

I'm now living in the same building as infohigh, who has moved down two floors to share an apartment with Kyle and I. m2arnold is now living in WCRI.

I've accepted a full-time job at Open Text for after I graduate. It's nice to have the prospect of looming unemployedness waiting for me at the end of winter.

This term I'm taking Chaos & Fractals, Formal Languages and Parsing, Algebraic Curves, Concurrency and Old English. I'm enjoying all of them but Concurrency, although I wish that C&F was going a bit faster. OE is different than what I was expecting - less of a language course (although there are language course aspects as well) and more of a history/literature course where we learn the language in order to understand what we're reading. This means no memorized vocab, and translating in only one direction.

CSC elections have passed and I'm now Vice President by near acclamation - the only other candidate was Kyle (nominated by myself as a joke) and he was disqualified by his being in Real Time this term. Now I'm working on arranging talks by RMS and Keith Packard. (RMS replied today and probably can't make it this year; working on arranging something for next year. Probably happier for our budget anyway.) I'm going to be here next term, so can probably help orchestrate whatever's necessary.
For the first time in about 10 years, I had a passion fruit. It tasted just as good as I remembered. Pity the insides look like mucus.

We picked up a deep fryer last night. Tomorrow I need to pick up more Vidalia onions. I think we'll have to pick up the DDR regimen to burn off the extra calories. (But deep-fried cheese is so good...)

Went out drinking with friends from the university tonight. Met smably there. I'll have to invite him over for dinner some time. It's a shame he won't eat anything with a face, since that cuts down the menu a fair bit.
Things that happened in the last month:

  • Got a new TV

  • Kyle got Mario Kart: Double Dash

  • m2arnold got hooked on Double Dash

  • Borrowed DDR Extreme 2. Kyle gets testy if he can't get his daily fix. I slowly improve my DDR skills

  • Hooked up Kyle's old computer to the TV. Wrote a simple web server to control what's playing on the TV remotely.

  • Kyle & m2arnold watch lots of Battlestar Galactica and Stargate SG1.

  • Cooked lots of food

  • Signed up for courses. Hadn't noticed earlier that Graphics requires Algorithms, so ended up signing up for FLAP instead. Chose Dutch 101 for my Non-Math Elective, but might change it since I'm not that fond of its 18:00--21:00 time slot switched it with Old English 1. Other courses are Concurrency, Chaos & Fractals, and Algebraic Curves.

  • Broke old sandals and got new ones... one month later.

  • Played too many hours of Oblivion

Back on the 'Net

Internet got hooked up much quicker than expected (I made the phone call this morning), which led to an evening of cooking and catching up on the internet. While I had 'net access at work, reading webcomics is not a productive use of time.

The new place is pretty nice. My room is smaller that my last one, and I'm going to have to sort things out before I get around to setting up my computer in there - currently it's sitting in the common room where we've used it to watch movies, etc.

It also seems that I have too much kitchen stuff. Most of it is still sitting in boxes that are lining one of the walls of the kitchen. Kyle enjoys cooking, though, so we've been trying out different dishes, the result being that we're actually eating somewhat healthily.

My boss at work was happy to see me back again. Apparently she and my not-officially-boss-but-has-stuff-for-me-to-do-when-I'm-not-doing-stuff-for-official-boss were preparing lists of things for me to work on. Most of my week was just working on a few bugs and upgrading a module. Nothing terribly challenging, but somewhat rewarding.

Apr. 26th, 2006

I'm still alive, or so my pulse tells me. School was hectic, but it's over for the summer now. I'm going back to work for Open Text next week, but have this week to kill.

I've got all but one of my marks (Psych101), but I know from what I had going into the final that I'm going to pass it too. No narrow passes this term, although it sometimes felt like it. Hopefully my last two terms will go as successfully.

Tonight I'm having a couple of friends ( smably and math_foo) over for dinner. In addition to giving me a reason to cook (something I've been wanting to do for a while but have lacked time to do), it gives me motivation to clean the apartment before I move out this weekend. Between the boiler under my bedroom floor and the toilet flusher that sticks, the thing I think I'm going to miss most about this place is the fact that I don't have to share the bathroom.

I started working on my taxes earlier this month only to realize that I was missing a T4, because I forgot to give the company I was working for last winter a permanent address, but rather gave the address of the house I was living in at the time. I've called them, and they're sending another T4 now. I'm pretty sure that I won't owe anything, but I'd still like to get all the paperwork done before the due date at the end of the month.

Mar. 19th, 2006

Most of the last few weeks have been taken up by schoolwork. I went to several talks - Larry Smith's talk on creating killer apps, Eric Laforest's talk on 2nd generation stack architectures, the Google presentation, and the Short Attention Span Math Seminars put on by the {Pure Math, Applied Math, Combinatorics and Optimization} Club.

Yesterday my OS group and I went out house hunting. We managed to find a nice place north of campus which was within short walking distance of the repsective workplaces of all three of us. The place seemed in good shape, with a good-sized kitchen and on-site laundry.

The rest of the evening was spent working on OS. This assignment is based around fixing and adding features to Nachos's rudimentary file system. After some initial difficulties, we got it working and managed to increase its maximum file size from 3840 bytes to something closer to 135k. (The sector size was only 128 bytes, so there's only so much bang you can get for your buck)

Just two more weeks of class and four assignments, then it's studying for exams.

Mar. 1st, 2006

A while ago, Caelyn, Mr Belanger and I tried to think of a word to describe the state in solving an assignment question where you're pretty sure you know how to prove it, but haven't written anything up yet. The best and most accurate thing we could come up with was "deluded". Well, right now I'm deluding myself as to the completeness of half the questions on the Real2 assignment due Friday, and hopefully I'll be able to delude myself on a couple more tonight. Tomorrow I start typing up actual answers.

Although I'm a fan of the series, I seem to be utterly incapable of recognizing the major themes used in the Castlevania series. Some of them, I can't even distinguish. I have great difficulty telling apart, say, Vampire Killer, Bloody Tears, the Clocktower theme and Wicked Child, even if they're played back to back.

A new power brick for my laptop arrived last Friday (the old one having died last July). There were a few issues getting wireless working again, mostly centering around difficulties contacting debian.org's repositories, me forgetting that kernel-headers is now linux-headers, and an upgrade script mothballing one of the wireless init scripts such that its replacement would (unintentionally) call it, which would then call itself, which would call itself, ...
The fan on my laptop seems rather weak, and the temperature would quickly rise from ~55C to 97C where the ACPI safeguards would kick in and the laptop would start shutting itself off.
It's all better now.
With only one class today, and it being at 8:30, I decided to take today off. I managed to catch my landlord as he was going around putting notices on people's doors informing them of his new phone number, and managed to get him to replace my fire alarm. Hopefully now it won't be going off in the wee hours of the morning.

After that, Kyle and I wandered along to downtown Kitchener to enjoy the nice, relatively warm (3C) weather and pay our respects to the three used bookstores down there. I picked up a couple books, and Kyle went a little crazy. In addition to a book on VAX assembler ($1), he managed to pick up some books in a series he's reading, which probably saved him some money in the long run.

After I got back from that, I did some laundry, and read my Real Analysis textbook. I'm not quite sure that I understand transfinite induction. Hopefully it won't really show up again.

Reading Two-Days starts tomorrow. I suspect I'm going to spend most of it working on OS, Real2 and Groups, the latter two being due on Monday. Well, at least I don't have to worry about classes as well.
Snow day today, which mean that the university was closed. I didn't find the weather terribly treacherous, although it might have been different had I been driving. Although it was nice to have a day off of sorts, I wish I'd known before I got up for my 8:30 class. Also, I was looking forward to today's midterm, just so that I'd have it over with. I guess now I've got time to study, but I was satisfied last night with how much I'd studied and just wanted the exam out of the way.

So instead I spent most of the morning coding up something that looks like ed in Javascript. You know, ed, the standard text editor? It was actually fairly easy, once I figured out how ranges worked.

hkarau was around, having come down to write his CS 246 midterm. Now he'll have to stay another day, so he'll probably also stay the weekend. Today he also managed to fix tehladies.com which, in spite of its name, is quite safe for work. We also tried to grab the Cormack talk off of the digital video camera, but it seems that in order to do that, we're going to need Firewire.

infohigh showed up in the afternoon, and there was general discussion about using machine learning to improve how people deal with file systems. funos managed to get a job at RIM today (yes, we've heard all the jokes about getting RIM jobs...). Congratulations!

Feb. 14th, 2006

The Real2 midterm is over, and went than I was dreading. There were a couple of questions I found tricky, but it seems that I wasn't alone. Now there's just two more midterms this week: Groups tomorrow, and CS365 on Thursday. Then I have a brief chance to relax before my OS midterm next week.

On Saturday, I picked up a copy of MGS2 for $12. Today I realized that I'm looking forward more to having a chance to work on reverse engineering the Castlevania 2 password system than a chance to play the shiny new game. This probably says something, but I'm not quite sure what.

On a slightly unhappier note, my iPod seems to have gotten confused and thinks that there's always a set of headphones plugged in. In spite of this, it doesn't actually play anything on any headphones that I plug in. The iPod's only six months old, and it comes with a one year warranty, so I'll be seeing if this is covered, and if so, go about getting it repaired/replaced.

Feb. 12th, 2006

This morning I finished typing up the last of my notes. There are typos galore, including some that make them dangerous or difficult to use as study matter, but that's why I also keep my handwritten ones around for reference. Right now I just don't have time to give them a proper proof-reading. I'm also about three pages from the end, in terms of understanding how all the proofs work, although being able to reproduce them is a different matter.

I did a bunch of study in the MC, read over the course recommended text (which I don't own a copy of), and when I wasn't studying, I chatted with infohigh and smably.

And now to get back to studying.
Last October or so, the building I live in (a giant house subdivided into individual apartments) got sold. For the last month or so, I've noticed ads for X-Flats, posted on things like bus shelters. Yesterday a big sign went up on the front lawn advertising X-Flats. It looks like the building's going to be put up where I live, and that construction begins this May.
I guess it's a good thing I was planning to find somewhere else to live this summer.

With three midterm this week, there's not much of a chance for me to relax. I'm currently working on transcribing my PMath 354 notes to LaTeX. I'm on page 40/56 or so, which equates to five more lectures to go. When I started yesterday, I was only on page 22. Still, I'm feeling less stressful now than when I had assignments looming over my head, even though the midterms are definitely worth more of my final mark.
It is 2 AM and I am finished my CS 365 assignment. This is better than I anticipated. My proof for question 2, once it came together, was particularly nice. Tomorrow Later today I just need to finish my Real2 assignment and I can start studying for next week's midterms. Going to Spronk's office hours really helped. I now have a clearer idea as to how to approach a number of the remaining questions.

I suspect that I'll have to put aside some more time to catch up with what we've been doing in class in order to do some of the questions on the assignment. So far I've copied 53 pages worth of notes, not including the couple pages that I had to copy from Mr Belanger, and I feel that I understand the first 28 or so. This brings me up to partway through 8 lectures ago - almost 3 weeks.

Finally, I think that Kevin Bacon should star in a movie with Paul Erdõs, just to give the latter a Erdõs-Bacon number of 1.
My Real2 assignment's due date has been postponed to Friday. This makes me happy, as I now have three days to complete it and CS 365's assignment, rather than two.
I have midterms on Monday, Wednesday and Thursday next week (Real2, Groups and Models of Computation). This makes me less happy, especially since I'm kind of lost on the last two or three weeks of Real2. No relaxing this weekend.

Psych 101 midterm this morning. There were probably things I could have studied more for, but on the whole it didn't seem very difficult.

OS was handed in yesterday, apparently 4 minutes before the deadline. It wouldn't have been the end of the world if we missed it because of slip days, but I'd rather save those if possible. I also need to teach Matt and Kyle more about using LaTeX, since they seemed to have some difficulty with my documentation. (The assignment was due halfway though my Real2 lecture, so I had to leave.)

This afternoon I went to see a demonstration of Milnor's proof of the Hairy Ball Theorem. While there were a couple things that used theorems I didn't know, I managed to follow it for the most part.
A night spent working on OS. Apparently there were problems with our implementation of locks, but I have no idea how the nittygritty of our implementation works, so I wasn't able to help much. Instead, I worked on the design and testing docs, wrote a few test programs and occasionally tried to help squash bugs, either in my own code (mostly ThreadFork and the scheduler), or in the locking.

Today I do stuff with Chris & Co. and probably a bit more OS if anyone's around, before escorting Elizabeth to the bus station so she can return to London. After that, it will probably be steady work on either Real2 or studying for my psych 101 midterm on Tuesday.
A thousand poxes on Nachos and its subtle differences between itself and POSIX! It's the little things that keep tripping me up, like different orders of arguments to syscalls. That the file id was the last rather than first argument to Write tripped me up a couple of weeks ago.

Most recently1, I implemented ExecV so that it would work fine with the standard execv arguments. It turns out that the first argument is supposed to be argc, with the first argument of argv being the name of the file to execute.

1 Well, I wrote the code two weeks ago, but learned today that it did the wrong thing.
Another Saturday spent working on OS. We still need to do lots of testing and documentation, but I think all, or all but one, of the major features asked for on the assignment have been implemented. I'm just not sure if anyone's gotten around to implementing GetPriority, but it's simple to do.

Tonight we finished locks and multithreading. I'm really surprised by how easily multithreading came together. (Kyle and Matt did most of the work on locks.) The only tricky bit was when I was trying to push some machine code onto the stack so that when the thread that was forked to returns, it calls ThreadExit.
For the last month or so, people have been randomly messaging me on ICQ. Most of those whose profiles I've read have not been in English. Most recently, somebody just sent me a German IM chain letter, threatening me death at the hands of a dead 7 year old girl if I didn't forward it to 15 of my friends in 10 minutes, and love if I did. I have no idea WHY people have started messaging me. A search for my ICQ number turns up nothing.

The rate that people have added me to their contact list has dropped this year, but I'm still puzzled as to why they added me in the first place.

Jan. 10th, 2006

Might as well make a post to let everyone know I'm still alive.

Things are okay. I've adjusted to having 8:30 classes everyday. My group for OS seems competent and hard working, which is good. I've only got two assignments so far. One of them is OS, and the other is "Measure Theory and Fourier Analysis" (PMath 354) which relies heavily on PMath 351 (Real Analysis) which I took in fall '04 which I have only vague memories of, leaving me scurrying to look up things like the definition of uniform continuity. Hopefully things will become a bit smoother as I get back into the swing of doing analysis proofs.

I passed German 102 last term (although never mentioned here that I was taking it; I wasn't terribly verbose last term, and probably won't be this one either). Now I should have enough credits to graduate come next winter.

My work term at Opentext went well, and I'll be heading back there this summer.

Dec. 5th, 2005

Oh Great Cthulhu!

I have been an extremely busy devotee this year.

In April, I wore an Elder Sign (-10 points). In May, I defiled the grave of that traitor, Lovecraft (90 points). In February, I rammed a ship into you (sorry Cthulhu!) (-1000 points). In August, I prepared an ocean voyage to R'lyeh (200 points). Last week, I exposed [info]kevinpease to soul-rending horrors (250 points). In October, I legally changed my name to Randolph Carter (-40 points).

In short, I have been very bad (-510 points) and deserve to have my body used as a host for one of your servitors.

Your humble and obedient servant,

Submit your own plea to Cthulhu!

Oct. 17th, 2005

Provided I get into the classes that I want (and given that my enrolment appointment is tomorrow, and most of the classes I want have only one or two people enrolled at the moment), my schedule for next term will resemble this.

Unfortunately, PMath 346 is only offered at 8:30 AM (and in winter only, no less), and since I'd rather not be waking at wildly different times on different days of the week and would rather not be around at night for the 6:30 Tuesday lectures, I took the morning section of Psych 101.
Perhaps someone can help me find a story I read a while ago? (Dead tree and ink, not online)

The premise is that a computer science student plugs Dutch Schultz's famous last words into the AI software that he was developing, and magically, the AI gains sentience and starts channeling the ghost of Schultz.

Schultz offers to help the student find his buried loot, provided that most of it goes to Schultz's (great?) granddaughter. Throughout the story, Schultz explains what the various parts of his dieing words mean, while the student and Schultz's great granddaughter find themselves wanting to get free of the control of the electronic ghost of Schultz, who has now spread from beyond the computer and has taken over the phone system, and probably any computer attached to it. (Oldish story, if I recall correctly, so there wouldn't have been an Internet.)

The only other details I can remember is placing bags of salt on the electricity metres to make them give lower readings, and the use of the word Jabberwocky as a code word.

Oct. 5th, 2005

(22:34:51) Elizabeth: ...
(22:35:01) Elizabeth: That's it, you're not allowed to do math anymore.
(22:35:06) Elizabeth: You're too scary with it.

( random_dragon's reaction to wheel theory)

Something vaguely Pythonesque?

Welcome, ladies and gentlemen, to this evening's World Championship Debating! Tonight looks to be a great night, with our reigning champion Doug "The Convincer" Crusher going up against the rising star, the masked Argument Shredder.

It looks like The Convincer has decided to trade in his traditional sledge-hammer for this match, in favour of a mace that they say was a gift from his grandfather on his seventh birthday. Well, with family like that, there's no doubting why he got into forensics.

In other other corner, the Argument Shredder is using his usual chainsaw. If you recall, last match he almost got disqualified for a post hoc fallacy, so the judges are going to be watching carefully this round in case he tries to get away with it again.

All right, gentlemen! Let's keep this a clean debate, and remember: no ad hominem attacks!
Today I got my iPod Mini. gktpod doesn't like HFS formatted partitions, so I decided to fix that, following a guide I found online.
The guide was accurate; gtkpod now works fine. Unfortunately, where they had their iPod as /dev/sda, I had mine as /dev/sdb, /dev/sda being my 200 GB external harddrive.

Guess which one I restored the 34 MB firmware to with dd?

One e2fsck later and some fun with find and find in lost+found, I managed to restore pretty much everything. I haven't looked carefully, but if there's anything missing, I haven't noticed it.

My biggest mistake was probably not rezeroing the first 34 MB, which meant that there were quite a few really weird files there along with the good ones.

On a more uplifting note, I managed to pick up a copy of Anansi Boys.
Hmmm... 20 days since my last post. Since then, in addition to the regular work stuff, random_dragon came up to visit for the weekend. We went to see the Royal Medieval Faire with bluedogstrut and Simon, a friend of random_dragon's who is now attending Waterloo. My boss was the operations director, fight co-ordinator and one of the knights.

Last Friday, an envelope from woap arrived, containing miniature portrait of Gauß, along with one of Annette von Droste Hülshoff.

Last weekend I experimented a bit with cooking, making lemon-ginger chicken and pork chops in plum sauce. The latter recipe I definitely want to try again. Monday I tried my hand at making General Tso chicken, but it didn't turn out.

Last Sunday, bluedogstrut, a friend of his and I went to see The Corpse Bride, which was a fun movie. I wish that Mirrormask was showing anywhere near here.

Work, for the most part, has been fairly normal. They've managed to find something for me to do, so I've been kept busy these last few days.

Sep. 8th, 2005

This morning I finished up the Builder tutorial, and learned that it was several years out of date. Most of the basic concepts still hold, though.

The rest of the day was spent working my first real work - upgrading a module from 9.2 to 9.5. The main catch seems to be finding all the changes between the two versions and update the patch in the module which forces user and group lists to be filtered whenever they're retrieved. Queue me having to learn how a patch works, and how to create one.

Sep. 7th, 2005

I spent most of today just reading documentation, trying to get a grasp on how one develops for Livelink. I managed to find a tutorial that steps you through developing an address book. It could be partly because I'd spent the previous 6.5 hours slogging through the manual, but I found it much clearer and easier to see how things fit together.

This evening I've mostly been playing Super Demo World, a complete redesign of Super Mario World. The new graphics are fun, and some of the levels are just cruel and unusual. Other levels, however, are pure retro. I've seen two so far that are straight from SMB3.
First day of work finished. Most of my time was spent studying the computer programs I'll be working with and developing for, while trying to ignore the whine of the laptop I was given. It sounded like a giant diseased fly. I was also told by my boss that I was overdressed.

Back again

Two weeks ago: My family and I went up to my dad's apartment in Toronto for a week. We visited the Ex, I saw my old coworkers at Chisholm, I finally got a chance to walk around High Park, and I managed to pick up volumes 1-10 of Girl Genius used.

Last week: Mostly just lay around in London. One day trip, to the Pinery and another to Stratford where I was greatly tempted by The Book Vault. Evenings I had a chance to experiment with cooking. Over the course of the week I managed to cook steak, onion soup, and lemon chicken.

Tonight I returned to Waterloo to find my front door open. Nothing seems to have been taken, but it's still concerning. Did I forget to close the door when I left, or did the landlord visit and forget to close up after himself?

Tomorrow I start work at Open Text. I'm still not quite sure what I'll be doing, but I suppose I'll learn tomorrow.