/ domm

I hack Perl for fun and profit.

Follow me on twitter!
Atom Icom ... on Atom!
<<<<<<<<<<
25.05.2014: App::TimeTracker::Command::Trello
18.05.2014: Submit talks for YAPC::Europe 2014!
07.11.2013: MOPfuscation explained
03.11.2013: Austrian Perl Workshop 2013

I'm writing this post from the hackathon-part of this years Austrian Perl Workshop in Salzburg. Yesterday we had a nice and interesting day filled with various talks, interspersed with coffee-breaks on the sunny terrace of ncm.at (where we could watch para-gliders take off from a nearby mountain).

Jonathan gave a very interesting talk on Composable Concurrency in Perl 6, which could be the killer feature of Perl 6. Some of the code reminded me of stuff we're currently doing with ZeroMQ, but having this embedded in the core of your language would be really cool.

There was also Fluxx, The Great Dalmuti, food, beer, pumpkin seed liqueur (the new Chartreuse), Almdudler on tap, $foo, a 3-minute test on sql index creation
via humming & lots of round tuits provided by Wendy.

Now people are hacking / discussing things like creating emails, REST, testing web apps, Perl6 in general, Perl6 CPAN and probably other stuff, too.

I'm going to catch a train back to Vienna in the afternoon, so I'll have to leave soonish. In the meantime, here's the MOPfuscation as featured on the workshop t-shirt:


# works with p5-mop-redux ce50586a
use mop;use 5.18.1;no strict 'refs';
class APW{method Austrian($m){map{($_=
$_->name)=~s;              ^..;;;$_}$m->
attributes};                has $!hack =
'Salzburg ';                has $!learn=
'2. & 3.11.'                .' 2013';has
$!socialize=                q $@ncm.at$;
method Perl(                $m){sort+map
{$a=$_->name                ;eval"$a"}$m
->attributes}              ;42.;method
Workshop($m){grep{/^[APW]./}sort+map{
$_->name}$m->methods}};for(mop::meta
('APW')){$_->add_method(mop::method
->new(name=>$",
body=>sub{map
{say+join( $"
,$_[0]->$_($_
[1]))}reverse
$_[0]->$;($_[
1])}));42;$;=
q^########^^q
atLQHPKLSa;$_
->FINALIZE ->
new_instance#
->$"($_)};###

And here the readable version from the backside of the t-shirt:


use mop; use 5.18.1; no strict 'refs'; # use p5-mop-redux ce50586af1d

class APW {
  has $!hack        =  'Salzburg';
  has $!learn       =  '2. & 3. 11 2013';
  has $!socialize   =  '@ncm.at';

  method Austrian ($m) {map{($_=$_->name)=~s;^..;;;$_}$m->attributes}
  method Perl     ($m) {sort+map{$a=$_->name;eval"$a"}$m->attributes}
  method Workshop ($m) {grep{/^[APW]./}sort+map{$_->name}$m->methods}
}

 for(mop::meta('APW')){$_->add_method(mop::method->new(name=>$",body
 =>sub{map{say+join($",$_[0]->$_($_[1]))}reverse$_[0]->$;($_[1])}));
 $;=q^########^^q atLQHPKLSa;$_->FINALIZE->new_instance->$"($_)};

Comments (via disqus)

11.10.2013: Austrian Perl Workshop 2013 - Call for everything
07.09.2013: OpenSource++ - How to contribute to a project without knowing a damn bit about it
04.09.2013: OpenSource++ - The other side
02.09.2013: OpenSource++
16.08.2013: Things I learned at YAPC::Europe 2013 in Kiev
30.05.2013: given & smartmatch in Perl 5.18
>>>>>>>>>>
an image named perl/2013_11_austrian_perl_workshop_images/apw2013_2.jpg

an image named perl/2013_11_austrian_perl_workshop_images/apw2013_4.jpg

an image named perl/2013_11_austrian_perl_workshop_images/apw2013_5.jpg

an image named perl/2013_11_austrian_perl_workshop_images/apw2013_6.jpg