You Should Take Amtrak To More Places

I’m going to do a rare but unapologetic plug for a company that is not sponsoring YAPC: Amtrak. About a month ago I mentioned that Amtrak is a viable means of travel for YAPC::NA 2012. However, I didn’t mention how absolutely awesome it is. I’ve used it for a few trips recently, and I’m a complete convert from air travel.

Here are the benefits of traveling via Amtrak that immediately come to mind over any airline that you might pick:

A new JAPH

http://perl-blog.abigail.be/post/9347752138/a-new-japh

$world->on( create => sub { say "Hello" } )

Hello Perl world...

I've been working on creating better sugar for event-driven systems in Perl– specifically, AnyEvent powered things. AnyEvent, and the modules it bundles, encourage a function based callback API, with at most one event listener per callback. Third party modules either follow that model, or the one presented by Object::Event, either using it directly, or implementing something that looks similar, but doesn't work the same.

What actually drove me to do this was exploring Node.js and its event API, which I find much more pleasant then any of the prior art on the CPAN.

So as such, I created a module, On::Event, which is on the CPAN now in a preliminary form. I've been toying with renaming it to ONE, however, as you can see on Github. The resulting API looks like this:

The life and death (well, deprecation) of a wrapper module

Earlier this year I was frustrated with Salvador Fandiño García's otherwise excellent Net::SFTP::Foreign package. It was in almost all respects the best choice for my current project at work, but the then-current version required me to check the return values of method calls for success or failure, and then use an error method to get any reasons for failure that might be waiting. The rest of my code used exceptions courtesy of Try::Tiny, and having to write three lines of boilerplate code for every SFTP call was getting annoying.

Thus was born Net::SFTP::Foreign::Exceptional, a very thin wrapper around Net::SFTP::Foreign that proxied all public method calls and then used a Moose after method modifier to throw an exception on any errors. (It originally used subclassing instead, but Salva set me straight on that and the less said about it the better.)

By now you’ve probably already seen the spectacular...



By now you’ve probably already seen the spectacular location where we will hold the banquet for YAPC::NA 2012. However, even the best planning can’t stop the rain from pouring down occasionally. So we’ve also secured an equally beautiful location indoors in case of rain. Our backup location is the Alumni Lounge in the Pyle Center.

Padre::Task 3.0 - Smaller and safer with full service support

Padre 0.90 is a very important release in the maturity of the Padre IDE, as it represents the closest to what you might call a Beta that we've produced.

And it's certainly the best and most stable release since late 2010. But looking forward to 1.0 there's one glaring project-level issue left.

Once we do a "stable" release, we should finally be aiming to achieve fairly decent back-compatibility. And Padre has definitely tossed aside back-compat in exchange for faster development at every opportunity so far.

So if we're going to do a 1.0 release, we probably should take one final pass over the major APIs and break them horribly so that we have APIs that we're happy to support for a long time. And this is the major focus of the next 0.92 release.

One of the most important of these is Padre::Task, which is the API we use to run things in the background.

gdb basics

Getting started with gdb , some notes on this

objdump (otool on osx) is a program to examine a binary.
To examine perl run the command

objdump -D /usr/bin/perl |grep -A40 main.:

Interesting to see the function call
objdump -D /usr/bin/perl |grep -A400 main.: |grep call

to get the output in intel syntax add the option -M

objdump -M intel ...

GDB
for the following c program

main() {
printf("hello world \n");
}

-g flag to give gcc access to source code
gcc -g prog.c

gdb commands to debug a c program
gdb -q a.out
set disassembly intel

list
break main
run
disassemble main

to dump a string stored in memory
x/s 0x... (memory address) in this prog we can check the string hello world stored at instruction mov

debugging perl
- Get the latest bleadperl from git
- Configure and install perl with debugging support sh Configure -DEBUGGING=both
gdb -q /usr/local/bin/perl
set disassembly intel
break main or break line number

nexti or n to step through
s to step through a subroutine

x/s variable to print the contents of a var

Dan's updates for the week ending August 21, 2011

Here are my updates for TPF, PPW, and Other

Take a Badger Bus To YAPC

If you live in Wisconsin or Minnesota another travel option available to you is Badger Coaches. They have daily service from Minneapolis, La Crosse, Whitewater, and Milwaukee to Madison, and they drop off 200 feet from the YAPC::NA 2012 conference facilities! A round trip ticket from Minneapolis will set you back about $75. One of the cool features is that most of the Badger Coaches have power outlets in every seat. So if you cling to your laptop like I do, then you’ll be able to stay charged up and working the entire time.

My YAPC::Europe 2011 review

... is available here

A blog for YAPC::EU 2012

YAPC::Europe 2011 is just over (thanks to the organisers for such a great event). We are already working on next year's YAPC::EU. We are happy to be elected to host the event in 2012 in Frankfurt/Main (Germany).

We will use this blog to keep you informed about our activities...

But who are we? We are the Frankfurt Perlmongers. We have our social meetings on the first Tuesday of a month at the MoschMosch noodle bar. As we have no tech meetings during the year, we organise a small workshop at the end of the year.

And we already organized the German Perl-Workshop in 2009 and this year's German Perl-Workshop. So the next step is to organise a YAPC::Europe.

We applied for this year's yapceu, but Riga was elected. And they did a fantastic job. About 300 people were in Riga to listen to many Perl talks, meet other people and have fun.

We decided to apply for 2012 again and we hope we can welcome at least as many people...

