Prompted by the fourth bullet in the previous post, I finally rebuilt the inner workings of this weblog. About time! I kept the design intact but completely overhauled the backend code to accomodate the database-driven architecture I should have had from the beginning. This opened up the possibility for loads of new functionality. For one thing, it makes it far easier for me to post and edit entries. No more flat files! I just open up my password-protected form, type in my entry, and click "Post". Browsing the archives is now a whole lot easier. I added "Older" and "Newer" links at the bottom of the page, and each entry has absolutely beautiful permalinks. Just click the timestamp at the end of this post to see what I mean. Similarly, pictures have nice URLs and are easier to browse, too. Each picture displays above the thumbnails of other pictures in its directory. Finally, and best of all: commenting! You can now contribute your insights and opinions like on all the cool kids' websites.
The most difficult problem with this migration was getting the entries out of the old monthly flat files and into the database. I think right around late 2002 was when the archives became unwieldy. Fortunately, I used relatively clean markup (thank you, style sheets!), so I was able to write a quick extract-and-insert program that regex'd out all the entries and loaded them into the database. I had to modify a few of the odd cases by hand, but overall, the process went quickly.
The second most difficult problem was getting the nice URLs to work consistently across the site. I used , Apache's URL manipulation module, to give the illusion of a directory structure in both the archive and picture links. In reality, everything after "archives/" or "gallery/?path=pictures/oldweblog/" is mapped to a query string that the code uses to create the pages. For example, this link is exactly the same as this link only more elegant. Again, I used regular expressions to search and replace the links in the text of archived entries.
The moral of the previous two paragraphs is this: if you see something garbled, missing, or broken, it was probably an unruly regex match. Please leave a comment under the offending entry, and I will go fix the problem.
I hope you enjoy this new streamlined version of .
The beginning of the school year has brought with it a handful short things to write about:
My schedule this semester is the best I've had so far. Monday, Wednesday, and Friday I have only one "real" class, History of Science and Technology, which starts at 12:30. I also have an honors seminar and PSO (read: scheduled TA help session) two of those days, but those shouldn't add much. The downside of these light days is that my Tuesday and Thursday schedules are crazy. I have four power-hours: Algorithms, Discrete Math, Compilers, and Macroeconomics. Fortunately I have space in there for lunch, but the last class, Macroeconomics, ends at 5:45 which is almost unheard of.
It's official, I am a digital camera junkie. Last week I bought the , an incredibly tiny 5.1 megapixel camera with the largest viewscreen I have ever seen. Of course I plan to keep my C-750 for artsy pictures, night shots, and events. I bought the T1 to be my spur-of-the-moment pocket cam.
Dad, for some craaaaazy reason, wouldn't let me bring his PS2 to school. This left me no choice but to try to buy my own last weekend. Mel worked at Walmart over the summer, so the plan was to use her employee discount. I was shocked to learn, however, that all the local stores were having supply issues and none had any PS2s. Not often that you hear about Walmart having procurement difficulties. I'll try again next weekend.
After numerous incremental fixes, the weblog posting program that I have used for so long is finally, unequivocally broken. It adds chunks of text to the end of the archive files and messes up the whitespace. Just look at the page source to see what I mean. The whole setup— flat files, FTP uploads— has always been pretty nasty. This entire weblog is far overdue for a redesign, but I don't know when I will find time now that classes have started. I suppose I'll have to dig around my existing code to find the problem.
I remember reading on a website somewhere, "If you aren't meeting numerous and varied members of the opposite sex while at college, you're wasting your time." Today in my compilers class I counted more laptops than females. Well, crap.
I think we are about ready to begin the year. Eric— whom I don't believe I have mentioned will be my roommate this year— and I moved in to the dorm on Friday. I arrived first because I woke up uncharacteristically early around 5:30. I had spent Thursday shoehorning everything into my car, allowing me to leave the house around 7 after a round of goodbyes with my parents. When I got to Purdue, Eric was still a few hours away, so I moved everything out of the car and into my closet. I couldn't start setting up the room right away because Eric had the carpet. I had time to get my parking permit and take a nap before Eric's family showed up. The theme of the day was "it fits perfectly!" The carpet was the exact width of the room; the TV, stereo and my computer fit perfectly between the desks; and the couch had inches to spare on either side. We ended up laying out the room similarly to how Michael and I had it last year. Eric and I have already had comments on how nice and open it is.
On the vinyl seats across from me, close enough that our knees brush, sit Eric and Mel. To my left, Laura and across the aisle, Michael. We're laughing and chatting on our way to the via the Fair Train.
The trip takes about 40 minutes, and we arrive about 100 yards from the front gate of the fair. I marvel at how easy it was to get there. The pig pavilion is right in front of us, so we make the requisite visit to the . Afterwards, Eric wastes no time buying a chocolate-dipped cheesecake. Michael counters with a battered and fried twinky. "Not really worth the three dollars," he says.
We wander a bit and come across a physics demonstration put on by Purdue Physics as part of . When we arrive, the presenter is demonstrating Newton's third law using a fire extinguisher. He then asks for a volunteer, and when no one raises their hand, he picks Eric. We all clap as he walks up to the stage. The presenter puts Eric in a big blue smock while an assitant brings out a bed of nails. "This will be interesting," I think to myself. As they lay Eric down on the nails, the presenter starts talking about force per unit area. Then he lays a slab of wood on Eric's chest and says, "Now let's increase the force!" He hands a small sledghammer to his assistant and tells her to hit the slab. She gives it a meek little tap while the presenter talks about impulse and inertia. The assistant hits the slab once more and hands the hammer off to a male assistant who gives it a good strong whack. Eric will later say that the hit sent a tingling sensation through his entire body.
We start walking to the arts building not long after Eric returns to his seat. As we walk around the stage we hear "Hi Eric. Good job!" from none other than who is sitting and watching the show. Amazingly, he knows Eric by name from the President's Leadership Class. He doesn't know me, of course, but I still get to shake his hand.
We browse the displays in the art building for a time, then head over to the FFA building. There, we play some free minigolf on a cobbled-together course snaking through the building. Eric gets a hole in one early on; I get one a few holes later; and Laura gets one without using her putter. After the last hole we head back to the train stop for our ride home.
That was a great afternoon and the perfect way to cap off the summer.
Yesterday, Friday the thirteenth, was my last day of work this summer. I have purposely not written much about what I was working on not because it was particularly secret or confidential, but because I feel I probably wrote a bit too much about my projects last summer. I don't think the company would mind that I wrote about the work I was doing, but you can't be .
For those who don't know, I interned at the software development subsidiary of a reasonably large local credit union. It was my third summer there, which is funny because that means I had been there longer than many of the new full time workers.
The big thing this summer was a complete rewrite of the company's main product. The frontend and database were mostly complete by the time I started, so I did a bunch of work on the middle layer. I did all sorts things with XML (, , , and ) and made a few quick forays into exploratory project planning. I also got a chance to fine-tune my skills on some GUI testing tools. That was a new experience for two reasons: first, I had never done any serious GUI work— Purdue's CS classes focus solely on command-line programming— and second, I never before had the need to make my own tools to help develop a project.
The best part of the summer, though, may be yet to come. It may open up an opportunity to get an internship next summer at doing what my boss calls "skunkworks projects". That would be unbelievably awesome, but it's still too early to say what might happen. I will write more about that as the situation unfolds.
Update: As a going away gift, my boss and the CIO of the credit union gave me a very cool silver . Now I can truly call myself a geek: I have a portable MP3 player.
Since Michael returned from his study abroad in Spain, he and I have gone lifting at the a few times. Last Monday, Michael invited Jason to join us using one of the YMCA guest passes. Technically, the pass was only valid until 4 PM, but neither of us saw any reason why the Y would refuse him entry. It was only 5:30 and he was just one person. The saggy old lady at the front desk thought differently, however, and told us Jason couldn't come in. Stupid, pointless bureaucracy.
Jason has had a membership at the local , which, incidentally, offers free, two-week passes for friends of members (with no idiotic time restrictions). So, after being turned away from the Y that afternoon, we headed over to Gold's.
The irony, of course, was that I was paying the nonprofit organization but ended up going to the for-profit business for free.
The gym was tucked in the corner of an industrial park between a bunch of warehouses. Its demographic was completely different from that of the Y. Instead of middle aged parents trying halfheartedly to get in shape, Gold's was filled with what appeared to be a more serious crowd. I use "filled" in its most liberal sense because Gold's was far less crowded than the Y ever is. There weren't any of the sterotypical -like bodybuilders, but there seemed to be a higher percentage of regulars than at the Y. The equipment was comparable; though Gold's was more heavily used. I was surprised to see that the franchise had a protein shake bar and allowed patrons to have drinks in the workout area. Also, the locker room was very nice. I will have to remember Gold's when I'm shopping around for a gym next summer.