Date: | October 13, 2004 / year-entry #365 |
Tags: | other |
Orig Link: | https://blogs.msdn.microsoft.com/oldnewthing/20041013-00/?p=37583 |
Comments: | 62 |
Summary: | Okay, I got around to digging through the suggestion box, and today I'm going to dispatch the items that don't require much thought but seemed worthy of reply to some degree. You won't learn much of anything today. Topics I try to avoid "I would like to hear your opinion of the programming languages you... |
Okay, I got around to digging through the suggestion box, and today I'm going to dispatch the items that don't require much thought but seemed worthy of reply to some degree. You won't learn much of anything today.
Other entries require more thought. Each non-code entry takes me a half hour or so, more if I have to do research (if somebody asks me a question outside my area of expertise and I feel like hunting for the answer), and the code entries require an hour and a half or more. Some of them take days. I think I spent three weeks on the dialog box template series, and about as much on the context menus. (And there are plenty of other series in various stages of completion.) I don't get paid to do this. It's just a hobby. It's frustrating when people order you to spend more time on your hobby. And then when you decide it's too much and start closing comments to try to get some of your life back, people call you a coward and assume that you stopped for some nefarious reason. (Like when they say, "Look, Raymond closed comments as soon as people started asking embarrassing questions." But the comment timestamps prove otherwise. I closed comments weeks or months later.) |
Comments (62)
Comments are closed. |
Thanks for clearing that up.
So this is your recommended implementation of an IDispatchCrud interface for tech blogs? Interesting… :)
I’m just glad my silly, highly specific and very low interest UI question from a few months ago didn’t make it onto the list. Thanks for keeping up the quality output Raymond – it’s been very helpful and entertaining.
In some ways, Google has caused problems for blog owners and discussion forums. It allows someone to type in their problem: "I have a form that needs a date field to populate upon opening the file…" and they’ll post to the first discussion that looks like they might get an answer (or it, and the ten listed after it). The result is a lot of thread hijacking, off-topic posts, and newbies looking for a quick-fix solution.
Chip H.
So Raymond, why is it that I can’t easily paste from my G5 to the Windows machine that I’m logged in to using the X11 rdesktop client?
Just kidding. Thanks for all your work on this blog.
OK, maybe this isn’t the best thread for another question but there is one answer I would like to see more detail on (sorry)…
Why are processes expensive and how expensive are they? Windows seems to do a good job of sharing code segments between processes and the pre-fetch and disk cache can make process start up times reasonably fast. On the other hand there are a number of places where Microsoft has gone to a lot of effort to reduce the number of processes Windows uses (e.g. the Explorer / Taskbar noted above and keeping lots of the system services in one thread) and most Windows web servers use threads rather than processes for handling requests? I am not suggesting there is anything wrong with these components – I am just wondering what it is about processes that make them inappropriate for these tasks.
Of course I don’t expect/need (or what ever the correct word is) an answer – it is just an area I was thinking you might be tempted to address in more detail.
I know how you feel. When dealing with large groups of people, there’s always the few who’ll abuse the host’s hospitality, either because they’re self-important or just ignorant.
Your write this blog for yourself. You blog because it’s fun. When we are reading your blog, you are inviting us into your thoughts.
On behalf of your loyal readers, thank you for your hospitality!
Firstly I did a survey for MS tonight but IE stopped working about 20 minutes in. So please be nice to the research industry. I was nice to MS even though I know I’m unlikely to be able to complete such things due to buggy IE and buggy web servers.
I just hope you tell others at MS what people are bitchin about.
And I think that it’s good value.
Well, firsst you go buy a digital camera…
Just thought I’d put myself in line to say…
Great blog. Keep up the good work.
Your information and humor often lightens up my day. (And I don’t even write C)
Your explanations are absolutely fascinating and shed a lot of light for someone who’s not a total Windows expert, and I want to say thanks, too.
As a UNIX/Linux weenie who’s done a little Windows coding, there are a lot of "ohhh, I see why that’s the way it is" moments for me. When you realize a lot is history/compatibility/when we only had 256k, some of the bizarre looking windows stuff makes a lot more sense. Of course none of the tech refs go into this, they’re tech refs, not history/philosophy books, and you end up a little frustrated.
I’ve always wondered what Microsoft could do with a clean piece of paper and a fresh start. They’ve got a lot of talent working for them.
I wish X Windows had COM. Sigh.
About the replacement shell bit – there are just a few essential bits that aren’t documented.
For example you need to figure out how SHAppbarMessage communicates with the shell. It’s about reading a contract from the other side, but it seems impossible unless you resort to disassembling. On Google Groups you may find that it uses WM_COPYDATA. Dunno how people figured that out. But the struct that is passed is still not documented. So even if you wanted to read the contract from the other side and try to implement it, you won’t succeed. The same is true, for example, for NIS_SHAREDICON.
I think I know the answer to the IE status bar. If you go into just good ol’ Windows Explorer (which has no status bar by default), and then go into your tools to options, and then set all windows to display like the current one, IE for some reason decides you don’t want a status bar in IE either.
Thanks!
I can’t say that I’ve always made positive-about-Microsoft comments in your comment section, but I do very much appreciate your blog (as well as some of the struggles Microsoft has to deal with on a daily basis).
"If you ever decide to take this site down please let us know so I can archive everything on it"
Ditto. The Microsoft weblogs are by far the best thing to come out of the company since Visual Studio Intellisense, WinNT, and MSDN.
"Why does my 200GB drive show up as 131GB?"
This may be problem with the OS/bios not supporting 48-bit Logical Block Addressing. I’m sure there’s more info to be found elsewhere, but here’s one Knowledge Base article that discusses this issue:
http://support.microsoft.com/default.aspx?scid=kb;en-us;305098
Hey Raymond. I really love your blog and think that you do a great job. You are among the most reliable bloggers at MSFT. Everyday I walk into work and the first thing I do is read your blog and you always have something interesting to read. I don’t know who is criticizing you for how you run your blog, but they are clearly in the wrong. Keep up the great work and don’t let the trolls get you down. There are so many people reading your blog and if only 5% of them posted comments or sent you mail you would be in for a world of hurt ;-). I do have one question tho: what team do you work on? I know that you have probably said it in the past but I can’t quite remember ( shell team? ). I think if you make it clear what your areas of expertise are then you may have fewer questions like the ones above ( tho it seems like you know a little about everything ). I think most people would willingly post questions in the appropriate place if only they knew where that was. It would be nice to see the blogs folks break things down by group or by area of expertise. Keep of the excellent work. I know it takes a lot of time out of your day, but you should know that its all worth it.
Thanks for the daily dose of technical goodness.
At least you don’t get questions like "how to get boys to like you" like one tech blog that I read. (I can’t recall which one and Google’s not much help)
Hey Raymond…
Don’t let the bastards grind you down :)
Think of the weird demands about things outside of your balliwick as the thing that lets you know that your blog is popular – it means that you get a large influx of newbies who see "Hey! Knowledgable person! With obvious credentials going back YEARS!", and then go slightly nuts because this is the first time they’ve come across someone like that.
That, and reading your blog is totally addictive.
:)
I enjoy your blog quite a bit and always manage to glean something from most updates (though I’m still scared of COM to this day!). You should consider collecting all the historical tidbits concerning the Windows architecture into a book. You have an excellent writing style, especially for a blog.
Great blog Raymond.
Are you allowed to talk about any of the common controls enhancements that will appear in Longhorn?
Are you allowed to talk about features in the common controls that are not documented on MSDN (but programs like Explorer and IE use)?
Miles –
That was Eric Lippert’s blog:
http://weblogs.asp.net/oldnewthing/archive/2004/10/13/241725.aspx
Raymond –
I agree with Lonnie – to your readers, you appear to understand the entire works of Microsoft (collector’s edition). You seem to focus on GUI elements and legacy support issues in your blog. I think that’s why you’ve gotten so many product specific questions at the top of your list – those outside of MS don’t mentally separate products and platform, let alone segments of the platform.
I’m encouraged to hear that this is time consuming for you, too. I spend hours on my posts and have gotten discouraged at times at how long it takes to translate my hundreds of "to post" items to actual HTTP form submit requests.
Thanks again for sharing your time and knowledge with us. You join Sufjan Stevens on my hippest knitters list.
Oh, and of course you can change your start button image with resource hacking although it’s probably a bad idea.
http://www.neowin.net/forum/index.php?showtopic=216798&st=0
Oops, screwed up the link to Eric Lippert’s post on how to get boys to like you:
http://weblogs.asp.net/ericlippert/archive/2004/08/27/221496.aspx
<i>(Like when they say, "Look, Raymond closed comments as soon as people started asking embarrassing questions." But the comment timestamps prove otherwise. I closed comments weeks or months later.)</i>
Wow…I must have really pinched a nerve.
More the straw that broke the camel’s back. You were hardly the first to say that.
Jonathan – take a look at http://msdn.microsoft.com/library/en-us/dllproc/base/about_processes_and_threads.asp. Threads share virtual adress space and system resources. That’s why threads are less expensive than processes.
Larry Osterman gave history on mutex/mutant. Block-quoted from Helen Custers in this blog post:
http://blogs.msdn.com/larryosterman/archive/2004/09/24/233969.aspx
Thank you for your time spent on this hobby! :)
Or better yet, read Michael Howard’s book: http://www.amazon.com/exec/obidos/tg/detail/-/0735617228/qid=1097699652/sr=8-1/ref=pd_csp_1/103-8316523-0475065?v=glance&s=books&n=507846
Raymond, I read your blogs everyday when I get in at work. For every negative comment you receive, 10 people like your web site (if not more). Unfortunately it’s the human nature not to express positive things as much as negative ones.
Continue the good work/hobby, cause I know it is both.
I love this last one, Raymond:
[quote]
"Why is it so hard to write a program that does gross things to Explorer?"
Allowing other programs do gross things to Explorer wasn’t on its list of design goals.
[/quote]
… continue the wonderful work you are doing!
Just a note to say thanks for a most excellent Blog.
I appreciate it is just a hobby, and hope the more demanding audience members don’t ruin *your* enjoyment for the rest of us.
I guess you don’t want to be flooded with fan-mail saying ‘thanks, well done’ either, but this seemed like a good time to say it <g>
Hey Raymond,
Just wanted to say that somehow you make reading technical material *enjoyable*. I’ll be reading your blog as long as you choose to keep doing it.
Thanks for the little gems!
Raymond out of all the MS folks you have hands down the best blog. It would be a terrible shame if you were to ever quit blogging just because a few people made your hobby uncomfortable for you.
I read your blog daily and greatly enjoy it. Please keep up the great effort. I hope it always remains fun for you.
Your hobby just happens to offer great insight into topics that benefit a large number of people of vastly varying levels of technical expertise. It sounds like some of your readers (most likely those on one end of the technical expertise scale) seem to think that this blog is some type of forced public service or something required of you by MS.
Do it as long as *you* enjoy doing it and I can assure you that those of us who understand and appreciate what you’re offering here will continue to enjoy, learn from, and benefit from your generosity.
p.s. If you ever decide to take this site down please let us know so I can archive everything on it. ;-)
"About the replacement shell bit … SHAppbarMessage…"
Now you’re changing the subject. SHAppbarMessage is for Explorer appbars. If you write your own shell then you aren’t Explorer. Of course you can pattern *your* shell’s APIs against Explorer’s to make it easier for people to switch to your shell – then all you have to do is convince people to link to your shell’s DLLs instead of Explorer’s.
great post. :-)
and here is a freebie for you: you make a screenshot on a mac by pressing command+shift+3.
I read it just for kicks. It’s great. And I am not even Windows programmer!
Thanks for the excellent blog Raymond.
Raymond has been referred to by more than one person internally as "A living encyclopedia of Windows history".
He inspires most of the developers inside Microsoft, most of us aspire to be as talented as he is.
And I’m not writing this to butter him up.
Raymond, your blog rocks, and I read it every single day (well, except when I can’t get to a computer). Thanks a million for all the useful information, and don’t let a few complainers get you down! I’m sure 99.99% of the people that read your blog are very appreciative.
If you get many more people asking about a explorer replacement you can send them here
http://www.sky.franken.de/explorer/
or here
http://www.reactos.org
We are working on a explorer.exe replacement that functions and looks like the Windows explorer. Its LGPL so they are free to hack all they want.
Modified dialogue from ‘As Good as It Gets’,
You make me want to be a better ‘programmer’.
Raymond, your blog is simply awesome and I am sure it inspires lots of people, please never ever abandon this hobby of yours!
Cheers!
JD
I guees I haven’t got anything new to add to this thread, but: I read your blog every day and I enjoy it very much.
Don’t stop.
Glenn
Don’t worry about what people say Raymond, keep up the good work, and remember to have fun! Life’s too short to worry about people trying to put you down.
"What’s with that taskbar bug where you click the button for one window and another pops up right before it does?"
I get this occasionally, and as yet haven’t been able to isolate the exact cause, although some programs seem to suffer from it more than others. (Outlook 98 suffers very badly, but it also has a whole range of focus issues so I suspect something’s deeply broken in it.)
Anyway, your blog is probably my favourite of the MSFT ones I read regularly, so don’t get discouraged by the moron minority. (Eric Lippert and Larry Osterman are close behind, which I only mention as I know they read this. :)
Mat: There are two cases I know of. One is where the application has a dialog open and the dialog is restored on top of it, but I don’t think that’s what the question about. The other one is where the taskbar button corresponds to a hidden window and the application forwards messages from the hidden window to a normal window without a taskbar button. Visual Studio does this for some reason, and there is a known bug in Visual Studio (or maybe in Windows) that causes the hidden window to appear sometimes; see <http://groups.google.com/groups?threadm=aJEWM3dLEHA.3900%40cpmsftngxa10.phx.gbl>. Some of the Office apps do something similar as part of their fake SDI, and it’s conceivable that they suffer from a similar bug.
Norman: missing notification icons are bugs in the applications that created them. If you create a notification icon, you should listen for the "TaskbarCreated" registered window message and recreate the icon if you get it. This only works in Windows 98 and higher, Windows 2000 and higher, and Windows 95 and NT 4.0 with the Shell Update installed – it was a new feature in IE 4.0. See http://msdn.microsoft.com/library/en-us/shellcc/platform/shell/programmersguide/shell_int/shell_int_programming/taskbar.asp.
This should be documented alongside the Shell_NotifyIcon function, however. If Explorer does crash, use the error reporting feature to report the crash to MS.
Anyway, the decision to make Explorer monolithic was taken back in the design stages of Windows 95; modifying it now would mean extensive changes to the code with a high probability of introducing bugs with no benefit.
I for one have learnt a lot of interesting snippets from your Blog Raymond, many thanks for the time you *do* choose to spend on this hobby.
I feel guilty about not updating my website more often but its important to achieve a balance in life and if you end up getting so frustrated with something and the pressures behind it that you just give up then that helps nobody. You can’t maintain a sprinters pace the whole way if you’re running a marathon and I’m glad you know that you shouldn’t have to try.
Just one more voice to add: don’t listen to the detractors, just keep doing what you are doing. A lot of people – me included – are getting a lot of value out of what you do take time for.
Thanks.
I always thought that was just a technique to avoid comment spam!
Raymond,
Just wanted to say "Thanks!" for all the work you’ve done. I’ve only known about your blog for a couple of months but you’re definitely a "must-read".
Please don’t let a few rotten apples ruin it for you (and by extension, the rest of us).
10/14/2004 6:05 AM Mike Dimmick
> Norman: missing notification icons are bugs
> in the applications that created them.
OK, I believe you, but in my experience most of those "applications" are part and parcel of Windows (some of them being built into Windows even before Internet Explorer was).
> If Explorer does crash, use the error
> reporting feature to report the crash to MS.
No kidding. Sometimes the error reporting feature doesn’t pop up though. I’ve never found any relationship to anything else going on at the time, to try to guess if the appearance or non-appearance of the error reporting feature was anything other than random. Also one time at a friend’s house when Explorer crashed about 30 times in a row I only sent around half of them to Microsoft.
> Anyway, the decision to make Explorer
> monolithic was taken back in the design
> stages of Windows 95; modifying it now would
> mean extensive changes to the code with a
> high probability of introducing bugs with no
> benefit.
But Windows Explorer WAS modified when Microsoft decided that Internet Explorer would turn into an essential component of Windows 95. Yes the Shell Update was valuable, but the rest of the integration of IE did indeed introduce bugs with no benefit. Hmm, I wonder if I ever saw Windows Explorer crash in the original version of Windows 95, without IE…
""What’s with that taskbar bug where you click the button for one window and another pops up right before it does?"
I’ve never see this.
"
Make a window unminimizable (e.g. pop up a modal dialogue box in it).
Hit "show desktop" (which, as we know, minimizes all windows and then brings the desktop to the top of the z-order).
Click the taskbar button for an app other than the unminimizable app.
What happens? First the desktop jumps to the bottom of the z-order, then the app you clicked restores itself. But because jumping to the bottom of the z-order reveals the unminimizable app, it appears that that window pops up right before. It’s not really popping up (it was always popped up, just hidden), but it appears that way.
================================
""Why can’t I rename My Computer?" "
As you say, that works.
But why can’t I rename the recycle bin except through registry hacking?
================================
""Why is explorer.exe monolithic? Why wasn’t there a desktop.exe, taskbar.exe, etc?"
Processes are expensive."
Not that expensive. Not any more. But the shell still crashes. And it’s infuriating.
It’s doubly infuriating if you enabled "browse folders in new process".
If you hit Win+E you don’t get a new process. If in the resultant window you click a folder to open it, a second explorer window opens to this folder; this window *is* a new process. Similarly Win+F.
If you have custom folder icons set (for example, mine are brown instead of the default yellow folders), only the "shell" explorer.exe instance honours the settings. New processes get yellow folders.
If you have a file browser open in a new instance and the shell crashes, the attempt to restart the shell fails. A new copy of explorer is loaded, but it loads as a file browsing instance, not a shell instance. You’ve got to kill all the file browser instances *then* restart the shell.
Restarting the shell re-orders the taskbar buttons. I understand why it does, but it’s annoying nonetheless. Particularly since I can’t drag and drop taskbar buttons to reorder them myself.
http://www.google.com.au/search?q=cache:z-nWpD-Qq-0J:blogs.msdn.com/aaron_margosis/archive/2004/07/24/195350.aspx+http://blogs.msdn.com/aaron_margosis/+candy&hl=en&lr=lang_en|lang_es
This is where I list some testing showing the the new process rules are NOT followed by explorer, in fact it seems pretty random.
I have to use google as his web page will not load and hasn’t for a few weeks.
> And every time you create a rooted Explorer window with the /root, command line option (a.k.a., Explore from here), it gets its own, brand-new process.
In experimenting I find All /root windows go into a third process not seperate processes most of the time.
EG
Start My Comp
Start any number of /root from Start Run
Max Process is 3
and + but
Start a /root from Start Run
Start a second
Max Process = 3
Now start My Comp (from QL)
Max Process = 3
Start a /root
Max Process = 4
This is screwy. The rules don’t seem so simple.
/root changes the rules. It usually forces a new copy of explorer.exe (since you’re changing the namespace root). /root does not mean "Show me this directory tree only" – it actually changes the namespace in essential ways.
Thanks for all the amazing posts Raymond. I’ve learnt more from your blog on Windows internals than most *official* sources – and the anecdotes show us that people actually exist behind the *Windows* brand.
Don’t let these people get you down(and I know that I’ve been guilt of annoying you in the past as well :-) ).
As for the mutant/mutex thing, I remember reading somewhere (was it Inside Windows 2000?) that it was a decision from Dave Cutler.
From http://blogs.msdn.com/larryosterman/archive/2004/09/24/233969.aspx
The name mutant has a colorful history. Early in Windows NT’s development, Dave Cutler created a kernel mutex object that implemented low-level mutual exclusion. Later he discovered that OS/2 required a version of the mutual exclusion semaphore with additional semantics, which Dave considered "brain-damaged" and which was incompatible with the original object. (Specifically, a thread could abandon the object and leave it inaccessible.) So he created an OS/2 version of the mutex and gave it the name mutant. Later Dave modified the mutant object to remove the OS/2 semantics, allowing the Win32 subsystem to use the object. The Win32 API calls the modified object mutex, but the native services retain the name mutant.
"Don’t let the bastards grind you down :)"
That’s a line from a (great) U2 song (Acrobat)…
Anyway I must say I greatly enjoy your blog Raymond and I want to thank you for taking the time to write it.
I’ve found much of the technical stuff to come in handy every now and then. I mean like your series on scrollbars which I just read through briefly when they where posted long ago, but had a reason to revisit like a month ago. But that’s not all, I often find myself looking through the archives here, thinking: "I know Raymond wrote about this, I just have to remember when…"
Sorry for the buttery post but I feel this is the wrong time for a request…
It might have been easier to say what you will respond to…
FTR (and I’m sure this will entirely ruin the credibility of this post and any other you have mad :)) you did once invite debate on sharing the Office UI when you mentioned an historical example of exactly that!