Query and Chart Builder?

Some time ago, I was looking at tools for building graphs and charts from database tables. Someone sent me a link to a commercial product that was aimed at delivery to non-programmers, allowing you to drill down to pre-existing graphs/charts and even customize queries to build your own.

The ideal thing for handing off charts to management and producers.

We didn’t have a perceived need for it at the time and I can’t find the freakin’ link for the life of me (sorry, Bloo). No, it wasn’t jpgraph (which is a programmer tool).

Any ideas?

I might be misremembering that it was web-based, it might have been an actual application. And no, I’m not thinking of Excel ;)

Async::Worker: Parallelism with ZeroMQ

I’ve put the source to my Async::Worker system, documentation and examples here.

From the examples, how to offload batches of work for processing in parallel:

    int main(int argc, const char* const argv[])
    {
        static const size_t NumberOfElements = 20000000 ;
        static const size_t GroupSize = 8192 ;
        Numbers numbers ;
        numbers.resize(NumberOfElements) ;
        for ( size_t i = 0 ; i < NumberOfElements ; ++i )
        {
            numbers[i] = (rand() & 65535) + 1 ;
        }

        uint64_t parallelResult = 0 ;

        // Dispatch groups of numbers to workers.
        Numbers::iterator it = numbers.begin() ;
        do
        {
            Numbers::iterator end = std::min(it + GroupSize, numbers.end()) ;
            Async::Queue(new CrunchNumbersRange(it, end, &parallelResult)) ;
            it = end ;
        }
        while ( it != numbers.end() ) ;

        // Wait for all the results, calling Result() on each
        // returned object to produce a total.
        Async::GetResults() ;

        printf("Done. Calculated sum as %lu.\n", (unsigned long int)parallelResult) ;

        return 0 ;
    }

More on ZeroMQ

ZeroMQ is the messaging infrastructure I mentioned a little while back.

I’ve had a little opportunity to dabble with it now and, I have to say, I’ve taken to it. The interface is really nice and lean. It’s “core standard” too – it looks like sockets, it plays like sockets. It plays nicely with real sockets. The O/S can schedule around it like sockets – which is a huge boon on just about every OS running today.

And it’s incredible frugality and minimalism helps achieve  impressive performance: one of my (-O0) unit tests manages to pump an incredible 65,000 messages from one thread and back to the original thread in under 1 millisecond, running on a virtual Ubuntu 10.04 on a physical core-2-duo.

Status update

So incase it wasn’t obvious … I’m in recovery mode from the conclusion of 1.31 that saw me working on 1.30-china, 1.31-US and 1.32-rebase, all at once, and with the ever-so-slight possibility that the cell hosts were not going to work at all…

(kfs1 = leela, gophur/rafter/Happyoo/docdoom/bloo = fry)

So I’m not actually assigned or working on my 1.32 stuff yet. I spent Saturday setting up a Doxygen project for the code, and re-working some utility modules to help with game parallelization that I started on a year ago. Spent Sunday merging my last months worth of 1.31 changes back into the baseline, and then realized I also had to merge what I’d just done.

Victory! In Lua!

I don’t remember exactly what triggered it, a combination of things – waiting for several slow SVN updates, the game compiling in the background, and an email from Doc to the production and godsofwar mailing lists were on-hand when I started.

So I started hashing out a system way to describe Victory Conditions in Lua.

Automating unit test generation?

Currently I’m using a homespun Unit Test system that I developed before I looked at any others so I would have a clear idea of my own pre-conceptions when reviewing The Real Thing.

Some time ago, I found this excellent article on C++ Unit Testing. Given that I created my system for a similar benchmarking purpose, I still find it clunky.

Despite Noel’s indepth review, I still find all of those he linked, and the one he himself has since created, just as clunky. I feel we both set the bar too low for an “ideal” testing suite.

Maybe this is the maintenance programmer in me, but I think Unit Testing and documentation should go hand-in-hand.

USPS Baffler.

Its old news that the USPS is in financial trouble, and that junk mail is not just a vein of income for them but pretty much their jugular…

But in a world where we pay for tap water and sewage,  for the electricity we need to run the air conditioning that makes the buildings we live in habitable, even just the ability to receive phone calls…

Not being from here, this may just be another dumb question but … Why do we not pay for our mailbox? It seems, kinda, un-American…

More Wars…

Just to complete the set; last year’s E3 cinematic for Old Republic.

There’s also the splendiferously long Walkthrough Trailer (Note: 10 months old) …

Pardon the politics…

Didn’t we give a large amount of bailout money to the same Wall St companies we are now hitting with big fines.

Case in point, AIG:  bailout $150 Billion,  fined $725 Million (0.5%)

Here’s the part that really confounds me:

A first payment of $175m is scheduled within days of the court’s approval, however, while AIG is expected to raise the further $550m th[r]ough the issuing of new shares.

So the company was found guilty and fined. The first payment will be 1/1000th of the cost we bought 80% of the company for a year ago, and presumably will be paid out of that money. The rest they will pay by devaluing the bailout shares – by getting more suckers to invest in them…

Wouldn’t that make the fact they’re going to pay their fine by issuing new shares equivalent to a thief telling the judge he’ll pay bail “right after I nip next door to the jewelry store…”?

Is it not a bit like Bernie Madoff offering to compensate his victims with shares in a new enterprise he’s setting up … ?

Caveat: I’m asking questions, I am genuinely confused by this issue and poorly informed.

Kitten + Diarrhea + Power outage = ?

Right now I’d love me the smell of some napalm =/