Windows 7 Networking Information

Someone asked me today about some information and links about the Windows 7 networking stack especially regarding IPv6. I’m going to cache my response here for future reference and updating:

Generally speaking Windows 7 shares the same networking stack architecture as vista plus the following stuff:

  • DirectAccess
    • IPv6 transition technology improvements
    • IPTLS transport
  • BranchCache
  • Network Tracing and Diagnostics
  • Better Firewall Multihoming behavior

Random Stuff to go read:

Silverlight, Netflix and Tech Support

In response to some news from Netflix regarding the need for less specialized tech support after going to silverlight, the correct answer is “Duh”. Doing your own custom ActiveX control means a lot of exposure to install and platform issues goes away or becomes someone else’s tech support problem.

Open a specific set of Perf Counters in Perfmon

This is from my stupid demo trick series (okay, this is the first in such a series, and may be the last….). With a recent Windows 7 demo I was doing there is a set of perf counters I wished to show quickly in a report view. Setting it up is a many click process:

  1. Run Perfmon
  2. Click on Perfmonance Monitor
  3. Go to Add counters
  4. Delete the Processor Counters
  5. Scroll through the list of counters to the one I want
  6. Add it
  7. FAIL, you really added other counters
  8. Delete thoose, find the real ones, add them
  9. Click twice on the report button to change the Graph Type to report

Considering that I want to be talking to people about some great new feature not practicing my mouse skills, I really wanted this to be a single step open a shortcut sort of thing. Well rejoice for me, because I figured out how to do this.

  1. Run mmc
  2. Add the performance snapin
  3. Do all the steps from before
  4. turn off Actions and the console tree
  5. File –> Save As “DemoCounter.msc”

Now, All I have to do is open the msc file I created. It goes directly to the counters and the view I want.


More on the IE8/Standards fun

I really enjoy Joel’s writing. He does a nice job explaining the state of affairs: Martian Headsets – Joel on Software

Not understanding the Constraints

Reading the original IE Blog Article and the /. Discussion on the X-UA-Compatible markings, I have reached a couple of conclusions.

  • There is a camp of people who think that standards are an end to themselves free from nitty gritty details like solving real world problems.
  • Some people understand the issues but are happy to give the finger to billions of lines of working HTML pages and HTML generating code because it didn’t have the honor of being standards compliant years ago when it was written. (I think these people are secretly interested in donating their time to a  Y2K style effort of fixing all these old sites)
  • Many commenters don’t understand the constraints of this particular problem

For the sake of the last camp, I will attempt to make the issues clear up the problem constraints (and fail).

  1. It is unacceptable to break existing pages. If a person’s favorite site doesn’t work, they will avoid the upgrade or downgrade back to the old browser.  Assuming that all browser upgrades brings us closer to interoperable web standards, non adoption of the latest browser version is a very bad thing.
  2. Most existing content is immutable. There is too much of it and too much work to fix all the HTML and HTML generators which originally produced it.
  3. Web Standards and Implementations are not instantaneously mature, which means that all implementations will ship with bugs. While this is painfully obvious in IE, it is also demonstrated elsewhere: Firefox 2 doesn’t pass ACID 2, Firefox 3 will. What happens to pages depending on the bugs in Firefox 2 fixed in Firefox 3?
  4. There is an awful mess of pages out there that will forever be in Quirks mode and IE6/7 "standards" mode. Any solution that doesn’t deal this issue is broken.
  5. It can’t be a one time fix (debatable?). Something like a one time doctype change is not sustainable and leads to the same problem over and over again (since there will always be the latest new standard). Any solution should be good to handle this type of problem again and again for every browser vendor.

So now that you understand the constraints and you still have issues, make the world a better place and figure out a better solution then Microsoft did.

Finally, some good arguments against OpenXML

Stéphane Rodriguez has an article about issues one hits when trying to implement or use OpenXML. They don’t have the idiotic and artificial type of arguments that lists like groklaw has created, but some of his examples feel a bit extended to make a good story.

