Wednesday, March 31, 2004
My dad is in the hospital.  To make a long story short, his heart stopped for a time while under observation for some chest pains he had yesterday morning.  He is stable now, and in pretty good spirits.
 
He had an angiogram this morning that revealed no major blockage in the arteries, which is good news.  He will probably receive a pacemaker, and, if the problem is only electrical, he will likely be fine.
 
Please continue to keep him and our family in your prayers.  During this time, I'm reminded of 2 Corinthians 12:9-10:
But He said to me, "My grace is sufficient for you, for power is perfected in weakness." Therefore, I will most gladly boast all the more about my weaknesses, so that Christ's power may reside in me. So because of Christ, I am pleased in weaknesses, in insults, in catastrophes, in persecutions, and in pressures. For when I am weak, then I am strong.
Paul is describing God's answer to his plea for God to remove the "thorn" from his flesh.  God did not remove the thorn, whatever it was, but rather allowed it to be used to show Christ's power perfected.  When we a presented with overwhelming circumstances, that's when can let God's light shine in and through our lives.
 
posted on Wednesday, March 31, 2004 11:05:37 AM (Pacific Standard Time, UTC-08:00)  #    Comments [2]
 Saturday, March 27, 2004

We ate at Fuddruckers with Dave and Jen and Jen's brother Jerry and Jen's parents.  We had a great time.  I hadn't eaten a hamburger in a long time.

After some Rice Krispie square sculpting (long story), I had this thing with 4 legs.  Someone suggested I make more legs so it would be an octopus.  Dave remarked that I currently had a quadrapus, which I found hilarious.

Then we got to thinking about what other pus creatures might exist, like the millipus, with 1000 tentacles, and the mythical monopus, which must be something like a snake.

posted on Saturday, March 27, 2004 7:57:07 PM (Pacific Standard Time, UTC-08:00)  #    Comments [1]
 Friday, March 26, 2004

I've been thinking about getting a real domain name rather than piggybacking on dnsalias.com.  marklio.com is available, but I'm not sure that's what I want.  Since my name is pretty common, MarkMiller.com and .net are taken.  Since marklio has become my online identity, that will be my default, and it would probably be useful to have.

I'm looking for suggestions though.  Whoever can impress me with the best name gets dinner on me.

posted on Friday, March 26, 2004 5:09:59 PM (Pacific Standard Time, UTC-08:00)  #    Comments [9]
 Thursday, March 25, 2004

I did a bunch of profiling at work today.  I use the Allocation Profiler for memory profiling.  It does a great job of letting you see your allocations visually in several very useful forms.  Today, I took a second look at nprof, a more CPU-oriented profiler that attempts to give you an idea of what calls are taking up the most time.  When I first looked at it almost a year ago, it was not useable at all.  Now, it seems to only have a few problems with GUI apps, and multi-threaded/multi-AppDomain projects.

The app I spend most of my time on at work is a data analysis application.  Data is loaded into the DB from a spool, so 99% of the app is “read-only” access to the DB.  This means I can optimize the heck out of it since I'm not concerned with transactions and such.  The downside is that i must optimize the heck out of it.  A common query can return millions of rows from the database, so taking even a few milliseconds out of the loop can save alot over that many iterations.

My first insight is: Don't use NUnit to run performance tests.  At first, my unit tests seemed to be a very convenient location to put performance tests.  That is a bad idea.  The perf numbers scared me to death.  It appeared as thought I had created a performance monster, and not the good kind of monster.  Turns out, NUnit goes to alot of trouble to isolate the test runs in separate AppDomains so it can unload them easily and you don't get undesired interaction.  This seems to add a great deal of overhead, probably in marshaling across the boundaries.

My second insight is: Use the Allocation Profiler (or some other profiler that lets you look at memory usage)!  I don't want to go into a big discussion on how to use it.  It's pretty straightforward.  If you interested in specifics, leave me a comment.  Remember, allocation in the CLR is cheap, but excessive garbage collection can be costly.

My last insight is: Use nprof (or another profiler that gives you CPU info).  nprof gives you a good idea of where your CPU bottlenecks are.  I was really able to get a good idea about what needed attention.

In a particular performance test of my data access layer, I was pulling over a million rows.  I was able to cut memory consumption in half, and increase my speed by a factor of 10 by using information gleaned from the profilers.  This, or course, means the code was pretty crappy.  He he, just kidding.  Like I said, it's a very tight loop, and a little goes a long way.

If you want a good reference for performance-related stuff, check out Rico Mariani's blog.  He appears to be THE Microsoft performance guy.

posted on Thursday, March 25, 2004 6:41:23 PM (Pacific Standard Time, UTC-08:00)  #    Comments [0]
 Wednesday, March 24, 2004

With Mozilla (FireFox, Netscape, etc) becoming a more viable alternative to Internet Explorer, we've had a push for Gecko (the Mozilla rendering engine) compatibility at work, so we've been going back and redoing some things to layout correctly.

We noticed a few things that just weren't working.  When we looked at the HTML source using FireFox, I was intrigued by the fact that all my div tags had become tables.  Turns out, the ASP.NET browser capability detection identifies Gecko as a down-level browser, and gives you an Html32TextWriter rather than a regular HtmlTextWriter.  And, sure enough, digging around using the Reflector confirmed that div tags are replaced by tables when using Html32TextWriter.

This guy, has a solution.  Just thought some of you would be interested.

The browser capabilities section is extremely powerful and insulates you from alot of headaches, but the default configuration is very annoying.  Take a look at your machine.config and you'll see what I mean.

posted on Wednesday, March 24, 2004 3:14:30 PM (Pacific Standard Time, UTC-08:00)  #    Comments [0]
 Tuesday, March 23, 2004

