And I just figured out the terminology for why: they're not a capability. And I'm not a raving capabilities geek like the erights folks, it's just that passwords are so "exposed" by virtue of the fact that they're entered, often in plain sight, and typically for other mechanisms, have to be stored in config files that now have to be kept nonreadable, because they contain database passwords. Every other security mechanism I'm comfortable with isn't really subject to the guessing attacks, to being written down, to being exposed. Everyone can look at an ACL or a PAM config file, know who has the access, but it's all quite pat, one has the access already by virtue of having some existing credentials, or they don't. Nothing that can be taken and duplicated, no piece of information that can get stale and has to be changed.
I guess that's just how it works, you have to initiate the chain of authentication/authorization somewhere, and lacking a physical token, you choose something that's easily replicated to whatever needs the security. A secret stored as a string fits that bill nicely.
About the only thing that feels "squishier" than passwords than passwords is the timeout aspects of kerberos auth... the whole notion of a timeout as a security feature just feels like a race condition to me.
Good explanation... I stand corrected. mod parent up. I'm not fond of comments in general either -- I'm a fan of the SCID (source code in database) concept that would allow for cleaner separation of code and comment, such that boilerplate need not be inlined, leaving inline comments for only critical things. However, while we're stuck with flat files, it's never a good idea to eschew stuff like javadoc/doxygen "boilerplate" for any public method except perhaps simple accessors (and a setter should still document expected input).
I was going to address your points individually, but frankly I think you've written everyone off already. I hope you're putting up an anti-Sun page right now, excoriating them for their spyware, and calling for a class-action suit or something. Would serve you right when you end up with egg on your face.
None of the above comments go any way towards answering my question.
What question? You started with an accusation. Your accusation was demolished. You weren't told what you want to hear, so you're throwing a tantrum. By all means, do pick up your ball and go home.
If I want to add an 'else' to the first if, I have to add braces.
Unless you're using python, which won't even let you. In a language with braces, I can at least hilight the block and let the editor reformat it.
Also, 'goto' is not bad. Really. When you have to break from several loops, or just to avoid deep nesting of statements, a well placed 'goto end' is way clearer and faster than useless functions and silly 'flag_to_see_if_we_have_to_exit' variables.
When 'goto' is simply used to jump out to some label that's right at the end of a loop, that's one thing. It's usually far better to use 'return' and inline statements. If the exit was caused by an exceptional condition, you should be using structured exception handling, though C lacks it entirely (it's not too hard to add it with macros, check the LambdaMOO source code for an example) and C++'s implementation is badly botched (threw from a destructor? hello segfault.) Never said C made for very maintainable code.
Don't forget that after compilation, any program will have 70% of goto-like assembler opcodes.
By that logic, why not just program in asm? You had to know you were going to get called on that one.
If you define structure with public stuff but default, why the hell are you using 'class'? Use 'struct'. The only difference between 'class' and 'struct' is that 'class' has private members by default, while 'struct' has them public by default.
Why should he? He's not writing C. Why should he have to double the syntax when, as you said, 'class' would do the exact same thing? Maybe it's better that he explicitly has to make everything public. Maybe he thinks, as do programmers in most other languages that support classes and struct, of structs as being mere aggregated data and classes being actual object definitions. Or maybe he just likes browsing through classes by searching for "class " in his editor. Just because the language supports something doesn't mean he has to do it, especially when it actually reduces the value of the code.
Yunno, I'm really getting sick of Fowler's "worse is better" nonsense trying to win back the day for "cowboy coders" who can't handle any discpline at all and want to treat critical production code as a playground. I'm starting to think that projects are succeeding in spite of his "methodology" , and not because of it.
- boilerplate comment at the top of a file: helps noone but lawyers.
Meaninglessly vague. Is javadoc boilerplate? I don't like a stupid compiler that isn't self-documenting (hint, emacs is) but until then, we have this.
- change history comment: better use your source control tool to maintain this.
This guy must have a massively cool source control tool that actually shows him the changelog on a per-function basis, and automatically senses and shows only the changes that are significant, like an interface change. Or should every developer memorize today's changelog?
- comment before a class: does this mean the class is badly named, or too complex? - comment before a method: ditto.
The latter. We don't always get to write everything from scratch. Much less rewrite it 10 times a day for fun.
- comment inside a method: could be a smaller method screaming to get out.
The first is specific to perl. How many PerlScript ASP pages are there out there?
The second is specific to php, and isn't magically going to make your ADO or MTS stuff work in PHP. In fact, nothing at all that uses OLE or COM will work. If all your ASP does is read some cookies, do some basic string munging on simple variables, and spit them into a template, then sure, that'll be fine. Trivial conversion for trivial apps.
A lot of things are different with the look and feel of KDE/GNOME and Windows. What do you tell a person who has no experience with Linux to do when Konqueror goes crazy as it often does? You cannot simply say "oh if your desktop locks up, hit alt-control-delete select explorer.exe, hit kill, the select file, new task and type explorer.exe"
Funny thing that... I am constantly having to do exactly that on my win2k box. explorer.exe just goes berzerk and takes up 99% CPU, the fan starts running extra high speed, everything gets sluggish, the desktop display gets screwed (!) up until redrawn... Naturally windows won't even let me attach a debugger to explorer because it's "the desktop" (you can, it's just really really painful)... even though I'm running without explorer right now.
Anyway, most users don't know about ctl-alt-del. They call support when it goes berzerk. Or frob the power switch to reboot it.
<rant>Thinking from a user's perspective isn't rocket science, people. You just need to stop being so damn fond of the operating system and all the technology, and think in terms of what you're actually doing on it instead.</rant>
Re:Development Processes be damned..
on
Bitter Java
·
· Score: 2
Oof. Got the design completely wrong. Typos, I swear.... yeah. Anyway, http://www.haskell.org/tutorial/patterns.html, which is actually talking about lazy pattern binding, but still introduces the design as two functions that are infinitely recursive, generating two infinitely long lists... yes, lazy evaluation is weird.
Re:Development Processes be damned..
on
Bitter Java
·
· Score: 2
are you saing that every lisp program you come across has a completely different design?
For lisp, probably not. Most lisp is peppered with imperative things, even the language itself supports sequenced stateful execution without requiring you to explicitly pass states around. For a functional language like haskell, definitely. It's hard to wrap one's brain around a client/server design being implemented as something like (in pseudocode):
function client(serverdata)
return server(clientdata) function server(clientdata)
return client(serverdata)
And where clientdata and serverdata are infinitely large. Neat pattern when you finally get it tho...
Re:Development Processes be damned..
on
Bitter Java
·
· Score: 3, Informative
The only programmers using design patterns are C++ and Java programmers.
The book was originally written with SmallTalk in mind. Maybe you should stick to just saying "object-oriented" (I suppose 99% of which are C++ and Java programmers, though VB is finally truly object oriented, so it applies to them too)
Do you know why? Because the "patterns" are meant to overcome language hurdles that dont occur in lisp and strictly functional languages.
Give me just one example so I can begin to take you seriously. There are just different hurdles. First off, let's be clear, lisp is not by any means a "strictly" functional language. Strictly functional means no side effects. At all. Which is fine if you want to wrap everything up into typeful states and pass them around with syntactic sugar ala monads, but guess what, you just implemented a pattern. One that has a bit more mathematical category theory behind it, but it's still a pattern, imposing a structure on your overall design that may or may not fit your needs.
I really don't understand why every UNIX distribution isn't making these moves.
Because the GNU utilities also come with Richard Stallman hounding you and everyone connected with you to rename your OS and prefix a GNU/ in front of it...
More seriously, they come with the GPL: while 'cp' isn't exactly primo intellectual property, it makes even the developers (not just the lawyers) happy to have a base system that's all owned -- coders would rather think about technical compatibility when they copy or link in a routine from another subsystem... not political compatibility. Developers don't want to lose their job because the flagship product needs a critical component replaced if it doesn't want to become GPL'd.
Well, Solaris sucks compared to Linux in the ease of use and ability to script your work easy, man pages, utilities,... and many more aspects. It might be superior OS in matter of stability or effectiveness to use the SPARC platform, but...
Actually, what I really like about Solaris is that most of the utilities aren't GNU, and thus don't have that asinine "the real documentation is in the info pages" excuse for a manpage that plagues most linux distros (I understand some distros run info2man to correct that... not sure which ones). What with the utils not being gnu of course makes for some under-featured utils, but I try to not use gnu-isms anyway if I can help it.
No, the all-in-one-giant-page format of manpages is not ideal for complex apps (it got really ridiculous for perl before they split it up) but it is handy for most utilities.
NFS that works out of the box with all the wizzy features like failovered mounts is also nice...
If someone grabs your smartcard, why wouldn't they just *use* it. Or call the credit card company, tell them they're you, pass their rigourous security screening questions like asking for your social security number, and get a new card. Social engineering is a lot easier than tunnelling a flash with a microscope.
Jesus... it's a *key*. That's why you keep keys safe. Someone grabs my keys (those little jangly jagged metal things), they can use them, and if they have key duplicating equipment, they can duplicate my keys. Big deal.
Yay, 1500 posts... maybe someday I'll say something interesting;)
But why are they competing against each other? The open source community should be one group of like minded people fighting to make open source a viable alternative to closed source, and making it recognized as such to a large number of people.
Funny, I just fight to get the best software. And it is a viable alternative -- most of the time. C'mon, do we really need to explain the concept of competition to you after this:
I switched out of RedHat to Mandrake.
Because it was better, right?
And I'm planning on trying out SuSe.
Having choice is good, no? But really those are all redhat-ish (SuSe is pretty weird, but it's still an rpm system -- just the rpm's have horrible names). Give debian a try, or gentoo.
Re:You cannot deny GCC is the heart of free softwa
on
The Stallman Factor
·
· Score: 2, Flamebait
Yunno... I don't see Ken Thompson going around and demanding fealty from everyone for having written Unix. Welcome to the world of technology -- scratch that, welcome to the real world, where people have natural tendencies to push away people who demand gratitude. My mother doesn't claim credit for all my accomplishments, and she did a whole lot more than just provide half the chromosones...
GCC was not the first freely available compiler, nor is it the only one out there. Compiler hackers could have just as easily worked on lcc and shut RMS up for good.
ESR still writes code to this day. Ever browse Sourceforge's Trove? He created it. Compile a recent kernel? The piece that figures out the complex kernel configuration dependency logic is his. Then there's fetchmail. of course (not that it was really worth writing a software engineering theory paper over). He maintains the Jargon File. And he probably has more elisp contributions to emacs than RMS. Just about everywhere I go, I see something with ESR as a contributor.
But you weren't really interested in the truth, were you?
No one would ever pay for a stock that has no potential to ever pay a dividend
They do all the time. It's called increased value. Do you think Warren Buffet got rich from dividend checks? No, he invested in "adolescent" companies (as he called them) that had good potential for maturity. He buys a dollar of stock, they take it and make a dollar of profit with it that is reinvested into the company. His stock has just doubled in book value alone -- the demand for the limited supply of this company's stock will push it up even more than that. And they didn't even send him any money. Yes, his money is on paper, but he can convert it to cold hard cash with one phone call.
Outlook: the mailing interface in mozilla is native, it already was in netscape 4. MS help: just some html files make already great help. what is "vs url's" (da snap ik nie).
Not sure how to explain myself better (was that dutch?). The outlook: url actually launches outlook -- it's not something Mozilla does, it's something Mozilla calls in one of the IE API's (urlmon.dll I think, but I'm not much of a windows developer). I'm sure mozilla will work without IE -- the point is, it works with it. This is a lot different than IE being Mozilla's enemy, it's mozilla working with IE, and IE's API working well with mozilla. IE didn't have to be destroyed first.
A vs URL points to things in visual studio -- you can link to workspaces and projects and other things in visual studio, using a vs url. I'm not that familiar with it, I just don't think it's very useful except for sharing information between developers.
They don't use the functionality provided from Microsoft applications, only the Win32 API
Um, there's the matter of the fact that those url's do work from mozilla. Not in mozilla, since the container has no way to capture it (IE doesn't try to either), but this urldoes work on win32 mozilla if you have outlook installed. Not OE, Outlook. I wasn't even talking about OE, I don't even know why you brought it up.
And it's not the Win32 API. It's not even MFC. It's an API that IE provides and the rest of windows (such as outlook) uses.
Most tree-huggers are pretty aware of how resilient nature is, and are more interested in keeping earth nice and pretty for themselves. Nothing terribly wrong with that, really. A foreign life form could sure change things around -- look what blue-green bacteria did, killed nearly *everything* else off with that noxious "oxygen" stuff -- but there's mass, gravity, sunlight... yeah, earth would survive. We might not.
And I just figured out the terminology for why: they're not a capability. And I'm not a raving capabilities geek like the erights folks, it's just that passwords are so "exposed" by virtue of the fact that they're entered, often in plain sight, and typically for other mechanisms, have to be stored in config files that now have to be kept nonreadable, because they contain database passwords. Every other security mechanism I'm comfortable with isn't really subject to the guessing attacks, to being written down, to being exposed. Everyone can look at an ACL or a PAM config file, know who has the access, but it's all quite pat, one has the access already by virtue of having some existing credentials, or they don't. Nothing that can be taken and duplicated, no piece of information that can get stale and has to be changed.
I guess that's just how it works, you have to initiate the chain of authentication/authorization somewhere, and lacking a physical token, you choose something that's easily replicated to whatever needs the security. A secret stored as a string fits that bill nicely.
About the only thing that feels "squishier" than passwords than passwords is the timeout aspects of kerberos auth... the whole notion of a timeout as a security feature just feels like a race condition to me.
Good explanation ... I stand corrected. mod parent up. I'm not fond of comments in general either -- I'm a fan of the SCID (source code in database) concept that would allow for cleaner separation of code and comment, such that boilerplate need not be inlined, leaving inline comments for only critical things. However, while we're stuck with flat files, it's never a good idea to eschew stuff like javadoc/doxygen "boilerplate" for any public method except perhaps simple accessors (and a setter should still document expected input).
I was going to address your points individually, but frankly I think you've written everyone off already. I hope you're putting up an anti-Sun page right now, excoriating them for their spyware, and calling for a class-action suit or something. Would serve you right when you end up with egg on your face.
None of the above comments go any way towards answering my question.
What question? You started with an accusation. Your accusation was demolished. You weren't told what you want to hear, so you're throwing a tantrum. By all means, do pick up your ball and go home.
Most of us stopped calling spelling "english" when we were in grade 5. Why do people still call arithmetic "math" ??
Most of us stopped caring when we got laid.
If I want to add an 'else' to the first if, I have to add braces.
Unless you're using python, which won't even let you. In a language with braces, I can at least hilight the block and let the editor reformat it.
Also, 'goto' is not bad. Really. When you have to break from several loops, or just to avoid deep nesting of statements, a well placed 'goto end' is way clearer and faster than useless functions and silly 'flag_to_see_if_we_have_to_exit' variables.
When 'goto' is simply used to jump out to some label that's right at the end of a loop, that's one thing. It's usually far better to use 'return' and inline statements. If the exit was caused by an exceptional condition, you should be using structured exception handling, though C lacks it entirely (it's not too hard to add it with macros, check the LambdaMOO source code for an example) and C++'s implementation is badly botched (threw from a destructor? hello segfault.) Never said C made for very maintainable code.
Don't forget that after compilation, any program will have 70% of goto-like assembler opcodes.
By that logic, why not just program in asm? You had to know you were going to get called on that one.
If you define structure with public stuff but default, why the hell are you using 'class'? Use 'struct'. The only difference between 'class' and 'struct' is that 'class' has private members by default, while 'struct' has them public by default.
Why should he? He's not writing C. Why should he have to double the syntax when, as you said, 'class' would do the exact same thing? Maybe it's better that he explicitly has to make everything public. Maybe he thinks, as do programmers in most other languages that support classes and struct, of structs as being mere aggregated data and classes being actual object definitions. Or maybe he just likes browsing through classes by searching for "class " in his editor. Just because the language supports something doesn't mean he has to do it, especially when it actually reduces the value of the code.
Yunno, I'm really getting sick of Fowler's "worse is better" nonsense trying to win back the day for "cowboy coders" who can't handle any discpline at all and want to treat critical production code as a playground. I'm starting to think that projects are succeeding in spite of his "methodology" , and not because of it.
- boilerplate comment at the top of a file: helps noone but lawyers.
Meaninglessly vague. Is javadoc boilerplate? I don't like a stupid compiler that isn't self-documenting (hint, emacs is) but until then, we have this.
- change history comment: better use your source control tool to maintain this.
This guy must have a massively cool source control tool that actually shows him the changelog on a per-function basis, and automatically senses and shows only the changes that are significant, like an interface change. Or should every developer memorize today's changelog?
- comment before a class: does this mean the class is badly named, or too complex?
- comment before a method: ditto.
The latter. We don't always get to write everything from scratch. Much less rewrite it 10 times a day for fun.
- comment inside a method: could be a smaller method screaming to get out.
Another smaller, uncommented method, no doubt.
Apache::ASP and asp2php exist
The first is specific to perl. How many PerlScript ASP pages are there out there?
The second is specific to php, and isn't magically going to make your ADO or MTS stuff work in PHP. In fact, nothing at all that uses OLE or COM will work. If all your ASP does is read some cookies, do some basic string munging on simple variables, and spit them into a template, then sure, that'll be fine. Trivial conversion for trivial apps.
A lot of things are different with the look and feel of KDE/GNOME and Windows. What do you tell a person who has no experience with Linux to do when Konqueror goes crazy as it often does? You cannot simply say "oh if your desktop locks up, hit alt-control-delete select explorer.exe, hit kill, the select file, new task and type explorer.exe"
... I am constantly having to do exactly that on my win2k box. explorer.exe just goes berzerk and takes up 99% CPU, the fan starts running extra high speed, everything gets sluggish, the desktop display gets screwed (!) up until redrawn ... Naturally windows won't even let me attach a debugger to explorer because it's "the desktop" (you can, it's just really really painful) ... even though I'm running without explorer right now.
Funny thing that
Anyway, most users don't know about ctl-alt-del. They call support when it goes berzerk. Or frob the power switch to reboot it.
<rant>Thinking from a user's perspective isn't rocket science, people. You just need to stop being so damn fond of the operating system and all the technology, and think in terms of what you're actually doing on it instead.</rant>
Oof. Got the design completely wrong. Typos, I swear .... yeah. Anyway, http://www.haskell.org/tutorial/patterns.html, which is actually talking about lazy pattern binding, but still introduces the design as two functions that are infinitely recursive, generating two infinitely long lists ... yes, lazy evaluation is weird.
are you saing that every lisp program you come across has a completely different design?
For lisp, probably not. Most lisp is peppered with imperative things, even the language itself supports sequenced stateful execution without requiring you to explicitly pass states around. For a functional language like haskell, definitely. It's hard to wrap one's brain around a client/server design being implemented as something like (in pseudocode):
function client(serverdata)
return server(clientdata)
function server(clientdata)
return client(serverdata)
And where clientdata and serverdata are infinitely large. Neat pattern when you finally get it tho...
The only programmers using design patterns are C++ and Java programmers.
The book was originally written with SmallTalk in mind. Maybe you should stick to just saying "object-oriented" (I suppose 99% of which are C++ and Java programmers, though VB is finally truly object oriented, so it applies to them too)
Do you know why? Because the "patterns" are meant to overcome language hurdles that dont occur in lisp and strictly functional languages.
Give me just one example so I can begin to take you seriously. There are just different hurdles. First off, let's be clear, lisp is not by any means a "strictly" functional language. Strictly functional means no side effects. At all. Which is fine if you want to wrap everything up into typeful states and pass them around with syntactic sugar ala monads, but guess what, you just implemented a pattern. One that has a bit more mathematical category theory behind it, but it's still a pattern, imposing a structure on your overall design that may or may not fit your needs.
I really don't understand why every UNIX distribution isn't making these moves.
... not political compatibility. Developers don't want to lose their job because the flagship product needs a critical component replaced if it doesn't want to become GPL'd.
Because the GNU utilities also come with Richard Stallman hounding you and everyone connected with you to rename your OS and prefix a GNU/ in front of it...
More seriously, they come with the GPL: while 'cp' isn't exactly primo intellectual property, it makes even the developers (not just the lawyers) happy to have a base system that's all owned -- coders would rather think about technical compatibility when they copy or link in a routine from another subsystem
Well, Solaris sucks compared to Linux in the ease of use and ability to script your work easy, man pages, utilities, ... and many more aspects. It might be superior OS in matter of stability or effectiveness to use the SPARC platform, but ...
... not sure which ones). What with the utils not being gnu of course makes for some under-featured utils, but I try to not use gnu-isms anyway if I can help it.
Actually, what I really like about Solaris is that most of the utilities aren't GNU, and thus don't have that asinine "the real documentation is in the info pages" excuse for a manpage that plagues most linux distros (I understand some distros run info2man to correct that
No, the all-in-one-giant-page format of manpages is not ideal for complex apps (it got really ridiculous for perl before they split it up) but it is handy for most utilities.
NFS that works out of the box with all the wizzy features like failovered mounts is also nice...
If someone grabs your smartcard, why wouldn't they just *use* it. Or call the credit card company, tell them they're you, pass their rigourous security screening questions like asking for your social security number, and get a new card. Social engineering is a lot easier than tunnelling a flash with a microscope.
... it's a *key*. That's why you keep keys safe. Someone grabs my keys (those little jangly jagged metal things), they can use them, and if they have key duplicating equipment, they can duplicate my keys. Big deal.
Jesus
Yay, 1500 posts ... maybe someday I'll say something interesting ;)
But why are they competing against each other? The open source community should be one group of like minded people fighting to make open source a viable alternative to closed source, and making it recognized as such to a large number of people.
Funny, I just fight to get the best software. And it is a viable alternative -- most of the time. C'mon, do we really need to explain the concept of competition to you after this:
I switched out of RedHat to Mandrake.
Because it was better, right?
And I'm planning on trying out SuSe.
Having choice is good, no? But really those are all redhat-ish (SuSe is pretty weird, but it's still an rpm system -- just the rpm's have horrible names). Give debian a try, or gentoo.
Yunno ... I don't see Ken Thompson going around and demanding fealty from everyone for having written Unix. Welcome to the world of technology -- scratch that, welcome to the real world, where people have natural tendencies to push away people who demand gratitude. My mother doesn't claim credit for all my accomplishments, and she did a whole lot more than just provide half the chromosones...
GCC was not the first freely available compiler, nor is it the only one out there. Compiler hackers could have just as easily worked on lcc and shut RMS up for good.
ESR is just some sort of leeching gasbag.
ESR still writes code to this day. Ever browse Sourceforge's Trove? He created it. Compile a recent kernel? The piece that figures out the complex kernel configuration dependency logic is his. Then there's fetchmail. of course (not that it was really worth writing a software engineering theory paper over). He maintains the Jargon File. And he probably has more elisp contributions to emacs than RMS. Just about everywhere I go, I see something with ESR as a contributor.
But you weren't really interested in the truth, were you?
I know I am not looking forward to the day RMS is unable to continue his mission with the open source movement.
Oooooohhhhh man, I can just see RMS's eyeball twitching and that vein throbbing right now...
No one would ever pay for a stock that has no potential to ever pay a dividend
They do all the time. It's called increased value. Do you think Warren Buffet got rich from dividend checks? No, he invested in "adolescent" companies (as he called them) that had good potential for maturity. He buys a dollar of stock, they take it and make a dollar of profit with it that is reinvested into the company. His stock has just doubled in book value alone -- the demand for the limited supply of this company's stock will push it up even more than that. And they didn't even send him any money. Yes, his money is on paper, but he can convert it to cold hard cash with one phone call.
I dunno, maybe when the combined incompetence of these two companies reaches a head, then we will see a loss of all 150,000 jobs...
Funny how everyone who makes the mildest defense of Microsoft gets accused of being a paid astroturfer, while this troll gets modded up to a 5.
I had replies to some of these points, but I don't really think it deserves it until the author is capable of speaking like a civilized human.
Outlook: the mailing interface in mozilla is native, it already was in netscape 4.
MS help: just some html files make already great help.
what is "vs url's" (da snap ik nie).
Not sure how to explain myself better (was that dutch?). The outlook: url actually launches outlook -- it's not something Mozilla does, it's something Mozilla calls in one of the IE API's (urlmon.dll I think, but I'm not much of a windows developer). I'm sure mozilla will work without IE -- the point is, it works with it. This is a lot different than IE being Mozilla's enemy, it's mozilla working with IE, and IE's API working well with mozilla. IE didn't have to be destroyed first.
A vs URL points to things in visual studio -- you can link to workspaces and projects and other things in visual studio, using a vs url. I'm not that familiar with it, I just don't think it's very useful except for sharing information between developers.
They don't use the functionality provided from Microsoft applications, only the Win32 API
Um, there's the matter of the fact that those url's do work from mozilla. Not in mozilla, since the container has no way to capture it (IE doesn't try to either), but this url does work on win32 mozilla if you have outlook installed. Not OE, Outlook. I wasn't even talking about OE, I don't even know why you brought it up.
And it's not the Win32 API. It's not even MFC. It's an API that IE provides and the rest of windows (such as outlook) uses.
Most tree-huggers are pretty aware of how resilient nature is, and are more interested in keeping earth nice and pretty for themselves. Nothing terribly wrong with that, really. A foreign life form could sure change things around -- look what blue-green bacteria did, killed nearly *everything* else off with that noxious "oxygen" stuff -- but there's mass, gravity, sunlight ... yeah, earth would survive. We might not.