dancing with perl

in the past couple of weeks, i’ve started looking into the dancer framework. so far, i like what i’ve seen.

the most obvious difference between this and, say, catalyst, has been the simpler nature and availability of server implementation documentation. it is also structured very much like my homebrewed framework i’ve been using for years, which made it relatively easy to jump into.

setting up an app with by-url authorization and simple authentication was really easy, and having public and private parts of an app is pretty simple as well. the really nice thing is that all the objects and packages i’ve written for other web apps will be able to plug into this with a minimum of fuss, so the migration pains will be relatively minor.

with this in mind, i’ve paused most of my ongoing projects while i look into porting all of the code over to this new framework. turns out this isn’t a huge problem as i’ve had a bad case of coder’s block lately. but this has gotten me excited about a couple of new projects i want to start, so i’m going to be digging into it a lot more over the next few weeks.

dancing with perl

iphive – demo

i’ve got a demo instance of iphive running, so if you want to see how it works feel free to email me and i can get you access to try it out. the demo is using the latest version of the code as of 2011.4.4 and is using private address space for the example database.

the next version is being written to accommodate IPv6, and will also have better user-accounting facilities to better track the who-does-what aspect of inventory management. at that time i’ll also be upgrading to the newest version of the mite framework, which will unlock a whole slew of possible enhancements and improvements.

iphive – demo

Chart::Clicker

while working on my webgame project, i found myself wanting to graph some data. since i like perl, i poked about looking for the best module to use for this purpose, and rediscovered Chart::Clicker. i also remembered why some of the docs for it looked so familiar – i wrote them.

this is actually a pretty sweet module, though it isn’t exactly fast or easy to use. being slow is an issue with clicker that appears to have gotten better over the past couple of years, but it still isn’t snappy enough for live web usage in some cases. being hard to use is more a problem with charting software in general. that’s the curse of charting modules on cpan; none of them are easy to jump into. those that are pretty simple are either no longer maintained, or break once there’s a version increase in one of their dependencies.

i’m ok with each module having a different way of doing things; that’s why we have different modules. i’m even ok with some of them being undocumented, though this shouldn’t be taken to mean that’s a good thing. i can read the source if i have to, and 10% of the time i’ll actually get that far without discarding the module in frustration. examples of both code and the generated images are super useful for these modules, but only a couple actually seem to make that effort.

too bad, too. in my particular case i’ve tried three different modules for what i’m trying to do, and each one has some flaw that makes it undesirable for production deployment. this is the kind of thing that makes people roll their own and upload another charting kit.

Chart::Clicker

fireverse

fireverse is a stellar conquest civ-type webgame. the current version (alpha6.2011.1.21) is written on top of the mite framework in perl, and uses mysql for a backend data model.

graphics are generated dynamically in svg format, though png conversion is available for those browsers that don’t support svg yet.

fireverse

stsdb – about

stsdb (simple time series database) is an idea implemented in a perl module for storing, and easily accessing, time series data of any kind. This is largely meant as an alternative to rrdtool for those that don’t like having the the same tool do the data storage and presentation, and also isn’t so draconian in the inputs accepted. It also allows for non-numeric data to be stored if required.

The backend storage is actually via sqlite, with each datasource being a table within the database, and a meta table to handle, well, metadata. Data retrieval is simple and relatively quick, and presented simply in order to be useful to a wide variety of applications.

Combined with modules like Chart::Clicker, this makes for a pretty decent rrdtool replacement for many uses.

here is the genesis of the project.

stsdb – about