Archive for the Main Category

My father passed away unexpectedly on January 31st, 2010. In the time since he slipped away, I've spent a lot of time thinking about a lot of things - work, family, life, etc. I am still processing what has happened, and I'm not sure how long it will take before I understand the full impact this change has had on me, or even if I ever will. One thing I appreciated about my dad was his life experiences and what they meant to me growing up. I thought I'd take an opportunity to share a few "life lessons" from those experiences:
1. My dad loved photography. He had an old Olympus OM-2 film camera he used while I was growing up. He had a lot of slides... probably thousands. Vacations, random shots of people, conferences he attended and cool experiments like double exposures and fast shutter times to stop motion. He had gotten into digital cameras over the last few years and carried on shooting with a nice prosumer Fuji.
Recently, he had poured a lot of effort into digitizing the old slides and cleaning them up in order to preserve them. As I was going through them, I found a lot of pictures I had forgotten. My dad was usually the one behind the camera, but in probably 80% or more of the photos in which he appeared, he was holding a fish or was in the process of fishing.
The lesson: Take a lot of pictures. If you're in them, smile. This is how people will remember/see you when you're gone.
2. My dad liked to write and speak. He led a lot of technical sessions throughout his career and loved teaching people new things. I remember once when I was in 3rd grade he came and spoke to my classroom. Here's a guy teaching mainframe computing and timesharing to a bunch of 3rd graders, and the class was eating it up. He also brought swag - he knew his audience.
While I was helping to clean up his office I found a lot of his notebooks. Some were very old, from when he was a teen. Some were very recent. All of them contained ideas. Ideas for books, ideas for businesses, ideas for people.
The lesson: Write. People who didn't know you closely will feel close to you when they know your thoughts.
3. My dad had an interest in flying. He loved to fly, even if it was for work. He decided to get his private pilot's license in the early 80s. After he got it, I went up with him a few times in both a Cessna 152 and 172. He used to love to tell a story about when he was flying with an instructor and was first learning how to land - he brought the plane in smoothly, and the wheels "kissed the runway". As they taxied back, the instructor yelled at him - he had come in too fast, wrong angle, etc.
The lesson: You might think the lesson here is that any landing you can walk away from would be considered a good one, but I think it's more than that. Good landings are a matter of perspective, and they are what you make them - be prepared, and your wheels will almost always kiss the runway.
4. My dad had an incredible sense of humor. He could find something funny in almost any situation. I remember sitting around the dinner table once with my dad and two sisters while he told a joke. It was a joke that was clearly not entirely intended for kids, but nothing too far out of bounds. My dad built up the joke, and delivered the punch line. He laughed and laughed. My sisters and I stared at each other trying to figure out what was so funny.
The lesson: Seems obvious, but has to be said. Laugh. We've told so many stories about my dad and had those same laughing fits because that's how he was, and that's what he would have wanted. Laugh a lot so people can laugh with you after you're gone.
5. One thing my dad was always good at was brightening somebody's day. Whether it's a joke, sharing a story, listening, etc., you could count on that time and it would make things a little better. After he passed away, I was talking to one of his neighbors, who told me he thought my dad was a good guy. My dad was outside one day and saw the neighbor's son outside. He knew that the kid rode a dirt bike, so he went over there, gave him $20 and told him to get gas and take the bike for a spin. I've heard a lot of stories like this over the past few weeks, from different people.
The lesson: It's the little things. Take care of the people around you - little things mean a lot to a lot of people.
6. As I alluded to earlier, my dad loved to fish. I took him on a sturgeon charter out in Astoria, Oregon one time, and he snapped a rod in half on a fish. To hear him tell the story, you'd have thought he had hooked Moby Dick.
One thing he used to do was take a week off and go fishing up in Canada with a bunch of "the guys". They went to a place called Jim's Caviar Camp. They would go out with a guide during the day, but were allowed to use the boats to go back out after dinner. My dad hopped in a boat one evening after dinner and headed out to catch a few more fish. He wasn't paying attention to the time, and suddenly realized it was dark and that there was no hope of finding his way back to camp. He found a clearing and pulled the boat ashore. He prepared himself to spend the night - a burlap sack for a blanket and fillet knife by his side in case a bear decided to make an appearance (he wasn't going to go down without a fight). He lay on the shore as the Northern Lights danced over head.
In the distance, he heard the faint sound of a motorboat - they had come looking for him. He looked for something with which to signal, and found the only thing he had - his Bic lighter. He held it up and lit it, and was immediately seen by the search party in the boat. They said that in the darkness, it looked like the island was on fire.
After that, my dad always carried a lighter in his tackle box. He quit smoking over 20 years ago and still carried a lighter.
The lesson: Find your lighter. Who or whatever it may be. You never know when you'll be unexpectedly surrounded by darkness.
My dad was mine.

On October 1st, I received an email notifying me that I had earned a Microsoft MVP award in Silverlight. Wanted to take a moment and say thanks to those that nominated me, the people that bought my books, etc. I appreciate the significance of the award and what it means at both a professional and community level.

It's been so amazing to see how far the technology has advanced in such a short period of time, and to be able to be involved in that has been exciting. Looking forward to seeing where it continues to lead us.

Hey, remember me? =)

