Month: June 2008

YAPC::NA 2008 blog post wrap-up, the DIY version

June 23, 2008 Conferences 1 comment

Luke Closs asked me if I was going to post a YAPC wrap-up article. “Only if someone writes it for me,” I told him, “or finishes the chapter of this book.” And then I thought “if only there were some magical way that we could have a website where people could link to their own blog posts! Without me having to do it! Some sort of software, preferably running on Perl!”

So I started the YAPC::NA 2008 page on the Perl 5 Wiki, and I ask that y’all go post links to your YAPC::NA blog posts there. I’ve added a few links to get you going.

YAPC::NA 2008 photo wrap-up

June 23, 2008 Community, Conferences No comments

I posted a bunch of YAPC::NA 2008 photos on my Flickr account, but Flickr limits me to 200 photos visible on a free account, so I trimmed out 34 of them, and someone (NOT MENTIONING ANY NAMES, SCROTTIE) squawked when I pruned the picture that he happened to be. So, I dumped all 113 over in my Picasa account in a photoset. These are practically all the pictures that I took during YAPC, other than some entirely blurry and/or black ones.

If you’ve posted pictures from YAPC::NA 2008 somewhere, please mention it here in the comments.

Josh McAdams preaches in the press

June 23, 2008 Perl Foundation No comments

Hooray for Josh McAdams, new PR guy for the Perl Foundation, getting some serious space in this Infoworld article “Scripting languages spark new programming era”. It’s your standard trend-watching high-level gloss for watchers from the sidelines, apparently programming managers who only know of Java (an important target market, to be sure).

It’s unfortunate that Andi Gutmans of PHP has to wave the “I’m full of crap” banner with…

PHP has been around a long time, and some advocates of newer languages say it’s past its prime. PHP adherents disagree. Perl is complex and hard to maintain, Gutmans says. “Perl has pretty much disappeared when it comes to the Web.”

… although it’s interesting that it’s PHP, not Perl, getting accused of being “past its prime.” I also can’t imagine much of anything harder to maintain than PHP slapped together by thousands of non-programmers. Of course, Josh counters with:

But McAdams defended Perl’s vitality, citing examples of major users. “I would ask him what Ticketmaster and Amazon use for their back ends,” McAdams says. “[Perl] has a very large user base in Web apps but also has a strong presence in the financial industry.”

A fine article, Josh, and I thank you for taking on this important role in TPF.

YAPC::NA 2008 recap: The six-year-old version

June 19, 2008 Community, Conferences 1 comment

Quinn woke me up from my much-needed sleep this morning. “Dad, I missed you! How was your meetings?”

“The meetings were good, and I got to see a lot of my friends. There was Pete, of course, and Josh and Heather from Chicago, and there was Yaakov from —”

“Dad, are you fooling? Is that his name?”

“Yes, that’s his name. Yaakov. Different people have different sounding names. He’s very nice. And I saw Schwern…”

“That kind of sounds funny too!”

“That’s his name, Michael Schwern, and he is pretty funny. We watched bad movies. And Jim came from New York and another Jim came from New York. He just had triplets.”

“I remember that!”

“And there were people from all over the world. I had pizza last night with Adam from Australia, and José was from Portugal and I saw Karen from Ireland, and I saw Abigail and he came from the Netherlands in Europe.”

“He’s a man named Abigail? Why is he named Abigail?”

“Because that’s his name. And I also saw my friend Barbie who is a man from England.”

(This proves too much) “A man named BARBIE!?!?” (laughing, thinking of her own Barbie dolls.)

“Yup. And I saw my friend Allison and I found out she just moved to Africa. And there were a lot of people from all over the world that came to be in those three days of computer meetings. They seemed to like it. And I am very very glad to see all these people every year, but I did miss you, too, Shmoo, and I’m glad to be home.”

Schwern on skimmable code

June 17, 2008 Code craft No comments

Michael Schwern gave a talk on skimmable code at YAPC this morning, much of which was a refactoring of some ugly parts of WWW::Mechanize. How embarrassing!

Do take a look at his slides. Lots of goodness in there. One idea that had never occurred to me: “End-of-scope comments violate the DRY principle, you’re repeating code.”

Perlsphere launches

June 14, 2008 Community No comments

Earle “hex” Martin has started a new Perl blog aggregator. From his journal entry:

