Kuro5hin.org: technology and culture, from the trenches
create account | help/FAQ | contact | links | search | IRC | site news
[ Everything | Diaries | Technology | Science | Culture | Politics | Media | News | Internet | Op-Ed | Fiction | Meta | MLP ]
We need your support: buy an ad | premium membership

[P]
We Are Morons: a quick look at the Win2k source

By Selznak in Technology
Mon Feb 16, 2004 at 07:38:15 AM EST
Tags: Software (all tags)
Software

A quick, superficial look at the style and content of the leaked Windows 2000 source. I quote from the comments but not the code, so this should be safe for developers to read.


Overview
Several days ago, two files containing Microsoft source code began circulating on the Internet. One contains a majority of the NT4 source code: this is not discussed here. The other contains a fraction of the Windows 2000 source code, reportedly about 15% of the total. This includes some networking code including winsock and inet; as well as some shell code. Some other familiar items include the event log, and some of the default screensavers.

The timestamps on the files generally say 25 July 2000. The source is contained in a Zip file of size 213,748,207 bytes, named windows_2000_source_code.zip, which has been widely circulated on P2P networks. Some dummy files of similar size, containing just strings of zeroes, have also circulated.

There has been some speculation that while the bulk of the source is genuine, some of the comments have been tampered with to embarrass Microsoft. This is difficult to disprove, but I find it implausible. The embarrassing comments occur on thousands of lines, in realistic places. Furthermore, if someone had done that, it would have been easy to make the comments far more incriminating.

Embarrassments
In the struggle to meet deadlines, I think pretty much all programmers have put in comments they might later regret, including swearwords and acerbic comments about other code or requirements. Also, any conscientious coder will put in prominent comments warning others about the trickier parts of the code. Comments like "UGLY TERRIBLE HACK" tend to indicate good code rather than bad: in bad code ugly terrible hacks are considered par for the course. It would therefore be both hypocritical and meaningless to go through the comments looking for embarrassments. But also fun, so let's go.

Curse words: there are a dozen or so "fucks" and "shits", and hundreds of "craps". Some dissatisfaction with the compiler is expressed in private\shell\shell32\util.cpp:

