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

The blogged wandering of Robert W. Anderson

Vista over NaturallySpeaking

I am a heavy user of speech recognition technology.  I find that I can write faster than typing (and I have a reputation for being a fast typist).

I have been using Dragon NaturallySpeaking for several years now.  Every new edition has gotten a little bit better.  And I’ve found it quite useful except that the last two versions have tended to get corrupted databases.  And now, I will very commonly get some error that causes it to lock up.  I have found that it tends to fail if I switch around between different applications.

Of course, I am an avid multitasker, so these errors has become really irritating, and essentially stopped me from using voice recognition.  I just can’t commit to staying in a single application for very long.

Today, I started using the speech recognition built into Vista.  While I am struggling a little bit with differences in the verbal commands,I am already sold.  Why?

  • It feels much faster.
  • I can switch between applications with no problems.
  • The recognition engine is doing a terrific job with very little training.

I know that while I continue to use this I may come up with some problems, but so far I’m blown away.

Plus, Vista doesn’t try to sell me things through its auto-update feature.

Tags: , , ,

Ballmer @ MIX08

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: , , , , , , ,

Unprivileged Tasks in Windows 6 with VBS

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) 

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) 
    ' 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_CREATE	= 2 

    on error goto 0 
    ' Get the TaskService class 
    set pService = CreateObject("Schedule.Service") 

    ' Connect to the task service. 

    '  Get pointer to root task folder. 
    set pRootFolder = pService.GetFolder("\") 

    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 
        end if 
        WScript.Sleep 100 

   ' 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: , , , , ,

An SP1 by any other name would . . .

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.


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: , , , ,

Vista SP1 available after all. Kind of.

According to Mary Jo Foley, Some won’t have to wait until March for Vista SP1.  Cool.  I’m installing it now.

Tags: , , ,

Solution found to "The problem with Vista"

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: , ,

Vista SP1 Beta

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: , ,

When will the M-Audio Drivers be available?

Last week I got one of these:

Fast Track Pro

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):Dell Latitude D820







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: , , , ,

Microsoft’s DST Fix is a real problem

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: , , , ,

Vista / Office Launch

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:

  1. User Account Control (UAC).
  2. I like the new UI and search capabilities.
  3. Microsoft Application Compatibility Manager.
  4. 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: , , , , ,

Next entries »