Marquee de Sells: Chris's insight outlet via ATOM 1.0 csells on twitter

You've reached the internet home of Chris Sells, who has a long history as a contributing member of the Windows developer community. He enjoys long walks on the beach and various computer technologies.




WPF XBAP App: British Library Books Online

"The British Library is one of the world's leading libraries and the national library of the United Kingdom. By charter, it holds a copy of every book ever published in the UK, along with 58 million newspapers, 4.5 million maps, and 3.5 million sound recordings. They hold some of the most priceless literary treasures in existence, including the Codex Sinaiticus (one of the oldest New Testaments in existence), the Lindisfarne Gospels, one of Leonardo Da Vinci's notebooks, the first atlas of Europe by Mercator, the original illustrated manuscript Lewis Carroll's Alice's Adventures in Wonderland, Jane Austen's History of England and Mozart's musical diary. ...

"Enter a fantastic new application, developed in partnership between the British Library and Armadillo Systems. The British Library have digitized the pages of fifteen of their most valuable works and created Turning the Pages, a browser-based WPF application that allows you to interact with these books in a virtual environment from the comfort of your home."

Wow. This is literally the only way to interact with some of this material and it's enabled with WPF. Nice.

0 comments




Window Clippings 1.5

Capturing screenshots for a book used to be a piece of cake. Alt+PrintScreent and you were golden. However, sometimes I wanted to get the cursor, too, and neither Alt+PrintScreen nor PrintScreen does that, so I got myself a copy of SnagIt. Unfortunately, if I wanted to capture multiple screens, I was putting a maximized copy of Notepad in the backgrand, using PrintScreen and PBrush to do the cropping (although SnagIt has slightly more seamless multi-window selection).

Still, this all worked 'til Vista came along and Alt+PrintScreen left the shadows out! I was fine with that, but Ian correctly pointed out that the screenshots with the shadows looks *so* much better that I could hardly say "no." And I discovered the Snipping Tool in Vista, which let me do a selection on any part of the screen I wanted to, except that now instead of just doing Alt+PrintScreen, even for a single window, now everything is a selection, which means that somebody (hopefully not me!) has to trim the extra whitespace to make sure the pictures layout OK in the book.

I told you all of that so you could know that I envy folks that don't have to do screenshots! It's hard to make it look right, although, for visual technologies, I really can't imagine not having them. Anyway, I was definately open to another screen capturing technology and that's when someone turned me on to Windows Clippings.

When I found Kenny Kerr's most excellent screen capture tool, it was so close to what I wanted (it did Vista shadows with no guesswork!), that I sent Kenny an email with my feature request (easy child+parent capturing support), fully expecting not to hear back (it's clear from his web site that he's a busy guy!). Not only did he reply, but he'd implemented my feature!

And it was such a time-saver, that I forwarded it along to Ian, who had his own feature request (keeping the transparency in the captured image w/o grabbing the stuff underneath), which Kenny promptly implemented (with some example code from Ian). Of course, that broke my feature (the constant animation of WPF apps + capturing transparency caused problems), so Kenny fixed that, too. By this point, Kenny's app itself was notifying me of updates faster than he could send the emails.

All of this is merely to say, I'm really loving my Windows Clippings experience. Thanks, Kenny!

0 comments




API Usability

Don has a piece up about something that I've always called "API Usability." The idea when building libraries is to write client code first against some pretend API that you wish existed and then to implement that API. Another good name for this approach would be "RAD API Design," simply because it's the same way I prefer to design UI -- layout the UI the way you'd like it to look and then implement it that way. Of course, I have to admit to preferring Don's name for this style of programming (I like what he calls my conferences, too : ).

BTW, the comments to Don's piece mention to startling similarity between this approach and Test-Driven Development (TDD). I'm a huge fan of TDD (NUnit is a wonderful tool I use all day every day). I'd say that TDD is a generalization of my little "API usability" technique in that you can use it for all kinds of things, e.g. code coverage, perf testing, stress testing, etc, including API usability.

P.S. If we fix the atmosphere, clean up the water, stop polluting the soil and learn to live in harmony with our environment, what's to motivate us to move off this rock before we lose our aggressive drive and then, when we're sipping Mai Thais, the sun explodes? Consuming this planet until nothing's left but an empty husk and we're forced, like locusts to move on to the next one, may well be the only thing that keeps our species alive (assuming we survive the coming ice age, of course).

0 comments




Boogers and My Writing Process

I'm supposed to be writing today, but John (my eldest son) is also doing some writing as part of his homework. However, after watching him struggle with just the topic (the phrase "Always aim for the moon. Even if you miss, you'll end up among the stars" [which isn't even the correct quote]) to try to write the fully-formed essay, I give him a little lesson about how I write. Plus, since I'm supposed to be writing, this blog post is an excellent avoidance technique.

When I write, I told my son, I have to write giant books starting from empty pages. I can't just have a topic and start writing, I have to have something to break up the whitespace first. So, as a demonstration of this technique, I asked the fruit of my loins, an apple from my tree, for a topic. He said, without so much as a second of hesitation, "boogers."

