August 2004 Blog Posts

Mole Removal

I went in today to get this tiny mole removed (maybe 6mm diameter) from my right side. I've had moles removed before - from my back, from the side of my head, etc., so I kind of knew what to expect.

Let me interject here that I am the biggest pain pussy ever. I don't fear death, I fear pain. I fear any little kind of pain there could possibly be. Even if something isn't hurting, I anticipate pain, and that hurts almost as much. I can't watch medical shows on TV, and any needle bigger than the tiny ones I get my allergy shots with make me a little queasy.

Keeping that in mind, I got numbed (which hurt a lot, ironically - and the needle was a little larger than I'm comfortable with) and then the doctor started the operation. I was awake, but lying on my side not watching.

About halfway through, I started to feel the pressure of him pulling on the skin on my side and cutting and whatnot... and I started sweating profusely. I mean, like, sweat rolling off my forehead, soaked down, "I've been working on the railroad all the livelong day" sort of sweat.

Then he started cutting outside the area a little to make sure he got it all and I started feeling it a little, so he had to numb some more, which meant they brought a needle out and it made it all worse.

By the end of the thing they had to bring me an ice pack and a cup of cranberry juice because they were all worried about my distinct lack of color. I wasn't at "pass out" level yet, but I was definitely headed there.

I have to go back in two weeks to get the stitches removed. I'm sitting here typing this and I feel the tightness in my side (probably due to the gigantic bandage attached to me) and I don't know how long I'm gonna be able to stand that.

I think I should eat something.

Aeration

Most of the weekend was spent doing yardwork; at least, the majority of Saturday was. I bought this lawn aerator device that is basically a set of spikes attached to a handle - step on the spikes to push them into the ground, pull the handle to get them out of the ground. Like dangerous romper stompers.

Thing is, that trashes your back really quickly, so the rest of the weekend I ached. I still ache.

We also started painting the upstairs bathroom, which is already proving to be less painful than the last bathroom we painted because: a) we're only painting two of the walls; and b) there's no border that has to be sanded off. We got a coat of primer on there pretty quickly. We'll put another coat of primer, then two coats of paint, then be done.

And, of course, there was the typical cleaning of... well, everything... as there usually is.

Oh! I got my L'Instant Taittinger poster back, framed, from Michael's and it looks brilliant. That's now in my entryway so you see it pretty much right when you walk in.

Mixed Mode; And Service Pack 2

I worked a little while on my Send To project and got the framework for a mixed-mode DLL set up. I have some managed classes (my public interface) in there and it compiles; now I need to start putting in the unmanaged stuff.

I also installed Windows XP SP2 on my home computer last night. I happened to get a disc with it on there from MSDN (subscription through work) so I took it home, threw it in the drive, started the install, and walked away.

A couple hours later I came back, rebooted, logged in, and have thus far really only noticed a couple of minor changes. First, the Security Center thing pops up to tell me that Windows Firewall is enabled, Automatic Updates (to the OS) are enabled, and it can tell that I have Panda antivirus software installed but it can't tell the version of the updates. Fair enough. Second, the Windows Firewall is a lot more configurable and I like it better than the old Internet Connection Firewall. (It did, however, fail to properly migrate my ICF settings so I had to reconfigure, which wasn't a big deal, just annoying.) Finally, the pop-up blocker is in full effect in IE.

That's it. That's all I really noticed.

I think that's a good thing. I saw all of these "get ready for SP2!" ads and all of these articles about the drastic changes to the security on the system and whatnot, but when the end user finishes installing this thing, they really won't notice much.

Now, from a programmer's perspective, yeah, I have to be more conscious now about the security on the system and whatever for operations my program performs. But from the end user side... no big deal. Just more secure. Perfect.

It Just Works, Mixed-Mode, pInvoke, or COM?

I mentioned earlier that I'm trying to create a library to interface with the Windows "Send To" menu.

I'm not getting too far with it.

Here's what I want:

