Expert Texture
The blogged wandering of Robert W. Anderson
March 7, 2008 at 12:20 pm · Filed under .NET
A little late, but here are my notes on the Steve Ballmer keynote at MIX08.
The Q & A format was certainly better than having Steve Ballmer just talk for an hour, though I got a little tired of Guy Kawasaki’s cracks at Ballmer — about his wealth and method of travel, how Microsoft “should have hired” him. It got better when he stopped that.
I thought the best questions were from the Audience:
On .NET being baked into IE
Why isn’t IE built on .NET.
This has been a common theme, that is, the lack of .NET adoption for some major Microsoft products. Part of that is dog-fooding, but a bigger part is that the developer stories for these products are harder for lack of deep .NET support. For example, Office and IE are not based on .NET. Connecting between their unmanaged, COM, BHO worlds and the managed .NET world is more than a little painful.
Anyway, his response was that .NET wasn’t expected to be as proven and as far along by the time Vista shipped. Fair enough, but I would have been happier if the delays in Vista were related to a real WinFx in the OS than the reasons given.
The iPhone
What about Silverlight for the iPhone?
Steve Ballmer responded (paraphrased) . . .
Would love to get it on everything;
Can’t say we’ve been having talks about it; and
Licensing model not so good.
Right. The licensing model is not so good.
Maybe Microsoft can pay Apple a bunch of money so Silverlight can run on the iPhone. Then developers can build the apps for free?
Sounds good to me.
Tags: .NET, IE, IE8, iPhone, Longhorn, Microsoft, Silverlight, Vista
February 28, 2008 at 7:39 am · Filed under .NET
Last week, Bart de Smet wrote about calling the Task Scheduler in Windows Vista (and Windows Server 2008) from managed code. In his usual style, he does a great job diving into the topic.
It reminded me of something I did last year for Windows Server 2008 Certification: write code to start an unprivileged task in Windows 6 specifically written for installers.
If you are familiar with UAC, you know that applications identify their least required privilege level in their manifest. Applications that don’t require elevation identify themselves with the level="asInvoker" tag (the value may be confusing, but makes sense).
This creates a bit of complexity for installations that launch applications when they finish. If your installation required elevation, but the launched application does not, what should you do? Windows UAC guidelines say that you should launch them unprivileged. This makes sense: you don’t want an application to run elevated as a side-effect of the installation.
And you do this by starting the task in the Windows 6 task scheduler.
The UAC guidelines contain some C++ code for this, and Bart has a managed version, but for reasons of maintainability and consistency, we wanted VB Script. I was able to find some pieces of this online, but the following code is basically a port of the UAC Guidelines version with a check for Windows version too.
' Arguments
set args = WScript.Arguments
if args.Count >= 1 then
strCommand = args(0)
end if
if args.Count >= 2 then
strArguments = args(1)
end if
' Determine the version of Windows
set objWMI = GetObject("winmgmts:\\.\root\cimv2")
set colOS = objWMI.InstancesOf("Win32_OperatingSystem")
for each objOS in colOS
version = split(CStr(objOS.Version), ".", 2)
next
if CInt(version(0)) < 7 then
' pre Vista / Server 2008. Just run the task directly
set objShell = CreateObject("Wscript.Shell")
set objProc = objShell.Exec(strCommand & " " & strArguments)
else
' Vista / Server 2008 or later. Schedule it for immediate execution
scheduleTask strCommand, strArguments
end if
' Schedule a task for immediate execution; requires Windows 6 or later
private sub ScheduleTask(strCommand, strArguments)
' Some constants we need
TASK_TRIGGER_REGISTRATION = 7
TASK_ACTION_EXEC = 0
TASK_CREATE = 2
TASK_LOGON_GROUP = 4
on error goto 0
' Get the TaskService class
set pService = CreateObject("Schedule.Service")
' Connect to the task service.
pService.Connect
' Get pointer to root task folder.
set pRootFolder = pService.GetFolder("\")
Randomize(20000)
taskName = "MyBackgroundTask " & CStr(Rnd(1000))
' See if task exists, delete it if it does.
on error resume next
pRootFolder.DeleteTask taskName, 0
on error goto 0
' Create task
set pTask = pService.NewTask(0)
set pSettings = pTask.Settings
pSettings.StopIfGoingOnBatteries = false
pSettings.DisallowStartIfOnBatteries = false
' Create trigger
set triggerCollection = pTask.Triggers
set trigger = triggerCollection.Create(TASK_TRIGGER_REGISTRATION)
' Create a new action
set actionCollection = pTask.Actions
set action = actionCollection.Create(TASK_ACTION_EXEC)
action.Path = strCommand
action.Arguments = strArguments
' Register the task using users group
set registeredTask = pRootFolder.RegisterTaskDefinition(taskName, pTask, TASK_CREATE, "S-1-5-32-545", null, TASK_LOGON_GROUP, "")
' give 10 seconds for the task to start
for i = 0 to 100
state = registeredTask.State
if state = TASK_STATE_RUNNING then
break
end if
WScript.Sleep 100
next
' delete the task
pRootFolder.DeleteTask taskName, 0
end sub
You can see it takes arguments for the application and an argument to pass to the application. Also note that the VBS must be run elevated in Windows 6, otherwise tasks cannot be scheduled.
Ah, VB Script. You gotta love it. Or not, but I wish someone else had posted this!
Note to Microsoft: you would have saved a lot of people time if you had included a VBS version in your guidelines document.
Tags: Server 2008, Task Scheduler, UAC, VBS, Vista, Windows 6
February 19, 2008 at 9:51 am · Filed under .NET, Miscellaneous
Mary Jo Foley writes there’s no Windows Server 2008 SP1 in the works.
Why? Because the first RTM of Server 2008 is called Windows Server 2008 SP1. This is due to Server 2008 and Vista sharing the same core code and components.
Hmm.
This makes only marginal sense, and then only if Microsoft commits to keeping the service packs synchronized across the Windows 6 product family. I think this will be less confusing to customers. We’ll see if this synchronization happens.
Regardless of Microsoft’s plans, the SP1 designation on Server 2008 is misleading. Most of the server components of Windows 6 will remain without a service pack until SP2.
Customers who like to wait for initial service packs still will — unless they are duped into thinking they’ve already got it.
Tags: Microsoft, Server 2008, SP1, Vista, Windows
February 7, 2008 at 3:49 pm · Filed under Miscellaneous
According to Mary Jo Foley, Some won’t have to wait until March for Vista SP1. Cool. I’m installing it now.
Tags: Microsoft, SP1, Vista, Windows
October 12, 2007 at 8:41 am · Filed under Miscellaneous
Vista has a cool feature called “Problem Reports and Solutions”. This tracks problems and periodically looks for their solutions. These kinds of problems include system and application failures, connectivity issues, etc.
Today it notified me it found a new solution, so I immediately went to see what it was:
Of course, immediately I thought which problem with Windows Vista? And I’m not being sarcastic here. I’ve had several intermittent issues with Vista related to networking, hibernation / sleep, sluggishness, etc. (btw, the sarcasm is best applied to the possible solutions ;).
So I clicked on the link and got a dialog with this further information:
Again, my question of which problem. Nothing in the main part of the text says anything other than “the problem” and the “Technical Information” box describes some generic problems.
I would like to see two improvements here:
1. Improve the solution title
Instead of “the problem”, how about:
Follow these steps to improve the reliability of Windows Vista.
The actual title may be limited to the software product to which it relates. If so, that is a shortcoming, because the actual messaging is pretty unhelpful . . . and it opens Microsoft up to further sarcastic jabs.
2. Provide more information about why this solution was chosen for me
The dialog is pretty unhelpful. Instead of sending me to the knowledge base, how about some specifics about my own machine? Something like:
There are X problem reports on your system indicating that this update will improve the functioning of your system. Click “here” to view these reports.
I would actually like to know specifically what this update is intended to fix.
Tags: KB, Microsoft, Vista
October 1, 2007 at 11:29 am · Filed under Miscellaneous
On Friday, I updated my laptop using Windows Update; the entire install process went smoothly.
Things I’ve noticed.
- In the past, remote desktop connections to non-Vista machines always prompted the user to confirm connection. New in Vista SP1 is the ability to turn off that warning on a computer-by-computer basis. A small thing, but I found this really irritating in the past. Cool.
- The Start -> Search menu is gone. A little strange, I think. You can get the same functionality from any explorer window, so I don’t see how this levels the playing field for other search vendors.
- Strangely enough, when I installed the prerequisites (which are purportedly related to improving Vista update performance), my Alps touchpad tray icon appeared for the first time ever. I clicked on it and found that, again for the first time ever, the touchpad’s unique “device select” tab was available in the mouse control panel. Weird, but good. Now I can turn off the tap while typing.
Things I haven’t noticed.
- Any changes in stability. In general, I feel that the stability of Vista has improved over the year, but my Reliability Monitor tells a different tale. My reliability index moves between 1 and 3 and hasn’t gotten over 5 since July 31st. I hope that this changes in SP1, though it isn’t clear how much of this is the OS and how much is bad application behavior. I wish I could weight failures on the system for how they impact me and possibly exclude them from the Reliability Monitor.
- Any changes in performance.
All in all I’ve been getting happier with Vista as the year has progressed. I initially had all sorts of networking problems, but Dell or Intel seems to have mostly solved those. Long gone are the days when I had to reboot my machine to get it on a network. We even now have a VPN solution that supports Vista.
Aside from the trouble, I like Vista. The only part I don’t like about it is feeling like an early adopter with it. After all, why did I install SP1? To provide feedback to Microsoft, yes, but also in hope that it makes my experience better sooner.
Tags: Microsoft, SP1, Vista
April 6, 2007 at 8:41 am · Filed under Miscellaneous
Last week I got one of these:

I plan to podcast with it and use it to feed my headphone amp at the office. I set it up with no problem and it sounds great.
This week I got one of these (on the left) running (on the right):

Now, I am using it as a door stop:
Joking aside, I knew the drivers were unavailable before I bought it. As a long-time owner of an M-Audio Delta 1010, I bought it having the faith that they would deliver drivers soon. They did a terrific job getting WDM drivers out back when Microsoft first started supporting them (remember Windows ME?), and I bet they will do the same now.
They are clearly late this time (and some of their competitors are notably on time) and I do have a beef with their public statement (from their site, emphasis mine):
M-Audio has been keeping pace with changes to the Windows Operating System since the release of Windows 95 nearly 12 years ago. We are very excited about the opportunity to offer continued support to our Windows customers as the Windows Pro Audio community begins the gradual transition to the Vista era. Over the past year, we have worked directly with Microsoft’s Vista team to prepare for this release.
Currently, M-Audio does not offer Vista drivers or Vista software updates (beta or otherwise). As soon as Vista drivers or updates for any product are available, this FAQ and other portions of our Web site will be immediately updated to reflect this. Due to the nature of software and driver development, we are not able to provide exact dates or timeframes for when specific drivers will become available—but please rest assured that supporting Vista is a top priority for us.
If they have worked “directly with Microsoft’s Vista team” for the past year, then they should be able to tell us when the drivers will be available.
When, M-Audio, when?
Tags: audio, Drivers, Gagdets, M-Audio, Vista
February 12, 2007 at 11:41 am · Filed under .NET
Dan blogged last night that MSVCRT hasn’t been fixed for the new US daylight savings time (DST) rules that go into effect next month.
Last week, Wayne Citrin posted about a problem with Microsoft’s DST patch for Windows:
There’s a very interesting problem with Microsoft’s DST patch for Windows that you should be aware of, since it can impact date conversion results when mapped date proxies are used. The patch applies the new rules for whether date and time are daylight savings time without regard to year. This means that if you ask .NET whether a given DateTime in the past is DST, it will apply the new rules even if the date would have been standard time under the old rules.
Wayne points out that this isn’t really a .NET problem, but an OS issue fixed in Vista. (and not in XP and presumably Server 2003, and anything before).
As someone who used to work with lots of timeseries data (and more importantly, conversion in and out of formats that don’t support UTC), I can tell you: properly handling DST can be really hard. Not rocket science, but hard just the same.
And Microsoft is telling us we can’t trust the tools nor the OS to do this right.
So you just have to do it yourself — it is easier to fix when Congress enacts some new arbitrary rule.
Tags: DST, Microsoft, UTC, Vista, XP
January 30, 2007 at 6:21 pm · Filed under .NET
Some thoughts I had during the keynote at the SF launch today:
Much different than the last big launch event: VS2005/SQL Server/Biz Talk. No Cheap Trick, but the CEO of Sierra Nevada Brewery spoke. That was cool: their Pale Ale is a real winner.
Things I like about Vista:
- User Account Control (UAC).
- I like the new UI and search capabilities.
- Microsoft Application Compatibility Manager.
- Reliability Manager
I am excited about this upgrade, but I’m still waiting for the final VS2005SP1 for Vista patch and the Netgear VPN driver upgrade.
About Office
Office looks cool and certainly offers the enterprise real benefits, but I’m just not personally excited about the upgrade. The main reason, compatibility: I just don’t want to be bothered with making sure my files are compatible with co-workers, partners, family members, etc.
I left the launch a bit early — too much actual work to do.
Tags: Launch, Microsoft, office, office12, Vista, vs2005
January 7, 2007 at 10:17 pm · Filed under Miscellaneous
I saw this on Nima’s blog, Windows Home Server is coming. Bill Gates announced this today (see Bill Gates keynote - Engadget).
I can see the niche for this product, except I don’t really want servers in my house anymore.
It seems like most of the market for this product will be covered by LiveDrive. Instead of Windows Home Server, I would have loved to see:
- LiveDrive announced ready for the Vista launch.
- LiveDrive free with Vista. Of course, maybe it’ll be free for everyone.
Not to bash Home Server. It is probably cool, but I don’t actually want more hardware and OSes in my house. I want fewer.
Tags: LiveDrive, Microsoft, Vista
Next entries »