Getting Back….

I know I’ve been away from the MySQL community for a bit….my hand injury is healing nicely, and I was able to concentrate time on things that required less typing and more mouse clicking. One such thing was the site overhaul of http://www.technocation.org to be easier to use on my side for things like embedding video and mp3 files. More user friendly for you, with regards to article names. Please feel free to vote on whether you like the new site (poll is at the top of the home page, or direct link at http://technocation.org/content/do-you-new-technocation-site%3F). You can add a comment to the poll, too, if you want to voice your opinion.

I do hope to get back into podcasting, and have one for next week. Coming very soon: Videos from MySQL Camp!

I know I’ve been away from the MySQL community for a bit….my hand injury is healing nicely, and I was able to concentrate time on things that required less typing and more mouse clicking. One such thing was the site overhaul of http://www.technocation.org to be easier to use on my side for things like embedding video and mp3 files. More user friendly for you, with regards to article names. Please feel free to vote on whether you like the new site (poll is at the top of the home page, or direct link at http://technocation.org/content/do-you-new-technocation-site%3F). You can add a comment to the poll, too, if you want to voice your opinion.

I do hope to get back into podcasting, and have one for next week. Coming very soon: Videos from MySQL Camp!

One Size Fits All

I was pointed to an article about how the “one size fits all” database model doesn’t work anymore — how Oracle, DB2 and Ingres were written so long ago, they’d have to be rewritten to meet the needs of today’s database users. Jacob Nikom pointed the article to me; apparently he contacted the author and started to explain how MySQL meets that criteria, but the author disagreed.

Read the article for yourself:
http://www.databasecolumn.com/2007/09/one-size-fits-all.html

Anyone else notice the irony of saying “all those other DBMS’s aren’t a one-size-fits-all solution, but this one is?” I think that MySQL comes the closest to a DBMS that is NOT “one size fits all”, given the multiple storage engines available. What other DBMS will allow you to use your Amazon S3 account as a table? What other DBMS will allow you to use a .csv file as a table without importing? It’s not perfect, because there’s still a basic layer of functional implementation that the MySQL server handles (and must), but it’s the closest.

Note that the article is written by the founder and CTO of the software solution mentioned.

I was pointed to an article about how the “one size fits all” database model doesn’t work anymore — how Oracle, DB2 and Ingres were written so long ago, they’d have to be rewritten to meet the needs of today’s database users. Jacob Nikom pointed the article to me; apparently he contacted the author and started to explain how MySQL meets that criteria, but the author disagreed.

Read the article for yourself:
http://www.databasecolumn.com/2007/09/one-size-fits-all.html

Anyone else notice the irony of saying “all those other DBMS’s aren’t a one-size-fits-all solution, but this one is?” I think that MySQL comes the closest to a DBMS that is NOT “one size fits all”, given the multiple storage engines available. What other DBMS will allow you to use your Amazon S3 account as a table? What other DBMS will allow you to use a .csv file as a table without importing? It’s not perfect, because there’s still a basic layer of functional implementation that the MySQL server handles (and must), but it’s the closest.

Note that the article is written by the founder and CTO of the software solution mentioned.

Delay in Podcast

Administrative note:

I had a bit of a mishap involving my hand and a glass door pane. The OurSQL podcast will be on hiatus for a few weeks as I recover. I injured my left hand, and I’m a lefty, so I’m typing one-handed these days. I apologize for the break in the show schedule, and hope you’ll be able to hear new podcasts about MySQL very soon!

Administrative note:

I had a bit of a mishap involving my hand and a glass door pane. The OurSQL podcast will be on hiatus for a few weeks as I recover. I injured my left hand, and I’m a lefty, so I’m typing one-handed these days. I apologize for the break in the show schedule, and hope you’ll be able to hear new podcasts about MySQL very soon!

Google Summer of Code: MySQL Auditing Software

On Monday August 20th, 2007, the Google Summer of Code officially ended. I have had a great time this summer, although it has not always been sunshine and flowers! Because of the nature of the Summer of Code, setbacks due to lack of knowledge were not a problem. It’s expected that the students don’t know everything!

