Saturday, February 28, 2009


registering upload with PAUSE web server
POSTing upload for TAEB-0.01.tar.gz
PAUSE add message sent ok [200]

Friday, February 27, 2009

Code stats

TAEB's AI is pluggable. Most development happens on the Behavioral AI (though there exists another actively-developed AI called Planar by ais523). Since Behavioral is also considered TAEB, I've included its stats here too. A core stat is labeled with [c] and a behavioral AI stat is labeled with [b].

Logical lines of code: 12,299 = 10,077 [c] + 2222 [b]
Commits: 4699 = 4536 [c] + 163 [b]

Sartak commits: 2918 = 2817 [c] + 101 [b]
doy commits: 1029 = 1005 [c] + 24 [b]
sorear commits: 252 = 220 [c] + 32 [b]

Committers: 14 (Sartak, doy, sorear, Sebbe, arcanehl, sawtooth, Jerub, ais523, dho, futilius, bd, Zaba, toft, HanClinto)

.pm files: 164 = 126 [c] + 38 [b]
tar size: 1020K = 844K [c] + 176K [b]

Pretty pictures of TAEB development

I ran Don Stewart's darcs-graph data visualization tool over the main TAEB repositories today. Provides a nice picture of the "burstiness" of TAEB development:

Note: TAEB-AI-Behavioral was part of TAEB before 2009-01-24.

Modules written and improved for TAEB

While working on TAEB, the authors have worked on several other projects to add features and fixes, as well as start new projects. Here's a list of new modules written by TAEB hackers to make TAEB better:
  • MooseX::Singleton

    Sartak rewrote MooseX::Singleton from its unreleased "around new" state; others have built upon it. TAEB has since moved to MooseX::ClassAttribute due it be being faster and better.

  • MooseX::Role::Matcher

    doy wrote MooseX::Role::Matcher as a generalization of old item match code.

  • Tie::Handle::TtyRec

    Sartak wrote this to give TAEB ttyrec output without having to worry about the ttyrec format.

  • Games::Mastermind::Cracker

    Sartak wrote this so that TAEB wouldn't have to use his original C program to open the castle drawbridge.

  • Log::Dispatch::Twitter

    Sartak wrote this to automatically tweet TAEB errors and TAEB deaths.

  • Log::Dispatch::Channels

    doy wrote this to give TAEB an arbitrary number of logfiles with no fuss. Simply writing to a new log name creates a new logfile.

  • NetHack::Item
  • NetHack::Menu
  • NetHack::FOV
  • NetHack::Monster::Spoiler
  • All written for expressly TAEB. They've been factored out so that they could have sane test suites and be useful to other projects. NetHack::Item in particular is a gargantuan redesign of TAEB's old item code to fix a number of flaws.

And now a list of modules improved by TAEB hackers for TAEB:

  • Moose

    Sartak and doy have contributed a lot to Moose just for TAEB. (TAEB was Sartak's first Moose application, even)

  • Devel::REPL

    Sartak added quite a few plugins to make TAEB's debug REPL better.

  • IO::Socket::Telnet

    Sartak wrote the original version for Interhack. Added callbacks and made some improvements on day one of TAEB development.

  • IO::Pty::Easy

    doy wrote the original version for Interhack. Made many fixes found through constant use by TAEB.

  • Continuity

    Sartak made the debug logging pluggable to put debug messages from Continuity into TAEB's logfiles.

  • PadWalker

    doy submitted a patch to PadWalker ( #41710) to fix a crashbug tickled a lot in TAEB's REPL.

0.01 release

Since the 0.01 release of TAEB is forthcoming, I figured I'd put together a place for us to goof around.