>Started laying some of the foundation utility modules for the current app I’m working on. Using MooseX::POE because I like the syntax over using MooseX::Declare and MooseX::POE::SweetArgs. I don’t need that much sugar to enjoy my Kool-Aid!
So yeah, put together a simple wrapper class for getting input from a socket connection. I looked at utilizing POEx::Role::TCPClient since that’s exactly the type of thing I’ve written a simplified version of, but it does not seem to work with the current release of POE. *sigh* (The incompatibility seems to be within POEx::Role::SessionInstantiation but I got lost looking down the rabbit hole on that one, maybe I’ll take another look after a few breaths of air).
So anyhow, I got that built then put together an app controller to handle everything. Now I need to do some more thinking on my data requirements as far as what kind of backend is going to be needed. More on that once I can finally nail down a decision on this…
>An interesting week this week, working on a variety of tasks. Unfortunately not all of it Perl related. I did get a chance to spend some time working with Reflex. Overall I really like how it ties into my Moose objects, with the only downside being things were quite flaky at runtime. A quick chat on #reflex reminded me of Rocco’s words from YAPC to use the git version until he has some time to put some polish on his recent changes and push out a release to CPAN.
While this thought was reassuring that things will work better once I pull from git, it also reminded me that I probably can’t really consider using Reflex for any production destined development. This would include my current project. i know POE will get the job done, it’s just not as clean and integrated as Reflex so it would have been nice.
Next week I’ll get back to scoping things out using MooseX::POE and see how it holds up. I think I’m already using that in one of my recent Moose objects and things are running sharply in production so sounds good.
>Ridin’ dirty this evening, writing a quick export script and slumming it without Moosey goodness in my perl. Feels wrong. :) This kind of work makes me appreciate all the work that goes into Moose and what kind of benefits that gives to me and my code.
>Things looked good with building the priority queue for handling web service requests, and I originally implemented it with a plan to provide support for callbacks. Today I decided to use them, but felt things might get too sloppy with everything just being controlled by a Hashref of options/values.
Changed the system to use a WebServiceRequest object instead so I could control what was being passed in while leveraging some of Mooses type checking and coercions. Lovely and simple. Cleans up quite a bit of the handling code. I love it.
I searched through the codebase and found four places where we were using inline UA calls that were blocking. This of course is not a good thing within an event based system (POE in this case), so I’m currently refactoring those to take advantage of the priority queue WebClient module. I’ve finished refactoring two of those, tested and working. Woot. Two more to go.