Welcome to MSDN Blogs Sign in | Join | Help

Technical Weblog of Eric Charran

A Journal of My Technical Achievements and Challenges
HOWTO: Enable Visual Studio 2008 Remote Debugging

See this link for methods to enable Remote Debugging:

http://msdn.microsoft.com/en-us/library/bt727f1t.aspx

HOWTO: How Document Collaboration Works at Microsoft

While the title of this post might indicate that there is a sweeping document collaboration strategy that all teams and people use, that’s not the case necessarily.  We are big at dogfooding which is a made up verb indicating that we love to try out our own software and tools in our everyday jobs just the way our customers do. 

To that end, this post will describe a successful multi-national document collaboration effort surrounding the recent publication of the Office SharePoint Server 2007 and Team Foundation Server 2008 guidance that was recently published on MSDN.

The guidance for this heavily anticipated documentation will be released in phases over the next few weeks and appear in a developer center located under the SharePoint developer center. 

Here is the portal link which describes the focus of the guidance as well as links/placeholders to all the content as it gets published:

Team Foundation Server Resource Center

And here is the link to the first published article:

Using Team Foundation Server to Develop Custom SharePoint Products and Technologies Applications

Based on the guidance, and the descriptions in the above resource center, we have a total of five white paper documents that were collaborated on by over 50 people in several countries, including India, Germany, Ireland, Turkey and the Netherlands.  This also included domestic resources such as product group folks and rangers around the country and in Redmond, WA.  Here are some stats about the effort:

Collaboration Platform:  Office SharePoint Server 2007 and Groove 2007 with Word 2007, Visio 2007 and OneNote 2007 (all latest Service Packs and hotfixes)

Team Size:  Over 50 contributors and tester/reviewers actively marking up and editing the same set of documents over a 4 month period including Microsoft Services Consultants, Product Group team members (SharePoint and Visual Studio Team System) and external MVP’s

Deliverables:  5 white papers consisting of procedural and contextual guidance including screen shots, artwork, Visio diagrams for developers writing custom MOSS applications and using Team Foundation Server

How we did it:

I was fortunate enough to be at the hub of this activity and led the effort to work with all the talented authors, contributors and reviewers.  What we did is to establish a SharePoint team site in on a our internally hosted Microsoft SharePoint 2007 Server collaboration farm.  Using the Shared Documents library, I then created a Groove 2007 workspace and added the SharePoint Files tool. 

SharePoint and Groove in Sync Together:

The SharePoint Files tool will connect to a designated SharePoint site at a level in its folder hierarchy specified by the user.  In my case, I linked the tool to the Shared Documents folder.  I then in Groove, created a folder hierarchy which the rest of the team would use to store documents and resource files related to those documents.  The folder hierarchy synchronized back to SharePoint, thereby mirroring the workspace and the files therein.

From a collaboration standpoint, this was critical as a most of our authors and reviewers were at one point or another not connected to our internal-only corporate SharePoint collaboration environment.  Thus, by making Groove the primary collaboration point, Groove workspace members could interact with the virtual team and the shared documents while at an airport, on the train, or anywhere with internet access.

How We Managed Changes to Documents:

Whenever anyone updated a document, the changes came streaming back from their workspace to everyone else’s copy.  For me, I was the designated SharePoint synchronizer.  My workspace was the first workspace that I invited everyone to, so it was the only workspace that synchronized back to the SharePoint team site.  When my workspace received updates and reported unsynchronized changes in the tool, I simply synchronized back to the SharePoint site and all the changes went into the SharePoint “cloud”.  This gave me, and everyone else a comfort level that our documents were preserved not only in each other’s workspace, but versioned in SharePoint as well which was backed up by Microsoft’s enterprise backup. 

Collaboration Stipulations:

While the this arrangement gave us the flexibility to support collaborators accessing a document both in Groove and in SharePoint, I did not want to get into a situation where a single document had conflicting changes coming from both environments.  Thus each paper’s collaboration team was required to choose their collaboration environment (SharePoint or Groove).  Because of the benefits of Groove (only an internet connection required to collaborate) all of our team chose this approach.  This left it to me to manually (if I chose) check out and in documents before synchronizing. 

