Tuesday, March 08, 2005

CRW_2080I'm slowly backfilling Flickr with photos, trying not to use up all my bandwidth before the month is over.  The latest is a photoset from last year's Florida vacation where Becky and I met up with her family for her brother Ben's wedding (look for those pictures soon).  We had a great time.  After the wedding, we visited the Florida Aquarium in Tampa.  Check out the photoset!

I've just about got my digital workflow down.  I've got a basic batch job to do the standard things to pictures (auto-contrast using levels, unsharp mask, etc).  I've figured out how to tweak the RAW settings to correct color issues and actually SAVE the settings for when I open that picture next time (which I had to do alot in the aquarium pictures because of the interesting stuff water does to color).  And I've got a process for tweaking individual pictures with things like pulling the details out of shadows (which works fantastically when working in 16-bits per channel).

posted on Tuesday, March 08, 2005 9:54:10 AM (Pacific Standard Time, UTC-08:00)  #    Comments [0]

CRW_2778Becky and I spent this weekend in Victoria Texas.  Why you ask?  Becky was playing in the Victoria Symphony!  I was really impressed with the fine arts culture of the small town.  Becky did a great job, and got to play one of the most famous 2nd horn excerpts (Beethoven's 3rd Symphony).  I got a "comp" ticket, and was basically the closest person to the stage.  I had stayed up all night Friday playing Halo 2, so I was overly tired at the concert.  I was enjoying the music quite a bit, but fighting hard to keep my eyes open.  It was very strange.  It was like my brain wanted to shut down all unecessary cycles except for listening.  I never fell asleep, but I did listen to much of the second half with my eyes closed, employing the standard techniques to not look as though I was sleeping of course.  Becky did great.  Perhaps she'll get the permanent gig!

CRW_2784CRW_2783After the concert, we went to the Sonic.  They had a credit/debit card machine built into the menu, which also conveyed useful information like "your order is being prepared" and "your order is being delivered".  It was really useful.  No fumbling coins in the food exchange.  It was sweet.  I hadn't seen those before anywhere, and I didn't expect to find it in a small texas town.  Bravo.

posted on Tuesday, March 08, 2005 9:40:47 AM (Pacific Standard Time, UTC-08:00)  #    Comments [0]
 Saturday, March 05, 2005

For the last 2 months, I've been having a blast playing Halo 2 with my buddies online. (except Jeff, who for some reason refuses to get on despite having all the necessary ingredients) It has worked reasonably well, with the exception of some weird incompatibilities with certain people.  If they were the party leaders, I'd get the famous "We are experiencing network issues." message.  Bungie says that this is almost always caused by NAT incompatibilities.  This didn't get in the way too much because we could usually juggle around the party leader until everyone could join.

At first, I attributed this to my out-of-the-norm network configuration.  I have VoIP, so I have several routers.  When I first started playing, I had the VoIP box as the outer-most router, followed by the venerable WRT54G.  So I was doing a double NAT.  The last several weeks, I've been trying to reduce my incompatibilities.  First, I managed to set up the VoIP router inside the firewall (I have AT&T CallVantage).  This involved....absolutely nothing.  It simply worked.  I did set up QoS on the Linksys to ensure the phone would always have enough bandwidth.  This fixed some of my incompatibilities, but other issues began to crop up, like being unable to hear everyone in the game lobby sometimes.

I had been running the wifibox firmware on the Linksys, and decided to upgrade it to a more recent, official firmware. So I upgraded to the Live-certified firmware version.  This didn't help.  Then, after changing nothing, I began having problems joining people that I had never had trouble with before.  Last night, after putting the XBox in the DMZ and still having problems, I got fed up and systematically hunted down the issue.  It was definitely something with the router, which didn't make sense since it was XBox Live certified, and I was having trouble with other people who had the same router and they didn't have problems.  It just didn't add up.

So, I broke down and got a new router, and it fixed everything.  I played until 2:00 this morning without a single problem.  VoIP still works. Wireless works.  All the PCs work.  All without any additional port forwarding, DMZ settings, or other configuration besides the QoS.  It just works now.  And do you want to know the most bizarre part?  I got the exact same model of router.

My conclusion is that the wifi-box firmware screwed it up somehow.  It's the only variable left in the equation.  I'm curious if anyone else who is running 3rd party firmware has had problems like that. Perhaps I'll link to someone that I know does, and see if that generates any discussion from his previous post.

posted on Saturday, March 05, 2005 7:59:19 AM (Pacific Standard Time, UTC-08:00)  #    Comments [3]
 Tuesday, March 01, 2005

Well, it's the first of the month, and I've got another gig available to upload to Flickr.  Last month, I used up my limit in the first few hours after I enabled my pro account.  Then, I was essentially locked out for the rest of the month.  This month, my strategy will be to upload new pictures only and use up the remainder at the end of the month.  I've been playing with Photoshop and have greatly improved my processing scripts, so the photos should look quite a bit better. (not to mention including the original EXIF data this time)

Look for some new pictures tonight, although I don't think I've taken any really interesting ones since the last upload.  There's plenty in the backlog though.

posted on Tuesday, March 01, 2005 2:51:03 PM (Pacific Standard Time, UTC-08:00)  #    Comments [3]
 Monday, February 28, 2005

I've been toying with ECMAScript for the past week or so, mostly to update some dynamic user interface elements in a web application we have.  Every time I use it, I'm always impressed at the cool things I can do with it.  It also makes me wish that Microsoft had not messed with it as part of the CLR (JScript.NET).  Their newest version of JScript seems to merely make it into an alternate syntax, and not really take advantage of what it could do as a prototype-driven language with closure support.

I found this article that claims that it is the world's most misunderstood language.  I think I agree.  It's incredibly powerful, but very underutilized because of the confusion surrounding it.  Closures coupled with prototypes can yield some very slick code if you understand what you're doing (and I guess maybe that's the problem).  All you really need is a nice IDE to help you manage your objects and their prototype chain.

