Two subjects are one too many for a blog post

It's my turn to apologize. Andrew and I apparently really angered people by being upset about something last week, and for that, as he already has, I apologize. I don't like making people angry or upset.

I believe Henrik made an excellent point, which is that for various different reasons, there are those of us who were upset when Oracle bought MySQL and yet felt complelled to not communicate this publically. To be honest, emotions related to a business transaction ARE a little weird, so I'm not sure it's completely odd that people don't know how to appropriate express them. But as Henrik rightly pointed out, the Oracle takeover has been the elephant in the room (sorry Postgres - it's not you) and we've all been spending a good amount of energy NOT talking about it, because talking about it only leads to people getting upset. As I said before, I don't like making people upset, so I'll try to keep my comments there to myself for the most part.

I'd also like to apoligize for writing a blog post with too many thoughts. I only included the discussion of the naming as what I thought was a humorous take on the backstory of why I was writing in the first place, I see the folly of my ways there. In the future, if what I want to talk about is annoyance at people eye-rolling at my passion for Open Source, I will endeavor to only talk about that. That way, with a single topic post, when it's referenced other places, there will be no confusion.

To sum up, I am sorry for causing any confusion or any anger or for making anyone upset.

3 comments

Oracle do not, in fact, comprise the total set of MySQL Experts

There's been quite the thread on Google+ (my how technology changes quickly...) over a comment Andrew Hutchings made on an Oracle MySQL Blog Annoucment for their new "Meet The MySQL Experts" Podcast. I should have ignored it - because I honestly could not give two shits one way or the other about Oracle or any podcasts that they may or may not decide to broadcast. But to be straightfoward about it ... the title of the podcast is ludicrous. In case you were wondering, "The" in English is the definite article and implies a singular quality to the thing that it describes... effectively implying that Oracle's MySQL Experts are, in fact, the only MySQL Experts. We all know that's false- Percona and SkySQL are both full of experts as well - likely have more MySQL Experts per-capita than Oracle does, as if a per-capita measure were important. Of course, as Matt Montgomery pointed out, there is absolutely no reason for Oracle to point people toward's someone else's experts ... and that's fine. It's just that there are other ways to phrase the title that still assert Oracle's product and trademark and which are not, from a purely grammatical sense, lies. "Meet Our MySQL Experts" or even "Meet MySQL Experts" or "MySQL Experts Talk to You" or "Hey! Look! MySQL Experts are going to drink Black Vodka!" (ok, probably not the last, since that would point people to MariaDB - but it is at least a true statement... MySQL Experts WILL, inevitably, drink Black Vodka)

As I said earlier though - I don't really care about Oracle... they have no impact or meaning in my life... so if they want to either play silly grammatical games OR be unaware as to the actual meaning of words in English - that's fine. But then Matt Lord said something that really pissed me off:

 Any religion and its dogma can be problematic in the real world, whether or not it involves any kind of deism or not. :)

Too often people confuse FOSS with the cathedral and the bazaar, shared development, shared ownership and other high minded ideals and frameworks. In the end, it's a trademarked and in-house developed product that is released as FOSS. It's not a cross, don't try to impale yourself on it. :D

It's not that big of a deal people! We're surrounded by beauty and tragedy, this is just work.

Now, first of all, I like Matt Lord. And with that in mind, I have the following to say:

I am fully in support of trademarks and trademark protection. I am fully in support of people making a living doing what they do - especially if they are doing it by providing a service. I recognize that Oracle owns the trademark MySQL and can do with it as they see fit.Oracle does, in fact, own the product called MySQL, with all of the rights that go along with that... and honestly I do not think they are being bad shepherds of that product. Whether I like Oracle or not, it is undeniable that they are now a part of the MySQL picture, and I say good for them.

The reason I get pissed off is the attitude that it's not that big of a deal. The MySQL trademark and the business around MySQL is a BIG DEAL to Oracle, and if I were to try to put forward the opinion that they should just, you know, stop caring about it, people would think I was crazy. Why is it so unreasonable then for me to care about the portion of this that I happen care about? Why is it not ok for me to NOT be in this for the money, for me to NOT be in this just as work?

I think it might be worthwhile reading The Cathedral and The Bazaar again - because it describes the two different models you are talking about rather than being a single entity that one might confuse FOSS with. The Cathedral, as described in the book, is the model traditionally taken by the MIT and Gnu-derived projects,  (although emacs has a more open dev model now) and is currently also employed by Oracle on MySQL. In fact, it has been the MySQL model for quite some time - well before Oracle entered the picture. It involves a mostly closed dev process from which code drops are made unannounced and at the whim of the folks in the Cathedral. It's not de-facto a bad thing, it's just a description of a process. With the Cathedral, ironically enough, it is the ideals of Free Software (that the software itself be free) that are more important and that an open development process is less important. The Bazaar, on the other hand, is the process Linux uses - where all of the development is done in a distributed manner and in the open. The assertion in the book, and one of the philosophical differences between Free Software and Open Source (which makes the use of FLOSS or FOSS completely ludicrous) is that having an open development process is more valuable than just the software being free, although the by-product of an open development process is that your software sort of has to be Open Source. The irony here that I mentioned earlier is that, of course, Oracle approaching its Free Software offerings via the Cathedral model gives it none of the benefits you would think a corporation might want from an arrangement such as Eric Raymond's Open Source Bazaar model might afford them, and instead themselves choose to operate under a set of zealous ideals much more akin to Richard Stallman.

I'm sure that analogy is not pleasing to either Stallman or Ellison.