In addition, to avoid collisions of people editing documents at the same time in the workspace, what we did was to copy our standard MSDN template Word 2007 xml file for each contributor.  This assured that they would be able to contribute freely without worrying about who else was in the document when they were.  Once completed, I was responsible for editing and merging the documents back into a master composite copy (using Word 2007’s merge document feature). 

For editing and commenting from our tech reviewers, we did the same thing.  We made copies of the composite document which they could freely edit and mark up which I merged in and applied their edits to the master copy.  All the while, I was synchronizing with the SharePoint site.  We also had .one files in the folders for each white paper so we could share hand drawn or text notes on the topic.

Great Collaboration Experience:

It was really one of those great collaboration experiences where the technology worked like it was supposed to.  Quietly, reliably and without issue.  No document collisions, or burned documents or uh-oh moments. One great benefit is that I saved the workspace invitation within the workspace itself.  Thus, any member of the the workspace or visitor to the SharePoint site could join the workspace themselves or forward it on to others.  The popularity of this project inside Microsoft reached fever pitch when at one point we had over 75 active workspace members.

HOWTO: Complete a WF Workflow if a Task Replicator Activity’s Tasks Haven’t Been Completed Yet

Scenario:

A Visual Studio Workflow Foundation Workflow needs to terminate with approval given the following circumstances:

1. At least one task has been completed out of the many tasks that were assigned via the workflow to approvers

2. A field on the current item the workflow is executing on has been edited/updated/changed

Thus the behavior would be that the users could modify the workflow by adding approvers, completing tasks, etc. and if the monitored field on the current list item hadn’t been updated, the workflow would remain open. As soon as the workflow received notification that the current item’s field had been updated and that it matched an internal comparison value, the workflow would evaluate if at least one task had been approved and conclude the workflow (including closing/completing all outstanding tasks).

Implementation:

Instead of using a Parallel Activity, a Condition Activity Group (CAG) was used. It included the 2 event handling scopes. The first contained the an activity that handled the update to the current item. The second contained a task replicator. The task replicator was responsible for creating the tasks as/per the add approver workflow modification data. The CAG was then given a declarative rule condition to monitor 2 Booleans (isAtleastOneTaskComplete and isItemUpdated) which are public Booleans set by each activity when a task completes or the item was updated. If those evaluate to true, the CAG terminates the task replicator and closes the workflow successfully.

Adding Approvers:

Once the CAG was implemented, the ability to modify the task replicator and add approvers was lost. This is because the replicator in the workflow (this.taskReplicator1) is not actually executing. The CAG creates a child instance of the task replicator and runs that one. Thus, when the first child is created, we capture that activities parent from its event args which resolves to the active (cloned) task replicator (not its template). When adding approvers, we add to that replicator’s children and not the template (non-executing one).

Clean Up:

However, while the CAG terminated the replicator, it still leaves the tasks. Using the MOSS API with a code activity, we got the task list from the workflow properties and found all tasks relating to the workflow instance running and closed them using the MOSS API. This allowed the tasks to be complete and the workflow to finish.

HOWTO: Get the field text from a SPFieldChoice

The SPFieldChoice usually holds the Int32 part of a choice field that is comprised of 2 values (the ID of the choice and the text of the field that is displayed).  Take the example of a workflow status column.  The ID 2 corresponds to the field value “In Progress”.  Programmatically, this will yield the value of “2”.

sharePointList[“Workflow Status Field”].ToString();

However, if you wanted to do a comparison against the text “In Progress” (for example to take action in your code against the value of a workflow status) you would have to do this:

string workflowProgressStatus = ((SPFieldChoice)sharePointList.Fields[“Workflow Status Field”]).GetFieldValueAsText(sharePointList[“Workflow Status Field”]);

This would yield the string “In Progress” to the workflowProgressStatus variable.

Taking a Virtual Machine from Virtual Server/VPC to Hyper-V

