Tuesday, April 29, 2008

Hackerteen Review

Okay, I’m taking my reviews a bit out of order here, but for good reason. I just got a copy of Hackerteen: Internet Blackout, an ‘edutainment’ graphic novel from O’Reilly. In addition to the tech stuff I play with, I’m also a Scoutmaster, and work a lot with 12-13 year old boys, so this stuck me as something I ought to look into.

Hackerteen is no Dark Knight, but that doesn’t mean it’s not worthwhile. The art is good enough (better than some of the Alpha Flight, The New Mutant books I remember from years gone by) and the story is pretty solid (Legion of Super-heroes inanity anyone?), which makes this a good vehicle for teaching. It’s designed to teach kids:

  • How Internet tech works
  • How to protect themselves online
  • How to work with other people on the ‘net to improve the world.
And I think it does a pretty good job.

One interesting idea is the collection of URLs for the hackerteen website lurking in the book—like this one: www.hackerteen.com/bluescreen.php”:http://www.hackerteen.com/bluescreen.php. I think better use could have been made of them, but I’m not entirely sure how. It didn’t help that they’re all tucked into footnotes.

I guess the real proof will be in how kids take to the books. I’ll be loaning it to a few kids in the target audience to see what they think. I’ll try to capture their feedback and share it here.

Thursday, April 17, 2008

ruby > ( code == data )

In his Code Generation: The Safety Scissors Of Metaprogramming talk, Giles Bowkett talks about the power of Lisp and how Ruby approaches it. One of the Giles’ comparisons is that in Lisp (eq code data) which he translates into ruby as code == data. At the time, I just sort of went with the flow, but then I had a discussion with Mike Moore about SICP and I realized there’s a bit more to it than just that.

Mike pointed out a number of juicy quotes in the preface:

“Underlying our approach to this subject is our conviction that “computer science” is not a science and that its significance has little to do with computers.”

”... The computer revolution is a revolution in the way we think and in the way we express what we think.”

”... we want to establish the idea that a computer language is not just a way of getting a computer to perform operations but rather that it is a novel formal medium for expressing ideas about methodology. Thus, programs must be written for people to read, and only incidentally for machines to execute.”

”... we believe that the essential material to be addressed by a subject at this level is not the syntax of particular programming-language constructs, nor clever algorithms for computing particular functions efficiently, nor even the mathematical analysis of algorithms and the foundations of computing, but rather the techniques used to control the intellectual complexity of large software systems.”

so we should focus on “the techniques used to control the intellectual complexity of large software systems.”

The more I read these, the more I thought that these quotes read a lot like a Ruby Manifesto. I don’t want to take anything away from Lisp (and Scheme), it’s an incredibly powerful family of languages, and it lets Lisp hackers do amazing things. The thing is though, I don’t think this (think_about people things) is an accurate representation of how people.think.

One of the things that I’ve always loved about Ruby is that it combines a very powerful language with a very expressive language—it allows me to write code that maps very well to the way I think, and the way other programmers I know seem to think.

Is Ruby code beautiful, even poetic as some people claim? Sure, sometimes—but that’s not the point. Ruby makes it easy for me to express ideas in code, and to understand the ideas expressed in other people’s code. It helps me “control the intellectual complexity” of problems, it supports the revolution “in the way we express what we think.” So maybe that’s what it all boils down to.

Viva la Revolution! Viva la Ruby!

Tuesday, April 08, 2008

MWRC 2008

Peter Cooper just announced the availability of the videos from MWRC 2008. He included a quick write-up of several of the talks, and wrapped things up with this:

It seems MountainWest had a really high quality level of talks, so give it a thought when choosing which Ruby events to attend next year.

Pretty high praise indeed. It’s entirely in line with the things I heard from many of the attendees as well, so I think it’s safe to say we have a good thing going here.

Helping organize something like this takes a lot of effort (to be honest though, Mike Moore did the lion’s share of the work). As good as it was, I’m looking forward to not having to worry about it for 6 months or so. That doesn’t mean it’s time to stop thinking about regional Ruby conferences though. There are some great events coming up:

You might even want to pencil in plans to attend MountainWest RubyConf sometime in March next year. I know I want to be there.

Friday, April 04, 2008

More MWRC Videos posted

A bunch more videos are posted at the Confreaks MWRC 2008 page. I’ve seen a number of people saying good things about them.

I think Jim Wierich’s Shaving with Occam was a pretty amazing talk. I’ve already past it around work, and am hearing good things from even the non-rubyists. I think it says a lot about the Ruby community that Jim was able to pull off a keynote that didn’t have any Ruby in it—Lisp, Forth, and Erlang all got some time on screen though.

I don’t think you’d go wrong with any of the talks though. Go spend some time in the archive. Once you finish the 2008 MWRC videos, you might turn your eye to some of the other archives as well.

Thursday, April 03, 2008

MWRC 2008 Roundup

This year’s MountainWest RubyConf was incredible. There were a bunch of great talks, and the hallway track (though too short) was awesome. It was especially great to go hang out at the hacking suite put on by Engine Yard

I’m not going to go into too much detail about any of the talks until the video is released on Confreaks MWRC 2008 page. So far only Evan’s Keynote and Ezra’s have made it up (Gile’s talk was up briefly, but seems to have been pulled due to some audio problems).

Evan’s talk was a great peek behind the curtain at Rubinius development. Of course, since the process is so dynamic, it was kind of like peeking behind one of those clear shower curtains. Nonetheless, having Evan there as a guide pointing out the interesting bits and the philosophy made it quite interesting. It was a great kickoff to the rest of the conference.

Ezra’s talk focused on Merb and was more of a nitty-gritty kind of talk than Evan’s was. One bombshell that dropped was that there’s a Merb book in the works from Manning—I wonder if my predictions of a Ruby web framework to challenge Rails are finally going to come true. It was also interesting to hear Ezra talk about the different use cases for mongrel vs. thin or evented-mongrel.

Finally, there were a couple of neat things that won’t make the videos. We were able to raise over a thousand dollars for the Ruby Mendicant project. We didn’t raise enough money to get Steve Baker to Scotland, but it was pretty cool to have some of our speakers come up and say that they wanted to donate their honorarium to him. We even made a great donation on the local front, giving our leftover boxed lunches on Saturday (about 60 of them) to a local food pantry.

We had some great sponsors who made the conference possible. Addison-Wesley , Apress, and O’Reilly all donated books for us to give away in our binary lottery. Because of our sponsors, speakers, and attendees we ended up with a great conference. Thanks everyone!