<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="/styles/rss-style.xsl"?>

<rss version="2.0"
 xmlns:blogChannel="http://backend.userland.com/blogChannelModule"
>

<channel>
<title>houstonperlmongers.org</title>
<link>http://houstonperlmongers.org//posts/e8ffecb3-14d7-11ec-852a-afa5f0bf015a?format=xml</link>
<description>houstonperlmongers.org : /posts/e8ffecb3-14d7-11ec-852a-afa5f0bf015a</description>
<language>en</language>
<pubDate>2026-04-30T17:19:33</pubDate>
<lastBuildDate>2026-04-30T17:19:33</lastBuildDate>

<image>
<title>houstonperlmongers.org</title>
<url>/favicon.ico</url>
<link>http://houstonperlmongers.org</link>
<width>32</width>
<height>32</height>
<description>houstonperlmongers.org favicon</description>
</image>
<item>
<title>Net::Jabber::Bot Project</title>
<link>http://houstonperlmongers.org/posts/e8ffecb3-14d7-11ec-852a-afa5f0bf015a</link>
<description><![CDATA[<div class="content">
    <div id="sidebar">
      <h1 class="heading">Project Lead</h1>
      <p>Todd Rinaldo</p>

      <h1 class="heading">Developers</h1>
      <ul>
        <li>Todd Rinaldo</li>
        <li>Robert Boone</li>
	<li>?</li>
      </ul>
    </div>

    <p>We discussed in the November 2007 meeting Todd doing a presentation of
      <a href="http://search.cpan.org/dist/Net-Jabber-Bot/">Net::Jabber::Bot</a>.
      We also considered the possibility of maintaining the module as a group.
      The following is a summary of the project from Todd.</p>

    <h3 class="subsub">Existing perl Jabber bots in the field</h3>

    <p><a href="http://jpb.sphene.net/wiki/show/JPB">Jpb</a> seemed like a good
    candidate to me originally so I wouldn't have to write my own. The problem
    as I got into it was that the code badly mixed with the config so that I
    would have to alter the modules any time I wanted to change something. I
    decided to write my own.</p>

    <h3 class="subsub"><code>Net::Jabber::Bot</code> Synopsis</h3>

    <p>The module heavily leverages <code>Net::Jabber</code>, which is really
    just a thin shell on top of <code>Net::XMPP</code>. I have developed this
    module over the last few months to allow me to separate out the things one
    wants to do with a bot from the things that can get you in a lot of trouble
    with a bot. The assumption I started with is that most people simply want
    to create a bot that can do something every once and while and that is able
    to react when new messages it cares about are sent. This is what the module
    aims to do.</p>

    <p>Needed code enhancements to the module.</p>

    <ol>
      <li>Needs to be able to react to version requests. This requires being
        able to generate customized messages. This trick is documented between
        <code>Net::XMPP</code> and <code>Net::Jabber</code>, but I lack the
        object-oriented experience to implement it.</li>
      <li>Needs to be able to tell what messages are just history messages.
        Currently the bot does this by ignoring everyone for a period on startup.
        I consider this to be a hack at the moment that sometimes fails if the
        server is slow.</li>
      <li>Make test is a mess. Almost all of the tests require a jabber server
        to be present. This is making the modules tests to look very red on the
        automated CPAN testers site. Robert and Wade told me I should be
        programming to the interface. This sounds like a grand plan but I have
        no idea what it means :)</li>
      <li>Some of my design decisions could use a closer look as to some of the
        values being hard coded, etc. Originally I envisioned a
        <code>Net::Jabber::Bot</code> being inherited from
        <code>Net::Jabber::Bot::Safety</code>, but I decided to just merge the
        2 ideas. I'd love to explore if the choice I made was a good one.</li>
      <li>Currently the module is initialized and connections are made via a new
        being fed a hash from hell. It feels like a kludgy approach to me at the
        moment.</li>
      <li>The re-connect algorithm seems to have issues</li>
      <li>While it's perfectly safe to connect to a jabber server with the same
        username, it's very dangerous to the server to connect with the same
        user/resource. Unfortunately I haven't figured out a way to detect that
        I'm doing this. As a result I've been "chastised" by server admins for
        not noticing that I hadn't killed the old bot when I started the new
        one up.</li>
      <li>Ability to add/leave forums at times other than startup. Probably a
        good candidate for removal from new. I don't know what to look for to
        detect if the join succeeded. Right now I'm just assuming the room
        joins succeed.</li>
    </ol>

    <h3 class="subsub">Documentation need</h3>
    <ol>
      <li>POD documentation is a little loose on the existing subs. I'm not
        documenting the private ones at all except for a few comments in the
        file. Not sure what the etiquette is on this. I really don't think
        they should be showing up on CPAN and if I pod them, they will.</li>
      <li>Need code examples on how to leverage the bot. This is pretty easy to
        provide, but I haven't reverse engineered someone else's CPAN to figure
        out how they do this to make it look right in CPAN.</li>
    </ol>

    <h3 class="subsub">Hosted Project</h3>

    <p>The <a href="http://code.google.com/p/perl-net-jabber-bot/">perl-net-jabber-bot
      project</a> is currently hosted on the Google Code site.</p>

  </div>]]></description>