One trick is that you have to follow the steps outlined here:

http://support.microsoft.com/kb/954282

Even if you install the Integration Components for Hyper-V, the VM will not update because the VMBus device will not start (This device cannot start. (code 10)).  What you have to do if you are trying to move is the following:

RESOLUTION

To resolve this issue, follow these steps:

1.  Start the virtual machine.

2.  Click Start, click Run, type Msconfig.exe, and then click OK.

3.  In the System Configuration dialog box, click the Boot tab, and then click Advanced Options.

4.  In the BOOT Advanced Options dialog box, click to select the Detect HAL check box, and then click OK.

5.  Click Yes to restart the virtual machine.

6.  After the virtual machine is restarted, open Device Manager, and then verify that all Integration Services devices are installed.

7.  In Device Manager, expand Computer, and then verify that ACPI x86-based PC is listed as the HAL.

Note You can clear the Detect HAL check box that you selected in step 4. If the Detect HAL check box is selected, the virtual machine takes a slightly longer time to start.

Great Visio Stencils for SharePoint

Just so I don’t forget, here is a link to some great MOSS Stencils for use in Visio.  This comes in great handy since most of what I do nowadays is to provide architectural diagrams for customers and to sketch out information architecture for SharePoint.

http://blogs.msdn.com/maximeb/archive/2007/10/27/updated-visio-stencils-for-sharepoint-2007-site-structures-documentation-version-0-2.aspx

Additionally, here are some great downloads for MOSS including project plans and diagrams for deployment:

http://technet.microsoft.com/en-us/library/cc263199(TechNet.10).aspx

RELEASED: Windows Search 4.0

Here is a link to grab the bits for Windows Search 4.0 for all editions of Windows (including Windows Server 2008, Vista, Windows XP, Windows Server 2003 and Home Server)

http://support.microsoft.com/Default.aspx?kbid=940157

Sysinternals Live

An Internet connected machine can now run all the sysinternals tools.

Sysinternals Live

SharePoint Implementation Guidance

Here is a great post on how to conduct a large scale service-based SharePoint implementation.

QUESTION - I am Program Manager Charged with Implementing SharePoint - Now What-

The great thing about this post is that it goes over different stages of the project and characterizes the reaction and expectations for all involved.

HOWTO: Properly Utilize a WCF Service Proxy Class in Code

One critical thing when using proxy classes is to be aware of how to properly call methods and then close the proxy.  Because the proxy makes HTTP requests, (assuming your service is housed within IIS), unless you call .Close() on the proxy, those requests will be held open in IIS and threads will remain dedicated to them.  Thus, without closing your proxy, you will soon have sopped up IIS resources with repeated calls to the service from your application.  Eventually, you will see an error with text similar to the following:

"TimeoutException was Unhandled"

The request channel timed out while waiting for a reply after <Insert Time Interval Here>

The best practice is to call .Close() on your service proxy after each call.  Call it in a finally block and ensure to check to see if the state on the proxy is .Opened first.

INFO: Visual Studio 2008 Product Comparison Chart

One of the greatest resources for examining the differences between all versions of Visual Studio.

http://msdn.microsoft.com/en-us/vstudio/products/cc149003.aspx

Virtual PC 2007 SP1

Virtual PC 2007 SP1 is available!

http://www.microsoft.com/downloads/details.aspx?FamilyID=28c97d22-6eb8-4a09-a7f7-f6c7a1f000b5&displaylang=en

via Virtual PC Guy's Blog:

Virtual PC 2007 SP1 now available

WSS and MOSS Service Pack Locations

So I don't forget where the links to the Service Packs are:

Here are the links to the WSSS & MOSS hotfixes, and the rollups.  Thanks, Phil!

http://support.microsoft.com/kb/941422

http://support.microsoft.com/kb/948945

http://support.microsoft.com/kb/941274

http://support.microsoft.com/kb/948945

http://support.microsoft.com/kb/949402/en-us

http://support.microsoft.com/kb/949955/en-us

