Wednesday, January 12, 2005

A colleague at work turned me on the Flickr the other day.  I had looked at it before, but didn't really get it.  Since my dad set up his MSN space, I've been jealous of the nice photo sharing integration, and I've been disappointed in my gallery software, nGallery.  Development seems to have stalled far short of the features I would like to have.  It does alot of cool stuff well, but it's organizational and social features leave much to be desired. (difficult to read comments, poor RSS support, etc.)

I went ahead and created a flickr account and uploaded a few of my best photos.  The organizational features are really cool, and it's got alot of social features, especially for other flickr users.  For those of you browsing on my actual site rather than RSS, you can see I'm playing with some integration with my site.  Speaking of RSS, flickr has deep RSS/Atom feed support.  For instance it's really easy to use the organization features of flickr to create an RSS feed of hamster pictures.  Here's my photostream RSS, although the Atom feed seems more streamlined and includes my buddy icon.

I think I'll keep my gallery around for some things.  I really like nGallery's features that let you order prints directly from the gallery.  But I'll probably let flickr be my artistic outlet.

posted on Wednesday, January 12, 2005 5:36:13 PM (Pacific Standard Time, UTC-08:00)  #    Comments [2]
 Tuesday, January 11, 2005

I recently mentioned in passing that while I was growing up I slept on my roof on occasion.  This was usually to have a good view of some some meteor shower, or catch a lunar eclipse.  Since I mentioned it, I've had several inquiries as to how I kept from falling off in the middle of the night.  So I decided to do a little write-up on how to sleep on the roof without killing yourself.

First, it's important to find the optimum sleeping bag.  You don't want one with that slick material on the outside, or it will slide down the roof.  The cloth kind will create a velcro effect with standard asphalt shingles and keep you on the roof.  It's also important to align yourself so your feet are aimed down the slope so you don't roll.  You may also want a sleeping bag with cloth on the inside as well so you don't slowly slide toward the bottom of the bag.  That way you won't have to wake up periodically and push yourself up back up to the top.

That's pretty much all there is to it.  Of course, different roofs will have different pitches and shingle types and some may be completely unsuitable for sleeping, so you'll have to use your judgement.

posted on Tuesday, January 11, 2005 7:37:05 AM (Pacific Standard Time, UTC-08:00)  #    Comments [1]
 Saturday, January 08, 2005

After months of prodding, I finally got my dad to start a blog.  I think MSN spaces will suit him well since he likes to take pictures and spaces has some nice photo integration.  I think it will end up being an interesting collection of family information, pictures of anything and everything, and hilarity.

Check out his inaugural post.  Hopefully, he'll like the format and continue.

[UDPATE] I've killed the old links above since he's got a new blog and his MSN Space is defunct.  Go to BellCountyBlogger.com instead.

posted on Saturday, January 08, 2005 10:06:30 AM (Pacific Standard Time, UTC-08:00)  #    Comments [0]
 Friday, January 07, 2005

I am nerdier than 83% of all people. Are you nerdier? Click here to find out! Over the lunch break, I took a test recommended by a friend to figure out how nerdy I am.  I don't think it's much of a shock to those who know me.

Update: I've since taken it again without trying to get an inconsistent score have gotten a fairly wide range of values, as high as 96.  So, take the number with a grain of salt. 


posted on Friday, January 07, 2005 11:10:14 AM (Pacific Standard Time, UTC-08:00)  #    Comments [5]
 Thursday, January 06, 2005

I just got finished debugging a crazy problem with some C# code.  This particular code is part of an application that deals with file spooling, and it deals with alot of ambiguous file locking issues by always locking greedily.  Any spooling task that is unable to gain an exclusive lock on a file simply assumes another thread must be working on the file and it leaves it alone.

The developer used a pattern that handles System.IO.IOException and assumes that any IOException must be because of a concurrency issue.  The problem with this is that there are lots of calls that can cause file IO that you may be unaware of.  In this case, there was an assembly binding issue caused by some plugin-style dynamic loading that was throwing System.IO.FileLoadException (Which actually seems to be out of place as a subclass of IOException since it is specific to assembly loading and not IO in general).  The pattern in the code was assuming that, in general, any IOException was not an exceptional event and signified another condition. So, the task never did any work and never reported the exceptional condition.

Eric Gunnerson wrote a nice overview piece on exceptions in C# on msdn.  Some of his guidelines are

Catch the most specific exception

If your code needs to recover from some exceptions, make sure to catch only those exceptions. If you catch more general ones, it's more likely you'll mistakenly swallow exceptions you don't want to swallow.

Only swallow if you're sure

This is really a corollary of the previous guideline. When you swallow an exception, your saying that you understand all cases where this exception could arise, and that the recovery code you're writing handles all of those cases.

Use lock or using if applicable

If you can use the lock or using statements, use them. They make the code more readable and make it more likely you'll do the right thing.

Wrap exceptions if applicable

If you can add additional information to an exception, by all means do so. If I pass a parameter on to another function, it might be useful for me to add additional information about the parameter.

The first two here are obviously directly applicable to the scenario, and would have at least raised some flags if I had first checked all the IOExceptions to see what they encompass.  The solution for me was to take a look at the pattern and reduce the scope of the IOException catches to only those statements that I expected might throw the exception for locking.

[UPDATE] I wanted to note that the exception handling pattern worked great until it was extended by me to a more complicated scenario involving dynamic assembly loading.