I realize it's been fairly quiet on my blog for a while. I'm happy to tell you that it's because I was working through an update to my book, which is now finished. Foundation Silverlight 3 Animation has shipped to the printer, and should be available near the end of August. Here's a peek at the cover:

Foundation Silverlight 3 Animation cover image













Hoping to get back to posting tutorials and tips soon!

I've gotten some emails from people interested in the project assets for my MIX'09 presentation, so I have placed them online for download. The VR and sprite animation ones are fairly graphically heavy, so the archive size is about 47MB.

You can download it here.

I got a couple of comments on my post about shrinking XAP sizes here. I haven't been able to follow up as quickly as I would have liked due to a couple of large projects I'm working on in addition to preparing for MIX'09. 

The crux of the comments were to use a tool like ComponentOne XapOptimizer, which can be found here: http://labs.componentone.com/XapOptimizer/

I tested it on a couple of projects, and it seems to give me about the equivalent reduction in archive size as unzipping and rezipping the XAP package. It appears to be another great tool to add to your arsenal, although you may be able to squeeze out some additional space by optimizing the graphics in your application prior to utilizing XapOptimizer. Definitely worth checking out.

I'm really pleased to share that I will be presenting a session on Silverlight animation at MIX 2009. If you're at the conference, keep an eye out for me or stop by the session and say 'hi'. I had the pleasure of attending MIX in 2008, and it really is an amazing learning opportunity - definitely one not to be missed if Silverlight is your thing.

Here are the details of my session:

Principles of Microsoft Silverlight Animation
Come and learn the fundamentals of Silverlight animation. Start at the beginning with a review of storyboards and keyframes, and then break free from storyboards and explore procedural animations. This is where the rubber meets the road and your objects come to life-vectors, frame-based animations, collisions, particle systems, and VR objects.

I spent some time this weekend getting an article written up for the Silverlightshow Write and win contest. You can see the article here.

I tackled the problem of how to deliver files from within a Silverlight application to an end-user, by leveraging some JavaScript and HTML.

Be sure to check it out!

There have been plenty of posts describing how inefficient the zip compression is on XAP files, and how it's possible to shrink the size of a XAP by simply unzipping and rezipping using a utility like WinZip.

Another tool we've tested that has now become a regular part of our toolbox is PNGGauntlet, which is a terrific, free utility that can shrink the file size of PNG files. Learn more about it here.

To give you a real world example, we have an application we're going to launch this upcoming week. At code complete, the XAP file size was 146K. After using PNGGauntlet on the images in the app, the size dropped to 122K. After unzipping and rezipping, the app weighs in at 89K. That's a 61% reduction in filesize by doing almost nothing on my part. While the change is usually not that drastic, it's definitely woth the minimal effort on my part to see what kind of reduction I can get.

After I saw the announcement of the MIX10K Challenge, I knew I wanted to put something together. I spent some time thinking it over, and created an example that leverages code found in my book.

My entry includes physics, collisions, drag and drop, throwing, controls, etc. As it turned out, I had some room to spare too - weighed in at 7.5K. As with other entry authors, if you like my entry, I'd love your vote/rating.

Thanks!

In case anybody needs it, here's a Silverlight/XAML gauge object.

The downloadable project includes a single gauge object which is instanced twice so you can see how to change the color of the gradient background. My trial period for Design expired, so I did all of the design work in Blend. There's also a storyboard to "idle" and "rev" the needle in the gauge. If you elect to make your own animation or use code to animate the needle, remove the storyboard in there to crunch down the file size. I could also see this one potentially being used as a download graphic.

Here's what the project looks like:

Gauges Project










And you can see them live here. Enjoy.