So mostly the setbacks were organizational. I had 2 students working on MySQL Auditing Software, which I have tentatively (and very geekily) called OughtToAudit. One student was working on the administrative interface, where access to the auditing program and the auditing rules themselves are defined. As well, reporting on suspicious activity as well as the rule-breaking activity could be seen. The other student was working on a pcap (libpcap, winpcap) engine to store all database traffic. Why pcap? One of the main tenets of auditing is that the auditing system is independent of the system to be audited. Part of this is for control purposes, so that the DBA is not the final arbiter of what’s in the auditing system — that can be owned by someone else, so that the DBA can be watched, too (just 2 months ago a report came out about a DBA stealing sensitive data, http://tinyurl.com/2xpjmz).

The community bonding period was great. I did not want to code during that time, I wanted to have the students learn more about auditing, and get to be part of the community. Well, only one student had time during that period, and looking back on it, he had more to learn, so I should have had him start. I also wasn’t as organized as I could have been and was planning on using the community bonding time to write up a spec, which was late.

The coding started a bit late because both students had finals the first week in June. And then I got married the 2nd week in June and went on a 2-week honeymoon, which did not help matters. I thought my vacation would be 3 solid weeks into the Summer of Code, but it ended up being about 2 non-solid weeks (say, 1.5 actual weeks). So just when the questions started coming to the forefront, I was gone. The best laid plans and all that, I guess.

After my honeymoon it was July, and I scrambled to get organized and be the best help I could. I succeeded, but I really needed a push to get myself more motivated. Basically I did not do as much as I should have in the first half. During or just after the midterm, we established a schedule of twice-weekly conference calls (5 pm my time, 10 pm for one student, 11 pm for another, on Wednesdays and Sundays). This helped a lot, and sometimes one or more folks couldn’t make it, and that’s OK, because we had them twice a week.

From my point of view, there were not any surprises, though things did take longer than I expected, as I misjudged skills and knowledge of both students at different points, in different directions — that is, I thought both students were both better and worse at different parts of their projects, so some parts went faster and others went slower.

The outcome so far is this: we are at about an 0.7 or 0.8 release, not ready even for alpha until we can integrate a few things. We have overcome a lot of challenges, and both students know a lot more about MySQL and auditing than they did before, and got good coding experience. Which was the point of the Google Summer of Code. MySQL is closer to having auditing software, though I’d have hoped we’d have gotten a bit further than we have. But we’ve agreed to meet once a month, now that the students go back to jobs and school, and continue to work on it.

All in all, it was a good experience. Had I to do it over, I’d have done many things similarly. I would start with the conference calls from the beginning and not been overconfident in the beginning, and used the community bonding period to do what the students wanted instead of holding them back.

On Monday August 20th, 2007, the Google Summer of Code officially ended. I have had a great time this summer, although it has not always been sunshine and flowers! Because of the nature of the Summer of Code, setbacks due to lack of knowledge were not a problem. It’s expected that the students don’t know everything!

So mostly the setbacks were organizational. I had 2 students working on MySQL Auditing Software, which I have tentatively (and very geekily) called OughtToAudit. One student was working on the administrative interface, where access to the auditing program and the auditing rules themselves are defined. As well, reporting on suspicious activity as well as the rule-breaking activity could be seen. The other student was working on a pcap (libpcap, winpcap) engine to store all database traffic. Why pcap? One of the main tenets of auditing is that the auditing system is independent of the system to be audited. Part of this is for control purposes, so that the DBA is not the final arbiter of what’s in the auditing system — that can be owned by someone else, so that the DBA can be watched, too (just 2 months ago a report came out about a DBA stealing sensitive data, http://tinyurl.com/2xpjmz).

The community bonding period was great. I did not want to code during that time, I wanted to have the students learn more about auditing, and get to be part of the community. Well, only one student had time during that period, and looking back on it, he had more to learn, so I should have had him start. I also wasn’t as organized as I could have been and was planning on using the community bonding time to write up a spec, which was late.

The coding started a bit late because both students had finals the first week in June. And then I got married the 2nd week in June and went on a 2-week honeymoon, which did not help matters. I thought my vacation would be 3 solid weeks into the Summer of Code, but it ended up being about 2 non-solid weeks (say, 1.5 actual weeks). So just when the questions started coming to the forefront, I was gone. The best laid plans and all that, I guess.

After my honeymoon it was July, and I scrambled to get organized and be the best help I could. I succeeded, but I really needed a push to get myself more motivated. Basically I did not do as much as I should have in the first half. During or just after the midterm, we established a schedule of twice-weekly conference calls (5 pm my time, 10 pm for one student, 11 pm for another, on Wednesdays and Sundays). This helped a lot, and sometimes one or more folks couldn’t make it, and that’s OK, because we had them twice a week.

From my point of view, there were not any surprises, though things did take longer than I expected, as I misjudged skills and knowledge of both students at different points, in different directions — that is, I thought both students were both better and worse at different parts of their projects, so some parts went faster and others went slower.

The outcome so far is this: we are at about an 0.7 or 0.8 release, not ready even for alpha until we can integrate a few things. We have overcome a lot of challenges, and both students know a lot more about MySQL and auditing than they did before, and got good coding experience. Which was the point of the Google Summer of Code. MySQL is closer to having auditing software, though I’d have hoped we’d have gotten a bit further than we have. But we’ve agreed to meet once a month, now that the students go back to jobs and school, and continue to work on it.

All in all, it was a good experience. Had I to do it over, I’d have done many things similarly. I would start with the conference calls from the beginning and not been overconfident in the beginning, and used the community bonding period to do what the students wanted instead of holding them back.

OurSQL Episode 22: Things To Avoid With MySQL Queries

Feature:

Things to Avoid in Queries
Subqueries and Correlated subqueries
http://dev.mysql.com/doc/refman/4.1/en/correlated-subqueries.html

Jan Kneschke’s post on Groupwise Maximum:
http://jan.kneschke.de/projects/mysql/groupwise-max

Calculated comparisons do not use indexes

INSERT IGNORE
REPLACE
INSERT…ON DUPLICATE KEY

Feedback:

Email podcast@technocation.org

call the comment line at +1 617-674-2369

use Odeo to leave a voice mail through your computer:
http://odeo.com/sendmeamessage/Sheeri

or use the Technocation forums:
http://technocation.org/forum

Direct play this episode at:
http://technocation.org/content/oursql-episode-22%3A-things-avoid-mysql-queries

Feature:

Things to Avoid in Queries
Subqueries and Correlated subqueries
http://dev.mysql.com/doc/refman/4.1/en/correlated-subqueries.html

Jan Kneschke’s post on Groupwise Maximum:
http://jan.kneschke.de/projects/mysql/groupwise-max

Calculated comparisons do not use indexes

INSERT IGNORE
REPLACE
INSERT…ON DUPLICATE KEY

Feedback:

Email podcast@technocation.org

call the comment line at +1 617-674-2369

use Odeo to leave a voice mail through your computer:
http://odeo.com/sendmeamessage/Sheeri

or use the Technocation forums:
http://technocation.org/forum

Direct play this episode at:
http://technocation.org/content/oursql-episode-22%3A-things-avoid-mysql-queries

Tax-Deductible Sponsorship of MySQLCamp!

MySQLCamp is a free event available to the public, though geared towards the MySQL Community. There is no fee for any participant, and workshops are presented by participants and chosen by the community.

Last year, Google was kind enough to sponsor all of the logistics, from food to meeting space. This year, Polytechnic University is providing the location — and we're opening up sponsorship for the rest!

Technocation, Inc. — a US not-for-profit providing educational resources for IT professionals —  is sponsoring a donor campaign for MySQLCamp II, to take place from August 23-24, 2007 at Polytechnic University in Brooklyn, NY, USA.

By sponsoring MySQL Camp, you will not only help out the community and get a tax deduction, but your name and company's name will be mentioned throughout MySQL Camp, on the MySQL Camp website, and you will be allowed to have a banner ad on www.technocation.org. You will be contacted at your e-mail address to discuss banner details.

Technocation, Inc. is a not-for-profit organization. Your contributions are tax-deductible to the fullest extent of the law. Proof of donation will be mailed. Money may be donated through PayPal by sending payment to donate@technocation.org, or by using the links below.

Gowanda Level, $100

Ecco Level, $250

Flipper Level, $500

Dan Marino Level, $1000

Sakila Level, $2000 

To send a check or money order by mail:

MySQLCamp II Campaign
c/o Technocation, Inc.
PO Box 380221
Cambridge, MA 02238
United States

Technocation's EIN/Tax ID is 20-5445375

MySQLCamp is a free event available to the public, though geared towards the MySQL Community. There is no fee for any participant, and workshops are presented by participants and chosen by the community.

Last year, Google was kind enough to sponsor all of the logistics, from food to meeting space. This year, Polytechnic University is providing the location — and we're opening up sponsorship for the rest!

Technocation, Inc. — a US not-for-profit providing educational resources for IT professionals —  is sponsoring a donor campaign for MySQLCamp II, to take place from August 23-24, 2007 at Polytechnic University in Brooklyn, NY, USA.

By sponsoring MySQL Camp, you will not only help out the community and get a tax deduction, but your name and company's name will be mentioned throughout MySQL Camp, on the MySQL Camp website, and you will be allowed to have a banner ad on www.technocation.org. You will be contacted at your e-mail address to discuss banner details.

Technocation, Inc. is a not-for-profit organization. Your contributions are tax-deductible to the fullest extent of the law. Proof of donation will be mailed. Money may be donated through PayPal by sending payment to donate@technocation.org, or by using the links below.

Gowanda Level, $100

Ecco Level, $250

Flipper Level, $500

Dan Marino Level, $1000

Sakila Level, $2000 

To send a check or money order by mail:

MySQLCamp II Campaign
c/o Technocation, Inc.
PO Box 380221
Cambridge, MA 02238
United States

Technocation's EIN/Tax ID is 20-5445375

What If?

What if last week’s announcement by MySQL had been the following?

Some major MySQL distributors have brought some issues to our attention. These distributors have been legally distributing the Enterprise version of MySQL to folks that do not have a MySQL support contract, without their knowledge or consent.

When a user installs an open source operating system and includes MySQL, should that user get the Community version or the Enterprise version? Since the source code was split back in October 2006, MySQL AB has felt that users should use the Enterprise version only if they intend to. We have made the source easily downloadable, so folks that want to use Enterprise, are able to use Enterprise.

However, given that distributors have been doling out Enterprise to unsuspecting users, we decided to change a few things. Firstly, we recognize that folks may be downloading Enterprise because they do not understand that Community is what they need. MySQL has very good binary builds available, with very little to be gained by users compiling their own binaries. We hope that folks have not been frustrated by a build process when they could have downloaded Community.

Secondly, the MySQL distributors have brought about some issues which would need to be fixed if we want them to distribute MySQL Community. Those issues are:

1) Scheduled releases of MySQL Community code — we will now schedule Community code releases 4 times per year, to meet this request. In addition, we will release binaries for Community twice a year, as needed.

2) Feature stability — we thought we could implement community-driven features in current releases. Sticking in a new feature to a current release jeopardizes the stability of the feature in that release. Also, we haven’t quite managed how to do that, and it will be easier to patch a feature into a non-GA release.