No, I'm not gaining weight back.  Becky called me this afternoon and said her Explorer was hard to turn, the A/C stopped working, and the battery light was on.  Pretty simple diagnosis; either the car had exploded, or the serpentine belt was slipping or had fallen off.

When I got home, I popped the hood, and, sure enough, the belt was quite loose.  It had slipped off of the belt tensioner.  As I pushed the belt back onto the tensioner, the tensioner pulley broke off into my hand.  The bearing had frozen, and the plastic pulley had melted from the inside out.  Whoa.

I went to the AutoZone and picked up a new tensioner and belt.  They were incredibly busy, but I was happy to be able to get the parts I needed.  Removing the old tensioner proved to be difficult, as the fan blocked all but the tiniest access to the bolt.  After noticing I had better access to both the belt and the tensioner from the bottom, I got it off and the new one on.

I'm really glad the explosion diagnosis was incorrect.

posted on Tuesday, March 23, 2004 8:38:01 PM (Pacific Standard Time, UTC-08:00)  #    Comments [0]

Over the weekend, I completed my first completely 24p (24 progressive frames per second) project.  Traditional film runs at 24p, and it's this framerate that is responsible for that “film look” that you can't quite put your finger on.

I've done several 24p projects, but always added 3:2 pulldown at the end to but back on miniDV to show.  I've also done several projects with mixed rates for a “flashback“ type effect.  This project was different in that it was completely 24p all the way to the DVD. (I've only just recently figured out the intricate MPEG flags and settings for proper 24p DVD encoding.)  It wasn't that big a deal, it was really just a for fun project that Dave and I shot last year that I finally got around to encoding to MPEG2.  Some of you have seen my NFL-films-style mockumentary, “The Road to Catathalon, 1987“, about our cats training for an athletic competition.

I have a Panasonic DVX100, which shoots in native 24p and encodes it on miniDV using an advanced pulldown technique to make removing it a lossless conversion. (DV is stuck at 60i, or 60 interlaced fields per second)  To remove this encoding, I use Maker, a deinterlacing tool with special settings for my camera.  This tool is excellent.  The latest version can even convert 60i (that all video cameras us) to 24p!  I thought several of my readers might find that particularly interesting.  I haven't tried it out with my Sony Digital 8 camera yet, but the results are supposed to be pretty good.

The guy who wrote the software runs a Digital-to-Film transfer house in town, and actually lives right down the street from me.  He also has a great book out called Shooting Digital, which has some very valuable material in it.  I recommend it highly.

I am looking at Vegas Video as an alternative to Premiere and Encore for editing and DVD creation.  It is alot cheaper, and supports a 24p editing pipeline with much fewer hassles.  Does anyone have any experience with it?  I've heard good things, especially about customer service, something that Adobe is notoriously bad with.

posted on Tuesday, March 23, 2004 9:58:49 AM (Pacific Standard Time, UTC-08:00)  #    Comments [5]
 Wednesday, March 17, 2004

All in all, I'm pleased with the outcome of our carpet cleaning.  Blackmon Mooring Steamatic came in and did 3 rooms for $99.  Since we did the 3 biggest rooms, I felt pretty good about that. They tout a no-chemical approach (from the Blackmon Mooring site):

Our hot water extraction method uses no chemicals or shampoos for several reasons: shampoos and chemicals leave a residue that actually attracts dirt meaning that your clean carpets will get dirtier faster. The hot water extraction process is recommended by top carpet manufacturers to extend the life of your carpets.

It did pretty well against general grime and dirtyness.  There were some dye-type stains that did not come out, but that's what I expected.  It took longer than advertised for the carpets to dry, so we haven't moved all the furniture back for fear that the wetness would cause more stains around the wood furniture.

The best part was that they showed up on time for the appointment, and finished all three rooms in less than an hour (They advertise 20 minutes per room).  It was very convenient, except for having to move furniture.

I did use it as an opportunity to redo all the connections and such around my entertainment center.  It's much less of a rat's nest now.  I also got the cable hooked back up so I can Tivo something while watching live television, which I disconnected due to a bad coax cable some time ago.  Becky will like that.

[UPDATE] I've gotten several search hits on this, and I wanted to be sure it reflected my long-term opinion.  After a few weeks, most of the stains magically returned.  I imagine that while the cleaning removed the dirt from the stain, that it did not dissolve whatever sticky substance was in the carpet, and it simply grabbed more dirt and the stain re-appeared.  So, one could argue that it removed the stains, but not the cause of the stain.

posted on Wednesday, March 17, 2004 8:59:57 PM (Pacific Standard Time, UTC-08:00)  #    Comments [0]
 Tuesday, March 16, 2004

With me working at a semiconductor manufacturing facility, you might think this has to do with a particle-free, static-free environment where you've got to suit up like a ninja to get in and use special chemical-free paper and ink, etc.  But I'm not.

We're getting our carpets steam cleaned tomorrow, and I just finished moving all the furniture out of the 3 rooms we're getting done.  I have an incredible amount of crap.  It's really quite phenomenal.  So now we have three clean rooms, and the rest are stuffed to the gills with crap.

We're taking this opportunity to make a “fresh start” with layout in some of the rooms.  We may use it as an excuse to get some new furniture as well.  Dave and Jen have a really neat computer armoire that looks like a really nice piece of furniture and opens up to reveal a computer desk.  We're thinking about getting one to house a couple of the 6 or 7 computers I have strewn about the house.

Anyway, I'll let everyone know how the cleaning goes.  The carpets are pretty old and cruddy, so it should be obvious if the service is good.  Expect a full report.

posted on Tuesday, March 16, 2004 7:17:39 PM (Pacific Standard Time, UTC-08:00)  #    Comments [0]