I'm also getting more into Python and Ruby, which are also very slick.  I'm just not sure how they should fit into a project.  In general, a project with fewer languages is more maintainable.  But imagine trying to build a skyscraper when your only tool is a hammer that works really well. (OK, maybe hammer is not the best analogy.  Maybe a blowtorch?  I don't know)

[UPDATE] I just had to include this link, where the author shows us how to do lot of different code reuse patterns, including multiple inheritance in Javascript.  My favorite quote:

This large set of code reuse patterns comes from a language which is considered smaller and simpler than Java

posted on Monday, February 28, 2005 10:56:23 AM (Pacific Standard Time, UTC-08:00)  #    Comments [0]
 Sunday, February 27, 2005

I've been playing with the Flickr API alot, experimenting with some different things that I have planned for the future.  One of the things I'd like to do is to create context sensitive image collages on the fly for my blog entries.  Thought I'd show you this cool example from a first-pass collage creator.

collage creator.jpg

Of course most collages wouldn't have this many pictures, but I thought it was cool.  I need to do some randomizing.  I'm filling from the upper left corner in diagonals for reasons you'll see when I get it working the way I want.

I've also been playing with some client-side Flickr stuff using XmlHTTPRequest to dynamically load images for a slide show type thing like MSN spaces has.  I might upload an example of that later.

posted on Sunday, February 27, 2005 6:46:19 PM (Pacific Standard Time, UTC-08:00)  #    Comments [1]
 Friday, February 18, 2005

I just got back from Brad's talk at the Austin .NET User's Group meeting.  It was my first meeting, and I felt a little bad about not being a more active part of the local community.  It was a solid, interesting talk, even though I was pretty familiar with both topics (exceptions and memory management).  I managed to ask an intelligent question about a change in Whidbey regarding unhandled exceptions on all threads terminating the app rather than on the main thread only.  My question was on the ThreadAbortException, which seemed like a monkey wrench in that plan.  Turns out that there's nothing to worry about there as that exception is already pretty special.

Despite the great technical content, these were my favorite quotes (emailed to myself via my mobile so I wouldn't forget them:

  • Everyone should be using ... using (referring to C#'s using blocks)
  • It's like feeding peanut butter to a dog (referring to using some of the new GC (garbage collector) methods to help in memory management.)

I'm always really impressed with the CLR team's desire to do the right thing with the framework and to help developers do the right thing. Thanks for adding Austin to your "world tour", Brad. BTW, the slide template seemed like the right choice to me.

posted on Friday, February 18, 2005 6:35:46 PM (Pacific Standard Time, UTC-08:00)  #    Comments [1]
 Thursday, February 17, 2005

Since my last rant about vending machine prices, they've raised the price to 70 cents for 12 oz. cans here at work.  Ridiculous.  I only wish I knew who "they" was so I could complain.

posted on Thursday, February 17, 2005 10:34:23 AM (Pacific Standard Time, UTC-08:00)  #    Comments [3]
 Tuesday, February 15, 2005
Turns out, my problem with metadata in my pictures was I didn't have the latest RAW support installed.  This was evidently something that Adobe fixed.  Oh well, at least I learned alot about XMP and got more of the Flickr API implemented.  I'll have to come up with a strategy for replacing 1GB of pictures.  I also want to add a few more steps in my processing.  Alot of the pictures turned out a little dull.  I think I won't be in such a hurry to get them uploaded in the future.
posted on Tuesday, February 15, 2005 8:15:06 AM (Pacific Standard Time, UTC-08:00)  #    Comments [0]
 Saturday, February 12, 2005

Whew, what an ordeal.  I finally got my Adobe Photoshop CS in the other day, and last night, I created a "Droplet" for batch converting all my raw files from my Canon Digital Rebel. Droplets are a really sweet feature that lets you create a little executable from recorded actions for batch operations.  So, I burned through about 2000 images, creating big jpgs suitable for uploading to my newly upgraded Flickr account.  It was getting pretty late, so I fired up an uploader an set it to upload my 1GB limit (roughly 900 pictures).

This morning, I checked my account, only to find that none of the metadata had been uploaded.  All my images appeared to have been taken on Feb 11, 2005...uh oh.  So, I set out to find out what happened.  Turns out, Photoshop saves the metadata in it's XMP format within the file. XMP is simply an rdf encoding of the data in an XML payload within the file.  It's actually pretty cool, but Flickr doesn't read this data yet.  So I set out to "fix" my pictures, since I can't upload anymore until next month and I have lots more to upload.

After looking at lots of libraries and Adobe's XMP SDK, I decided it would be easy enough to pull the data out myself.  So, I built a little app using my FlickrApi library I just created that would blast through my uploaded pictures, find the corresponding image on my local pc, pull the xmp data out of the file, and set the "date taken" on the Flickr site.  That way, I can at least organize them more easily.

It worked perfectly.  It blasted through about 900MB in less than a minute.  Look for the pictures as I tag them, annotate them, and change them from private to public.  I'll have to see if there's a way to have Photoshop preserve that data next time because I'd really like to have the rest of the metadata available.  I'll probably make my XMP parser available as well if anyone's interested.  As far as I know, there is not another managed implementation available.

posted on Saturday, February 12, 2005 2:59:33 PM (Pacific Standard Time, UTC-08:00)  #    Comments [5]