<author>Nobody</author>
<guid isPermaLink="true">http://houstonperlmongers.org/posts/e8ffecb3-14d7-11ec-852a-afa5f0bf015a</guid>
<pubDate>2007-12-01T17:49:22</pubDate>
<enclosure url="http://houstonperlmongers.org/posts/e8ffecb3-14d7-11ec-852a-afa5f0bf015a" type="text/html" />
</item>
<item>
<title>Net::Jabber::Bot Project</title>
<link>http://houstonperlmongers.org/posts/1196531362</link>
<description><![CDATA[<div class="content">
    <div id="sidebar">
      <h1 class="heading">Project Lead</h1>
      <p>Todd Rinaldo</p>

      <h1 class="heading">Developers</h1>
      <ul>
        <li>Todd Rinaldo</li>
        <li>Robert Boone</li>
	<li>?</li>
      </ul>
    </div>

    <p>We discussed in the November 2007 meeting Todd doing a presentation of
      <a href="http://search.cpan.org/dist/Net-Jabber-Bot/">Net::Jabber::Bot</a>.
      We also considered the possibility of maintaining the module as a group.
      The following is a summary of the project from Todd.</p>

    <h3 class="subsub">Existing perl Jabber bots in the field</h3>

    <p><a href="http://jpb.sphene.net/wiki/show/JPB">Jpb</a> seemed like a good
    candidate to me originally so I wouldn't have to write my own. The problem
    as I got into it was that the code badly mixed with the config so that I
    would have to alter the modules any time I wanted to change something. I
    decided to write my own.</p>

    <h3 class="subsub"><code>Net::Jabber::Bot</code> Synopsis</h3>

    <p>The module heavily leverages <code>Net::Jabber</code>, which is really
    just a thin shell on top of <code>Net::XMPP</code>. I have developed this
    module over the last few months to allow me to separate out the things one
    wants to do with a bot from the things that can get you in a lot of trouble
    with a bot. The assumption I started with is that most people simply want
    to create a bot that can do something every once and while and that is able
    to react when new messages it cares about are sent. This is what the module
    aims to do.</p>

    <p>Needed code enhancements to the module.</p>

    <ol>
      <li>Needs to be able to react to version requests. This requires being
        able to generate customized messages. This trick is documented between
        <code>Net::XMPP</code> and <code>Net::Jabber</code>, but I lack the
        object-oriented experience to implement it.</li>
      <li>Needs to be able to tell what messages are just history messages.
        Currently the bot does this by ignoring everyone for a period on startup.
        I consider this to be a hack at the moment that sometimes fails if the
        server is slow.</li>
      <li>Make test is a mess. Almost all of the tests require a jabber server
        to be present. This is making the modules tests to look very red on the
        automated CPAN testers site. Robert and Wade told me I should be
        programming to the interface. This sounds like a grand plan but I have
        no idea what it means :)</li>
      <li>Some of my design decisions could use a closer look as to some of the
        values being hard coded, etc. Originally I envisioned a
        <code>Net::Jabber::Bot</code> being inherited from
        <code>Net::Jabber::Bot::Safety</code>, but I decided to just merge the
        2 ideas. I'd love to explore if the choice I made was a good one.</li>
      <li>Currently the module is initialized and connections are made via a new
        being fed a hash from hell. It feels like a kludgy approach to me at the
        moment.</li>
      <li>The re-connect algorithm seems to have issues</li>
      <li>While it's perfectly safe to connect to a jabber server with the same
        username, it's very dangerous to the server to connect with the same
        user/resource. Unfortunately I haven't figured out a way to detect that
        I'm doing this. As a result I've been "chastised" by server admins for
        not noticing that I hadn't killed the old bot when I started the new
        one up.</li>
      <li>Ability to add/leave forums at times other than startup. Probably a
        good candidate for removal from new. I don't know what to look for to
        detect if the join succeeded. Right now I'm just assuming the room
        joins succeed.</li>
    </ol>

    <h3 class="subsub">Documentation need</h3>
    <ol>
      <li>POD documentation is a little loose on the existing subs. I'm not
        documenting the private ones at all except for a few comments in the
        file. Not sure what the etiquette is on this. I really don't think
        they should be showing up on CPAN and if I pod them, they will.</li>
      <li>Need code examples on how to leverage the bot. This is pretty easy to
        provide, but I haven't reverse engineered someone else's CPAN to figure
        out how they do this to make it look right in CPAN.</li>
    </ol>

    <h3 class="subsub">Hosted Project</h3>

    <p>The <a href="http://code.google.com/p/perl-net-jabber-bot/">perl-net-jabber-bot
      project</a> is currently hosted on the Google Code site.</p>

  </div>]]></description>
<author>Nobody</author>
<guid isPermaLink="true">http://houstonperlmongers.org/posts/1196531362</guid>
<pubDate>2007-12-01T17:49:22</pubDate>
<enclosure url="http://houstonperlmongers.org/posts/1196531362" type="text/html" />
</item>
</channel>
</rss>
