intuitive and easy to use IDE; simplified GUI design and event handling; advanced error handling; advanced object oriented design including multiple inheritance, abstract classes, and garbage collection; full support for operator and function overloading; and portable (at compile-time) across various platforms. I have already looked at C++, Java, C++, C#, Eiffel, and even VB.net;
Let us take a look at how C++ compares.
Intuitive, easy-to-use UI, check. This is a stupid requirement for a language, though, as any reasonable language should allow your choice of UIs. I've used Visual Studio for C++ as well as emacs and, currently, KDevelop, which I like quite a lot.
Simplified GUI design and event handling. C++ does not determine how GUIs are handled but we use Qt which works very well for what we want. Visual Studio lets you do GUI design inside of it, as does Borland C++ Builder.
Advanced Error Handling. Define advanced. C++ gives you try-catch, etc. and provided you put a big of work into it, can be pretty good at error handling.
Advanced object oriented design including multiple inheritance, abstract classes, and garbage collection. Well, C++ is the language most people think of when someone says OO. That said, C++ does not have any built-in garbage collection which is in my opinion a shame. Still, you can plug in garbage collection if you want, though the URLs escape me. In my experience, this has slowed down the execution of my C++ applications considerably but that said, my applications tend to allocate and deallocate memory quite frequently.
Full support for operator and function overloading. Yes, C++ provides this.
Portable (at compile-time) across various platforms. Well, C++ is NOT, in my experience, as portable as Java is. That said, if you use a platform independent GUI library such as Qt and you are smart in how you code, you shouldn't have any great problems. Gnu Autoconf, Automake, and Libtool, published by New Riders, will help you out here.
So is C++ the language for you? That is impossible for me to say. The two major things it is missing is a GUI library (though Qt is excellent for this) and garbage collection (though this may not be a big issue). Personally, I find it easier to code in Java, mostly because Java does not allow things like multiple inheritence or operator overloading. Don't get me wrong, there is good reason to use these (and my C++ code occasionally does) but on the other hand, it can lead to much hassles. Very few projects really need multiple inheritence, for example, and MI can lead to all kinds of nasty problems. Do you really want to sink to the level of virtual inheritence, for example?
Really, though, we cannot help you out all that much more without knowing what kind of project you are working on. Your requirements seem to indicate this is not a small project. As a result, I'd advise against VB.Net, having spent a year working in VB on a project about a third of a million lines of code long. C# has potential (it is a blunted-scissors version of C++) but really isn't mature enough at the moment. Eiffel I have no experience with. Java is great in SOME circumstances but I'd hesitate to recommend it to you without more information. And then there's C++, which I have spoken about in great length here. But C++ is a tricky language to use correctly.
Actually, no, I was including Microsoft's own insistence. Show me even one person who believed XP would be more secure than OpenBSD. Come on, Microsoft issues PR releases for everything to do with security holes in their products.
Hardly anyone really believed that Windows XP would be more secure than Windows 2000, at least the level that Win2k is at now and the level that Win XP is at now.
Well, after all the ribbing, we have to give Microsoft some credit. There was no reason to believe that Windows XP actually was designed to be secure. Certainly, recent events have shown otherwise. But this really could be a change for the better.
However, take a look at OpenBSD. They really are secure, or at least as secure as anyone can reasonably expect for an operating system. They have done a great job, but it takes time. A lot of time. OpenBSD was based on NetBSD, so security was always a priority, OpenBSD just made it more of a priority.
But really... even if security really is job one now at Microsoft, we aren't going to see any concrete results in the near future. Forget Microsoft's next operating system. It is going to take years, not months, to get results. I mean, we are looking at 2006, likely, until Microsoft systems have a hope of being secure. Will Microsoft (would any corporation) invest that many years of development? Are their customers really demanding security?
Re:Actor hopes to do DVD commentary track
on
Star Trek TNG DVDs
·
· Score: 2
This is _brilliant_! What a wonderful idea! Really, I'd pay money for this. Low production costs, low distribution costs (the MP3s would compress really well), low overhead. I like it a lot!
At my last job, we tried using MSMQ for a high-volume application and had to rewrite the thing from scratch. MSMQ was just too slow. We only needed it to support about 100 messages a second but it would actually only support 1 to 3 per second in our particular setup. I'll point out that we were using a fairly complicated server setup (replication, etc. etc.) and I'm not all that familiar, but we ended up writing a simple TCP/IP client/server application because MSMQ simply wasn't fast enough. And yes, we did call Microsoft for help.
Your point is generally good, taht even OpenOffice/StarOffice isn't 100%. However, I'd have to debate with you that 99% (or whatever value slightly below 100%) is not sufficient. After all, is Microsoft Word itself 100% compatible? Certainly not in my experience. Try importing a Windows.doc file into Word for the Mac. Or the other way around. Or go from one version of Word-for-Windows to another. It is good but not perfect (actually, Word-for-Mac, last time I tried, wasn't even good).
I use both MS Word and OpenOffice here at my work. Both are good enough for almost everything that I do (OpenOffice is better for some, MS Word for others). At home, I just use OpenOffice because MS Word does _not_ fulfill my needs there.
Assuming you are writing in C++, which seems likely given that you are using Qt.
First, make sure you are using the STL. Others have pointed this out already and they are right. Second, Qt provides much of what you want. It is pretty good that way. Third, check out http://www.boost.org/ which has several other very useful libraries.
I cannot see that it would be worth more than about an hour of my time. I can set up a good filtering system at home (my Linux box does email server duties) in that time. Many people could do it in much less time, but I like to tinker.
This has the advantage that _I_ control it totally. I don't have to switch email addresses, something I'm not willing to do. And as I filter at the server level, I can continue to use any email client I want (and I use three on a regular basis).
So let us pretend that I make $50 000 a year. One hour of my time is therefore worth about $25. So I'd pay about $25 for a filter that eliminates spam _permanently_ and meets the above criteria.
Of course, I haven't done either. I guard my email address and only get a few pieces of spam each day. I can just delete those messages without reading them, most of the time. This probably means that I'm not willing to pay that much, though I still think the urge may hit me one day to play with procmail or something.
This document is meaningless without knowing more about their test setup. They list the CPUs of each computer but do not mention how much RAM each has. Consider the possibility that each machine has 64 megs of RAM. Unlikely, yes, but it would explain these results. Or perhaps the hard drives are set up with DMA enabled in Win2k and not enabled in WinXP.
Besides, as has been mentioned already, a system that performs 11% slower than another only means 53 minutes out of an 8 hour day if your CPU is 100% busy all the time.
I do not like this. I think AMD could better compete in other ways. We do not buy cars based entirely on how many RPMs they are capable of. Sure, most people buy CPUs on the Mhz but I'd rather see an advertising campaign targeting that fallacy rather than hiding the Mhz from us.
Also, whatever 'P' rating you rate it at is meaningless. An Insel chip may be faster at integer math, slower at memory access and floating point while an BMD chip may rock at floating point but be terrible at other things. Plus, are we comparing against the PQ3 or the PQ4 Insel CPU?
No, keep the information about Mhz right on the CPU. Ideally, keep the FSB and multiplier as well. But just don't use this as your selling point.
There is no point in creating a standard (e.g. ECMA standard) if that standard can only be implemented by (or with the consent of) one corporation. If that is the case, Microsoft should not bother to submit this to a standards body. After all, if you need a license from Microsoft to implement on a different platform, say, you may as well ignore the ECMA standard and just use Microsoft's documentation and standards certification.
Of course, that's not to say that Microsoft was stupid by using ECMA. They can claim that C# et al is an open standard while not actually allowing anyone to implement it.
Most likely, Microsoft will withdraw their submission from ECMA. If they do not, people will just implement based on the standards, at which point Microsoft will not be able to sue because the standards are open.
Regardless of what Microsoft does, the open-source folks will go ahead with their implementations of C# et al, even if Microsoft withdraws from the ECMA standards process.
I checked on this while an undergrad at the University of Alberta. I was told, as an undergrad, I owned any homework assignments or other work that I submitted, though professors and TAs owned the questions themselves and also any comments they gave you.
Please note that this does not necessarily apply to graduate students. And it may well not apply to your own university.
Some people have pointed out that students never agreed that all their work should become property of their university. This is, of course, blatently false if (and only if) this is written down in the university code of conduct. I would imagine most universities state this.
If you are learning CS (Computing Science), why should you expect to become a master in a few languages? You are learning computing science.
On the other hand, if you go to college (here in Canada, colleges are more like tech schools and only occasionally grant degrees), you are not there to learn computing science. You are there to learn skills for a job.
This hardly sounds like an advanced course, it sounds fairly intermediate to me. But then, maybe I have a different opinion of 'advanced' material.
I would suggest adding to this list, some instruction on package management. Depending on which distribution you target, you'll want to cover downloading and installing rpms or debs and in any case, you'll definitely want to cover tarballs and also compiling from source.
You also definitely want to cover security issues. I note that you are planning on talking about firewalling and also covering ssh. But don't forget how important it is to stay up-to-date on your software installs, how important it is to monitor security mailing lists, that kind of thing.
What I'd like to see if I was signing up for this is a curriculum vaguely along the following lines:
Basic overview of Linux and open-source
Overview of different distributions, focused on server market
Installation without any of these servers running
Installation of each of these, one-by-one, listing the uses of each one and why, for example, ssh is better than telnet. Cover configuration of each. This section would be by far the largest and should be split up.
Locking down the system, tidying up.
I would spend the bulk of the time on each particular service. And I would not expect the students to be experts at the end of the course, though they should certainly know enough to follow all the HOWTOs and make informed decisions for themselves.
I use Mandrake at home, as well as Debian. In both cases, I just download images (or do an ftp install) and run that. I do not need installation guides or technical support.
However, I am quite happy to pay a little for what I do get. The distributions are worth something to me.
The way I see it is that Mandrake is a commercial company who also provide a free service in addition to their commercial service. I am quite happy to donate to their free service. It will help other people who cannot afford to pay for the full distribution.
Certainly, the customer could require that the developer never release the source code. Heck, the customer could quite easily take ownership of the source code (and binaries) and GPL it but still never release it.
The way most such contracts for custom development work at the moment, though, is that the customer has the right to run the program they paid for and normally to modify it at will but the developers also get to keep their source code and can later modify it and sell it to someone else.
Hehe. To be honest, I had just finished writing this message and was planning on submitting it to Slashdot (hence the link to Microsoft's article in the first paragraph of my message). When I had finished writing it, I went to slashdot and checked to see what was on the front page.
This story was, so I just replied to it and attached my message. I really do not sit around hoping a story like this gets posted.:)
(Moderators, mod this down if you wish, I don't care, but you are better off modding up more useful articles)
How is Microsoft's 'Shared Source' helping anyone? In order to fix bugs, you have to be allowed to modify the source code, something clearly illegal under Microsoft's license.
Microsoft has released an article entitled, The Commercial Software Model.
In it, they lay out their belief in the Microsoft.NET strategy and in Shared Source, something entirely
separate from Open Source. Microsoft makes a number of dubious claims in their article and I examine
some of them here. I focus primarily on Microsoft's misunderstanding of open-source software.
Before I begin, I should point out that open source means different things to different people. I will
assume that Microsoft is talking about Open Source that meets
the Open Source Definition. That is, the source code must be freely available. The software must be
freely redistributable. Other users must be allowed to modify this code and distribute them under the
same license. Note that there is no limit on charging for distribution, though specific open source
licenses may indeed prevent this. Also, once you have distributed the binaries, you must also distribute
the source if requested.
Microsoft points out that open source often leads to forking of the code base. This is indeed sometimes
true. However, shared source/commercial source does not prevent this. Witness Microsoft's operating
systems. Windows CE, Windows 9x (including ME), and Windows 2000. In fact, Windows 2000 is perhaps
even a clearer example of a code fork as it is available in at least four different binary versions
(Windows 2000 Professional, Server, Advanced Server, and Dataserver), each with a slightly different
code base. Even ignoring this, each one of Microsoft's operating systems shares a common lineage,
MS DOS, though Microsoft has sometimes started fresh.
The viral nature of the GPL, the Gnu Public License, is the next thing Microsoft takes issue with. They
point out that once software is licensed under the GPL, all derived software is also so licensed. This
is absolutely true and is certainly something that companies need to be aware of. However, there is a
flip side to this argument. Say I write a new browser and release all the source code under the GPL.
Now, my intellectual property is protected in the event that a company comes along, takes my
source code and makes minor modifications and then sells it for $250 a piece. Saying that the GPL is
a threat to intellectual property implies that the GPL abhores intellectual property and this is
certainly not the case.
Microsoft also points out that the GPL undermines commercial software development. This is somewhat
true. If I GPL a word processor, I am quite unlikely to be able to sell thousands of copies of it
because anyone who purchases a copy can turn around and distribute it for free. However, Microsoft
seems to be ignoring one thing. The majority of software developed for profit is developed for
specific customers. Programmers or development houses are contracted to develop a specific solution
for a specific customer. This customer then pays for the delivery of the software. Open source
software (and indeed, GPL'ed software) does not affect this proven business model at all. The only
problem would be that the customer could then freely redistribute the software or modify it without
paying the developer. This essentially prevents the developer from selling the exact same software
to another customer.
This is important. Please note that open source software does not require that you give your
software away for free. You are quite free to develop it for a significant price, making all your
profit from this development. Microsoft seems to ignore this.
If you are only planning on using Windows XP (or Windows 2000), your choice is made. NTFS. It is a journalling filesystem in pretty much the same way ReiserFS is. That is, the meta-data is journalled. NTFS is, technically, a much better file system.
On the other hand, if you are going to dual-boot your system (with Windows 9x or ME or Linux or most of the xBSDs), you'll want FAT32. At least for the data that you want to share. There's far better third-party support for FAT32.
That also means you might want to consider FAT32 if you run other applications. Norton Utilities, for example, that kind of thing. Though you'd probably need the XP version anyway.
So in summary... go for NTFS if you will use Windows NT (i.e. NT, 2K, or XP) only. If you want to run other operating systems and share data, go for FAT32.
At the company I work for, we have four levels of bug severity.
1 - This is a drop-everything-to-fix-this-immediately kind of bug. A bug that makes it impossible to use the software at all.
2 - This level of bug is very serious and prevents some major part of the program from working. If we were doing a word processor, it might be cut-and-paste doesn't work.
3 - This level of bug displays a runtime error to the user but if they accept the error, the functionality is still there. Everything works, more or less.
4 - This is a spelling error or a size-of-textbox problem, something which the end user will notice but which obviously works properly.
Our standards say we are never to release with a level 1 or level 2 bug and, as much as possible, no level 3 bugs. Ideally, of course, we release with no bugs but that can be rather difficult.
Under no circumstances would we ever release with a level 1 bug because this simply means our app is broken.
2001-01-10 19:03:54 Is MS Support useful? (articles,humor) (rejected)
Grumble grumble. It is a funny article, though, and I must admit that it has more than a little bit true. I have never had Microsoft tech support actually answer a question I have asked them, though I've only asked three.
On the other hand, I've never tried the Psychic Friends Network.
Let us take a look at how C++ compares.
Intuitive, easy-to-use UI, check. This is a stupid requirement for a language, though, as any reasonable language should allow your choice of UIs. I've used Visual Studio for C++ as well as emacs and, currently, KDevelop, which I like quite a lot.
Simplified GUI design and event handling. C++ does not determine how GUIs are handled but we use Qt which works very well for what we want. Visual Studio lets you do GUI design inside of it, as does Borland C++ Builder.
Advanced Error Handling. Define advanced. C++ gives you try-catch, etc. and provided you put a big of work into it, can be pretty good at error handling.
Advanced object oriented design including multiple inheritance, abstract classes, and garbage collection. Well, C++ is the language most people think of when someone says OO. That said, C++ does not have any built-in garbage collection which is in my opinion a shame. Still, you can plug in garbage collection if you want, though the URLs escape me. In my experience, this has slowed down the execution of my C++ applications considerably but that said, my applications tend to allocate and deallocate memory quite frequently.
Full support for operator and function overloading. Yes, C++ provides this.
Portable (at compile-time) across various platforms. Well, C++ is NOT, in my experience, as portable as Java is. That said, if you use a platform independent GUI library such as Qt and you are smart in how you code, you shouldn't have any great problems. Gnu Autoconf, Automake, and Libtool, published by New Riders, will help you out here.
So is C++ the language for you? That is impossible for me to say. The two major things it is missing is a GUI library (though Qt is excellent for this) and garbage collection (though this may not be a big issue). Personally, I find it easier to code in Java, mostly because Java does not allow things like multiple inheritence or operator overloading. Don't get me wrong, there is good reason to use these (and my C++ code occasionally does) but on the other hand, it can lead to much hassles. Very few projects really need multiple inheritence, for example, and MI can lead to all kinds of nasty problems. Do you really want to sink to the level of virtual inheritence, for example?
Really, though, we cannot help you out all that much more without knowing what kind of project you are working on. Your requirements seem to indicate this is not a small project. As a result, I'd advise against VB.Net, having spent a year working in VB on a project about a third of a million lines of code long. C# has potential (it is a blunted-scissors version of C++) but really isn't mature enough at the moment. Eiffel I have no experience with. Java is great in SOME circumstances but I'd hesitate to recommend it to you without more information. And then there's C++, which I have spoken about in great length here. But C++ is a tricky language to use correctly.
Hardly anyone really believed that Windows XP would be more secure than Windows 2000, at least the level that Win2k is at now and the level that Win XP is at now.
However, take a look at OpenBSD. They really are secure, or at least as secure as anyone can reasonably expect for an operating system. They have done a great job, but it takes time. A lot of time. OpenBSD was based on NetBSD, so security was always a priority, OpenBSD just made it more of a priority.
But really... even if security really is job one now at Microsoft, we aren't going to see any concrete results in the near future. Forget Microsoft's next operating system. It is going to take years, not months, to get results. I mean, we are looking at 2006, likely, until Microsoft systems have a hope of being secure. Will Microsoft (would any corporation) invest that many years of development? Are their customers really demanding security?
This is _brilliant_! What a wonderful idea! Really, I'd pay money for this. Low production costs, low distribution costs (the MP3s would compress really well), low overhead. I like it a lot!
At my last job, we tried using MSMQ for a high-volume application and had to rewrite the thing from scratch. MSMQ was just too slow. We only needed it to support about 100 messages a second but it would actually only support 1 to 3 per second in our particular setup. I'll point out that we were using a fairly complicated server setup (replication, etc. etc.) and I'm not all that familiar, but we ended up writing a simple TCP/IP client/server application because MSMQ simply wasn't fast enough. And yes, we did call Microsoft for help.
Check out Linuxhardware.org, they are a great site.
As if anyone would notice if Windows XP had a few more holes.
Besides, it looks fairly clear to me after reading the article that this guy was simply delusional.
Your point is generally good, taht even OpenOffice/StarOffice isn't 100%. However, I'd have to debate with you that 99% (or whatever value slightly below 100%) is not sufficient. After all, is Microsoft Word itself 100% compatible? Certainly not in my experience. Try importing a Windows .doc file into Word for the Mac. Or the other way around. Or go from one version of Word-for-Windows to another. It is good but not perfect (actually, Word-for-Mac, last time I tried, wasn't even good).
I use both MS Word and OpenOffice here at my work. Both are good enough for almost everything that I do (OpenOffice is better for some, MS Word for others). At home, I just use OpenOffice because MS Word does _not_ fulfill my needs there.
Assuming you are writing in C++, which seems likely given that you are using Qt.
First, make sure you are using the STL. Others have pointed this out already and they are right. Second, Qt provides much of what you want. It is pretty good that way. Third, check out http://www.boost.org/ which has several other very useful libraries.
I cannot see that it would be worth more than about an hour of my time. I can set up a good filtering system at home (my Linux box does email server duties) in that time. Many people could do it in much less time, but I like to tinker.
This has the advantage that _I_ control it totally. I don't have to switch email addresses, something I'm not willing to do. And as I filter at the server level, I can continue to use any email client I want (and I use three on a regular basis).
So let us pretend that I make $50 000 a year. One hour of my time is therefore worth about $25. So I'd pay about $25 for a filter that eliminates spam _permanently_ and meets the above criteria.
Of course, I haven't done either. I guard my email address and only get a few pieces of spam each day. I can just delete those messages without reading them, most of the time. This probably means that I'm not willing to pay that much, though I still think the urge may hit me one day to play with procmail or something.
Besides, as has been mentioned already, a system that performs 11% slower than another only means 53 minutes out of an 8 hour day if your CPU is 100% busy all the time.
Also, whatever 'P' rating you rate it at is meaningless. An Insel chip may be faster at integer math, slower at memory access and floating point while an BMD chip may rock at floating point but be terrible at other things. Plus, are we comparing against the PQ3 or the PQ4 Insel CPU?
No, keep the information about Mhz right on the CPU. Ideally, keep the FSB and multiplier as well. But just don't use this as your selling point.
Of course, that's not to say that Microsoft was stupid by using ECMA. They can claim that C# et al is an open standard while not actually allowing anyone to implement it.
Most likely, Microsoft will withdraw their submission from ECMA. If they do not, people will just implement based on the standards, at which point Microsoft will not be able to sue because the standards are open.
Regardless of what Microsoft does, the open-source folks will go ahead with their implementations of C# et al, even if Microsoft withdraws from the ECMA standards process.
--
Please note that this does not necessarily apply to graduate students. And it may well not apply to your own university.
Some people have pointed out that students never agreed that all their work should become property of their university. This is, of course, blatently false if (and only if) this is written down in the university code of conduct. I would imagine most universities state this.
--
On the other hand, if you go to college (here in Canada, colleges are more like tech schools and only occasionally grant degrees), you are not there to learn computing science. You are there to learn skills for a job.
--
I would suggest adding to this list, some instruction on package management. Depending on which distribution you target, you'll want to cover downloading and installing rpms or debs and in any case, you'll definitely want to cover tarballs and also compiling from source.
You also definitely want to cover security issues. I note that you are planning on talking about firewalling and also covering ssh. But don't forget how important it is to stay up-to-date on your software installs, how important it is to monitor security mailing lists, that kind of thing.
What I'd like to see if I was signing up for this is a curriculum vaguely along the following lines:
- Basic overview of Linux and open-source
- Overview of different distributions, focused on server market
- Installation without any of these servers running
- Installation of each of these, one-by-one, listing the uses of each one and why, for example, ssh is better than telnet. Cover configuration of each. This section would be by far the largest and should be split up.
- Locking down the system, tidying up.
I would spend the bulk of the time on each particular service. And I would not expect the students to be experts at the end of the course, though they should certainly know enough to follow all the HOWTOs and make informed decisions for themselves.--
However, I am quite happy to pay a little for what I do get. The distributions are worth something to me.
The way I see it is that Mandrake is a commercial company who also provide a free service in addition to their commercial service. I am quite happy to donate to their free service. It will help other people who cannot afford to pay for the full distribution.
--
The way most such contracts for custom development work at the moment, though, is that the customer has the right to run the program they paid for and normally to modify it at will but the developers also get to keep their source code and can later modify it and sell it to someone else.
--
This story was, so I just replied to it and attached my message. I really do not sit around hoping a story like this gets posted. :)
(Moderators, mod this down if you wish, I don't care, but you are better off modding up more useful articles)
--
How is Microsoft's 'Shared Source' helping anyone? In order to fix bugs, you have to be allowed to modify the source code, something clearly illegal under Microsoft's license.
--
Before I begin, I should point out that open source means different things to different people. I will assume that Microsoft is talking about Open Source that meets the Open Source Definition. That is, the source code must be freely available. The software must be freely redistributable. Other users must be allowed to modify this code and distribute them under the same license. Note that there is no limit on charging for distribution, though specific open source licenses may indeed prevent this. Also, once you have distributed the binaries, you must also distribute the source if requested.
Microsoft points out that open source often leads to forking of the code base. This is indeed sometimes true. However, shared source/commercial source does not prevent this. Witness Microsoft's operating systems. Windows CE, Windows 9x (including ME), and Windows 2000. In fact, Windows 2000 is perhaps even a clearer example of a code fork as it is available in at least four different binary versions (Windows 2000 Professional, Server, Advanced Server, and Dataserver), each with a slightly different code base. Even ignoring this, each one of Microsoft's operating systems shares a common lineage, MS DOS, though Microsoft has sometimes started fresh.
The viral nature of the GPL, the Gnu Public License, is the next thing Microsoft takes issue with. They point out that once software is licensed under the GPL, all derived software is also so licensed. This is absolutely true and is certainly something that companies need to be aware of. However, there is a flip side to this argument. Say I write a new browser and release all the source code under the GPL. Now, my intellectual property is protected in the event that a company comes along, takes my source code and makes minor modifications and then sells it for $250 a piece. Saying that the GPL is a threat to intellectual property implies that the GPL abhores intellectual property and this is certainly not the case.
Microsoft also points out that the GPL undermines commercial software development. This is somewhat true. If I GPL a word processor, I am quite unlikely to be able to sell thousands of copies of it because anyone who purchases a copy can turn around and distribute it for free. However, Microsoft seems to be ignoring one thing. The majority of software developed for profit is developed for specific customers. Programmers or development houses are contracted to develop a specific solution for a specific customer. This customer then pays for the delivery of the software. Open source software (and indeed, GPL'ed software) does not affect this proven business model at all. The only problem would be that the customer could then freely redistribute the software or modify it without paying the developer. This essentially prevents the developer from selling the exact same software to another customer.
This is important. Please note that open source software does not require that you give your software away for free. You are quite free to develop it for a significant price, making all your profit from this development. Microsoft seems to ignore this.
--
On the other hand, if you are going to dual-boot your system (with Windows 9x or ME or Linux or most of the xBSDs), you'll want FAT32. At least for the data that you want to share. There's far better third-party support for FAT32.
That also means you might want to consider FAT32 if you run other applications. Norton Utilities, for example, that kind of thing. Though you'd probably need the XP version anyway.
So in summary... go for NTFS if you will use Windows NT (i.e. NT, 2K, or XP) only. If you want to run other operating systems and share data, go for FAT32.
--
1 - This is a drop-everything-to-fix-this-immediately kind of bug. A bug that makes it impossible to use the software at all.
2 - This level of bug is very serious and prevents some major part of the program from working. If we were doing a word processor, it might be cut-and-paste doesn't work.
3 - This level of bug displays a runtime error to the user but if they accept the error, the functionality is still there. Everything works, more or less.
4 - This is a spelling error or a size-of-textbox problem, something which the end user will notice but which obviously works properly.
Our standards say we are never to release with a level 1 or level 2 bug and, as much as possible, no level 3 bugs. Ideally, of course, we release with no bugs but that can be rather difficult.
Under no circumstances would we ever release with a level 1 bug because this simply means our app is broken.
--
On the other hand, I've never tried the Psychic Friends Network.
--
A 250% increase in 0.1% of CPU time means it goes to 0.35%. Learn some simple math, yeesh.
--