Sunday, October 31, 2004
Amazon knows that I like DVD sets of nerdy shows. For example, I have all of the released seasons of The Simpsons, Family Guy, Futurama, The X-Files, Millennium, Star Trek: Voyager, The Critic, and Arrested Development. So, I fully understand that Amazon wants me to buy Babylon 5, Angel, Buffy: The Vampire Slayer, and Stargate SG-1, though I'm not really interested in those shows. It knows that I like electronic and trip-hop music, so it suggests a lot of electronic music for me. It knows that I have purchased pans, so it suggests lots more pans for me. Tonight, it even recommended for me the camera that I just bought. But then it gets weird. Amazon, of all websites, should know that I don't really read. In fact, I've only purchased a couple books in recent history; I purchased Get Your War On 2 from Amazon recently (which is barely a book, since it's all cartoons), and then America: The Book—but that was from Barnes and Noble. As I was looking through my recommendations tonight, I noticed something odd: there were a lot of books in there, which I don't normally see, but even more strangely, starting with about page eight, they were all gay-themed books. There were collections of coming-out stories, a few political-ish books, and then several of what are apparently the gay version of trashy romance novels. I've never seen so much gay literature in my life... and I'm now really wondering what prompted Amazon to suggest these items for me.
So, not too long after, I go back to Amazon to click on the "why was I recommended this?" links. But they're all gone. I had already clicked "not interested" on those items, so now it's too late to find out what dirty secrets Amazon thinks it knows about me. Going through my wish list, I can't even fathom what's so gay about the items I want. The only particularly gay things on my list are two books by Dan Savage (of "Savage Love" fame in The Onion AV Club), but those were the first items I ever added to my wish list, years and years ago. I've never bought them because, well, I don't really read. My recent items are cookbooks, "Deep Thoughts" books by Jack Handey, and a lot of CDs.
I'm terribly confused. What about my Amazon browsing habits screams "ho-mo-sexual?" I must know! A couple times before, Amazon went on a recommendin'-spree of weird things: once grills, and another time jewelry. But, when those happened, the same items were being recommended to Daniel. Weird. Very, very weird.
Saturday, October 30, 2004
So, yeah, that. Here are a few more random tidbits that don't fit anywhere:
- I came closer to being pelted with bird crap than ever before today. If it weren't for the fact that a Segway with maxed-out weight tolerance doesn't go uphill very fast, I would have had a face full of white goo this morning.
- I got a slug stuck inside my fender today. I got into my office and noticed two little antennae sticking out from under it. Nasty.
- While waiting for the movie, we went to Borders to look around. There, they had books titled Cryptography for Dummies and Network Security for Dummies. We unanimously agreed that, despite their best intentions, dummies should probably not be attempting to secure networks or sensitive data.
- I wore my Halloween "costume" to the theatre, and I was actually approached by a random guy who told me how awesome it was.
Wednesday, October 27, 2004
Tuesday, October 26, 2004
Now I'm going to sleep.
Monday, October 25, 2004
Phil: "That's a lot of bukkake"...? What's bukkake?
Me: Uh, I'll let you find that out yourself.
Later, once he had finished helping my officemate...
Phil: Take it easy, guys. I'm gonna go look up "bukkake."
At this point, I quickly got up to go catch him before he got to his office...
Me: Uh, you might want to look that up at home.
Phil: Oooooh... sounds interesting.
When the pretty printer receives
a PP_UGLY flag it fails
Later, this conversation took place when a coworker stopped by. (Useful information: Phil is a coworker of small stature who has an odd sense of humor.)
Alex: Hmmm, that
Me: Why do you say that?
Alex: Because it looks like the kind of dumbass thing he would think was funny.
Me: Oh. I thought because it was low to the ground.
Alex: Good. Now, if you never tell him what I just said, I'll never tell him what you just said.
And then he left.
Sunday, October 24, 2004
Saturday, October 23, 2004
Friday, October 22, 2004
Still, there's nowhere I'd rather be working.
- Perplexed entertainment
- Outright fury
By this time, I had finished, and washed my hands and left quickly. He was still going at it when I left.
Oh, and he smells, too.
Wednesday, October 20, 2004
Democrat: 7 votes, including President and Governor
Republican: 3 votes
Libertarian: 3 votes
Nonpartisan: 6 votes
I actually read about the positions of each and every person I voted for, which kind of makes me feel like a good citizen or something. I just hope that John F. Anything-But-Bush manages to pull this off...
Oh yeah, and the position of one of the candidates was to put an end to internet pornography. First of all, OH HOLY CRAP NO, and second of all, how do you think you're going to manage that? Washington Secretary of Whatever is somewhat different than Emperor and All-Powerful Arbiter of Earth. I try not to vote for stupid people, and that includes people who use ten or more consecutive exclamation points in their personal biography.
If you misread someone's signs at a party (a what?) or at school (well, except when you live in the same building as all of your classmates), there generally aren't going to be any lasting consequences. But, if, for example, I attempt to engage in flirting with some girl on my team, and I fail, it's going to be very awkward once I have to start working with her on a feature. Maybe that's why I don't try. I wonder what it means that the fact that I don't ever try doesn't bother me.
Bad Halloween costume ideas:
- Child molester
- Catholic priest
- An upside-down, decapicated head with spider legs that jumps out from cracks in the walls and bites your face
- Ron Jeremy
Bad Halloween candy ideas:
- Bulk Pixy Stix (Ziploc bags filled with powdered sugar)
- C1AL.IS, ALSO KNOWN AS SUPER VIA.GRA
- Indian candy. I'm not talking about Candy Corn, I'm talking about the hideous candy from India. Trust me, that stuff's completely inedible.
It's going to be weird being by myself in Redmond for Christmas, but I made a conscious decision to go home for Thanksgiving and not Christmas—I only have a small amount of vacation time accrued, so I couldn't go for both, and I figured that Thanksgiving gave me much better chances of spending time with you guys, seeing as Christmas is right after finals.
Tuesday, October 19, 2004
That's it for this post if you're tired of reading about the bizarre things that I dream about. If you're not, then here we go.
Last night, I had another weird dream. I had an uncle (this wasn't my real-life uncle) who had directed a documentary called "WAR" about, well, war. The actual film didn't show up in my dream, but I knew that I had seen it before and it was extremely funny. He was really trying to promote his film because the Academy Awards were the following night. (Apparently, in my dreamworld, Oscars are decided by a live vote by the audience.) He was giving out copies of his movie to everyone he could find, and made me take several, even though I had seen it already.
So, then the dream cut to the next night, at the Oscars. Apparently, families of people whose movies are up for consideration don't get very good seats; I was way up on the balcony with people my age misbehaving. There were a group of high school guys sitting to my left that kept getting up and switching seats, and giggling amongst themselves. The one sitting next to me for most of the show was drinking red liquid from a large glass bottle, a little at a time, and he kept leaning into me and touching me. I assumed he was being an ass, and I ignored him. After one of the big musical numbers, I looked over, and discovered that he was trying to get me to drink from the bottle. Tired of being nudged, I took a big gulp of it and gave it back. He and his friends gasped when they saw how much I drank, and then one of them frantically explained to me that it was drugged, and that very bad things were going to happen to me after drinking that much. And then the dream ended, awakened by the sound of drilling or a leaf blower or some kind of extremely loud machinery that I now get to hear every weekday morning at about 8:30.
I'm kind of annoyed that so many of my recent dreams seem to lack closure. What happened to me after drinking the whatever-it-was? Did "WAR" win any of the awards it was up for? What was the point of the story? I guess it's better than dreaming about dressing myself in the morning, but I would still really like to have something of importance happen in a dream sometime. I guess my subconscious just isn't creative enough.
Monday, October 18, 2004
Now, with that kind of setup, you know it's got to be good. I bet you're just dying to know what happened. (If not, let's pretend for a second.) So, here's how it went down.
I was lying in bed, trying very hard to clean my mind of thoughts so I could sleep. (I generally have a very hard time getting to sleep on any given night.) As I was doing this, I farted. Not just any fart, but a Mt. St. Helens fart. It was precisely at that moment that I experienced the image flash before my eyes. The image was of a carving on a totem pole gasping in horror at my eruption. For a few seconds I was very confused, until the absurdity of what had just happened set in. I really wanted to laugh, but for some reason I couldn't. And that was the last thing I remember before waking up this morning.
Friday, October 15, 2004
Thursday, October 14, 2004
I've noticed that I'm just significantly less happy when I have to work with other peoples' code. At work, recently, I've shifted a bit from making brand-new, cool stuff to hooking up my new stuff with old code, and, well, that sucks. Then, of course, the various travails that I've had with other peoples' code at home that I've explained in far too much detail already. I guess I only really enjoy coding when I'm making something new. When I'm fixing something, or tying stuff together, or anything that's not creating new stuff (or completely reworking old stuff), I'm just not that interested. Or, maybe it's just not enough mast... sleep.
Wednesday, October 13, 2004
I've always been a do-it-yourselfer. If there's something that's pre-made that doesn't do exactly what I want easily and reliably, I generally forget about it and make it myself. This has served me well.
However, in my latest IvoryTower HTML-parsing adventures, I decided that I would try to learn some off-the-shelf technologies. For the more technical of you, I decided on this: with a block of HTML, start by cleaning things up with a monstrous regular expression, then put it through HTML Tidy, then put it through a complex XSL transform, and then use the XML DOM to manipulate it further. I've already explained my feelings toward regular expressions (respect and disgust), and I'm not really sold on XSLT (I could have done the same thing in a lot less time manually). I do rather enjoy the XML DOM, even though it does have some annoying shortcomings (for example, it's a major operation to excise a substring from a block of text and replace it with a new node, especially if you want to do this more than once). However, I am furious at HTML Tidy.
At first, I was really excited about HTML Tidy. Its mission is to take as input the worst HTML ever, and turn it into something useful, even well-formed XML... no short order. It does this pretty well, it turns out, though there are a lot of not-well-documented options you need to learn. There's even a version of Tidy that you can use from other software called libtidy. So, I decided early on that I would use this in IvoryTower. Big mistake.
Libtidy is a C library, which was a bit of a pain to call from .NET (string? what's a string?), though that wasn't the biggest problem. The biggest problem is that it failed randomly. I mean, completely randomly, it would fail to allocate a buffer of memory. I got around this by catching the error, waiting a few milliseconds, and then doing it again, which worked. But then more problems started pouring in. The worst is that it wasn't Unicode-compliant, which was kind of an important requirement for me. So, I tried out TidyATL, a C++/ATL/COM wrapper around libtidy, which was easier to call from .NET, and Unicode-friendly. This, unfortunately, didn't get around the random failures... and in TidyATL, instead of a simple failure, you get a stack overflow, which is something you can't recover from. In the end, certain blocks of perfectly-valid HTML would hang the app at 100% CPU for a while, and then the program would crash.
I spent many, many, many late hours trying to come up with a solution, and finally I just couldn't. I scrapped the whole idea of using libtidy tonight, and tried a different option, one that I had originally decided would be too complicated: using an SGML parser and DOM. (HTML is a variant of SGML.) This turned out to be extraordinarily simple: I had my program up and running in half an hour, with no weird little special cases, bugs, or hacks. Wonderful. It doesn't do quite as much as HTML Tidy since it's just a parser and DOM (for example, Tidy could, if I wanted it to, replace ugly <font> tags with valid CSS), but it does everything I need it to, without a heaping helping of pain. It turns out that this SGML reader was developed by another Microsoft employee on his own time.
This whole experience has left me quite frustrated, though in the end, it all seems to have worked out. This was way more work than it needed to be. I should have just stuck with my original instincts: do all of the parsing myself, and then use the XML DOM for tree operations. Then, I would have avoided regular expressions and Tidy altogether, and I would have been a much happier developer.
Tuesday, October 12, 2004
So, I ordered some lamps from Lamps Plus a while back. Like all of my furniture, they are sexy, and more expensive than they really should be. One of them is an awesome glowing tube manufactured by 3M. The day after ordering them, I got a coupon code for $100 off floor lamps. Since it took them a few days to ship, I asked them to either apply the coupon code after the fact, or cancel the order so I could replace it with a new one and use the coupon; they happily applied the coupon for me. Then, the fun began.
My order arrived, and out of the five bulbs in it, three were broken. One wasn't broken immediately, but it exploded (internally) after a couple minutes of usage. That's $30 worth of broken bulb, so I sent them an email asking for replacements, and they happily complied. I got the replacements a couple days later, and I was stopped in my tracks when I saw the packages: I received two replacement lamps, and one replacement bulb, packaged in its own box. I talked with customer service again, and they said I could cannibalize the bulbs from one of the lamps, and they'll send me a UPS return label.
Right after receiving my last email from them, I got another order confirmation email, which surprised me, having not ordered anything. It was a receipt for another 3M lamp, price $0.00. I don't have any idea what they're sending me this time; I didn't even ask for this. Maybe it's just a free bulb... I don't know. All I know is that this is just about the most failed internet purchase ever.
I have enormous levels of simultaneous respect and disgust for regular expressions (regex). The fact that such complex behavior can be expressed in such a small space is undeniably cool to a software engineer. Yet, as someone who prizes readable and understandable code above almost all else, I generally find them extremely unpleasant to work with. I recently wrote this regular expression:
If this were written in procedural code (VB, C/C++/C#, Java, etc.), it would probably be a hundred lines, yet it can be expressed in the language of regular expressions in less than a hundred characters. The problem with something like this is that it's pretty much impossible to visualize. Once it's written and put into use, it's set in stone, because no one will be able to understand it later. Had I not documented this regular expression, I'd probably have no idea what it was for in a week. Now, this can be said about a lot of things; someone who works with regular expressions on a regular basis would have more luck at understanding that, but I don't expect that there are too many people in the world who could understand the line of code above without an extreme amount of effort.
In writing that expression, I learned all sorts of new terminology like "atomic zero-width assertions" and "positive lookbehind group." I am certain that these names were chosen primarily to make regular expressions sound even more technical than they really are. The main computer teacher at my high school, Mrs. Trumble, had a theory that most computer science terms were named the way they are to sound more daunting and frightening to non-technical people, setting those who could understand the terminology cleanly apart from the rest of the world, and therefore ensuring greater job security for the future. When I heard this theory, I was immediately convinced, and I still am today.
Thursday, October 7, 2004
So, the dream started in a grocery store. I was there with my brother getting breakfast, and he went straight to the donuts, grabbing three. I decided to go for the healthy version, getting two regular donuts and one granola donut. (Why did I get donuts? I like bagels a whole lot more.) So, we paid for these and left the store. We drove somewhere—I didn't know where we were going, but it didn't seem to matter.
We ended up at an enormous house: at least three stories tall, with massive square footage. I never did figure out who the house belonged to, but I assumed it was my grandparents'. We ate our breakfast outside the house, and then my mom came outside to get us. Inside were my aunt, cousin, and grandfather, all from my mom's side of the family, as well as Winston, an incredibly obese dog that belonged to a different aunt who was not present. We decided to watch a movie, which was a really awful, stereotypical sci-fi movie in which a bunch of tourists from Earth (with Leslie Nielsen as the captain) decide to take a trip to the moon, and somehow get so far off course that they land on an unknown planet in a faraway galaxy. As far as I can tell, I watched this movie with my family in its entirety during the dream, which I don't think has ever happened before.
After the movie, we decided to explore the backyard, which none of us had seen yet, this being the first time any of us had been in this house. While the view from the front of the house was an urban landscape, the view from the back was completely uninhabited wilderness. In the sprawling backyard, bounded only by tall rock cliffs, we found a robot that looked very similar to my cousin. He was pretty excited at this, being eight or nine or so, and we got the idea that since this new body was in better shape than his old one (?), we should put his brain in this new body (??). So, we unscrewed the top of both skulls (???), only to find that the robot already had a brain, and it was much larger than my cousin's brain, and incompatible. The best part? The robot's brain stem was a square USB plug, and my cousin's brain stem was a rectangular USB plug. This did not seem remotely odd to any of us. Also, much of the backyard was under about three feet of standing water, which also did not seem odd.
Suddenly, we were interrupted by a pack of wild creatures that jumped down from the high cliffs and landed in the backyard. These creatures were somewhat larger than a very large dog, but were shaped more like bears. They were extremely fast, but not very strong or heavy. It turned out that they were friendly, and there was one of these dogbears for each of us. We played with the dog-bears for a while, until they began to seem agitated. We looked toward a faraway part of the backyard, and saw some very vicious-looking walrus creatures heading toward us. Not sure what exactly they were (or why there were glaciers in the backyard of this house, considering it was about 80 degrees out), we headed inside and watched from the second or third floor. The dogbears ran toward the walruses, defending their new masters. It quickly became evident that the dogbears were no match for the mighty walruses, which bit one of them cleanly in half. The dogbears then changed their strategy, tricking the walruses into falling through the ice into the water below, drowning them. Once all of these walrus creatures were taken care of, the dogbears headed back toward the house, and the dream ended.
So, I really have no idea why I had that dream or what it means. I can think of reasons for a few things in the dream: the sci-fi movie can probably be attributed to the fact that I watched an episode of Enterprise yesterday. The fact that it starred Leslie Nielsen was probably because I was recently looking for a particular quote from the movie Surf Ninjas, a very bad film in which he plays the villain. And, the dogbears were vaguely reminiscent of the "Panda-Dog," except all black, and much larger. But the house, the nonsensical landscape and client, buying breakfast with my brother, and the whole subplot of my cousin finding a robotic clone of himself with a USB brain is just insane. In fact, while my mom has shown up in a couple dreams before (long, long ago), I think that was the first time that my brother, cousin, aunt, and grandfather had ever showed up in one of my dreams. Leslie Nielsen has showed up in more dreams than they have, this being his second or third appearance in my life.
I have recently been trying to get eight hours of sleep each night, or at least pretty close. If this is what I can expect when I really do get eight hours, this should be fun.
And, before any of you take this as a license to send me bugs in Office, Visual Studio, the .NET framework, Windows Forms, ASP.NET, C#, etc., you should know that you can already submit bugs for all of those things except Office on MSDN. I just happen to get a faster turnaround. :)
I care about the success of few products more than Visual Studio (or, in the past, Visual Basic, or QuickBASIC). In reality, at least as interested in seeing it succeed as I am FrontPage, because I don't use FrontPage for fifty hours a week.
Wednesday, October 6, 2004
Today, at lunch, the topic of spilling things on yourself came up, and I mentioned yesterday's event. Not a single person I was eating with (including five people from yesterday) had even noticed that I had an enormous, reeking streak of taco sauce coating my body for an hour. That's just... weird.
Sunday, October 3, 2004
Anyway, I was not willing to pay $7 for purple nail clippers, so I left, reminded of a scene from the cinematic treasure Surf Ninjas starring Rob Schneider and Leslie Nielsen. At one point, a man tells Rob and the two surf ninjas that the ancient treasure that they are seeking is a collection of rare knives:
Man: We are looking for something money can't buy: the Knives of Kwan Su.
Schneider: Knives? Money can't buy knives? So, I walk into a knive store and I tell the clerk, "Here's a million dollars. Can I buy a knife?" The clerk says, "NO! Money can't buy knives."
Friday, October 1, 2004
Albert: (speaking in Japanese)
Simon: (yells) Hey, English!
Albert: (yells back in Japanese)
Simon: English! (to me) Hey, don't you wish you white guys could say that?
If that doesn't turn your stomach, you're probably not a programmer. :)