Archive for June, 2007

Identifying Systems of Software Engineering

Thursday, June 21st, 2007

Whether it’s Agile Software Development or Test Driven Development, every year new systems of code and project management spring up like tullips. Each one comes with loyal devotees who swear by it and denounce all the other heathen religions.

Scott Berkun feels that none of the current models accurately describe the way software development actually happens. Sure, you may be aspiring to adhere to the tenants of the Rational Unified Process (RUP), but isn’t Asshole Driven Development (ADD) a more accurate description? Or maybe Cover Your Ass Engineering (CYAE)?

Check out Scott’s full list and be sure to read the user submitted additions.

Where are all the women?

Tuesday, June 19th, 2007

Woman Icon

The dearth of women in math and science has been discussed frequently. Computer science and programming is part of that same picture. It is obvious to everyone that the ratio is seriously lop-sided. But determining exactly why and what, if anything, we can do about it is not as obvious.

A few months ago, I followed with interest a thread started by Jason Kottke about the poor ratio of female to male speakers at web conferences. Later posts on this thread are here, here, here, here and here. (There were many others…)

I have helped to plan many conferences over the last ten years, and the editorial teams I’ve been on have always taken into account gender when considering the session line-up. And we have always asked “Where are all the women? How can we get more women speakers?” Jeffrey Zeldman sums up my conclusion well when he writes “The problem is visible at the top because it exists at the bottom.”

One of my other conclusions is that women have to be very involved in any discussion of the problems and solutions. No, scratch that—women need to lead the discussion about this topic. They know better than any man what the barriers are for women. If we want answers and solutions, I think we have to start there. (Plus men don’t always do a good job of it on their own.) Exactly this kind of discussion took place between a group of women developers at RailsConf 2007 and it’s now a podcast so we can all listen in.

Ruby on Rails Podcast — Roundtable: Women in Development

The podcast is a round-table discussion on the state of women in open source programming. It features Jen May Wu, Dr. Ana Nelson, Liz Summerfield, Sandy Metz, Carmelyne Thompson, Cynthia Kaiser, and Desi McAdam, and it is moderated by Geoffrey Grosenbach. To share just one insightful tidbit from their discussion: they mention how many technology companies only give out men’s t-shirts and how much they appreciate companies that bother to stock both men and women’s t-shirts. A great point.

And if you are planning a conference, event or featuring people who work in technology, be sure to check out the “List of Women Speakers for Your Conference” compiled by Jen Bekman.

Ruby on Rails Hackfest

Monday, June 18th, 2007

Ruby on Rails Hackfest ducks

Working with Rails will be holding a Rails Hackfest every month during 2007. It is a chance for developers to be rewarded for contributing source code to Ruby on Rails.

Submit bug fixes, patches, features, enhancements, or documentaion improvements and you will automatically accumulate Hackfest points. You get some points for each submission; you get more points for each accepted improvement. The contributors with the most points at the end of each month wins prizes. This month’s prizes include a ticket to RailsConf Europe, books from O’Reilly and O’Reilly-branded USB Mini Hubs.

Catch-all Routes

Monday, June 18th, 2007

Last week, I posted that David Black has released a guide to using and configuring routes in Ruby on Rails and commented that Rails routing has not been documented well enough before now. It seems someone else feels the same way.

Railscasts

Today, Ryan Bates has posted a screencast at Railscasts illustrating how to create a “catch-all route”. It’s not just a way to catching routes that don’t match your configured routes, it is a powerful technique for adding complex and dynamic routes. It’s ideal once you understand the basics of Rails routing and you feel ready to graduate to more advanced techniques. I use something like this to redirect legacy URLs and requests from spiders trolling for security holes.

Music for Coders: June 15

Friday, June 15th, 2007

Two heavy-weight releases this week.

The first is an album to raise money to help end the human rights crisis in Darfur. Amnesty International and Yoko Ono enlisted 34 top artists to record John Lennon tracks. U2, R.E.M., Lenny Kravitz, Corinne Baily Rae, Green Day… it’s a long list. It is an interesting and worthy project and I’m sure several of the super-group songs will be hits, but from a purely musical perspective, even the most well-crafted of the covers can’t compete with the originals (it’s not their fault, most covers can’t). There are, however, a few stand out covers. I pick: Jackson Browne’s Oh, My Love, Black Eyed Peas’ Power to the People, Jack Johnson’s Imagine, and Rocky Dawuni’s Well Well Well.

