The views or opinions expressed on this blog are my own and do not necessarily reflect the views or opinions of Oracle Corporation. The views or opinions expressed by visitors on this blog are theirs solely and may not reflect mine.
Friday, October 15. 2010
Heute hat mir der Postbote Post aus Österreich gebracht: Michael Prokop vom GRML-Projekt war so freundlich, mit ein Exemplar seines Buches "Open Source Projektmanagement" (Open Source Press) zu schicken, das im September dieses Jahres auf den Markt kam. Sogar mit Widmung - vielen Dank dafür!
Ich zitiere einfach mal aus der Beschreibung des Verlags:
Die Unterschiede bei der Entwicklung von Open-Source- und Closed-Source-Software gehen weit über Fragen der Lizenzierung hinaus. Wer ein freies Projekt startet, sollte die ganz eigenen Regeln kennen, um nicht Motivation und Arbeit aller Beteiligten zu gefährden. Das heißt zugleich: Wer die besondere Dynamik bei der Entwicklung freier Software zu nutzen weiß, wird von den technischen Ergebnissen und der besonderen Atmosphäre gemeinschaftlicher Arbeit immer begeistert.
Unter der Adresse http://release-it.org/ findet sich die Website zum Buch. Das Inhaltsverzeichnis liest sich vielversprechend – ich hoffe ich habe bald Gelegenheit dazu, mir das Buch zu Gemüte zu führen.
Die Kapitel sind mit Berichten aus der Praxis und Exkursen externer Autoren angereichert und ich konnte einige bekannte Namen unter den Beteiligten ausmachen. Es war mir eine Freude und Ehre, zum Kapitel 4.1 "Team - Arbeitsformen in der Softwareentwicklung" einen Exkurs über das Arbeiten in einer virtuellen Firma am Beispiel von MySQL beisteuern zu dürfen. Zum Thema "Community Management" hat Alexandra Leisse von Nokia/Qt einen interessanten Exkurs geschrieben, dem ich voll und ganz zustimme
Saturday, September 18. 2010
The Drupal community just recently released another alpha test release of their upcoming Drupal 7 version, to shake out the remaining bugs and to encourage more users to test it.
If you would like to give it a try, but you don't have a free server handy, how about using a virtual machine instead? Using the fabolous SuSE Studio, I've created an appliance based on openSUSE 11.3, Drupal 7.0-alpha7 and MySQL 5.1 with the InnoDB plugin and strict mode enabled (both for the SQL mode and InnoDB mode. Using this configuration helps to ensure that Drupal works well with the current version of MySQL/InnoDB and does not use any "questionable" SQL statements. This might be especially interesting for additional modules - Drupal core did not reveal any problems using strict mode so far.
You can download disk images for VMware/Virtualbox/KVM or XEN from the SUSE Gallery (free login required). Just boot the appliance in your virtualization application of choice, choose your keyboard layout and step through the network configuration and Time Zone selection. Once the appliance has booted up and the login: prompt appeared, point your web browser to the appliance's IP address to start the Drupal installation/configuration. MySQL has been pre-configured, there is an empty database named "drupal" and a user "drupal" with the same password to access it. You just need to enter this information in the Drupal Database configuration dialogue during the installation. Anything else can be configured to your liking.
After you have finished the installation, you can toy around with a fresh Drupal 7 installation! Install additional modules, change the themes, add content. And make sure to report all bugs that you run into while doing so! Have fun.
Friday, August 27. 2010
Vorab ein Disclaimer: nein, ich bin nicht auf der Suche nach einen neuen Job
Ich habe auf der FrOSCon am letzten Wochenende Lukas Chaplin endlich mal persönlich getroffen, nachdem wir schon seit längerem in Online-Kontakt standen. Er betreibt das Job-Portal Linux Lancers (powered by MySQL), auf dem Stellenanzeigen mit dem Schwerpunkt auf Unix-, Linux- und Open Source-Jobs veröffentlicht werden. Dieses Jahr waren sie auf der FrOSCon als Gold-Sponsor und Aussteller vertreten und hatten wohl immer viel zu tun.
Ich finde diese Idee sehr gut – es zeigt, daß die Arbeit an und mit Open Source Software durchaus keine brotlose Kunst ist und Know-How in vielen Bereichen dringend gesucht wird. Mir ist bisher kein weiteres Portal mit diesem Fokus bekannt. Eine Suche nach "MySQL" liefert viele Hits, quer über die Republik verteilt. Kenntnisse und Erfahrung mit Opensource-Technologien zahlen sich aus! Die Website ist noch in einer frühen Betaphase, aber das machen die Inhalte wieder wett. Laut Lukas ist ein Relaunch des Portals in Arbeit, bei dem sowohl die Suchlogik als auch die Darstellung der Suchergebnisse überarbeitet wird.
Thursday, August 26. 2010
With OpenSQL Camp and FrOSCon being over for almost a week now, it's time to come up with a short summary. I traveled home on Monday morning and then took Tuesday off, so I had some catching up to do...
As for the past years, FrOSCon rocked again! According to the closing keynote, they had around 1.500 (unique) visitors and I had a great time there. I really enjoyed meeting all the old and new faces of the various Open Source communities. The lineup of speakers was excellent, Jon "maddog" Hall's keynote about "Free and Open Source Software in the Developing World" was quite insightful and inspiring.
Most of the time I was busy with speaking at and running the OpenSQL Camp session track in room "HS6", but I managed to sneak out and listen to a few other talks as well. Additionally, I gave a presentation about ZFS on Linux, which had a good crowd and some interesting discussions.
This year, all of the sessions in the main lecture halls were streamed live, so people not able to attend could at least get a glimpse on what was going on these two days. Many times it was a really tough decision to make – there were way too many good sessions going in parallel. So being able to see the recording afterwards somewhat relieved that pain. The FrOSCon team has already begun to publish the video files – they are separated by day and lecture room and can be obtained from http://froscon.tv/.
And we were really lucky with the weather, too - the weekend was warm and sunny, a perfect setting for the social event, which is one of the highlights of FrOSCon. Impressive: this year, the attendees consumed one cubic meter (1000 liters) of Beer!
Finally, I'd like to express my special gratitude to all the speakers of OpenSQL Camp – thank you very much for your support and for devoting your time to participate in our subconference! It was appreciated.
Wednesday, August 11. 2010
I tend to switch between Linux and OpenSolaris as my desktop operating system from time to time. To be more flexible in this setup, I store most of my work-related data (e.g. source trees, VirtualBox images) on an external 320GB USB disk drive, using the ZFS file system. While OpenSolaris supports ZFS natively, I can access the file system on Linux using zfs-fuse and I could even mount these file systems on a FreeBSD system, if needed. There aren't that many file systems that allow an easy exchange of data between (Open)Solaris and Linux – the other ones that I am aware of are FAT and UFS, which both don't give me the confidence and flexibility I need.
A while ago, I purchased a second external drive of the same size and now use both of them in a mirrored configuration. This gives me several benefits:
From my experience, ZFS is a very solid and reliable solution, providing impressive functionality with a very user-friendly UI (you only need use two commands, zfs and zpool).
Wednesday, July 14. 2010
If you wonder why there hasn't been an update from me for quite a while — I just returned from two months of paternal leave, in which I actually managed to stay away from the PC most of the time. In the meanwhile, I've officially become an Oracle employee and there is a lot of administrative things to take care of... But it feels good to be back!
During my absence, Giuseppe and Felix kicked off the Call for Papers for this year's European OpenSQL Camp, which will again take place in parallel to FrOSCon in St. Augustin (Germany) on August 21st/22nd. We've received a number of great submissions, now we would like to ask our community about your favourites!
Basically it's "one vote per person per session" and you can cast your votes in two ways, either by twittering @opensqlcamp or via the opensqlcamp mailing list. The procedure is outlined in more detail on this wiki page.
As we need to finalize the schedule and inform the speakers, the voting period will close this coming Sunday, 18th of July. So don't hesitate, cast your votes now! Based on your feedback we will compile the session schedule for this year's camp. Thanks for your help!
Tuesday, March 30. 2010
As I already wrote, I will be speaking at the MySQL Conference & Expo in Santa Clara in two weeks and I am excited to be there again. This year's conference is going to be interesting for a number of reasons, but most importantly I think that the schedule looks great! This is going to be a "drinking from the firehose of MySQL knowledge" event. Afterwards, I'll be on parental leave in May and June, so I likely will miss a lot of great conferences – these months are usually quite packed, as our Open Source Events Calendar can confirm. I just received a notice that my talk submission to OSCON has been rejected, which currently leaves me with two more speaking engagements in the upcoming weeks:
On April 24th, I'll be at the Grazer Linuxtage in Graz, Austria. The schedule has not been published yet, but I've been asked to give a keynote on the subject of working in a virtual company and a more technical session about MySQL HA solutions. Linuxtage is said to be the second largest Opensource event in Austria – they had 28 different sessions and around 450 visitors last year. I haven't been to an event in Austria for a while, so I look forward to being there!
Even though I'm technically on leave at that time, I will attend the amoocon in Rostock, Germany in June (4-6). While last year's focus at this event was on opensource telephony (Asterisk, VoIP et al), they decided to broaden the scope for this year's event: "It is a boutique conference where we create an environment to give every attendee a fair chance to actually speak to each speaker. So you can tank knowledge and new ideas without the bullshit-bingo." I really enjoyed my stay there last year and look forward to talking about "A look into a MySQL DBA's toolchest" (for those who won't make it to my talk about this at the MySQL conference) and "Why you should be using a DVCS". I noticed that Monty Widenius will be there as well, speaking about "MariaDB release 5.1 - What is it and what to expect from it." and "MySQL & MariaDB history". The organizers are also looking for a speaker from the PostgreSQL camp, so this is going to be an interesting event for me. In addition to that, Rostock is a pretty nice city and the baltic sea is nearby. The organizers have limited the number of attendees to 100 people and the ticket price is slowly increasing every second day – so make your reservations now!
Wednesday, March 24. 2010
Berkeley DB (BDB) is undoubtedly the workhorse among the opensource embedded database engines. It started as a university project in the mid-eighties and was further developed by Sleepycat Software, until it got acquired by Oracle in February 2006.
I had the impression that BDB had lost a lot of its popularity among opensource developers to SQLite in recent times, which has evolved into becoming the default choice for developers looking for an embedded data store. I'd assume primarily because the code is not released under any particular license, but put in the public domain (which makes it very attractive for embedding it into one's code), and also because it's lightweight, supports SQL and has interfaces to a number of languages.
Of course, SQLite has its limitations and use cases (as every product), so it may not be suited for some particular application. As the SQLite developers put it: "SQLite is not designed to replace Oracle. It is designed to replace fopen().".
Yesterday, Oracle announced a new version of BDB. One of the notable features of this release is the introduction of a new SQL API, based on SQLite. According to Gregory Burd, Product Manager for Berkeley DB at Oracle, they did so by including a version of SQLite which uses Berkeley DB for storage (replacing btree.c). I think this is a very smart move – instead of introducing a new API, developers can now easily switch to a different storage backend in case they are experiencing issues with the default SQLite implementation. So now MySQL isn't the only database with different storage backends anymore
I am curious to learn more about how the BDB implementation compares against the original (both feature- and performance-wise).
Oh, and this is actually not the first time someone put an SQL interface in front of Berkeley DB – BDB was the first transaction-safe storage engine that provided page-level locking for MySQL in version 3.23.15 (released in May 2000). The InnoDB storage engine was added some time afterwards (MySQL 3.23.34a, released in March 2001).
Friday, March 12. 2010
I've been working in a fully distributed work environment for almost 8 years now (I joined MySQL AB in April, 2002). Therefore I've been reading Toni Schneider's blog post about the "5 reasons why your company should be distributed" with great interest – he raised several points that I fully agree with and which I covered in my talks about "Working for a virtual company - how we do it at MySQL" at last year's next09 conference (slides, video) and at FrOSCon 2009 (video).
However, Toni draws a profusely positive picture here, or, as my dear colleague Dean pointed out "The blog overly simplifies the realities of a distributed workforce, making it sound like it's all ponies and rainbows".
Continue reading "Thoughts about working in a distributed organization"
Tuesday, March 9. 2010
My plan is to provide an overview over the most popular utilities and applications that a MySQL DBA should be aware of to make his life easier. The focus will be on Linux/Unix applications available under opensource licenses that ease tasks related to user administration, setting up and administering replication setups, performing backups and security audits.
Of course I will cover the usual suspects (e.g. Maatkit), some of these are actually collections of different utilities by themselves. As it's impossible to go over each individual component in the given time frame, I will try to pick out the most popular/useful parts related to the scopes mentioned above. But I will also cover some lesser known gems that migh be worth taking a look at. What's your the most valued tool in your toolchest? I am still looking for more inspiration.
I look forward to being at the conference again and meeting with colleagues and friends in the MySQL community. Judging from the current schedule, it will be a very interesting mix of talks.
If you're interested in attending, you should consider registering soon! The early registration ends on March 15th. Until then, I encourage you to make use of this "Friend of Speaker" discount code (25% off): mys10fsp
Saturday, March 6. 2010
I recently received a question from Robin Schumacher at Calpont, the makers of the InfiniDB analytics database engine for MySQL: "How would you recommend we try and get bundled in with the various Linux distros?"
Since this question has come up several times before, I thought it might make sense to blog about my take on this.
First of all, please note that there is a difference between "being part of the core distribution" and "being available from a distributor's package repository". The latter one is relatively easy, the former can be hard, as you need to convince the distributor that your application is worth devoting engineering resources to maintain and support your application as part of their product. It's also a space issue – distributions need to make sure that the core packages still fit on the installation media (e.g. CD-ROMs or a DVD). Therefore they take a very close look at each package and if it's really needed to be part of the installation medium or if it's fine to provide it for download from a package repository instead.
Distributors prefer to keep their core product small and restricted to the "basic OS building blocks". While MySQL might still be considered to be a part of this, this probably does not apply to the various plugins and extensions that are available for it. Therefore the best approach is to invest some engineering time and start doing the packaging yourself, either by hiring an engineer capable of creating and maintaining the packages, or by finding someone in your community who has the required experiences and is willing to do it.
While it's of course possible to set up and maintain your own build and package hosting infrastructure for that, I recommend to make use of the existing services provided by the distributors.
The top tier distributors all provide means of offloading the maintenance of "non-core" packages to their community, offering various options for packages to be made available. For example, Novell/openSUSE provide the free "Build Service", which is capable of building packages for other distributions as well (e.g. Fedora, Mandriva, Debian/Ubuntu, etc.). In addition to automating the builds, the Build Service also takes care of the distribution via their download mirror network and ensures that your application can be found via their package search interface.
Ubuntu/Canonical have "Personal Package Archives (PPAs) – if your project is hosted on Launchpad already, that might be something to look into for providing Debian/Ubuntu packages. Alternatively you could join the Debian project and start building and maintaining your package there. They maintain a list of "Work-Needing and Prospective Packages", a description of the process on how to become a new maintainer is outlined here.
If you'd like to target Solaris/OpenSolaris as well, there is the OpenSolaris Source Juicer – a web service which allows OpenSolaris community developers to build packages (using RPM spec files) and publish them for review, so they will be included in an official package repository. The Software Porters Community Group coordinates, advocates, encourages and helps with the porting of Software from multiple Platforms to the OpenSolaris Platform.
Wednesday, March 3. 2010
From the CMake.org home page:
CMake is a family of tools designed to build, test and package software. CMake is used to control the software compilation process using simple platform and compiler independent configuration files. CMake generates native makefiles and workspaces that can be used in the compiler environment of your choice.
CMake is used in some other MySQL projects as well, e.g.
From this version on, CMake can also be used to build MySQL on Linux and other Unix platforms. For the time being, the autoconf/automake files are still available as well, but will be phased out once the CMake build enviroment has reached the desired level of maturity. The change was announced on February 28th on our "internals" developer discussion list.
The purpose of WL#5161 is to simplify the MySQL build system. It is much easier and less error-prone to maintain a unified build system for all platforms than two separate ones.
CMake has been chosen because of several reasons; the worklog description lists a few pro-CMake arguments (slightly rephrased):
I'd like to mention a few additional reasons:
The CMake Wiki lists a number of other "nice to have" features.
From a developer perspective, I hope that it will make it much easier to finally implement two things that many developers working with MySQL have been waiting for (now that the build code has been cleaned up):
Building MySQL with CMake is quite simple and straighforward – the process is outlined on the MySQL Forge Wiki. The document is still work in progress and we'd like to encourage you to take a look at it, try to follow the steps and update/improve the Wiki page, if needed! Your feedback on the build process is appreciated. Feel free to join our internals mailing list to discuss your impressions and observations or submit a bug report via the Bug Database. It's likely that the build still has a few rough edges that we'd like to fix quickly (e.g. BUG#51502 – a fix for this one is already commited to the mysql-next-mr-bugfixing source tree and will be merged into the mysql-next-mr trunk soon).
If you're new to CMake, you might want to take a look at the "Getting Started With CMake (An End-User's Perspective) For Cross-Platform Building" screencast or the "Running CMake" article.
Monday, March 1. 2010
Shortly after I posted my last summary of MySQL releases, our son Mats was born and I went on a 2.5-week vacation. Our developers did not rest in the meanwhile and I'd like to give you a quick update of what's new since then:
Please note that the MySQL downloads section has been split into two parts. As usual, you will find downloads of both GA and development versions of all MySQL products and releases on the MySQL DevZone. In addition to that, we've now added a pointer to the downloads of officially released (GA) versions to the main web site on http://www.mysql.com/downloads/.
Friday, February 5. 2010
Even though things have been a tad bit turbulent around here in the recent weeks, our engineers did not rest and churned out an impressive number of updates and new releases of the MySQL Server and related products.
Here's a quick summary of what we released this year so far (in chronological order):
Monday, December 7. 2009
Last week, my colleagues Giuseppe, Kai and myself attended the SAPO Codebits event in Lisbon, Portugal. Codebits is an annual, invite-only hacking event, which went on for three days. The venue they chose this year was the "Cordoaria", a former rope factory located in the Belém district, close to the 25 de Abril Bridge (which is an impressive sight!). I have been told that the Cordoaria is the longest building in Portugal and I have no doubts about that! The building is so long that the crew used bicycles to get from one end to the other. I've taken a number of pictures from the event as well as from Lisbon itself, you can find them in this flickr set.
The organizers described this year's event as follows:
3 days. 24 hours a day. 600 attendees. Talks. Workshops. Lots of food and beverages. 24 hour programming/hacking competition. Quizz Show. Rock Band Contest. Lots of gaming consoles. More food. More beverages. More coding. Sleeping areas. More fun. An unforgettable experience.
I wholeheartedly agree, we had a great time! The conference started with sessions and presentations on a wide range of topics on the first two days. Afterwards, a 24-hour programming contest was held. I was invited to give two talks, one being my all-time favourite about "MySQL High Availability solutions" (slides, video), the other one was titled "Why you should be using a distributed version control system (DVCS) for your project" (video, slides). Both went quite well and the feedback I received was pretty positive. Giuseppe talked about "MySQL Schema Migration" (slides, video) and gave an "Introduction to Gearman" (video). Kai's talk was titled "Think before you develop" (video) and gave a nice roundup of tips and best practices for setting up and developing new web projects.
The Codebits session schedule was filled with amazing and interesting talks in four parallel tracks. Sometimes it was hard to choose – some other talks I attended and enjoyed:
Walter gave a lockpicking workshop after his presentation, which I attended as well. I was quite impressed (and a bit shocked) to find out how easy many locks can be opened this way! Later that evening there even was a live band named "Pornophonique" playing (one guy with a guitar, the other one using an Nintendo Game Boy for making music), but I missed that show as I was too busy opening more locks... Fortunately the concert and most of the sessions were recorded on video (in excellent quality) and are already available from the SAPO video pages. Kudos for this speedy service!
But this just matches my overall conclusion of this event: very well organized, great speakers and venue. Thanks to the organizers for having us, we really enjoyed our stay!
Posted by Lenz Grimmer in Linux, MySQL, OSS at 15:39 | Comments (2) | Trackbacks (0)
Show tagged entries
Original content in this work is licensed under a Creative Commons License