A picture says it all. Special offers at a FrOSCon books
booth.
For how long is an IT book in its prime?
Over in Maatkit-land, Daniel Nichter and I practice test-first programming, AKA test-driven development. That is, we write tests for each new feature or to catch regressions on each bug we fix. And — this is crucial — we write the tests before we write the code.* The tests should initially fail, which is a validation that the new code actually works and the tests actually verify this. If we don’t first write a failing testcase, then our code lacks a very important guarantee: “if you break this code, then the test case will tell you so.” (A test that doesn’t fail when the code fails isn’t worth writing.)
Most of the time when I do this, I write a test, it fails because I haven’t written any code yet, and I then go do some kind of …
[Read more]
I'm pleased to announce the release of DBD::mysql 4.008!
This release contains several fixes, particularly the issue where
TAKE_IMP_DATA_VERSION being defined allowed code features to be
compiled in that caused potential grief for anyone running DBI
< 1.60x (segfault). I've disabled this for the time being
until I find a better solution.
I've also decided from now on, as soon as I get a patch, or if I
fix something, even if it is a minute change, I'm rolling out a
release. Release early and often, right!?
The changes in this release are:
* Multi statement patch (fixes multi statement issues), thanks to
Chris Heath!
* Disabled TAKE_IMP_DATA_VERSION because segfault with DBI <
1.607
* #29528: bind_param(..., SQL_FLOAT) ignores exponents - fixed,
Thanks to
Tokuhiro Matsuno!
* Cleanups to make mysqlEmb work under Cygwin - Thanks to Chris
Rodgers
…
I recently added two new packages to my repository on the openSUSE Build Service:
- Maatkit is a collection of essential command-line utilities for MySQL. Each is completely stand-alone, without dependencies other than core Perl and the DBI drivers needed to connect to MySQL, and doesn't need to be "installed" - you can just execute the scripts. This makes the tools easy to use on systems where you can't install anything extra, such as customer sites or ISPs.
- protobuf - Protocol Buffers - Google's data interchange format. Protocol Buffers are a way of encoding structured data in an efficient yet extensible format. Google uses Protocol …
Maatkit version 2152 is ready for download. This release is also known as the “is this project really alive?” release. We thought we should delay until MySQL released a new Community Server version. Just kidding — it has nothing to do with that.
This release is also very significant in that it’s the first one that has large code contributions by someone other than myself. As you may know, Percona (my employer) has hired the very talented Daniel Nichter, author of mysqlreport and other goodies, to help with Maatkit. So far it is a match made in heaven, and Daniel did …
[Read more]
Keith Murphy asks if you have ever edited your dump files before feeding them to
the database. And he recommends using sed. This reminds me
of a war story, when I was consulting in Milan. The customer
needed, among other things, to import a huge text file (created
by a third party application) into a MySQL database. I did
everything, including a cron job to load the data every day. By
the time I left for the airport, the third party application
hadn't yet provided its first sample, but since we knew the
fields list, it was a simple case of creating a LOAD DATA INFILE
command.
I was boarding my plane, when the customer called, saying that
the application was giving dates in the wrong format. Instead of
'YYYY-MM-DD', it was using the Italian human readable format
'DD/MM/YYYY'. No Internet was available, and with just a few
minutes …
The last keynote of Tuesday evening at OSCon 2008 was entitled “Temporarily Quaquaversal Virtual Nanomachine Programming in Multiple Topologically Connected Quantum-Relativistic Parallel Timespaces…..Made Easy!”
Damian Conway is a speaker that should not be missed. He spends his time hacking perl to do fascinating and obscure feats of technology such as time travel. This video is just over an hour of rolling laughter that will entertain you into realizing what a genius Damian Conway is.
Now, most of my exposure is within the MySQL Community, so if folks could pass the links to the video along to other communities, that would be great.
(This video is at 1.0 Mb/sec. Watch the video online at http://technocation.org/node/571/play or download it at …
[Read more]I am happy to announce that a new version (0.9) of mylvmbackup has been released. This is the first release since the source code has been moved from Subversion to Bazaar and is now hosted on Launchpad.net. I would like to thank Robin H. Johnson and Patrick Hahn for providing the patches that contributed to this new release!
mylvmbackup is a tool for quickly creating backups of MySQL server's data files. To perform a backup, mylvmbackup obtains a read lock on all tables and flushes all server caches to disk, makes an LVM snapshot of the volume containing the MySQL data directory, and unlocks the tables again. The snapshot process takes only a small amount of time. When it is done, the server can continue normal operations, while the actual file backup proceeds.
From the …
[Read more]JFYI: today I migrated the mylvmbackup source tree from my local Subversion repository on http://www.lenzg.org/ to a Bazaar repository on Launchpad.net.
This will hopefully make it easier for contributors to work on the code and share their modifications with others, removing me as the bottleneck for applying and testing patches for new releases. I chose Bazaar primarily because I wanted to get some more hands-on practice with it, now that the MySQL Server source trees have been transferred to it as well (see Kaj's announcement for …
[Read more]Baron Schwartz wrote a neat article on MySQL’s pager command yesterday. As a followup, I thought I would post what I use as my default PAGER environmental variable. It simply substitutes mk-visual-explain for MySQL’s EXPLAIN command and uses less if the output is taller than your current terminal window (note, this currently [...]