Seriously
I couldn't have said it better myself...
Sorry, my flashblock extension messed up the embedded video. Things should be working now.
My first senior portraits
Saturday morning Shannon and I headed up to Elk River to take my brother's senior portraits. This my first chance to take "real" pictures of someone, and I definitely found areas where I need to improve :)
Andy was a great sport, and I think some of the pictures turned out quite nicely. I had brought a piece of black velvet to make a very simple studio setup, and it worked nicely. I think it would have been nicer to have a larger piece so I didn't have to take so many close ups, but what can ya do? There were three things fighting us though:
- By the time we made it outside it was 10:30am, and the sun was blasting down on us.
- I only had a single strobe to work with (lots of uni-directional lighting as a result).
- My inexperience with directing subjects (thankfully Shannon helped make up for this)
Andy had a really hard time with squinting, and some of our outdoor locales were just plain bright (lots of rocks, concrete, etc). Despite all that, I learned a lot, and my Mom got some nice pictures for nothing, so it was a win-win.
Going to Greece!
Shannon and I booked tickets to Greece yesterday! We're leaving around Thanksgiving on a back-packing vacation with a bunch of friends from my work. It's going to be awesome.
...provided of course the country stops burning :(
Nice musical find....
With the pending legislation trying to (effectively) shut down internet radio, it makes me sad that sites like Radio Paradise might go under. I've been an avid consumer of these stations since nearly the beginning.
This week I was lucky enough to hear Chicago by Sufjan Stevens:
This guy reminds me a lot of Elliot Smith, but he's got more of a folk sound to him. His music is a soft combination of banjo, guitar & piano but it flows in a soothing, emotional way. Add lyrics like those from Casimir Pulaski Day and I can't stop listening...
How to print a photo from the site
If you're interested in printing any pictures from this site it's pretty easy. I take care to upload the largest version of any image to ensure the ability to get nice prints at many sizes. To do so just do the following:
- Navigate to the image you're interested in.
- To get the largest version of the image click on the "Download photo" link below the lower left corner of the image:
- Once you've downloaded the image it should take up the full browser window. Then to save it just click the right mouse button, and pick the "Save Image As..." option from the menu:

Once you've save the file you can either burn it to a CD, or upload it to the store you're printing it at.
Using ClickOnce to deploy apps
Like a lot of people, when I first discovered ClickOnce I was pretty excited for this new method of deploying apps. However, also like many people, I was quickly confused by all the key management and signing required. Especially when you are leveraging non-.NET DLLs in your managed applications.
I work in an environment where little thought is often given to how we distribute applications, and it causes major issues sometimes. Especially when you consider we need software deployed to facilities here in MN and one in Beijing, China. While working on a new tool I discovered my ClickOnce certificate was going to expire in the next year. This was because I used the Visual Studio method of creating a "test" certificate. To rectify this I wanted to create one that wouldn't expire for a *long* time. Here's some quick notes on how to get things setup:
1. Generate a self-signed certificate to sign your deployment files with. Make sure you run the certmgr.exe tool and export the cert w/ the private key using a good password as well:
2. In my case I want to store the cert with each project (in TFS) so I exported the cert to a file. Then in the 'Signing' tab of the project settings I used the "Select from File" option to select it. You can select just from your store too, but I'd rather have developers get the cert right from source than try to distribute certs to the store on their machines.
Provided you used a expiration date far in the future you should be all set to distribute apps using ClickOnce. I'm still experimenting with the best way to handle this new tool, but I'll probably write something up soon with what I've learned.
So, what's new?
It's been an exciting and frantic week in some respects. Shannon and I finally booked a vacation for this summer! We're flying into San Fransisco, and driving through the southwest, and ending up in Las Vegas for a few days. On the way we're planning to hit Yosemite National Park, Sequoia National Park, and Death Valley. We're also hoping to head over to the Grand Canyon for a day since Vegas is only a few hours away. We're both way excited because we've needed a vacation for a *long* time, but it's too bad we're not going until August....
Work wise this was a turbulent week. I am in the midst of upgrading our primary database server from a Sun V440 machine running Sybase ASE 12.5.3 to a Sun X4600 machine running ASE 15.0.1. We also run a replicated warm standby environment (meaning full database replication) using Sybase Replication Server 12.6. Well, To faciliate the full use of ASE 15 I attempted an upgrade of our Rep Server to version 15.0.1. However, I misunderstood up one step of the process and ultimately had to revert to my (backed up) 12.6 install, but along the way the stable queue for one database became seriously corrupted. In the Rep Server world this just sucks because the server very defensive (which is good!), but it basically meant my replication was hosed for this particular database.
In the end I had to rebuild what they call the LDS (which is the logical representation of an active and standby database). It's not a difficult process, but it involves dumping the active database and re-loading the standby, which takes a couple hours. Ultimately I got things back to normal, but what a crappy way to end the week.
Tomorrow I'm heading up to the cabin to help put the dock in for the first time. It should be interesting, but I'm hoping to take some more pictures this weekend now that it's much nicer outside.
Annoying Google Reader bug
I'm an avid user of Google Reader, however there's a presentation bug that I wish they would fix up. What happens is the number of new items displayed in the title bar and the "All Items" element on the page is not consistent with how many actual new items there are. So for example, once I get through reading all the actual new items, I'll still have 10 "new" items displayed on the page and title bar. The following image is probably hard to see, but click through to see the full-size version:
Not a huge deal I know, but for someone who actively watched his feeds, it would be nice if this didn't happen. I don't recall it being an issue when I first signed up, but I don't know what version differences exist today (if any).
2007/05/11 Update: Today is the first day I noticed this wasn't happening :) Hopefully Google fixed things up...
Blocking spam with qconfirm
Tonight I enabled an additional level of SPAM prevention by setting up smarden.org's qconfirm package. This utility injects itself into qmail's local mail delivery to allow challenge responses to be sent to senders. Once a sender acknowledges the challenge, by replying to it, they are cleared for any future emails. It uses a neat way of creating new .qmail files based on the recipient and a generated key to handle the responses. From what I've read it's a surprisingly effective system, especially when combined with additional things like smtp blacklists and SpamAssassin. After a couple of weeks I'll check things out and see if my experience is similar.
I also wrote a small ruby script to convert Outlook Express's address book to the collection of files used to whitelist email addresses. Without repeating too much, qconfirm uses a file for each email address that is ok to accept from, not ok, or pending acknowledgment. This script lets me quickly import a list of known good, or known bad addresses to reduce the initial impact of challenging senders.
Solaris 10 and the missing /etc/devices/mdi_ib_cache file
I started running into an issue this morning where the boot archive on a Solaris 10 machine was checking for /etc/devices/mdi_ib_cache. The problem however is that this file doesn't exist on the disk, and upon boot this triggers a full-blown error in the system/boot-archive service. I don't know why it's suddenly looking for this file, but luckily I found someone who had the same issue and did some research:
http://blog.jameslick.com/?p=807
After reading that entry I opted to just touch the problematic file and things appear to be working now. I'm betting you could also remove it from /boot/solaris/filelist.ramdisk, but it was put there by something, so I wanted to leave it.
There are a lot of quirky things about Solaris 10 on x86 that just weren't there with a SPARC machine. It kinda sucks...

