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.
Wednesday, Jul 21, 2004, 11:38 PM in .NET
My Favorite Smart Client App: Robocopy
There's a smart client app that I've found myself using more and more and loving it: robocopy. The UI for robocopy sucks, of course. It's a command line app with a myriad of options that take experimentation to really figure out, but once it's started, it works like a champ, providing progress on each file and, most importantly, retrying once it loses it's network connection.
What this allows me to do is set up long copy operations bringing down the latest internal Longhorn builds (which are huge) over my uncertain VPN connection. When I hibernate my box, I don't worry about Robocopy dropping bits or getting confused and when I lose my internet or VPN connection, it retires 1 *million* times before giving up, which gives me plenty of time to notice and reestablish the connection.
Slap a friendlier UI on Robocopy and you've got a wonderful smart client citizen that should be emulated.
Wednesday, Jul 21, 2004, 11:27 PM in .NET
Don Norman Consulting on Longhorn?
Here.
According to Computerworld, Don Norman, the design engineer famous for such works as "The Design of Everyday Things," is consulting on Longhorn UI design. Cool! I especially love this statement:
"This is not the 'computer age' any more; this is the age of very smart chips hooked into a huge worldwide network. Infrastructure is about sharing." This means two or more incompatible ways of doing things is counterproductive.
I love his characterization of client computers as "smart chips," i.e. storing services and data production on the server, although the "smarts" of the client is important, too, i.e. data visualization and manipulation (which is death with a round-trip per click).
Wednesday, Jul 21, 2004, 11:14 PM in .NET
I Love Ian
In Ian Griffith's latest post, he shows 3 identical (to my eye) upper case Os next to each other and says, "[t]his clearly shows the shortcomings of that implementation" like a normal human can tell the difference!
The funny thing is, I've actually noticed that ClearType on Longhorn was generally better, although I never knew if that was my imagination or not. The thing I love about Ian is that he takes that vague sense of "this seems better" to "let me show you why it's better and I'll show you my own implementation of ClearType as a comparison just for fun." What's not to love? : )
Wednesday, Jul 21, 2004, 10:25 AM in The Spout
Hypothetical: What's Best For Windows Developers?
Hypothetically, if you were a relatively well-known voice in the Windows development community (let's call her Kris) and you were being pursued as a series editor for two publishers, call them O'Shawnasee Associated (OSA) and Anderson-Manderson (AM), which would you pick?
Suppose that both OSA and AM have a strong existing Windows presence, but AM has the edge in a quality .NET series with a strong voice already at the helm (call her Dawn) while OSA has a more scattered offering spread across format and media types. Would it be better for Windows developers if Kris lent her voice to the AM existing series, reducing the competition for authors between series, or should she work with OSA to gather their Windows editorial vision into a more cohesive whole, requiring developers to make a harder choice between publishers?
I know that this question is hypothetical and holds no importance in any pending decisions by anyone real, but I'm still curious about your thoughts. Please post your comments here.
Wednesday, Jul 21, 2004, 9:05 AM in .NET
Jon Udell Takes The Long View on Longhorn
After weeks of trying research, floating his thoughts on his blog and taking feedback from the blogging community (including several Microsoft folks), Jon Udell has posted an Infoworld article digging into the pillars of Longhorn (Avalon, Indigo and WinFS) and grading them on their implications. He summarizes nicely, I think:
"Indigo, by virtue of its developer-friendly simplification of Web services protocols, could propel Microsoft into the forefront of enterprise middleware. Although Longhorn's use of Indigo will focus on networks of Windows peers, the technology isn't bound to Longhorn. Expect to see Indigo-powered 'enterprise service bus' offerings from Microsoft and partners."
"If WinFS succeeds in delivering improvements in users' ability to organize and manage local information, enterprises looking to drive productivity up -- and support costs down -- will want it. The wild card will be the level of support for legacy document formats and emerging XML formats. Benefits that accrue only to new WinFS-aware applications won't tip the scale."
"Avalon's TV-like 'presentation experiences' clearly favor the home entertainment center over the business desktop. An accelerated convergence of voice, video, and data could alter that equation, and Avalon is designed to help drive that convergence. But enterprises concerned about reach and lock-in will need to carefully evaluate the trade-offs."
I think that Jon's nails the tensions involved in Indigo and WinFS, but misses the boat on Avalon, which represents a much-needed overhaul of our aging presentation sub-system and enables a host of applications that we need to visualize and manipulate the ever increasing amount of data with which we deal. Of course, the existing presentation stack will continue to work just fine, but for those applications that need it, Avalon will be a god send. As we progress over the next decade, more and more apps are going to need what Avalon provides.
However, while I don't agree with every that Jon says, but I do appreciate the thoroughness that went into his opinions. Folks involved in Longhorn, both inside and outside of Microsoft, should take a look.
Wednesday, Jul 21, 2004, 8:17 AM in .NET
A Kinder, Gentler Driver Model for Longhorn
According to legend, half the Windows XP BSODs are 3rd party driver crashes, reducing our "trustworthiness" to the user (trust is more than security and privacy). Yesterday, DevSource reported on a new driver model in Longhorn that will isolate the OS from driver crashes and simplify the development platform to reduce crashes in the first place. Amen, brother.
Wednesday, Jul 21, 2004, 8:08 AM in Tools
Tim Sneath On The What's New in WinForms 2.0
Tim Sneath has a nice, concise list of what's new in Windows Forms 2.0. By far and away, ClickOnce deployment as an order of magnitude improvement over No-Touch Deployment is my favorite advance, but the new controls are cool (you can drop the standard buttons on the menu and toolstrips from the context menu), the BackgroundWorker is very cool (and eliminates about 2/3rds of the code in my threading chapter) and the designer layout assistance for helping with the layout and spacing of controls sounds like it'll reduce a bunch of monkey work in the designer.
Wednesday, Jul 21, 2004, 12:41 AM in The Spout
This is *so* the wrong direction...
I don't want to turn bits into atoms in 3-5 minutes to hold a book in my hand, I want all my books, papers and mags in electronic format on a pleasant hardware platform! I'm planning on getting myself a tablet PC soon to test as a candidate (pocket/palm PCs sucked for this use the last I tried). Plus, where does the book data come from for all of these print-on-demand books and why can't I download it?
Tuesday, Jul 20, 2004, 4:40 PM in Fun
Microsoft Interview Questions for Testers
A friend of mine sent along a whole set of questions he was asked for an SDE/T (Software Design Engineer in Test) position at Microsoft. I love the one where you implement MAKE.
Tuesday, Jul 20, 2004, 4:19 PM in Interview
Questions for Testers
A friend of mine sent along some questions he was asked for a SDE/T position at Microsoft (Software Design Engineer in Test):
- "How would you deal with changes being made a week or so before the ship date?
- "How would you deal with a bug that no one wants to fix? Both the SDE and his lead have said they won't fix it.
- "Write a function that counts the number of primes in the range [1-N]. Write the test cases for this function.
- "Given a MAKEFILE (yeah a makefile), design the data structure that a parser would create and then write code that iterates over that data structure executing commands if needed.
- "Write a function that inserts an integer into a linked list in ascending order. Write the test cases for this function.
- "Test the save dialog in Notepad. (This was the question I enjoyed the most).
- "Write the InStr function. Write the test cases for this function.
- "Write a function that will return the number of days in a month (no using System.DateTime).
- "You have 3 jars. Each jar has a label on it: white, black, or white&black. You have 3 sets of marbles: white, black, and white&black. One set is stored in one jar. The labels on the jars are guaranteed to be incorrect (i.e. white will not contain white). Which jar would you choose from to give you the best chances of identifying the which set of marbles in is in which jar.
- "Why do you want to work for Microsoft.
- "Write the test cases for a vending machine.
"Those were the questions I was asked. I had a lot of discussions about how to handle situations. Such as a tester is focused on one part of an SDK. During triage it was determined that that portion of the SDK was not on the critical path, and the tester was needed elsewhere. But the tester continued to test that portion because it is his baby. How would you get him to stop testing that portion and work on what needs to be worked on?
"Other situations came up like arranging tests into the different testing buckets (functional, stress, perf, etc.)."
Monday, Jul 19, 2004, 10:29 PM in .NET
Avalon 3D Coordinate System
Daniel Lehenbauer, an SDE on the Avalon team, has a nice explanation of the 3D coordinate space in Avalon with some very illustrative pictures. I've got absolutely no experience with 3D and I can follow what he's talking about. Looks like Daniel should be writing a book...
Monday, Jul 19, 2004, 11:11 AM in .NET
Tim Sneath On The Audiences And Tensions O MSBuild
Tim Sneath, a .NET Architect in MS-UK, lays out the audiences and tensions of MSBuild very nicely in this short summary. If you want more information, there are a bunch of MSBuild resources on the Longhorn Developer Center's Tools & Code Samples page.
Monday, Jul 19, 2004, 10:03 AM in Fun
Channel9 Tours MSR H/W and Social S/W Labs
I got a sneak preview of this last week and absolutely loved the Channel9 tour of the Microsoft Research hardware and social software labs. The bit with the inventor of the laser printer, who works for MS now, is especially fun. Enjoy.
Tuesday, Jul 13, 2004, 3:20 PM in Tools
Refactoring C# Code Using Visual Studio 2005
Cool piece by Andrew Troelsen on the new refactoring features in Visual Studio 2005 for C#. Now I just have to train myself to think to use the refactoring operations instead of letting my fingers do it as they've been forced to for lo these many years...
Monday, Jul 12, 2004, 6:05 PM
General Windows Developer Numbers
JohnMont (who oughta know) provided these numbers today as "quotable and public" so I thought I would:
- There are ~6M professional developers worldwide, about 90% of whom target Windows
- There are about 2.5M .NET developers
- >60 of the Fortune 100 develop using .NET
- Forrester says that 56% of enterprises in North America are choosing .NET for their development requirements vs. 44% choosing J2EE
According the legend (JohnMont didn't comment on this part), 4-5M of those 6M developers targeting Windows are Visual Basic developers, which means that if they ever get tired of being made fun of by the C family of developers, we're going to be trapped in phone booths while they descend on us like the birds in an Alfred Hitchcock movie...