Archive for the 'Perl' Category

Happy 20th Perl!

Article in Wired.

Clearly you and I have moved on, but I still occasionally whip you out to write one-off backup scripts, or to munge up a big text file. You and I had a really great time together. You helped me build a career, we had a lot of laughs, and a lot of sigils. Happy 20th Perl.

Perl Not Dead

Great essay on the current state of Perl. Although Perl is dead to me, it isn’t dead. I don’t use Perl anymore, but I would, given the right circumstances. I’m a big fan of the Perl community, and their quirky love of all things $igil. Chicago has a pretty big Perl development market. My former employer Performics, has around 40 or so Perl folks chugging away on a large Perl based site. Perl is alive and well. It’s best not to count it out of the game just yet, or ever.

Why Python 3k Shouldn’t Be Ruby (and a mention of Erlang)

Just a quick response to this write up on the lack of growth in Python 3000. Python 3000 really isn’t the giant sea change that I thought it was going to be. Most of the significant work is under the covers, optimizations that will benefit me without me necessarily knowing it. The author of the above post (I’m sorry, I couldn’t find the author’s name), like me, is a fan of Ruby and Python. I think he wants Python 3000 to take on some of the traits we both love about Ruby (extreme flexibility, cleverness, many ways to do it). I know where he’s coming from, but that wouldn’t be very ‘Pythonic,’ it would be ‘Rubyonic.’

One of my favorite bits about being a polyglot is the differences between languages. What’s the point of making Python like Ruby? What’s the point of making Perl like Python? If everyone is sort of doing the same thing, where’s the fun in learning new stuff? I love Python, I love Ruby, I even love Perl. Let’s preserve their differences. Python doesn’t want you to muck around with the syntax, Ruby does. Use Ruby when appropriate, use Python when appropriate. Right?

Speaking of polyglotism, I bought that Prag-Prog Errrrrlang book over the weekend. All variables are constant, and must start with a capital letter. How’s that for balls nuts? Woo hoo! Viva la Different!

Chicago.pm Recap

I presented last night at the Chicago Perl Mongers meeting. The theme was introducing Perl people to some other languages. I think it went over pretty well. For each language, I talked a little bit about the basic syntax, library resources, and general community stuff. Then gave one “cool thing” that I think typically really makes a first looker’s eyes go wide. For Python it was list comprehensions, for Ruby it was blocks and adding methods to existing classes.

Python was a slam dunk demonstration wise, it makes sense to people. List comprehensions are so similar to map that it wasn’t really a conceptual leap. It was just something cool. Ruby was a harder sell. Opening up String and adding a is_cool? method got some good reactions, but the block concept just left a lot of heads shaking. Block usage seems sort of odd at first. I remember not really understanding how my_list.each {|i| puts i} is better than for i in my_list do. I explained that blocks are something you just use for a while, and then you realize that they sort of invert the way you think about simple things like iteration. I built a quick closure, thinking that would help, but it didn’t.

I’m giving this presentation again next month out in Wheaton. Anyone have an advice for how to better present blocks? I think it may very well be the sort of thing you don’t appreciate until you use them for a while, but it would be nice to have an example that really shook people up. Any advice is appreciated.

Notes for Tonight’s Chicago.pm Meeting

I’m presenting tonight at the Chicago Perl Monger’s meeting. I’m giving a tour of some stuff that might appeal to Perl programmers who want to learn new languages. I’m focusing on Ruby and Python. Here are the notes, they’re also available in my public subversion repository:

Language Hootenanny

Notes for the language hootenanny presentation at February’s Chicago.pm meetings.

Agenda

  1. A little bit about me
  2. Find out what everyone wants to know
  3. Language overview
    1. for each language, a brief discussion about its culture, philosophy, and resources. Then the one thing about it that’s really “cool” and some code samples.

What I like about a language

Object oriented, good testing framework, great documentation, fun community, lots of libraries, web stuff. Also, interactive shells…the total time it takes to learn a language is cut down considerably if you have an interactive shell to play with. They’re pretty standard anymore, so this is usually just a given.

Classifying languages

There’s really two kinds of languages in my book, the kind you can make money from and the kind you learn for fun.

Ruby

Resources

