Expert Texture Home Contact me About Subscribe Digipede Connect on LinkedIn rwandering on Twitter rwandering on FriendFeed

rwandering.net

The blogged wandering of Robert W. Anderson

Archive for June, 2006

Putting a grid behind Excel 2007 and SharePoint

Yesterday Dan posted on his experiences getting a grid running behind SharePoint with Excel 2007.

It turns out that it is remarkable easy if you use the Digipede Network.

Check it out: West Coast Grid: Putting a grid behind Excel 2007.

Good job, Dan.

Tags: , , , ,

User in charge: Nuance

I was at the Users in Charge session of BloggerCon IV the other day led by Chris Pirillo (Dan Farber has a good write up here). Good topic, though I had hoped it was going to be more about how users can insert themselves into product development versus how it turned out: (mostly) complaining about specific applications / hardware. As a developer I was supposed to sit quietly and listen . . .

Anyway, in the spirit of that session, here is something that really drives me crazy: I use Dragon NaturallySpeaking. The company that sells this is Nuance. They sell some other products. I don’t want them. I don’t want emails from them about these other products, but I do want upgrade information for Dragon. It appears that I have to get emails about all of their products to learn about upgrades. Not so uncommon, but annoying.

I have easily seen 100 of these emails over the years. Certainly irritating, but not that big a deal. I don’t bridle at this like some do. Apparently this isn’t enough though, they have integrated these offers into the Dragon self-update feature. So every once in a while I get a dialog box that pops up. Presumably, it is checking for updates (i.e., bug fixes) for NaturallySpeaking. Even when it doesn’t find any, it tries to sell me other products.

dragoncross.jpg Dragon Update

Can I update without self-update? No, that isn’t actually possible. Can I turn off the promotions in self-update? I can’t figure it out.

What does the user-in-charge do? Complain, certainly. Stop using the product? Not upgrade next time? Maybe.

Dan on .NET Rocks

Dan, Director of Products at Digipede, was interviewed on .NET Rocks a couple weeks ago. It looks like it went live yesterday. Check it out here: Dan Ciruli on Grid Computing.

I haven’t heard it yet . . . I wonder if he explains his push-up challenge.

24 Hours of Vista Beta 2 (or There and Back Again)

Previously, I asked Vista Beta 2 — Install it?

I just came from the Microsoft ISV CTO Summit (and before that a Vista Partner Opportunity day). They were throwing Vistas at me.

I couldn’t resist, so I installed Vista Beta 2 on Sunday morning. Ran into this:

  • My wireless network (Buffalo Router / VPN here) was recognized, but Vista claimed my laptop hardware didn’t support it. Luckily I have a second, less secure (and therefore firewalled out of my home network) WAP. That worked OK, but I kept dropping the connection.
  • The Netgear ProSafe VPN client didn’t work. Not surprising here. The Vista Upgrade Advisor warned me of this. That software doesn’t look like it is really supported. My guess is that this will still be an issue after Vista RTMs. I could have worked around this one (with some pain and consternation from Nathan).
  • I kept getting “Broadcom ASF Failed to Initialize” errors. These dialog boxes would lock up the machine for a few seconds at a time. I tried disabling all sorts of drivers to no avail.
  • When logging in, I would be stuck at the “Preparing your desktop. . .” message for 5 seconds to 5 minutes. Didn’t look into this one.
  • Resume from hibernation went through the whole resume process only to present me with the Logon screen (not the lock screen . . .).
  • Tried to do an automated build of the Digipede Network and came across an issue in a 3rd party (open source) tool that caused elevation dialogs (I guess 40 per build).

It is the last one that stopped me. I can fix the problem (and will have to eventually), but I just don’t have the bandwidth to work through this and the next 20 issues that come up. This morning, I restored XP SP2. Ghost rocks and I’m back to work.

I’m kind of down about it because I would like to support the Vista beta to help make it better.  Well, I can’t do it this time.
The good news is that this was just a big background task and didn’t impact anything I needed to do.

J. LeRoy and IM

Read J. LeRoy’s great post on IM, titled Infuriating Messenger 2.0 — he has some great rules about IM. We (mostly) all ascribe to reasonable telephone and email etiquette, but for IM? It is all over the map. This makes me think about a couple of things about these 3 mediums:

  • Telephone/VOIP: Good spoken real-time conversation gets things done fast. Bad requires synchronization of two people’s time.
  • Email: Good asynchronous. The ability to make things clear and concise. Bad well, no voice. No (reasonable) way of telling if someone has read it or if they’ll respond.
  • IM: Different provides presence information.  Often faster than email. Same I think it is exactly like Email and, therefore, requires the same etiquette as email.