Two classes - SendToMenu and SendToMenuItem. They implement the following public members, as noted:
  • SendToMenu
    • GetSendToMenu: Takes in no parameters and returns an array of SendToMenuItem objects representing the items in the Send To menu.
  • SendToMenuItem
    • DisplayName: A property that returns the display name of the Send To item
    • Icon: A property that returns the icon for the Send To item
    • ExecuteSendTo: If you pass in a file name, it mimics you "sending" the file to the item via the Explorer menu.


It shouldn't be that hard. Right?

It seems I have four choices of how to get this done, none of which are easy.
  • It Just Works, or "IJW": Supposedly you can intermingle managed and unmanaged C++ and it's supposed to just work. I've messed around with this and it doesn't just work.
  • Mixed-Mode: You can create a C++ DLL that implements both managed and unmanaged code but you have to do some special finagling to get it to work. I haven't tried this yet, but I don't understand it all, either.
  • Platform Invocation, or pInvoke: This allows you to directly import and use unmanaged methods from DLLs right in your managed code. Talking to the Send To menu touches a lot of these things - more than you'd imagine - and getting them all to work nicely together in a managed world is nigh unto impossible. I have hundreds of lines of pInvoke code trying to get this to work. It's just not happening.
  • Component Object Model, or COM: This is the standard, unmanaged way of getting components out there. .NET knows how to deal with COM, so if I could get a COM object that does what I want, it could pretty easily hook up. Thing is, I don't know how to write COM, and would rather not take that time for something I'll only use this once.


So there it sits. I have to decide whether I need to do a mixed-mode DLL or COM. Or I need to find someone who knows how to do one of the other two methods and get them to help out. Or maybe I just farm it out. I'm tired of fighting it, though.

Programming Projects Piling Up

So I'm coming up with a list of all of the various programming projects I want to do and I'm finding that there's really just no shortage. So far, the top three are:
  1. Add 'Send To' to Solvent: I want to add the Windows Explorer 'Send To' menu to my add-in, Solvent. I have the part that builds the UI for the context menus done, I just need to get a decent class library to read items from the Send To folder and send them in. I found something that almost does what I need, but I need something a little lower-level (not wrapped in Windows Forms code) and that compiles warning-free (that DLL needs to be converted to mixed mode).
  2. Remove Solution From VSS: It turns out there's a very manual process if you want to remove solutions and projects from Visual SourceSafe. You have to delete certain files, you have to remove certain references to the source control from the solution and project files... ugh. I need a program that, given a solution file, removes it and all contained projects from VSS (not actually deleting them from the VSS database, just removing references to VSS from the local copy).
  3. POP3 Proxy via Web Service: To get around annoying firewall constraints, I need a two-part solution: first, a web service that can take incoming POP commands and proxy them to a real POP server, then return the results; second, a client that acts like a POP server, receives requests from a POP-based mail program, and ferries those requests to the web service. That would allow you to use a POP-based mail program to get your email from, say, work, where they don't allow POP through the firewall but have no restrictions on web access.

I've been working on that Solvent issue for a while now. I've learned (and, in many cases, re-learned) way too much about C++ while doing it, and I'm getting fed up with the way shell stuff is handled in Windows. One would think that with .NET they'd have introduced some sort of "Microsoft.Windows.Shell" namespace with some methods you can access from managed code that does all the low-level crap I'm having to learn.

I'll get it done, it'll just take a little longer. I tried doing the pInvoke route, but I got to a point where I was trying to marshal pointers to pointers and things fell apart (I know enough to be dangerous but not enough to fix it). Then I started doing a mixed-mode DLL (hard for a relative newbie in C++) when I was informed there's this thing called "It Just Works" (or "IJW") that should allow me to call the unmanaged shell functions from managed code without any of that. So that's my next attempt - see if I can figure out how to get it done via IJW. If that doesn't work, I think I'll learn how to write a COM object and just suffer the COM interop overhead (which, thinking about the work the COM object will have to provide, should be reasonably minimal).

Unless someone out there wants to write it for me? I have an interface description... :)

Gotta Get Filled

