Plinking Away Part the Third

In my last post I had a look at how MooseX::Abstract::Factory worked and what it could do for me. Today I will continue down my little list and have a look at
'MooseX::ClassCompositor' and see if this one fits into what I am trying to do.


Well at first glance it seems this could really work for me. Start with an empty class and add in all the roles. So lets have a closer look. Like the last module the documentation is slim and the test suit contains little more than the synopsis so no pointers there.

Well this might be good for game time but I am not sure if it will work with my present class structure and trick. Seem I have to have everything a role. Well lets give it the old collage try

The Drone Papers

I've uploaded to my web site chapters 1 .. 5 of:

The Drone Papers

Chapter 1: Drone + Virus = Shock + Awe
Chapter 2: Using Drones to Hijack Government Policy
Chapter 3: Using Drones for Arson, Sabotage and Quarantine-busting
Chapter 4: A Child is Frightened of Drones
Chapter 5: The Drone Papers FAQ

-------
A note re Movable Type: Make sure you preview your articles 1 or 3 times. The 2nd time the display is blank, except for 2 buttons in the middle of the screen. Save and Re-edit entry.

Weird man, as we used to say back in the '60s.

A Less Smart Smartmatch

The smartmatch operator (~~) introduced in Perl 5.10 (and borrowed from Perl 6) has been the subject of much criticism. Its behaviour changes based on the types of its arguments (arrays vs hashes vs numbers vs strings vs ...). perlop lists over twenty different behaviours based on different combinations of arguments. Although the operator normally does what you want, what people would want from certain combinations (%hash ~~ @arr anybody?) is nor always clear.

(Aside: in Perl 6 which has a stronger type system, the behaviour of smartmatch is more predictable.)

For this reason, it has been proposed that the smartmatch operator be simplified, or perhaps even removed in a future version of Perl 5. To this end, Perl 5.18 has introduced some warnings about its experimental nature.

Renaming Perl client for Elasticsearch

Dear Perl'ers

I need your help to choose a new name for the official Perl client for Elasticsearch.

Read more here: http://www.elasticsearch.org/blog/renaming-perl-client/

Plinking Away Part the Second

In my last post I identified three MooseX modules that might help me out and end the perhaps some tedious typing and bring a more structure design into my ADD game. The first of this is MooseX::Abstract::Factory.

Despite its name it does not actually create 'Abstract' classes in the sense of a class that cannot be instantiated like a 'Java Abstract Class'. I guess what they mean is a 'Factory that is Abstract' i.e. not tied to any one class or name-space.

Perl and Me, Part 12: The End of the Beginning

This is part 12 of an ongoing series where I explore my relationship with Perl.  You may wish to begin at the beginning.

This week we look at how to start putting it all together.

Last week I talked about the trade-offs of DWIM, and wondered if it might be time to try to make sense of all the various parts and perspectives.  Thus, this is the end of the beginning.1  This is the convergence of all my reminiscences.

The CPAN new dist a month contest

Inspired by Chris Madsen's once a week, every week contest, and the monthly new distribution challenge 2014 quest on Questhub, I've created the CPAN new dist a month, every month contest. Release a new CPAN dist each month. How many months can you keep that up for?

This is a mashup of ideas from BOOK, KENTNL, and myself. Which is funny, since KENTNL turned out to be the current leader.

blogs.perl.org users being phished

I've received a number of 'Verify the email address associated with your Apple ID' emails in the past week targeted at phishing my Apple ID. Upon further examination, the list of email addresses in the to: line (yeah these guys are slick!) corresponds to a subset of the email addressed stolen when blogs.perl.org was hacked.

So if you have an apple ID and a blogs.perl.org account, watch out for these phishing attempts.

Still Plinking Away, Part the First

So of you might remember this post some weeks ago where I came up with a huge org-chart of all the different roles they I thought i would need for may AD&D characters.

Well I was just now getting into the actual instantiation of characters and having them do something well I ran into a number of differing choices that I sort of discussed here on this post. I found that the visitor pattern worked very well for character creation (that one is almost all wrapped up) now that I am getting to the other side of the game I have t0 make a choice of which design or pattern to use.

My Favourite Test::* Modules

If you don't test your code, what makes you think it works?!

Here are some of my favourite modules for testing Perl code.

Finding my computer

A couple of days ago I replaced my computer at work with a new one. This morning, working from home, when I tried to log in, it didn't respond.

I realized promptly that I had forgotten to ask the sys admin to update the MAC address on the DHCP server and so it just got some random IP from the pool.

Stupid Lucene Tricks: Storing Non-Documents

