One of the theories I've always heard is that if Martian soil was ever exposed to signficant water (i.e., enough to thoroughly wet it), the soil of Mars could start reacting violently because it's mostly iron that hasn't had the advantage of water to ensure the iron is fully rusted.
KSR has some fun with this when he described a flood released onto pristine Martian soil. Snap, crackle, pop, kids.
I remember almost a decade ago, there was a rash of mysterious deaths in the UK of top programmers working on top secret military projects. That was also dismissed as a "statistical anomoly" and that working under such high pressures can cause suicidal tendencies.
Yeah, like the one guy who took a lamp cord, bared the two ends, and taped them to his metal fillings in his molars and plugged it in.
A lot of the deaths also occured in a brief span of time, and lots of strange and horrible ways to die.
First off: Why must you use STL? STL can be handy, but it can also be a terrible pitfall to the unwary. If your code is working and there is no compelling reason to re-write it, then don't/
Secondly: Be very, very careful about using pointers to dynamically allocated objects. If you are copying pointers around, you could very easily get into a dangling reference. A smart-pointer template (which SHOULD have been part of the STL) is a handy thing to have.
Third: Take the time to learn the Zen of STL. You must understand the rationale and mental model of the STL to get the most out of it. It doesn't take long (a week at worst).
Fourth: Get a good C++ and STL implementation. If you don't, you could wind up with compile errors that will drive you insane. <Sounds like the voice of experience, MagikSlinger!>
Fifth: Use STL sparingly. Don't go hogwild creating types made up of a dozen composited templates. When you get a run-time error or compile error, it becomes next to impossible to decipher what happened. Do not go more than two levels deep in an STL definition. map<string,MyClass> is OK, map<string,map<pair<T,X>,list<
vector<int>>> is a very, very bad idea...
Sixth: Use the simplest datatype to achieve your goal. Don't resort to multimap, etc. with fancy indexing/hashing schemes unless you prove emperically that it will speed something up a lot. Not a little bit, but a lot.
P-p-p-p-lease listen to me before moding me down! Gives readers the Roger Rabbit pouty look
It was interesting to note they had a problem with it for desktop use (including problems with XFree86). This has been one of the issues plaguing Linux now and hurting its foray into the desktop or workstation market: there are polishing features that need to be done.
Now, the good news is XFree86 did fix things up. Did the XFree86 team even know Dreamworks were having problems it? I mean, when there's a big opportunity for Linux, we really need to get the teams involved. It makes skitish users feel better, and more importantly, it gets the "hacker" culture a better idea of what the user culture needs. No contempt or animosity. Just people helping people.
Another thing is the polish. Fixing those annoying little bugs, or getting that useful feature in that no one has time to do. IBM and their billion dollars could help here, but there does need to be more support for the Open Source polishers out there (like the Linux janitors). Have you submitted a patch lately?:-)
So, hopefully, Linus and his informal team can clear up the bottleneck for patches and we can make Linux ready for primetime. Right now, I consider the current releases of Linux on the desktop to be about the same quality as Windows 3.1, and that took over the world! So let's report those annoying features! Let's leave the cool feature aside for a day and fix an annoying, but persistent bug. Then we go back to even cooler features!
Currently, the biggest challenge for Linux is making the installation painless. The problem is not that Linux developers don't want to--its just as I'm sure they can tell you, getting the hardware and drivers they need is really difficult. I'm not sure how we, as a community, can help that. Maybe mass-buy a new graphics card if the company produces a Linux driver off the bat?
Just some, hopefully, constructive and positive thoughts.
So now that their competition has gone away, what happens to the Liberty Alliance? Will they stick together, or each go their separate ways creating their own separate identity database schemes?
Parsing, interpreration and game theory
on
Deep Algorithms?
·
· Score: 2
There's some good ones (like QuickSort) that should be #1, but here's a random collection of some algorithms I find interesting:
The recursive-descent parser generator
Regular expression to DFA algorithm (it's its own proof!)
The Lisp interpreter written in Lisp (and no you can't use eval). An elegant algorithm demonstrating how data and code can become one.
The Mini-Max Algorithm
The Backfeed Neural Network Algorithm
Euclid's greatest common divisor algorithm (technically not a computing science algorithm)
We use a big cluster of *nices to serve the data up to everyone on the Internet. Every amatuer astronomer on the web can then visit the site once a day or so and cruise the catalog. All those eyeballs looking for stuff will do something.
It was indeed satire with a grain of truth. That is how Europeans viewed their relationship with their colonies. Although I've heard some scholars claim the phrase was already in use before the poem was written.
um, yes. look at history and the basic evolution of technology and answer your own question
That makes no sense as a rebuttal. I have looked at history and the basic evolution of technology, and that's where my original post came from. Technological progress has always lead to an increase in human welfare. Spending little to no resources on progress to feed everyone results in stagnation (cf. Pre-Colonial China).
Ah, the crypto-colonialist has crept out from under his rock.
1) India produces quite enough food for its population. It's poverty that's killing people.
2) Bubonic plague thrives in India because of the close proximity of people and animals over much of the country. Would you like them to start exterminating their biota to make you happy?If you are talking about antibiotics, then India needs a lot of cash it really doesn't have right now because they're still an economic backwater.
3) Since poverty is the greatest risk factor for death in India, maybe some industrial advancement would be in order. Not the kind that produces pollution and low wages, but maybe tertiary and quartenary industries, like say, computing science and engineering. Oops! They've been doing that and enjoying good economic growth and increased tax revenues to pay for things.
THUS to better serve the needs of their people through economic growth and transitioning away from a physical labor economy (where education isn't required), they need this kind of project. So please keep your neo-colonialist views to yourself. Do you imagine everyone outside of Europe and America as poor, stupid, starving darkies who need good white folk like you to put their priorities straight?
It's nice to see how a little competition encourages Microsoft to innovate. Would they have even considered offering computing clusters without the competition from Beowulf Linuces?
Alas, I doubt anyone will be reading this, but I'll say it anyway:
Java's security model always felt tacked on to me, but even still, it's pretty decent for the kinds of security issues it was meant to deal with. The problem is that Java can still be used to create viruses and other nasty problems, especially if it can sweet talk to user into giving the Java code more permissions than it would otherwise have. The same thing is true of ActiveX: all the security in the world won't protect you from a user who cranks the security in his IE down a few notches. The reason users would do this is to get access to a control or java app that can do something interesting or useful. For example, a virus scan of your harddrive.
This leads me to a basic observation: the usefulness and capabilities of a language or programming environment is directly proportional to the amount of damage it can inflict on a system. Both languages and environments have their benefits and drawbacks, but deciding based on security is pointless: security is fundamentally a user-developer level issue. No amount of language-level or environment-level features can make computing secure if the user and developer aren't willing to think securely as well. If you do add more secure language and environment security measures, then the usefuleness of your language/environment decreases (e.g., to protect your local hard-drived files from unwanted operations, you lose the ability to save/read anywhere on your harddrive from your application). You cannot have a useful programming language/environment and still make guaranteed secure programs.
C#'s unsafe section problems are not security problems, but robustness problems. The unsafe sections make it very easy to create code as crashable and bug ridden as a pure C/C++ app! Java's constraints don't make it more secure than C#, but they do make it easier to write robust code.
Even with the unsafe sections, you can still write really high quality C# code because no language/environment feature can ever replace the programmer's diligence in writing secure code. And if you want code that's less bug-ridden and more robust, avoid unsafe code sections like the plague.
My greatest qualm with C#'s unsafe section is knowing that a bunch of programmers raised on MS's crappy coding style will create components and other applications with great reams of unsafe code forcing everyone using.NET to drop their security precautions in order to get basic applications running thus creating the backdoor every script kiddie is waiting for.
Oh, I know that. What I meant was why couldn't they create new villains who were larger than life. I mean, they could at least have done Tommy the Evil Boy Genius. The problem is they backed away from creating really epic villains to doing a Seinfeldesque sitcom about the main characters dealing with anemic villains that couldn't scare Police Chief O'Hara from the old Batman series.
It's certainly in their price range. How much did they spend on production values? $1.98?
Without the epic grandeur that was the Tick comic book and animated series, the live-action series became smaller than life, becoming more of an ironic statement than a big, steaming cup o' hommage to the glorious yesteryear of comic book superheroes!
Ahem, but I degress. Where were the villains? The villains with villany so insane they could be called mad! Where was Charles, the evil brain-child? Where was Chairface Chippendale? Without these larger than life adventures for the Tick to rail against with his child-like enthusiasm for Justice, I just don't see the point. I mean, where's that call to the Heroe's Quest, chum? Where's the kind of adventure that makes you want to cry, "SPOOOOON!!!"
Ahem. Sorry, I don't know what came over me. I haven't been the same since I found moth suite at a garage sale the other day.
So if Slashdot relocates to Australia, does that mean we can still rely on Slashdot to give us live up-to-date information as the country is being invaded and bombed back to the stone age?
I'm sure it's just coincidence. The more likely reason is due to the hightened state of security, the FBI is less tolerant of MS's sloppy security holes.
By Steve McConnel. I used to fear licensing software engineers until McConnel explained what being an engineer *really* means.
You can still write software, even for commercial purposes. In fact, there would be many situations why a sotware engineer is not what you need.
In any given engineering shop, there's only a handful of licensed engineers. There are still other engineers there who do the work, but the licensed engineer oversees the work and ensures due dilligence and best practices are used. In electronics, there are electronic technicians who don't have engineering degrees who design electronics. Instead, those places have a single licensed engineer who will oversee the final design and inspect it.
Do not fear software engineering: embrace it!
For the record, I do not qualify for licensing as a software engineer, but a licensed software engineer wouldn't mind hiring me to work on his team.
I got saddled as the UNIX "SysAdmin Guy" by knowing how to type 'ls'. Next thing you know, I'm being asked to set-up Internet connections to SUN Workstations, supporting engineers with mount woes and backing things up. The problem? I'm a programmer, but they keep asking me to do UNIX sysadmin stuff. *sigh*
I also used to be a Windows/NT IS support grunt. I'd rather admin UNIX, thank you very much...
I am still officially a programmer and spend most of my time programming (Thank Ghu!), but I'll get an e-mail or phone call and I'm back in the sysadmin trenches. What's really sad? I've had our company's UNIX sysadmins call me for help!
Yes, I do have Linux at home. Why do you ask...?:-)
Not to take anything away from your use of MySQL, but Microsoft does have a free (as in beer) alternative to SQL Server: the Microsoft Data Engine (MSDE). It's free for Visual Studio users and I believe some versions of Office. It's essentially an untuned/mistuned version of SQL Server stripped of the admin tools. The license is actually amazingly useful. I think you can even redistribute it, use it for commercial production use, etc.
Someone mod this guy up a point!! Thank you for the heads up -- I have never heard of the MSDE, but we don't use Visual Studio and we're still on Office 97 (don't get me started on why...) I'll poke around for it--it could be useful in the future. I still like MySQL and frankly, it's just kind of cool to be running it.:-)
It should take away anyone's excuses for treating Microsoft Access as if it were an actual database.
LOL!! Only other MS Access developers out there can appreciate this one.:-)
It is definately better choice in Win32 platform and even Apache folks admit that.
You're kidding, right? I installed IIS and watched my system bog down (Apache, by contrast, barely sips any CPU time or memory). My development environment doesn't need any further slow downs, thank you very much. I uninstalled it pretty quickly after that.
Also, the Nimda virus jumped our firewall--thanks to someone dutifully double-clicking an.exe attachment--and every machine running IIS on our network got hosed. My machine, on the other hand, kept running, and running, and running...:-)
I've done it. At work, we had need of a web server for our team, but the Powers That Be didn't want to make part of the Intranet available to us mere peons. I downloaded and installed Apache for Win32 on my NT 4.0 box and had it up and running in about 15 minutes (10 minutes spent reading the manual). It runs quite happily on my NT box serving my team.
The next thing we needed was a SQL server for our bug tracking database. Our database was originally a MS-Access 97 application. The shared datastores was an Access MDB on an NT file server supporting a team located at two different sites. We discovered the hard way that Access was not designed for network operation:-)
We couldn't get a license for Microsoft SQL server from Management, so I downloaded MySQL for Win32 and installed it on my NT box. I also downloaded the MySQLODBC driver and several MySQL tools (e.g., the Access to MySQL server migration utility). Within a day, we had created and deployed our bug database as SQL server based MS Access application. Yes, MS Access app connected to a MySQL backend. No problem.
So at work, the NT machine I do my development on runs Apache and MySQL supporting up to 8 users without a problem.
On a bigger scale, the big corporation I work for is a MS shop. For the project we're working on, we insisted on and got UNIX servers (IBM machines running AIX). FastConnect from IBM was screwing up constantly, so we bugged the IT department enough until they installed SAMBA -- we dragged them kicking and screaming into it, I might add. No problems. NT and Win9x workstations connect to and use an IBM AIX as our fileserver.
This happens all the time, guys. Most Win32 ports of Open Source apps have very nice installation packages. Both Apache and MySQL come with automated installs which, frankly, are some of the slickest installers I've ever used. Apache and MySQL require a minimum level of competence to set-up and maintain.
Oh, and how did Management react when they found out about my Apache/MySQL server? Very, very positively. I was commended for my initiative and resourcefulness. The Dept VP said he loved the choices because it cost nothing to the department.
One of the theories I've always heard is that if Martian soil was ever exposed to signficant water (i.e., enough to thoroughly wet it), the soil of Mars could start reacting violently because it's mostly iron that hasn't had the advantage of water to ensure the iron is fully rusted.
KSR has some fun with this when he described a flood released onto pristine Martian soil. Snap, crackle, pop, kids.
I remember almost a decade ago, there was a rash of mysterious deaths in the UK of top programmers working on top secret military projects. That was also dismissed as a "statistical anomoly" and that working under such high pressures can cause suicidal tendencies.
Yeah, like the one guy who took a lamp cord, bared the two ends, and taped them to his metal fillings in his molars and plugged it in.
A lot of the deaths also occured in a brief span of time, and lots of strange and horrible ways to die.
First off: Why must you use STL? STL can be handy, but it can also be a terrible pitfall to the unwary. If your code is working and there is no compelling reason to re-write it, then don't/
Secondly: Be very, very careful about using pointers to dynamically allocated objects. If you are copying pointers around, you could very easily get into a dangling reference. A smart-pointer template (which SHOULD have been part of the STL) is a handy thing to have.
Third: Take the time to learn the Zen of STL. You must understand the rationale and mental model of the STL to get the most out of it. It doesn't take long (a week at worst).
Fourth: Get a good C++ and STL implementation. If you don't, you could wind up with compile errors that will drive you insane. <Sounds like the voice of experience, MagikSlinger!>
Fifth: Use STL sparingly. Don't go hogwild creating types made up of a dozen composited templates. When you get a run-time error or compile error, it becomes next to impossible to decipher what happened. Do not go more than two levels deep in an STL definition. map<string,MyClass> is OK, map<string,map<pair<T,X>,list< vector<int>>> is a very, very bad idea...
Sixth: Use the simplest datatype to achieve your goal. Don't resort to multimap, etc. with fancy indexing/hashing schemes unless you prove emperically that it will speed something up a lot. Not a little bit, but a lot.
Good luck, and have fun!
P-p-p-p-lease listen to me before moding me down! Gives readers the Roger Rabbit pouty look
It was interesting to note they had a problem with it for desktop use (including problems with XFree86). This has been one of the issues plaguing Linux now and hurting its foray into the desktop or workstation market: there are polishing features that need to be done.
Now, the good news is XFree86 did fix things up. Did the XFree86 team even know Dreamworks were having problems it? I mean, when there's a big opportunity for Linux, we really need to get the teams involved. It makes skitish users feel better, and more importantly, it gets the "hacker" culture a better idea of what the user culture needs. No contempt or animosity. Just people helping people.
Another thing is the polish. Fixing those annoying little bugs, or getting that useful feature in that no one has time to do. IBM and their billion dollars could help here, but there does need to be more support for the Open Source polishers out there (like the Linux janitors). Have you submitted a patch lately? :-)
So, hopefully, Linus and his informal team can clear up the bottleneck for patches and we can make Linux ready for primetime. Right now, I consider the current releases of Linux on the desktop to be about the same quality as Windows 3.1, and that took over the world! So let's report those annoying features! Let's leave the cool feature aside for a day and fix an annoying, but persistent bug. Then we go back to even cooler features!
Currently, the biggest challenge for Linux is making the installation painless. The problem is not that Linux developers don't want to--its just as I'm sure they can tell you, getting the hardware and drivers they need is really difficult. I'm not sure how we, as a community, can help that. Maybe mass-buy a new graphics card if the company produces a Linux driver off the bat?
Just some, hopefully, constructive and positive thoughts.
So now that their competition has gone away, what happens to the Liberty Alliance? Will they stick together, or each go their separate ways creating their own separate identity database schemes?
There's some good ones (like QuickSort) that should be #1, but here's a random collection of some algorithms I find interesting:
Wouldn't it be cool if...
We use a big cluster of *nices to serve the data up to everyone on the Internet. Every amatuer astronomer on the web can then visit the site once a day or so and cruise the catalog. All those eyeballs looking for stuff will do something.
Specific projects I can think of are:
It was indeed satire with a grain of truth. That is how Europeans viewed their relationship with their colonies. Although I've heard some scholars claim the phrase was already in use before the poem was written.
That makes no sense as a rebuttal. I have looked at history and the basic evolution of technology, and that's where my original post came from. Technological progress has always lead to an increase in human welfare. Spending little to no resources on progress to feed everyone results in stagnation (cf. Pre-Colonial China).
Could you be more specific?
Ah, the crypto-colonialist has crept out from under his rock.
1) India produces quite enough food for its population. It's poverty that's killing people.
2) Bubonic plague thrives in India because of the close proximity of people and animals over much of the country. Would you like them to start exterminating their biota to make you happy?If you are talking about antibiotics, then India needs a lot of cash it really doesn't have right now because they're still an economic backwater.
3) Since poverty is the greatest risk factor for death in India, maybe some industrial advancement would be in order. Not the kind that produces pollution and low wages, but maybe tertiary and quartenary industries, like say, computing science and engineering. Oops! They've been doing that and enjoying good economic growth and increased tax revenues to pay for things.
THUS to better serve the needs of their people through economic growth and transitioning away from a physical labor economy (where education isn't required), they need this kind of project. So please keep your neo-colonialist views to yourself. Do you imagine everyone outside of Europe and America as poor, stupid, starving darkies who need good white folk like you to put their priorities straight?
PUH-leeze! The White Man's Burden is SO over.
It's nice to see how a little competition encourages Microsoft to innovate. Would they have even considered offering computing clusters without the competition from Beowulf Linuces?
Point taken, but I dislike double negatives. :-)
Alas, I doubt anyone will be reading this, but I'll say it anyway:
Java's security model always felt tacked on to me, but even still, it's pretty decent for the kinds of security issues it was meant to deal with. The problem is that Java can still be used to create viruses and other nasty problems, especially if it can sweet talk to user into giving the Java code more permissions than it would otherwise have. The same thing is true of ActiveX: all the security in the world won't protect you from a user who cranks the security in his IE down a few notches. The reason users would do this is to get access to a control or java app that can do something interesting or useful. For example, a virus scan of your harddrive.
This leads me to a basic observation: the usefulness and capabilities of a language or programming environment is directly proportional to the amount of damage it can inflict on a system. Both languages and environments have their benefits and drawbacks, but deciding based on security is pointless: security is fundamentally a user-developer level issue. No amount of language-level or environment-level features can make computing secure if the user and developer aren't willing to think securely as well. If you do add more secure language and environment security measures, then the usefuleness of your language/environment decreases (e.g., to protect your local hard-drived files from unwanted operations, you lose the ability to save/read anywhere on your harddrive from your application). You cannot have a useful programming language/environment and still make guaranteed secure programs.
C#'s unsafe section problems are not security problems, but robustness problems. The unsafe sections make it very easy to create code as crashable and bug ridden as a pure C/C++ app! Java's constraints don't make it more secure than C#, but they do make it easier to write robust code.
Even with the unsafe sections, you can still write really high quality C# code because no language/environment feature can ever replace the programmer's diligence in writing secure code. And if you want code that's less bug-ridden and more robust, avoid unsafe code sections like the plague.
My greatest qualm with C#'s unsafe section is knowing that a bunch of programmers raised on MS's crappy coding style will create components and other applications with great reams of unsafe code forcing everyone using .NET to drop their security precautions in order to get basic applications running thus creating the backdoor every script kiddie is waiting for.
I wonder if the inventor will prove NP=P and provide a 2 terraherz processor that can be overclocked indefinitely with zero waste heat.
:-)
Personally, I think this story is a hoot!
Oh, I know that. What I meant was why couldn't they create new villains who were larger than life. I mean, they could at least have done Tommy the Evil Boy Genius. The problem is they backed away from creating really epic villains to doing a Seinfeldesque sitcom about the main characters dealing with anemic villains that couldn't scare Police Chief O'Hara from the old Batman series.
It's certainly in their price range. How much did they spend on production values? $1.98?
Without the epic grandeur that was the Tick comic book and animated series, the live-action series became smaller than life, becoming more of an ironic statement than a big, steaming cup o' hommage to the glorious yesteryear of comic book superheroes!
Ahem, but I degress. Where were the villains? The villains with villany so insane they could be called mad! Where was Charles, the evil brain-child? Where was Chairface Chippendale? Without these larger than life adventures for the Tick to rail against with his child-like enthusiasm for Justice, I just don't see the point. I mean, where's that call to the Heroe's Quest, chum? Where's the kind of adventure that makes you want to cry, "SPOOOOON!!!"
Ahem. Sorry, I don't know what came over me. I haven't been the same since I found moth suite at a garage sale the other day.
Made out of scrap, and goes out of control trying to mate with everything. Kind of like Microsoft Windows Hardware Detection.
So if Slashdot relocates to Australia, does that mean we can still rely on Slashdot to give us live up-to-date information as the country is being invaded and bombed back to the stone age?
/. effect?
More importantly, can it survive a DDoS?
Can it survive the
I'm sure it's just coincidence. The more likely reason is due to the hightened state of security, the FBI is less tolerant of MS's sloppy security holes.
How much you want to bet that no one sees this as a problem with Microsoft? One can only hope this emboldens the anti-trust crusaders and their cause.
By Steve McConnel. I used to fear licensing software engineers until McConnel explained what being an engineer *really* means.
You can still write software, even for commercial purposes. In fact, there would be many situations why a sotware engineer is not what you need.
In any given engineering shop, there's only a handful of licensed engineers. There are still other engineers there who do the work, but the licensed engineer oversees the work and ensures due dilligence and best practices are used. In electronics, there are electronic technicians who don't have engineering degrees who design electronics. Instead, those places have a single licensed engineer who will oversee the final design and inspect it.
Do not fear software engineering: embrace it!
For the record, I do not qualify for licensing as a software engineer, but a licensed software engineer wouldn't mind hiring me to work on his team.
I got saddled as the UNIX "SysAdmin Guy" by knowing how to type 'ls'. Next thing you know, I'm being asked to set-up Internet connections to SUN Workstations, supporting engineers with mount woes and backing things up. The problem? I'm a programmer, but they keep asking me to do UNIX sysadmin stuff. *sigh*
I also used to be a Windows/NT IS support grunt. I'd rather admin UNIX, thank you very much...
I am still officially a programmer and spend most of my time programming (Thank Ghu!), but I'll get an e-mail or phone call and I'm back in the sysadmin trenches. What's really sad? I've had our company's UNIX sysadmins call me for help!
Yes, I do have Linux at home. Why do you ask...? :-)
Someone mod this guy up a point!! Thank you for the heads up -- I have never heard of the MSDE, but we don't use Visual Studio and we're still on Office 97 (don't get me started on why...) I'll poke around for it--it could be useful in the future. I still like MySQL and frankly, it's just kind of cool to be running it. :-)
LOL!! Only other MS Access developers out there can appreciate this one. :-)
Friends don't let friends deploy Access
You're kidding, right? I installed IIS and watched my system bog down (Apache, by contrast, barely sips any CPU time or memory). My development environment doesn't need any further slow downs, thank you very much. I uninstalled it pretty quickly after that.
Also, the Nimda virus jumped our firewall--thanks to someone dutifully double-clicking an .exe attachment--and every machine running IIS on our network got hosed. My machine, on the other hand, kept running, and running, and running... :-)
I've done it. At work, we had need of a web server for our team, but the Powers That Be didn't want to make part of the Intranet available to us mere peons. I downloaded and installed Apache for Win32 on my NT 4.0 box and had it up and running in about 15 minutes (10 minutes spent reading the manual). It runs quite happily on my NT box serving my team.
The next thing we needed was a SQL server for our bug tracking database. Our database was originally a MS-Access 97 application. The shared datastores was an Access MDB on an NT file server supporting a team located at two different sites. We discovered the hard way that Access was not designed for network operation :-)
We couldn't get a license for Microsoft SQL server from Management, so I downloaded MySQL for Win32 and installed it on my NT box. I also downloaded the MySQLODBC driver and several MySQL tools (e.g., the Access to MySQL server migration utility). Within a day, we had created and deployed our bug database as SQL server based MS Access application. Yes, MS Access app connected to a MySQL backend. No problem.
So at work, the NT machine I do my development on runs Apache and MySQL supporting up to 8 users without a problem.
On a bigger scale, the big corporation I work for is a MS shop. For the project we're working on, we insisted on and got UNIX servers (IBM machines running AIX). FastConnect from IBM was screwing up constantly, so we bugged the IT department enough until they installed SAMBA -- we dragged them kicking and screaming into it, I might add. No problems. NT and Win9x workstations connect to and use an IBM AIX as our fileserver.
This happens all the time, guys. Most Win32 ports of Open Source apps have very nice installation packages. Both Apache and MySQL come with automated installs which, frankly, are some of the slickest installers I've ever used. Apache and MySQL require a minimum level of competence to set-up and maintain.
Oh, and how did Management react when they found out about my Apache/MySQL server? Very, very positively. I was commended for my initiative and resourcefulness. The Dept VP said he loved the choices because it cost nothing to the department.