http://support.microsoft.com/kb/950280/en-us

http://support.microsoft.com/kb/950487/en-us

Architecture of the Charran eHome

Charran Home Infrastructure and Media Strategy

This article has been a long time coming. However, I have always been pretty excited to write about what I think is a pretty cool home infrastructure for entertainment and computing. My entire strategy regarding computing at home is to ensure that even if something happens to my physical residence, things can be recovered or restored. Thus, carrying that strategy down into my individual machines and media experiences has been a primary driver for me. So the following are the goals that I had with regard to creating my home infrastructure

The Charran eHome Vision

Access media from anywhere at anytime

The goal is to ensure that from any TV or computer in my house, that I can access music, photos, videos, movies and TV shows (live or recorded). For example, if my wife has friends coming over, I should be able to pause a DVD movie I am watching, move upstairs, and continue watching it without having to fumble with discs and other physical media.

Additionally, if I want to show photos of my family to visitors, I should be able to pull up the most recent photos quickly, by month and year and tag on any device in the house. For example, I should be able to have photo gadgets in Vista, on multiple machines, pulling from the same location for updated photos that are automatically categorized, tagged and stored right from my digital camera when I do an upload.

I also want the software that I do this on to be aware of the storage of the media and not rely on mapped drives, etc. in order to access the content. The software should index the media and present it to users in a quick, searchable and easy to use fashion.

I should not have to experience outages or interruptions of service for my media. Lengthy backup schedules and periods where the media and resources are unavailable should be minimized or eliminated entirely. In other words, I want to be able to get at my media whether its 12 AM and I want to watch a movie or its 5 AM and I want to look at photos that I uploaded from the previous day.

Stop relying on physical media in all forms

I have a begun to wage a personal war on all physical media. I prefer hard disk (solid state if possible) storage to optical media in almost every situation. Back in the late 90's I took all my CD's and made them MP3's (and later wma's) and eliminated the need for finding and locating disks in my house to play music. I’m on a similar quest for DVD's and digital video.

Until the studios, networks and distribution companies and find a unified way of providing a download service to purchase movies that satisfies me, I am relegated to (legally) backing up my DVD's to hard disk and watching them from there. That way I don't have to worry about scratched disks, getting up to change disks, fooling around even with changers (which can go bad if they get out of alignment).

For example, I no longer have to curse myself by walking (all the way) upstairs to get a DVD that we were watching in the bedroom to bring downstairs. Because its on shared hard disk storage, I can access it from any media center (or extender) in the house. Additionally, I don't have to curse myself by fumbling with menus and track skipping DVD's in the car's rear entertainment system. I have a Zune with pre-converted versions of all my family's favorite movies (again, on central hard drive storage in the house) synced to it so I can easily start, stop and change movies.

My remaining physical optical disks (CD's, DVD's) just sit in a cabinet in case I need it at some distant point in the future.

Spousal acceptance factor (including parents and in-laws acceptance factor)

Big one here. My spouse has a very particular need to have things operate easily, intuitively and efficiently. She has little desire or tolerance for learning anything new and negative interest in investigating or troubleshooting when there is problem. If something doesn't work, she gives up and complains, or calls me immediately.

Thus, we both have a vested interest in making things easy for everybody to use.

My eHome should be easy and simple enough for everyone to use it without having to worry about where things exist, where they are saved and how to access them. The software should present options that are easily navigable (i.e., with a remote) so that it feels like she is operating an onscreen TV Guide with no knowledge of the complexity, storage design and network layout.

Have a safety net for everything digital in my house

My goal is to have a home infrastructure that leverages cloud concepts. This includes my computer(s) as well as the place where everything is centrally stored. Back in the late 90's I once lost our digital photo collection. This was catastrophic and since then, I've done everything including backing up periodically to DVD (ugh, the horror and tedium) to integrate an automatic, subscription-based backup system with my home server.

The idea here is that even if something happens to the physical location where my home server lives, our memories and important documents and media will still live and be accessible to me

Remote accessibility