Lucene's search capabilities are so powerful that it is tempting to store more than documents -- and that is OK. Here are some hints to make storing non-documents easier:

One Moose, Many Mooses, or is that Mise?

Now that I am getting into the game play part of AD&D I am finding there are more and more times where I want to keep a record of some attribute not just a running total.

For example after a successful encounter experience for monsters killed or defeated (making them run away is defeating them) and the value of all treasure taken in gold peices is summed and then split evenly across all party members, including henchmen and friendly NPC, who actively engaged in the encounter as Expreriance Points or EP for short.

Well a running tally for each player is needed, as well player always like to look back and see how bad ass they are so a history of encounters is needed, as well players like to know how many monsters they whacked in an encounter and of course the list goes on.

Const::Exporter Released

A few days ago, I released Const::Exporter to CPAN.

Basically, it's a module that allows you to define a module with exportable constants that:

  • can be read-only scalars, arrays, or hashes (as well as the standard constant functions);
  • can refer to each other;
  • can be grouped into export tags, and added to multiple tags without repeating the value;
  • and easily interspersed with POD describing the constants.

A more detailed discussion of it is on my blog here.

New module Path::Iterator::Rule::RT

I use Request Tracker (RT) all the time for work and home projects. What this means is I am left with ticket litter--lots of directories with names like test, examples, ETL, Proof of Concepts, foo, bar, baz, x. It all adds up to lots of ticket litter. Now I have a ticket for everything I do. (More on that later.)

That left me with a new problem. I had directories full of ticket numbers. It became overwhelming, and I needed a solution.

And so was born Path::Iterator::Rule::RT.

Using two packages from CPAN this was easy work.
Path::Iterator::Rule
RT::Client::REST

Path::Iterator::Rule is extendable with custom rule subroutines. Using this with RT::Client::REST made it very easy to add RT ticket information into a rule to select directories.

Here are some examples using Path::Iterator::Rule::RT.

# This will print all tickets in the directory that have resolved tickets.

Moose Dying With "Invalid version format (version required)"

I'm putting this here in case anyone else sees this or hits a search engine looking for the problem.

This morning I had to restart my iMac thanks to the lovely security hole Apple patched and my default perlbrew was set to version 5.18.1, though I was developing in 5.18.2. I ran a test and immediately had the following mysterious error:

Invalid version format (version required) at ... /5.18.1/Module/Runtime.pm line 386.

The fix is both simple and complicated.

Well More Little Helpers

Had a power outage for most of the day today so just a short post carrying on from where my last post left off.

Again I figured I might as well add in a second function into my little mod this one parses a directory listing (very badly) and then prints out the English for it

I do not usually have much of a problem with file entries but I figure some people might be worse at it than me so here goes.

So I exposed 'parse_file_listing' in my mod and here is a sample

Planet Moose - February 2014

Welcome to Planet Moose, a brief write up on what's been happening in the world of Moose in the past month, for the benefit of those of you who don't have their eyes permanently glued to the #moose IRC channel, or the MetaCPAN recent uploads page.

If you'd like to contribute some news for next month's issue, you can do so on the wiki.

Moose

There have been a couple of minor releases of Moose this month (2.1203 and 2.1204) aimed at squelching a bug exposed by a recent update to Module::Runtime. (See Ovid's blog post on the issue.)

Significant newlines? Or semicolons?

[ Cross-posted by invitation, from its home on the Ocean of Awareness blog. ]

Should statements have explicit terminators, like the semicolon of Perl and the C language? Or should they avoid the clutter, and separate statements by giving whitespace syntactic significance and a real effect on the semantics, as is done in Python and Javascript?

Actually we don't have to go either way. As an example, let's look at some BNF-ish DSL. It defines a small calculator. At first glance, it looks as if this language has taken the significant-whitespace route -- there certainly are no explicit statement terminators.

GitPrep 1.5 is released - Improve HTTP repository access, and display README in subdirectory

I released GitPrep 1.5 at 2013/10/09. You can install portable GitHub system into Unix / Linux easily. It is second major release.

Because you can install GitPrep into your own server, you can create users and repositories without limit. You can use GitPrep freely because GitPrep is free software. You can also install GitPrep into shared rental server.

GitPrep (Document and Repository)

Features added in 1.5 are:

- Improve HTTP repository access
- display README in subdirectory

1.4 contain bug that repository access(push and pull) via http, but It is improved in 1.5. Even If the repository is big, you can do push and clone. and README.md(or README) in subdirectory is displayed.

Let's use usufully.

Example

You can try GitPrep example.

GitPrep Example

Download

Download

Document

GitPrep Document and Repositry

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.