3) Newly GA releases will have monthly binary builds — A release that recently went from alpha or beta to GA will continue to receive monthly binary builds and releases until such time as the release is stable. We expect this to be for several months after the GA is announced.

You might notice that the Enterprise source binaries have been taken down off ftp.mysql.com. This is because we wanted to make sure that the folks that were downloading Enterprise were doing so because they wanted to download Enterprise, not because they went to the download screen and thought “Enterprise” sounded better than “Community”.

How would you have felt if that were the announcement? Because that is how I read it. Maybe it’s too little, too late, but I really feel as though the negativity associated with the announcement came from folks who used the announcement as a reason to talk about why the split is a bad idea. There’s plenty of work to do to make the split better, but the announcement last week was so simple, and didn’t deserve all the attention and negativity it garnered.

What if last week’s announcement by MySQL had been the following?

Some major MySQL distributors have brought some issues to our attention. These distributors have been legally distributing the Enterprise version of MySQL to folks that do not have a MySQL support contract, without their knowledge or consent.

When a user installs an open source operating system and includes MySQL, should that user get the Community version or the Enterprise version? Since the source code was split back in October 2006, MySQL AB has felt that users should use the Enterprise version only if they intend to. We have made the source easily downloadable, so folks that want to use Enterprise, are able to use Enterprise.

