<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>16.7ms in the life : Musing</title><link>http://blogs.msdn.com/peterrosser/archive/tags/Musing/default.aspx</link><description>Tags: Musing</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Thoughts on software complexity</title><link>http://blogs.msdn.com/peterrosser/archive/2006/06/02/SoftwareComplexity.aspx</link><pubDate>Sat, 03 Jun 2006 07:06:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:615591</guid><dc:creator>Peter Rosser</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/peterrosser/comments/615591.aspx</comments><wfw:commentRss>http://blogs.msdn.com/peterrosser/commentrss.aspx?PostID=615591</wfw:commentRss><wfw:comment>http://blogs.msdn.com/peterrosser/rsscomments.aspx?PostID=615591</wfw:comment><description>&lt;P&gt;If you've ever tried to create a software application of any decent size, you have probably realized that what works with small tools more often than not does not scale well to larger sizes.&amp;nbsp; There are whole books written about how to scale up and out, new languages and technologies invented to help manage it, and millions of dollars in educational budgets spent every year to achieve that elusive goal.&lt;/P&gt;
&lt;P&gt;And yet, the landscape is still rife with examples of poorly designed software.&lt;/P&gt;
&lt;P&gt;A significant part of the&amp;nbsp;problem is not that engineers are not smart enough--it's that we outsmart ourselves.&amp;nbsp; The conventional wisdom is that humans can store 7 ± 2 primitives (e.g. numbers) on the top stack of short-term memory.&amp;nbsp; The number skews higher for strongly associative items, and vice versa.&amp;nbsp; We can store fewer abstract items, often only 2 or 3 at a time.&amp;nbsp; The issue is not one of comprehension, it's one of focused retension.&amp;nbsp; When the number of data items in a class exceeds our capacity to retain them at once, the brain tends to move the perceived "less important" fields/properties into peripheral storage.&amp;nbsp; This, I think, leads to not fully comprehending the interactions in the class.&amp;nbsp; We engineers like to think of ourselves as intelligent, and that we can understand very complex ideas.&amp;nbsp; This may be true, but it misses the point; the point of software engineering is to create&amp;nbsp;reliable, performant, maintainable software.&amp;nbsp; It is &lt;EM&gt;not&lt;/EM&gt; to create complex applications.&lt;/P&gt;
&lt;P&gt;Well, there's the problem, isn't it?&amp;nbsp; In order to create the really cool applications, you must have complexity.&amp;nbsp; It's simply unavoidable, especially given the advanced competition for consumer dollars.&amp;nbsp; You can't very well create a next generation RPG that has realistic physics, with a "real" economy, kickass graphics and brutally smart AI without complexity.&lt;/P&gt;
&lt;P&gt;Or can you?&lt;/P&gt;
&lt;P&gt;Actually, I believe the answer is that you can, at least the bad kind of complexity that causes the pain.&amp;nbsp;The key is differentiating between behavioral complexity and system complexity.&amp;nbsp; Behavioral complexity is the aforementioned features like smart AI, or realistic physics.&amp;nbsp; Those sorts of things are monstrously difficult to get right, but that's not what holds back the very large application development projects.&amp;nbsp; The major cause for schedule slips, regressions, out-and-out bugs, and general angst is system complexity.&lt;/P&gt;
&lt;P&gt;Before I go on, I'd like to define what I mean (yes, I do get to hijack words like this) by&amp;nbsp;system complexity: &lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;&lt;FONT style="BACKGROUND-COLOR: #f5f5dc"&gt;System complexity a property of a system that&amp;nbsp;is directly proportional to the difficulty one has&amp;nbsp;in&amp;nbsp;comprehending&amp;nbsp;the system&amp;nbsp;at the level and detail necessary to make changes to the system without introducing instability or functional regressions. &lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;In other words, the higher the system complexity, the harder it is to upgrade, maintain, and&amp;nbsp;develop the system.&amp;nbsp;Whether the system is a single class, an object library, an inheritance heirarchy, or an entire application, someone "schooled in the art" of software engineering should be able to understand it, given a reasonable time to examine the system.&amp;nbsp; This ability should &lt;EM&gt;scale through the system.&lt;/EM&gt;&amp;nbsp; When one examines a particular object, it should be apparent without examining the private implementation details how to use it.&amp;nbsp; From top to bottom, from bottom to top; the entire system should be accessible to the non-super-geniuses out there.&amp;nbsp; What goes for good UI design also goes for good C++, C# and COM design: your target audience should be able to use it without extensive systems training.&lt;/P&gt;
&lt;P&gt;System Complexity is what makes the Mythical Man Month true.&amp;nbsp; It's what keeps that guy who wrote the accounting system from scratch in 1986 employed.&amp;nbsp; It's what causes games, productivity applications, and even (some might say especially) large operating system projects to slip their schedules.&lt;/P&gt;
&lt;P&gt;So what can you do about it?&amp;nbsp; The first step to recovery is admitting you have a problem.&amp;nbsp; Pedantic, but true.&amp;nbsp; Getting back to the point I tried to make earlier about engineers--we like to think we are smart.&amp;nbsp; Egos loom large in the software industry, and often with good reason.&amp;nbsp; One of the smartest developers I have come across worked on a critical piece of the code for several years, and guarded his territory jealously.&amp;nbsp; Make no mistake, this guy was brilliant--and he knew it.&amp;nbsp; To make a long story short, when he left, the code he left behind was an engineering marvel [he says wryly] that no one else understood.&amp;nbsp; Oh, we know what it does, but there's a crucial difference in understanding what something does, and grokking fully how it does it.&amp;nbsp; Tracing execution paths through this code is difficult, and 1200-line methods named "Run" are common.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;The author understood it all, or said he did, but my opinion is that he was fooling himself, too.&amp;nbsp;Once you get a piece of the system working, after all, you don't need to touch that piece again unless the design changes, a bug is found, or something like that.&amp;nbsp;Over time, though, people started to notice that even small fixes in this particular area would touch a dozen or more files, and churn lots of code.&amp;nbsp; That's a symptom of high system complexity; he would go in to make the fix, then discover that 100 variables influenced the behavior, or the implementation in one area was strongly dependent on the implementation in another, or most often, both.&amp;nbsp; But since the author had traveled this area so much, he was able to turn around the fixes in an acceptable timeframe, so he "got away" with it.&lt;/P&gt;
&lt;P&gt;It's no surprise that when the author decided to move on to other things, as employees often do, that we had a tough decision to make.&amp;nbsp; Do we maintain this code that's &lt;EM&gt;working&lt;/EM&gt;?&amp;nbsp; Do we refactor?&amp;nbsp; In the end it came down to pragmatism and schedule: the problem was recognized, and we chose to refactor the system in measured stages, minimizing the risk to the product and getting back to a good, maintainable state.&lt;/P&gt;
&lt;P&gt;That's all I have time for today... my build is done, so back to work I go.&amp;nbsp;Windows Vista waits for no man!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=615591" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/peterrosser/archive/tags/Coding/default.aspx">Coding</category><category domain="http://blogs.msdn.com/peterrosser/archive/tags/Musing/default.aspx">Musing</category></item><item><title>Captioning Support Sucks</title><link>http://blogs.msdn.com/peterrosser/archive/2006/02/19/Captioning-Support-Sucks.aspx</link><pubDate>Sun, 19 Feb 2006 12:42:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:534977</guid><dc:creator>Peter Rosser</dc:creator><slash:comments>6</slash:comments><comments>http://blogs.msdn.com/peterrosser/comments/534977.aspx</comments><wfw:commentRss>http://blogs.msdn.com/peterrosser/commentrss.aspx?PostID=534977</wfw:commentRss><wfw:comment>http://blogs.msdn.com/peterrosser/rsscomments.aspx?PostID=534977</wfw:comment><description>Looking back at the bugs we've fixed over the last several months, we certainly have had a good share of captioning issues, especially with regards to the size of the codebase compared to  the "video" code.  Surprisingly, we don't hear from users a ton when captions don't work properly, but maybe that's because a minority of the users actually use them in the first place.