Because I am on the road a lot, I need the ability to quickly access not only my digital media, but also various files and computers on my home network. This includes being able to fix things or retrieve files for my wife as well as check on email accounts, reboot machines, install updates, etc.

This includes terminal service access to all machines on the network as well as any server infrastructure (home server, routers, etc.).

For example, from a hotel, I should be able to take photos, upload them to the photos directory on the home server and have my wife view them via media center, all while I am on the phone with her.

Another example is that I should be able to stream my playlists across the internet to my media player.

Rely on Cloud Computing concepts including Cloud services

Cloud computing is all the rage today and is dangerously becoming a cliché like social networking and service oriented architecture. Not that those concepts are cliché, but they are serious buzz words that get overused in almost every facet of business and technology. However, in my mind, this doesn't diminish the concept and its importance.

In fact, I don't feel comfortable unless my important documents are "in the cloud". What this means is that I don't want to have to rely on physical hardware for the storage and persistence of my important documents and media. I only want to use physical hardware (i.e., a computer) to access, change and remove content and not be solely responsible for storing it and keeping it safe. I follow this concept exclusively at work (using Groove 2007, my internal My Site and network file shares). Thus, I can experience a catastrophic hardware failure and still be able to work and get access to all my critical documents. This concept gets a little difficult with files as big as virtual machines, but I have a cloud plan for those too.

Thus, I wanted my home to reflect this concept. Using technology, my home machines should be gateways to access and change information, but not be responsible for storing it exclusively. That way, if I experience hardware failure, or need to upgrade my OS by wiping down the hard drive, I can to that easily and without excessive consideration.

More importantly, the place where I do store my content, should be "cloud protected". Just like my documents on my My Site at work or on the network file share are protected by frequent enterprise backups, my house should have the same capability. If something happens to the central repository (i.e., my home server) I should be able to rebuild and pull down any lost or damaged files from the cloud.

The Charran eHome Architecture

Below is a physical diagram of my network architecture at my house.

clip_image001[4]

Much like most folk's homes, I have a broadband router hooking me to my ISP. My ISP blocks incoming traffic on port 80, so I have to do everything over 443 if I need to access internal resources securely from the outside (better anyway). My router allows incoming traffic on 443 to be sent to my Home Server so I can access the Home Server web site, get to files, stream media and access my other machines

In addition, I've eliminated hubs and now use affordable Linksys switches along with a single G wireless access point (soon to be N hopefully).

All my client machines are basically access points for documents, images and other media on the home server. Those machines are all running Vista SP1 which has fantastic new capabilities when it comes to file copy efficiency. I would go as far as to say that this infrastructure arrangement would not be feasible unless I had SP1 in place.