I got my teeth cleaned this morning and, as seems to be the general case, I gotta go back in. Apparently I have some sort of cavity starting under where this retainer thing in my mouth is. I looked; I don't see anything. I start to wonder if they're just trying to eke money out of me $60 out-of-pocket-expense at a time, but I know that if I don't get it dealt with it will actually turn into something legitimate that I really don't want to have anything to do with.

So I have another appointment in a couple weeks to get that taken care of. Preventative measures or whatever.

The HR director just walked by and, without even seeing me, said, "Travis must have moved down here." Heh. I think people know my decor now.

My new veal pen at work is much farther from the break area (water, pop, microwaves, etc.) than my previous dwelling. Now not only am I never getting up, but I'm thirsty all the time, too. Maybe I should be less lazy about the whole thing and just succumb to thirst and get a drink. Maybe I should pack a bag so I can make the return trip tomorrow, too. Damn.

I bought the Best of Triumph the Insult Comic Dog DVD today, so that should be coming soon. Another one of those fun party discs to put in.

Jenn's birthday is coming up and I don't know what to get her. If she doesn't cough up for her season hockey ticket, she's getting that (but she doesn't want that, so let's hope she musters up some cash). In fact, she doesn't know what she wants, she only tells me one-off items that she doesn't want. Since I am not psychic, I will wait for a list. Should a list not arrive, hockey ticket it shall be.

Fixed Broken Links

I think, after having moved hosts twice and blog packages once, I've finally finished fixing all the broken links and images floating around here. As such, if you haven't had a chance to really catch up on some of the better entries, I can't more highly recommend that you start at the beginning and check it out. I've had a good time reviewing a few of these, but maybe that's more from the sense of a comedian laughing at his own jokes (which I would do, were I a comedian).

I also noticed while going through the past posts that I used to do a lot more in the way of getting pictures up here, so I think I'l make a concerted effort at thinking about doing that again. Now that I don't have a commute, I don't really see Traffic Assholes as much. That said, it might be good to take pictures of other random stuff I'm talking about, just to help you guys out.

Dinner Theatre

After a long day of pressure washing my house, Jenn and I took the evening and went to Sylvia's for dinner and a show.

I had never been to a dinner theatre before, so it was an interesting experience. I've been to stage productions of all types - from grade school productions to Broadway (well, Broadway productions that come touring, at least) - so I wasn't sure what to expect.

Dinner was served about 6:30p. Jenn and I both opted for the pork loin medallions in apple bourbon sauce, given a fixed menu and the other two options not looking to our liking. We started with a drink each, followed by a salad. Neither Jenn nor I are real salad-eaters, and neither of us had eaten much that day, so while the salads were being served, we gorged ourselves on the bread on the table.

When the salads arrived, we each tried to eat them (Jenn did a better job than I did) but we weren't too successful. Jenn actually started feeling a little ill, almost as though the bread and alcohol in her stomach were combating the health factors of the salad, Adam Sandler style.

Salad: I will make you strong and healthy!
Bread and Alcohol: Fuck that, Salad! We're gonna beat you down!

Dinner arrived and it was okay. I wouldn't say this is the best restaurant in the entire world or anything, but I was there more for the entertainment than the food.

Speaking of entertainment, I started looking around at the people attending. Now, I don't mean to get all bourgeois on you, but this was definitely a proletariat crowd hanging out. I understand flip-flops are (for some unknown reason) "in" lately, but with jeans, a button up shirt, and a blazer? Tack-ay! Put some shoes on, for God's sake. Where's your mother?

We finished up dinner, and dessert was a poppy seed cake with raspberry frosting. Tasty! Jenn was feeling ill, but in a Homer Simpson moment decided she wasn't ill enough to not eat dessert. "Oh, man, Trav, I'm not feeling so good... my stomach is rumbling and- OOOO! CAKE!"

After dessert was cleared, the show started (around 8:30p or so). The show we saw was called Monky Business, a musical about some monks trying to save their monastery from being torn down by having a radio telethon. It was really clever and well played. I liked it a lot.

All in all, a good experience. I'd recommend you check it out. I think Jenn and I will try to make it again for the next show (they do four different shows each year).

