I recently needed to configure mysql failover on some of our test machines. Thanks to Sheeri’s helpful blog entry which provides a simple failover lua script, configuring failover is a simple matter. However, the machines are running centos-5.2 and centos doesn’t provide an rpm for mysql-proxy. This blog entry describes how to build your own.
The latest mysql-proxy (0.6.1) is apparently not backward-compatible with 0.6.0 and earlier. It incorrectly handles the case when one of the backend machines is down. Instead of just marking it as down, it errors out completely. This makes it rather difficult to use it for failover scenarios. People have complained about this for a while. Bugs 34793 and 35295 track the problem, but the fix has not yet been made available in a pubicly downloadable release. Due to this problem, I recommend using mysql-proxy-0.6.0 instead.
mysql-proxy-0.6.0 has several package-level dependencies. It requires libevent-1.4.x or newer. If you want to use lua, then lua is of course required. Since centos ships with an old version of libevent and does not ship with lua at all, we will need to build those rpms as well.
There are several steps needed to build mysql-proxy:
- prepare rpmbuild
- build libevent-1.4.7
- build lua-5.1.4
- build mysql-proxy-0.6.0
Prepare rpmbuild
If you haven’t built your own rpms before, you need to specify the directory in which rpmbuild should do its work.
$ mkdir -p ~/rpmbuild/BUILD ~/rpmbuild/RPMS ~/rpmbuild/RPMS/i386 $ mkdir -p ~/rpmbuild/SOURCES ~/rpmbuild/SPECS ~/rpmbuild/SRPMS $ echo "%_topdir $HOME/rpmbuild" > ~/.rpmmacros
Install the rpm-build rpm so that you can run /usr/bin/rpmbuild.
$ sudo yum install rpm-build
Build libevent-1.4.7
The main site is http://monkey.org/~provos/libevent/
Unfortunately, libevent does not ship with an RPM spec file.This is rather irritating since it means users have to either build their own rpm spec file or find someone else who has written one. I found an old spec file on the dag.wieers.com site but it was out of date and did not work with libevent-1.4.7. It would be much better if the spec file were checked into the code repository with the code so that they could be versioned together.
I took the spec file from dag.wieers and then had to spend some time to update the RPM spec file so that it would work. It’s now available here for your convenience but I’m not planning on being an official maintainer for it.
First get the libevent source and unzip it.
$ wget http://monkey.org/~provos/libevent-1.4.7-stable.tar.gz $ tar xzf libevent-1.4.7-stable.tar.gz $ mv libevent-1.4.7-stable libevent-1.4.7
Copy the spec file:
$ cp /tmp/libevent.spec /tmp/libevent-1.4.7/
Tar up the libevent directory with the new spec file and build the RPMs:
$ tar zcf /tmp/libevent-1.4.7.tar.gz libevent-1.4.7 $ rpmbuild -ta /tmp/libevent-1.4.7.tar.gz
Install the libevent rpm:
$ sudo rpm -ivh /home/jcheyer/rpmbuild/RPMS/x86_64/libevent-1.4.7-1.x86_64.rpm
Build lua-5.1.4
The main site is http://www.lua.org/
Like with libevent, lua also does not ship with an RPM spec file. People have asked for it to be included, and there were the inevitable disagreements about whether it should go in or not. So once again I had to waste time updating the spec file on my own. I found a spec file on the dag.wieers.com site which of course was out of date. I’ve updated the spec file here.
First get the lua source tarball and unzip it:
$ wget http://www.lua.org/ftp/lua-5.1.4.tar.gz $ tar zxf lua-5.1.4.tar.gz $ mv lua-5.1.4.tar.gz lua-5.1.4.tar.gz.0
Copy the RPM spec file:
$ cp ~/lua.spec /tmp/lua-5.1.4/
Tar up the lua directory with the new spec file.
$ tar zcf lua-5.1.4.tar.gz lua-5.1.4/
Build the RPMs. The lua package requires ncurses-devel and readline-devel (only while building the RPM).
$ sudo yum install ncurses-devel readline-devel $ rpmbuild -ta /tmp/lua-5.1.4.tar.gz $ sudo rpm -e --allmatches ncurses-devel readline-devel
Install the lua rpm.
$ sudo rpm -ivh ~/rpmbuild/RPMS/x86_64/lua-5.1.4-1.x86_64.rpm
Build mysql-proxy-0.6.0
Do not install mysql-proxy-0.6.1. As I mentioned earlier, it is broken and the failover lua scripts do not work with it. The main site and other useful info are available if you want to read up on mysql-proxy.
First download the file.
$ wget http://dev.mysql.com/get/Downloads/MySQL-Proxy/mysql-proxy-0.6.0.tar.gz/from/http://mysql.osuosl.org/
The mysql-proxy package requires mysql-devel (only while building the RPM).
$ sudo yum install mysql-devel
The mysql-proxy package also requires the libevent-devel RPM that you just built. It’s
only needed while building the mysql-proxy RPM.
$ sudo rpm -ivh ~/rpmbuild/RPMS/x86_64/libevent-devel-1.4.7-1.x86_64.rpm
The good news is that mysql-proxy ships with an up-to-date RPM spec file, so you don’t need to do
anything extra. Just build the rpm.
$ rpmbuild -ta /tmp/mysql-proxy-0.6.0.tar.gz $ sudo rpm -e --allmatches libevent-devel mysql-devel
Now you can install mysql-proxy:
$ sudo rpm -ivh ~/rpmbuild/RPMS/x86_64/mysql-proxy-0.6.0-0.x86_64.rpm
Enjoy your new version of mysql-proxy compiled for centos-5.2!
Tags: centos, failover, lua, MySQL, mysql-proxy
Last month, I had the opportunity to have dinner at Pizzaiolo’s Wood Fired Pizza in Oakland with my friend Jeff Varasano. For those of you who don’t know Jeff, he has become somewhat infamous for reverse-engineering Patsy’s pizza and has a single-page website with all kinds of details about how to make great pizza. He was recently featured in the NYTimes Dining and Wine section. His hometown paper, the Atlanta Journal-Constitution also published an article about him.
In addition to my brother and me, Jeff had invited another dozen or so pizza afficionados from the Bay Area. Many of the people at the table had been making pizza using Jeff’s recipe for several years. They had interesting stories to tell of how they went about making pizza at home, such as by using a modified bbq grill.
We enjoyed the pizza at Pizzaiolo very much. Jeff ordered many of the pizzas on the menu and we tried pizzas with an assortment of different toppings. As usual with neopolitan pizza, my favorite turned out to be the margherita pizza. As we were eating our way through our fifth or six piece, owner Charlie Hallowell came over, introduced himself to the table, and chatted with Jeff. Apparently Charlie is aware of Jeff’s pizza page and wanted to make sure that Jeff knew him too.
Later in the evening, the discussion turned to other great pizza places in the bay area. The person next to me mentioned that he thought the best pizza in San Francisco is a place named Pizzeria Delfina, located on 18th street in the Mission. I’m planning on checking it out the next time that I go to the city.
Update: Jeff just sent me an email after seeing this blog and told me to skip Delfina.
Tags: margherita, Pizza, pizzaiolo, varasano
RHEL/CentOS does not ship with rdiff-backup, and the existing well-known RPM sites only have really old versions. Even the version of rdiff-backup on the Red Hat extras (EPEL) site was last updated over a year ago (July 2007). These instructions work for rdiff-backup-1.2.0 and librsync-0.9.7.
Here are the steps to get it built:
1. Set up your rpmbuild directories:
$ mkdir -p ~/rpmbuild/BUILD ~/rpmbuild/RPMS ~/rpmbuild/RPMS/i386 $ mkdir -p ~/rpmbuild/SOURCES ~/rpmbuild/SPECS ~/rpmbuild/SRPMS $ echo "%_topdir $HOME/rpmbuild" > ~/.rpmmacros
2. Build librsync
2.1 Download latest librsync source code
http://librsync.sourceforge.net/
2.2 Build an rpm from librsync source code. The current version (0.9.7, released 2004-10-10) has a few problems which cause the standard rpmbuild command to fail. We’ll need to fix the librsync.spec file before building an rpm.
2.3 Fix the librsync.spec file.
$ tar zxf /tmp/librsync-0.9.7.tar.gz $ vi librsync-0.9.7/librsync.spec
a) Change the “Version:” tag value to 0.9.7 (it’s accidentally set at 0.9.6)
b) Change the “Copyright:” tag name to “License:”
c) Change the “Source:” tag from its existing value:
http://prdownloads.sourceforge.net/librsync/librsync-0.9.6.tar.gz?download”
to the following:
http://prdownloads.sourceforge.net/librsync/librsync-0.9.7.tar.gz
2.3.1 I found some information that claimed if you are running selinux, then you must add the “–enable-shared” line to the configure script:
./configure --prefix=/usr --mandir=/usr/share/man/ --enable-shared
For details, see this post:
http://www.mail-archive.com/rdiff-backup-users@nongnu.org/msg03171.html
However, when adding that line, I wasn’t able to get the rpmbuild to complete. The error that I received was:
Checking for unpackaged file(s): /usr/lib/rpm/check-files /var/tmp/librsync-0.9.7-root error: Installed (but unpackaged) file(s) found: /usr/lib/librsync.so /usr/lib/librsync.so.1 /usr/lib/librsync.so.1.0.2
I had to give up on this approach and elected to try a different workaround to make rdiff-backup run on selinux. See Instruction 5 for more info.
2.4 Move the old librsync tarball out of the way and tar up the modified one.
$ mv /tmp/librsync-0.9.7.tar.gz /tmp/librsync-0.9.7.tar.gz.0 $ tar zcf /tmp/librsync-0.9.7.tar.gz librsync-0.9.7/
2.5 Build the rpm file from the modified tarball.
$ rpmbuild -ta /tmp/librsync-0.9.7.tar.gz
2.6 Install the librsync and librsync-devel rpms
$ sudo rpm -ivh ~/rpmbuild/RPMS/i386/librsync-0.9.7-1.i386.rpm $ sudo rpm -ivh ~/rpmbuild/RPMS/i386/librsync-devel-0.9.7-1.i386.rpm
3. Build rdiff-backup
3.1 Download latest rdiff-backup source code (1.2.0 released 2008-07-27)
http://www.nongnu.org/rdiff-backup/
3.2 Build an rpm from rdiff-backup source code.
$ rpmbuild -ta /tmp/rdiff-backup-1.2.0.tar.gz
3.3 Install the rdiff-backup rpm
$ sudo rpm -ivh ~/rpmbuild/RPMS/i386/rdiff-backup-1.2.0-1.i386.rpm
4. Clean up work. Optionally, you can remove your rpmbuild directory since you don’t need it anymore.
$ rm -fr ~/rpmbuild/ ~/.rpmmacros
5. If you are running selinux, you need to fix the selinux perms before running rdiff-backup. This is the workaround I mentioned earlier since I couldn’t get librsync to compile as described in step 2.3.1.
$ sudo chcon -t textrel_shlib_t /usr/lib/python2.4/site-packages/rdiff_backup/_librsync.so
Tags: centos, rdiff-backup, rpm
Time moves quickly when changes occur. I’ve had plenty of changes recently to keep me busy.
The most exciting news is that my wife and I have added a new member to our family! I know it’s cliche to say that having a kid will change your life, but it is definitely true in ways I didn’t anticipate. Luckily for us, he’s made it very easy on us. Ever since the moment he was born, he’s been a joy to be around. I know it is anathema to speak of it, but we’re even getting plenty of sleep.

