Jeremy Reimer's blog
Monarch: A blogging/forum/content management system created in newLISP
Submitted by Jeremy Reimer on Wed, 12/22/2010 - 23:21Those of you who read the OSY forums will know about my latest project, which I have codenamed "Monarch", both for the butterfly and the titular head of state.
I always disliked how Drupal (my blogging engine) and PHPBB (my message board) lived in totally different worlds, with separate logins, separate user databases, different user interfaces, and no way to really integrate the two together seamlessly. I wanted something that was simple to use but had all the features I wanted in both blogging software and forum software. I wanted something that was easy to customize and add new features to. I wanted something that had a proper comics engine so that I could upload new comics and have them displayed with the "First, Prev, Next, Last" buttons that comics sites had, and I wanted something that could handle my Knotty Geeks podcasts without mangling the iTunes XML feed all the time.
It was a lot of wants. It was kind of ridiculous to even imagine I could create such a thing, from scratch, by myself.
I started writing Monarch on November 8, 2010. Two weeks later, I had something that was in a good enough state to start inviting users from my old message board.
Now it's six weeks later, and I've basically got everything I ever wanted from Monarch. It has a forum section and a blog section, and the two are completely intertwined (blog posts show up in the forum and can be replied to as threads there). It has new user registration and postcounts and ranks and avatars and a user profile section to change one's avatar, and it has a working comics section that automatically adds new comics in the right position, and it has a podcast section that I've used to import all the Knotty Geeks episodes.
Six weeks of part-time work. I'm kind of surprised myself.
Anyway, this blog will be moving to archive status soon, with Monarch being front and center for my blog. I will keep my old posts, but redirect most of the links to Monarch. I'll see you there!
Here's how you get there: http://jeremyreimer.com/monarch/main
Gail Patricia Reimer, 1938-2010 RIP
Submitted by Jeremy Reimer on Tue, 11/23/2010 - 19:47
This is the speech I gave at Gail's memorial service, which was held on Friday November 19, 2010.
I’d like to tell you a story about a remarkable woman. This is the story of my mother, Gail Patricia Reimer, and about how she shaped me into the person I am today.
She was born in Vancouver, British Columbia, on April 9, 1938, to Mildred and Bert Edmondson. Joining her would be Margaret, Elizabeth, Barbara, and later John. As the eldest child, Gail was expected to help raise her other siblings. She went to high school at McGee Secondary and dreamed of going to university.
However, Gail had to work full-time in order to help support her family. The family’s expectations were that Gail would find a “nice Baptist man” to get married to. She had other ideas.
At a church social she met a dashing young Naval Aviator who was on leave. She quickly fell in love with her “Hero Jet Pilot”, and they flew off together to the other side of the country. Gail and Louis were married in Halifax, where he was stationed. She got a secretarial job at Dalhousie University.
These were happy times. Gail was part of a lively social scene and she enjoyed her work. One thing puzzled her, though: she couldn’t understand why she didn’t type as fast as the other secretaries. She asked a co-worker, who told her: “Oh, I never read what I’m typing.” Gail, like me, could never do this. The content and the meaning mattered.
Gail and Louis moved back to Vancouver. Their first child, Suzanne, was born in 1968. I came along in 1972. Lou had decided to leave the Navy and go back to university. They bought a house on 34th Avenue, and settled in for a nice domestic life. Gail got a job working first at Carey Hall and then at the purchasing department at the University of British Columbia, and took night classes to get university credits such as English 100.
Then came the first of many challenges. Lou had a stroke, and was hospitalized for many weeks. When he returned from the hospital, his personality changed forever, he suddenly decided to move the whole family to the tiny town of Winlaw in the interior of BC. I became very sick as soon as I was put on solid foods, and nearly died.
Gail’s response? Besides saving my life, it was to create an idyllic environment for her two young children to grow up. Suzy went to nursery school and started excelling from the moment she walked in the door. I had the kind of childhood you read about in Calvin and Hobbes comics— exploring old barns, playing with our horse, Star, even digging a tiny swimming pool one summer.
When I was four years old, we left Winlaw and drove to the coast to the town of Gibsons. Here I could meet new friends, ride my bicycle all around town, and in the summer we would stay at Gail’s favourite place in the world: our cottage on Keats Island. This place was special to Gail because she had spent her own childhood summers at Keats Camps.
Gail taught me important lessons in those early years. Once when I was very young I was jealous of a friend’s collection of rocks and shells. I didn’t think it was fair that he could have all those beautiful things, and maybe it was more fair if I took some. She took me aside and taught me about right and wrong, without getting angry or upset. She would always explain things to me if I asked, no matter how precocious I was being.
When I was in grade seven, Gail taught me how to take proper lecture notes and how to write a formal essay, with an introduction, supporting paragraphs, and a conclusion. Years later I would be astonished that some university students still didn’t know how to do these things!
Gail worked for many years at the Gibsons Public Library, first as a volunteer, then as one of the first two paid positions as Children’s Librarian. She worked tirelessly to get better books for the children and her Story Time readings were incredibly popular. She ended up doing most of the Librarian’s job as well, and got me my first job as a summer student.
Suzy and I grew up and went on to university. Gail had always stressed the importance of education, but had never been able to go to university herself. Suzy and I convinced her that she should go. We found her old records, including English 100, which were still valid. Gail enrolled in the Faculty of Arts with a major in Women’s Studies, and with a little nudging, dove into her studies. I taught her how to use a word processor. One of the very first things she typed into Microsoft Word was the statement: “Jeremy is being very mean and making me type this by myself.” Secretly, however, I think she was thrilled to be doing this on her own. She asked me for help with writing essays, and I explained how do to the Introduction, supporting paragraphs, and the Conclusion… and I said: “Didn’t you teach me this stuff originally?” She laughed and said “I know, but I’ve forgotten!” Incidentally, her essays are really good.
We lived together in an apartment on 16th and Alma while we both finished our undergraduate degrees. We graduated in the same year. She came to my ceremony, but didn’t want to go to hers. We then moved to the co-op in Marpole, and then to an apartment on Dunbar and 49th which was close to my new job teaching at Saint George’s School. Gail was very supportive of me when I decided to leave teaching. Gail was incredibly supportive when I met Jennifer, and thought she was the best thing to ever happen to me, which is of course true. She was very happy to attend our wedding in 2001.
In 2003, she decided that she wanted to go on an “adventure” and left for New Brunswick with her sister and my uncle. She wanted one last adventure, and she did it.
My fondest personal memories of my mother include the time she bought me a big hardcover book on the Solar System because I “neeeeeeeeeded it!”, getting up at 4:30 with me to watch the Space Shuttle launches, and making me hot chocolate on cold winter’s nights when I was on the back porch peering through my telescope at fuzzy galaxies. She got me my first computer when I was only seven years old, which had a profound impact on my career and my life. I will never forget the lessons she taught me and the memories she gave me.
Going to PAX!
Submitted by Jeremy Reimer on Fri, 09/03/2010 - 13:53I'm on my way to the Penny Arcade Expo (www.penny-arcade.com) for three days of nerdtacular fun!
This is my first time going to PAX. I'm so excited!
iPad unboxing party in my office!
Submitted by Jeremy Reimer on Thu, 08/12/2010 - 16:29I always said I wasn't going to be one of those "unboxing" people, but that's before Apple started becoming so awesome.
Plus, it's a fun way to break up the working day.