posted on Thursday, January 06, 2005 11:05:29 AM (Pacific Standard Time, UTC-08:00)  #    Comments [2]

Today is my mom's birthday!  Yeah!  I know I usually post a picture of my birthday subjects, but I know she would be mad at me.

Happy Birthday!  Thanks for the many years of support you've given for me to take apart our appliances, make our electricity bill high with tons of electronics in my room, and risk the wrath of Child Protective Services by letting me sleep on the floor, in the closet, in the attic, in the camper, outside on the ground, in a tree, on the roof, in a hammock, etc.

posted on Thursday, January 06, 2005 8:08:49 AM (Pacific Standard Time, UTC-08:00)  #    Comments [1]
 Tuesday, January 04, 2005

I've been a proponent of DLP over other display technologies like CRT, plasma, and LCD (direct view and projection) for a while.  I've gotten to the point where I can somewhat easily tell the technology from a glance at the screen alone. All the current technologies have distinguishing characteristics:

  • CRT
    • Direct view - The screen is obviously the front of a CRT
    • Rear Projection - The image is more fuzzy and floor models usually have horrible convergence issues
  • Plasma - Beautiful, bright image.  Super thin
  • DLP - Beautiful bright image, but rainbow effect if you shake your eyeballs really fast on high-contrast images (caused by the color wheel)
  • LCD
    • Direct View - Thin, but not as thin as plasma, and duller than plasma.  Backlit
    • Rear projection - No convergence issues, no rainbow effect, not as bright as DLP

I was browsing in Best Buy the other day and ran into a JVC set whose technology I could not place.  It was obviously rear-projection and it was as beautiful and bright as DLP and plasma, but had no rainbow effect.  I was stumped.  I felt better when I examined it further and found it was a technology I was not familiar with.  It was HD-ILA.  It's based on what they call a direct-drive image light amplifier chip.  It's a reflective technology like DLP, but they use a 3-color process rather than a color wheel, which explains the missing rainbow effect.  It also has a price that's comparable to the DLP sets. Obviously, you could acheive the same results with 3 DLP chips, but at a higher cost.  A further benefit is that they can pack the pixels' reflective surfaces closer together, so more of the lamp light is reflected, so the image can be brighter.

There are a few things I'm still trying to figure out.  They are only using one lamp for all three colors, which may be possible as a result of using the lamp's brightness more efficiently, but I'd still like to break one open and take a look.  JVC's presentations don't have a picture of the insides.  From the presentation, it sounds like they are not using hinges, but perhaps controlling the reflective properties of the pixels themselves to turn pixels on and off. I'm still learning about the technology, but it seems this new player may be the way to go on a new set, which may be closer than I would like, given the problems I've been having with my old Toshiba set lately.

[UPDATE 1:42pm] The technology behind this is LCOS, which is a variant of LCD that has evidently become more manufacturable recently. So, the RGB sub-pixels are on the surface itself and a single lamp simply reflects off of the surface and is focused onto the screen.  This means it avoids convergence issues entirely, which was a concern of mine.  Another perk is that, if the subpixels are aligned the same as LCD, ClearType should work with this technology.

[UPDATE 1:57pm] Here's a review of the set I saw.  Pretty good and fairly humorous.

[UDPATE 1/5/2005 12:19pm] After some more reviews and research, it appears that JVC's D-ILA implementation of LCOS uses three chips, and I would think that eliminates my excitement about ClearType and a convergence problem free set. I'd still like to see the physical configuration. Most reviews recommend it, but the numbers seem to indicate that the current line is targetted at the average consumer rather than at videophiles (super-bright, high black levels, etc).  Unfortunately, I always would like videophile performance at average consumer budget.

posted on Tuesday, January 04, 2005 10:10:39 AM (Pacific Standard Time, UTC-08:00)  #    Comments [1]
 Monday, January 03, 2005

I've been off for vacation for a little while, and today I went in for my first day of the new year.  I had been suspicious about whether today was one of the official holidays on the calendar, but I went in anyway.  Hardly anyone was there, and I related my suspicions to my boss, who went and got a new 2005 calendar and confirmed that it was indeed a holiday.  So, we went home.

Luckily, I won't have to spend time tomorrow catching up on my email and such since I did it all this morning.

posted on Monday, January 03, 2005 9:47:33 AM (Pacific Standard Time, UTC-08:00)  #    Comments [1]
 Thursday, December 30, 2004

We spent the day in Belton today with my folks and my brother.  We had a good time winding up the holiday festivities.  Mom made her patented roast, which she will tell you is nothing special, but it's really yummy.

Dave got an XBox communicator, and when Becky and I got back from Belton, I had about 5 hilarious XBox Live voice messages from him. We played several games of Halo 2 “Big Team Battle”.  I think you probably have to experience it to truly understand how fun it is, but it's an 8-on-8 team battle playing different kinds of capture-the-flag-esque games in huge environments with all kinds of flying, rolling, and hovering vehicles; lots of guns and grenades; and in-game voice hilarity.  The funnest moment for me was jumping in a Warthog (a humvee-type vehicle), waiting for Dave and another guy to jump in the passenger and gunner seats, and then taking off across the battlefield at full speed to pick up the bomb and singing pirate chanties along the way.  It was great.

posted on Thursday, December 30, 2004 8:27:08 PM (Pacific Standard Time, UTC-08:00)  #    Comments [3]