I'm not usually so negative, but I'm just annoyed at captioning today.  The following is a poorly thought-out rant on the subject.

......(&lt;a href="http://blogs.msdn.com/peterrosser/archive/2006/02/19/Captioning-Support-Sucks.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=534977" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/peterrosser/archive/tags/Musing/default.aspx">Musing</category></item><item><title>A Brief History of ATSC in Media Center</title><link>http://blogs.msdn.com/peterrosser/archive/2006/02/03/AtscInMce.aspx</link><pubDate>Fri, 03 Feb 2006 11:09:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:523878</guid><dc:creator>Peter Rosser</dc:creator><slash:comments>26</slash:comments><comments>http://blogs.msdn.com/peterrosser/comments/523878.aspx</comments><wfw:commentRss>http://blogs.msdn.com/peterrosser/commentrss.aspx?PostID=523878</wfw:commentRss><wfw:comment>http://blogs.msdn.com/peterrosser/rsscomments.aspx?PostID=523878</wfw:comment><description>&lt;p&gt;In the beginning there was NTSC in Freestyle (Media Center 2002), and it was good.&amp;nbsp; Media Center supported the #1 market and proved that computers could do a great job recording television, pausing Live TV, and organizing recordings.&amp;nbsp; With support for one tuner under our belt and an enthusiastic user base, we moved forward with Harmony (Media Center 2004) to a more mature, flexible and polished product that supported&amp;nbsp;dual NTSC or PAL tuners, opening up the European, Asian and Australian marketplaces.&amp;nbsp; A few intrepid souls figured out how to hack together ATSC support into Harmony using little-known interfaces and scarce hardware like the VBox 110.&lt;/p&gt;
&lt;p&gt;Between the release of Harmony and Symphony (Media Center 2005), ATSC demand increased by leaps and bounds, though still smaller than the NTSC base by far.&amp;nbsp; To this day, only a very small percentage of Media Center users actually use ATSC, although it's a matter of some discussion whether that number is small because the number of HDTVs is small, or because Media Center's support is... less than optimal.&amp;nbsp; In any case, by the release of Symphony the user community was clamoring for ATSC support without hacks, and was disappointed when Symphony shipped without it.&amp;nbsp; An update quickly followed, though, and Symphony Rollup 1 with HDTV Support was released as a free update through Windows Update and the Microsoft Download Center. The changes in Emerald (Rollup 2) and Diamond (Windows Vista) did/will not not substantively change the architecture of ATSC, so what we have today will more or less be the way it works for another couple of years. &lt;/p&gt;
&lt;p&gt;&lt;font size=4&gt;&lt;em&gt;••• design decisions&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;When we (speaking in generalities here, since I was not a member of the team at the time) first investigated how to include ATSC into the product, there were several major hurdles standing in the way.&amp;nbsp; The first was a consequence of our decision to use the VMR (Video Mixing Renderer) instead of the deprecated Overlay Mixer for rendering video.&amp;nbsp; Overlay rendering differs from mixing in the way that video is prepared for display.&amp;nbsp; In overlay mode, the video is literally painted over the top of whatever else is being rendered.&amp;nbsp; In mixing mode, "surfaces" with video or other graphics are blended together, either in software or hardware-accelerated, prior to rendering on the monitor.&amp;nbsp; The advantage of mixing mode is greatly increased flexibility in what you can display at the cost of performance.&amp;nbsp; It takes a lot more horsepower to process all those pixels, especially with alpha (transparency) and 3D effects.&amp;nbsp; 99% of the video hardware on the market today uses a form of overlay mode, which drastically reduces the hardware requirements (e.g. no 3D hardware required), but hamstrings them when viewed side-by-side with the sort of effects you can get with mixing.&amp;nbsp; The semi-transparent menus on top of video that you see in Media Center that give it such a cool look are just not possible with overlay mode.&amp;nbsp; All that alpha blending and those 3D effects come at a hefty cost, though.&amp;nbsp; Media Center has to work many times harder to get the video to the screen, even when &lt;i&gt;no&lt;/i&gt; special effects are on-screen at the time.&amp;nbsp; That, in a nutshell, is why Media Center requires not just an OK video card to shine.&amp;nbsp; And a faster CPU.&amp;nbsp; As a result of the increased power needed to render video, and with the hardware available to consumers in 2000-2002, it wasn't really feasible to offer HD with the first couple of releases.&lt;/p&gt;
&lt;p&gt;Even if the video could keep up (which it could on higher-end systems, even in 2002), there was another difficulty: Guide data.&amp;nbsp; The problem is that when you get multiple lineups (the term we use for the programming information associated with the set of channels available on a given medium in a geographical area), merging them into a single lineup and making it easy for the user is not an easy solution.&amp;nbsp; The decision was made to punt it until demand was increased, and to stick with a simpler homogenous lineup, rather than the more advanced heterogeneous lineup that would be required to support both NTSC and ATSC on a single system.&amp;nbsp; The market of people that have more than one TV provider is, after all, not that large, and we wanted to get it right for the most people we could.&lt;/p&gt;
&lt;p&gt;&lt;font size=4&gt;&lt;em&gt;••• support for ATSC gathers steam&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;A vocal minority of the user community, along with a large majority of the eHome TV product team, were not pleased with the lack of support.&amp;nbsp; We got the funding to put ATSC in the product, as long as we could fit it into the schedule and without major risks to the architecture of Media Center's TV and PVR functionality.&amp;nbsp; With compressed schedules the norm, and the development and testing staff already deeply into a bad work/life balance, many options were considered for getting ATSC out to users.&amp;nbsp; What was finally implemented is a good first stab at doing it, with a few facets that are, um, less than what we'd like them to be.&amp;nbsp; Since we did not have ATSC-specific listings available through our Guide data provider for many, many areas, we looked instead at reusing the data available from existing analog lineups via "mapping".&amp;nbsp; Since ATSC channels are in a completely different format (like 13-1 or 9-5), and to avoid putting a new button on the remote (requiring a redesign), ATSC channels are renumbered in the UI.&amp;nbsp; The scheduling/PVR conflicts were just ignored, leaving it up to the user to say "only record this channel", omitting support like "record this in HD if you can, but get it in SD if not".&amp;nbsp; The end result was a pseudo-heterogeneous lineup support that we have today.&amp;nbsp; You do get the additional ATSC lineup merged into your Guide, but the analog source is still required--you cannot have ATSC without NTSC today.&lt;/p&gt;
&lt;p&gt;&lt;font size=4&gt;&lt;em&gt;••• the current state of things&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;During First Run (the initial Media Center setup wizard), or TV Signal Setup, we detect whether you are in a region that supports ATSC, and then detect if you have a compatible ATSC card installed (or for Emerald, up to 2 ATSC cards).&amp;nbsp; After configuring your SD tuner, ATSC is configured as an adjunct to the "primary" analog tuners.&amp;nbsp; If you choose an analog, sans-STB (set-top box) cable lineup for your analog tuners, then that data is what's available to ATSC to map to its channels.&amp;nbsp; The same goes for satellite or OTA (off-the-air/broadcast) lineups.&amp;nbsp; Only with digital cable lineups do you usually get the full Guide data to assign to your ATSC channels.&lt;/p&gt;
&lt;p&gt;To assign listings to the ATSC channels in the lineup, we run a heuristic match against the available channel metadata, and try to get a "best-fit" match for existing channels to the new ATSC channels.&amp;nbsp; For example, if there is a channel "KOMO-DT" in the primary lineup, it can be matched to the known ATSC channel KOMO-DT on 4-1.&amp;nbsp; In some areas, the match can't be made automatically, but you can go to the Guide settings (Settings--&amp;gt;TV--&amp;gt;Guide--&amp;gt;Edit Digital TV Listings) and manually associate the listings of an existing channel to the ATSC channel.&amp;nbsp; Basically what you are doing is saying "this channel that exists on my "primary" lineup has identical programming to that ATSC channel".&amp;nbsp; It works best with digital cable lineups because they carry all of the local OTA ATSC channels on their networks (due to Federal must-carry laws).&amp;nbsp; To get the minor channels (where the "minor channel" &amp;gt; 1, e.g. KCTS-DT2 on 9-2 in Seattle), you have to add them to your lineup manually using Add Missing Channels, and then map them to listings using Edit Digital TV Listings.&lt;/p&gt;
&lt;p&gt;The end result of all of this is a unified lineup that can be presented to the user in a single Guide grid.&amp;nbsp; ATSC channels are assigned numbers like 1041 for channel 4-1, and slotted in where they fit best.&amp;nbsp; If your primary lineup already has a channel 1041, we look for another block of numbers to put the ATSC channels.&amp;nbsp; A side-effect of this is that if your primary lineup is changed--like if Comcast decides to add a channel 1000 to their lineup--the ATSC channel numbers may get reassigned to another empty block.&amp;nbsp; Personally, I'd like to implement a better solution, but as I've said before, we Americans are unnaturally attached to our channel numbers.&amp;nbsp; Most would just give you a blank look if you suggested that we don't even really &lt;i&gt;need&lt;/i&gt; channel numbers at all.&amp;nbsp; Not when you have a good enough search/filter mechanism, anyhow.&lt;/p&gt;
&lt;p&gt;&lt;font size=4&gt;&lt;em&gt;••• the days to come&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;For the Diamond release, we have announced support for OCUR (OpenCable Unidirectional Receiver) tuners, which will allow native tuning of digital cable signals, with CableCard support (for premium channels like HBO).&amp;nbsp; This includes HDTV signals, which should be good news to most users.&amp;nbsp; More people pay for TV service now than don't, and if you own a Media Center, you are about 20 times more likely to have cable or satellite service than not.&amp;nbsp; Roughly.&amp;nbsp; OCUR support probably means (definitely, for Diamond) that we won't be supporting heterogeneous lineups anytime soon, which is a shame, but hard to make a business case against.&amp;nbsp; Why spend time and treasure on something that most people won't use, and could possibly destabilize the entire product?&amp;nbsp; That's a little hyperbolic, but the onus is on the people who want the feature to justify it.&lt;/p&gt;
&lt;p&gt;We announced a deal with DirecTV where we will directly support their newest STB in Media Center, just like--or very similar to--the OCUR does with digital cable.&amp;nbsp;&amp;nbsp;The field is finally opening up and we're getting to a point where we can offer our users very attractive options for "traditional" TV services.&amp;nbsp; The European market, or more precisely, the non-U.S./S.Korea/Japan market, has already standardized (for the most part) on a fairly sensible broadcasting standard--DVB--which we are improving our support for with every release.&lt;/p&gt;
&lt;p&gt;Non-traditional video services are also booming in popularity, with Online Spotlight partners offering more movies and other multimedia content for free (in many cases) or on an ala-carte basis, directly competing with PPV services offered by traditional TV providers.&amp;nbsp; Apple has changed course on its "we'll never get into the PVR business" policy with iTunes video (and their toe-dip product Front Row, which is a pretty spiffy little QuickTime automation script), and The Market is scrambling all over itself to get on the bandwagon.&amp;nbsp; Internet TV is coming, just as soon as we (as in "we the market", not necessarily "we at Microsoft") figure out what Internet TV is.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=523878" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/peterrosser/archive/tags/Media+Center/default.aspx">Media Center</category><category domain="http://blogs.msdn.com/peterrosser/archive/tags/Musing/default.aspx">Musing</category></item><item><title>16.7ms = free software (a silly contest)</title><link>http://blogs.msdn.com/peterrosser/archive/2006/01/05/SillyContest.aspx</link><pubDate>Fri, 06 Jan 2006 05:34:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:509936</guid><dc:creator>Peter Rosser</dc:creator><slash:comments>30</slash:comments><comments>http://blogs.msdn.com/peterrosser/comments/509936.aspx</comments><wfw:commentRss>http://blogs.msdn.com/peterrosser/commentrss.aspx?PostID=509936</wfw:commentRss><wfw:comment>http://blogs.msdn.com/peterrosser/rsscomments.aspx?PostID=509936</wfw:comment><description>&lt;P&gt;Sometimes being obtuse is it's own reward, but this time there's something in it for you if you know what "16.7ms" is referring to.&amp;nbsp; I'm curious enough to see that I'm willing to shell out my own hard-earned cash to the first non-Microsoft employee that figures it out.&amp;nbsp; Post your guesses to my Comments section, please.&lt;/P&gt;
&lt;P&gt;Your choice of:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Perfect Dark Zero (Xbox 360) 
&lt;LI&gt;Kameo&amp;nbsp;(Xbox 360) 
&lt;LI&gt;Project Gotham Racing 3 (Xbox 360) 
&lt;LI&gt;Age of Empires III Collector's Edition (PC) 
&lt;LI&gt;Dungeon Siege 2 (PC) 
&lt;LI&gt;Fable The Lost Chapters (PC)&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;For the person who comes up with the most amusing, albeit incorrect,&amp;nbsp;translation, I'll award a &lt;A href="http://pegasi.com/vista_tumbler.jpg"&gt;Windows Vista stainless steel tumbler&lt;/A&gt;!&lt;/P&gt;
&lt;P&gt;...and just like that, we have a silly contest!&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Update: We have a winner for the "real" definition (16.7ms == 1/60 second, the time for 1 field of interlaced NTSC/ATSC video), but I'll keep the silly side of it open until tomorrorow (1/6/2006) at 5 PM PST.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Update 2: Entries are now closed, thanks!&amp;nbsp; I will be considering each and every one based on their merits, feed it through my ultra-advanced HumorSensor 5000, double-check the results with the IOC, and the UN Human Rights Commission, and present the results as soon as is humanly possible.&amp;nbsp; Or I may just look 'em over and choose the one that makes me laugh.&amp;nbsp; Either way, I'll let you know...&lt;/EM&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=509936" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/peterrosser/archive/tags/Musing/default.aspx">Musing</category></item><item><title>Windows Insomnia: Why Won't My Computer Go To Sleep?</title><link>http://blogs.msdn.com/peterrosser/archive/2006/01/04/WindowsInsomnia.aspx</link><pubDate>Thu, 05 Jan 2006 08:18:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:509518</guid><dc:creator>Peter Rosser</dc:creator><slash:comments>7</slash:comments><comments>http://blogs.msdn.com/peterrosser/comments/509518.aspx</comments><wfw:commentRss>http://blogs.msdn.com/peterrosser/commentrss.aspx?PostID=509518</wfw:commentRss><wfw:comment>http://blogs.msdn.com/peterrosser/rsscomments.aspx?PostID=509518</wfw:comment><description>&lt;P&gt;One of the issues I am investigating for a fix relates to the auto-suspend feature in Windows.&amp;nbsp; The way it's supposed to work is you set a time in the Power control panel (Control Panel --&amp;gt; Performance and Maintenance --&amp;gt; Power Options) that controls how long the computer waits until it goes into "standby" or "suspend".&amp;nbsp; Whether that is S2 or S3 depends on your BIOS settings.&amp;nbsp; What's going on with the bug I'm looking at is sometimes Windows will not suspend when it should, or indeed, ever, unless you close Media Center or manually select Standby.&lt;/P&gt;
&lt;P&gt;This is pretty annoying, especially since my Media Center consumes about 200W while fully active (250-275W if engaged in HDTV playback), and only about 15W in S3 suspend.&amp;nbsp; With electricity around $0.084 / kWh, that works out to $0.40 each day left unchecked.&amp;nbsp; If I let it go all month, that's another $12, just because of this stupid bug (well, and because I'm lazy and forget to manually suspend... but I should not &lt;EM&gt;have&lt;/EM&gt; to).&amp;nbsp; Lame, lame, lame.&amp;nbsp; Extrapolating to all of the customers affected by this issue, I can see it adding up to a big problem.&amp;nbsp; Say only 250,000 users hit this (a low figure, I bet), that's $3,000,000 per month in wasted energy costs, based on the rates I pay.&amp;nbsp; Yikes!&lt;/P&gt;
&lt;P&gt;While I can fix this problem, I cannot fix all of the things that prevent computers from going into standby automatically, because they should really not be fixed, or because Windows software is not causing the problem in the first place.&amp;nbsp; Several things can cause a computer to fail to go into standby, and figuring out exactly what is causing the problem can be very difficult.&lt;/P&gt;
&lt;P&gt;So, what are the most common causes of Windows insomnia?&amp;nbsp; In rough order of likelihood, here is my &lt;A href="http://en.wikipedia.org/wiki/SWAG"&gt;SWAG&lt;/A&gt;:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;There is user activity.&amp;nbsp; This usually means keyboard or mouse activity, but can be "simulated" by applications via SendKeys(), etc. 
&lt;LI&gt;Windows is not configured to go into Standby automatically.&amp;nbsp; Since it's not the default for most computers, this&amp;nbsp;makes the list.&amp;nbsp; Easy to fix. 
&lt;LI&gt;An application tells Windows not to go into Standby automatically.&amp;nbsp; Different from user activity simulation because this is what applications are &lt;EM&gt;supposed&lt;/EM&gt; to do to prevent Standby. [ &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/power/base/setthreadexecutionstate.asp"&gt;SetThreadExecutionState(&lt;EM&gt;state&lt;/EM&gt;)&lt;/A&gt;&amp;nbsp;] 
&lt;LI&gt;An application generates enough system activity (e.g. disk access, network access, CPU usage) that Windows does not consider the machine to be "idle" enough. 
&lt;LI&gt;A hardware device driver prevents it.&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;Case 1 is very unlikely, since really the only applications that do this sort of thing are hacks/trainers/evil programs (and testing programs, if you want a legitimate example).&amp;nbsp; Unless your computer is infected by malware, this is probably not the cause.&amp;nbsp; Run a quality scanner to tell.&amp;nbsp; For case 2, just set Control Panel setting.&lt;/P&gt;
&lt;P&gt;For cases 3 and 4, troubleshooting gets trickier.&amp;nbsp; For the average end-user who does not know how to use a Kernel Debugger like &lt;A href="http://www.microsoft.com/whdc/devtools/debugging/default.mspx"&gt;WinDbg&lt;/A&gt; or &lt;A href="http://www.compuware.com/products/driverstudio/softice.htm"&gt;SoftICE&lt;/A&gt;, and does not have &lt;A href="http://www.microsoft.com/whdc/devtools/debugging/debugstart.mspx"&gt;easy access to kernel symbols&lt;/A&gt;, figuring out who is keeping the computer up all night takes a little wanton process termination.&amp;nbsp;Before you open up taskmgr and start gunning processes, though, there are a couple of things you can check:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Are you sharing any folders on the network?&amp;nbsp; If a remote computer is connected to your machine and refreshes the connection (i.e. sends a command), the Server service will call KeInhibitSystemShutdown(), which does exactly what it sounds like it does: resets the system's idle timer.&amp;nbsp; How do you tell if this is happening? An easy way is to pull up a command window (Start --&amp;gt; Run --&amp;gt; cmd) and type:&lt;BR&gt;&lt;BR&gt;&lt;FONT face="Courier New"&gt;nbtstat -s&lt;BR&gt;&lt;/FONT&gt;&lt;BR&gt;If you see any "IN" connections, they can keep you awake.&amp;nbsp; Most well-behaved Windows applications will not needlessly refresh connections over the network, but others don't play that nicely.&amp;nbsp; A ubiquitous example would be WMP or iTunes--both will scan network folders for changes if you add the path to your "watched folders" list.&amp;nbsp; The best way to solve this problem is to fix the client side (the other computer), but if that's not possible, you can just deny access to that computer/user.&amp;nbsp; In the worst case, you can stop the Server service (&lt;FONT face="Courier New"&gt;net stop server&lt;/FONT&gt;), but that prevents sharing altogether. 
&lt;LI&gt;Check your Application and System event logs for errors or warnings.&amp;nbsp; Often, exceptional situations will be reported there and can provide a clue to why Windows is not going into Standby. 
&lt;LI&gt;Hardware (or more appropriately, drivers for hardware) can prevent Windows from entering standby, too.&amp;nbsp; If you used to be able to go into standby, but cannot now, have you added or replaced hardware, or updated drivers?&amp;nbsp; This can be tricky, too, since most people set their Standby timers for longer than is convenient to sit around and wait on, so failure to go into Standby can be missed for days or weeks. 
&lt;LI&gt;To eliminate any remote networking cause, isolate your computer from the network (unplug the network cable!).&amp;nbsp; Low-tech, but effective.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;If you have eliminated network shares, suspicious event log entries, and hardware from causing the problem, the next thing to do is start killing processes and see which one (or if you're unlucky, which ones) are doing it.&amp;nbsp; You need to first exclude those processes that are part of Windows itself, since terminating them is not very wise.&amp;nbsp; An easy way to get a fairly complete list of the Windows processes is to boot into Safe Mode, press Start --&amp;gt; Run, and type:&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;tasklist &amp;gt;"%SystemDrive%\SysProcesses.txt"&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;A new file will be created on your system drive (usually C:) that contains the list of processes you shouldn't touch.&amp;nbsp; Reboot back into normal Windows mode, log in, and:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Open the SysProcesses.txt file 
&lt;LI&gt;Start taskmgr (right click on the taskbar and select &lt;STRONG&gt;Task Manager&lt;/STRONG&gt;) and click the Processes tab. 
&lt;LI&gt;Set your Standby timer to 1 minute (in the Power Options control panel) 
&lt;LI&gt;Let&amp;nbsp;1 minute elapse.&amp;nbsp; If the computer does not suspend, proceed to the next step. 
&lt;LI&gt;Select a process not listed in the SysProcesses.txt file in taskmgr and kill it. 
&lt;LI&gt;Go to step 4.&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;If you run out of processes to kill and the computer still won't go into Standby, it's time to start shutting down services in the Services console (Start --&amp;gt; Run --&amp;gt; &lt;FONT face="Courier New"&gt;services.msc&lt;/FONT&gt;).&amp;nbsp; If you have stopped all of the services you possibly can, it's either a piece of hardware or one of the core Windows processes, and things are a bit tougher.&amp;nbsp; To troubleshoot those, you need the help of a kernel-mode debugger.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=509518" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/peterrosser/archive/tags/Coding/default.aspx">Coding</category><category domain="http://blogs.msdn.com/peterrosser/archive/tags/Musing/default.aspx">Musing</category><category domain="http://blogs.msdn.com/peterrosser/archive/tags/Windows/default.aspx">Windows</category></item><item><title>Happy New Year!</title><link>http://blogs.msdn.com/peterrosser/archive/2006/01/04/BackToWork2006.aspx</link><pubDate>Wed, 04 Jan 2006 21:58:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:509350</guid><dc:creator>Peter Rosser</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/peterrosser/comments/509350.aspx</comments><wfw:commentRss>http://blogs.msdn.com/peterrosser/commentrss.aspx?PostID=509350</wfw:commentRss><wfw:comment>http://blogs.msdn.com/peterrosser/rsscomments.aspx?PostID=509350</wfw:comment><description>&lt;P&gt;Happy New Year!&lt;/P&gt;
&lt;P&gt;It was a nice month, but the break is over and I've returned back to work.&amp;nbsp; Christmas at the Rosser house was a low-key affair, mostly spend decompressing from hectic work schedules and enjoying family and friends' company.&amp;nbsp; My daughter's 2nd Christmas, this year was the year she figured out the whole "presents are fun" thing, and we had a great time.&amp;nbsp; We scheduled holiday-themed shows on our Media Center, and while they enjoyed the shows I (quietly, to myself) nitpicked the video quality and encoding bugs from my Comcast box.&amp;nbsp; If you haven't seen them, our current pick-of-the-month show to watch is &lt;A href="http://www.bbcamerica.com/genre/comedy_games/creature_comforts/creature_comforts.jsp"&gt;Creature Comforts on BBC America&lt;/A&gt;&amp;nbsp; I'm told that it's been out quite a long time, but it's new to me.&amp;nbsp; In case you haven't seen it, it's a Wallace &amp;amp; Grommit -style show where they take real(?) audio interviews of people and animate claymation animals to the soundtrack.&amp;nbsp; The results are often hilarious, especially if you enjoy British humour.&lt;/P&gt;
&lt;P&gt;It will probably be a couple of days before I catch up completely with the backlog of email and so forth, but I'm back on the job.&amp;nbsp; We've got several DVB Radio and EPG issues under investigation presently, along with a couple of Standby/Resume bugs.&amp;nbsp; The mood around the halls is pleasant, unlike the frantic activity from deadline pressure in November and December.&amp;nbsp; A few new faces, a few old faces moved on to other teams, it's business as usual here in eHome.&amp;nbsp; It's back to work, and back to fixing bugs.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=509350" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/peterrosser/archive/tags/Musing/default.aspx">Musing</category></item><item><title>Visual Studio 2005 Shipping on my Birthday</title><link>http://blogs.msdn.com/peterrosser/archive/2005/10/31/487569.aspx</link><pubDate>Tue, 01 Nov 2005 08:14:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:487569</guid><dc:creator>Peter Rosser</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/peterrosser/comments/487569.aspx</comments><wfw:commentRss>http://blogs.msdn.com/peterrosser/commentrss.aspx?PostID=487569</wfw:commentRss><wfw:comment>http://blogs.msdn.com/peterrosser/rsscomments.aspx?PostID=487569</wfw:comment><description>&lt;P&gt;You know I'm a geek when something like that gives me even a little bit of a thrill.&amp;nbsp; November 7th... not just an election day or my birthday, but also the VS2005 public ship day. ^_^.&amp;nbsp; I'm installing it now on my primary and backup dev boxes at work now... sometimes the perks of working here are pretty nice.&amp;nbsp;Mmm... generics.&lt;/P&gt;
&lt;P&gt;One of my coworkers suggested I take another look at Managed C++ (during our conversation I expressed my "dismay" at the prior version's foibles), so I'll take a peek at that as soon as I have a spare cycle or two.&amp;nbsp; It's pretty hard to get any free time with the painting at home and the heavy influx of&amp;nbsp;QFE issues we always get post release, but I'm sure I'll manage.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=487569" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/peterrosser/archive/tags/Coding/default.aspx">Coding</category><category domain="http://blogs.msdn.com/peterrosser/archive/tags/Musing/default.aspx">Musing</category><category domain="http://blogs.msdn.com/peterrosser/archive/tags/Tools/default.aspx">Tools</category></item><item><title>Recording over 1394 (Firewire) in Media Center</title><link>http://blogs.msdn.com/peterrosser/archive/2005/10/25/Firewire-Recording-on-MCE.aspx</link><pubDate>Wed, 26 Oct 2005 09:26:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:485033</guid><dc:creator>Peter Rosser</dc:creator><slash:comments>17</slash:comments><comments>http://blogs.msdn.com/peterrosser/comments/485033.aspx</comments><wfw:commentRss>http://blogs.msdn.com/peterrosser/commentrss.aspx?PostID=485033</wfw:commentRss><wfw:comment>http://blogs.msdn.com/peterrosser/rsscomments.aspx?PostID=485033</wfw:comment><description>&lt;P&gt;There has been some recent effort to pry open the 1394 interface in various STBs (set-top boxes), most notably that of timmmoore's STB package that goes to extraordinary lengths to hook into Media Center's experience.&amp;nbsp; The state of the world today, at least with Media Center, is that the "outside looking in" hooks of Tim's package are the only way to get that HD content off of digital cable and into Media Center.&lt;/P&gt;
&lt;P&gt;Here's how his package works, in a nutshell.&amp;nbsp; You install a couple of drivers that provide a software interface to the various commands you might expect to be available from an STB: channel changing, power toggle, etc.&amp;nbsp; An application then runs in the notification area, or tray, and acts as an intermediary between Media Center and the STB drivers.&amp;nbsp; When Media Center says "Change channel to 54", MyTray (Tim's tray application) listens in via a "hook" into Media Center and sends the channel-change command to the STB.&amp;nbsp; When Media Center starts a recording, another hook lets MyTray know that's happened and MyTray sends a "start streaming video over 1394" command to the STB.&amp;nbsp; When Media Center stops the recording, a similar event happens.&lt;/P&gt;
&lt;P&gt;Physically, you connect your computer with the STB by plugging in a IEEE.1394 (Firewire) cable into each.&amp;nbsp; If you have two STBs, you can daisy-chain them together.&amp;nbsp; The traditional "IR" blaster for each STB is removed from the receiver so that it does not interfere with the commands sent over the 1394 connection.&lt;/P&gt;
&lt;P&gt;There are a couple of significant downsides to doing it this way:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;It's a lot harder to hook in from outside Media Center and try to figure out when channels are changing, recordings are starting or stopping, and in multi-tuner scenarios, which tuner/STB to use than it would be if Media Center could just treat the STB as a virtual tuner. 
&lt;LI&gt;You still need an analog tuner for each STB you need to control.&amp;nbsp; This may seem odd, but it's part of the reason this works.&amp;nbsp; From Media Center's point of reference, it is still managing all of the recording and channel changing.&amp;nbsp; The fact that the actual channel change is triggered by another application is unknown and unknowable within Media Center. 
&lt;LI&gt;Since Media Center is still recording over the analog tuners, you end up with two copies of the same program.&amp;nbsp; MyTray can be set to clean up the Media Center version once it knows its recording completed successfully (e.g. no 5C protection from the STB prevented the recording), but you still churn the disk more (2x more for non-HD shows). 
&lt;LI&gt;Premium content like HBO is likely protected by the STB by the 5C standard, which MyTray does not support.&amp;nbsp; Nor can it without obtaining a 5C certificate, which are pretty hard to get.&amp;nbsp; The sticky parts for most interested parties are the &lt;EM&gt;unlimited &lt;/EM&gt;liability clause you have to sign, and the certification process itself, which I hear is stringent. 
&lt;LI&gt;MyTray is the product of a single developer, and one person alone cannot bring to bear the necessary development, testing, and packaging resources that bring a high polish to a product.&amp;nbsp; A common saying that applies here is "90% of the work is in the last 10% of the project".&amp;nbsp; Tim did a great job and some impressive detective work getting the app where it is, but getting that "shipping product" quality is a hard job to do all by yourself, working in your spare time.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;I am personally using this at home right now, despite the downsides.&amp;nbsp; The fact that I am willing to do this probably means I'm not alone, and in the few informal hallway conversations I've had about it there's a lot of interest in getting this sort of thing done natively in Media Center.&amp;nbsp; There's not matching excitement about funding the cost of doing it, but there seldom is, when it comes down to it.&lt;/P&gt;
&lt;P&gt;As Media Center becomes the default SKU for OEMs shipping Windows and our user base grows, there is a tremendous downward pressure on the unit cost of the machines.&amp;nbsp; The first target for downsizing seems to be the tuners, since a fair number of those new Media Centers are being sold as "Tuner Ready" instead of "Tuners Inside".&amp;nbsp;&amp;nbsp; In my humble opinion, implementing a 1394 recording solution is the single best way to get broad market appeal while keeping hardware costs low.&amp;nbsp; Everybody wins: we sell our Windows licenses, OEMs move more units, customers get reliable, scalable&amp;nbsp;SD &amp;amp; HD recording, and the cable companies get their $10 a month from renting their STBs.&lt;/P&gt;
&lt;P&gt;Consumers are used to paying the fee, and I think they would continue to do so.&amp;nbsp; There's been a market for leasing otherwise expensive equipment for many years, and there's no reason to think that will change soon.&amp;nbsp; When faced with a decision between $10 a month (or $20 for two STBs), or buying a $250 tuner (or two), a lot of people go for the monthly fee.&amp;nbsp; After all, it takes over 2 years to amortize that, and with technology that seems like a good bet to me.&amp;nbsp; Being on the bleeding edge is more comfortable if you can stay there on a lease. ^_^&lt;/P&gt;
&lt;P&gt;Which brings me to the true point of my post: I want to hear how much this feature is wanted in the user community.&amp;nbsp; Is it only wanted by the technically savvy, or do "average" users want it?&amp;nbsp; I really want it, and I don't want this relegated to the "power user" or "enthusiast" bin, because that will result in, at most, a power toy implementation.&amp;nbsp; If we can bring a full feature team to bear on this, I bet we could really make our users happy.&lt;/P&gt;
&lt;P&gt;Just think, you could have everything Media Center gives you, plus VOD support (including Pay-Per-View, integrated into Media Center), and HDTV over digital cable.&amp;nbsp; If I'm not mistaken, this could easily expand into satellite STBs, too, if they don't &lt;EM&gt;already&lt;/EM&gt; support streaming over 1394.&lt;/P&gt;
&lt;P&gt;I'm going to get back to tinkering with the Network Provider and 1394 tuner classdriver code some more... I'm all worked up with excitement now. ^_^&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=485033" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/peterrosser/archive/tags/Media+Center/default.aspx">Media Center</category><category domain="http://blogs.msdn.com/peterrosser/archive/tags/Musing/default.aspx">Musing</category></item><item><title>DRM in MCE Rollup 2</title><link>http://blogs.msdn.com/peterrosser/archive/2005/10/20/483294.aspx</link><pubDate>Fri, 21 Oct 2005 05:33:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:483294</guid><dc:creator>Peter Rosser</dc:creator><slash:comments>40</slash:comments><comments>http://blogs.msdn.com/peterrosser/comments/483294.aspx</comments><wfw:commentRss>http://blogs.msdn.com/peterrosser/commentrss.aspx?PostID=483294</wfw:commentRss><wfw:comment>http://blogs.msdn.com/peterrosser/rsscomments.aspx?PostID=483294</wfw:comment><description>&lt;P&gt;I was posting to TheGreenButton.com and thought I'd save myself typing the same thing again, since it's good info, even if I am restating/repackaging existing opinion.&amp;nbsp;&amp;nbsp;The following is a response to people who thought for some reason that Rollup 2 was applying DRM to things that it did not before:&lt;/P&gt;
&lt;P&gt;Rollup 2 did not substansively change the way that we determine whether something should be copy protected or not; what it did was change some of the infrastructure of the underlying protection scheme.&amp;nbsp; Basically we revved the DRM version and refined some of the business rules that determine what level of DRM a piece of content gets.&lt;/P&gt;
&lt;P&gt;Whether something is protected by DRM depends on whether the broadcaster sends us CGMS/A (Copy Generation Management System / Analog) flags on Line21 of the analog signal.&amp;nbsp; This is *not* the (in)famous "broadcast flag".&amp;nbsp; If you want to know more about how CGMS/A works, there is plenty of material on the net.&amp;nbsp; Another factor is Macrovision (software and/or hardware), or in Europe, the CP flag.&lt;/P&gt;
&lt;P&gt;CGMS/A can set 4 different modes: CopyFreely (i.e. no protection), CopyOnce, CopyNoMore (i.e. it used to be CopyOnce, but you made a copy... so you don't get to copy it again), and CopyNever (no copies at all).&amp;nbsp; Since our whole business is built around timeshifting content, we don't count the one stored version as a copy at all, though in CopyNever circumstances the license is generally good for only a limited time.&lt;/P&gt;
&lt;P&gt;&amp;lt;soapbox&amp;gt;&lt;/P&gt;
&lt;P&gt;I'm not a big fan of DRM, but I do&amp;nbsp;see the business need for it.&amp;nbsp; Microsoft makes a big, inviting target for lawsuits if we even appear to be soft on protecting copy protected content.&amp;nbsp; That doesn't make me happy, since it attempts to restrict what I can do with "my" content, and no matter how much I am told (and cerebrally understand) that it's not mine at all, but I'm just licensed to view it, I still persist in thinking of it as "mine".&amp;nbsp; After all, I paid for it!&amp;nbsp; As a consumer, I want complete freedom in what I do with my content.&amp;nbsp; As a stockholder in Microsoft, I want to both protect from lawsuits and grow the consumer market, which seem to be opposing goals.&lt;/P&gt;
&lt;P&gt;So what we have is a compromise: DRM.&amp;nbsp; We have encryption technology strong enough to make it not worth cracking (by the time you have cracked it, you've spent more than it would have cost to just go out and buy another copy of the content... probably many hundred/thousand/million times).&amp;nbsp; With the technology also comes the ability for us to open up windows to use the content in limited ways... hopefully the ways that consumers really want to use it.&amp;nbsp; Of course, you can't just send copies around to everyone.&amp;nbsp; But you CAN (or should, if it's working right) put the content on a portable device.&amp;nbsp; Or make a DVD backup.&lt;/P&gt;
&lt;P&gt;There's more to this than most people realize, though.&amp;nbsp; Not only do companies like Microsoft and Apple have to guard against lawsuits, etc., but they have to make the studios and other content producers happy enough with the DRM solutions that they will go *farther* and give us more content in more flexible ways.&amp;nbsp; Do you think that Comcast, DirecTV or EchoStar would agree to&amp;nbsp;attach a digital tuner to a PC that can decode their signal without an ironclad guarantee that the content would not just end up on the net?&amp;nbsp; They are terrified of that prospect... and with (arguably) good reason.&amp;nbsp; DRM is what we need to open up PC-based solutions for all of our content.&amp;nbsp; I don't want to pirate my Comcast Digital Cable feed... but I *do* want to watch it!&amp;nbsp; In high-definition and on my Media Center.&amp;nbsp; If the DRM gets out of my way, and lets me burn a DVD for my collection (hard drives are finite, after all), then I'm game.&amp;nbsp; I don't care if I can't just post a video of some HBO movie on the internet.&amp;nbsp; I don't really have the inclination anyhow.&lt;/P&gt;
&lt;P&gt;I know there are a lot of folks out there who vociferously oppose DRM on principal.&amp;nbsp; The "information should be free" crowd argues on the principal that you cannot own information, and content is just information.&amp;nbsp; That isn't reality, though, and the courts and laws agree that people who create content can sell it.&amp;nbsp; I won't pontificate further on that, but leave with a parting piece of information relating to the prior paragraph: if the "no DRM" crowd wins, we won't have lots of content with no DRM suddenly... what we'll have is broadcasters and content creators that won't have any reason to share their content.&amp;nbsp; Hollywood will release it's next generation of DVD replacements, this time with something less laughable than CSS protection, and that'll be it.&amp;nbsp; No PC viewing of digital content, just analog.&amp;nbsp; Depressing to me...&lt;/P&gt;
&lt;P&gt;&amp;lt;/soapbox&amp;gt;&lt;/P&gt;
&lt;P&gt;This is just my opinion... I'm not a policy setter, and not on any DRM or Copy Protection team.&amp;nbsp; Fill in all the other disclaimers about my opinion not being my employer's, and all that. ;)&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=483294" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/peterrosser/archive/tags/Media+Center/default.aspx">Media Center</category><category domain="http://blogs.msdn.com/peterrosser/archive/tags/Musing/default.aspx">Musing</category></item><item><title>PC Video Outputs</title><link>http://blogs.msdn.com/peterrosser/archive/2005/10/20/483122.aspx</link><pubDate>Thu, 20 Oct 2005 20:38:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:483122</guid><dc:creator>Peter Rosser</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/peterrosser/comments/483122.aspx</comments><wfw:commentRss>http://blogs.msdn.com/peterrosser/commentrss.aspx?PostID=483122</wfw:commentRss><wfw:comment>http://blogs.msdn.com/peterrosser/rsscomments.aspx?PostID=483122</wfw:comment><description>&lt;SPAN id=Showtread1_ThreadRepeater__ctl6_lblFullMessage&gt;
&lt;P&gt;I am seeing a pattern of confusion regarding S-Video and video resolutions with a lot of users in the community, so this posting is for those of you asking things like "why can't I get HD over S-Video" or similar questions.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;If you want anything above 800x600, you have to use Component, VGA, or DVI/HDMI outputs.&amp;nbsp; S-Video and Composite just don't support it.&amp;nbsp; Even if you can select 1024x768, it's not going to be a good picture over S-Video or Composite.&lt;/P&gt;
&lt;P&gt;Building on this, you cannot even get true widescreen resolutions through S-Video or Composite.&amp;nbsp; Sure, you can letterbox it, or mess with the video timings and get whatever you like, but the bandwidth available over the connector just won't support good video quality at anything above 800x600.&amp;nbsp; Any "wide aspect" video coming over one of those 2 connectors is going to be virtual/anamorphic or a custom timing that most hardware doesn't support.&lt;/P&gt;
&lt;P&gt;In terms of video quality, here's the rundown, from best to worst:&lt;/P&gt;
&lt;P&gt;DVI/HDMI (unless you need resolutions above 1920x1200, but that's another thread)&lt;BR&gt;VGA&lt;BR&gt;Component&lt;BR&gt;S-Video (up to 800x600 only)&lt;BR&gt;Composite (up to 800x600 only)&lt;/P&gt;&lt;/SPAN&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=483122" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/peterrosser/archive/tags/Musing/default.aspx">Musing</category></item></channel></rss>