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.
Thursday, Nov 18, 2004, 10:05 PM in Tools
Rich Salz on WSDL 2.0
According to Rich Salz's reading of the WSDL 2.0 spec (Rich makes a living selling hardware to make XML smoke, so I think he knows), the following is legal WSDL 2.0:
#include "wsdl.h"
extern void hello_world(const char* text);
It's hisjudgmentt that this is not a step forward and I'm having a hard time finding fault with his argument. : )
Saturday, Nov 13, 2004, 5:52 AM in Tools
Tons of Fun with Windows Media Encoder
I've been wanting an easy way to capture screen demos and audio for a while and after stumbling across Jon Udell's post on Movies of Software, I thought I'd give Windows Media Encoder a try. Here's what I learned:
- I really like giving short little vignettes imagining an audience; I didn't think I would
- The preparation for recording a screen demo is the same as a real demo, i.e. I want to make sure I know what I'm going to demo before I do it
- The preparation does not include lighting or another person to run a camera or a microphone, which means that I can do it on a whim at 5am on a Saturday morning
- My built-in mic at normal speaking volume works great
- Capturing a particular screen doesn't work very well because I'm likely to move between windows without knowing that I will ahead of time. Instead, I should capture a region of the screen, ideally something not too large so that it fits well in a video window
- Medium quality may not be good enough. I did 13 minutes at medium quality, which resulted in a 3MB file and good audio, but the screen itself was nearly unreadable. Maybe the screen itself was too big?
- Stop other apps before capturing a screen, otherwise you're bound to get slowdowns in the capture, particularly in the audio
- Talking in my kitchen at normal volume for 13 minutes will waken my wife (sorry, sweetie)
So, while I wasn't happy with the results, I'm very jazzed about the medium. Expect to see more.
Thursday, Nov 4, 2004, 4:55 PM in Tools
Distributed Shared Always On Message Queue Service
Here. Jeff Barr of Amazon has just informed me that Amazon now provides a distributed, shared, always on message queuing service which allows you to create and delete queues, enqueue, read and dequeue messages that can stay put for as long as 30 days. It's free right now and I don't quite know how it will be used for porn and spam, but I have every confidence that you guys will figure it out. : )
Thursday, Nov 4, 2004, 11:36 AM in Tools
Jon Udell Knocks My Socks Off With Dragon Naturally Speaking 8.0
I've never really seen anyone use speech recognition for real and after watching Jon Udell use Dragon Naturally Speaking 8.0, I'm flabbergasted. I had no idea working with it could be so natural. Wow.
Monday, Nov 1, 2004, 2:03 PM in Tools
MaxiVista: Changing My Mind About Tablets
When I first read about MaxiVista, the thing that really got me interested was that it gave me two things that I really want from my Tablet PC. The 1st is to be able to use a slate-only Tablet as a 2nd monitor for my laptop so that I can continue my addiction to keeping my whole life on a laptop, but still be cool like the other kids (I've so far avoided multi-monitor setups because I love my laptop too much and I was afraid of the conflicting addictions).
The 2nd thing I get is a result of the first, i.e. if I'm going to use the Tablet as an adjunct to my laptop, then I shouldn't worry about a generation sometime in the future where Tablet convertibles can replace my laptop, but just get the best slate I can find and enjoy it as a remote viewer/editor of info via file sharing and terminal services.
If you have a device you'd like to turn into a 2nd monitor and you don't yet have MaxiVista, Scott Hanselman's posted a 30% off MaxiVista coupon.
Sunday, Oct 17, 2004, 11:11 PM in Tools
I'm With Jim: X1 Rocks
Like everyone else in the blogespher, I installed Google Desktop Search last week. And, after using it a few times, I've uninstalled it. Jim's right; X1 kicks its butt.
Friday, Oct 15, 2004, 10:02 PM in Tools
Channel9: More Monad
I haven't even seen this yet and I want to recommend it. I'm just a big monad and Jeff Snover fan.
Thursday, Oct 14, 2004, 2:38 PM in Tools
re: Business Object Design tools question
Today Ralph Loizzo asked me what tool I use to outline my objects, to which I replied:
The tool I use most often to design my systems is a text editor. I write my client code first against the objects I wish I had to obtain the first order of functionality I'm after, then implement those classes and refactor 'til I've reached a state of happiness between the clients and the object model.
In this age of development methodology du jour, I assume my methodology already has a name, but today I dubbed it CDD (Client-Driven Development). Also, I don't distinguish between client UI code and lower-level code, i.e. just as often as I write lower-level code against an imaginary OM, I design my UIs first, then implement an OM to enable the UI.
Over the years, I've become less and less of a fan of the idea of componentizing the functionality you think the higher levels are going to need, as it often results in over-engineering. Instead, I prefer just-in-time engineering, refactoring my design as I need new or different functionality, whether in the client during the initial development stage or during the maintenance stage.
Test Driven Development is very similar to Client-Driven Development:
- TDD: writing the tests first and writing your code ‘til the test pass
- CDD: writing the client first and writing your code ‘til the client has the functionality it needs
It may even be that CDD is a degenerate case of TDD where the "test" is "the client seems to work."
Saturday, Oct 2, 2004, 10:01 PM in Tools
Mixed Feelings
For the last few months, I've been doing some really cool work with a group of folks whose only task is to build apps that exercise the WinFX technologies so that we can make sure stuff works the way we want it to and give feedback to the product teams when it doesn't. Because we're still in preview technology land, various features that we want to test are in various builds of each part of WinFX, so we're constantly fooling around with new combinations of the bits, which we bring together in VPC HD images and that I then have to download. Since I'm downloading the 7+ GB images from my house over VNC and since the internal VNC connection software isn't quite as robust as the VNC software we ship to the rest of the world, that means that I'm constantly being kicked off of my connection and reconnecting, sometimes 2 or 3 dozen times over the 2 days it takes me to download the image. I just finished downloading another build today.
Unfortunately, when setting the Administrator password, I managed to enter the wrong thing twice, which meant that I had no way to log into my new VPC image after 2 days of hard labor getting it to my house. So, instead of re-downloading it again, I googled for a utility to reset the Administrator password. The first link was a knowledge base article from MS that didn't help me because I hadn't yet logged in to make myself a password reset diskette (which, frankly, I never do anyway). The second link was a list of completely unsupported, possibly illegal, tools to reset the Administrator password. The first one on that list worked like a charm in several orders of magnitude less time than downloading a new VPC image.
So, now I have mixed feelings. On the one hand, I'm happy that I didn't have to go through all that trouble again, but on the other, I doesn't seem very useful to set my Administrator password to anything useful if I anyone with physical access can just reset it so easily. Of course, Keith Brown and other security experts have been saying that physical security is paramount for any other kind of security to be affective, but it was kind of unsettling to have the point driven home so starkly.
Thursday, Sep 23, 2004, 3:42 PM in Tools
Very Much Enjoying .NET Rocks Lately
DNR goes up and down like every other media outlet (it's not unlike this very web site in that way), but I've really been enjoying it muchly lately. Not only did I get to hear someone besides my normal brethren talk about CAS in a way that didn't make my flinch (Don Kiely on developing with least privilege), but I also got to listen to Mark Miller talk (at break-neck speeds) about my Dad freaking out when the jelly got into the peanut butter at the same time he was enthusing about CodeRush and telling Rory that he didn't need counseling to deal with his relationship problems, he needed penicillin. Fabulous.
Tuesday, Sep 21, 2004, 12:40 PM in Tools
Giving a Mapped Drive .NET FullTrust
Lately, I've been running Virtual PC a lot to test various versions of WinFX on various platforms. To save me for locking any valuable code into a VPC HD, I use VPC shares, mapping Z to the D HD on my VPC host PC. That's all well and good 'til I try to load a project from Z which, according to the OS, is a mapped network drive (in spite of the fact that it's just the other partition on the very same PC), and Visual Studio complains that since I don't have FullTrust on that drive, things may not work out the way I'd hoped (and for whoever decided to write the code and put up that message box, thank you!):
The project location is not trusted.
Running the application may result in security exceptions when it
attempts to perform actions which require full trust.
What's happening is that VS is detecting that the project on the network drive is getting Intranet permissions according to the good and true workings of .NET Code Access Security (CAS). However, since I'm just trying to pretend that Z is on my PC (and, in fact, it is), I want it to have FullTrust permissions. To accomplish this, you need to add a new Code Group with an URL membership permission specifying the folder (in URL form) to which you'd like to grant full trust. You can do with the .NET Framework Configuration tool or you can do it from the command line like so:
c:\>caspol -q -machine -addgroup 1 -url file://z:/* FullTrust -name "Z Drive"
Once this new code group is in place, any new .NET processes you start will give any assemblies on the Z drive full trust (make sure to cycle the devenv.exe process if you want these new permissions and that message box to go away).
Since awarding new permissions, full trust or not, to any chunk of code is something that can cause a security hole, be careful. In this case, I'm awarding full trust so that Z acts just like a normal HD which has full trust by default, so I'm OK. Please make sure that you're OK before adding permission via code groups willy nilly.
Monday, Sep 20, 2004, 5:59 PM in Tools
Windows Command Shell Partner Drop 3 Available
For Windows Command Shell (aka MSH aka Monad) users, Partner Drop #3 was just posted today on http://beta.microsoft.com. So far, all I know is that it fixes 45 internally and externally reported bugs, but it's nice to know that things are moving along on the first new shell we've had since NT 3.1.
Friday, Sep 10, 2004, 11:16 AM in Tools
Windows Forms 2.0 Rocks The House
Joe Stegman shows off the ability of Windows Forms 2.0 to build very professional looking UIs, including clones of MSN Messenger, MS Money, IE and Outlook, all using out of the box controls. In particular, IE was implemented with 10 lines of non-Designer code. Whoa. I can only assume that the Windows Forms team will ship these code samples on windowsforms.net ASAP. Recommended.
Monday, Aug 16, 2004, 2:54 PM in Tools
Dealing with Programmer's Block
A friend of mine IM'd me just a few moments ago and asked, "When you're sitting in front of a code editor and you have no motivation, what do you do?"
I hereby dub this "programmer's block" and since I've never had it (which I'm just now realizing is pretty weird), I wondering if you can offer my friend some advice. Thanks!
Monday, Aug 16, 2004, 11:38 AM in Tools
Good Idea: Builders in Visual Studio Code View
I really love Mitch's idea for a "Builder" in the Visual Studio Code View:
There are tons of hidden strings in code that would benefit from such a thing, e.g. data provider-specific connection and query strings, and I'd gladly rebuild my FormatDesigner as a Builder. I wonder if the VSIP SDK is powerful enough to implement it...