Other

  • The Old New Thing

    On the adult appeal of dodgeball

    • 7 Comments

    NPR's Only a Game recently covered the rise of adult dodgeball. At MSN's tenth birthday party last week, there was a wide variety of entertainment options, the highlight of which appeared to be an organized dodgeball tournament. It was very well attended and didn't have the ego-damaging overtones you got from elementary school. A good time was had by all.

    The Senior Vice President of MSN happens also to have been the development manager of Windows 95, so he made the generous gesture of inviting the members of the Windows 95 team to his group's birthday party. (Since the remaining members of the Windows 95 team are outnumbered forty-to-one by the current members of the MSN team, it gave the impression that Windows 95 was merely an after-thought to MSN! "Ten years ago, MSN 1.0 went live! And if I recall correctly, some little operating system rode our coattails.")

  • The Old New Thing

    If you squint you might be able to make out my name

    • 4 Comments

    Late Tuesday night, Jenny Lam, the creative director for this year's PDC, came by our hallway and asked for permission to rummage through our offices for "stuff". They were looking for props to use to decorate a developer's cubicle in a video they were filming for the conference. I was able to loan her a framed letter of appreciation and my pass to the Windows 2000 launch. I used to have a lot more junk in my office, but I went on a cleaning binge during our last office move and the really cool mementos ended up at my house. If you watch the movie and squint you might be able to make out my name on the personalized items, but I wouldn't hold my breath. My stuff will be on screen for probably a quarter of a second, and I'm guessing it won't be big enough to read anything of significance. (Jenny tells me that one of the things in the cubicle is a forgery. See if you can spot it.)

    They were able to get much cooler stuff from my neighbor's office. Among other things, he had a chemical model of the caffeine molecule.

    Incidentally, Jenny puts my Martha number at two. I've met Jenny, and Jenny was personally interviewed by Martha Stewart. I just think that's so neat, being two steps away from The Martha.

  • The Old New Thing

    Why are icons multiples of 8 pixels in width?

    • 20 Comments

    Icons are all multiples of eight pixels in width. It's not just because computer people like powers of two.

    Back in the early days of Windows, video cards were monochrome or, if you were lucky, 16-color. These were all planar video modes, the mechanics of which were discussed earlier. Now imagine copying a bitmap to the screen where both the bitmap and the screen are planar. If the starting coordinates of the destination was an exact multiple of eight, then the bitmap could be copied via block transfer instructions. On the other hand, if the destination was not a perfect multiple of eight, you had to do a lot of fancy bit shifting to get it onto the screen.

    This is the source of the CS_BYTEALIGNCLIENT window class style. With this style set, the window manager will try to position the window so that the x-coordinate of the client rectangle's upper left corner sits at a perfect byte boundary of video memory. If you were running at a 1bpp video mode (monochrome or 16 color), this meant that the x-coordinate was a multiple of eight. By positioning the window this way, a bitmap copied to the upper left corner of the client rectangle would be copied via fast block transfer instructions.

    If you look at dialog box dimensions from Windows 95 or earlier, you'll find that they are nearly always a multiple of 32 DLUs in width. Since four horizontal DLUs equal one average character width, you had to keep your dialog width a multiple of 32 to ensure that the final dialog size was a multiple of eight.

    Keeping bitmap widths such that they represented exact byte boundaries was important for performance on the machines of the day. Copying blocks of pixels around was typically performed in three major steps: A thin vertical strip from the left edge of the bitmap to the first byte boundary, then the bulk of the bitmap up to the last byte boundary, and finally a thin vertical strip from the last byte boundary to the right edge. If you kept your eyes open, you could actually see these three stages of drawing occurring. (Like I said, machines of the day weren't all that fast.) Keeping things byte aligned and at byte width meant that the two thin vertical strips had zero width and therefore could be optimized out.

    Of course, in today's world of 32bpp displays, all these old considerations are largely irrelevant.

  • The Old New Thing

    How do you convince developers to pay their "taxes"?

    • 68 Comments

    The Tablet PC team have a tough task ahead of them at this year's PDC: They have to get people to care about power management.

    The reason why this is tough is that power management is rarely a deal-maker. If a user is evaluating, say, personal finance software, how much weight are they going to place on which program consumes less battery power? That's probably a third- or fourth-level tiebreaker. No amount of power management is going to overcome the fact that your program's interface is harder to use than your competitor's. Nobody ever said, "Oh, yeah, I switched my word processor from X to Y because X was chewing too much battery power." When a battery doesn't last very long, users tend to blame the battery, not the software that is draining it.

    Power management falls into a category some development teams call "taxes". It's something you do, not because it actually benefits you specifically, but because it benefits the software landscape as a whole. Other taxes include making sure your program plays friendly with roaming user profiles, Fast User Switching, Hierarchical Storage Management, multiple monitors, Remote Desktop, and 64-bit Windows.

    Of course, not all development teams in the world are so diligent as to pay all their "taxes". I suspect most cheat on their taxes, and some of them just don't pay any at all.

    So here's my question to you: How do you convince developers to pay their "taxes"? (Should developers have to pay taxes at all?)

  • The Old New Thing

    Justifiable assault with folding chair

    • 23 Comments

    Everybody's lunchtime conversation a few days ago was the riot at a used laptop sale in Richmond, VA. [Local coverage.] What got me was this fellow Jesse Sandler:

    "I took my chair here and I threw it over my shoulder and I went, 'Bam,'" the 20-year-old said nonchalantly, his eyes glued to the screen of his new iBook, as he tapped away on the keyboard at a testing station.

    "They were getting in front of me and I was there a lot earlier than them, so I thought that it was just," he said.

    Because if somebody cuts in front of you in line, you are perfectly justified in assaulting them with a folding chair. That's one of the guiding principles this country was founded on.

  • The Old New Thing

    Let's just make up some dollar values and print them as fact

    • 35 Comments

    Everybody is going nuts over a patent decision regarding the iPod interface, but that's not what I'm writing about (so don't ask me for my opinion). Rather, I'm reacting to the claims being made by many people that Apple will have to pay Microsoft $10 for every iPod.

    What I want to know is where this amount "$10" came from.

    Multiple people are confidently reporting a sawbuck as the amount in question. GeekCoffee attributes it to AppleInsider.com, but a search of AppleInsider turns up no article where they assigned a monetary value to the issue. A site called TrustedReviews repeats the $10 price tag with no source. ("You don't need a source. Just trust us!") MacNewsWorld even puts the amount in its headline, although the article gives no justification for how they arrived at it. Sky News helpfully converts the amount to £6 but again provides no source for this value.

    Are people just making up stuff and publishing it as fact? Or is there some root source for this $10 amount that I'm missing and which nobody is bothering to cite? (My suspicion is that one person took a wild guess and everybody else decided to run with it.)

  • The Old New Thing

    What are the access rights and privileges that control changing ownership of an object?

    • 11 Comments

    Changing the ownership of an object (typically a file) is not difficult in principle: You call the SetNamedSecurityInfo function with the new security descriptor.

    The hard part is getting to that point. (Thanks to John, a colleague in security, for correcting an earlier draft of this entry.)

    If you have WRITE_OWNER access on an object, then you can change the owner of the object to yourself (or to any SID in your token that has the SE_GROUP_OWNER attribute): you can take ownership. However, you cannot change the owner to somebody else: you cannot give ownership to another person. Doing that would allow you to violate quota restrictions.

    Imagine if this were possible, that you could change the ownership to something that you aren't a member of: Your account is at its disk quota. No problem, you just find somebody who isn't over quota (like Fred in Accounting) and take some of your biggest files and set their owner to Fred. This causes the disk space to be charged to its new owner Fred, without Fred even knowing that it has happened to him. If you put the file in a directory that Fred doesn't have access to, poor Fred will start getting "You are over disk quota" messages and have no way of finding this evil file that you charged to him. It's like stealing somebody's library card and checking out books with it.

    In order to set the owner to somebody else, you need to assert SeRestorePrivilege, which by default is assigned to administrators and backup operators. Backup operators need to be able to set the owner to somebody else because restoring its security descriptor is an important part of the process of restoring a file from backup.

    But what about SeTakeOwnershipPrivilege? That privilege is assigned to administrators, and it lets you act as if you had WRITE_OWNER access (but not SeRestorePrivilege) to everything. With SeTakeOwnershipPrivilege, you can take ownership of any file, but you can't assign it to somebody else.

    And then there's the mysterious CREATOR_OWNER SID, described in a Knowledge Base article as well as in a blog entry by Larry Osterman. The important thing to remember is that granting CREATOR_OWNER SID to an object after it has been created doesn't actually grant anything to the creator or owner. Read the linked articles for more details.

  • The Old New Thing

    What I'll be doing at this year's PDC

    • 6 Comments

    I will be heading down to Los Angeles the Friday before the PDC in order to visit friends and relatives and to check out the King Tut exhibit at the Los Angeles County Museum of Art. The last time Tutankhamun came to the United States was back in the late 1970's. I was an elementary school student and a few of my classmates were lucky enough to have obtained tickets to the exhibition; they gave it rave reviews.

    I will show up at the Convention Center when the PDC proper begins on Tuesday. I am officially scheduled to be in the Fundamentals Lounge from 11:30am to 2:30pm on Tuesday, then again on Thursday all day after my talk. Unofficially, I plan to be in the Fundamentals Lounge pretty much the entire time, though I may step out every so often to check out the exhibitors' booths and hands-on labs, to eat, or just to tease the people in the other lounges.

    What this means for you is that if you have something you want to discuss with me, you can just drop in the Fundamentals Lounge and there's a good chance I'll be there. No need to make an appointment. Don't be afraid to approach me; if I didn't want to be disturbed I'd have stayed in my hotel room! If I'm not around, you can call the main Microsoft switchboard +1-425-882-8080 and ask for me, and the call will be forwarded to my mobile.

    As for my talk, it will be in the style of a lecture, so there will be no slides. Slides will be provided in the handouts for completeness, but I won't use them. I'm told the talk will be recorded, and it is my understanding that the post-conference DVD will contain copies of every talk, so those of you who attend will be able to re-live the excitement in the comfort of your very own cubicle. (And to pre-empt the inevitable follow-up question: The PDC team own the recording of my talk, so don't ask me if I can make a copy available. It's not mine to give out.)

    One consequence of giving a lecture-style talk is that I will be using a Tablet PC as a sort of electronic chalkboard. There's one catch, though: I don't own a Tablet PC myself. I'll try to borrow one from a colleague for my talk, but in the worst-case scenario, I may get up on stage and ask to borrow one from an audience member. (Downside of loaning me your Tablet PC: You can't take notes on your Tablet PC during the talk. Upside: You get a copy of all the notes and diagrams!)

  • The Old New Thing

    How can a company get access to Windows Error Reporting data?

    • 38 Comments

    What happens to all the crashes in programs not written by Microsoft that are submitted via Windows Error Reporting? Microsoft still collects and indexes them, and vendors can sign up to gain access to the error reporting database to see the crashes in their programs. The service is free, although it does require a Verisign ID so that the Winqual system can confirm that you are who you claim you are. (It would be bad if somebody could pretend to be, say, Adobe, and get all their crash data.)

    There will be a session at the PDC which will go into how you the software developer can take advantage of all this data in order to improve your product from pre-release through general availability and even into sustained engineering.

    Windows Vista: Improving your Products Code Quality through Windows Feedback Services

    Your customers are sharing their pain and product experiences with you. Are you listening? Learn how to use the updated automated feedback mechanisms in Windows to gather, view and act upon customer Feedback data. Windows Feedback data will enable you to improve quality early in your product cycle, prioritize work and fix problems your users are encountering on a daily basis; even lower your support costs while increasing customer satisfaction and reliability of your applications.

    Yes, it's a kind of boring title. The original title was "Turning dissatisfied customers into gold". I would've used something like "Your program is crashing. Are you listening?" Oh well, the title isn't important. What's important is that you can use this information to make your products better.

  • The Old New Thing

    Have you made any assignments in this space?

    • 35 Comments

    Riffing on Larry's profound distaste for the use of the word 'ask' as a noun (a distaste I share)...

    It's been three years since I heard the question "Have you made any assignments in this space?" during a meeting and I still don't know what the person was trying to say.

Page 81 of 94 (940 items) «7980818283»