Monday, September 11, 2006

The Youngest is now 2

...and we're that much closer to being a diaper-free family! Ella had her second birthday on Friday, and we celebrated yesterday (Sunday) at the neighborhood pool. The water was freezing, but actually ended up feeling nice after you got used to it. Two out of 4 cousins were in attendance--the Faulkner's couldn't make it due to sickness in the household, and we didn't think it was wise to expose the rest of us to whatever ailment they were sharing over there. Two out of 4 grandparents were in attendance, as well. My parents in Florida are planning a trip up here at the end of the month and so decided to sit this party out. I'll get some pictures online when I get them off the camera.

Wednesday, August 23, 2006

Spell Checker Poem

[I'm sure you've seen this pass through your e-mail at one point or another, but I like it so I'm preserving it here... If anyone knows who wrote this, please let me know so I can properly attribute it. Thanks!]
ODE TO SPELL CHECK Eye halve a spelling chequer It came with my pea sea It planely marques four my revue Miss steaks eye kin knot sea. Eye strike a key and tipe a werd And weight four it two say Weather eye am wrong oar write It shows me strait a weigh. As soon as a mist ache is maid It nose bee fore two long And eye can put the error rite Its rare lea ever wrong. Eye have run this poem threw it I am shore your pleased two no Its letter perfect awl the weigh My chequer tolled me sew.

Thursday, August 10, 2006

.NET 2.0 Website Conversion: AutoEventWireup Fix

[I'm going to take a short break from my family blogging and preserve for posterity my findings after converting a web project from .NET 1.1 to .NET 2.0. Pictures of adorable kids will return soon...] At work we recently converted a website from .NET 1.1 to .NET 2.0. This was accomplished by running the conversion wizard which is built in to Visual Studio 2005. After the conversion, however, we noticed that some of our pages were behaving strangely--we would have lists with duplicate items in them. This wasn't the case before the conversion, and it was my task to fix it. What I found out is that in .NET 2.0, the AutoEventWireup page directive is set to true by default. In .NET 1.1 it is set to false. According to the Common ASP.NET 2.0 Conversion Issues and Solutions document, this is a known issue due to events firing twice (Issue 23: Event handlers called multiple times). In this document it explains that the conversion wizard is smart enough to remove the duplicate event wireups, but only if they live in the InitializeComponent() method of your page's codebehind file. In our scenario, we had some event wireups in the OnInit() method (not my fault--it was inherited code!). What I didn't know what how to detect where those duplicate wireups were so I could get rid of them. So I did some more digging. As it turns out, in the online help for Visual Studio.NET 2005 there is a section which explains the AutoEventWireup page directive. (This link will only work if you have VS.NET 2005 help installed on your computer.) It explains that when the AutoEventWireup directive is set to true, ASP.NET performs a lookup using reflection to find the events in your page's codebehind class. The naming convention for the events is "Page_" + event name. So for the "Load" event, ASP.NET looks for the "Page_Load" method in your code, and calls it if it finds it. So this means that only the Page events are automatically wired up, and no others are. That makes sense, since this is a Page directive... Historically, reflection has been considered slow, or at least there's a lot of overhead when loading the assembly and picking out the parts inside of it. However, according to a comment left by Scott Guthrie on this blog:

Event wire-up is done via reflection, but the type-descriptors are cached (so the lookup is one time only).

From a performance measurement perspective, there is no difference between autoeventwireup=true/false. That is one reason we switched to it as the default with VS 2005 Web App Projects.

So now we've got AutoEventWireup set to true by default, and the wizard removed the "Page_*" methods from our InitializeComponent() methods. But we still have events firing twice. The last part of the puzzle is how to remove the remaining page events which are manually wired up. Regular expression searching to the rescue! You can use Visual Studio's "Find in Files" feature (say that 10 time really fast!). Click on Use Regular Expressions in the Find Option section and then paste this in the "Find what" text box:
\+=:b*new:b*System\.EventHandler:b*\(.*\.Page_
This will search for adding a new System.EventHandler for a Page directive, and should take care of most variations in using white space. It will also handle the "this" keyword is in front of the delegate name. I hope this helps someone else out there understand how AutoEventWireups work, and how to fix your web site if you run into the same situation as I did. Please leave a comment if it helped. Thanks! [Update: You'll also want to check to see if the AutoEventWireup @Page attribute is explicitly set to false before you remove the wireup from the InitializeComponent() method, or else the page event won't fire!]

Friday, July 14, 2006

I Rode "Goliath"

Melissa and I took the kids--well, the older two kids--to Six Flags last Sunday. Had a blast! They removed the "Great Gasp", the ride where you go straight up, hoisted by cables suspended from a big tower, and then drop back down to the earth. In its place is the latest roller coaster: Goliath. It was pretty cool, but I was holding my glasses so that they wouldn't be blown off by 70 MPH winds, so I couldn't see very well (everything was very blurry, though even if I were wearing my glasses thing probably would still be blurry), but I sure could feel the ride. Oh, the picture above is a piece of canvas attached to a tree next to the queue line for the Log Jamboree ride. It's just the thing to do at Six Flags: put your gum on a tree for all to see! I joked with Emmie that maybe they would let her take it home with her at the end of the season... In this picture you mostly see the "Georgia Scorcher". Part of Goliath can be seen in the background (teal support beams and orange track). Most of the Goliath ride is outside of the park. You go over the entry/exit road, do some spins and humps, and then go back into the park to finish up. In fact, this picture shows the cul-de-sac where the parking log tram drops folks off at the ticket counters. Where you see Goliath in the background is actually outside the park. I also got to ride the "Batman". Again, I was holding my glasses, just to be safe. The best part of that ride is the queue line as you wait to get on the train (in which you are suspended from the track). It looks like you're walking into Gotham City, or at least the dump. Well done! Madeline's favorite ride was the "Gotham City Crime Wave", a ride where you're suspended in a swing and they spin you around and then tilt the top of the swing. At the end of the first ride they said you could stay in your seat if you wanted to ride again (the lines were very short at this time of the evening--about 7:30 or 8). She rode it about 7 or 8 times in a row! We got Emmie on the Canyon Blaster--her first roller coaster! This was also Madeline's first roller coaster last year. We also rode the Wheelie--but I don't think any of us liked it! The bumper cars were a hit, though, except Emmie complained that it didn't last long enough. We arrived when the park opened and we left when the park closed. That was a long day, but definitely a fun one!

Friday, July 07, 2006

MaxiVista Update

I tried the demo of MaxiVista and liked it, and then it expired. I uninstalled it. I forgot about it.

Recently, however, I have wanted to control the information coming at me a little better, and I remembered MaxiVista. So I bought the Pro version. (This version does everything except mirror your desktop on another computer--I don't foresee the need to do that.) Now I have my e-mail client open on the secondary PC and my main work open on the main screen. I can move windows around from screen to screen if I want to change where they are located.

One thing that this version does that the demo version did not do is control the second PC from the first one. So instead of making your desktop span multiple screens, this allows you to use your primary PC's keyboard and mouse on your primary PC and then drag the mouse to the other monitor and start accessing that PC's files and programs--all while still using your primary PC's keyboard and mouse. Pretty neat, though I'll still probably not use that feature all that much. A side effect of this feature is that you can highlight text on one PC, copy it, and then paste it onto the other PC.

MaxiVista also allows up to 4 PCs to be used--the primary plus 3 others. Right now I only have two laptops in use (which I think is enough for now at least).

Configuration: By default, it is configured for "Maximum Speed". This had a noticeable effect on what the desktop looked like on the second PC, so I changed the setting to "High Picture Quality" and that seemed to take care of it (the maximum setting is "Maximum Picture Quality", but "High Picture Quality" seems to give me the best look/speed tradeoff).

I just wanted to follow up on this since I said that I would.

[Update: After browsing through the documents at the MaxiVista web site, I came across this note in the Version History page:

For experts only: To change the MaxiVista behaviour when locking the Viewer PC, you can alter value "2" to "1" in following registry key: [HKEY_CURRENT_USER\Software\MaxiVista\A2\username]"lock_method"=dword:00000002 (video tutorial)

I much prefer the setting set to "1" than "2". In this mode, the monitor program on the second laptop doesn't close when the primary laptop is locked, so I don't have to reposition all the programs back onto the secondary laptop/display once more after logging back into Windows. Note that "username" in the registry key name should be the name you logged in with, not the literal "username".]

Thursday, July 06, 2006

I Saw "Sally Carrera"

My office building also houses the Porsche North American Headquarters. There is always a Porsche on display out front, but the other day there was a slightly different one parked in front of the building. I was coming back from lunch and was walking from the parking deck (shown in the background of the picture) when I saw people looking at the car. One guy was taking a picture of it with his camera phone (or would that be "phone camera"?). I didn't think much of it since, like I mentioned, there's always a Porsche on display. Also, since I was coming up from behind the car it didn't look any different than any other Porsche (except that the roof line looked different--it was bubbled up/more pronounced than other Porsches I've seen). It was only when I got to the front of the car that I noticed what the commotion was about. So I joined the small crowd and took a picture of my own. Here are some links about Sally:

Wednesday, May 24, 2006

Aerial

I've been a Kate Bush fan for years, though "The Red Shoes" wasn't one of my favorites, I'll admit. Recently, though, she released a new CD called "Aerial". I bought it from Amazon a couple of weeks ago, and it just showed up on my doorstep yesterday. It is a two CD release, and it's awesome! It has a little bit of jazz in it, but it is distinctively Kate Bush at its core. This one will get a lot of play time in the near and distant future!

Monday, May 22, 2006

Hammock is Fixed

A while back a friend helped me dig a couple of holes so I could put some 6x6's in them to support our hammock. When we moved into the house 4 years ago, one of the first things we noticed was the lack of trees large enough and appropriately spaced to support our hammock.

Well, as it turned out, the holes were just slightly too close together, and when I first sat in the hammock my posterior touched the ground.

I've been thinking for a while on how to fix this. I've had friends suggest elaborate ways of getting the hammock operational for adults (the kids had no problem with it--Madeline even figured out that if you twist the hammock over and over several times then the ropes get more taught and thus the hammock hangs higher off the ground), but I was pretty sure there was an easy (or at least easier) fix.

Here are the pictures of my simple solution, though with only a 7 1/4" blade on the circular saw I couldn't cut all the way--or even half-way--through the 6x6's. I cut one side, then the other, then finished off with a hand saw (which I discovered was either dull or just couldn't handle pressure-treated wood).

And here is a close-up of the cut I had to make. Note that the hook is now on top of the 6x6 instead of on the side. This has two results: the hooks are further apart so the hammock is more taught, and the hooks are higher off the ground so adults can use it now!

Thursday, May 18, 2006

New Paint!

No, not me--the house! :-)

We've lived here for the past 4 years (my how time flies!), and the house still had the original paint that the painters put on. And it showed!

We had originally gotten quotes about a year and a half ago, but didn't have the money at the time to get-er-done. Well, I don't care what people say about tax refunds being an interest-free loan to the government, but I was happy to receive one large enough this year to be able to get the house painted!

So we changed the colors a bit. The stucco on the front is now more brown (I would call the old color "pinkish", but Melissa would disagree with me), and it is the same color as the siding on the back. (The siding on the back was sort of a taupe color.)

The front door used to be black, but Melissa saw some paint combinations in the paint store and decided that she liked this "cherry" color. I like it, too, but we both think that at least one more coat is needed.

We had our old house painted once while we were there--I had forgotten just how much newer a house looks with a fresh coat of paint!

New Glasses!

No, not me--Madeline.

Melissa and Madeline had eye appointments on the same day, one after another. The doctor, a friend of ours from church, let them look and see in each other's eyes.

We knew from an appointment earlier in the year that Madeline's vision was getting to the point (already!) where she would need glasses. We decided to wait then, but not this time.

One trip to Costco was all it took pick out a pair--Madeline saw them right away, too. They are light metallic pink (of course!) with little flowers at the edges--you can't really see them too well in this picture.

And already she has come home from school with one of the temples bent at a severe angle. She claimed that she didn't know how it happened. I was able to gently bend them back, though, so they're as good as new again.

I don't think the name calling has started, yet, but four eyes are better than two any day!

Monday, May 08, 2006

Seattle

I think I mentioned a while back that I was going to Redmond (near Seattle for those of you who are geographically impared) for some training. That was about a month and a half ago. The night before I flew back home I managed to get downtown to the Seattle Center--that's where the Space Needle is. I was there with a co-worker, and the plan was that we were going to eat dinner up there. But after looking at the menu (especially the prices) we decided not to. But I took this cool picture:

Emmie's Soccer Trophy

We signed Emmie up for soccer. To put it nicely, that was a mistake. She never really got into it. But I'll spare you the details, other than to say that the only way I could convince her to go to her last soccer game on Saturday was to tell her that this was the day that they were handing out trophies. So she's very excited in this picture! :-)

Monday, March 20, 2006

The Number of the Beast

Isn't it written somewhere in the book of Revelation that everyone will be marked with the number of the beast? I just got to thinking the other day...everyone with a computer on the Internet has an IP address... Coincidence?

Monday, March 13, 2006

Glaucoma! Glaucoma! Glaucoma!

No, I don't have glaucoma (that I know of), but I just got this link that I couldn't keep to myself. And now, for your pleasure, I present to you, The Association of International Glaucoma Societies. Be sure to turn the volume up so you can hear the Glaucoma Hymn! That is, after all, the whole reason I'm putting this link on my blog. I got the link from a "Worst Designed Web Page Award" list, so be warned! Also, if you have only a dial-up connection be prepared to spend some time waiting for the page to load...

Friday, March 10, 2006

Redmond, WA

I just got confirmation this week that I will be attending a training class on the Microsoft campus in Redmond the week of April 3rd. That will be cool--I've never been to Redmond or anywhere in the Pacific Northwest, for that matter. I'm going to try to meet a couple of my friends who live out that way while I'm there. Plus, with my new camera phone (phone camera?) I'll be able to take some pictures and post them to the blog in near-real-time. I'm psyched! :-) By the way, on February 28th I thought to myself, "I should post something to the blog so I have at least one entry for the month." And then I got back to work and forgot all about it. So February 2006 will just be missing from this blog.

Monday, January 16, 2006

In Case of Emergency

First off, a belated "Happy New Year" to the 2 people who read my blog (and one of them is me :-). Anyway, just a tip I heard on the "Clark Howard Show" a while back: If you have a cell phone, put an entry in your phone book that reads "ICE". That stands for "In Case of Emergency". That way, if you're ever in an accident and need medical attention, the EMS folks can call the people on this list to ask about you--for example, if you have any allergies to medicines, any known diseases, etc. I put one in my phone, but I wanted it to be at the top of the list, so I put the number "1" in front of it. However, for some odd Japanese or Swedish reason, it appeared at the end of the list (Sony Ericsson evidently does not sort using normal ASCII rules in their cell phones). So I prefixed it with "AAA", instead.

Sunday, December 18, 2005

Fun with Paint.NET

I downloaded a free program which you can use to do pretty cool image manipulation. It was designed in a college course at Washington State University, and now it is refined by the same folks who created it (i.e. they graduated). The program is called Paint.NET, and it was designed to work similar to Photoshop. I should add that the original programmers now work for Microsoft. Anyway, I found a picture of Emmie from a couple of years ago, and couldn't resist playing around a bit to see what Paint.NET would do. You can see the results here. I claim full copyright protection (Copyright (c) 2005, Steve Jackson)--I'm sharing this because I really like it, but please don't use it yourself unless you have my permission. Thanks!

Wednesday, December 07, 2005

MARTA General Manager

I live near Atlanta, GA, and the public transportation in Atlanta is called MARTA. That stands for the Metropolitan Atlanta Rapid Transit Authority, in case you were wondering. Recently the general manager of MARTA was offered a job in San Francisco for a sizeable amount more than he makes here in Atlanta (I guess he doesn't realize that the cost of living increase he would experience would offset any increase in compensation, but I digress). Well, I read in the Atlanta Constitution's blog that the MARTA board voted to try to keep him here in Atlanta by presenting a counter offer. While they didn't go into detail what the counter offer was, they did include details about the past year:
MARTA has paid Ford a base salary of $205,000. He also earned nearly $57,000 in benefits last year, including incentive-based bonus pay and an auto allowance.
Is it just me, or is it a bit hypocritical of MARTA to offer their General Manager an auto allowance? Maybe it was an electric car, or one fitted to run on natural gas... [Update: The counter offer wasn't enough to keep him. Look out San Francisco!]

Compact Fluorescent Bulbs

I noticed something interesting last night as I was on the front porch trying to figure out why the Christmas lights kept causing the GFCI breaker on the outlet to keep tripping... When compact fluorescent light bulbs are very cold (say about freezing or below--it was about 27 degrees out there last night) they are dim. Now that might not be very exciting to you, and frankly I'm not really ecstatic about it, but I just thought it was interesting. They warm themselves up after a minute or so, and in doing so they brighten up as well, so they're still useful. But if you ever need instant bright light from a fluorescent bulb on a cold night, you'll be out of luck. [I'm still not 100% certain why the GFCI breaker kept tripping, but I narrowed it down to one path of cords and lights.]