However, given that distributors have been doling out Enterprise to unsuspecting users, we decided to change a few things. Firstly, we recognize that folks may be downloading Enterprise because they do not understand that Community is what they need. MySQL has very good binary builds available, with very little to be gained by users compiling their own binaries. We hope that folks have not been frustrated by a build process when they could have downloaded Community.

Secondly, the MySQL distributors have brought about some issues which would need to be fixed if we want them to distribute MySQL Community. Those issues are:

1) Scheduled releases of MySQL Community code — we will now schedule Community code releases 4 times per year, to meet this request. In addition, we will release binaries for Community twice a year, as needed.

2) Feature stability — we thought we could implement community-driven features in current releases. Sticking in a new feature to a current release jeopardizes the stability of the feature in that release. Also, we haven’t quite managed how to do that, and it will be easier to patch a feature into a non-GA release.

3) Newly GA releases will have monthly binary builds — A release that recently went from alpha or beta to GA will continue to receive monthly binary builds and releases until such time as the release is stable. We expect this to be for several months after the GA is announced.

You might notice that the Enterprise source binaries have been taken down off ftp.mysql.com. This is because we wanted to make sure that the folks that were downloading Enterprise were doing so because they wanted to download Enterprise, not because they went to the download screen and thought “Enterprise” sounded better than “Community”.

How would you have felt if that were the announcement? Because that is how I read it. Maybe it’s too little, too late, but I really feel as though the negativity associated with the announcement came from folks who used the announcement as a reason to talk about why the split is a bad idea. There’s plenty of work to do to make the split better, but the announcement last week was so simple, and didn’t deserve all the attention and negativity it garnered.