In the spirit of TMTOWTDI I have set up a new aggregator for Perl blogs, Perlsphere. Its aim is to operate a bit differently from Planet Perl

  • Openness – admission to Planet Perl is by selection of the site operators only. Perlsphere is open to any blog about Perl.
  • Being a little easier on the eye – those jaggies on the Planet Perl camel scare me.
  • Most importantly, running on Perl. Perlsphere runs on the remarkable Plagger. Planet Perl runs on Planet, a Python application… whose templating engine was a copy of Perl’s own HTML::Template! Kind of embarrassing.

Thanks to Earle for helping more flowers bloom.

Scrabble cheating with Perl one-liners

June 2, 2008 Code craft, Data munging 2 comments

I’m in the middle of a game of Scrabulous with Christoper Humphries on Facebook, and I get “tolkien” handed to me in my tray. Good letters, and I ought to be able to make a bingo out of them. Alas, the best I could get to play on the board was “knot”, but what else could I have made? Perl to the rescue!

All I need to do is match across the contents of /usr/share/dict/words in a Perl one-liner. The -n flag means “loop over the input file, but don’t print $_”. My little program goes in -e, and it looks like this:

$ perl -lne'print if /t/ && /o/ && /l/ && /k/ && /i/ &&
/e/ && /n/' /usr/share/dict/words

Lots of good words, but they’re awfully long. Let’s limit it to seven-letter bingos. We have to use the -l flag to drop the linefeed from the input lines, so the length call is accurate.

$ perl -lne'print if /t/ && /o/ && /l/ && /k/ && /i/ &&
/e/ && /n/ && length($_)==7' /usr/share/dict/words

Shoot, nothing there. Let’s try eight.

perl -lne'print if /t/ && /o/ && /l/ && /k/ && /i/ &&
/e/ && /n/ && length($_)==8' /usr/share/dict/words

“knotlike”! That would have been beautiful. Oh well. 🙁

Perl Foundation funds five grants for summer 2008

June 2, 2008 Uncategorized No comments

Alberto Simões, grant coordinator for the Perl Foundation, announces:

It took a long time, but for this round we had a big number of excellent proposals. Unfortunately TPF is unable to fund all the proposed grants as they exceed the funds available for Grants. Thus, TPF GC ranked proposals accordingly with its relevance to the community, and the first few were funded.

These are the funded proposals:

As a side note, the last proposal was funded using Perl 6 funds, from Ian Hague donation, and thus, outside the GC budget.

Follow the proposals that, although accepted, will not be funded:

Unfortunately, there was a few proposals that did not convince the committee, and were rejected. Without any particular order:

Technical debt: Seek first to understand

June 1, 2008 Code craft No comments

Grand Rapids Perl Monger
Matt Heusser is organizing a workshop on technical debt in August. A recent blog posting from Matt gives some great talking points about technical debt, including one angle I hadn’t thought of before, probably because I haven’t taken any programming classes in over 20 years:

Our educational system, for the most part, is built on one-off projects. Students build a program that inventories their CD collection. It doesn’t work well – it even has some bugs – but it is good enough to demo and get a B+…. [They] can get hacked out in a weekend with a lot of pizza and caffeine….[S]tudents never have to live with the pain of maintaining the pile of mud they write. Thus, our first exposure to programming actively rewards us for tech debt.

There’s a lack of training, perhaps, but is programming leadership at fault as well? The old management saw of “What gets measured gets done” holds here. If your performance review is based on getting things done (for some value of “done”) by a deadline, you’re going to go aim for that. Heck, you can turn to daytime television sage Dr. Phil for this one: People do what works.

I’m dealing with that right now. I’ve got a code base where the previous programmer’s #1 goal was apparently to complete the task as quickly as possible. I’ve got PHP code like this:

$rslt=pg_exec($conn,"drop table keys1x");
$rslt=pg_exec($conn,"drop table keys2x");
$rslt=pg_exec($conn,"drop table keys3x");
$rslt=pg_exec($conn,"drop table keys13x");
$rslt=pg_exec($conn,"drop table keys14x");
# The tables are then recreated with 14 cut-n-paste
# calls of identical CREATE TABLE DDL statements.

Stupid, right? But was it? If your goal is to get a change made as quickly as possible, with no regard to other design factors, then cut & paste of code makes perfect sense.
This guy was acclaimed for his ability to turn around program changes quickly, so at least someone was happy, even if that someone wasn’t the programmer who followed. As Dr. Phil would say, he did what works.

The causes of technical debt can be varied, and multiple. The programmer might not know better. It might be what worked best for him in a given situation. It could have been the only way out of an otherwise-impossible situation. Whatever the reason, it’s best to know why things are the way they are before you try to pay down the debt.