Although I understand that the ideals behind Free Software may not be important to you, I do not think that there is any constructive reason in the context of a discussion about Oracle's business practices asserting trademark ownership to imply me subscribing to those ideals is silly. It would be very difficult to accurately describe the success of any of the currently valuable pieces of Free Software as not due in any large part to those of us who routinely impale ourselves on the cross of Free Software. MySQL AB's business strategy itself, which involved attaching FUD to discussions of the GPL to incite people to buy licenses that they quite simply did not need ... (a perfectly valid if devious business strategy) was predicated on the existence of such an enormous shit-ton of users that they could focus on converting a percent of a percent of those users into customers and still wind up selling the business for a billion dollars. That shit-ton of users grew out of the emergence of LAMP as the dominant pattern for the Web. LAMP arose because it was technically much better than any of the alternatives... and the pieces of LAMP became dominant because of the work of a set of people who do, in fact, care about the ideals of either Free Software or Open Source.

You seem to be quick to put things in business perspectives and to remind people that it's ok for Oracle to do business. I agree. It's ok. But we wouldn't have had MySQL to work in the first place for if it wasn't for a bunch of people for whom it was not just a job, for whom it was not just work and for whom the ideals you are looking down on are not silly things.

So disagree with me all you want to about the effects of Oracle's choices on the health of MySQL. Defend Oracle all you want to on whatever terms you want, in whatever way you want to define a set of values such that they are positive. I'm right there with you on some of it, I might disagree with you on other bits, and that's just life and how we go on being people ... but please do not smirk and snicker and roll your eyes and tell me that the things that I think are important are not. I assure you, I find them to be very important and I do not believe I am the only person who does.

12 comments

Need const_map

I love STL containers in C++. They're so much better in general to work with than their C counterparts. The bit that's missing though is an instantiation-time optimized version of map.

Take, for instance, reading a set of commands at startup from a set of dynamically loaded plugins. It's not going to change, in this hypothetical case, because we neither load nor unload plugins after startup. But it's dynamic in the sense that we do not know it at compile time - so doing something like gperf to generate a perfect hash is out of the question.

But why should we pay the lookup cost on a dynamic container for every lookup if I can determine, based on program flow, that the contents of the container are not going to change once it's instantiated.

Something like:

const perfect_map(some_dynamic_map_I_built);

Where the constructor would do a perfect hash generation once, and the map itself would be const (not allowing contents to be added or removed) but was full of references to objects which might not be const. Right? I can't be the only one wanting this, am I? 

4 comments

Mailing List FAIL

I've been thinking a bunch about email and mailing lists recently... about how to deal with them, how to follow the ones that are important but not get drowned in a sea of email noise. I have a non-tech email account which is where friends mail me personally and where I handle theatre-related stuff. I do not receive a stupid amount of email on this account, and I am almost always interested in reading the messages that arrive there. So on my inaugust.com email address, I've been considering unsubscribing from all mailing lists and setting both Launchpad and github to stop emailing me most things.

For Launchpad and github, most things I care about have status pages of some sort: lists of bugs or branches I need to attend to or whatnot. I really don't need to get an email every time someone files a bug - it's noise.

Mailing lists are the trickier one, because so many open source projects are centered around them in one form or another. For a long time I kept filters to file things in to mail folders - but then I realized that I'd forget about large numbers of them and would never read them. So then I removed those filters so that they'd hit my inbox and I'd read the stream - but that's obviously too much.

I'm starting to think that they are all a complete and total waste of time in terms of existing in my inbox. Back in the good old days of the internet, a lot of that sort of conversation occured over NNTP, which thankfully also had the idea of expiring messages from the newsgroup after a period of time. The separation here was really nice, as it separated messages in general from message TO ME. RSS feeds into a feed reader might be an option - but it doesn't model the "Oh, I noticed a thing I should respond to which now needs to be a conversation I'll follow" workflow.

I don't know the answer - but the current stream of crap hitting my Inbox is fully problematic. (And no Stewart, notmuch will not help my problem here)

53 comments

OpenStack on Drizzle

Rackspace has been busy over the last year, funding both the Drizzle project and the OpenStack project. I've been lucky enough to be involved in both, and I couldn't be more pleased and proud of the stuff that's come from both projects.

What about synergy though?

Well, it turns out that it's pretty easy to use Drizzle as your database for two of the three current main OpenStack components. Glance, the Image Registry and  Nova the Cloud Computing Fabric Controller, both use SQLAlchemy to manage data that needs to go into a database.

There's one prerequisite you need to get up and running, and that's SQLAlchemy 7, which is currently in beta. SQLAlchemy 7 introduces a Drizzle dialect, which tells the ORM how to map properly to Drizzle datatypes and the like. Once you've installed SA7, it's as simple as creating a schema to stick data in and the changing the sql_connection setting in either your glance.conf or your nova.conf file to be of the form "drizzle://user@host/database" and you'll be off to the races. From by-hand testing I've been doing, all seems to work properly.

What about more automated testing?

I've been doing some poking at the test suites for both glance and nova, because I'd like to be able to set up some Jenkins jobs to ensure that running Glance and Nova on top of Drizzle (and to be honest MySQL and Postgres) is actually something that's tested on each commit. At the moment, the Glance test suite works fully. The Nova test suite makes a few assumptions about sqlite files, so I'm working up a patch to have it not copy in blanked out sqlite files as part of the test suite. But once that's done, I'll get the whole thing up and going in Jenkins and then make sure that Drizzle (and MySQL and Postgres) can actually handle everything that the SQLAlchemy layer theoretically means we don't have to worry about it. (And for the record, I haven't had to change any code anywhere other than in the test runners, and that was just to support being able to set that option - so SQLAlchemy has pretty much held up to its end of the bargain) 

2 comments