OurSQL Episode 21: The Rise of the MySQL DBA

Direct play this episode at:
http://technocation.org/content/oursql-episode-21%3A-rise-mysql-dba-1

Paul Vallee is back for this non-technical podcast about the special creature that is the MySQL DBA.

News:
October 2006 Enterprise/Community Split announcement
http://www.planetmysql.org/entry.php?id=4393

Current clarification of Enterprise/Community split
http://www.planetmysql.org/kaj/?p=123

Dorsal Source, a community-focused website whose goal is to provide builds of MySQL and related products.
http://www.dorsalsource.org

Learning Resource:
MySQL Camp II, August 23-24 2007, Brooklyn NYhttp://www.mysqlcamp.org

http://www.poly.edu

Feature:
The Pythian Group’s Paul Vallee
http://www.pythian.com

Feedback:

Email podcast@technocation.org

call the comment line at +1 617-674-2369

use Odeo to leave a voice mail through your computer:
http://odeo.com/sendmeamessage/Sheeri

or use the Technocation forums:
http://technocation.org/forum

Direct play this episode at:
http://technocation.org/content/oursql-episode-21%3A-rise-mysql-dba-1

Paul Vallee is back for this non-technical podcast about the special creature that is the MySQL DBA.

News:
October 2006 Enterprise/Community Split announcement
http://www.planetmysql.org/entry.php?id=4393

Current clarification of Enterprise/Community split
http://www.planetmysql.org/kaj/?p=123

Dorsal Source, a community-focused website whose goal is to provide builds of MySQL and related products.
http://www.dorsalsource.org

Learning Resource:
MySQL Camp II, August 23-24 2007, Brooklyn NYhttp://www.mysqlcamp.org

http://www.poly.edu

Feature:
The Pythian Group’s Paul Vallee
http://www.pythian.com

Feedback:

Email podcast@technocation.org

call the comment line at +1 617-674-2369

use Odeo to leave a voice mail through your computer:
http://odeo.com/sendmeamessage/Sheeri

or use the Technocation forums:
http://technocation.org/forum

OurSQL Episode 20: The Pythian Group

In this less technical episode we interview Paul Vallee, where he explains in depth about the Pythian Group.

Special thanks to folks who have linked to the podcast:
WebDevRadio
http://www.webdevradio.com

Episode 34, July 9th, in which Michael mentions OurSQL and hopes I haven’t “gone dark”. Nope! http://www.webdevradio.com/index.php?id=50

Kristina Hadges, a web designer, linked to the podcast
http://www.nineofnine.com/resources

Feature:

The Pythian Group
http://www.pythian.com

Feedback:
Direct play this episode at:
http://technocation.org/content/oursql-episode-20%3A-pythian-group

Feedback:

Email podcast@technocation.org

call the comment line at +1 617-674-2369

use Odeo to leave a voice mail through your computer:
http://odeo.com/sendmeamessage/Sheeri

Or use the Technocation forums:
http://technocation.org/forum

In this less technical episode we interview Paul Vallee, where he explains in depth about the Pythian Group.

Special thanks to folks who have linked to the podcast:
WebDevRadio
http://www.webdevradio.com

Episode 34, July 9th, in which Michael mentions OurSQL and hopes I haven’t “gone dark”. Nope! http://www.webdevradio.com/index.php?id=50

Kristina Hadges, a web designer, linked to the podcast
http://www.nineofnine.com/resources

Feature:

The Pythian Group
http://www.pythian.com

Feedback:
Direct play this episode at:
http://technocation.org/content/oursql-episode-20%3A-pythian-group

Feedback:

Email podcast@technocation.org

call the comment line at +1 617-674-2369

use Odeo to leave a voice mail through your computer:
http://odeo.com/sendmeamessage/Sheeri

Or use the Technocation forums:
http://technocation.org/forum

April 2007 Boston MySQL User Group Video

Using MySQL As Active DBMS for Monitoring Applications — Jacob Nikom.

Jacob presented this as a special preview at the April 2007 Boston MySQL User Group, and then presented it at the 2007 MySQL Users Conference and Expo.

The last in the “better late than never” series….

Download from http://www.technocation.org/videos/2007_04BostonUserGroup.wmv
or view right here:

Using MySQL As Active DBMS for Monitoring Applications — Jacob Nikom.

Jacob presented this as a special preview at the April 2007 Boston MySQL User Group, and then presented it at the 2007 MySQL Users Conference and Expo.

The last in the “better late than never” series….

Download from http://www.technocation.org/videos/2007_04BostonUserGroup.wmv
or view right here: