My initial plans got waylaid! I didn't pull out the checksumming code first, because the code wasn't at all as I remembered it. Instead, I began writing code to handle the more abstract problem of accepting two sets of rows, finding the differences, and doing something with them. I'm ending up with a little more complicated system than I thought I would. However, it's also significantly simpler in some ways. Instead of just passing references to subroutines to use as callbacks, I'm object-ifying the entire synchronization concept...
Tomorrow is the first of five days I will spend working on mk-table-sync, the data synchronization tool I developed as part of Maatkit. The first thing I’ll do is pull the row-checksumming code out into a module and write a unit test suite for it. I’ll probably add the code to the module [...]
Si Chen wrote recently about the growth limits of open-source projects. He points out that as a project becomes larger, it gets harder to maintain. I can only agree. As the MySQL Toolkit project has grown, it's become significantly more work to maintain, document, and enhance.
Last week I wrote about my efforts to measure MySQL's replication speed precisely. The most important ingredient in that recipe was the user-defined function to get the system time with microsecond precision. This post is about that function, which turned out to be surprisingly easy to write.
I'm attending the Google Test Automation Conference (GTAC 2007) in Manhattan, New York right now. It's a two-day single-track event hosted by Google, with mostly non-Google speakers. It's okay, but not great.
(define luhn-check (lambda (ccn) (define csum 0) (define num 0) (do ((i (string-length ccn) (- i 1))) ((<= i 0) (print csum)) (set! num (string->number (substring ccn (- i 1) i))) (if (> (modulo i 2) 0) (begin (set! num ( * 2 num)) (if (> num 9) (set! num (- num 9))))) (set! csum (+ num csum)) ))) ;; test case (luhn-check “4561261212345467″)
And here is implemented with MySQL.
Of course you’ve heard about the fabulous pybots project, where community members have a distributed network of computers continuously testing every change in the development version of python against the development version of many different python applications. This ensures that any compatibility problems are caught early, well before the next version of python is released.
I’ve just about finished getting storm, the newly open sourced python object-relational mapper that we are using with Launchpad and Landscape, added into the pybots test suite. Just need to finish reading through an 18MB test log to figure out what I did wrong in the test script for the psycopg2 installation, and we should be all set, with storm being tested against MySQL, Postgresql, and SQLite. Rumour has it that Firebird support is coming soon (perhaps even …
[Read more]
In my last post I’ve asked for any help on my project. So, tanks
to Jay Pipes for his tip.
One of most developer problems is documentation. And a good
solution was initially appeared in Java with javadoc. At now many
languages have special javadoc-like tools. I’ve made a little
research, and decided to use jsdoc and
phpdoc in my
project. I am still open for any suggestions
So, now I am working on this project. This project is a part of google SoC. I believe in the end it should be something like mysql workbench, but web-two-zerofied. At current moment there is not much to look into (http://myweber.googlecode.com/svn/trunk/). But I will be very grateful to you for any comments, questions and suggestions.
Brian Aker was a recent guest on the LinuxCast podcast with Don Marti. Brian has some interesting thoughts in this podcast and elsewhere on his blog, on motivations for writing Free and/or Open Source software. Here's why I do it myself.