So, we started by brainstorming booger-related topics:

The brainstorming is just a list of facts in whatever order I think of them that I know about the topic that I may or may not decide to share with my readers. While brainstorming, I don't judge -- I just type whatever comes up. After brainstorming, I spend some time rearranging my facts into some kind of outline to lay out my order and my main topics into which the facts fall:

During the outlining phase, it's often the case that more facts come up and sometimes even whole categories of facts. As you're forming the story, that's when the gaps make themselves clear. At this point, I generally jump into the first fact, turning it into the first sentence, adding supporting sentences, transitions to the second fact and so on. Sometimes, though, especially with shorter pieces, I'll write the summary to make sure I've got it in mind as the write the entire piece. This idea of the story that I want to tell is what Don Box calls "the spine," and it's the most important part. Once you've got the spine, everything else falls into place.

summary
Boogers happen to everyone and they're good for you. However, when there are too many, you gotta get 'em out. I recommend that you use a combination of Kleenex and your finger (for those hard to reach spots). You should make sure to throw the Kleenex away and wash your hands, although the shower straight blow is a good alternative. You should never, ever flick or wipe your boogers on something besides Kleenex, because who wants to find them?

At this point, I've gone from a blank sheet of (virtual) paper to a place where I know the spine, the details and the ordering; most of the hard work is done.

Obviously, brainstorming + outlining + summary + details = completed essay isn't exactly a unique perspective on the writing process. Still, how often does one get the change to turn boogers into a positive learning experience for one's progeny? : )

0 comments




CodeFetch: Search Book Source Code

CodeFetch allows you to search in the source code associated with books (like the code I publish for my books). Plus, it lets you choose the language to search on and shows the book the results come from so you can read your favorites. Very cool.

0 comments




Five Things You Don’t Know About Me

