Safe Travels

Though many are sticking around to take in all that Madison has to offer, many others are headed back home from YAPC::NA 2012.  Safe travels to you all.

[From the YAPC::NA Blog.]

Labyrinth Is/Isn't A Web Framework

Barbie will give a talk at YAPC::Europe 2012 described as

Labyrinth is a codebase for presenting websites, originally designed and developed in 2002. It's original design goal was to be a "Website In A Box", meaning that it could be installed on a web server ready and complete to server a website. However, it can additionally be extended, providing a framework for those who wish to add their own requirements to the workflow and functionality.

As such, this talk is an introduction to both the web framework and stand-alone aspects of Labyrinth.

Look, I Just Paid the Bill

If you visit the Silicon Valley Perl Mongers Meetup site, you'll see that I'm now listed as the organizer. This is not strictly true - Ian Kluft is still our primary organizer, but due to the fact that Meetup sends out a metric buttload of mail - I have now witnessed this as organizer - he missed the "OMG SVPERL GONNA DIE" message that got sent, repeatedly, to all the SVPerl members when the Meetup bill was due in a week.

Everyone was getting nervous, so I jumped in and paid the bill, partly because everyone was getting nervous we hadn't heard from Ian, and partly because WhiteHat Security, my current employer (who I love, and you should come work here if you are a good Perl programmer - heck, if you're a good Python or Ruby programmer, come and we'll teach you Perl) said they'd pick up the tab.

So, woo, I'm an organizer. I just like having an excuse to give talks!

An Arduino/Dancer-enabled mobile-enhanced door

So you're sitting at home, preparing for a karaoke night, waiting for your friend to arrive. She comes in, rings the doorbell and you're thinking "fuck! I'm upstairs, and she's downstairs and I have to open the door for her (because it's locked) but I'm busy changing my clothes." What do you do? WHAT DO YOU DO?

What if you could let her in using you phone while you're still upstairs getting yourself ready? Arduino could be used for that. And the following is a theoretical (and slightly bit practical) explanation on how you could use Arduino and Dancer to accomplish this.

Arduino is a basic unit. You can set bits on and off. You can hook the bits to other devices (sound, video, screens, you name it!). You can write firmware to it. That's awesome. You can hook up more shields (components) to it. That means you can have additional hardware like an ethernet hookup or whathaveyou.

YAPC:NA Day 3

YAPC::NA’s talks for Day 3 begin at 9am, with the plenary starting at 8:40am. Yesterday was a big success, but now it’s sort of sad that we’re already to day 3. Oh well, there’s always next year! Here’s to hoping that we go out with a bang in day 3.

Don’t forget that you can watch live on the web for free:

[From the YAPC::NA Blog.]

Talks accepted!

We finally fixed a bug in our voting app, so we were able to vote the talk proposals. We have accepted lots of talks (thanks for the great proposals). Even those talks that have not been accepted yet are not rejected at all. They will be reconsidered in the next round of voting...

So today and in the next few days, you'll see a lot of blog posts introducing the accepted talks.

Further Reading For The YAPC::NA 2012 Keynote

This is a placeholder post to house links to further reading from my YAPC::NA 2012 keynote.

Announcing Marpa::R2

What is Marpa?

I am very pleased to announce Marpa::R2 -- "Release 2" of the Marpa parser. For those unfamiliar, the Marpa algorithm is something new in parsing -- it parses anything you can write in BNF and, if your grammar is in one of the classes currently in practical use, it parses it in linear time. Marpa::R2's parse engine is written in optimized C, so that Marpa::R2's speed is competitive with parsers of far less power.

An important feature of the Marpa algorithm is "situational awareness". Marpa knows at every point in the parse exactly how far it has progressed in each rule, and can share this information with the application. The advantages of this go beyond error detection -- Marpa's situational awareness is accurate, graceful and fast enough to be used as a parsing technique in its own right -- Ruby Slippers parsing.

Announcing Marpa::R2

How many of your dists are in Debian?

Here's a small script which I whipped up just now. I thought of trying out MetaCPAN::API, but after about 5 minutes of trying to find a way to list an author's distributions (and failed), I resorted to a quick hack using Mojo::DOM.

Here's a sample output:

Webfusion sponsors YAPC::Europe 2012

Please welcome Webfusion as a silver sponsor of this years' YAPC::Europe.

webfusion_blog.png

Established in 1997, Webfusion is one of the UK's leading web hosting groups. We offer cost-effective, feature-rich hosting packages for everyone from businesses, web developers, designers and hobbyists. With 24/7 technical support, robust Firewall server protection and a state-of-the-art UK based data centre with Webfusion your website is always in safe hands.
www.webfusion.co.uk

Vegan Food Options in Madison

From guest contributor Dave Rolsky:

There are a ridiculous number of vegan options in Madison at YAPC::NA 2012. Some of the highlights:

  • Dandelion is an all vegetarian and mostly vegan food cart on the Library Mall
  • Kabul, Buraka, Himal Chuli, Med Cafe, Dobra Tea, and Ian’s Pizza all have vegan options, and are a 5-10 minute walk from the conference
  • Further out there are multiple places with vegan breakfast like tofu scrambles, hashes, and biscuits & gravy at Monty’s Blue Plate Diner and Willalby’s Cafe
  • The Chocolate Shoppe is an ice cream shop offering at least 6 options (4 sorbets and two soy milk-based flavors). Paciugo has multiple vegan gelato options.
  • Vegan desserts are available at The Green Owl, Monty’s, Mother Fools coffee house, Dandelion, Willy Street Co-op, and probably others I haven’t found yet.


I suspect I won’t even scratch the surface before I leave on Saturday, but I’ll do my best.

[From the YAPC::NA Blog.]

