Wednesday, December 31, 2008

Windows 7 HomeGroup and social norms

A great post landed today from the Windows 7 Engineering team that made me stop my usual "partial-brain" scanning of daily information sources and actually read it slowly: At Home with HomeGroup in Windows 7. Not only was it well written and informative, but it shows the openness which blogging has brought about - insight into the team's thinking and processes. Their approach to looking at the technology problem from a social engineering perspective is great - I need to do more of this. How many times have we (ok, maybe just me) looked at a problem with thoughts of design patterns, technology approach, and which tools to use?

The year in review

Personally, I started off the year as an employee for a software company working on a complete rewrite of an old product line using Java and IBM's tools - WebSphere, WID (Eclipse-based IDE), WPS (BPM server), and DB2. By the summer I had enough and resigned, took the month of August off then began contracting independently.

In January I also bought my first real server - a Dell PowerEdge - after going years with low-end equipment and do-it-yourself machines. With Dell's aggressive pricing I was able to get a lower-end server for about the same price as a good quality consumer tower. With dual-quad Xeons, room for up to 10 drives as well as up to 48 GB of RAM, it's got plenty of horsepower and room for growth - one of the best computer-related purchases I've made. Initially I loaded up Windows Server 2003 with Virtual Server 2005 and this fall I upgraded it to Windows Server 2008 with Hyper-V. Next on the agenda is to upgrade SBS 2003 to 2008.

From a technology perspective, I've moved my .NET development over to VS 2008 and SQL 2008, worked on a WinCE project, begun developing with AJAX, installed SubText to host my own blog, dabbled once again in COM-land (ugh!) and begun focusing more heavily on SharePoint and Small Business Server.

What's in for me:

  1. Live Writer - it's dead simple and it works.
  2. Delicious - simple interface, built around tagging instead of folder-based, works.
  3. Vista x64 - rock solid. In fact, my daily work laptop, home development machine and spare laptop are all Vista x64 while my server is Windows Server 2008 64-bit edition (supports Hyper-V). My SBS 2003 box is still 32-bit but will soon be 64-bit when it's upgraded to SBS 2008.
  4. SharePoint - I've dabbled with it off and on but this is the year for me to jump in with both feet - there's so much to offer.
  5. VS 2008 - Feature rich, simple to use yet it grows with you.

What's out for me:

  1. Yahoo - mail still works but it's a commodity and nothing special, bookmarks were a plus but delicious has it right and Y!'s toolbar just plain sucks - bookmarks were the only reason I used it and it's constantly broken (cache doesn't work, outdated, keeps getting reset). Given the shoddy work and the botched public debacle with Microsoft and later Carl Icahn. Y! deserves to sink to the bottom of the technology sea and melt in with the rest of the ooze.
  2. Linux - it's getting better but still years away from "dead simple". I like to dig in and play but on my terms and my time, not as a requirement to get things working to the point where I'm productive.
  3. Java-land - while it works, I'm still amazed that tools and the "stack" are still so fragile and difficult to use after all these years. I'm an on-again, off-again friend and right now we're "off".
  4. DotNetNuke - a few years ago there was promise and there is a cottage industry around it but I've waited patiently while they squabbled and morphed and its sub-projects dragged along at a snail's pace. It's getting better and it's free but most of the work over the past years has been under the covers and hasn't really improved or added real *business* value. For example, after 5+ years you still don't have an effective, working, bug-free event module!
  5. Eclipse - while it's nice and gets better, the experience is jarring and fragmented. Which plugins are needed? Where to get them? Which ones work? Compared to Visual Studio it's like a do-it-yourself hobbyist car kit versus a production model Ferrari.

Monday, December 29, 2008

Manually installing Live Writer plugins on Vista

Frank La Vigne's Technorati plugin for Live Writer is simple and effective. Written in Sept. 2006, it does not have a full MSI installer but rather consists of a DLL which you must manually copy to the Live Writer plugins folder. Attempting to do so on Vista may result in an error depending on whether you have UAC enabled.

Remembering that Vista has hardened various aspects of the OS I went looking for the workaround that I had read about. Of course, Mark Russinovich's article Inside Windows Vista User Account Control has all the gory details one could want.

The bottom line is you should, instead, copy the DLL to %USERPROFILE%\AppData\Local\VirtualStore\Program Files (x86)\Windows Live\Writer\Plugins.

Typically on a default installation of Vista %USERPROFILE% will resolve to C:\Users\{your-user-name}. Vista uses \VirtualStore folder under there to store files when "older" programs attempt to write into their own installation folder. This was a common practice which made some sense - programs would keep all their information together where they were installed. It was also easier for lazy programmers because they could write dead simple code to store things like settings and preferences. It would take more work to be polished and store these things in individual computer users' private folders not to mention the extra coding to remove all these different locations when uninstalling. The virtual store is Vista's way of accommodating this behavior - it can lock down program installation folders (preventing write access) so malware can't alter them and inject trojan files while still allowing "older" programs to function.

On the machine I'm currently using there are three folders under \VirtualStore -- \Program Files (x86), \ProgramData and \Windows. In \Program Files (x86) there already is a \Windows Live folder that contains a \Messenger folder - presumably Windows Live Messenger is one of those "older" programs still writing things into it's installation folder.  I simply recreated the necessary paths for Live Writer (\Writer\Plugins) under the existing \Windows Live folder there and then copied the DLL to it. Done.