PHP5 is available under the PHP license, version 3.0: http://www.opensource.org/licenses/php.php. This is a variant of the Apache license 1.1: http://www.opensource.org/licenses/apachepl.php. The Zend engine license 2.0 also is a variant of this license.
I can't see why this is a problem for you - is the Apache license also problematic for you?
The Apache license and the PHP/Zend licenses are incompatible with the GPL, but they do qualify as free licenses under the DFSG guidelines.
For the blogs I am reading, I am using a copy of Planet. While this is not a real RSS reader, it generates a nice slashdot like page from all the blogs I am interested in.
As screens grow, windows do not. Instead, people are having multiple windows open side by side at the same time.
For example, my desktop is 2560 pixel wide and 1024 pixel high - two Flexscan L557 in Xinerama mode. You will not see me running programs full screen, not even full monitor most of the time. People having 1600x1200 are more likely to have two 800x1200 windows side by side than running one window 1600x1200.
Build resizing pages, do not assume full screen windows, and do not even ask for screen resolutions.
There are worse places to be than the US, but some day I hope to move to Germany.
Germany already has been through all this after the RAF attacks some 25 years ago. German governmental reaction has been quite similar to the reaction of the US government, albeit not quite as drastic. Also, because the terrorists have been germany, action has been directed inwards, not outwards.
Germany took about 10 years to recover from the psychological after effects of the terrorist scare, and about 25 years to collectively understand why the people that did it did what they did. Literature and art dealing with the RAF past still is highly controversial.
I am buying CDDA media, and I do so from a reseller that treats customers and artists fairly. Go have a look at cdbaby and in particular what they do. This is how I want my music stores.
So if they are an indy music store that treats everyone fairly, they can't have music that's worth listening to, right? Wrong. Well, I do not know what kind of music you like to hear, but I have bought from them afroQben, Zap Master, E.S. Posthumus, Hugo, Ohn, MDM and Random Rab, and I am looking forward for my copy of The Darkest of the Hillside Thickets Spaceship Zero and Cthulhu strikes back.
The is the 21st century. The BASIC of our age is PHP.
Many people are making their first ventures into the world of programming by renaming a.html file to.php and carefully inserting their first PHP tag into it. "Hello, world" often is or for many.
Any not just young people - buy webspace, get PHP is the standard now over here, and why not try it, if it is so simple.
Rasmus, Zeev and Andy, they really deserve much good karma for creating the language that made web programming accessible to so many.
The first FIVE installs on any Windows system are in that order:
- a personal firewall, because you need one in order to connect an unpatched system to the net and survive - all applicable service packs and security patches, approximately the size of the original OS install - Antispy - Ad Aware - Anti Virus Program
That being finished, four hours later if you don't happen to have a prepared ghostable image, you can begin to actually install useful stuff.
For you. The thing about bayesian filtering is that it makes it had to formulate a message that will get through for EVERYONE, even given a source of ham.
See, I have been earning money by building large scale mail systems for about four years now. I have tried this, with more than one user. It works. It works, because language is redundant. As long as I am sending to people speaking the same language, there is enough vocabulary that is neutral or close to neutral so that I can formulate my message in a way that has a Bayes score in uncritical regions for the vast majority of all users.
If I pepper the message with some easily guessed words and phrases that are probably scored positively in all individual Bayes databases, I will even get through with a positive score. For example, formulating my mail as a Reply, using your name and mail address in a proper context, providing a constructed, but plausibly looking reference id and so on will earn me enough Bayes Karma to get even one of the nastier sales pitches through for a Sigma2 population of all users.
Your Bayes works, but it does so only because Spammers are not using a Bayes Writer, and do not yet evaluate Bayes databases on a large scale.
They key thing is that these are different for everyone.
Actually, they aren't that different. I have access to quite a large corpus of messages past and current, and if you use that as a base for a bayesian database, if is actually quite easy to formulate a message that won't score above 5.
how much different is milter-sender from, say, sendmail's/etc/mail/access?
Milter sender does take the MAIL FROM address and determines the primary MX. It then tries to connect to the primary MX machine and tries to send an error message ("MAIL FROM: ", "RCPT TO: "). If the primary MX responds with a 400 or 500 code, the mail is not being accepted.
This is called sender verification in exim4 (which, of course, also can do this).
milter-sender is being controlled by/etc/mail/access.
If Spamassassin worked during the DATA phase of the SMTP transaction, then you could still drop the email and return a 550.
exim4 can be made to do this with the appropiate patches. Still, the traffic has been generated, and the sender might as well ignore the final statuscode.
If it had the Milter style interface you mentioned that could be used during DATA, that would be thrilling, but unless it's been added recently, I haven't seen it.
I am using spamassassin-milter, which works like a charm, but only after delivery. I am also using the mentioned milter-sender from snert.com for rejects on connect and RCPT TO phases.
Criminals will forge i.d.'s regardless of the law *because - duh! - they're criminals. It's what they do
Actually, most IDs even work in such a context. They are not constructed to be unforgeable, they are construced to be hard (read: expensive) to forge, and this is their sole purpose. They increase the cost of "doing business" for criminals.
And even if an ID is forged, as long as it is expensive to forge, most criminals will have few of them, and losing or exposing one of their IDs will be a heavy loss for them. A forged ID may to reveal the identity of a criminal, but it will still create a traceable and linkable trail. Which is what really counts when you try to catch such people.
I don't think any blacklist group is worthy of such trust.
You are right. No single blacklist is worthy of making a "accept/reject" decision for your mail.
But most are somewhat trustworthy. The problem is not so much "do I accept data from this particular blacklist, yes/no", but "how trustworthy on a float scale between 0 and 1 is this particular blacklist". Once you accept shades of grey, and once you accept a multitude of spam indicators, some of which need to be scaled, you get a pretty good trust metric.
Essentially, this is what SpamAssassin does. SpamAssassin is a collection of spam indicators, and an automatically generated set of prescaled factors for these indicators. And all of them nicely integrated.
The problem with SpamAssassin is that it mixes up predelivery checks and postdelivery checks. It would be worth the effort to extract all predelivery checks from SpamAssassin (DNSBL checks, mostly), throw in Milter Sender like checks and create a predelivery milter-sender Spamasssassin which would catch most of the Spam in transit and reject it with fivehundreds.
The key concept is the introduction of shades of grey, though, instead of simple single source blacklisting.
Where I am working, I have a Suse Linux desktop, and can use a Microsoft Terminal Server should I need it. I could have had a Microsoft Windows desktop, if I chose so. People at work can use Microsoft Office or OOo.
I am aggressively using OOo file formats in my daily communication. That is, all documents that I am sending are being sent out as sx? files, and if I am receiving MS office documents, I convert them to OOo anyway in order to work with them, and send them back in sx? formats. Usually, I include a customary copy of a PDF export with the document.
This strategy works nicely. Almost all the people I work with now have OOo included in their installation. In fact, new machines in my workplace will soon include OOo as a standard installation, I hope. Some people are starting to send documents in sx? formats as I do.
External communication is the next target. I will force our suppliers and partners to learn what OOo is and how to use it as well.
This is how you establish a standard: Document it (OOo file formats are nicely documented) and then use brute force to publicize it.
Quality, Price, Time. Pick any two. I can't blame you for going the route that gives you the most return and I won't, but I prefer quality in my work and I like to take pride in my work, MySQL as it is now won't give me that.
Any responsible management person will pick Price and Time, then use the return to invest in quality. In Open Source, we call that "release early, release often", but the motivation and reasoning behind it is just the same.
Any irresponsible management person will pick Price and Time, then take the return and vanish. In Open Source, we call that "abandoned projects". There are plenty of them.
That being said, MySQL 4.x will give you the qualities you are looking for.
MySQL, the company, just did what the responsible management person would have done: They created an early release, and brought it to market as early as possible. They created the userbase, they worked on the product, and they listened to the wishes of their user base.
They are now slowly working their way upwards, as their user base begins to integrate their web server databases more tightly with their higher developed backend databases. So it is only natural that their MySQL server is getting a more Postgresql like feature list in their 4.x series and that they are maintaining SAPDB as an Oracle 7.x/8.x level database.
Perhaps PostgreSQL is not as unreliable as MySQL, so it doesn't need replication nearly as badly. I have yet to see a slashdotted site running postgres fall over and die (although it does get slow).
Replication is not limited to reliability issues, in fact, even in MySQL it is not used for that most of the time. It is instead being used for scalability, and for convenience.
When MySQL sites fail, they usually fail due to the MySQL connection pool being exhausted - MySQL has a configureable limit for this, and your webserver has a configureable limit for the number of concurrent connections (each using a number of database connections) it serves. If these numbers do not match, any database server will return errors.
And just for the record, where I work, I have seen Oracle servers fall over and die. Not due to connection limits, but due to plain and simple errors inside the code. Then again, where I work we tend to exercise our machines quite a bit.
MySQL is a toy
Actually, I'd tend to call MySQL a tool. One that's has been vastly different from Postgresql and Oracle in the past (3.x versions), and one that served the target market much better than either Postgresql or Oracle could - there is simply no way to build shared hosting for webshop/weblog/guestbook/cms/ad-hoc type applications based on Oracle for a competitive price.
And even if you managed to get the licenses for free, the hardware and administration costs would have forced you out of the market. Using Oracle here would be like using the sledge hammer for motherboard maintenance.
Similar situation with Postgresql: At the time the LAMP hosting market was created, the Postgresql team did not offer their product in a packaging that was usable for the job - no neat distribution, no documentation that a hoster could have handed to the end user, no proper support for shared hosting environments.
MySQL addressed all these needs, had a matching deployment model and the price was right. Using this as a vehicle, MySQL grew with the market and created a vast number of people using MySQL as a household name.
That was possible, because this was a new market far below what the established database vendors saw as their target markets, and with much smaller requirements. There was no need at all for "enterprise level" in webhosting environments.
But consider what MySQL did to the unwashed masses: Before the advent of the LAMP combination, SQL knowledge was expert knowledge, and hard to find. MySQL, not Postgres nor Oracle - both older than MySQL! - , changed this and today every script kiddie has basic MySQL syntax knowledge and would rather chose a MySQL database than a flat file to store a high score list.
MySQL 4.0 and 4.1 are the first steps MySQL, the company, takes migrate their market upwards into "enterprise" regions. 5.0 will take them there, read the feature plan and try out the Alpha. They are arriving in their new market segment right now, and they are not alone. They are bringing masses of people that grew up on MySQL and that grew with MySQL.
That does two things: It commoditizes databases, gnawing at the market from below. MySQL does to the SQL market what Linux did to the Unix market, only that MySQL is now where Linux was in 1994 in terms of market development. It also popularizes knowledge, in this case knowledge about relational algebra and data modelling, about SQL, replication, storage management and related issues, just as the advent of Linux popularized knowledge about Unix, about TCP/IP networking and a lot of related topics.
Any yeah: Linux was not "enterprise level" in 1994 as well and got badmouthed by the established Unix vendors. Didn't help them much: It is Linux that's still around, while the rest is either vanishing, sueing themselves to death or is frantically becoming Linux compatible.
MySQL could become the Linux of the database market. If - and that's a big if - if the MySQL management avoids getting into the way of such a development.
Chances are that they fuck it up. There is to much venture capital involved - these people want to see 3-5 year returns on their money, but we are talking a 10-15 year development here.
Bullshit! If your scenario is 'having an RDBMS' then it's MySQL who cannot live up to the task, Transactions, subqueries and data constraints are more then just 'nifty features' you know.
I know. Even MySQL knows, or otherwise they wouldn't build them into their current versions.
Still their importance is overestimated - the bottom 80% of all applications are just fine with MySQLs MYISAM "autocommit style nontransactions" and deal without subqueries just fine. MySQL just totally owns that market because a) it serves up these 80% of customers blindingly fast, b) it implements stuff that does not have to do with databases in the first place, but with management issues such as being drop dead easy to administer and fit into a hosted environment just nicely.
Sorry if this came out as a bit of a troll, I've just seen to many Perl|PHP|WhatHaveYou 'hackers' poor their awful code on an unsuspecting world *shudder* and MySQL, even though not at fault, has been a major catalyst in this. Certainly not your fault though, so sorry
I know databases, and I know the past and current limitations of MySQL. They do not concern me in the vast majority of cases where I do need a database. By using MySQL for such projects, I can be sure that just about everybody will be able to maintain the end result, which again, is not a database, but a management issue.
And this is probably the main gripe I have with the Postgresql people. The almost certainly are the better database people, but they are completely lacking vision regarding analysis of target market requirements (MySQL excels here!) and their marketing/community communication department is next to nonexisting.
So they do have the better database, but nobody cares. That's a shame, and it should be changed. Remebering last years Linuxtag, I just don't know how. These people are hopeless geeks.
Because Postgresql cannot compete with MySQL in terms of features that count for the target scenarios.
Postgresql is underdocumented, the MySQL online documentation simply excels.
There is no readily available workforce that has actual Postgresql knowledge. There are on the other hand buttloads of people available that can drive average sized MySQL installations for cheap money.
Postgresql does not support shared scenarios as good as MySQL. That's sharing the same machine with a web server, and that's sharing multiple logical databases as in a hosting environment (including putting the actual data files into each customers chrooted environment). MySQL does this very well.
Postgresql replication is regarded mostly experimental and is not properly integrated with the server. In larger MySQL deployments, replication is often used for load sharing (direct read only queries against any replica), and for backups.
Postgresql already has many features MySQL either just got with 4.1 or is planned to get in 5.x. That is useless, though, if you do not need these features, but need to deploy in a hosted standard environment, relying on the available workforce.
Still, this is a large window of opportunity for Postgresql, if Postgresql plays this correctly. So where are the MySQL migration guides, the "Hosting with Postgresql" Setup-Howtos, and where is the "Using replication in Postgresql" tutorial?
PHP5 is available under the PHP license, version 3.0: http://www.opensource.org/licenses/php.php. This is a variant of the Apache license 1.1: http://www.opensource.org/licenses/apachepl.php. The Zend engine license 2.0 also is a variant of this license.
I can't see why this is a problem for you - is the Apache license also problematic for you?
The Apache license and the PHP/Zend licenses are incompatible with the GPL, but they do qualify as free licenses under the DFSG guidelines.
For the blogs I am reading, I am using a copy of Planet. While this is not a real RSS reader, it generates a nice slashdot like page from all the blogs I am interested in.
As screens grow, windows do not. Instead, people are having multiple windows open side by side at the same time.
For example, my desktop is 2560 pixel wide and 1024 pixel high - two Flexscan L557 in Xinerama mode. You will not see me running programs full screen, not even full monitor most of the time. People having 1600x1200 are more likely to have two 800x1200 windows side by side than running one window 1600x1200.
Build resizing pages, do not assume full screen windows, and do not even ask for screen resolutions.
Can I have a proper browser inside my Internet Explorer? For example, Mozilla as an Active-X applet running transparently inside my MSIE?
There are worse places to be than the US, but some day I hope to move to Germany.
Germany already has been through all this after the RAF attacks some 25 years ago. German governmental reaction has been quite similar to the reaction of the US government, albeit not quite as drastic. Also, because the terrorists have been germany, action has been directed inwards, not outwards.
Germany took about 10 years to recover from the psychological after effects of the terrorist scare, and about 25 years to collectively understand why the people that did it did what they did. Literature and art dealing with the RAF past still is highly controversial.
Serendipity.
Written in PHP. Uses MySQL. Lean. Mean. Flexible. Extremely nice plugin API. GPL.
I am buying CDDA media, and I do so from a reseller that treats customers and artists fairly. Go have a look at cdbaby and in particular what they do. This is how I want my music stores.
So if they are an indy music store that treats everyone fairly, they can't have music that's worth listening to, right? Wrong. Well, I do not know what kind of music you like to hear, but I have bought from them afroQben, Zap Master, E.S. Posthumus, Hugo, Ohn, MDM and Random Rab, and I am looking forward for my copy of The Darkest of the Hillside Thickets Spaceship Zero and Cthulhu strikes back.
Just an extremely satisfied customer.
The is the 21st century. The BASIC of our age is PHP.
.html file to .php and carefully inserting their first PHP tag into it. "Hello, world" often is or for many.
Many people are making their first ventures into the world of programming by renaming a
Any not just young people - buy webspace, get PHP is the standard now over here, and why not try it, if it is so simple.
Rasmus, Zeev and Andy, they really deserve much good karma for creating the language that made web programming accessible to so many.
The first FIVE installs on any Windows system are in that order:
- a personal firewall, because you need one in order to connect an unpatched system to the net and survive
- all applicable service packs and security patches, approximately the size of the original OS install
- Antispy
- Ad Aware
- Anti Virus Program
That being finished, four hours later if you don't happen to have a prepared ghostable image, you can begin to actually install useful stuff.
For you. The thing about bayesian filtering is that it makes it had to formulate a message that will get through for EVERYONE, even given a source of ham.
See, I have been earning money by building large scale mail systems for about four years now. I have tried this, with more than one user. It works. It works, because language is redundant. As long as I am sending to people speaking the same language, there is enough vocabulary that is neutral or close to neutral so that I can formulate my message in a way that has a Bayes score in uncritical regions for the vast majority of all users.
If I pepper the message with some easily guessed words and phrases that are probably scored positively in all individual Bayes databases, I will even get through with a positive score. For example, formulating my mail as a Reply, using your name and mail address in a proper context, providing a constructed, but plausibly looking reference id and so on will earn me enough Bayes Karma to get even one of the nastier sales pitches through for a Sigma2 population of all users.
Your Bayes works, but it does so only because Spammers are not using a Bayes Writer, and do not yet evaluate Bayes databases on a large scale.
They key thing is that these are different for everyone.
Actually, they aren't that different. I have access to quite a large corpus of messages past and current, and if you use that as a base for a bayesian database, if is actually quite easy to formulate a message that won't score above 5.
Bayes Attack Report
The filter is public anyway. If you send spam professionally, you are expected to know SpamAssassin and tune your spam so that it scores low.
how much different is milter-sender from, say, sendmail's /etc/mail/access?
/etc/mail/access.
Milter sender does take the MAIL FROM address and determines the primary MX. It then tries to connect to the primary MX machine and tries to send an error message ("MAIL FROM: ", "RCPT TO: "). If the primary MX responds with a 400 or 500 code, the mail is not being accepted.
This is called sender verification in exim4 (which, of course, also can do this).
milter-sender is being controlled by
If Spamassassin worked during the DATA phase of the SMTP transaction, then you could still drop the email and return a 550.
exim4 can be made to do this with the appropiate patches. Still, the traffic has been generated, and the sender might as well ignore the final statuscode.
If it had the Milter style interface you mentioned that could be used during DATA, that would be thrilling, but unless it's been added recently, I haven't seen it.
I am using spamassassin-milter, which works like a charm, but only after delivery. I am also using the mentioned milter-sender from snert.com for rejects on connect and RCPT TO phases.
Criminals will forge i.d.'s regardless of the law *because - duh! - they're criminals. It's what they do
Actually, most IDs even work in such a context. They are not constructed to be unforgeable, they are construced to be hard (read: expensive) to forge, and this is their sole purpose. They increase the cost of "doing business" for criminals.
And even if an ID is forged, as long as it is expensive to forge, most criminals will have few of them, and losing or exposing one of their IDs will be a heavy loss for them. A forged ID may to reveal the identity of a criminal, but it will still create a traceable and linkable trail. Which is what really counts when you try to catch such people.
I don't think any blacklist group is worthy of such trust.
You are right. No single blacklist is worthy of making a "accept/reject" decision for your mail.
But most are somewhat trustworthy. The problem is not so much "do I accept data from this particular blacklist, yes/no", but "how trustworthy on a float scale between 0 and 1 is this particular blacklist". Once you accept shades of grey, and once you accept a multitude of spam indicators, some of which need to be scaled, you get a pretty good trust metric.
Essentially, this is what SpamAssassin does. SpamAssassin is a collection of spam indicators, and an automatically generated set of prescaled factors for these indicators. And all of them nicely integrated.
The problem with SpamAssassin is that it mixes up predelivery checks and postdelivery checks. It would be worth the effort to extract all predelivery checks from SpamAssassin (DNSBL checks, mostly), throw in Milter Sender like checks and create a predelivery milter-sender Spamasssassin which would catch most of the Spam in transit and reject it with fivehundreds.
The key concept is the introduction of shades of grey, though, instead of simple single source blacklisting.
Have a look at Serendipity, a PHP+MySQL based blogging engine. Lean, clean and very useable. Extensible with a plugin architecture.
My god! They are building Skynet! When will it achieve sentience?
Where I am working, I have a Suse Linux desktop, and can use a Microsoft Terminal Server should I need it. I could have had a Microsoft Windows desktop, if I chose so. People at work can use Microsoft Office or OOo.
I am aggressively using OOo file formats in my daily communication. That is, all documents that I am sending are being sent out as sx? files, and if I am receiving MS office documents, I convert them to OOo anyway in order to work with them, and send them back in sx? formats. Usually, I include a customary copy of a PDF export with the document.
This strategy works nicely. Almost all the people I work with now have OOo included in their installation. In fact, new machines in my workplace will soon include OOo as a standard installation, I hope. Some people are starting to send documents in sx? formats as I do.
External communication is the next target. I will force our suppliers and partners to learn what OOo is and how to use it as well.
This is how you establish a standard: Document it (OOo file formats are nicely documented) and then use brute force to publicize it.
Use http://sqlrelay.sf.net/
Quality, Price, Time. Pick any two. I can't blame you for going the route that gives you the most return and I won't, but I prefer quality in my work and I like to take pride in my work, MySQL as it is now won't give me that.
Any responsible management person will pick Price and Time, then use the return to invest in quality. In Open Source, we call that "release early, release often", but the motivation and reasoning behind it is just the same.
Any irresponsible management person will pick Price and Time, then take the return and vanish. In Open Source, we call that "abandoned projects". There are plenty of them.
That being said, MySQL 4.x will give you the qualities you are looking for.
MySQL, the company, just did what the responsible management person would have done: They created an early release, and brought it to market as early as possible. They created the userbase, they worked on the product, and they listened to the wishes of their user base.
They are now slowly working their way upwards, as their user base begins to integrate their web server databases more tightly with their higher developed backend databases. So it is only natural that their MySQL server is getting a more Postgresql like feature list in their 4.x series and that they are maintaining SAPDB as an Oracle 7.x/8.x level database.
Perhaps PostgreSQL is not as unreliable as MySQL, so it doesn't need replication nearly as badly. I have yet to see a slashdotted site running postgres fall over and die (although it does get slow).
Replication is not limited to reliability issues, in fact, even in MySQL it is not used for that most of the time. It is instead being used for scalability, and for convenience.
When MySQL sites fail, they usually fail due to the MySQL connection pool being exhausted - MySQL has a configureable limit for this, and your webserver has a configureable limit for the number of concurrent connections (each using a number of database connections) it serves. If these numbers do not match, any database server will return errors.
And just for the record, where I work, I have seen Oracle servers fall over and die. Not due to connection limits, but due to plain and simple errors inside the code. Then again, where I work we tend to exercise our machines quite a bit.
MySQL is a toy
Actually, I'd tend to call MySQL a tool. One that's has been vastly different from Postgresql and Oracle in the past (3.x versions), and one that served the target market much better than either Postgresql or Oracle could - there is simply no way to build shared hosting for webshop/weblog/guestbook/cms/ad-hoc type applications based on Oracle for a competitive price.
And even if you managed to get the licenses for free, the hardware and administration costs would have forced you out of the market. Using Oracle here would be like using the sledge hammer for motherboard maintenance.
Similar situation with Postgresql: At the time the LAMP hosting market was created, the Postgresql team did not offer their product in a packaging that was usable for the job - no neat distribution, no documentation that a hoster could have handed to the end user, no proper support for shared hosting environments.
MySQL addressed all these needs, had a matching deployment model and the price was right. Using this as a vehicle, MySQL grew with the market and created a vast number of people using MySQL as a household name.
That was possible, because this was a new market far below what the established database vendors saw as their target markets, and with much smaller requirements. There was no need at all for "enterprise level" in webhosting environments.
But consider what MySQL did to the unwashed masses: Before the advent of the LAMP combination, SQL knowledge was expert knowledge, and hard to find. MySQL, not Postgres nor Oracle - both older than MySQL! - , changed this and today every script kiddie has basic MySQL syntax knowledge and would rather chose a MySQL database than a flat file to store a high score list.
MySQL 4.0 and 4.1 are the first steps MySQL, the company, takes migrate their market upwards into "enterprise" regions. 5.0 will take them there, read the feature plan and try out the Alpha. They are arriving in their new market segment right now, and they are not alone. They are bringing masses of people that grew up on MySQL and that grew with MySQL.
That does two things: It commoditizes databases, gnawing at the market from below. MySQL does to the SQL market what Linux did to the Unix market, only that MySQL is now where Linux was in 1994 in terms of market development. It also popularizes knowledge, in this case knowledge about relational algebra and data modelling, about SQL, replication, storage management and related issues, just as the advent of Linux popularized knowledge about Unix, about TCP/IP networking and a lot of related topics.
Any yeah: Linux was not "enterprise level" in 1994 as well and got badmouthed by the established Unix vendors. Didn't help them much: It is Linux that's still around, while the rest is either vanishing, sueing themselves to death or is frantically becoming Linux compatible.
MySQL could become the Linux of the database market. If - and that's a big if - if the MySQL management avoids getting into the way of such a development.
Chances are that they fuck it up. There is to much venture capital involved - these people want to see 3-5 year returns on their money, but we are talking a 10-15 year development here.
Bullshit! If your scenario is 'having an RDBMS' then it's MySQL who cannot live up to the task, Transactions, subqueries and data constraints are more then just 'nifty features' you know.
I know. Even MySQL knows, or otherwise they wouldn't build them into their current versions.
Still their importance is overestimated - the bottom 80% of all applications are just fine with MySQLs MYISAM "autocommit style nontransactions" and deal without subqueries just fine. MySQL just totally owns that market because a) it serves up these 80% of customers blindingly fast, b) it implements stuff that does not have to do with databases in the first place, but with management issues such as being drop dead easy to administer and fit into a hosted environment just nicely.
Sorry if this came out as a bit of a troll, I've just seen to many Perl|PHP|WhatHaveYou 'hackers' poor their awful code on an unsuspecting world *shudder* and MySQL, even though not at fault, has been a major catalyst in this. Certainly not your fault though, so sorry
I know databases, and I know the past and current limitations of MySQL. They do not concern me in the vast majority of cases where I do need a database. By using MySQL for such projects, I can be sure that just about everybody will be able to maintain the end result, which again, is not a database, but a management issue.
And this is probably the main gripe I have with the Postgresql people. The almost certainly are the better database people, but they are completely lacking vision regarding analysis of target market requirements (MySQL excels here!) and their marketing/community communication department is next to nonexisting.
So they do have the better database, but nobody cares. That's a shame, and it should be changed. Remebering last years Linuxtag, I just don't know how. These people are hopeless geeks.
Because Postgresql cannot compete with MySQL in terms of features that count for the target scenarios.
Postgresql is underdocumented, the MySQL online documentation simply excels.
There is no readily available workforce that has actual Postgresql knowledge. There are on the other hand buttloads of people available that can drive average sized MySQL installations for cheap money.
Postgresql does not support shared scenarios as good as MySQL. That's sharing the same machine with a web server, and that's sharing multiple logical databases as in a hosting environment (including putting the actual data files into each customers chrooted environment). MySQL does this very well.
Postgresql replication is regarded mostly experimental and is not properly integrated with the server. In larger MySQL deployments, replication is often used for load sharing (direct read only queries against any replica), and for backups.
Postgresql already has many features MySQL either just got with 4.1 or is planned to get in 5.x. That is useless, though, if you do not need these features, but need to deploy in a hosted standard environment, relying on the available workforce.
Still, this is a large window of opportunity for Postgresql, if Postgresql plays this correctly. So where are the MySQL migration guides, the "Hosting with Postgresql" Setup-Howtos, and where is the "Using replication in Postgresql" tutorial?