I've been tagged a coupla times, so it's time I fessed up with Five Things You Don't Know About Me:

  1. In college, I was in a fraternity and not just a geek fraternity, but an actual, national, recognized social fraternity (Phi Delta Theta). I figured I was geeky enough in high school, so needed a place to learn to at least hide my dorkiness. Obviously, I failed, but it was a very fun four years. : )
  2. In college, I coded in Unix using VT100 emulation software via a modem to my school's DECs from my Mac IIcx running System 7 (I worked two jobs all summer to earn half of the $6000 it cost me to purchase the thing in 1988). It was the combination of the best programming and best UI experience at the time (although on two separate OSes). After graduation and working a job for a coupla years where I programmed Unix all day, I needed to look at Windows 3.1 for the first time because I had an interview at Intel. I could only stand to use it for about 10 minutes. They hired me anyway as a Windows programmer and, thank goodness, it's much gotten better. Windows is now my favorite programming and UI experience (and I've used both Unix and Mac OS X several times since then to make sure).
  3. I am a fetishist; my fetishes are domain names and phone numbers. I can't think of a cool domain name without a) checking to see if it's available and b) purchasing it if it is (the one that sticks in my mind is clownporn.com, but that one was long gone). If I ever have a cool idea for an app, I must first purchase the domain name (I own appsettings.com and I just purchased 16 domain names the other day for another thing I want to do). Likewise, if I see a 7-digit phone number without a 0 or a 1 in it, I am physically compelled to surf to phonespell.org to see what the possible 7 and 8-letter words are (my old home phone number was 642-JOHN, the name of my eldest son). Of course, I've written my own program to do the permutations of numbers to letters, but phonespell does that cool dictionary lookup and grouping thing. I also added the phonespell support to Dave's Quick Search Taskbar Toolbar Deskbar.
  4. I have jumped out of a perfectly good airplane (not Alan Cooper's plane).It was just before I got married and I took my best man. We both used parachutes. The fall was surprisingly quiet, but the stop at the sudden bottom was unpleasant.
  5. The equal-rights-for-humans theme that sometimes pops up on this site isn't because I've seen friends discriminated against and now I have to change the world (I don't actually know very many people that are homosexual), but rather because I think it's the right thing to do.

I tag Don Box, Chris Anderson, Michael Weinhardt, Tim Ewald and Ian Griffiths.

P.S. What's the deal with the shape of the Pentagon and the Seal of the US on money (the eye at the top of the pyramid)? Damn you Doug Purdy for getting me The Illuminatus Trilogy when I'm supposed to be writing a book!

0 comments




On good days, I'm Iron Man...

My superhero results:
You are Iron Man

Iron Man
80%
Spider-Man
70%
Catwoman
55%
Hulk
50%
Green Lantern
50%
The Flash
45%
Robin
42%
Superman
40%
Batman
30%
Supergirl
30%
Wonder Woman
20%
Inventor. Businessman. Genius.

My super villian results:
You are Dr. Doom
Dr. Doom
58%
Mr. Freeze
55%
Lex Luthor
53%
Juggernaut
48%
The Joker
45%
Kingpin
45%
Apocalypse
42%
Poison Ivy
38%
Riddler
37%
Venom
36%
Green Goblin
36%
Dark Phoenix
33%
Magneto
27%
Catwoman
25%
Mystique
20%
Two-Face
20%
Blessed with smarts and power but burdened by vanity.

Click here to take the Superhero Personality Test

Click here to take the Super Villain Personality Test

P.S. Happy New Year!

0 comments




Special Holiday Episode IV: DBox and ChrisAn

"?Keeping up with their tradition, Don and Chris sing an inspired song for the holidays."

Merry & Happy!

0 comments




Xbox 360 Warranty: Now 1 Year (Retroactively!)

I love it when we do a good thing:

"Effective today (December 22), the one year warranty is now the standard for all Xbox 360 consoles. Customers that experience hardware issues with their Xbox 360 within one year of purchase will have their consoles repaired at no cost. Moreover, the new warranty policy is retroactive, so consumers that may have already paid for out-of-warranty Xbox 360 repair within one year of the console's purchase will be eligible for reimbursement of their console repair charges."

I'm a big Vista fan, I'm loving Office 12 and I live on my WM5 phone, but the Xbox 360 is currently the coolest thing we do. And it just keeps getting better.

P.S. If the postscripts aren't appreciated, why do they get all the feedback?

0 comments




Somebody Diggs Me...

I don't know why the MS interview page is suddenly digg-worthy after all these years, but it's nice to be dugg:

I'd like to thank the academy...

P.S. I'm not looking forward to giving up the tax cuts when the Democrats tax the presidency (the 2008 elections are theirs to lose). How about we cut our military in half so that it's just the most powerful on earth instead of more powerful than the sum of all the rest of the armies on earth?

0 comments




Point: Local Live Maps

When it comes to Web 2.0 apps, online maps are easily the thing I use the most. I don't go anywhere these days w/o first pulling up the map on MapQuest, Google maps or, for a coupla years now, local.live.com (starting back when it used to be called MapPoint). I generally use Google for my search engine, so don't think it's just the MS employee thing pushing me -- I genuinely like local.live.com better.

Google and MS have been in an arms race for years on the maps stuff, doing fancy stuff like 3D globes and other goo that looks good in demos, but that I don't need. However, in this war of the world (so to speak : ), today MS fired a decisive shot across the bow, I think -- the "Send" menu. This is huge for me, because I can send the directions to my phone, either via SMS or via email, and I get a great display clearly optimized for my smartphone. Not only does it have a great mini-map, but the directions are easy to read (saving me from printing the directions for just a single trip) and it has a link to reverse the directions (the one thing I never remember to do).

Oh sure, I can do the same thing with the Google maps "Email" menu, but when I follow the link on my phone, there's no map (although there is a handy link to reverse the directions). Also, the directions don't read as well and I swear it's faster to surf to the local.live.com directions (although this might just be the MS bias talkin' : ).

On the other hand, I just noticed that Google maps has a new "Add destination" link for multi-destination trips, which is the only thing I use AAA online TripTiks for and you have to be a member to access the feature (I am, but still it's kinda clunky...). Hey, local.live.com guys -- can I have that, too?!?

P.S. I think I've scared the most reactionary, close-minded folks away, so I think I'll cool it on the postscripts for a while ('til I feel like it again : ). BTW, my definition of "close-minded" is "those who don't think I have the right to express my opinion," not "those who disagree w/ me." Hopefully I managed to shake the former off my RSS feed while keeping the latter.

0 comments




VS2005 SP1

"Through further advancement and feedback, Service Pack 1 ... provides over 70 improvements for common development scenarios including:

For more information, see the Microsoft Download Center:

At the time of this posting, VS05SP1 update for Vista download wasn't available, but it should be directly.

P.S. I hope everyone is enjoying the holiday season with peace, love and understanding.

0 comments




Rory, Distilled

Lord knows, I love Rory, but easily my favorite thing are his comics. However, he doesn't do enough of them, so if you're looking for a Rory-alternative between comics, check out xkcd. This is the one that made me realize just how Rory xkcd is:

I wonder how often this happens to Rory? : )

P.S. I look forward to the day when it's just as easy to get int'l news in the US as corporate-spun news. The world will be a better place when we realize that we're not the only ones on the planet.

0 comments




XNA Game Studio Express Has Been Released!

Oh, man, I *so* want to write a game that runs on my Xbox 360! Now I can (and so can you). Enjoy!

P.S. Impeach!

0 comments




XAML Design Tools from Microsoft

If you're a designer looking for XAML design tools, and you're a designer type (you know -- beret, turtle neck, a wardrobe that extends beyond jeans and t-shirts), you've got two choices from Microsoft. You can use Expression Design [1] for static XAML graphics or Expression Blend (aka Sparkle) for dynamic XAML interfaces. Both are available in pre-release form (CTP for Design and Beta 1 for Blend), so give them a try.

[1] "Expression Design" is not to be confused with "Expression Designer", which is the old name for Sparkle (Blend).

P.S. Can someone give Scoble a hug? He's obviously a little worked up if he's recommending physical violence for disagreements about web site design. : )

0 comments




2305 older posts       330 newer posts