|
|
-
This makes me sad: http://www.techflash.com/seattle/2009/10/rip_mr_burgermaster.html
My own personal connection to Burgermaster is manyfold. My first article for Microsoft Systems Journal (MSJ) was about the Burgermaster segment in Windows 3.X. When it came time to publish the article, they couldn't find a suitable graphic image from the article, so they went with the picture of the Burgermaster sign.
Years later, when I interviewed at Microsoft, the lunch time slot came up and the interviewer asked where I wanted to go. The only place in town I knew the name of was Burgermaster, so off we went! I was subsequently told "Anybody who asks to go to Burgermaster for their interview lunch should just be hired on the spot."
Fast forward another year when I asked my girlfriend to marry me. Where did we go when she said yes? You've got it, Burgermaster.
We still enjoy Burgermaster frequently. Lately though, it's the Seattle location for their tasty breakfast.
|
-
-
In my previous post, I described the requirements and purchasing decisions around a new Windows Media Center based PC, running Windows 7, and acting as a no-touch appliance. When I left off, I had purchased an HP s5100z PC and added an HD 4350 Video board. The box happily booted Vista Home Basic. At this point it was still underneath my desk and using one of my existing desktop monitors, rather than connected to the TV just yet. Let’s pick up the thread and see what happened next.
The first step was to get Windows 7 Ultimate installed. Initially I tried to be clever and install just the Home Premium edition. After all, the goal is to use it as a DVR/Media center, and nothing in this scenario obviously calls out for the extra features and corresponding additional resource usage of Ultimate, right? Unfortunately, Home Premium doesn’t support the Remote Desktop Connection feature. For any non-trivial administrative work on the box, I plan to just remote desktop to it. That’s a requirement that I’d previously forgotten. Thus, Ultimate it is. Foiled!
Next is to install the baseline software. For me, that starts with antivirus/antimalware. Luckily, I had the Microsoft Security Essentials Beta available. Next up was the Windows Home Server Connector software. It gives me the ability to make a machine backup image at any point. I’m running the WHS Power Pack 3 beta on my Home Server, which has extra Media Center awareness built in. I purposefully didn’t put any non-essential software such as Adobe Acrobat Reader on the box. I want to keep the Windows Update (and similar updaters from 3rd parties) to a minimum.
Before going too far, I wanted to ensure basic DVR functionality worked. I love my HDHomerun tuner, as it has ClearQAM support, and lives on my network. Thus, it can be used by any PC in the house, as long as the HDHomerun tuner driver is installed. Downloading the latest August updates from Silicondust.com was a snap, and I fired up Media Center. It readily found the two HDHomerun tuners, scanned for channels, and found ~35 channels. My local Comcast actually has more than these channels, but they need to be added manually. That’s a painful task that can wait for later. I briefly tried to cheat and copy my channel listings and recording schedule over from my previous Media Center box, but ran into some issues. There are some threads on TheGreenButton.com on this, but I wasn’t successful. Regardless, the key point though is that basic DVR functionality is in place.
With most of the software that I needed installed, I then removed all non-essential Windows features using the Control Panel “Programs and Features” page. In particular, “Turn Windows features on or off.” I have no need for games, internet printing, and other assorted items on a Media Center box. So away it goes. Sure, I might not have accomplished that much by doing this, but it made me feel like I was configuring a machine for a very specific role, just like you’d do in Windows Server 2008 and R2.
In keeping with the dumb, simple appliance goal, I didn’t want Media Center running as me, with whatever administrative rights were given to my account when I initially set up the first logon account for the box. As such, I created a new account. Call it “MediaCenterLogon” for the purposes of this discussion. MediaCenterLogon has no admin privileges, and no password. We’ll see why shortly.
At this point, the system is functional. However, there’s more tweaking to be done to make it seamless. For starters, when the box booted, it gave me a logon screen. That’s not good for the spouse satisfaction index. Plus, who wants to hunt down the keyboard every time the machine has to reboot for some reason? So how do you make the MediaCenterLogon account log on automatically? The trick is to use the netplwiz applet. (Just type the name into the Start Menu edit control.) Because MediaCenterLogon has no password, you can check the option to enable auto logon. See here for details.
The box was starting to feel a little more comfortable. Up to this point, I hadn’t really mucked with Media Center, other than to make sure the tuners worked. I next installed the Windows Media Center Connector software (conveniently located in the Start menu.) Having done this, Media Center has a new top level menu item for “Windows Home Server”. From there, you can configure the TV archive, which I set up to automatically copy all recorded TV to the “Recorded TV” share on the Window Home Server box. The box comes with a 320GB hard drive, but that’s not gonna cut it. That’s why I have Windows Home Server!
Closing in on the end goal, I plugged in my old Microsoft eHome remote IR receiver from my previous media center box. Windows picked it up immediately and found the drivers automatically. My old Media Center keyboard worked perfectly the first time. (Well, after inserting a fresh set of batteries.). There was one comic moment when I was randomly pushing buttons and my wife’s laptop sprung to life. I had no idea that it had a Media Center capable IR receiver as well.
So that’s all for this time around. The box is up and (on the surface) running the way I’d like it to. However, there are still a few more hoops to make it truly the ideal experience. Join me next time when I talk about some of the unexpected behaviors and how I worked around them. Remember from part 1 where I talked about low power consumption and sleep? Oh yes, we’ll be talking about that, my very confused Xbox 360, and a few other things.
|
-
Recently I decided it was time to jump back whole hog into the Windows Media Center experience now that Win7 is baked. In these next few posts, I’ll explain the choices I made and the process I went through to get a first class experience.
I had last used the full blown Media Center experience (XP based) in my living room several years ago before moving. After the move I never got around to setting up the hardware, in particular because the machine was noisy and I had no easy location to hide/muffle it.
For awhile we lived with the Comcast DVR, which was manifestly unfulfilling. My first steps in breaking free was to run the beta Windows 7 Media Center on my development box, and watch TV via my Xbox 360 and its Media Center Extender. While this was OK for some scenarios, it didn’t cut the mustard in a couple of key ways. In particular, it didn’t easily let me play back ripped DVDs, with DVD menu content. In addition, it was a little pokey to boot every time you wanted to watch TV.
My primary goal is to have a Media Center “Appliance” experience. It has to “just work” like the Comcast DVR did. With that in mind, I had several other more targeted requirements/goals:
· Inexpensive. This is an appliance that needs to do one thing really well. That’s all.
· Use Windows Home Server for storage. I’ve got acres of storage on the Home Server. Why not use it? Plus, that content can be accessed from any other PC in the house.
· Quiet. It’s in the living room. I hate noise.
· HDMI output. My TV has it. Gotta keep up with the standards.
· Powerful enough. I need to be able to record 2 shows while watching previously recorded content.
· Energy efficient. I’ve become a fanatic about having devices sleep if they can.
· Small. It needs to subtly reside next to my TV without being an imposing presence.
· Play ripped DVDs. I don’t want to transcode, etc… and I want DVD menus.
Now, I’ve got somewhat of an advantage over somebody just starting out with HTPC, as I’ve got a lot of useful infrastructure already. In particular:
· HD Homerun ClearQAM network-based TV tuner
· Samsung DLP TV (1080i)
· A Windows Home Server box with lots of storage and a 1GB NIC.
· The aforementioned XBox360
· CAT-6 throughout the house
· An old XP Media Center IR receiver and Keyboard
· Harmony 880 Remote
So, what to get? I originally looked at netbooks and nettops. While there were some small laptops/netbooks with HDMI output, they either didn’t have the horsepower or were too expensive. There were some interesting nettops such as the Lenovo IdeaCentre Q100, but they either didn’t meet my specs or weren’t available yet.
In the end, I wound up settling on an HP Slimline s5100Z. It’s completely stock, except that I upgraded the CPU one notch to the AMD 5050e. With the EPP program (for MS employees), it came to less than $300. Sure, it comes with Vista Home Basic, but that is easily remedied soon enough.
The onboard video on the s5100z isn’t fast enough, and doesn’t support HDMI. That problem is easily solved by adding in an ATI-based HD 4350 video board. There are several different options for these cards. I ended up ordering one (an ASUS) for $30 from Newegg. It beats the $60 that HP wanted for it as an upgrade.
The HD 4350 line of cards is nice for several reasons:
· Explicitly designed for HTPC use, and has accelerated support for H.264.
· Can go in ½ height form factor, which the s5100z is.
· Passively cooled in most incarnations
Installing the HD 4350 was a breeze. Just removing a few screws to switch out the normal bracket for the included half-height bracket.
Altogether, even accounting for tax, shipping, etc… the whole thing (PC + video board) cost less than $400.
Next time, I’ll talk about the software side of the experience, going from the pre-installed Vista Home Basic screen to the fully tuned Win7 Media Center Appliance that it is today.
|
-
This is truly cool stuff. VHDs are no longer "just" a virtualization file format. They're baked into the OS. Yes, you can boot an entire OS from a single file. You can create a VHD from the Disk Management Console without having Hyper-V installed.
Devs will love it because it vastly simplifies testing on different OS configurations. Of course, you can do this with Hyper-V already with multiple VMs, but now you have the same goodness in a non-virtualized setup as well.
IT folks will love it, as it dramatically simplifies data center management. Instead of tracking which OS and what patches a machine has, you can just have a set of reference images (VHDs). Drop any number of VHDs on the machine, tell it to boot one of them, and you know exactly what you're running. Want to change to a completely different setup? Just point at a different VHD file and reboot. No need for separate disk partitions, OS reinstalls, etc...
Note that to boot VHDs natively without Hyper-V, the installed OS must be Windows 7 or Windows Server 2008 R2, but that's the expected price of progress. See the link for the exact details.
http://blogs.technet.com/virtualization/archive/2009/05/14/native-vhd-support-in-windows-7.aspx
|
-
I've been waiting for quite a long to post this information. Hyper-V now supports systems with up to 64 cores (we call them LPs). This is 4x the number supported in the original release just 9 months ago.
The devs on my team write the code and did the tuning to make this possible. It was our biggest stretch goal, and we nailed it. There was a substantial amount of work that went into it. Not the least was wrestling with machines that support that many cores. They live in racks, draw enormous armounts of power, require enormous amonts of storage, can take hours to boot, and are very finicky about any changes to configuration. They're also quite expensive, especially when considering thre crazy amounts of memory they need to do use work.
It was an awesome sight, working with a machine running 384 VMs using 64 procersss and 256 GB of RAM. The 384 VM value is a tested, supported limit, and not an architectural limit, so you can read between the lines there.
He'res the official link for more info:
http://blogs.technet.com/virtualization/archive/2009/05/12/hyper-v-in-ws08-r2-release-candidate-bringing-more-to-the-table.aspx
|
-
If you're still using the original Hyper-V that runs as part of Windows Server 2008, this is a big deal.
While Windows 7 is getting all the attention, the equivalent server version (Windows Server 2008 R2) is also available as a release candidate. This is how you'll get the latest and greatest Hyper-V.
As the dev lead for perf/scale development on the hypervisor, I can assue you that the improvements in Hyper-V in this version are substantial. Among the announced things are support for Intel and AMD's virtualization aware CPUs, which provide substantial performance improvements.
Plus, Hyper-V has a few more awesome capabilities up its sleeve. Stay tuned. :-)
Here's the official team blog link:
http://blogs.technet.com/virtualization/archive/2009/05/06/microsoft-hyper-v-server-2008-r2-release-candidate-free-live-migration-ha-anyone.aspx
|
-
My new favorite "Nerd" feature in Win7 involves the Resource Monitor (not surprisingly.) It's mesmerizing at times...
Ever had a program get "stuck", where it seems to be quite obviously waiting for something, but you don't know what? Install programs that invoke child processes are notorious for this.
In the Win7 Resource Monitor app, in the Overview or CPU tabs, you'll find the list of running processes. If a process is "stuck", it'll be highlighted with red text. This isn't the cool part though.
You can right click on any process, and in the context menu, you'll see "Analyze Wait Chain...". Click that. In a nutshell, it lists the threads in a process that are blocking on a resource currently owned by another process. Better still, it tells you who the owning process/thread is! With that info, you can take corrective action, such as killing the child process that's not giving up the resource.
You can find more about wait chains here: http://msdn.microsoft.com/en-us/library/ms681622(VS.85).aspx
|
-
While the Windows 7 UI is currently getting most of the "What's new?" attention, I'm a system guy at heart. I gravitate towards the tools and features that let me understand what's going on. Why does program 'X' take so long to load? Which of my dozens of services are sucking up the CPU? Which app is pounding on the network connection?
With the Windows 7 Resource Monitor, it's trivial to get answers to these sorts of questions. If you're familiar with SysInternals tools like ProcMon and ProcExp (and if not, you should be!), you know that a wealth of knowledge is available. However, they're still pretty techie for most folks.
In Windows Vista, the Resource Monitor made great strides over prior methods (e.g., perf counters and Task Manager). But the Windows 7 Resource Monitor... all I can say is "Wow!" Left to my own devices, I'd play with it for hours, trying little experiments and watching how they show up...
At the topmost level, Resource Monitor has 4 tabs:
- Overview (summary of CPU, Memory, Disk, and Network)
- CPU
- Memory
- Disk
- Network
The overview tab gives the "rolled" up view, similar to the Vista Resource Manager. The remaining tabs drill into more details in their corresponding area. For instance, in the CPU tab, you can see a CPU usage breakdown by service. Likewise, on the Disk tab, you can see a breakdown of disk activity by process. Plus, it's trivial using checkboxes to filter the views to specific processes.
Resource Manager can be found under All Programs | Accessories | System Tools | Resource Monitor, as well as various other shortcuts.
Highly recommended. Check it out!
|
-
While there's much press coverage about Windows 7 hitting beta, the availability of the Windows Server 2008 R2 beta is also big news for me personally.
In particular this beta brings the first public look at the next iteration of Hyper-V. There's several very cool new features. Putting aside any marketing spin, two big features I'm glad to trumpet are:
Support for Hardware Address Translation: Basically, this means letting the CPU handle address translations across VMs, rather than the Hyper-V code doing page table remapping in software. If you have the right CPU (lookup "EPT" for Intel, "NPT" for AMD), you should see some nice performance gains in most scenarios. Most "current" AMDs have NPT already. Intel introduced EPT with the i7 (Nehalem).
Live Migration: The ability to move a VM running on one machine to another. The technology behind this is very impressive, and crazy complicated.
Of course, there are many more features than this. More details can be found in this Powerpoint presentation.
|
-
I've been somewhat quiet in my blog lately, posting vary sparsely in 2008. Consider this the "reset", wherein I resolve to be more frequent in my updates.
In a blog post over two year ago, I mentioned that I'd joined a new group at Microsoft, and was no longer working in Visual Studio. While I was necessarily vague at the point, I can now fill in some of the details, and tell you what's new.
From early 2007 through August of 2008, I worked on Red Dog, now known to the world as Azure. It was a complete change of course for me, and I learned an amazing amount. Up to that point, my career had focused on debugging, diagnostics, operating systems and other "low level" topics. I had no real experience with big distributed systems, data centers, "cloud computing" and the like.
On the Red Dog project, I headed up a team that owned eventing, diagnostics and reporting for the Fabric Controller. We literally started at square zero, and tried to build a platform (Azure) that finally had tooling and diagnostics baked in from the beginning, rather than added on as an afterthought. Suffice it to say, the tools and approaches for distributed system are quite different from the low level SysInternals tools.
I left Red Dog in August 2008 to join the Hyper-V team. While Red Dog uses a hypervisor, it's not the exact same code base as Hyper-V has today, although they do have a shared lineage. While on Red Dog, I had only minimal exposure to the hypervisor side of the project. Coming to the Hyper-V team was a big jump back to my "low level" roots.
On the Hyper-V team, I lead a group of developers focused on the performance and scaling aspects of the Hyper-V hypervisor component. It's fun to be down in the bowels of operating systems and advanced CPU features. We tackle big issues like scaling Hyper-V to 32 processor cores and beyond. We deal with issues that most folks aren't even aware of, such as NUMA (Non-Uniform Memory Access), which makes a big deal in how you set up VMs and how you schedule processor cores to run in those VMs. Another area my team owns is address space management. Imagine the complexity of any given OS's page table management. Now consider that the hypervisor has to multiplex every VMs page table view into the actual page tables used by the hardware. And be really fast about it, with minimal lock contention because big server machines have lots of cores. Fun stuff!
So that's what I've been up to. I expect future posts will have more meaty technical content, but I felt the need to set the starting context appropriately.
|
-
Stealing a page from Mark Russinovich's blog here.
I've been going batty trying to play ripped DVDs residing on my WHS box through my XBox 360. I'd done all the due research, and had followed all the various directions around making symbolic links on my MCE box, installing transcoder.dll, etc... I got the DVD Library to show up on the 360, but whenever I tried to play the file, I received the dreaded "video decoder error".
Having some free time on a Saturday, I decided to not come for air till I had it working.
My first step was to run Process Monitor on my local (Media Center) machine, and collect file activity during a request to play the DVD. I could see in the EHShell process where it successfully opened the .MPEG file on the local machine. However, the .MPEG file is just a link to the actual .VOB file on the WHS share. EHShell was failing to open the .VOB file on the server, even though I could see/copy the exact same file from a command prompt. The error for the CreateFile call was LOGON_FAILURE.
At that point, I realized that EHShell was running as the MCX2 account, rather than as me. OK then! that could explain why the file couldn't be accessed.
My first attempt to fix this was to go to the WHS console, and add "Read" access for the "Guest" account. Sadly, no joy. Restarting everything still resulted in the same LOGON_FAILURE.
Eventually, I poked around more in the WHS console, and noticed that the Guest account was disabled. That is, the "Shared Folders" view happily let me enable Guest access to folders, even though the Guest account wasn't active. Running through the "Enable Guest account" wizard got everything working, and I startled my wife with the whoop of joy I let out.
Maybe this should have been obvious to me sooner, but I can't recall seeing anything about this while hunting around, trying to figure out why it worked for everybody else, but not for me.
So, to summarize, if you're trying to play ripped DVDs from a WHS share using your XBox360 as a Media Center Extender, try making sure that the Guest account is enabled on your WHS setup.
Disclaimer: I'm not a Media Center Extender expert. I posted this info here to hopefully spare at least one person the pain I went through. :-)
|
-
I was quite sad to hear the news this morning (via email) that my friend, Paul DiLascia has passed away suddenly.
I don't know all details yet. I've heard he passed away on Sept. 3rd, but the MSJ/MSDN network just heard of it in the last day or so. Some details are still unknown by me at this point in time.
Paul preceded my book in the "Andrew Schulman Programming Series" with this book, Windows++, one of the first serious attempts at encapsulating the complexity of Windows 3.X programming with C++ classes.
Subsequently, we both ended up writing columns for Microsoft System Journal (MSJ), which subsequently was renamed to MSDN magazine. Paul had the C++ column, while I did "Under The Hood".
Paul and I corresponded frequently, mostly about crazy reader questions, but sometimes on technical issues. Since we lived only about 30 minutes apart, we'd often have MSJ subsidized "columnist lunches", where Paul, John Robbins, James Finnegan and myself could commiserate about the life of a technical column writer. A few great column ideas were born from these lunches, including my "Just enough Win32 Assembly Language to Get By", which Paul inspired.
Paul was the longest continuously running columnist in the magazine's history. I was the second for a long while. Paul was perpetually 12 months ahead in his streak. When I got to 60+ months without missing a column, Paul was still going strong at 72 months, and kept on going long after I left that race.
Paul was an amazing technical writer, and one with the gift of adding humor to what could be an otherwise dry topic. Eric Maffei once told me that without humor, MSJ would read like "Microsoft Pravda". Paul's contributions were a big part of why it wasn't.
|
-
Last night my wife took me to the Met for dinner. Midway through dinner I glanced over at the adjoining table, and was quite surprised to see Jim Allchin, along with two other people.
And earlier in the day, I actually sat at the same table with another celebrity: Chris Sells, who was generously taking me out for lunch.
|
-
Likely you've already seen this elsewhere, but if not, WHS has RTMed!
http://blogs.technet.com/homeserver/archive/2007/07/16/ship-it.aspx
Yes, it's been awhile since I posted. I've been running the "nearly" RTM bits for about a week now. Prior to this, my server was down for a month as I moved houses and am slowly rebuilding my computing infrastructure.
In other news of my WHS box, I finally figured out why it was so damn noisy. Wasn't the power supply after all. The box has 4 fans, two of which are well hidden. Good old "Divide & Conquer" debugging helped me figured that out.
Next stop: Frys to pick up some bigger, yet quieter case fans.
|
|
|
|