VirtualEdit in Vim

I really like vim, and here’s yet another reason. I can transpose columns in a text table, using visual block mode. As a quick example, let’s say I have a file containing usernames and display names. If I want to switch the order of the columns, here are the steps:

  1. enable virtualedit: set virtualedit=all
  2. move to the upper-left corner of a column I want to select
  3. invoke visual block mode: CTRL-V (CTRL-Q if CTRL-V is mapped to Paste)
  4. move the cursor (h,j,k,l or shift-arrow) to select the column
  5. delete the selection: x
  6. move the cursor to the location where I want to insert the column. (Note that with virtualedit enabled, I can move beyond the actual end of a line)
  7. paste the column: p

More info at vim docs online.

Recalcitrant Vista SP1 install

I have spent a number of hours troubleshooting the installation of Windows Vista Service Pack 1 on a particular Dell Optiplex 755, but I finally succeeded.

Symptoms: The SP1 update was downloaded and queued for installation via the Automatic Updates engine. When initiated, the install would look like it had completed (going to 100% through the third configuration step). But upon reboot, the installation would rollback all changes.

Troubleshooting: I did some of the normal troubleshooting steps, including downloading the full installer, disabling AV, etc. Each attempt to install the service pack was time consuming, but ended the same way. Eventually, I tried running the system file checker,but that didn’t change anything.

SP1 installation support: Microsoft offers free support for SP1 installation, so I decided to give that a try. The first suggestion was that I try the installation in a clean boot environment, created using MSCONFIG:

    1. Click "Start", type: MSCONFIG in the search box and press Enter.
      Note: Please click "Continue" if the "User Account Control" window pops up.
    2. Click "Services", check the "Hide All Microsoft Services" box and click "Disable All" (if it is not gray).
    3. Click "Startup", click "Disable All", click "OK" and restart your computer.

I made the changes and attempted the install again, but without success. I bundled up some log info and sent it off to my support technician. Her next request was that I repair Vista, using installation media of the same Vista version that was currently running on the system, by running setup and selecting the upgrade option.

I ran into some issues with unreadable media and had to perform a firmware update on my DVD drive, but I got that working. The upgrade/repair took hours on a relatively powerful system. It did complete, however, and then I was able to run the SP1 install from the version I had downloaded.

Since this was a very significant system update, it would be prudent to back up any important data before performing this procedure on any system. All my software and data appears to have been preserved, but this is a lightly used system, and my important data is on my network account.

Oops. Forgot to enable RDP!

In deploying a server, today, I forgot to enable the Remote Desktop service for administration of the system, and I hadn’t yet joined it to the domain. I was pretty sure that it would be possible to change the setting via the registry, so a quick google search turned up this:

psexec \\machinename reg add “hklm\system\currentcontrolset\control\terminal server” /f /v fDenyTSConnections /t REG_DWORD /d 0

I added psexec’s -u parameter, since I needed to specify the local system’s administrator account. worked like a champ. Thanks, Tony, for the clear documentation.

Viewing Oracle Calendar in Outlook 2007

Long ago, UVM’s Chief of SkunkWorks, Wesley Wright, put together a script to pull information out of our Oracle Calendar server. It can be used to display calendar data on a web page, but it also can be used to view (read-only) calendar information from applications that understand iCalendar. Wes wrote some instructions on importing calendar events into an iPod, and the script-invoking URL at the end actually works with Outlook 2007:

If you are an Oracle Calendar user, you can import your own calendar, provided that you have not restricted read access to your agenda. The URL for use with iCal Subscribe or for manual downloading is

http://scripts.uvm.edu/cgi-bin/CT_Cal.pl?fn1=surname&gn1=givenname&period=year&asical=1

replace surname with your Oracle Calendar surname (last name) and givenname with your Oracle Calendar given name (first name) . Example

http://scripts.uvm.edu/cgi-bin/CT_Cal.pl?fn1=wright&gn1=wesley&period=year&asical=1

To add Oracle calendar to Outlook 2007, open the Account Settings dialog and click the Internet Calendars tab. Click the New… button, and type in the script URL above, providing your own given and surnames.

Tools-Account Settings-Internet Calendars

Continue reading →

Connecting to SharePoint with My Network Places (WinXP)

SharePoint supports connections the use the WebDAV protocol, which provides read and write capabilities over HTTP. In Windows Vista, you can actually map a drive letter to a SharePoint document library. In Windows XP, you can create a “Network Place,” opening the document library as a Windows Explorer window, which lets you drag and drop files to and from the SharePoint library much like a network drive.