What I like about email? One thing I like about IM is that it speeds up the asynchronous
And Jim admits that we are first cousins. That’s his story . . . ;)

Notes from BloggerCon IV

A busy week, but I made it.

The first session (that I saw) this morning was led by Phil Torrone. People giving / talking about tools. Many questions about how to do specific things and what tricks people have to get it done (regarding blogging and podcasting). Clearly this stuff is still too hard.
Now (OK — two hours ago), Jay Rosen on Citizen Journalism. Very good topic / question: how do we do “users know more” journalism?

This is often mapped into “open source” journalism. One person suggests it needs a new name to help with the constant argument of “what is journalism?” Not a bad idea. I don’t like the term “open source journalism” because of the double meaning of the word “source”. “Users know more” doesn’t mean that the source of a story (e.g., an involved party) is “open”.

People are struggling (and Jay Rosen) has to keep bringing people back to the topic: how to do “users know more” journalism. I understand that after the talk he said that none of his questions were answered.

An interesting discussion just the same.

Tags: ,

From the CTO Summit

I wasn’t sure what to expect from the Microsoft ISV CTO Summit. While little of the content is new to me, the opportunity to meet with Microsoft product folk as well as network with other CTOs has been well worth the trip. Every CTO I have talked to at this event is very qualified, though some are more deeply knowledgeable about the newest Microsoft technologies. As a result, it is a challenge for Microsoft at these kinds of events to provide the right level of information for everyone.

Considering this, they have done a very good job.

Anyway, aside from the content, I planned to make the most out of trip to Seattle by connecting with some people outside of the Summit. And aside from a false start — a missing mystery guest — have a good trip so far. Among other people I’ve met with, I:

  • Bruce Kyle, our ISV DE — very helpful. I still owe him countless Airframe ports.
  • Caught up with Savas Parasatidis. I have followed his blog for some time. He is a brilliant guy. I appreciate his perspective on the OGSA/OGSI/WSRF/WS-* as it relates to Grid and the GGF (search his blog).
  • Met Jeffrey Snover and talked about PowerShell. You can tell he is really excited about his product — as he should be. I’m a big fan of this product — especially the productivity gains it gives ISVs — and will likely blog more on it. Mostly we talked about support for ISVs and the future of PowerShell.
  • Met Shy Cohen, a WCF Community Program Manager. He has already given me some performance ideas related to the future WCF-enabled Digipede architecture. We plan to drill down more today.

So far, so good.

Off to the Microsoft ISV CTO Summit

This afternoon I will fly up to Seattle for the Microsoft ISV CTO Summit. I hope that this is more than just an opportunity for Microsoft to market to CTOs. I am hopeful that it will be more since (I believe) that most of the content at this event is under NDA.

Tonight I will be having dinner with J. LeRoy and, I think, one guest to be named later.

CCR Released

The Concurrency and Coordination Runtime have been released. You can find it here, as a part of the new Microsoft Robotics Studio.

I gave my take on the significance of the CCR when the Channel 9 video was posted (see
CCR SDK and more benefits to .NET with links to the Microsoft content).

I keep a list of topics into which I plan to do a “deep dive”. The CCR just got bumped to the top of my list.

Vista Beta 2 — Install it?

I attended the Windows Vista Partner Marketing Day yesterday. This is the formal kickoff coordinating worldwide launch events with partners. This is another way that Microsoft is doing a good job engaging its partners — and an indication that this will be a very big launch. Yesterday they demonstrated many features of Vista — I have seen a lot of this before, but I have to say: It all looks really cool.

I left there with a copy of beta 2 on DVD. I have avoided downloading it as I don’t have the time to install it and really use it. From my perspective, there is no real value in my just installing it somewhere — I need to install it on my main laptop. Of course this isn’t recommended.

But now that I have the beta, it is just begging me to install it . . .

Scobleations

Congratulations, Robert. I agree with the masses that you did a great job in opening up Microsoft. I’ll miss your angle on Microsoft and your ability to bridge the Microsoft / Web 2.0 world. Of course, I’ll probably run into you more now. Especially if you listen to Dave Winer — the East Bay is a great place to be.

.NET 3.0 (née WinFx) — now with CLR 2.0!

I wrote about the WinFx name change on Friday, WinFx becomes .NET 3.0.