The iPad is a great little device. I was worried I would have nothing to use it for, and yet in less than a day I've read Moby Dick on it on the bus home from work, looked up new movies and watched trailers with my wife on the couch while watching TV after dinner, streamed video from my Media Center using Air Video before I went to bed, and watched professional Starcraft (MSL Round of 8!) games on it while getting ready for work in the morning.
I think it's part of my life now.
Driving Tour of Azeroth - Day 2 - Silverpine Forest
Submitted by Jeremy Reimer on Mon, 05/17/2010 - 06:22After having driven into Silverpine Forest last night, I decided to stop at a convenient farmer's cottage. I woke up early in the morning, eager to explore. First thing I found was a field of pumpkins!
![]()
There was a lonely Lich floating in the middle of an abandoned field a short distance to the west. Maybe she should ask Arthas out on a date?
![]()
After skirting a mine full of spiders, I ended up at the eastern coast of the continent. A wrecked Alliance ship greeted me. Those Alliance sailors need to take some navigation lessons!
![]()
Nearby was an undead fisherman. I didn't tell him that, as undead, we didn't need to eat anything, let alone fish!
![]()
I headed back east and found the main road again. A very sullen undead named Astor Hadren was in my way. He seemed preoccupied with something...
![]()
There was a road leading to a dock to my left, advertising a "Decrepit Ferry". Well, I waited for ten minutes for a ferry to show up, but it never did.
![]()
Then I realized that it was pointless to wait for any form of water transport, when I have amazing Frost powers!
![]()
I made it to the island, Fenris Isle. There was a scary looking abandoned castle on the island, but it had been overrun by stupid gnolls. I left and drove back over the lake to where I had started from.
Down the road a little bit I ran into a nice Undead village called the Sepulcher. Here I met a very nice Blood Elf named Eraldora. I told her I was on a driving tour of Azeroth and she told me to be careful not to crash!
![]()
Down south a little way was an entrance to a dark, fortified town called Pyrewood. It looked foreboding...
![]()
Inside was no better. The town was strangely constructed with huge wooden barriers constructed where the ground had been excavated, and the whole place was overrun by Worgen! None of them would even talk to me, so I drove up a winding road leading east...
![]()
At the end of the road was a strange stone with a glowing yellow rune, and over a bridge was a giant fortress! I had heard of this place. It is called Shadowfang Keep. I had to go in...
![]()
I entered Shadowfang Keep, fought my way through disgusting wolf warrens and jails, and climbed my way up to the top of the ramparts. It was worth it, as there was a very good view...
![]()
Going back inside, I met this giant wolf hound. He wasn't very pleased to see me.
![]()
The final room contained a mad mage named Arugal, who thought he was quite powerful, but he really wasn't.
![]()
After clearing out Shadowfang Keep, I drove back along the main road to the south. A sign pointed to a large township called Ambermill. Nobody here was really friendly, even when I went to the town hall. The major was some kind of Archmage called Ateric. He wouldn't talk to me at all, so I had to kill him.
![]()
Wandering around the hills were these poor dumb saps who called themselves "Dalaran Protectors". Apparently nobody had told them that Dalaran had not only been rebuilt, but had been teleported up to Northrend!
![]()
I left Ambermill and its motley crew of Dalaran rejects, and travelled south. My progress was impeded by a giant structure called the Greymane Wall, which I could find no way around or through.
![]()
Eventually I gave up and took the road back east. Farewell, Silverpine! I'll miss you!
Driving Tour of Azeroth - Day 1 - Tirisfal Glades
Submitted by Jeremy Reimer on Wed, 05/12/2010 - 16:46Having left the Undercity, I drove up a bit to the north and entered the happy little town of Brill.
![]()
I parked my Hog and stopped in the inn. There was a group of Level 80s doing some role-playing inside. They didn't seem too pleased to see me. Hey, dudes, I'm just passing through town!
![]()
I headed out again to visit Brill's main attraction - the largest graveyard in all of Azeroth.
![]()
Here I am passing through one of Tirisfal's historic covered bridges:
![]()
Over to the west, nearing the mountains, I came across what looked like a well-guarded fortress:
![]()
Turns out it was the starting zone for all Undead, except for me for some reason, as I started out life as a Death Knight. I found a crypt and drove down the stairs, to be greeted by a rather morose innkeeper:

