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.
Over the weekend,
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 examples )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
Last October, I graduated. I am now officially free from University, and don't feel like heading back to school for a while.
Life has been otherwise quite uneventful.
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.
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.
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.
Now I can work on making it as long as it has to be, and no longer.
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.
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.
- Music:Garbage - Fix Me Now
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.
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.
- Location:CSC
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
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
- Music:Biggs and Alex playing DDR in the other room
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.
Posted using LJTalk...
rm a2q3*
instead of
rm a2q3*.o
Fortunately I still had the important files open in vim so could just resave them.
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
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.
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.
- 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 slotswitched 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
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-t
- Mood:
happy - Music:The Knife - I Just Had to Die
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 (
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.
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.
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.
- Music:Jean Michel Jarre - Music auz Zeit und Raum - Track 4
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.
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.
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.
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
And now to get back to studying.
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.
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.
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.
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.
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.
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.
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.
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.

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
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,
alfedenzo
Submit your own plea to Cthulhu!
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.
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.
(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.
(
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!
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.
- Music:Metric - Calculation Theme
Last Friday, an envelope from
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,
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.
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.
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.
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.