The other news is that I’ve returned to the software engineering world. I just started a job at Yahoo! in Santa Clara and will be back in the world of enterprise Java. After spending several years branching out and learning about the mobile space (Motorola) and open source community management (Solid), It will be fun to return to my roots.
flagyl online
buy flagyl
vardenafil
buy vardenafil
vardenafil online
sildenafil citrate
sildenafil
buy sildenafil citrate
buy sildenafil
propecia
buy propecia
order propecia
cheap propecia
propecia online
buy propecia online
lasix
buy lasix
lasix online
purchase lasix
accutane
buy accutane
accutane online
cheap accutane
buy accutane online
diflucan
buy diflucan
diflucan online
viagra
buy viagra
buy viagra online
viagra online
discount viagra
order viagra
cheap viagra
acomplia
buy acomplia
buy acomplia online
acomplia online
tadalafil
buy tadalafil
levitra
buy levitra
order levitra
cheap levitra
discount levitra
buy cheap levitra
levitra online
levitra order
buy levitra online
cheap levitra online
generic levitra
soma
buy soma
order soma
cheap soma
discount soma
buy cheap soma
soma online
soma order
buy soma online
cheap soma online
generic soma
buy carisoprodol
order carisoprodol
carisoprodol online
cheap carisoprodol
vardenafil
buy vardenafil
order vardenafil
cheap vardenafil
discount vardenafil
buy cheap vardenafil
vardenafil online
vardenafil order
buy vardenafil online
cheap vardenafil online
generic vardenafil
cialis
buy cialis
order cialis
cheap cialis
discount cialis
buy cheap cialis
cialis online
cialis order
buy cialis online
cheap cialis online
generic cialis
viagra
buy viagra
order viagra
cheap viagra
discount viagra
buy cheap viagra
viagra online
viagra order
buy viagra online
cheap viagra online
generic viagra
cheap viagra
viagra soft
buy viagra soft
order viagra soft
cheap viagra soft
discount viagra soft
buy cheap viagra soft
viagra soft online
viagra soft order
buy viagra soft online
cheap viagra soft online
generic viagra soft
viagra soft tabs
soft tab viagra
viagra soft tab
generic viagra soft tabs
finasteride
buy finasteride
order finasteride
cheap finasteride
discount finasteride
buy cheap finasteride
finasteride online
finasteride order
buy finasteride online
cheap finasteride online
generic finasteride
sildenafil
buy sildenafil
order sildenafil
cheap sildenafil
discount sildenafil
buy cheap sildenafil
sildenafil online
sildenafil order
buy sildenafil online
cheap sildenafil online
generic sildenafil
sildenafil citrate
lasix
buy lasix
order lasix
cheap lasix
discount lasix
buy cheap lasix
lasix online
lasix order
buy lasix online
cheap lasix online
generic lasix
cialis soft
buy cialis soft
order cialis soft
cheap cialis soft
discount cialis soft
buy cheap cialis soft
cialis soft online
cialis soft order
buy cialis soft online
cheap cialis soft online
generic cialis soft
cialis soft tabs
cialis soft tab
generic cialis soft tabs
tadalafil
buy tadalafil
order tadalafil
cheap tadalafil
discount tadalafil
buy cheap tadalafil
tadalafil online
tadalafil order
buy tadalafil online
cheap tadalafil online
generic tadalafil
tadalafil citrate
propecia
buy propecia
order propecia
cheap propecia
discount propecia
buy cheap propecia
propecia online
propecia order
buy propecia online
cheap propecia online
generic propecia
levitra
buy levitra
order levitra
cheap levitra
discount levitra
buy cheap levitra
levitra online
levitra order
buy levitra online
cheap levitra online
generic levitra
soma
buy soma
order soma
cheap soma
discount soma
buy cheap soma
soma online
soma order
buy soma online
cheap soma online
generic soma
buy carisoprodol
order carisoprodol
carisoprodol online
cheap carisoprodol
vardenafil
buy vardenafil
order vardenafil
cheap vardenafil
discount vardenafil
buy cheap vardenafil
vardenafil online
vardenafil order
buy vardenafil online
cheap vardenafil online
generic vardenafil
cialis
buy cialis
order cialis
cheap cialis
discount cialis
buy cheap cialis
cialis online
cialis order
buy cialis online
cheap cialis online
generic cialis
viagra
buy viagra
order viagra
cheap viagra
discount viagra
buy cheap viagra
viagra online
viagra order
buy viagra online
cheap viagra online
generic viagra
cheap viagra
viagra soft
buy viagra soft
order viagra soft
cheap viagra soft
discount viagra soft
buy cheap viagra soft
viagra soft online
viagra soft order
buy viagra soft online
cheap viagra soft online
generic viagra soft
viagra soft tabs
soft tab viagra
viagra soft tab
generic viagra soft tabs
finasteride
buy finasteride
order finasteride
cheap finasteride
discount finasteride
buy cheap finasteride
finasteride online
finasteride order
buy finasteride online
cheap finasteride online
generic finasteride
sildenafil
buy sildenafil
order sildenafil
cheap sildenafil
discount sildenafil
buy cheap sildenafil
sildenafil online
sildenafil order
buy sildenafil online
cheap sildenafil online
generic sildenafil
sildenafil citrate
lasix
buy lasix
order lasix
cheap lasix
discount lasix
buy cheap lasix
lasix online
lasix order
buy lasix online
cheap lasix online
generic lasix
cialis soft
buy cialis soft
order cialis soft
cheap cialis soft
discount cialis soft
buy cheap cialis soft
cialis soft online
cialis soft order
buy cialis soft online
cheap cialis soft online
generic cialis soft
cialis soft tabs
cialis soft tab
generic cialis soft tabs
tadalafil
buy tadalafil
order tadalafil
cheap tadalafil
discount tadalafil
buy cheap tadalafil
tadalafil online
tadalafil order
buy tadalafil online
cheap tadalafil online
generic tadalafil
tadalafil citrate
propecia
buy propecia
order propecia
cheap propecia
discount propecia
buy cheap propecia
propecia online
propecia order
buy propecia online
cheap propecia online
generic propecia
levitra
buy levitra
order levitra
cheap levitra
discount levitra
buy cheap levitra
levitra online
levitra order
buy levitra online
cheap levitra online
generic levitra
soma
buy soma
order soma
cheap soma
discount soma
buy cheap soma
soma online
soma order
buy soma online
cheap soma online
generic soma
buy carisoprodol
order carisoprodol
carisoprodol online
cheap carisoprodol
vardenafil
buy vardenafil
order vardenafil
cheap vardenafil
discount vardenafil
buy cheap vardenafil
vardenafil online
vardenafil order
buy vardenafil online
cheap vardenafil online
generic vardenafil
cialis
buy cialis
order cialis
cheap cialis
discount cialis
buy cheap cialis
cialis online
cialis order
buy cialis online
cheap cialis online
generic cialis
viagra
buy viagra
order viagra
cheap viagra
discount viagra
buy cheap viagra
viagra online
viagra order
buy viagra online
cheap viagra online
generic viagra
cheap viagra
viagra soft
buy viagra soft
order viagra soft
cheap viagra soft
discount viagra soft
buy cheap viagra soft
viagra soft online
viagra soft order
buy viagra soft online
cheap viagra soft online
generic viagra soft
viagra soft tabs
soft tab viagra
viagra soft tab
generic viagra soft tabs
finasteride
buy finasteride
order finasteride
cheap finasteride
discount finasteride
buy cheap finasteride
finasteride online
finasteride order
buy finasteride online
cheap finasteride online
generic finasteride
sildenafil
buy sildenafil
order sildenafil
cheap sildenafil
discount sildenafil
buy cheap sildenafil
sildenafil online
sildenafil order
buy sildenafil online
cheap sildenafil online
generic sildenafil
sildenafil citrate
lasix
buy lasix
order lasix
cheap lasix
discount lasix
buy cheap lasix
lasix online
lasix order
buy lasix online
cheap lasix online
generic lasix
cialis soft
buy cialis soft
order cialis soft
cheap cialis soft
discount cialis soft
buy cheap cialis soft
cialis soft online
cialis soft order
buy cialis soft online
cheap cialis soft online
generic cialis soft
cialis soft tabs
cialis soft tab
generic cialis soft tabs
tadalafil
buy tadalafil
order tadalafil
cheap tadalafil
discount tadalafil
buy cheap tadalafil
tadalafil online
tadalafil order
buy tadalafil online
cheap tadalafil online
generic tadalafil
tadalafil citrate
propecia
buy propecia
order propecia
cheap propecia
discount propecia
buy cheap propecia
propecia online
propecia order
buy propecia online
cheap propecia online
generic propecia
levitra
buy levitra
order levitra
cheap levitra
discount levitra
buy cheap levitra
levitra online
levitra order
buy levitra online
cheap levitra online
generic levitra
soma
buy soma
order soma
cheap soma
discount soma
buy cheap soma
soma online
soma order
buy soma online
cheap soma online
generic soma
buy carisoprodol
order carisoprodol
carisoprodol online
cheap carisoprodol
vardenafil
buy vardenafil
order vardenafil
cheap vardenafil
discount vardenafil
buy cheap vardenafil
vardenafil online
vardenafil order
buy vardenafil online
cheap vardenafil online
generic vardenafil
cialis
buy cialis
order cialis
cheap cialis
discount cialis
buy cheap cialis
cialis online
cialis order
buy cialis online
cheap cialis online
generic cialis
viagra
buy viagra
order viagra
cheap viagra
discount viagra
buy cheap viagra
viagra online
viagra order
buy viagra online
cheap viagra online
generic viagra
cheap viagra
viagra soft
buy viagra soft
order viagra soft
cheap viagra soft
discount viagra soft
buy cheap viagra soft
viagra soft online
viagra soft order
buy viagra soft online
cheap viagra soft online
generic viagra soft
viagra soft tabs
soft tab viagra
viagra soft tab
generic viagra soft tabs
finasteride
buy finasteride
order finasteride
cheap finasteride
discount finasteride
buy cheap finasteride
finasteride online
finasteride order
buy finasteride online
cheap finasteride online
generic finasteride
sildenafil
buy sildenafil
order sildenafil
cheap sildenafil
discount sildenafil
buy cheap sildenafil
sildenafil online
sildenafil order
buy sildenafil online
cheap sildenafil online
generic sildenafil
sildenafil citrate
lasix
buy lasix
order lasix
cheap lasix
discount lasix
buy cheap lasix
lasix online
lasix order
buy lasix online
cheap lasix online
generic lasix
cialis soft
buy cialis soft
order cialis soft
cheap cialis soft
discount cialis soft
buy cheap cialis soft
cialis soft online
cialis soft order
buy cialis soft online
cheap cialis soft online
generic cialis soft
cialis soft tabs
cialis soft tab
generic cialis soft tabs
tadalafil
buy tadalafil
order tadalafil
cheap tadalafil
discount tadalafil
buy cheap tadalafil
tadalafil online
tadalafil order
buy tadalafil online
cheap tadalafil online
generic tadalafil
tadalafil citrate
propecia
buy propecia
order propecia
cheap propecia
discount propecia
buy cheap propecia
propecia online
propecia order
buy propecia online
cheap propecia online
generic propecia
levitra
buy levitra
order levitra
cheap levitra
discount levitra
buy cheap levitra
levitra online
levitra order
buy levitra online
cheap levitra online
generic levitra
soma
buy soma
order soma
cheap soma
discount soma
buy cheap soma
soma online
soma order
buy soma online
cheap soma online
generic soma
buy carisoprodol
order carisoprodol
carisoprodol online
cheap carisoprodol
vardenafil
buy vardenafil
order vardenafil
cheap vardenafil
discount vardenafil
buy cheap vardenafil
vardenafil online
vardenafil order
buy vardenafil online
cheap vardenafil online
generic vardenafil
cialis
buy cialis
order cialis
cheap cialis
discount cialis
buy cheap cialis
cialis online
cialis order
buy cialis online
cheap cialis online
generic cialis
viagra
buy viagra
order viagra
cheap viagra
discount viagra
buy cheap viagra
viagra online
viagra order
buy viagra online
cheap viagra online
generic viagra
cheap viagra
viagra soft
buy viagra soft
order viagra soft
cheap viagra soft
discount viagra soft
buy cheap viagra soft
viagra soft online
viagra soft order
buy viagra soft online
cheap viagra soft online
generic viagra soft
viagra soft tabs
soft tab viagra
viagra soft tab
generic viagra soft tabs
finasteride
buy finasteride
order finasteride
cheap finasteride
discount finasteride
buy cheap finasteride
finasteride online
finasteride order
buy finasteride online
cheap finasteride online
generic finasteride
sildenafil
buy sildenafil
order sildenafil
cheap sildenafil
discount sildenafil
buy cheap sildenafil
sildenafil online
sildenafil order
buy sildenafil online
cheap sildenafil online
generic sildenafil
sildenafil citrate
lasix
buy lasix
order lasix
cheap lasix
discount lasix
buy cheap lasix
lasix online
lasix order
buy lasix online
cheap lasix online
generic lasix
cialis soft
buy cialis soft
order cialis soft
cheap cialis soft
discount cialis soft
buy cheap cialis soft
cialis soft online
cialis soft order
buy cialis soft online
cheap cialis soft online
generic cialis soft
cialis soft tabs
cialis soft tab
generic cialis soft tabs
tadalafil
buy tadalafil
order tadalafil
cheap tadalafil
discount tadalafil
buy cheap tadalafil
tadalafil online
tadalafil order
buy tadalafil online
cheap tadalafil online
generic tadalafil
tadalafil citrate
propecia
buy propecia
order propecia
cheap propecia
discount propecia
buy cheap propecia
propecia online
propecia order
buy propecia online
cheap propecia online
generic propecia
levitra
buy levitra
order levitra
cheap levitra
discount levitra
buy cheap levitra
levitra online
levitra order
buy levitra online
cheap levitra online
generic levitra
soma
buy soma
order soma
cheap soma
discount soma
buy cheap soma
soma online
soma order
buy soma online
cheap soma online
generic soma
buy carisoprodol
order carisoprodol
carisoprodol online
cheap carisoprodol
vardenafil
buy vardenafil
order vardenafil
cheap vardenafil
discount vardenafil
buy cheap vardenafil
vardenafil online
vardenafil order
buy vardenafil online
cheap vardenafil online
generic vardenafil
cialis
buy cialis
order cialis
cheap cialis
discount cialis
buy cheap cialis
cialis online
cialis order
buy cialis online
cheap cialis online
generic cialis
viagra
buy viagra
order viagra
cheap viagra
discount viagra
buy cheap viagra
viagra online
viagra order
buy viagra online
cheap viagra online
generic viagra
cheap viagra
viagra soft
buy viagra soft
order viagra soft
cheap viagra soft
discount viagra soft
buy cheap viagra soft
viagra soft online
viagra soft order
buy viagra soft online
cheap viagra soft online
generic viagra soft
viagra soft tabs
soft tab viagra
viagra soft tab
generic viagra soft tabs
finasteride
buy finasteride
order finasteride
cheap finasteride
discount finasteride
buy cheap finasteride
finasteride online
finasteride order
buy finasteride online
cheap finasteride online
generic finasteride
sildenafil
buy sildenafil
order sildenafil
cheap sildenafil
discount sildenafil
buy cheap sildenafil
sildenafil online
sildenafil order
buy sildenafil online
cheap sildenafil online
generic sildenafil
sildenafil citrate
lasix
buy lasix
order lasix
cheap lasix
discount lasix
buy cheap lasix
lasix online
lasix order
buy lasix online
cheap lasix online
generic lasix
cialis soft
buy cialis soft
order cialis soft
cheap cialis soft
discount cialis soft
buy cheap cialis soft
cialis soft online
cialis soft order
buy cialis soft online
cheap cialis soft online
generic cialis soft
cialis soft tabs
cialis soft tab
generic cialis soft tabs
tadalafil
buy tadalafil
order tadalafil
cheap tadalafil
discount tadalafil
buy cheap tadalafil
tadalafil online
tadalafil order
buy tadalafil online
cheap tadalafil online
generic tadalafil
tadalafil citrate
propecia
buy propecia
order propecia
cheap propecia
discount propecia
buy cheap propecia
propecia online
propecia order
buy propecia online
cheap propecia online
generic propecia
Solid has released 5.0.45-0077. New features include full support for prefix indexes and support for multiple NULLs on unique indexes. This release also has a number of bug fixes. For the full detailed list of bug fixes and enhancements, please see the ChangeLog. Check it out at http://dev.soliddb.com/download
By now, word has gotten around that MySQL has made some more changes to their process around MySQL Community Server. The changes primarily focus on:
- acceptance of community contributions (5.0 and 5.1 are now locked for contributions, so any contributions won’t be available until 5.2 or later)
- release schedule of community server (”Mature GA”, meaning 5.0, will have approximately 4 source builds per year and 2 binary builds; new GA, meaning 5.1, will have a binary build once per month)
These refinements of the community server [process] are detailed in Kaj Arnö’s blog. Not everyone is happy about the new plan for acceptance of community contributions, because it means that community enhancements have to wait a long time to see the light of day. Jeremy Cole has talked about the frustrations that this causes and calls the Enterprise/Community split a failure. These refinements are interesting are definitely worthy of discussion, but I’ll leave that aside for another time.
What’s wrapped up inside of the announcement about “Refining Community Server” is something not related to Community Server at all: “The current Enterprise source tarballs will be removed from ftp.mysql.com.” Perhaps it’s just me, but it feels a lot like what often happens in political bills, where a politician tries to add 4 good things and squeeze in one bad thing in the same bill (download movies, movies online). They are either hoping that no one will notice, or that perhaps it’s an easier pill to take when a little sugar is applied. Kaj responded to Jeremy with the expected response of “not much changed” and “it’s for the better anyway” message. But it’s worth taking a closer look.
Placing the source tarballs behind a closed door doesn’t keep it closed with the GPL. Everyone knows (and Kaj acknowledges) that the GPL guarantees the right of any person who receives a binary to obtain and re-distribute the source tarballs to the world. So what’s the big deal about hiding Enterprise source tarballs behind a password-protected site that only customers can access?
It’s about the importance of being earnest in what you do. Being an open source company is about a lot more than just slapping a GPL license on your software and handing it out. It’s about building a relationship with the community that is using, playing, testing, and improving your software. As anyone who is married knows well, this can only be done through ongoing, continual trust and transparency between the two parties. Trust is built by being dependable, and by telling the other person things that sound honest and real. Trust is improved by transparency, which is opening yourself to the other person. Adding an artificial means of inconvenience to the community in obtaining bits does nothing to help customers and only reduces transparency as seen by the community.
MySQL has a goal of of positioning their software as: “Community Server for community users, Enterprise Server for paying usersâ€. This makes sense from a marketing and sales perspective, and I have no argument with it at that level. After all, companies deserve to make money for their efforts, and customers need to understand what they are paying for when they buy Enterprise Server. They get a great deal for a cheap cost when they buy a license, because it includes all kinds of services: updates, technical alerts, technical support, troubleshooting, assistance with tuning, and many other services. They are also getting cool features and stability which came as a direct result of feedback from the community. Most of all, customers are paying for the comfort in knowing they have an experienced team to call and help when they have a problem. But customers aren’t paying for bits. The bits are Free Software and infinitely re-distributable, so there isn’t any money to be made by trying to make bits appear part of the sale.
From a technical standpoint, dividing source code based on “paying customers” and “community” simply doesn’t make any sense. Customers want source code typically for one reason: “just in case” (in case your company disappears). Community wants source code to learn from, experiment with, play with, improve, fix, argue about, comment on, and many other things. The division of code drives down the quality of the Enterprise Edition for customers, and it drives down the motivation of the community to provide the necessary feedback and improvements.
As the transparency decreases, the distrust increases. On the #mysql-dev IRC channel yesterday, I worried about what might happen if the current transparency continues to decrease and MySQL decides some day to release their Enterprise Server code under a proprietary license instead of the GPL. Where will that leave the community, if they know that the work they help to provide under the Community Server gets repackaged at a later date under a proprietary Enterprise Server? Kaj quickly responded by saying he personally would commit to keeping it open.
[13:46] <cheyer> kaj: are you willing to commit that MySQL does not have any intention to change the license for Enterprise to a non-open source license in the near future?
[13:46] <kaj> cheyer: I am
Much to Kaj’s credit, he did indeed address this in his blog today. But would MySQL AB be willing to publicly commit to this as a company by plac
Spammers continue to find new ways to do their business and new ways to cause frustration for those of us who administer software that fosters small, open communities. These communities are fragile and grow up in a delicate environment. The environment needs to remain open: self-registration, the ability to post content, and the option of remaining anonymous is the key to success. Unfortunately, it is also a ripe environment for spammers to abuse.
Spammers have now discovered that bugzilla is one of those environments. For those who don’t know, bugzilla is one of the most common open source bug tracking tools. It is used by many open source projects to allow the community to assist in reporting bugs on and enhancement ideas for each project. The original version of Bugzilla was first created at Netscape in the mid-nineties (back when I was working at Netscape). It was rewritten in 1998 and made available as open source). After AOL bought Netscape, it became one of a number of projects released by the Mozilla Foundation. Although bugzilla continues to be used by many projects, development of bugzilla itself became somewhat stagnant over the years. It hasn’t kept up with the times and as such, has practically no support for handling spam in the 2007 world. (Version 3.0 just came out in May 2007, nine years after version 2.0 came out.)
At Solid, we’ve been using Bugzilla to track bugs for our solidDB for MySQL product. Around April, people from other open source projects such as Samba, XFCE, and Eclipse started having problems with spammers adding spam as attachments to existing bugs in their bugzilla bug tracking databases. I didn’t notice the problem until Solid got its first bugzilla spam last week (July). I was used to cleaning out spam every day from Solid’s forums, but dealing with spam in Bugzilla is extremely difficult and annoying.
I first tried to upgrade to the new Bugzilla 3.0 in our development instance to see if that would be able to help with the spam problem. Although 3.0 does have support for deleting attachments (finally!), it still takes too many clicks to delete attachments. Spammers can create attachments automatically, and I get stuck with the manual work. In addition, Bugzilla still doesn’t support deleting comments, which spammers can also easily create and place inappropriate content into. Deleting bugs is also not supported, which is also an easy target for spammers to hit. Even trying to delete a user (the spammer) gives a scary message that warns you not to do it or risk causing referential integrity problems in your database (what kind of choice is that?).
After some testing, I decided it wasn’t worth upgrading to 3.0 for the minimal help it would give. It seems like it should pretty easy to write a small script that automatically deletes all data associated with a spammer, while still keeping referential integrity intact. So that’s what I decided to do. I now have a bugzilla_spammer.rb script (written in Ruby) that helps me keep spam in Bugzilla in check.
What Bugzilla really needs is full application support for protecting against the increasingly sophisticated methods that spammers use to bypass applications. It would be much better to stop spam from getting into Bugzilla in the first place. My program does not help with that at all. It does, however, provide a simple way for you to remove the junk created by spammers that gets entered into your Bugzilla, once it is there. This should be a good enough workaround until the Bugzilla developers add some serious spam protection that will help protect again current-day spammes techniques. If you want this feature, please let them know it’s important. And if you’re interested in doing some coding, offer to help! A bug has already been filed against Bugzilla about this problem - bug 380489.
Update: Several people from the Bugzilla team (thanks, Max Kanat-Alexander and Frédéric Buclin!) have pointed out that it is possible to delete a bug in Bugzilla. I should have been more clear, but what I meant was that it is not easy or practical to delete a bug. Deleting a bug requires creating a new product and component and then moving the bug into that product and finally deleting the entire product. And it still doesn’t help in the case that the spammer adds a comment to an existing bug.
I’ve had the following quote on my blog for a while:
It is better to remain silent and be thought a fool than to open one’s mouth and remove all doubt” Abraham Lincoln
It was pointed out to me that the attribution of that quote should have been to Mark Twain, not Abraham Lincoln. I started wondering if that could be true. I certainly did not want to propagate a misquote. Even after doing some searching on the web, I still was not able to determine the answer to my satisfaction. Bartleby, where I usually go to check quotes, did not have the quote at all. A number of sites attribute the quote to Lincoln, and just as many attribute the quote to Mark Twain. Still other sites attribute to someone else altogether. I was not able to find any reliable citations on any site. Even Ask Yahoo came up empty.
The quote is clearly derived from a much earlier quote found in Proverbs 17:28 in the Míshlê Shlomoh in the Tanakh.
A few randomly selected sites showing one or the other:
Alas, we’ll have to make do enjoying the quote without proper attribution.
A few of us from Solid are up in Portland at OSCON. We’ll be showing off a new prototype of our high availability (HA) option for solidDB for MySQL. The HA option allows solidDB for MySQL to act in a hot-standby configuration where there is a primary and secondary server. The data in the primary is automatically synchronously replicated to the secondary. In the case that the primary fails, our HA Manager automatically performs a failover and the secondary server becomes the new primary. The secondary is also always available for read-only requests.
We’ll also be talking about DorsalSource, a community-focused Web site whose goal is to provide developers with easy access to builds of MySQL and related products. Come by booth 820 on Wednesday or Thursday if you want to hear more, download movies, movies online.
Solid has released 5.0.41-0073. This release has a number of bug fixes and performance improvements. For the full detailed list of bug fixes and enhancements, please see the ChangeLog.
This is the “collation” release! 5.0.41-0073 supports the UTF8 and UCS2 character sets. In particular, the following collations have been added: {utf8,ucs2}_{bin,general_ci,unicode_ci,swedish_ci}
There is also now full support for all collations in the latin1 character set.
Check it out at http://dev.soliddb.com/download