Downward

I moved my cube today, from the second floor in the lap of relative luxury, to the first floor in a veal pen about the size of a refrigerator box.

Sigh.

I started at Corillian four years ago on the third floor in a medium sized cube. Then I moved to the second floor (when I moved to IT) and traveled from cube to cube, generally increasing size until about four months ago when I moved and lost some space. It wasn't so bad then, since I really was still in a 12'x12' luxury apartment.

Now I'm in a cube that's maybe 6'x8' and I'm dying, I tell you. I had to take all of my Legos home, I don't have too many pictures up... ugh. Ten pounds of shit in a five pound bag.

I've made it home-y, though, as much as I can. I still have some pictures, my coffee maker, my refrigerator, and some toys. It's just... tiny. Maybe this is how the rest of the world lives. Maybe I'm seeing the other side.

I suppose it could be worse. I could have a support column or something in here.

I don't know where to go from here, though. I've been on all three floors of the building - three, two, one - and there's no basement. I can't move any farther down. Now what? New building? Telecommute?

In other news, I think I'm going to pressure wash my house tomorrow. We have vinyl siding and it's starting to look a little dingy with dirt so it's time to break down and do it. I'm not really looking forward to it, and I know it's going to be a day-long job.

Oh, and we watched The League of Extraordinary Gentlemen last night on On-Demand. It was okay; I don't know why people complained so much about it. It wasn't the best movie ever made, but it wasn't really bad, either.

Changing Mice, Changing Jobs

Before I really get into other things, I realize, looking back, that I didn't say anything about the fact that the Oregon Air Show was this past weekend. Living near the Hillsboro Airport hasn't ever been a problem (I don't ever hear any air traffic - I'm not that close), but in cases like this it's actually a benefit. My parents, Jenn's parents, Jenn's sister, and Jenn's niece all came over and we barbecued and watched the show. It was cool - the Blue Angels flew close to rooftop level (low enough you could read the writing on the plane) right over my house and down my street.

Anyway.

Lots of change going on at work.

I've had this Wireless IntelliMouse Explorer (cordless USB mouse) I've been using for the past few months. I like the wireless mouse thing, but I've noticed that this one seems to suck up batteries pretty quickly, on the order of a pair of batteries every three weeks or so. When the batteries get low (which I'm sure means they're at half-strength), the mouse response gets crappy, like there's signal interference or something.

After a few months of that, I've had enough and have switched back to a corded mouse. It's the same mouse, just with a cord. Now I need to get a decent rechargeable wireless mouse. Not the highest of priorities, but definitely on the list.

I've also changed jobs. As of Monday, August 16, I'm officially moved out of the Corporate Information Technologies department and now I'm in Applications Engineering. I'll be working on actual product code now instead of corporate internal applications, which I think will be a Cool Thing. I've been doing mostly product-related stuff anyway lately, might as well do it officially. I move my stuff to a new cube in the Engineering area tomorrow. I've already taken down the Harry Potter Legos... my cube is looking very empty. Of course, the new cube is like half the size of my current one, so I don't have room for all of my toys.

Follow-Up To Smell Memory

