Terrifying Productivity

mdxi on 2005-04-10T17:39:32

Over the past 48 hours I have finished the first batch of Mint docs (now awaiting feedback before proceeding with coding), fixed up my online diary, converted its RSS feed to 2.0 compliance, and written about half of the newsreader I described in my last post.

For the record, I am told that NNW will do what I desire. However, I don't have any machines running OS X (the old Pismo is much sprightlier running Linux and Ratpoison), and it's more fun to write one myself anyway.

I sat down just after midnight and just started working on a basicc 2-pane interface, then I just sort of kept going. 4 hours later it has a story listing pane, story view pane, working story selector, status bar, and can fetch documents over the network and display them. All it's missing is the intelligence part -- everything its working with is hardcoded dummy data (hardcoded URIs in the case of fetching documents). Still, I am extremely impressed with myself, and I have strategies for all the unwritten logic. Plus it looks totally sweet.

It's not the lightweight you might be expecting from the "curses" keyword, though. Since it's using Perl's Curses::UI bindings and the LWP, it's currently using about 10-12M of memory (8-9M real), and the RSS parser (XML::RSS::Parser) hasn't been put in yet. OTOH, I'm betting that with all these heavyweight modules in place, the actual data generated during use won't amount to anything noticable.

Overall, Curses::UI is a joy. The biggest problem is that while the docs are pretty good, the included tutorial is really short and doesn't even begin to cover everything you can do. There's lots of example code included as well, which is a big help, but the problem I've found myself running into a lot is trying to figure out which widget to use for a task I need doing (hint: ListBox, usually). Luckily, it's Perl, so trial-and-error doesn't cost too much. Generating everything on the fly seems to come at a definite price though: on my workstation, which is a 1667MHz Athlon, everything is completely instantaneous, but over an ssh session to deneb (400MHz UltraSPARC IIe) things like drawing in the help popup feel like they're happening over a fast serial or laggy ethernet connection. You can see parts of the window draw in, not character-by-character, but in a series of quick pops.


Re:

Aristotle on 2005-04-12T17:47:05

Remember to run your feed through the feed validator, if you have not done so already.