My recommendation to learn Ruby is to buy the pickaxe book, and start playing around with it. why’s guide is also good, but it is _pretty quirky, so be prepared. The pickaxe is better if you’re already familiar with object oriented programming and you want to learn Ruby.

One cool thing

Blocks

Python

Resources

The best way to learn Python is to jump into the Python tutorial on the website, then skip around “Dive Into Python.”

One cool thing

List comprehensions.

Perl 6

Resources

PHP?

I haven’t been keeping up with the PHP community enough to really be able to tell you what’s up. I do know that PHP5 is interesting. Discuss amongst yourselves if anyone is interested in PHP.

Other Stuff I Don’t Know (but would like to learn)

Haskell, Lisp

Stuff that other people want to learn, but I’m not so sure about yet.

Erlang, REBOL

My new favorite Perl module

From day seven of the Perl Advent Calendar:


1 use Acme::Don't;
2
3 #The following does nothing
4 don't{
5 print "Dear Santa,\n";
6 printf("I want %i %s", int(1+9*rand), $_) foreach ;
7 print “k thx luv janie\n”
8 }
9 __END__
10 ponies
11 puppies
12 ipods

The don't function doesn’t do a block of code. It’s like an extended comment. Why’s that awesome? I have no idea. It just is. It’s the thing I love most about Perl, sometimes it totally doesn’t make sense.

WBEZ looking for open source developer

I just spammed Chicago user groups with a message about this. I’m getting pretty good at that. Kind of a cheap tactic, but I like getting the word out.

WBEZ, Chicago Public Radio, is looking for an open source developer, or team of developers, to build the web front end for their very ambitious Secret Radio Project.

It’s a pretty ambitious project, with a very quick turnaround time. They took out an ad on the 37signals job board that explains things a little better.

My friend Steev is leading the tech effort for the station. He’s a really bright guy, and would be great to work with. We built the original Chicago Improv Network together. Steev is also the force behind Don’t Spit the Water. The guy is a machine.

I’m really excited about this project, and plan on helping in any way I can. I wish I could throw in for the actual contract, but am happily employed. I hope someone from Chicago takes this job…it has a ton of potential.

Today is my Birthday

I’m 30!

So, expect a lot more mature blogging now, instead of all this hot open source stuff I’ve been tossing out at you. Now that I’m an old man, I’m pretty sure I’ll be writing Java or C#, kicking back with my enterprise friends, chatting about the power of waterfall.

So long 20’s, I barely knew you.

Josh McAdams gets a White Camel!

Woo hoo!

The announcement on use Perl.

Very exciting news. Josh is a great guy, and completely deserves the award. Way to go Josh.

Learning Ruby

In keeping with the Pragmatic rule of “learn a new programming language once a year,” I’ve spent a fair amount of time learning Ruby over the past two weeks or so. I’m reading Programming Ruby: The Pragmatic Programmers\’ Guide and Agile Web Development with Rails. Both are very well written books, and I’m enjoying Ruby thus far.

Ben’s recent post on “the wackiness of Ruby” made me want to add something to what he’s saying: I am really tired of inter-language bickering. It makes it really difficult to learn new things, when the vast majority of bright open source-y people choose such hard-core zealotry as their world outlook. That said, I’m a huge hypocrite for bringing this up, as I start my share of sentences saying “Python does this much better…” However, I’m trying to turn over a new leaf.

I’ve made a conscience decision while reading the Ruby stuff to let it be what it is, and not let my opinions slow me down. It’s tough. It’s taken a fair amount of self-discipline to not stop reading and exclaim something or other about why something is good or bad. After the first few days though, it got easier.

Open source projects and languages need advocates. Potential converts are sometimes best converted through somewhat disdainful appraisals of their current choices. I’m tired of it. Being open to new things is a much more rewarding experience. I’m glad that Ben, a fierce advocate of a particular stack of tools, takes the time to learn something new. I’m glad that he calls out what he sees as inconsistencies, while not necessarily passing judgement on the project. I think it can be a very difficult thing to do, especially in the pretty zealot-y user group community. It’s something that we should all at least try, I think we’ll all find it’s a better way to view your world.




Proxy surf mp3 site mp3 sites