// the fucking alpha cpp compiler seems to fuck up the goddam type "LPITEMIDLIST", so to work
// around the fucking peice of shit compiler we pass the last param as an void *instead of a LPITEMIDLIST
Some insight into Microsoft's famous daily build process is given in private\windows\media\avi\verinfo.16\verinfo.h:
* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
* !!!!!!!IF YOU CHANGE TABS TOSPACES,YOUWILLBEKILLED!!!!!!!
* !!!!!!!!!!!!!!DOING SOFUCKSTHEBUILDPROCESS!!!!!!!!!!!!!!!!
* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
There are also various references to idiots and morons, some external, some within Microsoft. The file private\ntos\rtl\heap.c, which dates from 1989, tells us
// The specific idiot in this case is Office95, which likes
// to free a random pointer when you start Word95 from a desktop
// shortcut.
The file private\ntos\w32\ntuser\kernel\swp.c from 11-Jul-1991 points at
* for idiots like MS-Access 2.0 who SetWindowPos( SWP_BOZO
* and blow away themselves on the shell, then lets
* just ignore their plea to be removed from the tray
Morons also abound, as in this selection
private\genx\shell\inc\prsht.w:
// we are such morons. Wiz97 underwent a redesign between IE4 and IE5

private\shell\ext\ftp\ftpdrop.cpp:
We have to do this only because Exchange is a moron.

private\shell\shdoc401\unicpp\desktop.cpp:
// We are morons. We changed the IDeskTray interface between IE4

private\shell\browseui\itbar.cpp:
// should be fixed in the apps themselves. Morons!

Microsoft programmers also take their duty to warn others seriously. There are over 4,000 references to "hacks", mostly warnings. These include
private\inet\mshtml\src\core\cdbase\baseprop.cxx:
// HACK! HACK! HACK! (MohanB) In order to fix #64710 at this very late

private\inet\mshtml\src\core\cdutil\genutil.cxx:
// HACK HACK HACK. REMOVE THIS ONCE MARLETT IS AROUND

private\inet\mshtml\src\other\moniker\resprot.cxx:
// <HACK>
goto EndHack;
// </HACK>

private\inet\mshtml\src\site\layout\flowlyt.cxx:
// God, I hate this hack ...

private\inet\wininet\urlcache\cachecfg.cxx:
// Dumb hack for back compat. *sigh*

private\inet\wininet\urlcache\filemgr.cxx:
// ACHTUNG!!! this is a special hack for IBM antivirus software

private\ispu\pkitrust\trustui\acuictl.cpp:
// HACK ALERT, believe it or not there is no way to get the height of the current
// HACK ON TOP OF HACK ALERT,

private\ntos\udfs\devctrl.c:
// Add the hack-o-ramma to fix formats.

private\shell\shdoc401\unicpp\sendto.cpp:
// Mondo hackitude-o-rama.

private\ntos\w32\ntcon\server\link.c:
// HUGE, HUGE hack-o-rama to get NTSD started on this process!

private\ntos\w32\ntuser\client\dlgmgr.c:
// HACK OF DEATH:

private\shell\lib\util.cpp:
// TERRIBLE HORRIBLE NO GOOD VERY BAD HACK

private\ntos\w32\ntuser\client\nt6\user.h:
* The magnitude of this hack compares favorably with that of the national debt.

While surprisingly informal, there are limits to how far the programmers go. There are no derogatory references to Microsoft or Windows themselves. Bill Gates is never mentioned. There are no racist or homophobic slurs. I saw only one drug reference.
private\shell\ext\tweakui\genthunk.c:
* CallProc32W is insane. It's a variadic function that uses
* the pascal calling convention. (It probably makes more sense
* when you're stoned.)
Quality
Despite the above, the quality of the code is generally excellent. Modules are small, and procedures generally fit on a single screen. The commenting is very detailed about intentions, but doesn't fall into "add one to i" redundancy.

There is some variety in the commenting style. Sometimes blocks use a // at every line, sometimes the /* */ style. In some modules functions have a history, some do not. Some functions describe their variables in a comment block, some don't. Microsoft appears not to have fallen into the trap of enforcing over-rigid standards or universal use of over-complicated automatic tools. They seem to trust their developers to comment well, and they do.

However, not everything is so rosy. Some of the modules are clearly suffering from the hacks upon hacks mentioned earlier. As someone who struggled immensely trying to get the MSInet control working not long after this code was released, it's a relief to see that the inet code is as bad as I thought.

From the comments, it also appears that most of the uglier hacks are due to compatibility issues: either backward-compatibility, hardware compatibility or issues caused by particular software. Microsoft's vast compatibility strengths have clearly come at a cost, both in developer-sweat and the elegance (and hence stability and maintainability) of the code.

Open Source
It's been widely rumored for a while that Microsoft relies on stolen open source code. The rumor has faced widespread skepticism too. Microsoft has hundreds of millions of lines of code, most of it highly specialized. Hardly any of that could benefit from stealing: it hardly seems worth the legal risk. It's true that early versions of the TCP-IP stack were (legally) taken from BSD: but that was a long time ago, when Microsoft was much smaller.

Searching the code for "linux" and "GPL" finds no references. "BSD" finds only a couple of references to BSD-convention strings. "GNU" finds a lot of references to a GNUmakefile in private\genx\shell, which in turn mentions a "mode for Emacs." This is apparently legitimate: simply using a makefile does not apply the makefile's copyright to the resulting code.

Therefore, a superficial look at the code finds no evidence that Microsoft has violated the GPL or stolen other open source code. Closer examination might turn something up.

Favoritism
It's noticeable that a lot of the "hacks" refer to individual applications. In some cases they are non-Microsoft, such as this case: a Borland compiler came to depend on an existing bug, so their fix worked to preserve some of the bug's behaviour. But just as often these application-specific fixes are for Microsoft's own apps. There seems to be an informal hierarchy when it comes these: Microsoft apps take precedence, then major software companies like IBM and Borland.

It's also interesting to finally see references to the notorious undocumented features, which Microsoft application developers have long been known to use.

private\mvdm\wow32\wcntl32.c:
// These undocumented messages are used by Excel 5.0

private\mvdm\wow32\wgdi31.c:
// InquireVisRgn is an undocumented Win 3.1 API. This code has been
// suggested by ChuckWh. If this does not fix the s 2.0
// problem, then ChuckWh would be providing us with an private entry
// point.

private\mvdm\wow32\wgfont.c:
* This thunk implements the undocumented Win3.0 and Win3.1 API
* GetCurLogFont (GDI.411). Symantec QA4.0 uses it.
* To implement this undocumented API we will use the NT undocumented API

In some cases, the programmers themselves appear to have been frustrated or surprised.
private\ntos\w32\ntuser\kernel\mnpopup.c:
// Set the GlobalPopupMenu variable so that EndMenu works for popupmenus so
// that WinWart II people can continue to abuse undocumented functions.

private\windows\shell\accesory\hypertrm\emu\minitel.c:
// Guess what? Latent background color is always adopted for mosaics.
// This is a major undocumented find...

private\windows\shell\accesory\hypertrm\emu\minitelf.c:
// Ah, the life of the undocumented. The documentation says
// that this guys does not validate, colors, act as a delimiter
// and fills with spaces. Wrong. It does validate the color.
// As such its a delimiter. If...

Conclusions
The security risks from this code appear to be low. Microsoft do appear to be checking for buffer overruns in the obvious places. The amount of networking code here is small enough for Microsoft to easily check for any vulnerabilities that might be revealed: it's the big applications that pose more of a risk. This code is also nearly four years old: any obvious problems should be patched by now.

Microsoft's fears that this code will be pirated by its competitors also seem largely unfounded. With application code this would be a risk, but it's hard to see Microsoft's operating system competitors taking advantage of it. Neither Apple nor Linux are in a much of position to steal code and get away with it, even if it was useful to them.

In short, there is nothing really surprising in this leak. Microsoft does not steal open-source code. Their older code is flaky, their modern code excellent. Their programmers are skilled and enthusiastic. Problems are generally due to a trade-off of current quality against vast hardware, software and backward compatibility.

Sponsors

Voxel dot net
o Managed Hosting
o VoxCAST Content Delivery
o Raw Infrastructure

Login

Poll
Quality of the Win2k source?
o Excellent 16%
o Very good 12%
o Good 18%
o Average 33%
o Poor 8%
o Very poor 2%
o Terrible 8%

Votes: 48
Results | Other Polls

Related Links
o this case
o Also by Selznak


Display: Sort:
We Are Morons: a quick look at the Win2k source | 180 comments (142 topical, 38 editorial, 4 hidden)
Code and copyright (2.14 / 7) (#5)
by marx on Sun Feb 15, 2004 at 07:31:45 AM EST

This is apparently legitimate: I'm told a makefile does not count as code.
I don't see why this is relevant. A book does not count as code, therefore I can copy it and distribute it?

Generally, I think the whole discussion about copyright and software has degenrated into theology. People are just making things up and are not using common sense.

Join me in the War on Torture: help eradicate torture from the world by holding torturers accountable.

IANAL (none / 0) (#6)
by Selznak on Sun Feb 15, 2004 at 07:37:55 AM EST

I don't know. I've been told it's legit, but I'm no lawyer.

No GPL or copyright notice in that file though. *Shrug*

I'll amend the article if I get more info before it goes into post.

[ Parent ]

Then it's usage (none / 0) (#12)
by marx on Sun Feb 15, 2004 at 08:52:35 AM EST

It's not clear from your article, but if they're only using a makefile (to build something), then it doesn't have to do with copyright at all, because they're not redistributing the makefile.

Join me in the War on Torture: help eradicate torture from the world by holding torturers accountable.
[ Parent ]

Aaargh (none / 0) (#14)
by Selznak on Sun Feb 15, 2004 at 09:14:36 AM EST

This confuses the hell out of me, but based on your and squigly's comments I've made it:

"This is apparently legitimate: simply using a makefile does not apply the makefile's copyright to the resulting code"

Any better?

I don't quite get the distribution thing. If I compile from a GPL'd .cpp file, and distribute the resulting binary, then surely I'm still violating the GPL by not releasing the .cpp? Or does that only apply if I've changed the .cpp?

Anyway, the majority opinion seems to be that it's OK, for whatever reasons.

[ Parent ]

The makefile is a tool (none / 2) (#16)
by marx on Sun Feb 15, 2004 at 09:48:53 AM EST

"This is apparently legitimate: simply using a makefile does not apply the makefile's copyright to the resulting code"
This is ok I guess, but I think your confusion stems from that you're not familiar with what a makefile does. The makefile is just a tool, a set of rules on how and in which order to apply other tools (such as compilers and linkers) to source files. Specifically, no part of the makefile is part of the final result.

In the case of the source file, then making a binary out of the source file and distributing it is essentially the same as distributing the original source file, all you've done is translated it into another form.

I think this whole GPL and copyright thing is very simple. I think the entire fault for creating confusion lies with the proprietary vendors who started making shrink-wrap licenses which covered use. Then people started (erroneously) thinking that using software had to do with copyright.

Join me in the War on Torture: help eradicate torture from the world by holding torturers accountable.
[ Parent ]

use -is- copying, stupidly (none / 1) (#91)
by treat on Mon Feb 16, 2004 at 01:10:27 PM EST

Then people started (erroneously) thinking that using software had to do with copyright.

What of the fact that courts have decided consistently that copies made in RAM, L2+L1 cache, registers, etc count as copying?

[ Parent ]

Because the courts are idiots (none / 1) (#105)
by squigly on Mon Feb 16, 2004 at 05:14:57 PM EST

Does it really?  If so, that's clearly a stupid interpretation of the law (judging by that title, you agree with me).  Clearly, the law was intended to allow the copyright holder to have control over distribution of copyrighted material.  Sadly, people are too hung up on copying.

I see no reason that this should not be covered under the usual fair use provisions of copyright law, so beloved by the other site.  After all, the end user is not profitting from the copy he made, nor is he depriving the copyright holder of a sale.  More importantly, is there any reasonable person, who considers it wrong to run a piece of software they legally acquired?  

[ Parent ]

Distribution (none / 0) (#125)
by marx on Tue Feb 17, 2004 at 04:05:06 AM EST

Copyright restricts public distribution. Who am I distributing the copy in RAM to?

Join me in the War on Torture: help eradicate torture from the world by holding torturers accountable.
[ Parent ]

hm (none / 1) (#131)
by tps12 on Tue Feb 17, 2004 at 07:24:09 AM EST

I thought that they had generally ruled to allow those incidental copies required for use. Cite.

[ Parent ]
Makefile (none / 1) (#153)
by inpHilltr8r on Wed Feb 18, 2004 at 04:17:11 PM EST

The makefile is just a tool, a set of rules on how and in which order to apply other tools (such as compilers and linkers) to source files. Specifically, no part of the makefile is part of the final result.

That's not strictly true. I mean, that may be how it is generally used, but it's certainly possible that a makefile can contain data that ends up in the build.

[ Parent ]

Yes (none / 1) (#161)
by marx on Thu Feb 19, 2004 at 05:01:30 PM EST

And a C program can actually be an ASCII painting. But in normal cases, this is not so.

Join me in the War on Torture: help eradicate torture from the world by holding torturers accountable.
[ Parent ]

You can't distribute it, but can use it. (none / 1) (#13)
by squigly on Sun Feb 15, 2004 at 09:01:12 AM EST

As far as I understand it, you can't distribute the makefile, but as long as you have a legitimate copy, you can use it to generate code.  Much like code compiled by gcc is not necessarily required to be released under the GPL.

[ Parent ]
wrong question (none / 2) (#15)
by martingale on Sun Feb 15, 2004 at 09:43:49 AM EST

You seem to have lost track of the question. Nobody can legally copy somebody else's work without the author's permission. That is a fundamental fact in this discussion, just as it is a fundamental fact in copyright issues for books..

The GPL allows you the extra distribution right if and only if you agree to distribute the full product, which is defined to include the source code, make files and anything else that's needed to produce a working binary.

If the Makefile is taken from a GPL'd tool for Emacs, then it must be distributed if that tool is distributed by Microsoft. If they use the tool internally because some programmer likes it, then it's not distributed and the GPL has nothing to say.

If the Makefile had been taken verbatim from some GPL'd project, and used as is to compile the win2k source code, then Microsoft would have been obliged to show their source. But of course, this is impossible. Any Makefile which would compile win2k would have to come from a GPLd project which compiles the same files.

So while a Makefile *is* code, it isn't code which they need to ever make public because none of the GPL clauses apply.

[ Parent ]

Makefile (none / 0) (#17)
by marx on Sun Feb 15, 2004 at 09:53:34 AM EST

Nobody can legally copy somebody else's work without the author's permission.
This is exactly what I meant with my question.
If they use the tool internally because some programmer likes it, then it's not distributed and the GPL has nothing to say.
Exactly.
If the Makefile had been taken verbatim from some GPL'd project, and used as is to compile the win2k source code, then Microsoft would have been obliged to show their source.
Why? This contradicts what said in the previous quote.

Join me in the War on Torture: help eradicate torture from the world by holding torturers accountable.
[ Parent ]

because (none / 1) (#21)
by martingale on Sun Feb 15, 2004 at 11:03:47 AM EST

If the Makefile had been taken verbatim from some GPL'd project, and used as is to compile the win2k source code, then Microsoft would have been obliged to show their source.

Why? This contradicts what said in the previous quote.

A Makefile is code. If code originates from a GPL project, if said code is directly used to construct a product, and if said product is distributed, then all recipients must be able to see the source of the product if they ask.

Of course, as I already said, this would never happen. Microsoft would not be able to directly use anybody's Makefiles to compile their products. So either they do not use a GPLd Makefile to compile win2k, or they use such a Makefile to compile a GPL program someone wants to use to work on the win2k source. Or else they break the law ;-)

[ Parent ]

I think you're wrong though (none / 2) (#25)
by marx on Sun Feb 15, 2004 at 11:33:41 AM EST

Look at what you're saying:
if said code is directly used to construct a product
(my em)

They're using the makefile, they're not including it in their product. You can do a sanity check. If you replace "makefile" with "gcc" in your statement, then you would have:

gcc is code. If code originates from a GPL project, if said code is directly used to construct a product, and if said product is distributed, then all recipients must be able to see the source of the product if they ask.
But this is not true, so the case with the makefile can't be true either. I think it's perfectly ok for Microsoft to take a makefile from a GPL project, rename all their files so it matches the makefile, and then build their code with it and distribute the built binaries without distributing the makefile.

Join me in the War on Torture: help eradicate torture from the world by holding torturers accountable.
[ Parent ]

yeah, sort of (none / 1) (#51)
by martingale on Sun Feb 15, 2004 at 09:42:05 PM EST

I was hoping you'd accept my use of the word directly as sufficient.

The GPL says explicitly that anything that is normally used to build the work is source code. So the Makefile is code (quoting for GPL):

The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable.

It doesn't matter that they are in fact just using the Makefile as a script for make, which invokes the compiler etc.

Your objection that as such, gcc or say Emacs is also used to produce the work is covered by the GPL as follows:

However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.
So yes, gcc would be part of the source, but it's exempt. A single Makefile would never be exempt, because by its nature it isn't distributed with a standard system. It's only kept in a directory with the win2k source code, which isn't distributed.

I think it's perfectly ok for Microsoft to take a makefile from a GPL project, rename all their files so it matches the makefile, and then build their code with it and distribute the built binaries without distributing the makefile.
Assuming they did so, I think they would be breaking the GPL license. Indeed, the special combination of path names, switches and targets represented in the Makefile does constitute a copyrighted work. By renaming their source files to fit within this Makefile, they are in fact making use of and embedding the copyrighted work, so the GPL applies. Put differently, they could not have renamed all their files correctly without directly using that particular Makefile.

[ Parent ]
So the makefile was actually stolen? (none / 0) (#53)
by grouse on Sun Feb 15, 2004 at 10:37:15 PM EST

I haven't looked at it, nor do I want to.

You sad bastard!

"Grouse please don't take this the wrong way... To be quite frank, you are throwing my inner Chi out of its harmonious balance with nature." -- Tex Bigballs
[ Parent ]

i've no idea (none / 1) (#54)
by martingale on Sun Feb 15, 2004 at 10:53:35 PM EST

From the writeup in the article, the GNU Makefile appears to be related to some Emacs mode. If so, the mode isnt' being distributed, and has no relevance.

But frankly, I have no idea what's in this source code. The sooner the world switches to a real operating system, the better we'll be off ;-)

[ Parent ]

You Imbecile (none / 2) (#75)
by jameth on Mon Feb 16, 2004 at 09:41:51 AM EST

The makefile was generated. The makefile must be specific to the app. One from any other app would not work. It was not stolen.

They can use GNU tools to create makefiles, because the makefiles are not released.

For a parallel, I can use a GNU text editor to write a closed source app. This is an IDENTICAL situation. The GNU app is ONLY used to create a file, it is never, itself, in the final distribution.

[ Parent ]

There's no cause for name-calling (none / 2) (#92)
by grouse on Mon Feb 16, 2004 at 01:23:51 PM EST

This is on the tail end of a conversation among people who seemed to imply that the makefile was stolen, which I found hard to believe.

Take a chill pill.

You sad bastard!

"Grouse please don't take this the wrong way... To be quite frank, you are throwing my inner Chi out of its harmonious balance with nature." -- Tex Bigballs
[ Parent ]

And what have we learned from all of this? (2.50 / 16) (#7)
by BadDoggie on Sun Feb 15, 2004 at 08:00:36 AM EST

Microsoft programmers are no better or worse than most other programmers out there. They're not evil incarnate; they're not C gods. They're people working on massive projects and hacking together fixes for the unexpected, and the IBM anti-virus one is a good example.

As in all projects, other departments' code is even worse than your department's. Always. The OS group's objective is to make the platform run and stay afloat. The Office group's objectives are certain interactivities that clash with the OS's work, so they hack. That breaks something and the fight between the technical leads is on, determining who has to hack what to make it all work together.

The only thing that open source has over this is that there are more eyes to see it and more ideas to fix it. Of course, that's the whole point of open source, isn't it?

woof.

"Eppur si muove." -- Galileo Galilei
"Nevertheless, it moves."

Supposed to be topical (none / 0) (#8)
by BadDoggie on Sun Feb 15, 2004 at 08:01:53 AM EST

Could an editor please fix this? And maybe even delete this request to fix it while you're at it? Thanks.

woof.

"Eppur si muove." -- Galileo Galilei
"Nevertheless, it moves."
[ Parent ]

Sorry, (3.00 / 4) (#63)
by ninja rmg on Mon Feb 16, 2004 at 04:11:43 AM EST

None of the editors read the site anymore.



[ Parent ]
Aaargh! (none / 2) (#123)
by Brandybuck on Tue Feb 17, 2004 at 01:59:32 AM EST

As in all projects, other departments' code is even worse than your department's

Aaargh! It can't be. My department's code is horrible! My department is system software. About a decade ago, and ex-BofA database programmer wrote most of it. Thus, system configuration (stuff like resolv.conf) is done through a MySQL database. It's a maintenance nightmare. But it gets worse! We got onto a C++ kick about five years ago. So all of our C libraries have C++ wrappers. But other personnel not aware of the original C libraries, wrote C wrappers to the C++ wrappers. I'm in charge of maintaining one particular piece of code that uses all three APIs!

If other department's code is worse than mine, I might as well quit now and at least get ahead of everyone else in the unemployment line...

[ Parent ]

I'm an OS Novice... (none / 2) (#133)
by MicroBerto on Tue Feb 17, 2004 at 11:19:19 AM EST

But I don't think that the OS people should have to put in hacks that will taint their code for OTHER software.

Not everyone who uses windows uses Office. But everyone who uses windows uses windows.

So shouldn't Office be written to work with windows, not the other way around?

Berto
- GAIM: MicroBerto
Bertoline - My comic strip
[ Parent ]

Backwards Compatibility (2.80 / 15) (#20)
by Bad Harmony on Sun Feb 15, 2004 at 10:56:42 AM EST

When Windows 95 came out, I read comments from some of Microsoft's programmers about all of the ugly hacks that had to be added to Windows 95 so that older applications would still run. Many of these problems were severe bugs in the applications that had never been detected and fixed. They went unnoticed because they didn't damage anything critical in Windows 3.1. Rather than tell the vendors to fix the bugs in their applications, and the users to install a patch, Microsoft hacked up the operating system. I wonder how much of that junk has survived into current versions of their operating systems.

With UNIX, when some systems were patched to make page 0 read-only or inaccessible, many C programs with sloppy handling of NULL pointers had to be fixed.

5440' or Fight!

There was an interesting thing (3.00 / 4) (#23)
by Selznak on Sun Feb 15, 2004 at 11:14:56 AM EST

In Mikepence's diary about the Win2k source. One of their bugfixes broke Borland JBuilder, which relied on that bug. So, they kludged around it to make JBuilder still work.

You can see this two ways. Either the vast resources of closed-source development was used to help the customer. Or, closed source concealed a bug, and replaced it with a kludge.

I'd include that in this article, but I don't want to go into that much detail.

[ Parent ]

AFAIK, no. (3.00 / 4) (#33)
by tkatchev on Sun Feb 15, 2004 at 02:55:37 PM EST

I'm pretty sure that Win-16 and DOS programs under NT run under a virtual x86 machine emulator.

(That is, BTW, why "command" is so much slower than "cmd".)


   -- Signed, Lev Andropoff, cosmonaut.
[ Parent ]

Well, I'll be damned. (none / 0) (#57)
by TheOnlyCoolTim on Sun Feb 15, 2004 at 11:22:13 PM EST

I was wondering the whole time why a CLI was so damned slow. Thanks tkatchev!

Tim
"We are trapped in the belly of this horrible machine, and the machine is bleeding to death."
[ Parent ]

Yes, that's why you should always use 'cmd'. (none / 1) (#67)
by tkatchev on Mon Feb 16, 2004 at 05:18:21 AM EST

"Cmd" is the native 32-bit NT shell, while "command" is essentially microsoft's version of dosemu.


   -- Signed, Lev Andropoff, cosmonaut.
[ Parent ]

Win 95, not NT (none / 0) (#78)
by Shubin on Mon Feb 16, 2004 at 09:53:03 AM EST

Bad Harmony wrote about Win95, to begin with.
Actually, DOS programs under DOS run under a virtual x86 machine in the late days of DOS.
So what ? For example, Corel Draw 2.0 caused a debug print by means of BIOS INT 10. In Windows 3.0 it went just all over the screen with all those windows. This is an easy case.
But DOS programs directly interacted with hardware. Which is not solved by VM. If they ever wanted to solve it, they should emulate ALL EXISTING hardware. At least at the port level.

[ Parent ]
I don't understand. (none / 1) (#80)
by tkatchev on Mon Feb 16, 2004 at 10:19:13 AM EST

NT doesn't support DOS programs, except insofar as their crappy DOS emulator emulates some aspects of DOS.

NT isn't any more compatible with DOS than Linux+DOSEMU is; in fact, I wouldn't be surprised if the open-source dos emulator emulates DOS better than Microsoft's emulator.

My personal experience with command.com under NT is abysmally bad. I don't recall any DOS program more advanced than "hello world" working properly under NT-derived operating systems.


   -- Signed, Lev Andropoff, cosmonaut.
[ Parent ]

For games, maybe (none / 0) (#95)
by IntlHarvester on Mon Feb 16, 2004 at 02:09:16 PM EST

Well, I've seen a couple companies run critical applications from DOS database packages on NT, so you are vastly overstating the case. Microsoft's figure for NTVDM was 90% of business applications, and I think you'd have trouble finding many major DOS business packages that did not work correctly.

Perhaps you are mostly familiar with DOS games, which largely don't work (NTVDM does not emulate very many video modes).

[ Parent ]

Uh (1.05 / 20) (#35)
by Worker Bee on Sun Feb 15, 2004 at 03:46:23 PM EST

Where's the C# shit?

THE WEAK AMONG US CLAMOR ABOUT ETHICS BECAUSE IT'S THE ONLY CHAIN THEY HAVE LEFT TO SHACKLE THE STRONG.

Incredible Disappearing Chinese Wall (2.90 / 33) (#36)
by localroger on Sun Feb 15, 2004 at 03:51:15 PM EST

Remember back when DOJ were accusing Microsoft of having an unfair competitive advantage and Microsoft swore upon a stack of Bibles and corporate forms that there was a "Chinese wall" between the applications developers (Office) and the OS developers (Windows)?

Well from all the comments about putting hacks in Windows to fix Office apps, it would appear that they were lying. Not that anybody who knows how software is written ever thought otherwise, but this makes it about as plain as it could be that the Office and OS guys work together to achieve their famous smoothness of operation -- an advantage writers of other office suites clearly don't have.

No wonder they're so upset about this going public. If we had a real attorney general instead of a fascist corporate toady they'd probably be back in court already over it.

What will people of the future think of us? Will they say, as Roger Williams said of some of the Massachusetts Indians, that we were wolves with the min

Imagined collusion (2.75 / 8) (#40)
by BadDoggie on Sun Feb 15, 2004 at 04:22:30 PM EST

Sorry, but I don't see it. You're complaining they made fixes specifically for what's arguably the most common application running on Windows: MS Office. This logic requires the OS team to be working with Borland and IBM as well, just by cited references.

They saw where problems were with certain apps and added OS hacks to make other companies' software continued to work rather than standing firm on doing things correctly. They could easily have demanded the other companies and divisions not "cheat the OS", basing functions on bugs or direct addresses instead of using the correct pointers and APIs. While I find it poor design, it's an admirable attempt to try and work with others, even if it will come back to bite them in the ass when the hack causes other problems.

And just because you mentioned it, The last decent US Attorney General was Archibald Cox. He was honorable, too.

woof.

"Eppur si muove." -- Galileo Galilei
"Nevertheless, it moves."
[ Parent ]

Dotting the legal i's (none / 0) (#41)
by Selznak on Sun Feb 15, 2004 at 04:37:19 PM EST

The DoJ may not have had the access to Microsoft that they should have... but they probably had more than we do with this leaked shared source stuff.

I suspect the actual fixing was all done legally and above board: an Office developer submits a bug report, a Windows guy fixes it without either of them looking at each others code.

The question is how they get away with using all these calls to hidden APIs...

[ Parent ]

Actually, you're wrong. (none / 1) (#46)
by tkatchev on Sun Feb 15, 2004 at 06:56:16 PM EST

In fact, it means that OS developers didn't bother talking to or testing with the Application developers during development.


   -- Signed, Lev Andropoff, cosmonaut.
[ Parent ]

And later they tested all together (none / 0) (#48)
by svampa on Sun Feb 15, 2004 at 07:36:55 PM EST

And later they tested all together... and fixed the bugs of the whole system, that is, OS+IE+Office



[ Parent ]
If you ask me it proves only one thing (2.40 / 5) (#52)
by xutopia on Sun Feb 15, 2004 at 10:17:14 PM EST

that having an OS in the hands of MS guarantees that your OS won't do what you want every time, and its features are undocumented to you unless you work for MS. This shows the importance of using and promoting an open source OS.

[ Parent ]
Nope, that's just backwards compatibility. (3.00 / 8) (#65)
by mjfgates on Mon Feb 16, 2004 at 04:59:25 AM EST

Backwards compatibility has been one of the most important goals of the Windows dev team since at least 1990. Thus, there are code fixes in there to make previous versions of MS Office work... but I have also seen fixes to make WordPerfect, Lotus Notes, and Civilization work. The point is that *no* major app that worked fine on the last version of Windows should break on the next one, because the press would have a field day.

[ Parent ]
back to court... (2.83 / 6) (#70)
by fatgeekuk on Mon Feb 16, 2004 at 07:57:23 AM EST

Note, IANAL...

but,

Nope,
as the sourcecode would almost certainly be "poisonous fruit". Any future disclosure of this source because of legal proceedings based on reviewing this will also be tainted.

You could say that this might have been a very good move on microsofts part to ensure that code could not be used against them, but that would just be being paranoid.

On another point, I am very interested to hear that the consensus on code quality is that it is high. Looking at example code supplied to access API, I had gained the impression that the code was a mess, it is good to see that I was wrong in this assumption.

[ Parent ]

reversal :) (2.66 / 6) (#71)
by caridon20 on Mon Feb 16, 2004 at 08:31:20 AM EST

note IANAL but i think that you are allowed to use evidence that have been released/aquired ilegaly. as long as the person using it did not [do||enocurage others to do] the ilegal acts. so this can be used in court :) /C
Dissent is NOT Treason Quis custodiet ipsos custodes
[ Parent ]
Untrue (2.50 / 4) (#94)
by wji on Mon Feb 16, 2004 at 02:04:08 PM EST

Come on, if you're going to do amateur lawyering, at least hire a good amateur lawyer.

Evidence standards in civil trials are WAY different from criminal trials. There is no "fruit of the poisoned tree". Doesn't matter HOW you get the evidence, it's admissible.

In conclusion, the Powerpuff Girls are a reactionary, pseudo-feminist enterprise.
[ Parent ]

let's ask oliver north! (none / 1) (#118)
by horny smurf on Mon Feb 16, 2004 at 08:36:33 PM EST

If you'll remember your history, you'll recall that Oliver North was given immunity and testified before congressional Iran-Contra hearings. He was later convicted on various charges, but the convictions were overturned on the grounds that the witness testimony was influenced by the immunized testimony.

Recently, my state supreme court threw out a conviction of a drug dealer. Police had wired someone and sent him out to buy drugs from a dealer. Then, they got a warrent to allow wiring, sent them out for more drugs, and made an arrest. It was thrown out since they didn't have probably cause without the first wiring. Evidence gets thrown out all the time for reasons like that. It must be frustrating for the police, but at least they know someone is performing illegal acts, and unless they clean up, they'll probably get nailed again.

Of course, the AG (or states attorneys) would have to be interested in pursuing the matter for it to matter.

[ Parent ]

Still missing the civil-criminal distinction (none / 2) (#121)
by FlipFlop on Mon Feb 16, 2004 at 11:24:59 PM EST

Again, you are confusing civil and criminal law. Civil law is where someone sues someone else with a demand for money, an injunction, custody of a child, etc.

Criminal law is where the police (or other government law enforcement agency) accuse someone of committing a crime. They have the power to lock people up. They can ask the court to punish someone for wrongdoing, even when no obvious harm has been done.

It is worth noting that Attorneys General often litigate both criminal and civil cases.

The courts have long held that certain constitutional rights only apply in criminal cases. The fourth amendment is one such right. Since the courts could not find any viable way to punish the government for violating the fourth amendment, they simply refuse to consider evidence that was obtained in violation of it. Also, those rules only apply to law enforcement agencies and their agents (including paid informants, etc). If you were to break into someone's home and steal a piece of evidence (without any encouragement from the police), and then hand the evidence over to the police, they could use the evidence at trial. Keep in mind that you could still be thrown in jail for breaking into the criminal's home in the first place.

Back to the topic, someone could sue Microsoft and use the source code against them without any problem. The police could even use the source code against Microsoft in a criminal trial.

I'm not certain, but I believe the big Microsoft anti-trust case of several years ago was a criminal trial. Some states are still suing Microsoft in civil courts to recover money Microsoft illegal gouged out of their customers.

It was thrown out since they didn't have probably cause without the first wiring.

Please, it is probable cause. It is spelled out in the fourth amendment.

AdTI - The think tank that didn't
[ Parent ]

The wall (none / 1) (#149)
by malfunct on Wed Feb 18, 2004 at 12:56:57 PM EST

There could still be a wall, all the hacks could be discovered and added by the winnt developers without needing application source code or application side developers. MS has a huge organization testing application compatability in windows, when an app doesn't run they check out why in the OS, then they release a patch for that application to run. I'm sure that the app compat group was asked to test all MS applications first and then spread out to other companies applications (as is shown by the hack comments for borland and certainly other apps).

The problem with "undocumented hooks" often came about from people trying something, and it worked, so they used it. That or they hit a problem caused by a bug in the os, work around it with a bug dependant hack, and then when the bug is fixed MS has to make sure it plays nice with the bug dependant hacks.

I'm not saying that there wasn't more communication between the two halves of the company than thier should be, just saying that application specific hacks is not proof of that occuring.

[ Parent ]

"Steal"? (2.60 / 15) (#56)
by Fen on Sun Feb 15, 2004 at 11:19:29 PM EST

It's not stealing if the original remains. It's copying, perhaps unauthorized copying.
--Self.
+1, Rusty deserves the impending lawsuit. (1.92 / 13) (#62)
by For Whom The Bells Troll on Mon Feb 16, 2004 at 04:00:14 AM EST

Or more precisely, K5 deserves the flamewar between the aye and nay-sayers when he gets the takedown notice from MS' lawyer vultures and asks the community for its views on it.

We live in interesting times, ladies and gentlemen, not because we can glimpse into what the builders of one of the largest engineering projects ever were thinking when they built it, but because we might be in legal soup for doing so.

---
The Big F Word.

Strange (2.75 / 4) (#68)
by anonimouse on Mon Feb 16, 2004 at 06:27:08 AM EST

What I don't get is that a lot of hacks are for compatibility with bugs in Microsofts own older products. Would it not have been easier to release patches for $OLDPRODUCT to fix the problem?

Also whilst it is nice for them to be solving Borlands problems, if their product had a genuine bug, then Microsoft would have been well within their rights to say "it's for Borland to fix".
~
Sleepyhel:
Relationships and friendships are complex beasts. There's nothing wrong with doing things a little differently.

Microsoft wanted people to upgrade (none / 1) (#69)
by CwazyWabbit on Mon Feb 16, 2004 at 07:25:03 AM EST

People would not have bought new versions of MS Windows if their existing software would stop working. Word of mouth would have been against them.

The OS group were probably tasked with producing an OS that worked with what was out there, unlike say the Linux kernel developers who happily change ABIs as they wish.
--
"But here's the thing: if people hand me ammunition, what kind of misanthrope would I be if I didn't use it?" - Sarah-Katherine
[ Parent ]

If Windows breaks apps, people blame Windows (none / 3) (#79)
by JKew on Mon Feb 16, 2004 at 09:54:52 AM EST

Raymond Chen talks about this in his weblog: http://weblogs.asp.net/oldnewthing/archive/2003/12/24/45779.aspx.

His blog is interesting reading for anyone interested in Windows history -- a lot of answers to "why is it like this?" questions -- and is often illuminating on just how hard Microsoft work at app compatibility.



[ Parent ]
Raymond Chen (2.66 / 6) (#88)
by InThane on Mon Feb 16, 2004 at 12:15:40 PM EST

I worked with Raymond for about 5 months.  Okay, it's not fair to say "I worked with him" - it's more like I was in the same department as him, and had the misfortune of running into him once.

He's brilliant, but has absolutely no patience for anything he percieves as stupidity.  In my case, it was that I hadn't used a debugger before nor could I read .asm code.  For these crimes he flamed the living bejevus out of me, my boss, and my boss's boss - even though none of the above was in my job description, and I hadn't been hired for my coding abilities.

Every team I worked with after that at Microsoft received at least one flame e-mail, cc'ed to the entire project, pointing out how the entire team was a bunch of idiots because feature foo didn't work as well as it should have.

On the other hand, I saw him watch a live stream of asm code via a remote debugger, and figure out exactly where a certain bug was occuring.  I admire his skills as a developer.

Brilliant, but with the social skills of a thermonuclear device.
"It is a very inconvenient habit of kittens that, whatever you say to them they always purr." - Lewis Carrol
[ Parent ]

Oh my God ! (none / 2) (#103)
by UncannyVortex on Mon Feb 16, 2004 at 04:53:30 PM EST

Wow!  He debugged a live stream of asm source!  What a BADASS!

More likely it was not source, but a disassembly generated by the debugger.  And it's really not called a "live stream".

I'm sure the guy is really talented, but honestly, what you wrote is not too terribly different from saying, "I watched someone debug C code!  In a debugger!"

[ Parent ]

Would it have made you happier... (none / 2) (#107)
by InThane on Mon Feb 16, 2004 at 05:45:58 PM EST

...if I just said: "In my uneducated opinion, he really seemed to know what the hell he was doing, but had all the social skills of a banana slug?"
"It is a very inconvenient habit of kittens that, whatever you say to them they always purr." - Lewis Carrol
[ Parent ]
Yes, that's quite suitable. (nt) (none / 1) (#114)
by UncannyVortex on Mon Feb 16, 2004 at 07:24:22 PM EST

Supposedly there is no text here. However, I wanted to point out that, as evidenced, my social skills are much better than those of your former acquaintance.

[ Parent ]
Ooooo (3.00 / 4) (#134)
by hulver on Tue Feb 17, 2004 at 12:02:27 PM EST

You're famous!

--
HuSi!
[ Parent ]
Explanation? (none / 0) (#144)
by mozzis on Tue Feb 17, 2004 at 08:43:08 PM EST

One of the provisions of the earlier antitrust settlement was that Microsoft would endeavor to keep its Application division from befitting too much from access to the OS division. Thus there would be a tendency for the OS group to not want to talk too much to the application groups.

[ Parent ]
in a perfect world, yes (none / 0) (#170)
by werner on Sun Feb 22, 2004 at 12:36:19 PM EST

But as we all know, there are enough folk out there who never download patches/updates/hotfixes. It would not be good for MS, if their new OS "broke" older MS (and other) applications.

What's more, kludges and workarounds in newer Windows versions disguise the fact that older versions of Windows and other apps were not built right in the first place.

[ Parent ]

This is all well and fine, yes, (1.36 / 11) (#72)
by STFUYHBT on Mon Feb 16, 2004 at 09:09:04 AM EST

But this article does not address the fact that Microsoft leaked its own source code.

Wait, scratch that.

-
"Of all the myriad forms of life here, the 'troll-diagnostic' is surely the lowest, yes?" -medham

no, No, NO! (none / 2) (#85)
by CodeWright on Mon Feb 16, 2004 at 11:50:03 AM EST

Can't you see? Saddam Hussein gassed his own people?!?!

SOYLENT GREEN IS MADE OF PEOPLE!

--
A: Because it destroys the flow of conversation.
Q: Why is top posting dumb? --clover_kicker

[ Parent ]
So... (none / 1) (#101)
by STFUYHBT on Mon Feb 16, 2004 at 04:28:01 PM EST

"Microsoft leaked their own source code is made of their own people?"

-
"Of all the myriad forms of life here, the 'troll-diagnostic' is surely the lowest, yes?" -medham
[ Parent ]
NO! (3.00 / 4) (#104)
by CodeWright on Mon Feb 16, 2004 at 05:00:06 PM EST

MICROSOFT IS MADE OF PEOPLE! MICROSOFT LEAKED GAS ON ITS OWN SOURCE CODE!

--
A: Because it destroys the flow of conversation.
Q: Why is top posting dumb? --clover_kicker

[ Parent ]
Tainted developers (2.92 / 14) (#73)
by borderline on Mon Feb 16, 2004 at 09:29:27 AM EST

I see quite a few people claiming that developers must not so much as glance at the leaked code, to avoid accusations of copyright violations later on. Can it really be that bad? I mean, nobody refrains from reading novels because they plan to write one of their own some day. Is code given speacial treatment by copyright law? Otherwise I can't see any risk in reading the leaked code.

Yeah but... (2.00 / 6) (#77)
by R Mutt on Mon Feb 16, 2004 at 09:51:00 AM EST

...it makes people feel important to pretend they dare not even look at a web page with a couple of lines of MS code on it, without the full wrath of Bill Gates descending on them in person...
----
Coward... Asshole... from the start you kept up the appearance of objectively posting interesting links.
[ Parent ]
No, not really. (1.36 / 11) (#81)
by tkatchev on Mon Feb 16, 2004 at 10:20:02 AM EST

Only in FASCIST AMERICA.


   -- Signed, Lev Andropoff, cosmonaut.
[ Parent ]

Close. (none / 1) (#89)
by Kal on Mon Feb 16, 2004 at 12:26:31 PM EST

Fascist Europe seems to care about it as well. At least the French and German companies I've worked with think it's an issue.

[ Parent ]
s/FASCIST AMERICA/SOVIET RUSSIA/ (2.25 / 3) (#102)
by STFUYHBT on Mon Feb 16, 2004 at 04:30:41 PM EST



-
"Of all the myriad forms of life here, the 'troll-diagnostic' is surely the lowest, yes?" -medham
[ Parent ]
Not entirely the same (3.00 / 7) (#90)
by bgalehouse on Mon Feb 16, 2004 at 12:48:25 PM EST

People worry about duplicating the structure of code, not just the precise variable names. This difference from novels can be justified, because in literature, presentation matters as much as structure. In computer work, one could write a program to randomize the presenation without changing the structure. Would such a program be all that you need to remove a copyright from source code?

Often, a programing task has a singe obvious solution. Especially if you are trying to be bug compatible. Therefore, it is impossible to know, much less prove, that you would have come up with the same solution independently. I could cite theorms in mathematics which, in practice, have one 'reasonable' method of proof - either you see a key concept and can write the proof, or you don't and cannot. Clearly any student who has seen such a proof cannot later claim to have discovered it independently.

So suppose that a spec has only one reasonable implementation strategy, albeit one which takes a bit of work to find. Having seen such an implementation, every implementation you can think of seems like a minor variation of it.

Options are a bit limited then. You can keep searching for another solution; one which is likely to be less optimal. You can claim that it is 'obviously' the best way to solve the problem, make a few minor changes and hope the courts agree. Or, you can document the behavior meticulously and find somebody unsullied to impliment it as they see fit. The last seems safest legally, and these days that seems to matter to people.

[ Parent ]

copyright, patents... (none / 1) (#113)
by anmo on Mon Feb 16, 2004 at 07:23:44 PM EST

The parent comment is just proving how absurd the idea of copyrighting software is, not to mention patenting is.

[ Parent ]
Yes, it's really that bad (2.75 / 4) (#135)
by mcherm on Tue Feb 17, 2004 at 12:45:18 PM EST

The problem is one of litigation, and it IS different from writing books in two important ways.

Here is the dreaded scenario. I am a programmer who happens to read a few lines of illegally leaked MS source code. I later write some application that does something MS code does. This application might be an open source project, or it might be software I develop for a commercial employer. I may not be the primary developer either... I might just be some flunky who writes some significant bits. But let us suppose that somehow this application I help write becomes very successful... it gets mentioned everywhere in the industry and is on its way to becoming the next RealAudio, or Netscape, or whatever.

Now let us suppose that Microsoft wants to purchase or bury this software. They make an offer, but I (or my employer, or whoever) reject it. So now Microsoft has a new option... they can sue me for stealing their code. Now, an important point here is that they DON'T HAVE TO WIN. Suppose the lawsuit takes 5 years. During that time, lots of mainstream users will refuse to buy/use my application for fear of infringing. 5 years later, Microsoft simply drops the case. By that time, the software is outdated and someone else has already taken over the field.

So how is this different from books? There are two significant differences. One is the FUD factor. "Fear, Uncertainty, and Doubt" are not likely to harm sales of a book... things like the controversy over "The Wind Done Gone" probably HELPED book sales. But FUD is very harmful in the IT industry. A good comparison would be with films... many producers will never accept unsolicited screenplays for fear someone will later (baselessly) accuse them of theft.

There is one other important difference. Very few people can write a good book, but practically everybody has some idea of how to go about it. They understand that just because two books both have a hero in peril who gets the girl in the end, that one didn't "steal" the plot from the other. But most people DON'T understand programming very well. All it takes is for one judge unfamiliar with software to be taken in by an argument which any programmer would find ludicrous.

Of course, you may think that the whole senario outlined above is one which only a paranoid could invent. Surely in the REAL world, no one would be harmed by a legal challenge which was completely baseless. In which case you probably haven't been reading about SCO's legal fight against IBM and Linux.

-- Michael Chermside
[ Parent ]

So what? (none / 0) (#180)
by FattMattP on Fri Jun 17, 2005 at 12:42:21 PM EST

They make an offer, but I (or my employer, or whoever) reject it. So now Microsoft has a new option... they can sue me for stealing their code.
So what? They could do that now whether you've seen their code or not. They could tie you up in court for five years on nothing. Just look at the SCO suit for an example of that happening. So, your example fails to prove what difference it makes whether you look at someone else's code or not.

[ Parent ]
Documented hacks (2.80 / 10) (#74)
by WWWWolf on Mon Feb 16, 2004 at 09:37:56 AM EST

At heast they bothered to mark the Ugly Hacks as ugly hacks.

Could be worse - buggy or ugly code that is no way documented, or, even worse, several pages of garbage with comment "look at this, this is beautiful". =)


-- Weyfour WWWWolf, a lupine technomancer from the cold north...


Personal experience (none / 3) (#93)
by S1ack3rThanThou on Mon Feb 16, 2004 at 01:53:36 PM EST

My personal fave in some code I inherited was:

"Sorry about the grubby cast..."

It was a line long cast in C and that was the only documentation for it's purpose.

Another good one was some sign off docs when a guy left about a WHOLE module that merely read:

"It was dark magic to get this to work."

And that was it. I like "this is a hack" comments, at least it's a damned warning!

"Remember what the dormouse said, feed your head..."
[ Parent ]

undocumented API calls (3.00 / 5) (#76)
by cobra libre on Mon Feb 16, 2004 at 09:48:08 AM EST

In some cases, the programmers themselves appear to have been frustrated or surprised.

Not that it's altogether surprising that some developers at MS are going to be unaware of undocumented API calls -- it's a huge organization, after all -- but note that two of the examples there are from the Hyperterminal source, which I don't think originated from Microsoft. In fact, its About dialog mentions that portions of the code are licensed from a company called Hilgraeve.



Assrape reference? (1.53 / 13) (#82)
by BlowCat on Mon Feb 16, 2004 at 10:20:22 AM EST

// InquireVisRgn is an undocumented Win 3.1 API. This code has been
// suggested by ChuckWh. If this does not fix the s 2.0
// problem, then ChuckWh would be providing us with an private entry
// point.
Am I the only one who thought that ChuckWh will be providing his colleagues with a private entry point between his buttocks if the fix doesn't work?

Assrape meme (3.00 / 5) (#87)
by Hector Plasmic on Mon Feb 16, 2004 at 11:59:05 AM EST

Am I the only one who thought that ChuckWh will be providing his colleagues with a private entry point between his buttocks if the fix doesn't work?

Well, now you're not.

[ Parent ]

-1. too MSian. (1.14 / 14) (#83)
by dimaq on Mon Feb 16, 2004 at 10:50:03 AM EST

don't you think?

Or we could be objective... (3.00 / 3) (#96)
by 123456789 on Mon Feb 16, 2004 at 02:25:02 PM EST

... and realize that this was a fairly good write-up for those of us who don't have time to pawn through the source-code ourselves.
There is something to be said for calm-objectivity, without just deciding "it's too MSian." How lame.

---
People demand freedom of speech to make up for the freedom of thought which they avoid.
- Soren Kierkegaard
[ Parent ]
you people just can't take a joke (none / 0) (#129)
by dimaq on Tue Feb 17, 2004 at 06:34:00 AM EST

btw., for once I found "Reply to This" link properly named :)

[ Parent ]
you are a silly little Lunix fanboy (nt) (none / 1) (#97)
by UncannyVortex on Mon Feb 16, 2004 at 02:38:08 PM EST



[ Parent ]
Lunix is for Commodore 64 (none / 0) (#173)
by Klom Dark on Thu Feb 26, 2004 at 04:54:59 PM EST

Get your insults correct... See http://lng.sourceforge.net/

[ Parent ]
Usage of open source and BSD code (2.90 / 11) (#98)
by trident on Mon Feb 16, 2004 at 02:46:40 PM EST

The article states that the author could not find traces of "BSD" code in the Windows 2000 source code that he had access to. This cursory glance does not find any evidence that Microsoft has "stolen" any open source code. While it obviously is something wrong with this terminology (you do not "steal" source code, and BSD-licensed code is intended to be used without particularly many restrictions), there is no doubt that Microsoft is using BSD licensed code in their Microsoft Windows product. And that I can say without having come anyway near the Windows source code.

So how can I be so sure about that Microsoft is using BSD licensed code? Well, the BSD license(s) require that the copyright holder is credited in documentation provided with binary distributions of the code. In their release notes for their Windows XP operating system, Microsoft credits a bunch of well-known copyright holders of open source products. It contains credits not only to the University of California at Berkeley, but also companies such as Hewlett-Packard and to individuals such as Luigi Rizzo and Phil Karn.

The conclusions are that there is no doubt that Microsoft are using open source in their products, that they are not afraid to show it, and that they are playing by the rules by crediting the copyright holders.

Microsoft's credit has brought me a lot of grief (3.00 / 3) (#162)
by karn on Thu Feb 19, 2004 at 05:34:32 PM EST

And that credit in Microsoft's release notes has brought me nothing but grief. As far as I can tell, that page of credits is loaded during the Windows XP installation process and then sits in the IE browser cache more or less indefinitely. So when a worm like Klez or SoBig comes along, scouring entire hard drives for email addresses to spoof and infect, it finds me.

Back in August when SoBig.F hit, karn@ka9q.ampr.org got pummeled for weeks at a rate that peaked at 23,000 per hour. I had already disabled the account because of Klez, but the last time I looked my server was still rejecting an average of 3 messages per second. This time it's probably MyDoom.

It just never ends with Microsoft. See http://www.ka9q.net/worm for all the gory details.

[ Parent ]

early notification (none / 2) (#167)
by cronian on Sat Feb 21, 2004 at 07:00:20 PM EST

Could you sell your email address to some anti-virus software maker? If a lot of the viruses work by scanning all files in the systme for email addresses, you are probably one of the first ones to receive every new virus. Your old email address could probably be used to track the progression of various windows viruses.

We perfect it; Congress kills it; They make it; We Import it; It must be anti-Americanism
[ Parent ]
open source (none / 2) (#99)
by grant7 on Mon Feb 16, 2004 at 03:54:17 PM EST

vast subsystems of Windows like protocols, formats, conventions and approaches are based on "open source" prior art

perhaps the GPL is a response to this, in that it disallows use by proprietary projects which do not participate in the "works licensed to everyone" system (economics of plenty: favors cooperation & collaboration) but maintain their silly false hegemony (economics of scarcity: favors competition)

probably most of the historical instances predate this code... DCE threads, disk/network, compilers/interpreters, memory/resource management, drivers, etc. sharing is part of what software, and therefore computing, IS... the actual definition - you can't remove sharing, standing on the shoulders of giants, the collective consciousness.

but there's no way that this can be called stealing in a traditional sense, just non-participatory piracy (if they weren't pirates, they wouldn't be going around calling others pirates) by overtly hierarchical hostile tribes

we don't whine about this, we just change our approach to produce the desired results... and all those open source licenses (BSD, MIT/X, artistic, LGPL) simply provide a bridge to free software

Quality of code/first exploit (2.75 / 8) (#100)
by jobi on Mon Feb 16, 2004 at 04:26:36 PM EST

Despite the above, the quality of the code is generally excellent.

Well, maybe generally speaking. In instances, though, the programming is just sloppy.

The first exploit based on the code is in the wild now, and it is a simple signed/unsigned coding mistake that will generate a buffer overflow in Internet Explorer 5.0 just by it displaying a bitmap image.

---
"[Y]ou can lecture me on bad language when you learn to use a fucking apostrophe."
Yes, IE 5.0 (3.00 / 3) (#108)
by batkiwi on Mon Feb 16, 2004 at 05:46:32 PM EST

The bug is fixed in IE6.0.

It'd be more eye opening if it wasn't something MS had already fixed :)

[ Parent ]

You need to backport security fixes (none / 0) (#124)
by CwazyWabbit on Tue Feb 17, 2004 at 03:54:28 AM EST

If it is still unpatched in the versions of IE5 that people use, then it doesn't matter if it is fixed in version 6. We don't know if it is or not though.
--
"But here's the thing: if people hand me ammunition, what kind of misanthrope would I be if I didn't use it?" - Sarah-Katherine
[ Parent ]
People still use IE5 (none / 0) (#165)
by hanno on Sat Feb 21, 2004 at 02:17:34 PM EST

At one of my German clients' support line, people complain all the time about how they cannot access the 128Bit-SSL-encrypted shopping cart page. It usually turns out that they _still_ use the 40 Bit IE5 explorer from three (or was it four?) years ago and never upgraded.

[ Parent ]
How to kill explorer (1.71 / 7) (#106)
by smallstepforman on Mon Feb 16, 2004 at 05:41:24 PM EST

<from another web forum>

Access Start->Shutdown, then while holding CTRL-ALT-SHIFT, left click on CANCEL.  This will kill Windows Explorer, leaving a system where you can only access the last application you used.  Great for Internet Caffee's and libraries, since you cannot access the TaskBar, StartMenu, Desktop or anything else.  Reminds me of BeOS without Tracker/Deskbar.

Unless you have a terminal open (or a scheduled wake up task), you wont be able to restart explorer, hence you'll be forced to reboot afterwards.  But that doesn't stop 50% of windows geeks from trying...

Groovy! (2.50 / 4) (#109)
by Selznak on Mon Feb 16, 2004 at 05:51:50 PM EST

Just tried it. Could come in handy.

If you have an app open with a file menu there's a way round it though. Alt-Tab to the app: click File -> Open. Go to C:\Windows and open explorer again.

Nice to know there's a good way to kill the whole of Explorer though.

[ Parent ]

Not great... (3.00 / 9) (#111)
by Malk-a-mite on Mon Feb 16, 2004 at 05:58:54 PM EST

Ctrl + Alt + Del

Tasklist > New Task

Type "Explorer"

Problem solved.

[ Parent ]

What a load of crap, dumbass. (2.16 / 6) (#128)
by OndePik on Tue Feb 17, 2004 at 05:27:46 AM EST

press CTRL+ALT+DEL to open task manager. Then press ALT then F then N (or use the mouse) and type explorer in your run dialog. All your programs will still be running. No need to restart.

[ Parent ]
Purpose (none / 1) (#143)
by mozzis on Tue Feb 17, 2004 at 08:33:57 PM EST

This feature comes in handy when debugging Windows Shell extensions.

[ Parent ]
Resurrecting Explorer (none / 1) (#148)
by Seetzen14 on Wed Feb 18, 2004 at 12:17:15 PM EST

Of course I had to test it out. I recovered by Ctrl+Alt+Del > Task Manager | "Processes" tab. Then, File > New Task (run); Browse to %Windir%\explorer.exe | Ok

[ Parent ]
You didnt know?? (none / 1) (#152)
by Gayan on Wed Feb 18, 2004 at 04:02:07 PM EST

Well you can kill explorer.exe using Task Manager. Same results. To resurrect, use Task Manager again.,

[ Parent ]
Task Manager shortcut (none / 1) (#154)
by cozmo911 on Wed Feb 18, 2004 at 11:01:30 PM EST

You can also use Ctrl-Shift-Esc to load up task manager.

[ Parent ]
should be more useful with this (none / 0) (#164)
by aglarond on Fri Feb 20, 2004 at 10:11:59 PM EST

Run

c:\windows\system32\gpedit.msc

browse to

user configuration > administrative templates > system > Ctrl+Alt+Del Options

set Remove Task Manager to Enabled


[ Parent ]

I figured out how to fix it in about 12 seconds... (none / 0) (#177)
by buy2003dotcom on Thu Jul 15, 2004 at 01:38:46 AM EST

I figured out how to fix it in about 12 seconds... I must be a windows geek. Running Win2K, and I assume most others, Hit CTRL+ALT+DEL > Task Manager > New Task > goto > C:\WINNT\explorer.exe Then Click OK. You'll be right back up. 7/15/2004

[ Parent ]
Hacks abound (1.12 / 8) (#115)
by CoolSpot on Mon Feb 16, 2004 at 07:31:58 PM EST

Its pretty funny that with all these references to hacks, that Windows still works better than Linux.

Highly Subjective (none / 1) (#116)
by RadiantMatrix on Mon Feb 16, 2004 at 07:49:55 PM EST

Windows still works better than Linux.
"All Hardware Sucks, All Software Sucks"

As with most things technological, what "works better" largely depends on what you want to use it for. A hammer works better than a screwdriver for pounding in nails[0], but damned if that hammer doesn't suck for harddrive screws[1].

[0]: Not always.
[1]: Unless you need a really good excuse to get that bigger harddrive from the PHB.

----------
I don't like spam - Parent ]

What, you've never seen the Linux source code? (none / 2) (#117)
by tkatchev on Mon Feb 16, 2004 at 07:51:11 PM EST

Then again, I don't blame you. Nobody really wants to, trust me.


   -- Signed, Lev Andropoff, cosmonaut.
[ Parent ]

Depends for what/by whom (none / 0) (#166)
by scruffyMark on Sat Feb 21, 2004 at 05:48:08 PM EST

Sure, Windows works better than Linux for whatever it is you do with it, when you're the one using the respective OSs.

But I'll be damned if I can get Windows to do what I want to use it for. After a couple of months of me using Windows, the computer gets itself into such a state! The boot time gets loooooong, the event logs are full of ugly cryptic error messages that neither I nor the people near me (mostly computer scientists much more familiar with Windows than I am) can decipher. The only cure: reinstall Windows, reboot, reboot, install service pack, reboot, hotfix, reboot, hotfix, reboot, update IE, reboot, reinstall software, reboot, update software, reboot.

With Linux, I can easily get it to do all I need, and more than most Windows users could get their computers to do (at least, without significant expenditure). The boot times are reasonable (and reboots far less frequent, so it's not that relevant anyway), the syslog messages barely contain any errors, and such as do appear, are clear and relatively easily fixed, and that's after a year or so of installing, removing, patching, and turning on and off various services.

Is it like that with everyone? Heck no - I look around the lab, there's Linux boxes barely wheezing away, files in weird places littering the FS, more internet services listening than the owner even recognizes. It's all down to competent admins. Of course, I'm far from the only one whose Windows boxes fall into strange apoplectic states and have to be regularly reinstalled, and have their little hands held all through the process...

[ Parent ]

Works better for what? (none / 0) (#172)
by nicovl on Mon Feb 23, 2004 at 09:07:05 PM EST

Windows does some things better than linux but with most things (if you know what you are doing) Linux does a much better job.

One linux server can handel a much greater load and is more stable and reliable than any windows server.

Linux and its open source applications provide you with a unique and powerfull development environment.

A Linux machine can run untill the first piece of hardware breaks and a Linux machine can be part of a cluster.

Hollywood, Science Labs, Server Farms, You name it, even Google! Linux is being used! Why? Not because windows is better.

Wake up! Open source is the future, IBM sees it and many others do.. when are you gonna figure it out?

[ Parent ]

Not another windoze braindead lemming (none / 0) (#181)
by 4rfv on Mon Jul 18, 2005 at 12:28:18 PM EST

Ok now here is the plot with windoze each version isnt a new operating system, it isnt even half diffrent all they do is add a new layer of masking to the previous version (to make it look more pretty and causing loads of bugs) add a new GUI and charge £200 for the privlige.

But what Ices the cake for me is the way they do it first they cant sell the operating system (becouse the people they sell it to are recovering from the thousands the companys have to spend to get the old version) so the companys dont buy. Not to be detured they decide to cut support and let everyone be suseptable to the problems in windoze (and with any program there are bugs) But what amazes me the most is the way they are scaring people with things such as this "leaking" from them

Linux is my only escape from the corperate
onslaught which is the micro$oft Marketing stratregy

[ Parent ]

Windows NT 4 codebase is more complete + GAMES! (1.75 / 4) (#119)
by nickb on Mon Feb 16, 2004 at 08:52:58 PM EST

NOTE: I do not have the source, I have not even looked at at the single line of the codebase and don't intend to!

I've heard on IRC that NT4 codebase that was leaked is a lot more complete than 2K one.

Also, people are saying that NT4 codebase has a lot of UNRELEASED MS games. Some new (or is it old?) card games, tic-tac-toe and even Golf games!

Anyone know for sure of have screenshot of these games?

sounds like microsoft entertainment pack games -nt (none / 1) (#120)
by Suppafly on Mon Feb 16, 2004 at 09:27:41 PM EST

Also, people are saying that NT4 codebase has a lot of UNRELEASED MS games. Some new (or is it old?) card games, tic-tac-toe and even Golf games!
---
Playstation Sucks.
[ Parent ]
Hey, isn't the undocumented stuff illegal? (none / 3) (#122)
by mveloso on Mon Feb 16, 2004 at 11:35:53 PM EST

Wasn't the use of undocumented features of windows part of the anti-trust case? And hey, now there's evidence (that you can read) that Microsoft was hacking their OS for their apps. Of course, MS was also hacking its OS for other people's apps too.

So - all those people that said that MS wasn't taking advantage of their position as an OS/app provider - you're wrong. Doh!

You guys are missing the Point! (1.88 / 9) (#127)
by RMac on Tue Feb 17, 2004 at 05:27:33 AM EST

Sure, it's fun to peek inside the brains of the guys who wrote this monster, BUT... Gee, hasn't anyone noticed that: 1. Microsoft is making a LOT of fuss over code which has been privately circulated for years... 2. This ruckus is about a M$ product which has been replaced by a newer one... 3. M$ has never been able to convince a sh*tload of corporate PeeCee owners to upgrade to Windoze XP... 4. The obvious method of circumventing this Terrible Threat is to buy a newer operating system from M$?

Actually (2.90 / 10) (#132)
by CaptainSuperBoy on Tue Feb 17, 2004 at 10:03:27 AM EST

The point is that people who insist on saying "M$" and "Windoze" are fucking imbeciles.

--
jimmysquid.com - I take pictures.
[ Parent ]
Corporate crapcode (none / 1) (#136)
by A55M0NKEY on Tue Feb 17, 2004 at 03:21:09 PM EST

Notice how MS's flagship products have the mojo to force their OS team to crap up their code with ugly hacks. Problems with the apps get fixed in the OS instead of in the app as they are supposed to be. This would never happen with an open source OS like linux. Why? First, anyone with a crappy app can use the source and make their own hacked up version of the OS, and secondly, the rest of the world would remove any dirty hacks meant to cover the arse of a badly behaved app that they don't use and redistribute. The flawed app would either get it's act together and be fixed or people would use something else.

People are all worried about Microsoft having stolen GNU code. This is not nearly as worrying as the prospect of Microsoft, in subsequent years claiming that this leaked code has somehow been stolen and incorporated into GNU software. Think MS acting like SCO.

Microsoft Office is where the money is (none / 1) (#137)
by R Mutt on Tue Feb 17, 2004 at 04:25:20 PM EST

Windows is just the way Office talks to the hardware.

SCO's gambit was to use the publicity to pump their stock price, and leverage the bubble to buy into companies that actually make money. Microsoft's too big to benefit the same way: lawsuit income would be a drop in the ocean of their revenues.
----
Coward... Asshole... from the start you kept up the appearance of objectively posting interesting links.
[ Parent ]

Application Compatibility (none / 2) (#146)
by cooldev on Wed Feb 18, 2004 at 03:29:06 AM EST

You'll be happy to learn that most of the application compatibility "hacks" are now provided through application-specific shims instead of littering the OS.

Download the Application Compatibility Toolkit and run the compatibility administrator to get a glimpse of some of the efforts that have been made. Currently there are 207 different fixes covering 1792 (!) different applications.

BTW: In the real world, you have to provide backwards compatiblity. You can't just say, "oh, this app sucks because they rely on some incidental behavior, screw them; they better get their act together or people will use something else".



[ Parent ]
bullshit (none / 2) (#158)
by alexpoppinfresh on Thu Feb 19, 2004 at 02:12:51 PM EST

This would never happen with an open source OS like linux.

I hope this is a troll, but JIC you actually think this: that is such bullshit. This shit happens all the time in the OSS world. The problem is it doesn't happen enough for real-world useability.

look at Ion: While this model makes using well-designed and well-behaving programs a joy, some applications, obviously, don't work well in this model. These are in particular those applications that do not conform to the ICCCM (Inter-Client Communications Conventions Manual; the standard on how WM:s and applications should communicate) and expect a particular window management model. Badly-designed applications with multiple top-level windows that affect a single document are also not particularly well suited to the Ion model and should be fixed, although can be occasionally kludged to be compatible. They should be fixed, but for reality's sake, ion kludges around them. That's just the first example to pop into my head with 0 thinking. There are thousands more.

[ Parent ]

Re:Ion. (none / 0) (#160)
by A55M0NKEY on Thu Feb 19, 2004 at 04:36:04 PM EST

I don't know what Ion is, ( I'm a KDE man ) but there is no reason for it to kowtow to specific applications. If the users of those applications want ICCCM ( whatever that is ) compatibilty so they can use Ion, then they should make their favorite applications ICCCM compatible. If Ion is free open source then it's developers really shouldn't do anything to make the code ugly if there are specific applications that are at fault. If they have done so, maybe it is because they are so used to making stupid kludges at their real jobs that they did it out of force of habit.

[ Parent ]
developers will kludge in open source (none / 0) (#176)
by simul on Thu Jun 03, 2004 at 04:52:30 PM EST

developers on smaller, little known projectt will kludge in open source because they are looking to "popularize" their application. they don't have the clout and resources to go around and fix all the other apps in the world

but teams on larger apps will not, i agree, make hacks to get apps with bugs to work - simply becuase it's easier to go around and fix the other major apps that interoperate with them than it is to make some hack. apache team members will regularly help out on mod_ssl, mod_php, etc.... so they don't have to hack up apache - and vice versa!

Read this book - first 24 pages are free to browse - it rocks
[ Parent ]

tabs to spaces (none / 0) (#138)
by nixmose on Tue Feb 17, 2004 at 05:35:28 PM EST

I find it more curious that somebody makes a comment about tabs to spaces messing up the build. I'd be a lot more pissed about how it messes up the source code control system. Maybe I presume too much. Do you think they use source code control?

Yes. (none / 0) (#139)
by trejkaz on Tue Feb 17, 2004 at 06:48:55 PM EST

I was reading an article about the Microsoft build process which said they did use source control. I can't remember which, but Visual SourceSafe would make sense, assuming they eat their own dog food.

Personally I'm more irritated by tabs. People indent stuff with tabs, then it goes over to somebody with a different tab stop and things don't align anymore. This is ordinarily fine, but screws up the neatness of any code which flows onto two lines.



[ Parent ]
Nope. (none / 1) (#141)
by coryking on Tue Feb 17, 2004 at 07:22:49 PM EST

As somebody who has actually worked along side the NT developers as an intern (way back in 1997), they use(d?) some kind of command line stuff. I dont think Source Safe would scale very well to the demands of a multi-million line operating system.

[ Parent ]
TABs Are Simple... (none / 1) (#142)
by ewhac on Tue Feb 17, 2004 at 08:04:06 PM EST

A hard TAB character is eight spaces. Period. End of discussion.

If you think it's something else, you're wrong.

If you think it's configurable, you're wrong.

Proof: Create a text file containing TABs to indent stuff. Load the file into Mozilla. Oh, look! Eight spaces. Load the same file into IE. Oh, look! Eight spaces.

Load the same file into Notepad. Oh, look! Eight spaces.

cat the same file to your CMD.exe window, or your xterm. Oh, look! Eight spaces.

Dump the same file to your printer. Oh, look! Eight spaces.

Dump the same file over a serial port to your VT-100 emulator. Oh, look! Eight spaces.

There really is not much basis for an argument. Assuming TABs are eight spaces will cause you the least amount of headaches.

Code block indentation size, on the other hand, you can argue about. Jamie Zawinski had a great rant about this.

Schwab
vim:set ts=8 sts=4 sw=4:
---
Editor, A1-AAA AmeriCaptions. Priest, Internet Oracle.
[ Parent ]

Whee, I can do that too... (none / 0) (#175)
by Scott A. Wood on Sat Apr 17, 2004 at 10:28:57 AM EST

In code, a hard TAB character is one indentation level. Period. End of discussion.

If you think it's something else, you're wrong.

If you think the visual expression of a TAB character isn't configurable, you're wrong.

Proof: Create a text file that uses a TAB to express indentation level, and spaces to express alignment. Give the file to another developer who uses a different tab size. Notice how the indentation size (which you accept can be argued about) has magically changed to what that developer likes. Also notice that everything is still aligned properly, because spaces were used for alignment after indentation; there is no assumption of tab size encoded into the file (apart from the maximum line length used).

Now, take a text file encoded as you suggest. Open it in a text editor set to a tab size other than 8 (and if, as you assert, it were not configurable, then I must have been hallucinating all the times I've done this). Note how it not only is not indented to the level I expect, but the alignment is horribly mangled. Blocks of code appear to be indented backwards. Further, unless one is using an editor that supports this monstrosity by not taking the tab and backspace keys literally, even if I set the tab size to 8, it's a pain in the ass to edit because of the weird things one has to do to move between indentation levels.

As for loading it into a web browser, printing, etc., yeah, it'll show up as 8 characters, as that's the (unfortunate) historical default. It'll still be aligned properly, though. If you want to view/print the code with a different indentation block size, either configure your printer/browser/whatever (if possible), or convert it to spaces first. It'd be less work than the rest of us having to constantly run your code through indent to fix the fucked up tabs (and then fixing what indent screws up).



[ Parent ]
Huh? (none / 2) (#147)
by rusty on Wed Feb 18, 2004 at 08:31:38 AM EST

If you use all tab characters to indent, then you can set your tab step to anything you like, and it will always line up. If you use all space characters for indenting, then no one gets their own choice of what the indent depth is, but it still all lines up. The problems only start when you have a mixture of tabs and spaces.

____
Not the real rusty
[ Parent ]
Mixtures (none / 2) (#156)
by R Mutt on Thu Feb 19, 2004 at 04:56:40 AM EST

Or in other words, the problem only starts when you try to get several hundred highly strung, arrogant, overworked geeks each convinced of their unique genius to standardize dozens of text editors and tools to exactly the same consistent settings.

I can't see a problem there...
----
Coward... Asshole... from the start you kept up the appearance of objectively posting interesting links.
[ Parent ]

Not VSS (none / 1) (#155)
by bullestock on Thu Feb 19, 2004 at 04:21:53 AM EST

Actually, it is well known that MS uses Perforce. Anyone with knowledge of VSS will understand why...

[ Parent ]
Not Exactly Perforce (none / 1) (#159)
by Gabyqua on Thu Feb 19, 2004 at 03:50:10 PM EST

MS uses SourceDepot which is MS internal SC that has a shared codebase with Perforce.

[ Parent ]
No. I doubt it. (none / 2) (#140)
by coryking on Tue Feb 17, 2004 at 07:21:31 PM EST

a company with millions and millions of lines of code, written by hundreds of developers scattered across the globe would ever think to use source code control.

[ Parent ]
They do daily builds for the whole system (none / 2) (#145)
by R Mutt on Wed Feb 18, 2004 at 03:18:07 AM EST

And for such a big project with so many people, that's pretty tough.
----
Coward... Asshole... from the start you kept up the appearance of objectively posting interesting links.
[ Parent ]
OTOH, in GNU Makefiles... (none / 1) (#157)
by o reor on Thu Feb 19, 2004 at 08:07:00 AM EST

... replacing some of the tabs by spaces will pretty much render your Makefile useless. There has to be a reason why tabs are so important.

[ Parent ]
Copyright versus trade secret (none / 1) (#150)
by swr on Wed Feb 18, 2004 at 02:41:07 PM EST

One thing I don't understand is, why is it assumed that the source code is copyrighted?

Don't you have to publish something for it to be copyrighted? As I understand it, that is a requirement, the idea being that once the copyright expires[*] the works become public domain, which to be at all useful the works need to be publicly available. To that end, it used to be necessary to file works with the copyright office, though that is no longer a requirement. But the principle still holds, doesn't it?

I'm no IP lawyer, but... shouldn't this source code fall under trade secret law instead of copyright law?

[*] Yes I know copyright doesn't expire anymore due to lawmakers repeatedly extending copyrights at the behest of the big media cartels.



Copyright (none / 1) (#151)
by pki on Wed Feb 18, 2004 at 03:38:16 PM EST

Here is the copyright law in a nutshell (from www.copyright.gov)

When is my work protected?

Your work is under copyright protection the moment it is created and fixed in a tangible form that it is perceptible either directly or with the aid of a machine or device.

Do I have to register with your office to be protected?

No. In general, registration is voluntary. Copyright exists from the moment the work is created. You will have to register, however, if you wish to bring a lawsuit for infringement of a U.S. work. See Circular 1, Copyright Basics, section "Copyright Registration."

Why should I register my work if copyright protection is automatic?

Registration is recommended for a number of reasons. Many choose to register their works because they wish to have the facts of their copyright on the public record and have a certificate of registration. Registered works may be eligible for statutory damages and attorney's fees in successful litigation. Finally, if registration occurs within 5 years of publication, it is considered prima facie evidence in a court of law. See Circular 1, Copyright Basics, section "Copyright Registration" and Circular 38b, Highlights of Copyright Amendments Contained in the Uruguay Round Agreements Act (URAA), on non-U.S. works.

[ Parent ]

Copyright does not require "publication" (none / 1) (#168)
by jlatham on Sun Feb 22, 2004 at 02:23:37 AM EST

Copyright is actually automatically provided when any "document" is created. I enclose document in quotes because it extends to things like paintings and sculptures and such also. You don't even have to put a copyright notice on it. People put that on things so that other people know who to go to to ask about reproducing it without a lot of research. Barring any of this site's terms of use, in point of fact, this posting is copyright by me without me having to put a notice on it or send a copy to anyone. To protect your copyright you need to be able to prove when the work was created. An inexpensive way to do this is to simply mail yourself a copy of it in a well sealed envelope via registered mail and then not open it. That gives you proof of creation and you can present it in court in case someone steals your copy of the Great American Novel and publishes it before you do. After that, the court record establishes your copyright ownership.
Waste is a terrible thing to mine.
[ Parent ]
Many choices (3.00 / 2) (#163)
by galway on Thu Feb 19, 2004 at 05:53:07 PM EST

Actually different groups use different source control programs. There are probably 20 different source control programs in use at Microsoft both built in house and commercial.

The code is always fingerprinted - think about it (none / 0) (#171)
by startxxx on Mon Feb 23, 2004 at 06:06:30 AM EST

Microsoft focuses their investigation arround an Israeli partner firm - Mainsoft, one of the 15 in Israel that has access to the sources of windows. MS says the code given to each firm is fingerprinted, hence (i guess) the white spaces thingy and all those funny comments. B.t.w, Does someone know what are those 750mb-1gb zip files of windows sources in eMule?
I try to correct myself because I always wildly exaggerate, well, I sometimes exaggerate a bit..
Probably too late . . . (none / 0) (#174)
by acceleriter on Sun Mar 14, 2004 at 09:06:26 PM EST

. . . but those large files, along with any realistic filesizes you see, are fakes shared by a BayTSP/Cyveillance/Overpeer/$BLACKHELICOPTER_COMPANY type entity to entrap people.

Hooking up to one of those shares will probably earn you one of the famous jkweston@microsoft.com love notes, like the guy who shared the Linux kernel code named as Windows source got.

I hear it was inserted into Freenet and posted to Usenet. Either of those would be a way for somone who wanted to look at the code to see it without exposing himself.

[ Parent ]

may be good (none / 0) (#178)
by keleyu on Mon Mar 21, 2005 at 02:40:05 AM EST

lyrics lyrics

We Are Morons: a quick look at the Win2k source | 180 comments (142 topical, 38 editorial, 4 hidden)
Display: Sort:

kuro5hin.org

[XML]
All trademarks and copyrights on this page are owned by their respective companies. The Rest 2000 - Present Kuro5hin.org Inc.
See our legalese page for copyright policies. Please also read our Privacy Policy.
Kuro5hin.org is powered by Free Software, including Apache, Perl, and Linux, The Scoop Engine that runs this site is freely available, under the terms of the GPL.
Need some help? Email help@kuro5hin.org.
My heart's the long stairs.

Powered by Scoop create account | help/FAQ | mission | links | search | IRC | YOU choose the stories!