In other words, he wants programmers to become the Janitors of this world (not that there is anything wrong with being a janitor.)
If all software can be distributed freely, then there is no money to be had writing software. None. Nada. All you can make money on is support/service, which isn't working so well for Redhat right now.
I agree with some of what the FSF proposes, but I must also say that individuals deserve the right to dictate how their works are used. If that means under a GNU license, great. If that means for-sale, that's great too.
Here are the freedoms they propose:
-The freedom to run the program, for any purpose (freedom 0).- Great! I agree.
-The freedom to study how the program works, and adapt it to your needs (freedom 1). Access to the source code is a precondition for this. - Again, I agree. I have no opposition to a law requiring all software to be sold in source-code form, or requiring source to be made available upon request.
-The freedom to redistribute copies so you can help your neighbor (freedom 2). - Here is where the problem comes. I'm supposed to spend three weeks developing an application, only to have someone give it away? No thanks -- I've got rent to pay and food to buy. If I choose to program on my spare time and give that away, great. But I shouldn't be forced to.
-The freedom to improve the program, and release your improvements to the public, so that the whole community benefits. (freedom 3). Access to the source code is a precondition for this. - Again, we have an issue here. This so-called "freedom" actually restricts my right to control what I have created.
I also thought his comparisons to slavery were a poor attempt to evoke an emotional response. If anything, allowing anyone to distribute any software freely is more akin to slavery... Forcing all programmers to give their work away for free, much as the slaves were forced to work for free. And despite RMS' desire to distance himself from communism, what the FSF proposes is exactly that... except only applied to programmers. It requires all programmers to program only for the good of all of our society, allowing them no personal benefit, and thus removing the incentive to program.
Corporations will always need some things done, so they will hire programmers on staff to do them. But that puts us back at the mercy of big corporations, who's business is NOT software, which means they do NOT have to answer to my software needs. That leaves my only option to writing it myself and gaining nothing from it, or waiting for someone else on a project funded by people's personal time to develop it, from which they gain nothing.
Perhaps in an ideal world... but in reality, if all software were of the FSF's vision, or all software were closed/commercial, then it just wouldn't work. The only system that works is the one we have now: a healthy mix of everything from closed-source, commercial to open-source GNU/FSF.
Have you ever tried Visual Basic? I know it gets a bad rap sometimes, because it is VERY forgiving. It is extremely easy to write very crappy code that still works.
However, for those who bother to do the job right, VB can be a very powerful tool, used to create shipping application. (As I personally have done.)
With VB, you don't care about all the "stuff" underneath (which can be a problem when you try to do something that isn't built-in, but there are creative solutions). You just drag controls onto your window, and write the code behind them. Very easy.
VisualStudio.NET is bringing this in two different directions: First, VB gets full access to everything, and is no longer the "bastard" child of the VS family. Secondly, the other VisualStudio languages get a new Forms system similar to VB's -- just drag controls onto the Window, set properties, then write the code to handle the events. Easy and clean.
That's really what the entire.NET runtime is about: moving away from Win32. What is easier for using sockets to listed on Port 80? Fooling with the separate WinSock2 API, or doing "Dim mySocket as New System.Sockets.TcpListener(80)" ?
This message sometimes gets lost because.NET is a very large umbrella. But what it is bringing to the programming side of things is very impressive indeed. An entirely new programming paradigm where everything you ever wanted to do is neatly arranged within the various Class libraries. I know that in and of itself isn't new, but having that kind of support on the OS level IS new.
Microsoft has already stated that when the Win9x code line is pretty much dead, and everyone is writing to the CLR instead of Win32, they are going to make a move to port the CLR to the WinNT Executive (that is NT's native kernel API). Win32 will finally be relegated to "legacy" tech just like DOS interrupts and Win16.
Slow down your shoveling boy... you might hurt yourself.
So exactly how can Microsoft's IPv6 stack be proprietary, when they don't own the routers, switches, et al? You see, if they change the format of the packets, then the router needs to accept the new format. Since CISCO should be setting up their IPv6 stuff to the agreed standard, that leaves Microsoft little choice.
Microsoft's network protocol implementations have always been fairly standard and able to interact with the world at large. I don't see that changing in the future.
As for IPv6, I don't see that really rolling out until XP covers much of the marketplace. XP (and the Server 2002 editions) should have native IPv6 support.
Stop spewing FUD. It isn't any more endearing than when Microsoft does it.
Here is part of the article, since the site appears to be slashdotted.
-=-
SafeAudio, you probably already heard about it. It's the music industries latest technology to make sure they will get their money from the public.
I've never seen a industry that is so keen on money and tries in any way to protect it's products so desperately. Since they have stopped Napster they are disliked by more and more people, but they don't seem to care.
Altough SafeAudio is rather easy to bypass I think Macrovision can already market it as a success as it seems a lot of record companies have adopted the technology. Soon Macrovision will publish their results and I'm very curious how much they've made this year.
...
SafeAudio protects a CD only from ripping. This means that converting your CD to MP3/WMA files should be impossible. Stupid of course, as there are MP3 players on the market, just like a walk/disc man that you can carry around and for those you NEED to convert your CD's.
...
Macrovision and TTR (that started developing this technology) say that the error corrections that are done while you play a CD in your normal CD player/computer can not be heard, for now there is no reason to believe they are wrong.
The main questions rises, can we bypass it ?
...
Software that is able to do that, and besides that is always very handy is a modified version of CDFS.vxd. (Download here) Before installing this new windows CD-ROM driver you should think about 2 things:
It does not work for Windows NT/2K/XP and with all CD-ROM players
Make sure you have a backup of your original CDFS.vxd file (or just rename the old one to CDFS.old)
You can find the CDFS.vxd file that has to be replaced in the folder:
C:\Windows\System\IOSubSys
If you have succesfully copied the file, you need to restart your computer so the file can be loaded in the OS.
If all went well you can now open your Windows Explorer, and when you have a Audio CD in your drive it will show you all kinds of maps with choices of wav files. You can now pick the file you want and drag it to a folder on your HD !
By dragging and dropping all the files to your HD you have a very easy to use way of making a backup of SafeAudio protected CD's, and damn what will those Macrovision guys feel bad
Sorry, but Apache mostly runs on *nix systems... anything from Linux to Solaris to FreeBSD.
Why don't you try writing a virus or worm that knows enough about each of the various *nix OSes, and the versions of Apache they are running, to infect them all.
Part of the reason Windows is so widespread is because Windows is stable (in an API sense, and in a reliability sense as far as W2K is concerned), and easy to write for.
Part of the reason Microsoft has so many hackers and skr1pt k1ddi3s after them is because Windows is so wide spread. -- russ
Let me recount two very important facts before everyone starts jumping all over Microsoft.
1) If you had followed the security checklist for IIS 4/5, you would not be vulnerable. The checklist instructs you to go over the server mappings and remove any that are unnecessary, including the one for Index Server.
2) If you were on the Microsoft Product Security Bulletin mailing list, you would have gotten a notice back in early June about this, downloaded the patch, and installed it. Thus, you would not be vulnerable.
This is not a case of Microsoft shipping something insecure by default (although such a case can be made for other issues in the past). This is a case of the most common programming mistake made by C++ programmers the world over: a buffer overflow. Buffer overflows have been found in every single OS currently in use, which includes Linux and *BSD. Some have even been root exploits.
Please... go to http://www.microsoft.com/technet/security/
There are a number of checklists, tools, and downloads that can be used to harden any IIS webserver to the point that it is virtually uncrackable. Of course I must add the virtual part, because there is ALWAYS a chance that ANY system connected to ANY network can be compromised. There is no such thing as 100% security; we can only get really close.
I now return you to your regularly scheduled zealotry.
The major problem is that courts have held companies liable for their employee's conduct, even when that conduct is against company policy. Therefore, we MUST scan our email for anything that could be remotely deemed offensive, or we risk being sued. If we choose to respect privacy, then we open ourselves up to massive liability.
We need laws protecting employers from liability if an employee refuses to report misconduct. Then we could do away with some of the scanning and observing technologies we have (which cost us quiet a bit... many thousands.) If someone receives an offensive message, reports it, and nothing happens, ONLY then should the company be responsible for it. But the way the courts have ruled up to this point, simply not performing active scanning of email is an admission of guilt. -- russ
Since the website seems to be/.ed, I give you the article:
===
Are the Digits of Pi Random? A Berkeley Lab Researcher May Hold the Key
A researcher at the Department of Energy's National Energy Research Scientific Computing Center (NERSC) at Lawrence Berkeley National Laboratory, and his colleague at the Center for Advanced Computation at Reed College, have taken a major step toward answering the age-old question of whether the digits of pi and other math constants are "random." Their results are reported in the Summer 2001 issue of Experimental Mathematics.
July 26--Pi, the ubiquitous number whose first few digits are 3.14159, is irrational, which means that its digits run on forever (by now they have been calculated to billions of places) and never repeat in a cyclical fashion. Numbers like pi are also thought to be "normal," which means that their digits are random in a certain statistical sense.
David Bailey
Describing the normality property, David H. Bailey, chief technologist at NERSC, explains that "in the familiar base 10 decimal number system, any single digit of a normal number occurs one tenth of the time, any two-digit combination occurs one one-hundredth of the time, and so on. It's like throwing a fair, ten-sided die forever and counting how often each side or combination of sides appears."
Pi certainly seems to behave this way. In the first six billion decimal places of pi, each of the digits from 0 through 9 shows up about six hundred million times. Yet such results, conceivably accidental, do not prove normality even in base 10, much less normality in other number bases.
In fact, not a single naturally occurring math constant has been proved normal in even one number base, to the chagrin of mathematicians. While many constants are believed to be normal--including pi, the square root of 2, and the natural logarithm of 2, often written "log(2)"--there are no proofs.
The determined attacks of Bailey and his colleague Richard Crandall, director of the Center for Advanced Computation at Reed College, Portland, Oregon, are beginning to illuminate this classic problem. Their results indicate that the normality of certain math constants is a consequence of a plausible conjecture in the field of chaotic dynamics, which states that sequences of a particular kind, as Bailey puts it, "uniformly dance in the limit between 0 and 1"--a conjecture that he and Crandall refer to as "Hypothesis A."
"If even one particular instance of Hypothesis A could be established," Bailey remarks, "the consequences would be remarkable"--for the normality (in base 2) of pi and log(2) and many other mathematical constants would follow.
A simple formula discovered with the integer-relation algorithm dubbed PSLQ makes it possible to calculate the Nth binary digit of Pi without computing any of the first N-1 digits, and do the computation with very little computing power.
This result derives directly from the discovery of an ingenious formula for pi that Bailey, together with Canadian mathematicians Peter Borwein and Simon Plouffe, found with a computer program in 1996. Named the BBP formula for its authors, it has the remarkable property that it permits one to calculate an arbitrary digit in the binary expansion of pi without needing to calculate any of the preceding digits. Prior to 1996, mathematicians did not believe this could be done.
The digit-calculation algorithm of the BBP formula yields just the kind of chaotic sequences described in Hypothesis A. Says Bailey, "These constant formulas give rise to sequences that we conjecture are uniformly distributed between 0 and 1--and if so, the constants are normal."
Bailey emphasizes that the new result he and Crandall have obtained does not constitute a proof that pi or log(2) is normal (since this is predicated on the unproven Hypothesis A). "What we have done is translate a heretofore unapproachable problem, namely the normality of pi and other constants, to a more tractable question in the field of chaotic processes."
He adds that "at the very least, we have shown why the digits of pi and log(2) appear to be random: because they are closely approximated by a type of generator associated with the field of chaotic dynamics."
For the two mathematicians, the path to their result has been a long one. Bailey memorized pi to more than 300 digits "as a diversion between classroom lectures" while still a graduate student at Stanford. In 1985 he tested NASA's new Cray-2 supercomputer by computing the first 29 million digits of pi. The program found bugs in the Cray-2 hardware, "much to the consternation of Seymour Cray."
Crandall, who researches scientific applications of computation, suggested the possible link between the digits of pi and the theory of chaotic dynamic sequences.
While other prominent mathematicians in the field fear that the crucial Hypothesis A may be too hard to prove, Bailey and Crandall remain sanguine. Crandall quotes the eminent mathematician Carl Ludwig Siegel: "One cannot guess the real difficulties of a problem before having solved it."
Among the numerous connections of Bailey's and Crandall's work with other areas of research is in the field of pseudorandom number generators, which has applications in cryptography.
"The connection to pseudorandom number generators is likely the best route to making further progress," Bailey adds. "Richard and I are pursuing this angle even as we speak."--by Paul Preuss
Each voting booth has a LCD touch-screen in it. There is a list of names for the specific office (also listed on the screen in bold letters.)
When you touch the name, it highlights in large red letters. There are only two other buttons on the page, back and forward. Thus making it very simple to use.
Each of these booths are connected to a printer, or series of printers. These printers spit out square pieces of paper, with what appear to be random clouds of dots. But these are actually a form of "barcode" that indicate what choices were made. These papers can be fed into reading machines for the final vote.
This system preserves anonymity, and yet makes it much harder to counterfeit votes, at least in any new ways.
The problem with Internet voting is that how could you tell if someone hacked the system and were entering invalid votes? How would you do a recount? It adds a very large element where corporate or government interests can really screw over the numbers.... or even a disgruntled programmer or system operator. -- russ
I am writing today to express my displeasure concerning the way Adobe has conducted itself in regards to Dmitry Sklyarov and Elcomsoft. It would seem that, rather than thanking Mr. Sklyarov for exposing serious flaws in your products, and then correcting them, you have chosen to persue a course of litigation and intimidation via the misuse of law enforcement.
I believe that copyright holders must have methods to secure their works. But as is obvious thanks to Elcomsoft's work, the protection afforded by Adobe's eBook products is easily overcome. There is no doubt that THOUSANDS of people have been taking advantage of this, silently, and thus ripping off legitimate copyright holders. Elcomsoft has only vocalized what was already occuring.
As an Adobe customer, here is what I want: The persuit of better products, and not more litigation. We have enough of that already. I fear one day that my children may be imprisioned for pointing out flaws in corporate products, or for engaging in legitimate research of code and computer products. Perhaps, if you have children, they will be too. So I urge Adobe to "back off" as it were and refocus the money that would have been spent on lawyers into developing a more secure and better eBook system.
Thank-you for your time, and I look forward to yout reply!
-- [INSERT NAME]
Don't just lament how wrong this is. TELL Adobe what you think of them and their actions. But PLEASE, be polite. Messages like "j00 suX0r Adobe!" get thrown in the PLOINK-bin faster than you can blink, and without a second thought. But a well-written message detailing why you are not happy with them, and what they can do about it, would be most helpful. Here are some PR contacts at adobe:
Don't forget to give them a ring on the tele:
(408) 536-6000
And lastly, we have the executive's email addys (I think. I have not verified these addresses, so they may not work. The ones above will for sure though.)
Go out there and tell them! Corporations are run by people, just like us. Sometimes those people do very stupid things and need correction; that is what I plan to do, and everyone who reads this message should do the same. -- russ
Well, the supposed "nuclear" waste produced in a fusion reaction would last less than 100 years... at least, that is the point at which it would be less radioactive than standard coal-burning plants. The storage and handling problem is not an issue at all really, unlike fission where we leave our great times 10^100 grandchildren a mess to look after. -- russ
Better warn NASA not to launch any pieces of the Space Station from anywhere in California -- otherwise they might start charging NASA and everyone on board with their Space-Tax. -- russ
No, ActiveX started out as "Object Linking and Embedding" back in the early Windows days. Microsoft greatly expanded it, and changed the name to activeX.
ActiveX is really just a specification for binary compatibility between objects, programs, and the OS across any language. If you support the standard interfaces and binary types, ActiveX doesn't care what language you wrote that in or how things are arranged behind the scenes. In other words, it is a well-defined contract between clients and servers, with the servers being just about anything and the clients being pieces of code that provide a service.
ActiveX is why I can buy any one of thousands of OCXes or DLLs already prebuilt to do one thing or another, then instantiate them from VC++, VB, Java, scripts, et al and use them with great ease.
When you think about it, the concept of embedding an ActiveX control in a page isn't that radical. If I already have written an OCX that does THingX, and I wanna do that in my page, why not just tell the page to load the OCX? At least from Microsoft's thinking. Otherwise, I have to write a separate plugin that does ThingX, thus wasting my time.
I find programming on the Windows side infinitely easier in part due to ActiveX. If I want to write a code editor with color syntax highlighting, I can spend a lot of time writing and debugging it myself, or I can just buy one of the many OCXes already out there for that purpose, or download one of the many projects that are open source. -- russ
Microsoft has already comitted to an Open-source Common Language Runtime, which will contain all the basic System.* classes and everything else you need to run any of the.NET compiled languages. It is being developed in conjunction with Corel, and will be released for the *BSD platforms. It should be a short order to get it running on Linux.
What they aren't doing is putting WinForms out there, which is an AWESOME library for dealing with desktop apps. On some level, I understand this, because so much of WinForms is dependant on how Windows does things, the porting job would be huge (but not impossible.)
ASP.NET will also be Windows only, but again that isn't surprising, given that IIS only runs on Windows.
Bottom line: They will be ensuring that the basic core of the.NET programming side is available. As for the extra frills, you'll have to use Windows for those.
Reverse engineering them (WinForms especially) shouldn't be too hard though -- all of the classes have well-defined interfaces generally. It will just take a lot of tedious work. -- russ
Add/SOS to the end of boot.ini and you'll get a listing of kernel drivers loaded during startup, as well as the autochk status stuff.
But neither Win9x or Win2K have the ability to print the same type of info that goes into the boot log file to the screen. I've wished there was a way to do so, but only for my own home machine because I like to tinker. For most users, it is a moot point. -- russ
First of all, he flat out states that the license will be setup in such a way that non-commercial ports to Linux (or any other OS most likely) are 100% OK.
This section of the article was particularly telling, in terms of what will be offered in source format and what won't.
Stutz says that the CLI being offered as shared source is a subset of what's in the.NET framework. The offerings include:
the ECMAscript compiler, written in C#, which runs on both platforms (Windows, FreeBSD)
the C# compiler, which also runs on both platforms
and the shared-source CLI.
OK, that's good. It means we can run.NET scripts on other platforms. We'll also have the C# compiler on other platforms. The kicker is the CLI, which gives us the base runtime for C#, C++, VB, Perl, or any other.NET app to run.
It doesn't include
ASP.NET
ADO.NET
Windows Forms
I don't see ASP.NET as a problem, since it is so tied to IIS anyway. ADO would be a HUGE boon to Linux in terms of database programming. Of course having a standard windowing model between Windows and other OSes would be great too, but it appears that is not to be.
He did state that MS is always willing to work with commercial porting companies. This is only a list of what they are letting out in source form for free. A company, say RedHat, could very well port ASP.NET to run on Apache, or Borland could sell a Windows Forms environment for the various *nixes.
Anyhow, he goes on:
When this shared license is revealed, it will certainly be the most liberal software license Microsoft has offered. But Stutz says it's not out of the question that in the future, Microsoft's licenses will become ever more open.
"This is all about Microsoft getting serious about sharing source code in a very wide way," he said. "And it's also a serious long-term commitment to establishing the CLI as a basis for web services. It's really not a short-term, tactical Java battle."
It doesn't matter; if Intel bought the patents for EV6 then they also bought the liabilites that came with them, including prior contracts with AMD. Intel can't just cut them off without entering into a serious breech of contract, which would give AMD plenty of ammo to clean their clocks in the court system.
AMD has nothing to fear from this situation, at least immediately. Some of the engineers may want to keep working at a place where their input is actually valued instead of silenced by uppermanagement (think RAMBUSgate). So AMD might actually find itself some top-class engineers looking for work on its doorstep soon.
Now as for the long term, i guess it all depends on exactly what Intel bought and how much of an edge (if any) this would give them. -- russ
While this looks very ominous, you must take a look at what this license is for. It concerns BETA/prerelease software. This isn't production code. The license very clearly states that you may only use the SDK "for the sole purposes of designing, developing, and testing Recipient's Applications,"
Here is the relevant Open Source section. Please note that "The Software" referrs to Microsoft's SDK, and will be highlighted in bold text.
(c) Open Source. Recipient's license rights to the Software are conditioned upon Recipient
(i) not distributing such Software, in whole or in part, in conjunction with Potentially Viral Software (as defined below); and
(ii) not using Potentially Viral Software (e.g. tools) to develop Recipient software which includes the Software, in whole or in part. For purposes of the foregoing, "Potentially Viral Software" means software which is licensed pursuant to terms that: (x) create, or purport to create, obligations for Microsoft with respect to the Software or (y) grant, or purport to grant, to any third party any rights to or immunities under Microsoft's intellectual property or proprietary rights in the Software. By way of example but not limitation of the foregoing, Recipient shall not distribute the Software, in whole or in part, in conjunction with any Publicly Available Software.
"Publicly Available Software" means each of
(i) any software that contains, or is derived in any manner (in whole or in part) from, any software that is distributed as free software, open source software (e.g. Linux) or similar licensing or distribution models; and
(ii)any software that requires as a condition of use, modification and/or distribution of such software that other software distributed with such software
(A) be disclosed or distributed in source code form;
(B) be licensed for the purpose of making derivative works; or
(C) be redistributable at no charge. Publicly Available Software includes, without limitation, software licensed or distributed under any of the following licenses or distribution models, or licenses or distribution models similar to any of the following:
(A) GNU's General Public License (GPL) or Lesser/Library GPL (LGPL),
(B) The Artistic License (e.g., PERL),
(C) the Mozilla Public License,
(D) the Netscape Public License,
(E) the Sun Community Source License (SCSL)
(F) the Sun Industry Standards License (SISL).
While that may at first appear very drastic, one must consider what is being said: You cannot distribute the SDK, or any of its components/examples with Open Source projects. This says nothing of the runtime -- only the SDK itself. Basically you can't lump the SDK into a package covered under another license. We must also notice this little paragraph, which would seem rather important:
3. APPROVED USES OF APPLICATIONS.
(a) Except as provided in Subsection 3(b), Recipient may only use Applications on an internal basis for non-production purposes only and may not distribute or license the Applications to third parties or make the Applications available for use by any third party.
All told, this is fairly standard as a Microsoft prerelease/beta license agreement. They are giving you tools, code samples, documentation, etc... and you are agreeing not to distribute this SDK as part of any other projects, especially Open Source ones. You are also agreeing not to distribute any projects that you create, or use them in "production" systems. Now if the final release version of the runtime included these clauses, we should start raising some eyebrowes. -- russ
This isn't directly related to the article, but it is a key question I think must be answered. What prevents you, exactly, from releasing OpenSource programs for Windows CE? (or Windows for that matter?)
I do it all the time. There is a fairly strong Windows OpenSource community, and we get nothing but disrespect from our OSOS-using bretheren. If you want to preach the benefits of Open Source to the masses, you can't afford to be a platform bigot.
The Windows 2000 networking code is based on that of BSD, which is why it has one of the few truely multithreaded reentrant IP stacks.
However, I'd like to clear up one misconception that I've seen repeated in many comments here. Microsoft did in fact migrate from FreeBSD to Windows 2000 for all of their Hotmail systems, as well as converting the frontend web app from a kludgy (by fault of the programmers) perl system to a clean ISAPI interface. That alone skyrocketed their uptime and load capabilities.
Here is a little snippet:
-------
"All of the Hotmail web servers are dual Pentium processor servers. Originally, these servers were built with FreeBSD running Apache as the web server. Most of the Web pages were generated by Perl-based CGIs. The version of Apache that was being used was not multi-threaded so each request was handled by another Apache process that was spawned off by the parent process. Spawning a new process is costly and Perl is an interpreted language so the performance of these machines was not optimal.
One of the first tasks undertaken by the dev team when Microsoft purchased Hotmail was to convert all the CGIs from Perl to C++. This was done for several reasons--the most important of which was performance. After this was completed, a couple of developers were tasked with getting the code to build and run on Windows NT® operating system. This was done because of the need for better debugging tools.
After this port was done, Windows NT and Microsoft Visual C++® became the development environment. The code was written and debugged on Windows NT and then built and tested under FreeBSD. This made debugging much easier. At this point the production code was still built as individual CGIs with gcc on FreeBSD.
Eventually a number of technical and performance issues were compelling enough to consider moving the live site from FreeBSD to Windows 2000. The number of front-end machines was growing at an alarming rate to keep up with Hotmail's growth. It was becoming financially, operationally and physically difficult to maintain the rate that machines were being added. So, it became necessary to look at ways of squeezing more performance out of the servers. Several FreeBSD alternatives were investigated, including wrapping the code in an Apache module (the Apache equivalent of Internet Server API [ISAPI]), switching to Zeus, a multi-threaded Web server for UNIX that supports ISAPI, and a couple of other Web servers. At the same time more languages needed to be supported. To support the number of languages being discussed necessitated the use of Unicode. The Unicode support available under FreeBSD was inadequate and would have taken a lot of development time to get it to meet our needs. Windows 2000 had just gone beta so it was considered as a possible solution to both of these problems. The globalization team investigated the Windows 2000 Unicode support and determined that it would do what was required. The next step was performance testing. "
The DLL system was created back when 16MB of memory was expensive and hard drives didn't generally top 500mb. At that time, space and memory was at a premium, and DLLs provided a way to share common code across applications, as well as with the system.
Fast forward to a time when 256MB of memory will cost you pocket change, and we're topping 100GB hard drives. Suddenly, the benefits that made the version conflicts worth it become worthless in and of themselves. Thus, DLLs became a drawback, rather than a feature.
Microsoft is changing all that; first of all, in Windows 2000, no install program can replace a critical system DLL. Windows File Protection will see to that. Unless you are installing a b0rked driver, you will never fail to boot after installing an application. Secondly, Windows 2000 has the ability to load different versions of DLLs in memory at the same time, for different applications. It can also load DLLs out of an Application's own directory rather than the SYSTEM32 folder.
The big changes are coming with VisualStudio.NET and the.NET runtime. In that system, Application programmers are encouraged to store all their own custom code in their own directories. Of course registration of COM components is gone, since each carries with it an XML manifest describing the component and everything the OS and program need to know about it.
Collectively, the XML manifest, supporting resource files, and all the DLL files that makeup a certain library are now called an "assembly." (aka a package).
If a library does need to be installed for sharing, the program hands it over to the assembly store. No application or installer can directly write to the store... The store looks at the version... if two versions are deemed compatible (1.0.x.x), then the shared assembly is updated. If they are deemed incompatible (x.x.1.1), then the new copy is stored alongside the old one. When the application runs, and the OS goes looking for the shared assembly, the store recalls what version the application installed, and hands it that version. Viola, problem solved.
Microsoft was simply solving a problem, and the solution later turned into a problem in and of itself. This time they are being a bit more forward-looking in their approach.
Lastly, just because you are too lazy to read the SDK and other docs, don't say Microsoft is trying to hide things in the OS from you. There is nothing that Microsoft programs, like Office, can do which I cannot do. You would be quite surprised how much information that is really available if you just looked. Spend a week or two at msdn.microsoft.com and then try and come back and tell us that you still don't know how something works; then we'll know you are illiterate:)
In other words, he wants programmers to become the Janitors of this world (not that there is anything wrong with being a janitor.)
If all software can be distributed freely, then there is no money to be had writing software. None. Nada. All you can make money on is support/service, which isn't working so well for Redhat right now.
I agree with some of what the FSF proposes, but I must also say that individuals deserve the right to dictate how their works are used. If that means under a GNU license, great. If that means for-sale, that's great too.
Here are the freedoms they propose:
-The freedom to run the program, for any purpose (freedom 0).- Great! I agree.
-The freedom to study how the program works, and adapt it to your needs (freedom 1). Access to the source code is a precondition for this. - Again, I agree. I have no opposition to a law requiring all software to be sold in source-code form, or requiring source to be made available upon request.
-The freedom to redistribute copies so you can help your neighbor (freedom 2). - Here is where the problem comes. I'm supposed to spend three weeks developing an application, only to have someone give it away? No thanks -- I've got rent to pay and food to buy. If I choose to program on my spare time and give that away, great. But I shouldn't be forced to.
-The freedom to improve the program, and release your improvements to the public, so that the whole community benefits. (freedom 3). Access to the source code is a precondition for this. - Again, we have an issue here. This so-called "freedom" actually restricts my right to control what I have created.
I also thought his comparisons to slavery were a poor attempt to evoke an emotional response. If anything, allowing anyone to distribute any software freely is more akin to slavery... Forcing all programmers to give their work away for free, much as the slaves were forced to work for free. And despite RMS' desire to distance himself from communism, what the FSF proposes is exactly that... except only applied to programmers. It requires all programmers to program only for the good of all of our society, allowing them no personal benefit, and thus removing the incentive to program.
Corporations will always need some things done, so they will hire programmers on staff to do them. But that puts us back at the mercy of big corporations, who's business is NOT software, which means they do NOT have to answer to my software needs. That leaves my only option to writing it myself and gaining nothing from it, or waiting for someone else on a project funded by people's personal time to develop it, from which they gain nothing.
Perhaps in an ideal world... but in reality, if all software were of the FSF's vision, or all software were closed/commercial, then it just wouldn't work. The only system that works is the one we have now: a healthy mix of everything from closed-source, commercial to open-source GNU/FSF.
Have you ever tried Visual Basic? I know it gets a bad rap sometimes, because it is VERY forgiving. It is extremely easy to write very crappy code that still works.
.NET runtime is about: moving away from Win32. What is easier for using sockets to listed on Port 80? Fooling with the separate WinSock2 API, or doing "Dim mySocket as New System.Sockets.TcpListener(80)" ?
.NET is a very large umbrella. But what it is bringing to the programming side of things is very impressive indeed. An entirely new programming paradigm where everything you ever wanted to do is neatly arranged within the various Class libraries. I know that in and of itself isn't new, but having that kind of support on the OS level IS new.
However, for those who bother to do the job right, VB can be a very powerful tool, used to create shipping application. (As I personally have done.)
With VB, you don't care about all the "stuff" underneath (which can be a problem when you try to do something that isn't built-in, but there are creative solutions). You just drag controls onto your window, and write the code behind them. Very easy.
VisualStudio.NET is bringing this in two different directions: First, VB gets full access to everything, and is no longer the "bastard" child of the VS family. Secondly, the other VisualStudio languages get a new Forms system similar to VB's -- just drag controls onto the Window, set properties, then write the code to handle the events. Easy and clean.
That's really what the entire
This message sometimes gets lost because
Microsoft has already stated that when the Win9x code line is pretty much dead, and everyone is writing to the CLR instead of Win32, they are going to make a move to port the CLR to the WinNT Executive (that is NT's native kernel API). Win32 will finally be relegated to "legacy" tech just like DOS interrupts and Win16.
Actually, XP won't ship with a default MP3 encoder at all. The basic >64bit encoder the beta had was only for testing purposes.
And none of that prevents you from installing additional codecs, as always.
Slow down your shoveling boy... you might hurt yourself.
So exactly how can Microsoft's IPv6 stack be proprietary, when they don't own the routers, switches, et al? You see, if they change the format of the packets, then the router needs to accept the new format. Since CISCO should be setting up their IPv6 stuff to the agreed standard, that leaves Microsoft little choice.
Microsoft's network protocol implementations have always been fairly standard and able to interact with the world at large. I don't see that changing in the future.
As for IPv6, I don't see that really rolling out until XP covers much of the marketplace. XP (and the Server 2002 editions) should have native IPv6 support.
Stop spewing FUD. It isn't any more endearing than when Microsoft does it.
Here is part of the article, since the site appears to be slashdotted.
-=-
SafeAudio, you probably already heard about it. It's the music industries latest technology to make sure they will get their money from the public.
I've never seen a industry that is so keen on money and tries in any way to protect it's products so desperately. Since they have stopped Napster they are disliked by more and more people, but they don't seem to care.
Altough SafeAudio is rather easy to bypass I think Macrovision can already market it as a success as it seems a lot of record companies have adopted the technology. Soon Macrovision will publish their results and I'm very curious how much they've made this year.
...
SafeAudio protects a CD only from ripping. This means that converting your CD to MP3/WMA files should be impossible. Stupid of course, as there are MP3 players on the market, just like a walk/disc man that you can carry around and for those you NEED to convert your CD's.
...
Macrovision and TTR (that started developing this technology) say that the error corrections that are done while you play a CD in your normal CD player/computer can not be heard, for now there is no reason to believe they are wrong.
The main questions rises, can we bypass it ?
...
Software that is able to do that, and besides that is always very handy is a modified version of CDFS.vxd. (Download here) Before installing this new windows CD-ROM driver you should think about 2 things:
It does not work for Windows NT/2K/XP and with all CD-ROM players
Make sure you have a backup of your original CDFS.vxd file (or just rename the old one to CDFS.old)
You can find the CDFS.vxd file that has to be replaced in the folder:
C:\Windows\System\IOSubSys
If you have succesfully copied the file, you need to restart your computer so the file can be loaded in the OS.
If all went well you can now open your Windows Explorer, and when you have a Audio CD in your drive it will show you all kinds of maps with choices of wav files. You can now pick the file you want and drag it to a folder on your HD !
By dragging and dropping all the files to your HD you have a very easy to use way of making a backup of SafeAudio protected CD's, and damn what will those Macrovision guys feel bad
-=-
see the actual site later for more info.
Enjoy.
Sorry, but Apache mostly runs on *nix systems... anything from Linux to Solaris to FreeBSD.
Why don't you try writing a virus or worm that knows enough about each of the various *nix OSes, and the versions of Apache they are running, to infect them all.
Part of the reason Windows is so widespread is because Windows is stable (in an API sense, and in a reliability sense as far as W2K is concerned), and easy to write for.
Part of the reason Microsoft has so many hackers and skr1pt k1ddi3s after them is because Windows is so wide spread.
-- russ
Let me recount two very important facts before everyone starts jumping all over Microsoft.
1) If you had followed the security checklist for IIS 4/5, you would not be vulnerable. The checklist instructs you to go over the server mappings and remove any that are unnecessary, including the one for Index Server.
2) If you were on the Microsoft Product Security Bulletin mailing list, you would have gotten a notice back in early June about this, downloaded the patch, and installed it. Thus, you would not be vulnerable.
This is not a case of Microsoft shipping something insecure by default (although such a case can be made for other issues in the past). This is a case of the most common programming mistake made by C++ programmers the world over: a buffer overflow. Buffer overflows have been found in every single OS currently in use, which includes Linux and *BSD. Some have even been root exploits.
Please... go to http://www.microsoft.com/technet/security/
There are a number of checklists, tools, and downloads that can be used to harden any IIS webserver to the point that it is virtually uncrackable. Of course I must add the virtual part, because there is ALWAYS a chance that ANY system connected to ANY network can be compromised. There is no such thing as 100% security; we can only get really close.
I now return you to your regularly scheduled zealotry.
-- russ
The major problem is that courts have held companies liable for their employee's conduct, even when that conduct is against company policy. Therefore, we MUST scan our email for anything that could be remotely deemed offensive, or we risk being sued. If we choose to respect privacy, then we open ourselves up to massive liability.
We need laws protecting employers from liability if an employee refuses to report misconduct. Then we could do away with some of the scanning and observing technologies we have (which cost us quiet a bit... many thousands.) If someone receives an offensive message, reports it, and nothing happens, ONLY then should the company be responsible for it. But the way the courts have ruled up to this point, simply not performing active scanning of email is an admission of guilt.
-- russ
Since the website seems to be /.ed, I give you the article:
===
Are the Digits of Pi Random? A Berkeley Lab Researcher May Hold the Key
A researcher at the Department of Energy's National Energy Research Scientific Computing Center (NERSC) at Lawrence Berkeley National Laboratory, and his colleague at the Center for Advanced Computation at Reed College, have taken a major step toward answering the age-old question of whether the digits of pi and other math constants are "random." Their results are reported in the Summer 2001 issue of Experimental Mathematics.
July 26--Pi, the ubiquitous number whose first few digits are 3.14159, is irrational, which means that its digits run on forever (by now they have been calculated to billions of places) and never repeat in a cyclical fashion. Numbers like pi are also thought to be "normal," which means that their digits are random in a certain statistical sense.
David Bailey
Describing the normality property, David H. Bailey, chief technologist at NERSC, explains that "in the familiar base 10 decimal number system, any single digit of a normal number occurs one tenth of the time, any two-digit combination occurs one one-hundredth of the time, and so on. It's like throwing a fair, ten-sided die forever and counting how often each side or combination of sides appears."
Pi certainly seems to behave this way. In the first six billion decimal places of pi, each of the digits from 0 through 9 shows up about six hundred million times. Yet such results, conceivably accidental, do not prove normality even in base 10, much less normality in other number bases.
In fact, not a single naturally occurring math constant has been proved normal in even one number base, to the chagrin of mathematicians. While many constants are believed to be normal--including pi, the square root of 2, and the natural logarithm of 2, often written "log(2)"--there are no proofs.
The determined attacks of Bailey and his colleague Richard Crandall, director of the Center for Advanced Computation at Reed College, Portland, Oregon, are beginning to illuminate this classic problem. Their results indicate that the normality of certain math constants is a consequence of a plausible conjecture in the field of chaotic dynamics, which states that sequences of a particular kind, as Bailey puts it, "uniformly dance in the limit between 0 and 1"--a conjecture that he and Crandall refer to as "Hypothesis A."
"If even one particular instance of Hypothesis A could be established," Bailey remarks, "the consequences would be remarkable"--for the normality (in base 2) of pi and log(2) and many other mathematical constants would follow.
A simple formula discovered with the integer-relation algorithm dubbed PSLQ makes it possible to calculate the Nth binary digit of Pi without computing any of the first N-1 digits, and do the computation with very little computing power.
This result derives directly from the discovery of an ingenious formula for pi that Bailey, together with Canadian mathematicians Peter Borwein and Simon Plouffe, found with a computer program in 1996. Named the BBP formula for its authors, it has the remarkable property that it permits one to calculate an arbitrary digit in the binary expansion of pi without needing to calculate any of the preceding digits. Prior to 1996, mathematicians did not believe this could be done.
The digit-calculation algorithm of the BBP formula yields just the kind of chaotic sequences described in Hypothesis A. Says Bailey, "These constant formulas give rise to sequences that we conjecture are uniformly distributed between 0 and 1--and if so, the constants are normal."
Bailey emphasizes that the new result he and Crandall have obtained does not constitute a proof that pi or log(2) is normal (since this is predicated on the unproven Hypothesis A). "What we have done is translate a heretofore unapproachable problem, namely the normality of pi and other constants, to a more tractable question in the field of chaotic processes."
He adds that "at the very least, we have shown why the digits of pi and log(2) appear to be random: because they are closely approximated by a type of generator associated with the field of chaotic dynamics."
For the two mathematicians, the path to their result has been a long one. Bailey memorized pi to more than 300 digits "as a diversion between classroom lectures" while still a graduate student at Stanford. In 1985 he tested NASA's new Cray-2 supercomputer by computing the first 29 million digits of pi. The program found bugs in the Cray-2 hardware, "much to the consternation of Seymour Cray."
Crandall, who researches scientific applications of computation, suggested the possible link between the digits of pi and the theory of chaotic dynamic sequences.
While other prominent mathematicians in the field fear that the crucial Hypothesis A may be too hard to prove, Bailey and Crandall remain sanguine. Crandall quotes the eminent mathematician Carl Ludwig Siegel: "One cannot guess the real difficulties of a problem before having solved it."
Among the numerous connections of Bailey's and Crandall's work with other areas of research is in the field of pseudorandom number generators, which has applications in cryptography.
"The connection to pseudorandom number generators is likely the best route to making further progress," Bailey adds. "Richard and I are pursuing this angle even as we speak."--by Paul Preuss
===
Enjoy.
-- russ
Actually both the law and the courts have always held that reverse-engineering is LEGAL in the U.S.
The DMCA will get smacked down if we can ever get it to the Supreme Court. It violates so many rights and other precedents, it is not amusing.
-- russ
Here is my idea:
Each voting booth has a LCD touch-screen in it. There is a list of names for the specific office (also listed on the screen in bold letters.)
When you touch the name, it highlights in large red letters. There are only two other buttons on the page, back and forward. Thus making it very simple to use.
Each of these booths are connected to a printer, or series of printers. These printers spit out square pieces of paper, with what appear to be random clouds of dots. But these are actually a form of "barcode" that indicate what choices were made. These papers can be fed into reading machines for the final vote.
This system preserves anonymity, and yet makes it much harder to counterfeit votes, at least in any new ways.
The problem with Internet voting is that how could you tell if someone hacked the system and were entering invalid votes? How would you do a recount? It adds a very large element where corporate or government interests can really screw over the numbers.... or even a disgruntled programmer or system operator.
-- russ
OK, here is a short but sweet form letter:
:)
==
Dear Sir/Madam:
I am writing today to express my displeasure concerning the way Adobe has conducted itself in regards to Dmitry Sklyarov and Elcomsoft. It would seem that, rather than thanking Mr. Sklyarov for exposing serious flaws in your products, and then correcting them, you have chosen to persue a course of litigation and intimidation via the misuse of law enforcement.
I believe that copyright holders must have methods to secure their works. But as is obvious thanks to Elcomsoft's work, the protection afforded by Adobe's eBook products is easily overcome. There is no doubt that THOUSANDS of people have been taking advantage of this, silently, and thus ripping off legitimate copyright holders. Elcomsoft has only vocalized what was already occuring.
As an Adobe customer, here is what I want: The persuit of better products, and not more litigation. We have enough of that already. I fear one day that my children may be imprisioned for pointing out flaws in corporate products, or for engaging in legitimate research of code and computer products. Perhaps, if you have children, they will be too. So I urge Adobe to "back off" as it were and refocus the money that would have been spent on lawyers into developing a more secure and better eBook system.
Thank-you for your time, and I look forward to yout reply!
-- [INSERT NAME]
==
Happy now? You lazy people
-- russ
Don't just lament how wrong this is. TELL Adobe what you think of them and their actions. But PLEASE, be polite. Messages like "j00 suX0r Adobe!" get thrown in the PLOINK-bin faster than you can blink, and without a second thought. But a well-written message detailing why you are not happy with them, and what they can do about it, would be most helpful. Here are some PR contacts at adobe:
jcristof@adobe.com
dstyerwa@adobe.com
lvacante@adobe.com
ablatchf@adobe.com
skrueger@adobe.com
gbabbit@adobe.com
wsaso@adobe.com
Don't forget to give them a ring on the tele:
(408) 536-6000
And lastly, we have the executive's email addys (I think. I have not verified these addresses, so they may not work. The ones above will for sure though.)
jwarnock@adobe.com
cgeschke@adobe.com
bchizen@adobe.com
snarayen@adobe.com
mdemo@adobe.com
gfreeman@adobe.com
cpouliot@adobe.com
jstephens@adobe.com
ttownsley@adobe.com
mdyrdahl@adobe.com
blamkin@adobe.com
Go out there and tell them! Corporations are run by people, just like us. Sometimes those people do very stupid things and need correction; that is what I plan to do, and everyone who reads this message should do the same.
-- russ
Well, the supposed "nuclear" waste produced in a fusion reaction would last less than 100 years... at least, that is the point at which it would be less radioactive than standard coal-burning plants. The storage and handling problem is not an issue at all really, unlike fission where we leave our great times 10^100 grandchildren a mess to look after.
-- russ
Better warn NASA not to launch any pieces of the Space Station from anywhere in California -- otherwise they might start charging NASA and everyone on board with their Space-Tax.
-- russ
No, ActiveX started out as "Object Linking and Embedding" back in the early Windows days. Microsoft greatly expanded it, and changed the name to activeX.
ActiveX is really just a specification for binary compatibility between objects, programs, and the OS across any language. If you support the standard interfaces and binary types, ActiveX doesn't care what language you wrote that in or how things are arranged behind the scenes. In other words, it is a well-defined contract between clients and servers, with the servers being just about anything and the clients being pieces of code that provide a service.
ActiveX is why I can buy any one of thousands of OCXes or DLLs already prebuilt to do one thing or another, then instantiate them from VC++, VB, Java, scripts, et al and use them with great ease.
When you think about it, the concept of embedding an ActiveX control in a page isn't that radical. If I already have written an OCX that does THingX, and I wanna do that in my page, why not just tell the page to load the OCX? At least from Microsoft's thinking. Otherwise, I have to write a separate plugin that does ThingX, thus wasting my time.
I find programming on the Windows side infinitely easier in part due to ActiveX. If I want to write a code editor with color syntax highlighting, I can spend a lot of time writing and debugging it myself, or I can just buy one of the many OCXes already out there for that purpose, or download one of the many projects that are open source.
-- russ
Microsoft has already comitted to an Open-source Common Language Runtime, which will contain all the basic System.* classes and everything else you need to run any of the .NET compiled languages. It is being developed in conjunction with Corel, and will be released for the *BSD platforms. It should be a short order to get it running on Linux.
.NET programming side is available. As for the extra frills, you'll have to use Windows for those.
What they aren't doing is putting WinForms out there, which is an AWESOME library for dealing with desktop apps. On some level, I understand this, because so much of WinForms is dependant on how Windows does things, the porting job would be huge (but not impossible.)
ASP.NET will also be Windows only, but again that isn't surprising, given that IIS only runs on Windows.
Bottom line: They will be ensuring that the basic core of the
Reverse engineering them (WinForms especially) shouldn't be too hard though -- all of the classes have well-defined interfaces generally. It will just take a lot of tedious work.
-- russ
Add /SOS to the end of boot.ini and you'll get a listing of kernel drivers loaded during startup, as well as the autochk status stuff.
But neither Win9x or Win2K have the ability to print the same type of info that goes into the boot log file to the screen. I've wished there was a way to do so, but only for my own home machine because I like to tinker. For most users, it is a moot point.
-- russ
First of all, he flat out states that the license will be setup in such a way that non-commercial ports to Linux (or any other OS most likely) are 100% OK.
.NET framework. The offerings include:
.NET scripts on other platforms. We'll also have the C# compiler on other platforms. The kicker is the CLI, which gives us the base runtime for C#, C++, VB, Perl, or any other .NET app to run.
This section of the article was particularly telling, in terms of what will be offered in source format and what won't.
Stutz says that the CLI being offered as shared source is a subset of what's in the
the ECMAscript compiler, written in C#, which runs on both platforms (Windows, FreeBSD)
the C# compiler, which also runs on both platforms
and the shared-source CLI.
OK, that's good. It means we can run
It doesn't include
ASP.NET
ADO.NET
Windows Forms
I don't see ASP.NET as a problem, since it is so tied to IIS anyway. ADO would be a HUGE boon to Linux in terms of database programming. Of course having a standard windowing model between Windows and other OSes would be great too, but it appears that is not to be.
He did state that MS is always willing to work with commercial porting companies. This is only a list of what they are letting out in source form for free. A company, say RedHat, could very well port ASP.NET to run on Apache, or Borland could sell a Windows Forms environment for the various *nixes.
Anyhow, he goes on:
When this shared license is revealed, it will certainly be the most liberal software license Microsoft has offered. But Stutz says it's not out of the question that in the future, Microsoft's licenses will become ever more open.
"This is all about Microsoft getting serious about sharing source code in a very wide way," he said. "And it's also a serious long-term commitment to establishing the CLI as a basis for web services. It's really not a short-term, tactical Java battle."
-- russ
It doesn't matter; if Intel bought the patents for EV6 then they also bought the liabilites that came with them, including prior contracts with AMD. Intel can't just cut them off without entering into a serious breech of contract, which would give AMD plenty of ammo to clean their clocks in the court system.
AMD has nothing to fear from this situation, at least immediately. Some of the engineers may want to keep working at a place where their input is actually valued instead of silenced by uppermanagement (think RAMBUSgate). So AMD might actually find itself some top-class engineers looking for work on its doorstep soon.
Now as for the long term, i guess it all depends on exactly what Intel bought and how much of an edge (if any) this would give them.
-- russ
Here is the relevant Open Source section. Please note that "The Software" referrs to Microsoft's SDK, and will be highlighted in bold text.
While that may at first appear very drastic, one must consider what is being said: You cannot distribute the SDK, or any of its components/examples with Open Source projects. This says nothing of the runtime -- only the SDK itself. Basically you can't lump the SDK into a package covered under another license. We must also notice this little paragraph, which would seem rather important:
All told, this is fairly standard as a Microsoft prerelease/beta license agreement. They are giving you tools, code samples, documentation, etc... and you are agreeing not to distribute this SDK as part of any other projects, especially Open Source ones. You are also agreeing not to distribute any projects that you create, or use them in "production" systems. Now if the final release version of the runtime included these clauses, we should start raising some eyebrowes.
-- russ
This isn't directly related to the article, but it is a key question I think must be answered. What prevents you, exactly, from releasing OpenSource programs for Windows CE? (or Windows for that matter?)
I do it all the time. There is a fairly strong Windows OpenSource community, and we get nothing but disrespect from our OSOS-using bretheren. If you want to preach the benefits of Open Source to the masses, you can't afford to be a platform bigot.
-- russ
However, I'd like to clear up one misconception that I've seen repeated in many comments here. Microsoft did in fact migrate from FreeBSD to Windows 2000 for all of their Hotmail systems, as well as converting the frontend web app from a kludgy (by fault of the programmers) perl system to a clean ISAPI interface. That alone skyrocketed their uptime and load capabilities.
Here is a little snippet:
-------
One of the first tasks undertaken by the dev team when Microsoft purchased Hotmail was to convert all the CGIs from Perl to C++. This was done for several reasons--the most important of which was performance. After this was completed, a couple of developers were tasked with getting the code to build and run on Windows NT® operating system. This was done because of the need for better debugging tools.
After this port was done, Windows NT and Microsoft Visual C++® became the development environment. The code was written and debugged on Windows NT and then built and tested under FreeBSD. This made debugging much easier. At this point the production code was still built as individual CGIs with gcc on FreeBSD.
Eventually a number of technical and performance issues were compelling enough to consider moving the live site from FreeBSD to Windows 2000. The number of front-end machines was growing at an alarming rate to keep up with Hotmail's growth. It was becoming financially, operationally and physically difficult to maintain the rate that machines were being added. So, it became necessary to look at ways of squeezing more performance out of the servers. Several FreeBSD alternatives were investigated, including wrapping the code in an Apache module (the Apache equivalent of Internet Server API [ISAPI]), switching to Zeus, a multi-threaded Web server for UNIX that supports ISAPI, and a couple of other Web servers. At the same time more languages needed to be supported. To support the number of languages being discussed necessitated the use of Unicode. The Unicode support available under FreeBSD was inadequate and would have taken a lot of development time to get it to meet our needs. Windows 2000 had just gone beta so it was considered as a possible solution to both of these problems. The globalization team investigated the Windows 2000 Unicode support and determined that it would do what was required. The next step was performance testing. "
-------
The real details can be found here: http://www.microsoft.com/technet/migration/hotmai
And an overview for the PHBs is here: http://www.microsoft.com/windows2000/server/evalu
-- russ
Windows 2000 can already do this... multiple copies of different versions of a DLL in memory at the same time.
Also, if you create a ".local" file in your app's directory, Windows will first try and load all shared libs from your app's directory.
For example, "foo.exe".... if you wanna load ALL dlls out of your own directory, just create a file called "foo.local", and problem solved.
-- russ
Your comment is complete and utter BULL.
.NET runtime. In that system, Application programmers are encouraged to store all their own custom code in their own directories. Of course registration of COM components is gone, since each carries with it an XML manifest describing the component and everything the OS and program need to know about it.
:)
The DLL system was created back when 16MB of memory was expensive and hard drives didn't generally top 500mb. At that time, space and memory was at a premium, and DLLs provided a way to share common code across applications, as well as with the system.
Fast forward to a time when 256MB of memory will cost you pocket change, and we're topping 100GB hard drives. Suddenly, the benefits that made the version conflicts worth it become worthless in and of themselves. Thus, DLLs became a drawback, rather than a feature.
Microsoft is changing all that; first of all, in Windows 2000, no install program can replace a critical system DLL. Windows File Protection will see to that. Unless you are installing a b0rked driver, you will never fail to boot after installing an application. Secondly, Windows 2000 has the ability to load different versions of DLLs in memory at the same time, for different applications. It can also load DLLs out of an Application's own directory rather than the SYSTEM32 folder.
The big changes are coming with VisualStudio.NET and the
Collectively, the XML manifest, supporting resource files, and all the DLL files that makeup a certain library are now called an "assembly." (aka a package).
If a library does need to be installed for sharing, the program hands it over to the assembly store. No application or installer can directly write to the store... The store looks at the version... if two versions are deemed compatible (1.0.x.x), then the shared assembly is updated. If they are deemed incompatible (x.x.1.1), then the new copy is stored alongside the old one. When the application runs, and the OS goes looking for the shared assembly, the store recalls what version the application installed, and hands it that version. Viola, problem solved.
Microsoft was simply solving a problem, and the solution later turned into a problem in and of itself. This time they are being a bit more forward-looking in their approach.
Lastly, just because you are too lazy to read the SDK and other docs, don't say Microsoft is trying to hide things in the OS from you. There is nothing that Microsoft programs, like Office, can do which I cannot do. You would be quite surprised how much information that is really available if you just looked. Spend a week or two at msdn.microsoft.com and then try and come back and tell us that you still don't know how something works; then we'll know you are illiterate
-- russ