Website health checks are a crucial service to an operations team. In addition to in-house monitoring and service state reporting it’s also important, even critical, to have an impartial third party to run checks to test your customer facing services. There are a lot of companies in this arean that would be glad to have [...]
Mark Callaghan asks Can a protocol be GPL?, after finding a
disturbing comment in a source file: Any re-implementations of
this protocol must also be under GPL, unless one has got an
license from MySQL AB stating otherwise.
I recall talking with one of the company lawyers about this
matter, and he assured me that the GPL can't be used for a
protocol, and that's why this notice was dropped from MySQL.com
site a few years ago, even before the Sun acquisition.
This is thus an embarrassing piece of ancient history (which will
hopefully be removed soon) that has been in our files for
long time. For how long?
If we get the source trees from the public bazaar …
- Common MySQL Queries -- a useful reference.
- MySociety's Next 12 Months -- two new projects, FixMyTransport and "Project Fosbury". The latter is a more general tool to help people organise their own campaigns for change.
- riak -- scalable key-value store with JSON interface. (via joshua on Delicious)
- Notes from NoSQL Live Boston -- full of juicy nuggets of info from the NoSQL conference.
…
[Read more]
You can store things for later! drizzle> select
libtcc("#include <string.h>\n#include <stdlib.h>\nint
foo(char* s) { char *a= malloc(1000); return
snprintf(s, 100, \"%p\", a); }") as RESULT;
+-----------+ | RESULT | +-----------+ | 0x199c610 | +-----------+ 1 row in set (0 sec)
drizzle> select libtcc("#include
<string.h>\n#include <stdlib.h>\nint foo(char* s) {
char *a= 0x199c610; strcpy(a, \"Hello World!\");
strcpy(s,\"done\"); return strlen(s); }") as result;
+--------+ | result | +--------+ | done | +--------+ 1 row in set (0.01 sec)
drizzle> select libtcc("#include
<string.h>\n#include <stdlib.h>\nint foo(char* s) {
char *a= 0x199c610; strcpy(s, a); return
strlen(s); }") as result;
+--------------+ | result | +--------------+ | Hello World! | +--------------+ 1 …[Read more]
So, just in case that wasn’t evil enough for you… perhaps you have something you want to know the MD5 checksum of. So, you could just do this:
drizzle> select md5('Hello World!'); +----------------------------------+ | md5('Hello World!') | +----------------------------------+ | ed076287532e86365e841e92bfc50d8c | +----------------------------------+ 1 row in set (0 sec)
But that is soooo boring.
Since we have the SSL libs already loaded into Drizzle, and using my very evil libtcc plugin… we could just implement it in C. We can even use malloc!
drizzle> SELECT LIBTCC("#include …
Previously, in “Thoughts on Thoughts on Drizzle” I theorized that one of the major reasons why we did not see lots of people jumping at stored procedures in MySQL was that it wasn’t in their native language (for lack of a better term). We’ve seen External Language Stored Procedures for MySQL that let you write stored procedures in some other languages…. but I felt something was missing.
Firstly, I wanted a language I was really familiar with and comfortable writing complex things in.
Secondly, it should be compiled so that it runs as fast as possible.
Thirdly, it shouldn’t just be linking to a pre-compiled library (drizzle function plugins do that …
[Read more]We have an early draft of a new tool available for you to use and test. It uses heuristics to find problems in SQL. Please use it and give feedback! Here’s how:
$ wget http://www.maatkit.org/trunk/mk-query-advisor
$ perl mk-query-advisor /var/log/mysql/slow.log
By default it consumes a log file in MySQL’s slow query log format, but it can also parse the general-log format, and if you have any other kind of log you can feed it through mk-query-digest to transform the log into something it can recognize. Tell me if you’d be able to spot the mixture of join styles and use of leading % wildcards in the following query without help:
# Query ID 0x643E813A9ABDA151 at byte 2001701
# CRIT JOI.001 Mixing comma and ANSI joins.
# WARN ARG.001 Argument with leading wildcard.
SELECT `rhubarb_series_title`.`id`, `rhubarb_series_title`.`series_id`, …
[Read more]
I keep seeing "Memcached is not a key value store. It is a cache.
Hence the name." This is strongly reinforced by statements made
in the memcached mailing list itself.
This is short sighted.
Memcached is a number of things. It is an idea (fast key value
store, with distributed hash function scaling), it is a network
protocol (two of them, in fact), it is a selection of client
libraries and APIs (most based on libmemcached), and it is a
server implementation. In fact, now, is is now a number of server
implementations, because now there are a number of different
things that implement the memcached protocol.
Only one of which is the open source community edition of the
memcached server, version 1.4, downloadable from
http://memcached.org/
Despite what you may get told, especially on the memcached
mailing list, you can in fact use memcached as a store, not just
as a cache.
…
A couple months ago Selena Deckelmann asked if I wanted to co-chair the Open Source Bridge Conference this year, and I was thrilled to say yes! This conference is all volunteer run by some of the most dedicated volunteers I have ever seen, I’m excited to be working with such a fantastic group of people. The conference is also backed by the 501(c)3 non-profit Technocation which is primarily run by Sheeri Cabral who is well known in the MySQL community.
The conference is June 1-4 in Portland, OR, and will be held at the Portland Art Museum. The …
[Read more]
I will be at the MySQL Conference in Santa Clara in a few weeks in
the middle of April. This will be my fourth time there. Gear6 is going to be there
as a sponsor, and some of my coworkers will be presenting, and I
will probably share some stage time with them as they do.
My first time, was my first time. I was still working solo, as an
independent. I met many MySQL-sphere people who are now personal
friends, as well as being industry peers and contacts. I gave the
talk that "put me on the map", for a project that was my
opportunity to learn about distributed version control, cloud
computing, Amazon Web Services, MySQL internals, and MySQL
storage engines. I would look at the presentation schedule, and
usually not even understand the titles.
My second year, I was working as part of MySQL Professional
Services. …