yapc day 1

david.romano on 2006-06-27T08:03:27

today was...busy. since i stayed up so late the night before, i was worried about getting up in time for the first few talks in the morning: Josh McAdams' welcome speech, and keynotes by Larry Wall and Bill Odam. unfortunately for me, my alarm didn't go off and I didn't wake up until right before the last keynote, Bill Odam's, was starting. anyway, i took a shower and headed on over to the building where all the talks would be taking place.

i arrived about halfway through Bill Odam's talk, and found it pretty slow-moving. He didn't have any presentation slides, so I definitely think that affected my perception. besides that, what he talked about was actually interesting to me: how the Perl Foundation fits in to the Perl community, who it is currently comprised of, and what they do with their resources. by the time I had to leave for the next talk I wished to attend, I understood a bit more what it did.

the first of the five talks I attended was on the module PPI and was given by Jeffrey Goff. PPI is making it possible to view perl source code as a document, and manipulate it in interesting ways without actually running it through the perl interpreter (which is what Eclipse's plugin does, and which can really screw you if you put the wrong thing in a BEGIN block). Jeffrey showed briefly how to do a few simple tasks like automatically reformatting a map statement into a for loop, and re-formatting whitespace without doing it with regexen that might possibly break heredocs. by the end of the talk I definitely decided I wanted to spend a day or two fiddling around with it. since I'll only be working around 30 hours this summer before school starts, I'm hoping to fit it in :-).

The next talk I went to was on svk, remembering an article I had skimmed thru on perl.com and thinking that it was worth looking into. Since I have mostly been using svn at work, I figured it would be good for me to see what benefits it had over svn. this talk went smoothly, and some of the new features for the next version of svk i noticed were taken from another RCS which I actually prefer: darcs. (the speaker also mentioned thievery from Perforce.) anyway, here's a brief features list I gleaned from clkao's talk:

  • works with existing svn
  • easier to branch, so less forking of projects
  • history sensitive merge
  • offline commits
  • offline branching
  • interactive conflict resolution
  • interactive commits

the third talk was entitled "Get Out of Technical Debt Now!", and was presented by Andy Lester. Of all the five I went to today, I believe I took away most from this one. He seemed to be using the Takahashi method of presenting slides, yet it was surprisingly easy to form an outline of the material. Altho' I do believe the video and slides of his talk will be available (as will be the case for many other talks), I'm gonna reproduce the outline of the solution of getting out of technical debt:

simple (but not easy) solution:
    identify your debts
        clutter (multiple confs and backups
          without revision control)            
        anything you plan to do later is clutter!
        failing tests
        ugly code (no appreciation of what the
          code does)
            code without comments
            outdated comments
        bus-sensitive knowledge: only one person knows how to do something. if they get hit by a bus, what's the team going to do?
        unpatched security holes
        TODO and XXX
        missing infrastucture
            RT?
            svn?
            backups? can you restore?
            cron jobs to do your dirty work?
        relying on non-opensource projects
        jerks on the team
        jerks in management
        no coding standards
        code ownership
        not realizing you have technical debt
        ignoring your technical debt
    determine costs
        think time.
        think dollars.
        think risk. - not having those backups, 
          not having the security hole patched
        cost of paying debt: developer time, 
          dollars, etc.
        opportunity cost
    with determing your debt and costs, you are
      creating the justification to sell the PHB on your changes.
    pay most profitable
        pick *one*.
        don't pick the easiest
        don't pick the most fun, either.
        think improvement, not perfection.
        *JFDI*
        land one plane at a time.
        how do i sell the boss?
            *quantify* everything that you need 
              to, or everything you can (hopefully 
              not too disparate).
    stop incurring new debt
        don't write new code that doesn't improve 
          tests, comments, etc.
        understand your cash flow
        watch the corners:
            fluff
            t/pod.t and t/pod-coverage.t
            automated tests
            vigorous policing
        sharpen the saw (improve the tools):
            App::Fluff
            Perl::Critic

the fourth talk I went to didn't do much for me. Dave Rolsky talked on "JSAN, AJAX and Perl". I don't think he really showed how to combine the three technologies through an example, but mostly just mentioned a few modules that comprise JSAN that you can use to AJAXify something with perl. But seriously, he seemed to wade in the shallow end of the pool. Surely, time constraints are a factor, but I believe a small example showing a perl program interacting with what JSAN does would have been much better for me. But then again, I talked with others who thought that it was just the right amount of info for their knowledge base.

the last talk I went to was called "Writing Regular Expressions" and was presented by Abigail. Now I'm pretty well-versed in regexes, but the actual regex engine behind it I'm still somewhat ignorant of. (I have Mastering Regular Expressions by Friedl, but that's about the 4th book down on my ~50 book reading list for this summer). Most of what he talked about was quite basic in writing regular expressions, but he did mention some nuggets concerning how the engine optimized certain constructs, which is what I hoped he would do. Two of the most precious nuggets I discovered were:

  1. construct regexes from concatenating strings rather than combining qr//. there's almost 4.7:0.01 time difference when comparing qr// interpolation to string interpolation. (making strings is faster than qr// because perl doesn't know how to take advantage of interpolating a compiled regex in another).
  2. perl -Dr -we '"foo/bar" =~ m{[/]\w+[/]}'

After the talks, I went over to Host YAPC BOF, since Raga had mentioned he was planning on attending in order to see what it would take to bring YAPC to San Diego. Well, because of talking with other people, I ended up being 20 minutes late and so only got the tail end of it. Raga wasn't there, but from what I listened to Raga or I might be better off trying to organize a Perl Workshop instead. (Build our way up.)

Dinner time finally rolled around and a large group of us headed to Lou Malnati's (Uri, Allison Randal, Bill Odam, Richard Rice, Jeff Bisbee, Pip, John, Zack, Deven, Kent Cowgill, John (hachi), and others I didn't actually meet). I prefer thin-crust pizza, but their deep-dish was *great*. Jeff Bisbee and I split a medium pizza: my half was olive and pepperoni, his was cheese. If you ever go to Chicago, don't pass that place up. I'm planning on going back there at least one other time this week.

After we got back from dinner, it was around 10ish, and so I headed back to my room. Since then I've checked some e-mail, dabbled a bit more into the crazy world of IRC, and talked with Margret, and talked with my next door neighbor, George, about sorting algorithms, testing client/server interactions, and MVC frameworks. The last hour or so I have actually been about to sit down and write this post. And altho' I'm staying up late again, it's worth it as long as my alarm will actually go off tomorrow. :-)

UPDATE:I forgot to mention the major downside for today: no wireless access! apparently the sysadmin for the IIT network is on vacation, and IIT didn't give the conference enough IPs to go around (only enough for ~1/2 the attendees). It looks like it will all be fixed tomorrow tho'. Woo-hoo!


My slides

petdance on 2006-06-30T00:13:24

I don't know if it's Takahashi, but I try to just have one phrase or sentence so the audience reads it, then listens to me. Slides are bookmarks, not content.

My slides are always, if anywhere, at http://petdance.com/perl/. The tech debt slides are there.

Re:My slides

petdance on 2006-06-30T00:14:02

And thanks for coming by, and I'm glad you enjoyed it!

Re:My slides

david.romano on 2006-07-03T21:42:09

I really like what you just said there: "Slides are bookmarks, not content". Also, thanks for the slides url Andy. Looking at some of the other titles makes me want to read 'em :-)

Re:My slides

petdance on 2006-07-03T21:49:45

If you ever get a chance to see Damian or MJD talk about how to give presentations, do so.

That's where I get most of my stuff from.