coding in the rain

By Andrew Carter

Can WWDC Be Fixed?

Apple announced WWDC 2012 this morning. The event will be held in San Francisco June 11 to 15. The tickets went on sale around 5:45 AM Pacific time. Fortunately for me, I was in Austin, TX and eating breakfast when the word got out (7:45 AM Central time). Since I haven't gone for a few years, I jumped on my chance and got my pass. The conference sold out in about 2 hours.

Apple did make some good changes this year. They are no longer allowing resale of registrations. Also, they are capping each organization to 5 passes. These are both very good moves. However, it still doesn't solve the simple supply/demand problem. More people want to go than can get tickets. Today, the west coast paid the bigger price since many people weren't even awake during the entire time tickets were on sale.

Clearly, something else should be used to allocate tickets. The following are some alternative methods to allocate passes.


This is probably the simplest option. Allow people to pre-register for a ticket lottery. Apply the same rules as sales (no transfers and no more than 5 per organization). At a specific time, run the lottery and allocate the 5000 or so tickets. Give lottery winners 24 hours to redeem them. Any remaining tickets could either go up for general sale or further lottery.

The problem here is that you may see more developers than really want to go enter the lottery. It is the most democratized form of allocation. There is no priority being given. There probably would be pressure to have VIP passes that circumvent the lottery. It could be hard to keep out some high profile companies.

One Pass per Active Developer Account

In the old days, you could buy an ADC developer account. In exchange, you would receive special ADC mailings 4 times a year, a significant hardware discount, and a WWDC pass. If there are less than 5000 organizations, give every active account the opportunity to buy one pass. Put any remaining passes up for general sale or lottery.

Priority Allocation

Another scheme could be to favor first year developers. If you are in the first year of your developer account, you get a pass. The problem with this is that you could see individuals creating new organizations every year to get a pass.

Round Robin

If you went last year, you can't go this year. If the pool isn't big enough (i.e. less than 10,000 potential attendees), you could go to a system where you can attend 2 out of 3 years. The idea would be to sideline enough potential attendees to control access.

Local User Groups

The final solution I can think of is to organize user group events for the week of WWDC. You could do live streaming of sessions, spread Apple evangelists to key regions to host in person events, and other outreach tactics. The idea here would be to make it more of an active global event and rely less on the primary event.

Of all the solutions, I think one pass per active account is the best solution. Since they are offering 5 per organization, it seems more fair to allow all organizations to have one pass and then offer what is left to others in an organization. I think they can probably combat the problem of people creating accounts just for WWDC by charging for the pass upfront as part of the subscription. You would need to be pretty serious about going to pay for the ticket up front. This would at least allow organizations that know they will send at least one person to lock down their spot.

As many WWDC veterans will tell you, a huge amount of the value is the networking with other Mac and iOS developers. That alone is incentive to attend. Hopefully, Apple can find some sort of equitable solution to make sure as many people as possible can actively participate in WWDC.

RailsConf 2012 Day 3

Today was the final day of RailsConf. The last day offered a couple great talks. Yehuda Katz talked about The Next Five Years for Rails. Honestly, Yehuda's talk should have been the day 3 keynote. It was probably the most honest and informative talk of the entire conference. Yehuda did a great job calling out what it is about Rails that attracted all of us to the platform in the first place. I agree with him that the next big thing should be making Rails just as good for JSON API services as it is for HTML. It's a mixed world more than ever. Building web services whose clients are primarily mobile devices only is increasing.

Nick Quaranto had a great tour of Basecamp Next: Code Spelunking. It was actually nice to see that 37signals has some of the same kinds of tradeoffs in their software as everyone else. One of the big takeaways is to always be pragmatic about things like changing data stores. There were numerous things I want to investigate including all the cool JavaScript console tricks, using GitHub for API documentation (see 37signals BCX API), and the strong parameters gem.

Jared Ning had a nice overview of minitest. If you hadn't seen it before, it was a good tour of what minitest is about and how it draws from both Test::Unit and RSpec. I'm already in the minitest camp so there wasn't a lot new for me. I liked the explanation Jared used to talk about mocking and stubbing. I agree with his advice - use mocks and stubs sparingly and only after you test against the real thing.

Overall, it was another great RailsConf. As a developer that switches among multiple platforms and languages, it's always great to dive into nothing but my favorite language Ruby for a few days. Rails feels to me like it is continuing to mature. It's moving a little slower now but that's ok. There is still lots opinions among the faithful and that's healthy. As always, I look forward to apply what I've learned to our own projects.

RailsConf 2012 Day 2

The second day of RailsConf 2012 was another packed day. A couple of the sessions were great and what I wanted to hear about. I also survived my first presentation at RailsConf.

Aaron Patterson presented the keynote in the morning. He didn't try to compete with his over-the-top presentation from last year. Aaron was downright subdued compared to his previous talks. He seemed to be encouraging a bit of a back to basics appeal. He talked about normalizing things like the queue interface in Rails among other topics.

The first talk I went to was by Mike Moore on presenters and decorators. Mike gave a very good talk. It was in the spirit of how he does it. The lessons were great. He did an excellent job breaking down the decorator, presenter, and mediator patterns. It was great timing for me as I've been looking at these very things for a project I'm doing now.

Next was Ilya Grigorik on making the web faster. This was a good overall talk on leveraging a number of tools and techniques. Since Ilya is a Google engineer, he was heavily biased to the Google tool kit. However, his advice was valid despite what toolkit you might use. A key take-away was focusing on perceived load time for the user over most other performance metrics. It's a really good point - the user's experience trumps most anything else.

After lunch, I attended Will Leinweber's talk on schemaless SQL in Postgres. There are some pretty amazing things coming to PostgreSQL. The new key value hstore is very intriguing. They are also integrating V8 into the programming space of Postgres. This opens up some new scenarios that compete directly with solutions like MongoDB. It's early for much of this but it's a very forward looking approach for Postgres to be taking.

My colleague Steve Jang and I presented a short tour of our automation project for Hulu devices called Bender. We use XMPP, Ruby, and JavaScript to create a communication framework for controlling devices and running scripts. I think the talk went well. We weren't sure if the material would be useful to people or not. We got some great questions and I'm glad we did the talk.

Tomorrow the conference wraps up. It's been great talking Rails with so many people. It's definitely a different conference than in the past but it is encouraging to see some different people leading the way.