He thanked me for waking up and had some very trivial tasks for me. I had to tell him politely: "Thanks, but no thanks", then I headed out again.
![]()
I had a good time in Tirisfal, and my batling companion met several of his elder cousins. Nevertheless, it was time to move on south. With the massive bulk of the Undercity to my left, I continue on to newer pastures...
![]()
Off on a Driving Tour of Azeroth!
Submitted by Jeremy Reimer on Sun, 05/09/2010 - 06:39I'm a big fan of World of Warcraft, and I'm excited about the massive changes coming to the world of Azeroth with the upcoming Cataclysm expansion. However, knowing about these changes made me want to travel through Azeroth one last time, capturing some memories along the way.
I chose Amaethon, my Level 80 Death Knight, for this journey for several reasons, but mostly because he is an undead Death Knight who rides a Mechano-Hog. What better way to take a tour of a fantasy realm than on a self-built motorcycle?
Here is my planned route:

I started off in the Undercity, my home city. Before I set off, I thought I should get a haircut:

This is going to be a long trip, so I'd better stock up on supplies! Let's see... pet toys for my Tirisfal Batling, some flares, my collection of human Crusader skulls...

And with that I'm ready to leave the Undercity. In the distance you can see the Horde Zeppelins taking off from the towers, ready to fly heroes to and from Northrend and Kalimdor...
![]()
Drupal 6 upgrade fixes
Submitted by Jeremy Reimer on Mon, 05/03/2010 - 18:33Well, I've fixed a couple of things. I installed the Help module for Views, and understood it a little bit more, enough to re-create the Knotty Geeks views module. Unfortunately it would work in Gallery Live Preview mode, but gave a 404 error when I clicked the link. I had to end up changing the link from jeremyreimer.com/views/knottygeeks to jeremyreimer.com/audio/knottygeeks, and then magically it worked again. Maybe it just needed a /views/ subdirectory to work, because I had an /audio/ subdirectory already.
Then I fixed my Book problems, where my entire book hierarchy had gone missing. This is a known issue, and the solution is actually not that hard:
1.) drop table book in D6 (if there are no diffs to your backup of D5)
2.) reimport table book from D5
3.) run update_6000 for the book module (2nd page of update, Select Version, choose 6000 in the drop-down-box for book)
4.) check your book hierarchy
I took my original full database backup and restored it to new database called 'backup'
CREATE backup;
USE backup;
SOURCE dbcontent.sql;
Then I exported just the "book" table:
$ mysqldump backup book > book.sql
Then dropped the table from the Drupal 6 database
USE mydbname;
DROP table book;
Then just re-imported it from the book.sql file
$ mysql mydbname < book.sql
And then ran update.php from my site, and selected "6000" from the "book" table, and voila!
Now that everything is working, I'm going to stop fiddling with things.
Drupal 6 Upgrade Woes
Submitted by Jeremy Reimer on Mon, 05/03/2010 - 06:33I found a better theme at the Drupal Theme Garden. The theme is called Ad Novus. I had to tweak the font sizes a bit, and I took out the textured page background and shifted the banner up a bit (the original had way too much screen real-estate devoted to the page banner).
I've re-installed the various modules I needed to get Audio (for Knotty Geeks) pages to work again, but there is a big problem with the Knotty Geeks View. I converted it to Drupal 6 format, but it didn't work, and now it just shows the entire blog. The new AJAX-based view editor doesn't work at all, and just spits out a Javascript error whenever you try to do something. I changed it to a non-AJAX view, which apparently a lot of people do, but now I'm at the point where I am completely unable to comprehend what any of the options mean. I think the Drupal people know this, as they suggest installing a help module on the View editing screen. Thanks, guys, but couldn't you just have made it usable in the first place?
The other huge thing, and something that really annoyed me, is that my book, Edge of Infinity, got completely lost. The pages are all still there, but the chapter structure just disappeared. Apparently this is a known bug! The solution involves exporting the entire table from the old database, and importing it manually! And nobody is fixing the problem! Unbelievable!
I really like Drupal, but it seems like they are pretty sloppy when it comes to writing the upgrade scripts for new versions. It weakens my trust in their whole code maintenance strategy, to be honest.
Upgraded to Drupal 6!
Submitted by Jeremy Reimer on Fri, 04/30/2010 - 23:15You'll notice the site looks a little weird, as the new "Zen" theme for Drupal 6 is a lot different (and more sparse) than the old Zen them for Drupal 5.x.
I also still have to enable a bunch of modules, like Audio and Captcha, but I think I've done enough damage for one day...