Technologies Used

  • Windows Home Server
    • The technologies I use to ensure I am driving towards my eHome vision rests with Windows Home Server. This is a fantastic product and is easily affordable. Basically, it circumvents the need for me to have redundant storage units (like RAID) which have high cost, low manageability and recovery time for the average home user. Windows Home Server gives me remote access to all machines on my network, backs those machines up, represents an easy way to increase storage and offers redundancy in case of multiple drive failures, etc.
    • I basically collected all the smaller hard drives attached to machines throughout my house and stuck them all on a home server (custom built using a really old Dell Dimension with 1 GB of RAM) and created a combined 4 TB pool of storage.
    • Now, I store all my media (backed up DVD's, music (including Zune subscription music), photos, digital home videos from my Xacti camera (no more tapes! Records right to SD card!) and documents here.
  • KeepVault Add-in for Windows Home Server
    • KeepVault charges $100 a year to backup folders on your Windows Home Server. It scans your home server, asks you which folders it should monitor and then backs them up as they change. If you need to restore files, from any machine in the house, you can open the Windows Home Server Console and access your cloud storage files and restore them to the home server with a few clicks.
    • Even if my home server flames and dies, as soon as I rebuild a new home server, I can install the KeepVault add-in, access my backups an start downloading my preserved files to the home server (i.e., photos, music, movies, etc.)
  • Vista SP1
    • Each client machine has Vista SP1 installed with all its new network copy glory. I can use any of these machines to:
      • Access and stream music and movies
      • Work on documents
      • Manage the home server and network infrastructure
      • Download and add new movies and music

The Charran eHome Media Strategy

As you might begin to see, home server is the underpinning of my eHome strategy. As such, it enables me to abandon the need for physical media and use all my machines as access points for my files. Also, it represents a first stage cloud for my home network. In addition, it is a cloud facilitator for my files in that it backs itself up to the cloud (KeepVault), automatically without me having to think about it.

However, there are some tricks I had to do in order to get it so that I could completely abandon physical media. CD's was easy enough. I am a Zune Pass subscriber (my social ID is mougue) and I just point the Zune software to the Music folder on the home server as in the diagram below. However, DVD storage and access was a challenge. Before using the software approach, I bought two Sony DVD changers and hooked them to Media Center. I had about 400 DVD's in there. Until one day I bumped one and it went out of alignment. DVD's got jammed and the entire changer would seize until I took it apart and fished the jammed disks out of the tray, etc., etc.

HOWTO: Make a DVD Library Available from any computer

After about 10 times of doing that, I bit the bullet and backed up all my DVD's to my home server. However, I soon realized that Vista media center assumes that all DVD library functionality is local (meaning the DVD's are stored in a changer that is attached, or that they are in a local folder). This conflicted with my vision of watching movies from any machine in the house.

The MKLINK function in Vista allows you to create a folder that actually points to the contents of a remote folder. Vista media center relies on the DvdInfoCache folder which contains a collection of XML files that comprise the DVD Library. In addition to ripping the DVD's and putting them in the Videos folder on the home server, I had to create a DVD infocache folder with the XML files for the library there.

The way I created the DvdInfoCache XML files is to use the DVD Library Manager (v0.7.0.2) from Florin Birsan. This application allowed be me to use services like Amazon and IMDB to download cover art, descriptions and metadata for the movies. So, what I was able to do is to have a folder structure like as follows on the home server

So, using this tool my videos \\HomeServer\DVDLibrary home server looks and smells like a local DVD library to Vista media center. The challenge now is that I needed to basically make each Vista machine think that the \\HomeServer\DVDLibrary was a local DVD store by fooling the OS into looking at the \DvdInfoCache on the server, instead of its own. I create a batch file that does the following.

CD "C:\Users\UserName\AppData\Roaming\Microsoft\eHome\" mklink /D DvdInfoCache "\\homeserver\videos\DVDLibrary\DvdInfoCache"

Now, all I have to do is launch media center, select DVD library and after a few seconds (it does take time to enumerate a large collection because of the remote nature of the storage), I can see all of my movies, and watch them instantly (no physical disk to load and spin, etc.) from any machine that I run this command on in the house.

When I add a new movie, I upload it to its own folder, use the DVD Library Manager application to download its meta data from external sources and it appears in which ever media center I am using at the time. I can even watch two movies simultaneously on two separate machines.

To round out the full picture of my home network, see the diagram below

clip_image002

To review the key components of my architecture in terms of a media strategy, lets examine all of my media needs in the sections below

Video (Home Videos, DVD movies, Zune videos)

As you can see, I used the method above to store and map my DVD's down to each media center using a remote DvdInfoCache folder stored on the home server's Videos folder.

I also use the MadZ DVD to Zune video converter to easily take a physical DVD and transcode it to Zune format (320X240 I think). That way, I can have all my movies ready to go and simply copy (not transcode) over to the Zune when I want it. No more waiting hours to get a movie onto the Zune. All I have to wait for is the copy through the Zune software.

In addition, I have a folder for my digital video camera to upload home movies to the home server. Using the Windows Live Photo Gallery, I tag and categorize the movies and place them in a folder structure arranged by year and month. I used to burn them to disc and use Windows Movie Maker to make menus, etc. For really special movies, I do that, but for the most part, I don't even bother anymore. I can search, watch and review any home video from any PC/media center in the house (no more disks!).