There is neither a venue nor a date we can announce, but as soon as possible we will publish these information on several channels.

If you have any questions please send an email: questions@yapc2012.de

Adventures in self-documenting code

Further to my recent work on Params::Validate::Dependencies, I wanted to make the code-refs returned by the magic any_of / all_of etc functions somewhat self-documenting. And I've done it. However, there's quite a bit of boiler-plate in lib/Params/Validate/Dependencies.pm as a result. For example, I had to write:
  if($DOC) { return $DOC->_doc_me(list => \@options); }
four times, and define four almost-identical classes.

Boiler-plate is Bad. So I then got rid of it. Unfortunately I got rid of it at the expense of depending on PadWalker, which is Crazy Shit. Do you nice people think that depending on PadWalker is a price worth paying?

Additionally, I also got rid of some not-quite-reblessing magic by using multiple inheritance. Again, is this a price worth paying?

Attendees wishing to stay in dorm accommodations at YAPC::NA...



Attendees wishing to stay in dorm accommodations at YAPC::NA 2012 will be staying in a great facility called Chadbourne Hall. It’s outfitted with an amazing set of amenities in each room

Chadbourne Hall, located in the southeast campus area on the corner of University Avenue and Park Street, offers single and double occupancy rooms with central air conditioning. This hall had extensive renovations from 2007-2010 of meeting, dining and guest rooms. Three bathrooms are conveniently located on each floor and include private shower and changing areas. Guests may use the floor kitchen, lounge area and laundry facilities at their convenience. An in-house tech center is available for computer use and the building is wireless. Rheta’s dining room is located on site for programs with a meal plan. Chadbourne Hall is in close proximity to many campus libraries, the student union and classrooms.

Sending Acme::Lisp to Backpan

In 2004 I started an Acme module, to simulate (interpretate) Lisp written as Perl list references. It is completely useless and is just taking space on my CPAN module list.

If anyone has any interest on it, please let me know and I'll hand it off.

But, trust me, you do not want it.

My Talks from YAPC::Europe 2011

Earlier this week I attended YAPC::Europe 2011. Many thanks to Andrew, Alex and all the others involved with bringing the conference to life, it was well worth all the effort.

During the conference I gave two talks. The first was my main talk, Smoking The Onion - Tales of CPAN Testers, which looked at how authors can use the CPAN Testers websites to improve their distributions, as well some further hints and tips for common mistakes spotted by testers over the years. It also looked at how some of the sites can be used by users to see whether a particular distribution might be suitable for their purposes or not. The talk seemed to go down well, and it seems a few were disappointed to have missed it, after discovering it wasn't my usual update of what has been happening with CPAN Testers. Thankfully, I did video the talk, and I think the organisers also have a copy, so expect to see it on YAPC TV and Presenting Perl at some point in the future.

Allowing anonymous comments

Gabor has a post here where he points out that the level of interaction is lower than the other blogs, he mentions blogs.perl.org and chromatic's blog as an example.


On more than one occasion I have typed in my comment only to realize that you need to be logged in to comment ( Gabor's , blogs.perl.org and chromatic's blog all require login) . I understand spam is a issue but if you want me to login to comment I will most probably not do it .


I am not saying that one should be preferred over another but am wondering if there is any correlation between allowing anonymous comments vs logging in

Adding Plenary Sessions to YAPC::NA 2012

YAPC traditionally has an opening plenary session on the first morning, and plenary sessions before the lightning talks each afternoon. However, on the second and third mornings there usually is no plenary session. 

This year we’re going to add a 10 minute plenary session at 8:40am before each day’s events. We’ll use this time to announce changes in the schedule, sell raffle tickets, announce daily contests, and generally keep you informed so that you can get the most out of that day’s activities. 

famfamfam flags, revisited

My department gets a lot of use out of the famfamfam flag set, but we actually needed some of the oddballs like Guernsey.

So I used perl and whipped up a script to generate the CSS sprite image & CSS out of the raw images, so I can easily drop in new flags, and regenerate a new, versioned sprite set.

... Of course, I still could use some help drawing some very very small flags.

Padre 0.90 has been released

I really should be packing to go away for the weekend, but instead I've just uploaded Padre 0.90, itself a day late due to a trip to the hospital last night after my daughter was hit on the cheek with a hockey stick.

Padre 0.90 comes with a few bug fixes from the 0.88 release, one that I found early on after upgrading to 0.88 myself, but already fixed by the time I got to asking about it in the #padre channel.

Given the lack of time tonight, I really want to get this announcement out quickly, with a follow up about what's changed when I get back home later in the weekend.

So with that, if you have upgraded Padre to 0.88, it's highly recommended that you upgrade to 0.90 when it's available to you.

Thanks to the translators for 0.90:

dolmen for the french
Zeno Gantner for German and some Spanish.

A full wrap up of what's changed will be forth coming when I get home.

my YAPC::EU summary

first some ad for Gabor, you might want to skip that *g*. I read "perl testing" and listened to some talks on that topic, even gave one, but until 2 days ago i actually hat had some misunderstanding about Devel::Cover and that it actually marks code pieces "already executed" when tests just call subs with different options and not by calling the pieces directly. Just a short comment by Gabor has lightend that up. thank you.

What i like most about yapc even more than about perl workshops: you get more high profile people. just grab them and discuss things that needs to get done. I met my grant manager Tom and I actually have some sense what kind of person he is and how to communicate to him or Karen better. I could also drop Larry some msg if he wants to give some thoughts on that too.

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.