Not a Llama
Really did not have much to do before heading out to a show and was randomly looking at a few things and bumbled across this pic
Then being inspired to look on CPAN I found this ACME::Llama so I just had to do this
Really did not have much to do before heading out to a show and was randomly looking at a few things and bumbled across this pic
Then being inspired to look on CPAN I found this ACME::Llama so I just had to do this
If you love Perl and are interested in MongoDB, we want to hire you. Feel free to drop me a line at friedo@mongodb.com if you're interested, or take a look at the official posting here. The full job description is below.
I currently maintain several DarkPAN's. A DarkPAN, as some of you might already know, is a CPAN-like repository but which is not CPAN. The "dark" term refers to the fact that it is not being published on the Internet, but usually behind a corporate firewall. The most common use-case is for companies creating their code as Perl distributions and wanting to use the CPAN toolchain to deploy modules. In my case, some of the DarkPANs are not actually "dark" because I publish them on the Internet.
There are two general ways to create a DarkPAN. First, you start with an existing CPAN mirror and then "inject" additional modules (you can use CPAN::Mini::Inject for this). Second, you start empty and create the CPAN-like structure using modules like CPAN::Faker and OrePAN.
The inject way is not really proper (akin to monkey-patching) but works with the old standard CPAN client. The latter is supported by cpanminus using multiple --mirror options. For example:
% cpanm --mirror http://first-darkpan --mirror http://second-darkpan --mirror http://cpan-mirror --mirror-only Foo::Bar
A few weeks ago I posted some numbers regarding the popularity of Perl. Among the numbers I published two graphs. The data collected by Google Analytics on Meta CPAN and on Perl Maven. (It became the most visited Perl-site after search.cpan.org, perl.org, Perlmonks, and Meta CPAN.)
Today I got access to the Google Analytics panel of blogs.perl.org as well.
Seem there are a number of little oddities in Moose that take a little time to absorb, but once you figure them out you wonder what you ever did before. In my last post I was doing a little refactoring and I decide to look at a few more things.
You may recall early on in my 'Character' class I had the following attribute
has 'class' =>(
is =>'ro',
isa =>'HashRef|Str',
);
Meaning that I could enter a hashref or a string for 'class'. Well there is a much better way to do this sort of thing and that is with 'coercion'.
This is part 8 of an ongoing series where I explore my relationship with Perl. You may wish to begin at the beginning.
This week we look at the ongoing evolution of Perl.
Last week I closed with the observation that it’s difficult for other languages to evolve beyond Perl because Perl keeps evolving. And it does: it evolves at quite a bewildering pace, compared to other languages. Take a look at the evolution of C, for instance. Oh, sure: we can talk about C++, and C#, and D, and even Java, as evolutions of C, but they are different languages, far more so than Perl 6 is a different language than Perl 5. If you look at the C language itself, it’s changed several times throughout its history, but the C we have today doesn’t look that different from the original K&R. It’s no more different than, say, American English is to British English.1
Perl will be big at Fosdem in Brussels with a big booth on both days of Fosdem and a devroom on the first day, Saturday 1 February. At the booth you will find a lot of interesting stuff, like the largest library of Perl-books in the world, the big stuffed toy camel, Tuits, buttons, books, brochures and whatnot.
The schedule is filled with great speakers and nice presentations. This year, the devroom and the booth will be in the same building (building K).
We will have beer on Friday at Delirium, go to a nice restaurant on both Saturday and Sunday, and we will be in the presence of 5,000 to 7,000 open source enthusiasts. This is going to be a wonderful event.
Read all about it, and much more:
http://wendyga.wordpress.com/2014/01/26/fosdem-perl-devroom-schedule-1feb2014-and-booth-12feb2014/
Hope to see you in Brussels, Belgium!
Once in a while people ask me how could the get involved in Open Source/Perl.
Here is something, I feel is a low hanging fruit:
Add some instructions to the
README file of DB_File.
It will require contacting Paul Marquess, the author of the module and maybe finding out if he has a public VCS for his modules.
Other low hanging fruits could be updating Changes files or doing other quests.
Well scooping about looking at way to refactor some of my AD&D 'Creator' class code I stumbled on a nice little feature of Moose.
Though not really standing out in the Moose documentation and not really hidden either is the fact that all of the declarative keywords are really just function calls.
So you might recall that I had this in my 'Creator' Class
with
'MooseX::Role::BuildInstanceOf' => {
target => 'RPG::ADD::Creator::Wisdom',
prefix => 'Wisdom',
constructor => 'new',
inherited_args => [{roll=>'wisdom'}],
},
...
Perl was known for its unmatched text processing but I couldn't quite catch it till I had used it for my personal project. I am still using only baby Perl that I am learning from 'Learning Perl' . I want to make an android app with content from wikitionary to create a database of words, parts of speech and meaning as three fields database with each word as a table. I downloaded the Wikitionary dump which is a Tab Separated Values file.
English\t
In niederrhein.pm we're trying to increase our talks to share the experience of advanced Perl users (developers, however :P).
I agreed on a talk (more a small tutorial) which should show how to Moo a real world application (read: not perfect, quirks, quick-shots - daily business). I decided to do it using my tool I develop to create math exercises for my children - it's a simple tool without to much tricks.
For anyone who wants to join modern Perl-OO - try work through the slides and create some exercises.
I posted this yesterday on my personal site and realised it might just act as a reasonable "getting started" type article for SDL with Perl. Further articles in the series probably won't have this level of detail, so I'll keep them on my own site. Anyway, on with the show.
So I decided to play around with Perl's SDL bindings. A game appears to be happening, so let's play around with this dev log idea too, documenting the process and pitfalls of making some stuff move around on screen.
It turns out you don't need to know a whole lot to make this happen, in the simplest cases at least. Let's see what we have so far:
OK, so we're not going to set the world alight just yet. Anyway, we have a guy and some bullets. We are missing enemies, scoring, action, pew pew noises and any incentive to play. These come later, I hope.
I have said it in many other posts over the years perl just never ceases to surprise me.
Well I was down and dirty with some code today doing an ongoing migration from Informix to Prostgres of a very very large perl code-base.
Needless to say one of the most important tools in this migration is the good old 'inline if' or ' ternary if' or just plain old '? :'
The code base has a largely hash based so it is a simple matter to find the offending lines of Informix SQL and using the '? :' to add in the Postgres SQL. Of course only part of the client base is migrating so it is mandated that both DB must work with the same code hence the need for all the inline ifs.
So there are allot of lines like this
We regret to announce that blogs.perl.org was recently the subject of a data breach.
An attacker gained access to the database that runs the site, and was able to take a copy of all users’ hashed passwords. We’ve therefore cleared all users’ passwords as a precaution.
If you have an account on the site, you should have received an email telling you how to reset your password. If you haven’t received it soon, please let us know.
Even though the passwords were stored in a hashed form, rather than as plaintext, the blogging software we use (Movable Type) uses a relatively weak hashing algorithm, so the attacker may be able to determine your old password.
It is therefore very important that, if you used the same password on any system other than blogs.perl.org, you change the password you use there, too.
We apologise sincerely for the inconvenience this has caused our users, and for failing to live up to the trust that the Perl community has placed in us.
I've just heard privately that someone poached by Apple (in Calif) has been told he has to learn Perl. How apposite (sic).
I have looked high and low for help on getting started on a blog here at blogs.perl.org, specifically with regard to typical templates and including syntax highlighting to put code in my articles, but I can't find anything.
I fear it may end up being something as simple as, "Did you click 'Help' over there?" But, I will post this and take a chance on looking silly.
Thanks in advance,
David
Before discussing my solution, let's consider some of the alternatives. First there is the CPAN module App::TimeTracker. It is a command-line application. To use it, first cd to your project directory and type tracker init. This will create a .tracker.json configuration file. Then you type tracker start when you start work on a project and tracker stop when you finish working. The timers are stored JSON record files in $HOME/.TimeTracker/YYYY/*.trc files such as this:
I've written about this before, but now I want to show some slides from my new testing class because I think it's easier to show test suite organization rather than describe it.
Years ago I wrote HTML::TokeParser::Simple, an OO interface to HTML::TokeParser. The latter is a great module, but you are typically working with a bunch of array references like this:
["S", $tag, $attr, $attrseq, $text]
["E", $tag, $text]
["T", $text, $is_data]
["C", $text]
["D", $text]
["PI", $token0, $text]
That can be confusing and you often have to write code that is hard to immediately understand. For example, here's the code to strip all comments from an HTML document:
blogs.perl.org is a common blogging platform for the Perl community. Written in Perl with a graphic design donated by Six Apart, Ltd.