Perhaps you remember Padre, The Perl IDE. It was started around 5 years ago, had a lot of development, and ended up being a quite decent programmer's editor.
Alas it's been suffering from lack of care for a couple of years now. Not because of lack of need or interest, but because nobody seems to have the time. And perhaps somebody needs to step up and grab the torch. Perhaps it's you?
Currently I feel it is good to prepare for Christmas.
To read in a larger file, /usr/share/dict/words in my case, I do
my @dictionary = split /\n/ , slurp '/usr/share/dict/words';
That is a cool piece of short code for the task. But - this is slow because I run a regex across a large file, I am told. Also, it is unnecessarily lots of code for the task. Look at that:
my @dictionary := '/usr/share/dict/words'.IO.lines;
Wow.
But also, that was slow a few hours ago. It has become much faster since. (Don't tell anybody, the trick was going to a Perl Workshop and talking to some people. Nice people, and very, very helpful. I am tempted to some day try and run a hackathon for them..)
Next task was searching for lines containing a $search_string:
for @dictionary -> $line {
if $line ~~ m/$search_string/ {
say "match: $line";
}
}
Looks pretty straightforward but is programming Perl 5 in Perl 6. Brrr. ;-)
[Cross-posted by invitation from
its home on the Ocean of Awareness blog.]
1960:
The ALGOL 60 spec comes out.
It specifies, for the first time, a block structured
language.
The ALGOL committee is well aware
that
nobody knows how to parse such a language.
But they believe that,
if they specify a block-structured
language, a parser for it will be invented.
Risky as this approach is, it pays off ...
Want to install Net::SSLeay on a Debian or Ubuntu system that you don't have root on, and doesn't have `libssl-dev` installed? Let me see if I can save you some time...
You are going to need to keep a compiled version of libssl around, and so you need to decide where that will live: I went for: `~/perl5/alien`...
mkdir ~/perl5/alien-src
mkdir ~/perl5/alien
cd ~/perl5/alien-src
apt-get source lib64z1-dev # Or the 32 bit version
apt-get source libssl-dev
cd zlib-1.2.3.4.dfsg/ # Or whatever it is
./configure --prefix=~/perl5/alien
make
make install
cd ..
cd openssl-1.0.1/ # Or whatever it is
# These options took me approximately 15 years to figure out
./config shared -fPIC --prefix=~/perl5/alien
make
The Alps, Western region. Northern Switzerland. Halfway between Zurich and Basel. Here you can find Olten, a nice little city which these last few days had an unusually high concentration of Perl aficionados roaming its streets. I'm talking about this year's Swiss Perl Workshop, the second incantation ever, and a very successful one.
"There is more than one way to enjoy it" is a slogan of YAPC::ASIA 2014. This is also another way that you can enjoy my story from photo on My Photo Gallery
The YAPC::EU 2015 conference in Granada will officially begin on Wednesday Septermber 2nd and will end on Friday 4th.
We also encourage you to be in Granada by Tuesday September 1st: we will be having other interesting events to warm up before the conference. For instance, if you'd like to use the venue to organize a meeting, a hackathon or a workshop just drop us a line.
In any case, make sure you don't miss the pre-conference meeting on Tuesday evening.
Most of my recentblog posts about Mojolicious have revolved around its non-blocking capabilities.
I like to write about those because I think that it is those capabilities that can bring new eyes to Perl from other languages, much like Node.js brought eyes to server-side javascript (for the same reason).
That said, lately I have had excuses to show off Mojolicious and when I have done so, it has been some of the other cool features that have garnered the “Ooooh”s and “Aaaah”s from onlookers.
In this article I will show you some of those extras, like accessing your generated pages and even app itself direcly from the command line.
I will also show how testing can be easy, powerful, expressive and yet still readably beautiful.
This year, the Swiss Perl Workshop was held at the Flörli Olten, an old Town Villa turned into a meeting house. The atmosphere at this place was just incredible. The beautifully renovated rooms and an on site catering team gave the whole event the feel of a big happy family gathering. A big thank you to Matthias and Roman and Daniela and her kitchen team. I am already looking forward to next years edition.
As I'm an awardee from the Sand-A-Newbie program to attend YAPC::ASIA in Tokyo, Japan. This is my blog about what I have got so far and would like to share:
Well another pleasant day here in Olten and we started off with a talk by Laurent Dami about a project he has been working on for the Swiss courts system that allows admins access to CRUD a database that should not really ever be changed. The key tto with was a mod called App::AutoCRUD that allows the admins to see and manipulate data via a simple web interface that allows the specialized grouping and sorting required by the data and allows single and bulk operations. I(f you want to see a simple and elegant design that uses Plack and an ORM that isn't DBIx::Class it is well worth the look.
Perl community has moved away from using special predefined Perl variables such as $(, $), $:, $!, $^H, $/ or many others without explicitly commenting their purpose. But why are we still using shift for sub params? i.e.:
sub foo {
my $bar = shift;
}
Why is it still fine within the community to skip the @_ ? If we promote shift, then lets use pop as well? Why not? it looks nice:
My focus is Perl used in web development. I am creating a "Perl Kata" (curriculum) for the CoderDojo project in an attempt to teach Perl the right way to younger programmers.
I’m pleased to announce the release of USPS::RateRequest 0.0100. We’ve been developing this module in-house at The Game Crafter for a couple years now. It’s much faster than Business::Shipping, because it submits multiple simultaneous requests to USPS rather than doing them in series. And it’s more accurate than your typical request because it uses the result of Box::Calc to determine the exact dimensions and weight of each parcel. I hope by releasing this to the greater Perl community, you can enjoy on your online shops some of the benefits we have enjoyed by using this module.
Well we started out today with a key-note (if a workshop has a keynote??) talk by Brian d Foy, you can see the slides here, and from the first few you will think it is just a blurb on regexs etc but fortunately Brian quickly left that rather overdone (and in my case dreaded) subject on how we can build up the Perl community. What it breaks down to is that you will never gain any notoriety out there re-doing what was already done you have to take on something that is either 'Boring', 'Tedious', or 'Hard' and hopefully stick with it until it is done.
The Talk as a whole was interesting and Brian did a very good job
on what needs to be done to fill the whitespace of Perl and if we do fill it up the community will be better of it.
If you use DBIx::Class in a production setting and just happen to have a substantial test suite - this post is for you.
TL;DR: Recent development in DBIC required the introduction of a subsystem that turned out to be much more complex than initially envisioned. While it *seems* that all the kinks have been worked out, the failure modes are so un-graceful (dis-graceful?) that the latest trial is in need of extra testing before it can be deemed ready for production.
Therefore if you are in a position to validate that everything behaves as expected, without the risk of taking your production to the fjords (did I mention substantial test suites?) - please help those in less favorable situations and test the thing before it goes live.
You can install the trial by any of the following methods:
As I talked during YAPC::EU with fellow Perl 6 fanboy mäsak about his (GOTO considered awesome) and mine (Perl 6 operators) recent talk I just summarized something I said and something he said and its just one little thought you might find nice too: Because normally as programmers we see it as as best practice from engineering point and so called best practices to have small manageable units (blocks, sub's classes,) and link them together as loosely as possible.