And Still going!

Well carrying on from my last post lets get a little idea what the SQLDataAccessor was suppose to be doing. It was part of a larger system called DataAccessor that was attempting to provide a common CRUD front end to a number of data sources. There was SQLDataAccessor, SIPDataAccessor of course and NTFSDataAccessor and I think an OLEDataAccessor as well. At the time a rather novel idea.

On top of this access layer there was a Java bean layer (abstract classes really) then a java servlet *.do layer (remember good old Apache Jakarta) and then finally the front end and for that we had a web version in JSP a Java App for desktop and phone (very early days) and a WAP stack as well.

My part of the team I guess would be called bit player as my job at the time was to create most of the beans and thus an endless stream of init statements à la,

find "stale" processes on linux / unix servers

Sometimes for some reasons processes on your server work unexpectedly long or don't die on time, this might cause many issues basically because of your server resources start to exhaust.

Stale-proc-check is sparrow plugin to show you if any some "stale" processes exists on your server. It depends on ps utility , so will probably work on many linux/unix boxes ...

Below is short manual.

INSTALL

$ sparrow plg install stale-proc-check

USAGE

Once plugin is installed you need to define configuration for it by using sparrow checkpoint container, which just an abstraction for configurable sparrow plugin.

You need to provide 2 parameters:

  • filter - perl regular expression to match a desired process

  • history - a time period to determine that processes found are fresh enough

In others words if any processes older then $history parameter found it will be treated as bad situation and check will fail.

Ok, now we are ready to do configuration:

A week of Perlishness in Oslo

Once again, courtesy of Oslo.pm, I’ll be returning to Oslo for a week of all things Perl.

On Monday April 18 and Tuesday April 19, I’m running two public classes on Perl 5 topics:
my advanced Perl programming class, and my Perl API design class. Bookings have just opened, so there are plenty of seats still available for either.

Then, on Wednesday April 20, I’ll be giving a free public talk at the Scotsman, at 6pm. I’ll be talking about how easy it is to extend Perl 5 with some amazingly useful extra language constructs—mostly stolen from Perl 6—using an evil new module (or possibly “a new evil module”) I recently wrote. The Scotsman is a great venue for these talks: you can lounge in comfort with a large band of fellow geeks, eat pub food, and quaff beer, while a crazy Australian slowly explodes your brain.

The Perl Toolchain: developing your module

This is the second in a series of blog posts about the Perl toolchain and the collection of tools and modules around it that are central to the CPAN we have today. In the first post we introduced PAUSE and CPAN, and outlined how you release a module onto CPAN, and how someone else might find it and install it. In this article we're going to cover what comes before the release: creating, developing, and testing a module for release to CPAN.

This post is brought to you by ActiveState, who we're happy to announce are a gold sponsor for the QA Hackathon this year. ActiveState are long-term supporters of Perl, and shipped the first Perl distro for Windows, ActivePerl.

And here we go!

Gee has it really been nearly a year since my last post I must be getting very lazy in my old age.

Well I do have something to blog about these days besides new modules and unused D&D code. Lets start off with a little background:

It all started back in 1998 or was it 99?? I was working with a really good JAVA team at the time, yes I know sacrilege. We created a number very good and well selling products for a suite of SIP servers, as a matter of fact I am still getting royalty checks after nearly 20 years, and they said I was dumb not to take the share offer in lieu of royalties.

The core of these products was a JAVA back end app that was used to access the varied DBs that managed the SIP server and client info. On fine day a few years later, the service desk started getting calls from customers that a large number of accounts where be compromised on their SIP apps.

Perl 6 Types: Made for Humans

In my first college programming course, I was taught that Pascal language has Integer, Boolean, and String types among others. I learned the types were there because computers were stupid. While dabbling in C, I learned more about what int, char, and other vermin looked like inside the warm, buzzing metal box under my desk.

Perl 5 didn’t have types, and I felt free as a kid on a bike, rushing through the wind, going down a slope. No longer did I have to cram my mind into the narrow slits computer hardware dictated me to. I had data and I could do whatever I wanted with it, as long as I didn’t get the wrong kind of data. And when I did get it, I fell off my bike and skinned my knees.

Virtual Spring Cleaning (part 3 of X) in which I release Plack::Middleware::Pod

I'm trying to keep a list of all the features I would like in Dancer::SearchApp. These features and changes range from large (index and search video subtitle files and link to the scenes in the movie) to small (implement suggestions). Usually, I keep the list of these features in a Pod file imaginatively named todo.pod.

Perl 5 Porters Mailing List Summary: March 28th - April 4th

Hey everyone,

Following is the p5p (Perl 5 Porters) mailing list summary for the past week. Enjoy!

Announcing Mojolicious::Command::generate::routes_restsful and Mojolicious::Command::generate::routes_restsful_just_routes

Get everything you need from just a hash

My recent release of Mojolicious::Plugin::Routes::Restful inspired my to go a little beyond and create code that generates code.

I have never been a big fan of this getting something from nothing idea

Heisenberg_14.jpeg

I guess I can't understand the math, after I discovered that 6 x 9 = 42, it never seems to come out right.

I have used auto-generated of course and have never been that pleased with it. I have spent many a week trying to make some silly shlock together out of Dreamweaver work with real code.

I have also seen a front end just slapped onto a dump of a DB schema that was created with DBIX Class Schema Loader and even worse the same but using JAVA's Hibernate. How about a level of abstraction between??