Lets see what the summary of his issues are with my bottom line comments. Also note I’m no expert at this stuff, I’m a geek, not a word processing file format geek and I certainly don’t speak for Microsoft on these issues.

  1. Self-exploding spreadsheets
    • Removing formulas from a spreadsheet is non trivial because there are other files with references to the forumla to update, such as the calculation chain
    • You can’t rebuild the calculation chain without going through the whole document.
    • While the calculation chain can be excluded it is non optimal to do so because some one who does need to understand the whole spreadsheet will have to recalculate it.
    • Some ZIP libraries don’t deal efficiently with doing the sort of operations needed to manipulate these zip based documents structures
    • Bottom Line 1: Invalidating the Calculation Chain should be automatic, so that simple manipulation tools work better
    • Bottom Line 2: Classic engineering tradeoff, you can precalc stuff if you want, but then you have to be able to precalculate it and keep some sort of invalidating state.
  2. Entered versus stored values
    • The intuition that what you type in excel is what is stored is incorrect. Excel does magic to make it more user friendly like automatically adjusting to local convention (like , instead of . in number formatting) and auto converting to a type instead of treating everything as a string or forcing the user to be explicit
    • The stored number values are affected by IEEE rounding rules
    • Stored values are not locale dependant (This is a bad thing?)
    • Bottom Line: It’s not clear how this affects the usability or usefulness of the format to me. Maybe a different example where values that aren’t in this format (generated by a third party tool) fail in excel?
  3. Optimization artefacts become a feature instead of an embarrasment
    • Worksheet shared forulas are listed as “copy from Cell X” instead of having a neutral non cell reference that everything uses
    • This leads to a lot more work to change a formula in one place if others reference it.
    • Bottom Line: Sounds like a valid complaint to me
  4. VML isn’t XML
    • VML is supposed to be deprecated but gets used in some places like comments
    • 10 year old memo from Gates that has little to no bearing on the world or Microsoft today
    • Bottom Line: I’m not familiar enough with the spec to know if this is an issue or not, but it sounds like comments in Excel is hard to work with and that’s bad.
  5. Open packaging parts minefield
    • You can’t delete a part and know who relies on it without parsing through everything in the file
    • Bottom Line: sounds sucky
  6. International, but US English first and foremost
    • The functional things in the format for excel is in english (like the SUM() function)
    • VML and DrawingML have a number of encoding notes to help with localization which aren’t documented well
    • Applications on top of OpenXML have to localize everything themselves
    • Bottom Line: Maybe I’m missing it, but this seems like a feature, my spreadsheet manipulator doesn’t have to be aware of all the possible language encoding of the word “SUM”

I’m going to cut off this post here for now (wife wants my attention 🙂 ) and maybe continue it another day

Major themes from the list so far:

  • The excel format seems to be not well designed for targeted modification of existing files. You have to load an understand the whole thing and then write it all back out again. (unless you are using the custom schema stuff, but that is out of scope)
  • VML interacts with parts of openXML is not well describe ways

— Ari

Safari on Windows: Seeing the ugly beast

My first reaction to the news was, ah so that’s how they will allow people to develop and test their apps for the iphone. Then we loaded it up on a test box and I had three reactions. First: Why does the window frame look like crap? Second: Why is all their web page text so fuzzy to the point I felt sick? Third: How the heck does one open a new tab? It seems to be the pattern that whenever apple ships software for windows it looks much uglier then a default hello world message box type app. Hopefully they will someday improve upon their porting kit and make something that doesn’t look so awful. I can also understand apple’s hostility to windows, if I had to use/test apps that looked like that all day I would be hostile too. 🙂
Oh and a couple more quick usage notes:

  • The back button on my mouse doesn’t do anything in Safari
  • Not having an edge of the window to use for resizing is pretty annoying
  • I can’t find any way to add wikipedia to the search box
  • If you don’t have any binary legacy support to worry about, why are you going 32bit only? Get the extension market used to 64 bit now before it becomes a legacy hassle.
  • Drag and drop customization of the UI elements is pretty cool
  • CFNetwork.dll? This could be fun to play with…

Overall, this has a serious case of portcitus, when your app looks or acts lame because you are more focused on a compatible source tree and exact rending with the other platforms then taking advantage of the platform you are porting to.

Update: Oh yeah… and do some security testing 🙂

Cleaning up a minor security argument

I saw a slashdot article this morning about Apple releasing more vuln fixes. In the comment section, discussion broke into the usual “why do people think Macs are safer then Windows” arguements. The two major points of “it has less of a market” and “it’s just more secure” went back and forth. I happen to think both are an oversimplification of the subject.

Vuln finding is a function people of going after whatever is currently easiest. Many attackers have broaden their horizons to other platforms once Windows became significantly more secure and harden against attack. Oracle was the next major target and Apple might be the one after. I admit that I love the irony of the switch after both companies choose to market on how they must be more secure since people weren’t finding vulns in them.

Exploits on the other hand is based on the business case these days. The vulns are available but Windows didn’t have the magnitude of the problem it did until there was a profit motive to create bot networks.

So to put it together, vulns found help you tell about the security of an area, exploiting tells you about how profitable a particular OS is to attack. The corollary of this rule is that as a random host you are as profitable as the OS, as a specific host with specific data or rights you are as valuable to attack as that data or rights. The result being that if your data is valuable is doesn’t matter that there are few exploits for your box when there are plenty of vulns.