I suppose this sort of falls into a similar vein as my previous smell memory post, regarding the way certain smells trigger memories (and wouldn't it be nice if we could really capitalize on that?).

I have fond childhood memories of visiting my dad's office. He's a central office engineer at an independent phone company and has worked there for, I think, longer than I've been alive. While he's been in actual offices and so on, most of the time he's sat at a desk in the central office itself, surrounded by the equipment. When I was a kid, going to visit his work fascinated me. There were teletypes and huge racks of equipment with all sorts of wires sticking out; stacks of paper and books everywhere; sliding ladders attached to rails in the ceiling; blinking lights and buttons and VT100 terminals; spinning magnetic tape reels and cables running in tracks all over the place. The amount of cool stuff packed in there was astounding, especially when you're in grade school. Overwhelming, almost, because you can't touch anything, you just have to look.

Honestly, I think that sort of contributed to my fascination with technology and gadgets. Some could argue it's a genetic thing - guys like gizmos with buttons - but I'd like to think Dad had some good influence there.

One thing I remember very vividly from visiting Dad's office is the smell. I've never really been able to put a finger on what it is that smells, just that it's very distinctive. It smells like paper and wire and electronics all combined in a sterile aroma that really can't be described precisely. Regardless, that smell is Dad's office. I tried to explain it to him one time but I think he's been working there too long and doesn't notice it anymore. He also doesn't notice that his lunchbox smells like overripe bananas and mint chewing gum, but I guess that's neither here nor there.

A couple of weeks ago they painted the concrete stairwells at my work with some sort of industrial-strength paint that can stand up to foot traffic. After they finished, allowing a couple of days to let it air out, they let people back into the stairwells. You know what?

It smelled just like Dad's office.

I had to stop and stand there for a few seconds to get myself back together. It was an odd feeling, standing on the stairs and smelling Dad's work. Like a miniature transporter had temporarily beamed me to his office and back again really quickly. Like I had just reclaimed about five seconds of my childhood.

I called Dad and asked him if they have concrete floors at his work that get painted, but they have tile floor. The walls are concrete, so that might be it, or it might be the metal support beams - if I remember right, those have paint on them, too. Maybe it's not even paint at all, but some similar chemical that the paint has that's also in something at Dad's work.

Crazy how something like that can make you remember things.

Moving Servers

My site's moving to a new server (not a new host just a new server) so you may see oddness during the transition, like if you leave a comment or something it might disappear. We should be clear, like, by tomorrow or something.

Solvent Wins Second Place in Add-In Contest

I entered Roy Osherove's Add-In Contest with my add-in, Solvent.

I just found out this morning that I won second place with it! Very cool, considering this is my first outing with add-in development. Pretty cool prize, too, if I do say so myself.

Nothing like winning a contest to brighten your day, you know? I should just go home now before work spoils my mood. Heh.

Bad Karma Saturday

This is actually the second time I'm trying to write this out, because I got about halfway done the first time and hit something - I don't know what - and magically the browser refreshed and lost all of my text. This is pretty typical of how Saturday went for me, so it only stands to reason.

Saturday was an interesting day, if at a minimum for the amount of bad karma I think I worked off.

The morning found Jenn and I outside working in the yard, catching up on the gardening. Illig men only know one kind of gardening, which is the professional application of Roundup weed and grass killer. It's almost as though we are genetically predisposed to only be able to kill plants, yet we are extraordinarily adept at it. I promise you - I can kill any plant out there. I learned from the best.

At the same time I moved into my house, my parents moved into their condo so I inherited all of the groundskeeping tools they had collected over the years. The prize possession, of course, is the Sears stainless steel sprayer, circa 1978. Still in mint condition, this sprayer served my father for many good years destroying weeds and plants of any and all natures, and it was my turn to take on the mantle of Chief Plant Killer and continue the legacy.

I pulled the sprayer, like a sword from its sheath, out of the original cardboard box with the receipt still inside. I got out the concentrated Roundup and mixed up a gallon of the stuff. While I was doing that, I realized that, in all the years my father used that sprayer, we kids were never allowed to touch it. When I say "never allowed to touch it," I don't mean "never allowed to use it." I mean, never allowed to touch it. Dad put the Fear of God in us about that sprayer - assumedly due to the weed killer that was used so often in it, but I can't recall exactly - as though VX gas would erupt from its bowels and melt us to the ground if we so much as looked at it sideways.

I finished mixing the Roundup, latched down the lid, and started pumping to build up the pressure.

The pressure never built up.

That's when I remembered Dad throwing a small plastic bag in the box with the sprayer and saying some "leather" thing needed to be replaced, and the item he just threw in was the replacement.

The replacement item was hard plastic, so I didn't get the "leather" reference. I took the pump out of the sprayer and took it apart.

You've probably never taken a sprayer pump apart before. I know I hadn't. There's a lot of grease in there. I reckon there was close to three gallons of unrefined petroleum in that pump, and right there in the middle was a ragged gasket, ripe for replacing. I'm not sure how to describe what it was that I was dealing with, so here's a diagram:

Diagram of a sprayer pump

That gasket is supposed to push the air around in there when you pump on the handle, so it needs to be air-tight. Presumably the grease is in there to help with that, and with the actual sliding of the handle up and down. I removed the old gasket and fit the new one on... but putting that menagerie back in the pump cylinder was a little less than easy.

About 10 minutes later I had grease up both arms to the elbows, on my pants, and all over the sidewalk... my right thumbnail was bent backwards in half... but the pump was back together and ready to go.

I washed up and took the sprayer out back to start doing the duty. I got probably two-thirds of the way around the back yard when a bird shit in my face.

Not on my shirt, not down my back, not on my head... in my face.

I didn't see any bird anywhere, so I started thinking: there are a lot of vectors that have to come together just so for something like that to happen. I had to be facing the right direction, the bird had to be flying towards me and release the turd at just the right time... while I wiped the crap from my nose and glasses, I started thinking about where the bird must have been.

Taking some general figures - the bird traveling at 72kph (the high end of average for a pigeon) and flying around 150m high (not uncommon for the height of a migratory songbird formation) - and ignoring stuff that makes the math a pain (wind resistance, my [negligible] height from the ground in relation to the bird, etc.) - I applied some basic physics and figured the bird was 1100m away from me when it actually released its filth and it took about 5.5 seconds to fall and hit me. While I'm in a diagramming mood, here's one of that, too:

Bird Crap: Analyzed

Absolutely unbelieveable.

I washed up [again] and finished killing off plants in the yard without too much event, though it was really hot out so it wasn't a whole lot of fun.

Later that afternoon, Jenn and I went out and about doing errands. Merging from I-5 south to I-205 north, I got pulled over by a state trooper.

I've never been pulled over before. I was surprised it was me, too, because I checked and double-checked my speed to see if I was speeding and - surprise, surprise - I wasn't.

Turns out my rear license plate cover was dirty and he wanted me to clean it when I got home.

Whew. Crisis averted.

After all that, I figured nothing else bad could go wrong, so I bought a lottery ticket. I mean, hey - if all that can come together in a ridiculous menagerie of impossibility, I could win the lottery, right?

Didn't even get one number. So at least things are back to status quo.

Sunday I bought new license plate covers (they were all scratched up so I couldn't clean them) and we watched 13 Going On 30 (or maybe we watched the movie on Saturday....) which was a cute, if predictable, Big-like movie. Enjoyable, if anything, for the Jennifer Garner factor. Plus a great soundtrack.

And now I'm at work, and I've marked off another weekend I'll never reclaim. Maybe some of the bad karma points I used on Saturday will help me out this week. Of course, I've got daily team meetings every morning for the project I'm working on, which serve only to waste my time and everyone else's on the project, so maybe I still have some bad luck to burn.

Reviewed; And Learning Too Much

I had my annual performance review yesterday. It turned out well, but they changed the review form this year so you have like 50 different [redundant] essay questions to answer. When all was said and done, with both my answers and my manager's answers to all the questions, the form was 26 pages long in single-spaced 12 point Times New Roman.

That's like a novel.

When he put the finished form on the table in front of me, I thought it was a magazine. It's huge. Crazy. I know the review process is in a constant state of flux, so hopefully they'll flux a few of the questions, at least the redundant ones, out. Yow.

I'm still working on the stuff for the next version of Solvent. It's going to interact more with the Windows shell, though, which is all low-level stuff, so I'm having to go back and re-learn C++ (and, subsequently, the managed extensions to it) so I can interface my C# add-in code with the shell. It's turning out to be a lot more difficult than I first anticipated, though, and I'm learning way too much about how the shell does things (or doesn't, as the case may be) and the C++ required to mix managed and unmanaged C++. I've had a couple of people at work look at it and they've offered some general help/direction, but no concrete examples or solutions. I'm even considering farming it out. I'll be glad when it's done.

Retextured Again

The drywall contractors returned yesterday and patched my drywall again. Unbelieveable. It's done, though, so now I'm going to wait until the weekend to paint it. Assuming all goes according to plan, we might even be able to finish that bathroom this weekend (minus the crown molding we wanted to put up) and start on the other bathroom we had planned to paint. We already have the paint, we just need to start. I didn't want to start a new project until this one was finished.

With any luck...

Visual Studio .NET 2003 - Configuration Manager / Batch Build... Read Only?

I had this weird problem for like two days in Visual Studio .NET 2003. I would be working on a project and go to the Configuration Manager screen to change some solution build properties... and I couldn't click anything. I could change the "Active Solution Configuration," but I couldn't change any of the settings.

Configuration Manager No Worky

I fought with this thing. I mean, fought with it. I reinstalled Visual Studio - no luck. I took the computer home and uninstalled every add-in I had... and that seemed to do the trick, but when I got it back to work it stopped working.

I Googled it. I searched everywhere. I asked everyone I could find. Nobody had ever heard of this.

Luckily we have Microsoft Premiere Support at work. I submitted the question to them and after a couple of hours a guy called me. He told me he had to call because he couldn't send this one through email, and he was right.

With some dual-monitor configurations, the Configuration Manager and the Batch Build options dialogs stop working. If you switch back to single-monitor mode, it works again. I tried it, and sure enough, it worked.

That's why it worked at home - one monitor - and why it stopped working when I got back to work - dual monitors.

After experimenting with it (thanks to Scott Hanselman) for a while it turns out the problem is when the product is running on the second monitor (or, more precisely, when the Config Manager or Batch Build dialog is on the second monitor) and the second monitor is "above" or to the "left" of the primary (so the second monitor is in a virtual "negative" space). You can drag the dialog onto your primary monitor and it will work. It will also work fine if the second monitor is "below" or to the "right" of the primary monitor - so everything is always in a "positive" space. Weird, eh?

(The easy solution if you're having problems is to drag the Configuration Manager or Batch Build dialog box onto the primary monitor then manipulate the properties there. It doesn't matter where VS.NET itself is running, just where the Configuration Manager or Batch Build dialog box is physically located at the time.)

They didn't have a patch for it, but the guy did tell me it is a product issue. Hopefully they'll have it fixed in the next version.

Induction Powered Rechargeable Mouse

I have a wireless mouse at work that eats two AA batteries a month, give or take. They make rechargeable mice, but it seems like everything has a cradle or charger or something attached to it all the time, and this is no different.

Okay, so here's your million-dollar idea for the day: Use induction to charge your mouse.

Now, I'm the first to admit that I'm no electrical engineer, and I'm probably talking through my ass right now, but I remember my physics 101 - if you run a magnet along a wire, you get electrical current. Well, you're constantly moving your mouse around, right? What if you could apply some sort of power source to the mouse pad to speed things up a little and recharge your wireless mouse through induction? You need a mouse pad anyway, so there's no separate special charger or anything; just plug in the mouse pad and use the mouse - no need to recharge.

When you become a billionaire off that one, kick a million my way.

I Won't Be Beaten By Drywall

Last Thursday I had some drywall contractors in to fix my bathroom issues. They sanded, mudded, and retextured. They told me to wait 24 hours before painting.

Sunday morning I got up, masked everything off, and started painting. I took care of the high parts (near the ceiling) and Jenn got the middle and lower parts.

Jenn had almost finished when I heard, "Oh my God!"

That's never good.

I went in to find that a baseball-sized chunk of texture had come clean off the wall and was stuck to the roller.

I guess it wasn't fixed after all.

I called the drywall company who, of course, don't have anyone in the office on the weekend, and left a message to have them call me. If I don't hear from them by 11:00a or so, I'm calling them back. I won't be beaten by drywall. I won't. I'll finish painting this bathroom if it kills me (which it probably will).

I won't even get into the fact that we want to install crown molding in there, too. With bullnose corners, no less. I'll have to measure the angles... here comes my high school geometry, back in action.