HTML-Tree 5: Now with weakref support

HTML-Tree has long been a source of memory leaks for programmers who weren’t very careful with it. Because it uses circular references, Perl’s reference-counting garbage collector can’t clean it up if you forget to call $tree->delete when you’re done. Perl added weak references (a.k.a. “weakrefs”) to resolve this problem, but HTML-Tree has never taken advantage of them. Until now.

HTML-Tree 5.00 (just released to CPAN) uses weak references by default. This means that when a tree goes out of scope, it gets deleted whether you called $tree->delete or not. This should eliminate memory leaks caused by HTML-Tree.

Unfortunately, it can also break code that was working. Even though that code probably leaked memory, that’s not a big problem with a short-running script. The one real-world example I’ve found so far is pQuery’s dom.t. In pQuery 0.08, it does:

open module under cursor in vim

Inspired by http://www.slideshare.net/c9s/perlhacksonvim I wrote (well ... copied for the larger part) a script to open the Module currently under the cursor in vim.

Typing \fm will lookup the first Module found in available Perl library paths (plus current working directoy . '/lib')

I did search for some time and read a bit about ctags and pltags but ended up confused. add this to your vimrc


""""""""""""""""""""""""""""""""""""
" find module in perl INC and edit "
""""""""""""""""""""""""""""""""""""
function! GetCursorModuleName()
    let cw = substitute( expand(""), '.\{-}\(\(\w\+\)\(::\w\+\)*\).*$', '\1', '' )
    return cw
endfunction

function! TranslateModuleName(n)
    return substitute( a:n, '::', '/', 'g' ) . '.pm'
endfunction

function! GetPerlLibPaths()
    let out = system('perl -e ''print join "\n", @INC''')
    let paths = split( out, "\n" )
    return paths
endfunction

function! FindModuleFileInPaths()
    let paths = [ 'lib' ] + GetPerlLibPaths()
    let fname = TranslateModuleName( GetCursorModuleName() )

    for p in paths
        let f = p . '/' . fname
        if filereadable(f)
            exec "edit " . f
            return 1
        endif
    endfor

    echo "File not found: " . fname
endfunction

nmap fm :call FindModuleFileInPaths()

CAVEATS


  • returns only the first found module
  • "local" modules not found unless current working directory has the lib/ dir as child

Vegan / Vegetarian Food

Thanks to tinita! She started a Wiki page where you can find a list of restaurants that offer vegan / vegetarian food:

http://act.yapc.eu/ye2012/wiki?node=Food

Chadbourne Hall

Apparently the receipt that dorm dwellers receive from the University doesn’t tell them they need to go to Chadbourne Hall. So I wanted to announce it far and wide in case anybody else gets hung up by that. 

Chadbourne Hall

420 N. Park Street
Madison, WI 53706-1489
Chadbourne Desk: (608) 262-2688

[From the YAPC::NA Blog.]

New CPAN Testers Sponsor: Webfusion

It is with great pleasure that we officially announce a new sponsor for the CPAN Testers Project. Webfusion have provided us with Managed Hosting, for us to use with some of the supporting websites. As such, we will be using it for the Analytics and Matrix websites, as well as a secondary failover site for the Static Reports site.

Webfusion are the latest corporate sponsor to support CPAN Testers. If your company would like to support CPAN Testers, please get in touch. You can also donate to the project via the CPAN Testers Fund, managed by the Enlightened Perl Organisation.

For further details, please see the CPAN Testers Blog.

Helping those who allow themselves to be helped

I cannot decide if I was too harsh. I try not to let the usual drone of noobs on SO to get to me. My problem was that the OP is being both ignorant AND demanding. Read the post and let me know, I'm back and forth between being enraged and contrite.

urbia.com sponsors YAPC::Europe 2012

We welcome urbia.com AG as a Silver Sponsor of this years' YAPC::Europe.

UrbiaBlog.png

urbia.com AG (a company of Gruner + Jahr AG & Co KG) operates the web community www.urbia.de targeting young families with topics like pregnancy, birth, baby and parenting at its core. www.urbia.de attracts 6,5 million visits and 2,3 million unique users per month which makes us the market leader in the parenting segment in Germany.

Perl has been proudly powering our platform since 1998. In the meantime we migrated our code base to Modern Perl making use of the Catalyst MVC framework, DBIx::Class, Template::Toolkit, Moose and tons of other wonderful CPAN modules without which we would have never been so successful. To thank the excellent community and show our continuing support, we decided to sponsor this year's YAPC::EU in Frankfurt. If you're interested in joining our team in Cologne, go to http://www.urbia.de/allgemein/jobs to check out our open positions and/or contact us at jobs@urbia.com.

Streaming via VLC

Someone over on the web figured out how to view the streams without Silverlight: http://mail.pm.org/pipermail/vienna-pm/2012-June/003125.html

[From the YAPC::NA Blog.]

Robert Blackwell said I should try Arduino

So I'm in Madison, Wisconsin for YAPC::NA 2012. Yesterday, I was supposed to meet up at one of the hackathons. I went to the Pyle building and searched the rooms and even accidentally went into brian's workshop (sorry brian!).

When I got to the hackathon room, it was pretty quiet but active. I had met Robert Blackwell two days prior at a dinner and had a lovely conversation and fun time with him. Robert had brought a ton of hardware (11 hours drive!!) and set up an entire room just so we could hack on hardware. Wait. Hardware?

At this point, I should probably mention I'm not a hardware guy. I can hook up the computer, change memory sticks, and I even replaced a CPU once - but that's pretty much it. Hardware is totally out of my league. I really don't understand it, nor was I ever really interested in it.

So I'm there and I just wanna sit and work on pointless boring stuff when Robert says "hey, how about trying Arduino?"

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.