First, you need to know the URL of the document library to which you want to create a connection. Below, I’ve highlighted the part of the URL that you need to use. You need to include the whole URL up to and including the name of the library, and excluding the word “forms” and everything after that.

Document library URL highlighted

Continue reading →

Google TechTalks – OpenID

I was intrigued by a post on Scott Hanselman’s blog regarding OpenID.  I was interested in enabling OpenID authentication to my blogs, but had some problems with the WordPress OpenID plugin.

A while ago, Jim Lawson pointed me to this very useful presentation of the OpenID technology by Simon Willison as part of Google’s TechTalks. I thought I’d watch it to make sure I have a decent understanding of the technology. It didn’t disappoint:

Interesting trivia at the end: the average user has 18 accounts and 3.49 passwords. (video dated June 25, 2007).

Among other TechTalks that I want to watch, I spotted one entitled Internet Scale Identity, Collaboration, and Higher Education. Sounds very interesting.

I’ll have to bang on the OpenID thing some more to get it working. There’s a new version of the plugin; perhaps that will help.

Event: IT-Discuss Live – SharePoint

Please join your IT colleagues for the first IT-Discuss Live event!

UVM IT-Discuss Live – SharePoint

Friday, October 10
11:30 am to 1:30 pm

[Update: location changed] 
Livak Ballroom, Davis Center, Fourth Floor

[vCalendar file]

This is the first in a continuing series of gatherings; a combination of technology presentations and demonstrations, round-table discussions and Q&A, collective troubleshooting and building of professional and personal connections.

UVM’s SharePoint Services will be the main technology theme this time, with demonstrations and discussion of the basics, including creating sites and setting permissions, the PartnerPoint mechanism for collaborating with folks outside the University, and plenty of time for discussion and questions.

Pizza and soft drinks will be provided, so please RSVP to me at Geoffrey.Duke@uvm.edu by noon on Thursday, Oct. 2, so that we have an accurate count of attendees. If you have any questions, please contact me.

I hope to see you there.

–Geoff

PS. These sessions are open to any UVM affiliate interested in using or supporting technology effectively; you don’t have to be a member of the IT-Discuss email list, but it’s encouraged 🙂

TinyMCE fixed!

I finally got around to using a javascript debugger to find out why the visual editor refused to work for me. I got the following error when there was an attempt to call tinyMCEPreInit.Start():Object doesn’t support this property or method”. I quick search led me to this forum thread, which references a PHP bug. I reproduced the bug behavior, and then made the code changes recommended in the forum post.

I’m now posting my first blog entry using the visual editor. Hurrah! Many thanks to the member who posted the solution, a certain bcodding. I wonder… Confirmed: that’s my colleague, Ben, from down the hall. Quite the coincidence!

Now I’ll go back to being out sick.

Troubleshooting Windows Activation

[UPDATE: Updated to include just Windows 10 and 11. ]

Here are some troubleshooting steps — for my future reference as much as anyone else’s — for for gathering information for diagnosing and resolving Windows KMS client activation issues.

Quick Fix: Try this first!

Most Windows activation issues I’ve encountered are resolved by entering the appropriate product key (not a secret; see footnote). Windows 10 and 11 Enterprise share this KMS Client Product key:

NPPR9-FWDCX-D2C8J-H872K-2YT43

Enter the code above and attempt to reactivate. If it works, you should be all set. If it doesn’t, the following steps will help identify the issue.

Gathering Information.

Gathering data is essential to fixing problems. If you ask me (or other IT staff) for help with Windows activation, the first thing I will ask from you is the output of the commands below.

I recommend opening a text editor and copying all the commands and output into a file, which you can send to us if you need additional help resolving the activation issue.

NOTE: All these steps require running commands from a console window (cmd.exe), which you may need to run As Administrator. These commands work in Windows 7, 8, 8.1 and 10.

1. Run ipconfig /all to capture current IP configuration information.

This could tell us whether the system is in a netreg-ed subnet and needs to register at http://netreg.uvm.edu, or if there are other basic network configuration problems. We really just need the Ethernet adapter, assuming that’s what is being used to connect the system to the network. We don’t need all the additional tunneling adapters, etc. If someone is using a wireless adapter, possibly with the VPN client, then info about those adapters also should be captured.

Continue reading →