Get together my thoughts on OOXML/ODF

An attempt to respond to the latest thing I’ve read and stake out my feelings on ODF/OOXML.

From what I understand of the market, you have a number of (free) add-on ODF plugins for Microsoft Office. This means that the simple requirement being able to read and write the format will be satisfied to the level of quality of the plugins and the ability of the interoperable aspects of the ODF standard to handle office semantics. I feel that the blogoshpere has made it clear that the only way ODF will be able to handle the body of existing office documents (Bugs and features) at full fidelity is for there to be a large number of extensions that would render ODF something not ODF anymore, especially from the standpoint of other ODF implementations. It might be in the vaguely “right” looking container, but it would not be interoperable. Any movement in this space would (rightly?) be branded Embrace, Extend, Extinguish.

I believe it is clear that users want something like OpenXML. We’ve seen that previous movements in this direction by office in the 2003 products are never used because of the loss of fidelity. I’m just not going to migrate my spreadsheets to ODF format if my formulas are going to break, and that is the type of user complaints that you will start to get when you tell your customers you must move over. If you don’t get how complex this type of thing gets, you should start reading Raymond Chen’s blog. It is quite obvious how hostile the ODF crowd appears to be to backwards comparability with the amount of hoopla generated around supporting the 1900 excel/lotus 123 date issues in OOXML.

Could all the the technical issues been worked out in ODF? Maybe. I think the hostile environment, the time required to work on modifications to ODF in an open way and the timeline for the politics and government mandates pretty much precluded that option for the short term. On the brightside, ODF folks can take the out there and free OOXML spec and decide how they want to absorb it for future versions of ODF. Thus somday the promised nirvana of ODF being the native interoperable format of all office suites that it’s supporters want might be realized. In the here and now, there is a pretty cool creative energy that both formats competing right now has created. In an attempt to score points in some insane “Who is Right” contest both sides are pointing out the flaws in the other, and the pragmatists will pick up the real stuff and just make thier stuff better. This is a good thing no matter how ugly the process is to get there.

In the background of this debate, It appears that their are two camps in the world when it comes to this stuff, purists who believe that future technology should be clean slates not marred with the real world and those who muck around in the complex world of user demand and prior work. I have to admit out of college I was very much in favor of the purist view of the world. This little debate is making me realize that I’ve now firmly landed in the other camp. The purist typically ends in the worst hacks and/or low adoption. There are a lot of people out there who use software and just don’t care about the religious battles. It doesn’t matter what your standard is or how you architected the code is, if it doesn’t solve the user’s needs.  Put simply, users are more important then you or I and placing requirements down that are tangential to their needs is just a speedbump for them to roll over. The coders who love and support these users are going to have to help carry forward whatever hack someone came up with to get around the artificial speedbump. The sooner one grok’s this concept the better the world might be.

If ODF solves a user’s needs, they will use it, if OOXML solves it better it will be used regardless of which of them have ISO certification. There is already ECMA certification and good IP promises for OOXML. (The inability to use without IP considerations a file embded in either format is a red herring). It appears that Microsoft is supportive of having OOXML ISO certified, which sounds great to me. If there are considerations unrelated to ODF then they should be fixed, but the notion of which sausage factory produced the 1.0 spec or that you can’t have both formats be standards seems silly to me. Both are too new on the scene to have proven that they are going to be the end all. If anything, office via market share and caring about backwards compatability has a huge leg up.

Disclaimer: I work for Microsoft but nothing to do with office.

Vista DRM

There a pretty reasonable podcast about Vista DRM in Security Now #75. Key points:

  • Worse case is that you can’t play content that demnands a super secure path.
  • No known media is requesting the super secure path. It is very questionable if anyone will ever want to take the PR hit of actually using it.
  • Constriction or “fuzzyness” is for the high quality content; not everything on your screen and only if the content requires it.
  • The main device you are probably playing HD-DVD’s on is laptops who have onboard graphics and are exempt from a number of things that people are concerned about.

Update: Just to be fair, there are a number of legit concerns that the Gutmann paper talks about, but even in that paper there are examples that people have let thier imagination run away with. The legit concerns include: side effects to how open hardware is when hardware needs to authenticate to the driver (They should do a public key thing here IMHO), Hardware/CPU costs in dealing with encrypting content across an open pci bus, potential cost for splitting out drivers to mitigate potential protect content trust revocation, the potental for hardware manufactures to destablize a PC when creating an implementation of tilt bits and IP/Licencing costs for the content protection hardware. To me these are pretty minor or requires assuming the worst for a true bad effect.