Catching Up

The first multi-user test took place three weeks ago. The result has kept me pretty busy. As expected, it bombed. I had four browsers open on two machines. Ballots were filled out and ready to go, mice in position. I clicked “cast ballot” as fast as I could and watched the screens go into never never land. It didn’t freeze up the site, but nearly everything timed out.

My answer was to focus on rapid ballot posting while dispensing with a “hard” Irving table altogether. Now the back end part of the Chart generation is done with one View and a big sproc. The new approach got me very excited because it opens up what should be a fairly clean strategy for set-based filters. In other words, on-the-fly displays of partisan subsets is just over the horizon. Wooohoo! MySQL doesn’t make it easy to pass subquery strings as parameters, unfortunately, but where there’s a will there’s a way.

The tradeoff of the new approach is slower reads of election results. So far, the penalty is only tenths of a second, while voting goes much much faster. Not bad at all. But there’s still no clue how things will play out with thousands of votes in the system. Some polls at the Daily Kos break the 12,000 barrier in a matter of days. That’s the test: Does Indaba.org break that barrier, or does it break before it gets even half that far? Hard Irving tables still might come in handy over the long run, if need be. They could be refreshed periodically (say every 15 miinutes) and would be the default choice when viewing a poll. I just need to take some time to study up on chron jobs and how to finesse MySQL transactions.

There have also been some big changes at Index.php. The idea is to provide an overview of what’s available and in the works. It’s better than hitting first-timers with a bewildering display of colored bars and lines. (If you’re not color blind already, you may be after you try to track a ten round runoff.)

Right now I’m working on state management and login security. Set my very first cookie last night around 9:30 PM. I’ve also been nipping around the edges of the nomination technology, which is actually a key motivation of this project. I found a tool called “ActiveWidgets” that may provide the interface I’ve got in mind, but I won’t be playing with it any time soon. For the time being I’m focused on creating new elections without cheating… That means going through an operational and reasonably secure web interface rather than cutting to the chase with a query browser and a SQL insert script. My approach has bee pretty standard so for, except that dealing with that piece of the puzzle got me thinking about setting up pseudo-namespaces to constrain the candidate pools available to people making nominations.

I’d love to know how other people do this kind of stuff.

Leave a Reply

You must be logged in to post a comment.