I’m surprised that The Traveling Wilburys re-issue is selling more than Instant Karma on iTunes and Amazon right now. I guess there was a lot of pent up Wilburys demand… To me, these guys are great, but I was always disappointed that they never lived up to the sum of their parts. Bob Dylan, George Harrison, Jeff Lynne, Tom Petty, and Roy Orbison. It just felt like they should have shaken the earth, but instead they put out two very good albums. And this re-issue includes both albums in one package.

(more…)

RailsConf Europe 2007 Registration Opens

Friday, June 15th, 2007

Rails Conf Europe Logo

RailsConf Europe 2007, the three-day Ruby on Rails conference co-produced by Ruby Central and O’Reilly, will be held on September 17-19, 2007 in Berlin, Germany. This week they started taking registrations. Until August 6, the early price is €745, after that it goes up to €895.

Routing Rails

Thursday, June 14th, 2007

Rails Routing book

David Black, author of the popular Ruby for Rails, has released a guide to using and configuring routes in Ruby on Rails. It’s titled Rails Routing and it is part of Addison-Wesley’s Digital Shortcut series.

In their words:

In this short cut, you’ll learn techniques for writing custom routing rules, how to tap into the convenience and power of named routes, and the workings of the RESTful routing that’s had such an impact on Rails development. Along with a thorough introduction to routing syntax and semantics, you’ll find techniques for testing and troubleshooting routes, and tips on the use of this important part of your Rails skill set.

While I’m personally looking forward to learning about RESTful routing, the best part about this guide is how it can help beginners get a handle on what routes are, how they work and how to write them. Even though it is an essential concept in Rails, routing has been poorly documented in the past and often comes across as voodoo to beginners who stumble through it with trial-and-error.

There are two ways to get the PDF of Rails Routing. If you are an Addison-Wesley Safari member (or want to be) you can view or download it ($39.99/month) as well as preview portions of the guide. If you’d rather get just the single PDF instead, you can purchase it through their store ($14.99).

My New MacBook Pro

Thursday, June 14th, 2007

MacBook Pro 15 inch

There were no blog posts yesterday because on Tuesday night I couldn’t stand it anymore and sprung for a spiffy new MacBook Pro. Then I took up my usual “blog time” on Wednesday setting it up and transfering all my files over. More on that process in a minute…

First, let me say I’m very happy with my purchase. I’ve been on a 15″ PowerBook G4 for years and was starting to feel it creak. The increased speed and Intel chip were the main reasons I made the move. The new LCD monitor (which I love), built in iSight, more RAM, larger HD, better graphics card, two-finger trackpad and magnetic power connection are all very nice perks. I can actually use Spotlight now! Spotlight was so slow before that I was better off digging for the files myself.

I chose the 15-inch again. The 17-inch just felt too cumbersome for travel (about an inch longer and wider, and 1.4 pounds heavier) and I use a supplemental monitor when I’m in the office anyway. I went with the matte/anti-glare screen instead of the glossy. It’s supposed to have better color fidelity, but I was more concerned about overhead lights in my office reflecting into my eyes while I develop. And since speed was my main reason for trading-up, I went with the 2.4GHz model. While it does feel a little underwhelming to pay so much money for something that looks pretty much the same on the outside, the improvement under the hood was worth it.

Transferring files and configurations over was an interesting process. Apple lets you do a slick “suck all your old stuff onto your new computer” during installation set up. Since I have a lot of developer bits installed in odd places, I was wondering how much it would grab. The answer is: 100% of the non-developer bits and 0% of the developer bits.

I took a few notes on the steps I needed to take to get everything moved over. In case it’s helpful to anyone else, I’ll post them after the jump.

(more…)

Ternary Operators

Tuesday, June 12th, 2007

Ternary Operator

You probably already know how to write if-then statements in PHP and Ruby.

<?php // a simple PHP example
  if (condition) {
    statement1;
  } else {
    statement2;
  }
?>

But have you discovered the usefulness of ternary operators yet?

(more…)

A List Apart #239

Tuesday, June 12th, 2007

A List Apart Logo

A List Apart issue #239 is out:

I found Frameworks for Designers to be especially helpful. It makes perfect sense: if we all agree it is desirable to adhere to the principle of “Don’t Repeat Yourself” in our code then why shouldn’t the site design follow the same principle? You may be using CSS to not repeat yourself within a site, but what about between projects? Jeff Croft gives some concrete examples of how to build re-usable CSS frameworks.