Mojolicious::Plugin::AutoRoute become more stable

I release Mojolicious::Plugin::AutoRoute 0.22.

Mojolicious::Plugin::AutoRoute(CPAN)


Until now, Mojolicious::Plugin::AutoRoute depended Mojolicious internal structure, but Mojolicious::Plugin::AutoRoute become more stable because this plugin use only public features of Mojolicious. The following is the document of Mojolicious::Plugin::AutoRoute.

Mojolicious::Plugin::AutoRoute is a Mojolicious plugin to create routes automatically.

If you put templates into auto directory, the corresponding routes is created automatically.

For example:

  TEMPLATES                           ROUTES
  templates/auto/index.html.ep        # /
                /foo.html.ep          # /foo
                /foo/bar.html.ep      # /foo/bar
                /foo/bar/baz.html.ep  # /foo/bar/baz

I like PHP simplicity. All thing needed is that you put PHP files into some directory, and write program. You don't need to create routes manually.

specifying primitive data types in Perlito5

I'm trying out this new little benchmark, which imports Java primitive data types into a Perl script:

The Perl Toolchain: PAUSE and CPAN

This is the first in a series of blog posts about the Perl toolchain and the collection of tools and modules around it that are central to the CPAN we have today. These posts will illustrate the scope of things worked on at the QA Hackathon. We'll start with the core lifecycle of CPAN modules, focusing on PAUSE and CPAN.

This post is brought to you by FastMail, a gold sponsor for this year's QA Hackathon (QAH). It is only with the support of companies like FastMail that we're able to bring together the lead developers of these tools at the QAH.

Little Bugs

Sometimes littlest bugs can really get on your nerves

25541-004-01C5DA95.jpg

Though not as much as the little critter above.

All started with a little module I wanted to upload to CPAN, well I did all the right things, test suite, manifest, makefile, POD coverage etc. I just wanted to do one test install on a clean box so I used my own Windblows PC.

Well it unzipped fine, passed its tests and installed with no problems. Great let see if it works

monitoring failed minion tasks with minion-check

Minion-check is a sparrow plugin to monitor failed minion tasks.

One could easily verify if any minion jobs are failed for a certain period of time. Which could be important to understand if you have any failures for your long running task executed by minion.

The installation:

$ sparrow plg install minion-check 
$ sparrow project create myhost
$ sparrow check add myhost minion
$ sparrow check set myhost minion minion-check

And the configuration:

Here you need to provide bash command to run your minion command and optionally period of time to look up failed minion tasks:

Data::Tubes

I released a new distribution - Data::Tubes.

Automatic testing of your reverse dependencies with Test::BrewBuild

My Test::Brewbuild module and front-end script ``brewbuild'' are now in a very workable state.

The purpose of the module is to seamlessly and automatically run your module's unit tests across any number of perl instances within your Unix perlbrew and Windows berrybrew installations. However, I have also added the ability for it to test all of your modules down-river (reverse dependencies) modules against the module you're working on, as it currently sits.

Announcing Mojolicious::Plugin::Routes::Restful

Have Hash Get Routes

One of my long standing mental code blocks has been trying to get me little brain to understand what a 'Route' is. This really came to a head when I first started to use Mojolicous in a big way.

68c29deb72bad94cd4e3c1aa0f3cdcd8.jpg

You see in the old days it was easy, you just had an URL that pointed to something and you could either get or a post to it. It was of course used and abused in all sorts of ways, I still have a browser bookmark that looks like this



http://www.roman-artifacts.com/Armor Fragments  Attachments/Lorica Hamata Armor Fragment/lorica hamata fragment.htm?counter=0111&pox=110103....

Virtual Spring Cleaning (part 2 of X) in which I release Apache::Tika::Async

In 2016, there already is a module named Apache::Tika, which does some of what my module does, but doesn't allow for asynchronous communication with the Tika process, which I need.

Regexp::Parsertron V 0.50 is on CPAN

Regexp::Parsertron is a Marpa-based parser for Perl's regexp. Yes, I've written a BNF for the regexps. The low (dev) version # tells you something important.
See the docs on MetaCPAN for details.

Upping minimum version for Devel::Cover

Devel::Cover is fast approaching its fifteenth birthday. When it was released the minimum Perl version supported was 5.6.1, and that was because the mechanism Devel::Cover needed was not introduced until 5.6.1.

Since that time, Devel::Cover has supported every new, stable version of Perl, whilst continuing to support every version from 5.6.1. Not every feature is available on every version, but most are.

I have recently pushed a commit which raises the minimum version to 5.8.1. The main reason for this is that it is becoming increasingly difficult to install 5.6.x and 5.8.0 to test against. Other reasons are that Devel::Cover has reduced functionality prior to 5.8.1, and that the official Perl toolchain now has a minimum version of 5.8.1. I'd rather spend my limited time on other aspects of Devel::Cover than supporting perl versions that are well over a decade old.

I doubt very much that anyone is seriously using current versions of Devel::Cover on versions of Perl before 5.8.1, but I'd be interested to hear from anyone who might find this new minimum requirement to be troublesome.

Otherwise, I'll plan on releasing Devel::Cover 1.22 with this new requirement in the near future.

About blogs.perl.org

blogs.perl.org is a common blogging platform for the Perl community. Written in Perl with a graphic design donated by Six Apart, Ltd.