Again, all this media is protected by my home server KeepVault add-in.

Music (Zune subscription music)

In addition, I use the Music folder to store all of my music content and even sync the all my Zunes to it. I have the Zune software installed on 3 PC's (the current maximum you can have singed in and downloading content) and they index and download to the home server. All that media, playlists, etc. are available on any PC in the house as well as my XBOX 360.

The cool thing here is ubiquitous playlist access. Because Zune monitors my home server music share, my playlist folder which holds all my .wpl and .zpl files (playlists) can be maintained and edited and accessed on any PC in the house.

To illustrate, I have the same set of playlists synching to my Red and White Zune in addition to my Halo Zune. So, I can update a playlist on my desktop media center and have it's changes sync to my Red and White Zune which are attached to my family room media center

Photos

The home server photos folder contains all my digital camera photos. I use any PC in the house to upload photos to the home server. I use the Windows Live Photo Gallery to conduct the import, automatically tag the photos and dump them into a common upload folder.

From there, just like my movies, I categorize them based on a folder structure that is arranged by year and by month.

Other images of giant robots and super heroes :) are here as well.

Lifestyle (where do I watch movies, etc.)

So now that you are aware of my infrastructure, how does someone like my wife make sense of it all and easily leverage it when she wants to show photos to her parents, or watch a movie?

Everything on the home server is indexed and visible through media center. I have a Harmony 880 remote which helps us switch between the Tivo, Comcast DVR and media center. I must stress how important this remote is. Without it, my wife could never do the things she does today. The remote replaces the keyboard and mouse.

As you might surmise, I have a media center (Shuttle XPC - nice, small and scarily quiet) sitting right next to my main television in the family room. It has a DVR output directly to the TV and an SPDIF output going from the sound card to my receiver. I connect my red and white Zune to this media center to sync music and videos from the home server through the Zune software.

The family room media center is configured to launch media center automatically, so we really never see the desktop of this machine (unless I need to do something with the Zune software). My wife can simply find our home videos, photos and DVD movies, as well as TV through media center by using my Logitech Harmony remote. She can even switch to Tivo and back at the touch of a button. The remote knows about the various input settings for each device to make it behave according to the activity.

Thus, she can browse TV, watch a movie and show photos when people come over and even play Zune DRM'd music all through media center.

I also have a media center (Shuttle XPC) in my home office which does the same functions. I can watch movies, recorded and live TV, play music, view photos, etc. on this computer. I use this machine for email, web browsing, RSS reading, banking (using MSFT Money!) and for my video transcoding (to Zune) and backing up DVD's to the home server.

I usually have at least one laptop floating about so that we can work (in addition to my work machine) while watching a movie or doing some activity on the media center. Alternatively, if someone comes by that wants to see a website while we are watching a movie, we can restore the media center application and bring up the web on the big screen.

Again, everything here is backed up to an offsite cloud so that I can retrieve it if anything ever happens. In addition, the home server client is installed on each PC on the network, so if we choose to store a file or two locally, it is backed up as well.

That’s it for now. Next time, I'll most likely talk about how I have each media center synchronizing its recorded TV between each other so that all shows are available everywhere (here's a hint! SyncToy!)

RELEASED: Microsoft SharePoint Administration Toolkit

The new SharePoint Administration Toolkit was recently released as reported here:

http://blogs.msdn.com/sharepoint/archive/2008/04/30/announcing-the-first-release-of-the-microsoft-sharepoint-administration-toolkit.aspx

Two great areas of additional functionality include a batch site manager.  You can now move site collections around including between content databases.  There are also added features for accommodating for alerts, etc.  when there are web application changes to the addressable URL. 

Download links below:

x64: http://www.microsoft.com/downloads/details.aspx?FamilyId=F8EEA8F0-FA30-4C10-ABC9-217EEACEC9CE&displaylang=en

x86: http://www.microsoft.com/downloads/details.aspx?FamilyId=263CD480-F6EB-4FA3-9F2E-2D47618505F2&displaylang=en

More Posts Next page »
Page view tracker