One of my questions had to do with .NET 2.0 and whether there will be a new CLR. Jason Zander clears that up here: .NET 3.0 is the combination of what was WinFx (WCF, WF, WPF, WCS), and .NET 2.0. So, no, there will not be a new CLR.

Some people have complained that this introduces some confusion because the .NET product version number doesn’t match the CLR. Of course, it could get pretty harry going forward, because .NET is more than just the CLR.

I agree that this can be confusing, but if you buy that the name change is a good idea (which I do) then this is the best solution. The alternative — arbitrarily bumping up component versions to match the product version — is misleading and will cause developers much more headache.

I do hope, though, that we are not heading back to a time when it was nearly impossible to detect what versions of .NET are actually installed. Remember the list of file versions and manifests that you had to pour over to detect which Visual Studio 6 service-pack you had? Did this ever match what was installed on your machine? Not for me.

What we need is a simple tool to tell us what is installed. How about it? Microsoft, can you commit to a simple tool (supported, unmanaged, open-source, available in binary with a free redistributable) to determine exactly which .NET is installed? This will save your ISVs some headache.

So, I was right in the first place . . .

I figured that if Brad Abrams, Kryzysztof Cwalina, and Joe Duffy all agreed that you call the async callback before you signal the wait handle, then they must be right. Sure, blocking on the wait handle in the callback results in a deadlock, but perhaps (I reasoned) that is not a supported use case.

Joe refers to a customer who emailed Brad and Kryzsztof about this. That’s me. Then I backed off, figuring that Joe’s original post shed some light on the issue. I’m not usually so quick to defer in this way, but at least I deferred to some really bright guys.

Note: I turned off comments because this post is a major recipient of comment spam.

WinFx becomes .NET 3.0

S. Somasegar has announced that WinFx was confusing and so they have renamed it to .NET 3.0.

I’m indifferent or its good, wierd, or bad. What?

Indifferent: It is just a name.

Good: I like the idea that WinFx == .NET 3.0. It definitively shows how these technologies relate.

Wierd: I liked the name WinFx. As one of my Digipede presentations says, WinFx is was the new Windows API. Is Microsoft saying that .NET 3.0 is the new Windows API? That is hard to believe. Will WinFS end up being in .NET 3.0 or is that something else altogether?

Bad: Does this mean that the CLR is about to have a new version number? As Jesse Kaplan told me at PDC05, the biggest compatibility problem for .NET 2.0 was the version # (oh and installs that rely on the version # or some installation artifact to detect .NET). So is this going to happen again? So soon?

So, does it all matter in the end? I don’t know . . . it probably helps Microsoft focus its branding . . . that is a good thing.

Partnering with Microsoft

If you are an ISV interested in partnering with Microsoft, I recommend John’s post, Partnering with Microsoft. His advice is top notch.

He follows it up by railing on the Microsoft partner Web sites in Part Deux. This post had me laughing out loud; however, you might not truly get it unless you’ve experienced the pain yourself.

Tags: ,

Three deficiencies in the C# preprocessor

Here are three things I want the C# preprocessor to do. Together they would better support cross-compilation for different .NET versions. Of course, this means that I really want these for C# / .NET 1.1. Too late for that?

1. Ignore all text in #if‘ed out code. Ideally this would simply ignore all text between the #if and the matching #else or #endif. You may think it already does this, but of course it does not. It looks at all of the preprocessor commands. Why do I care? Well, I want to use #pragma warning disable around some specific method-calls to members we plan to make obsolete. This doesn’t work before C# 2.0, so I would like to #if out these pragmas (and turn off all such warnings globally in those builds too, by the way):

#if !__DOTNET11__
#pragma warning disable 618
#endif

Of course, this doesn’t work at all because previous versions of C# choke on the warning pragma. It may be too much to call this one a deficiency, but it sure would be nice if it worked.

2. Allow expressions in #if. See the next one for the reason.

3. Provide compiler-version and .NET version constants. This is kind of obvious, but why do I have to define my own constant (as in the above example)? C++ supports the __CLR_VER constant. Why not C#? I would prefer:

#if __CLR_VER < 2.0
. . .
#endif

Of course, this requires expression evaluation and I’m intentionally blurring the distinction between textual constants and mathematical operators.

There are workarounds to these issues, but handling the warnings properly is kind of thorny. I’m a big believer in clean builds, so I think it is worth the time to implement this, but I sure do wish Microsoft had built this in. My understanding is that cross-compilation was not considered a requirement for VS2005 and MSBuild when it was released — not having this kind of support built into the language is another example of that.