The final schedule hasn't been posted yet, but I'm pretty sure I'm speaking at Portland Code Camp this year. The "this year" part is probably obvious. I'm clearly not going to speak at last year's Portland Code Camp, and next year's is far enough away (probably sometime next year) that it's a bit soon to be talking about it.
I haven't given a talk in years. The last "real" talk I gave was in 2006. Or 2007. Or 2006. Or both. The last "real" talk I gave was in 2006 and 2007. After that, I think I gave a couple internal (at Microsoft) presentations that were meant to communicate things or something.
Maybe I should've written all this down somewhere. Maybe I did, and I just don't remember. Maybe I should've made a note of that.
Maybe I should stop trying to figure it out. I clearly have no idea where I've been or what I've been doing for the past three years.
But I can state with the utmost confidence that I think I might possibly be speaking at Portland Code Camp 2009 (perhaps). It'll prolly come down to interest in the session. Right now there are 59 people who've ticked a little box that means, "HELL, YEAH, I WANT TO ATTEND THIS SESSION. OH, HEEEEEELL YEAH." Those 59 "HELL, YEAH"s put it up there among the top few, so it's prolly gonna happen. You could help by registering for Code Camp (if you plan to attend and haven't registered yet), stopping by the session list, scrolling down to my session (or doing an in-page search for "rory"), make sure you're signed in (that's hardcore important - gotsta be signed in), and then tick the "HELL, YEAH, I WANT TO ATTEND THIS SESSION. OH, HEEEEEELL YEAH," box. Note that, for some reason, the caption for the box is simply "Interested:". Tick that box (for my presentation, d0ofis), and know that you've done your duty in the Army of Neopoleon. Congratulations, Private Whateveryournameis.
I'm also trying to draw people in through my speaker's profile. Rather than talking about, I don't know, why I'm qualified to give the talk, I use the valuable space to tell you a little about my personal life and an experience I had at Fred Meyer recently that pissed me off.
So I think that's gonna help. Big time. HELL, YEAH.
The session you're rigging the Code Camp ballot box for is on iPhone development. Not on making iPhones themselves. That's a class that's delivered to factories full of shoeless Malaysian children. They're already very good at what they do. Plus, if we all learned how to build iPhones, we'd put those poor kids out of work, and then what would they do?
Yeah. You're right. They'd probably work at the Nike factory just down past the plutonium factory across the mud-road from the jungle swamp they live in.
Earth is a weird place in 2009.
To clarify, then, my session (if it happens) is going to be about developing software for iPhones. That way nobody gets put out of business. Except you when your job gets offshored to shoeless Malaysian children who're tired of making iPhones.
Sorry. I'm just kidding. I don't want to freak you out. No.
Your job is actually getting shipped to China.
Ha ha! Ha ha ha!
Ha ha ha ha!
No. I'm kidding.
It's getting shipped to India. Then the Indians are going to "near-shore" it to China. From there, a Chinese employee will be given your Social Security number (you shouldn't have subscribed to that funny-cat-pictures mailing list), assume your identity, travel to the US, come to your home, put on your bathrobe, and become you. The hourly rate he can get here is far higher than what he can command back home.
To balance things out and get you out of the way, you will then be put in a crate and shipped to Malaysia where you will become a shoeless child working at the iPhone factory.
So, you will be learning how to build iPhones. Just not in the way you've always dreamed.
And what makes all this possible?
Computers!
Which I'll maybe be discussing at this year's Portland Code Camp.
Should my session be chosen, and should you have some interest in attending, here's what to expect:
- You don't need an iPhone. If you want to develop for the iPhone, you need a Mac, but you don't need the phone itself. There's a simulator (that's not a typo - it's a simulator - not an emulator - you might get it confused once or twice, but it quickly tattoos the inside of your brain with knowledge of its unique horror and you'll never misrecognize it again).
- The world's most fastest introduction to Objective-C in the universe. Objective-C is the language you will use to develop for the iPhone. It's your only officially sanctioned option. In that, it's not an option. I'll admit right now that "option" was the wrong word. Objective-C is compulsory, and you'll be learning it whether you want to or not. If you're too chicken, then maybe you should attend a session on how to avoid challenges and continue being a sissy. Yeah. I said that. Yeah.
- What you'll need to make the iPhone programs. Just as you'll learn the ins and outs (if I have time - it might be the ins or the outs, though I'll try for both) of a new language (by "new" I mean a language that left the Nerd Womb suckling a can of New Coke while watching Max Headroom), you're also going to learn new tools (regarding use of the word "new": see previous parenthetical aside). I'm going to show you where Apple asks for your personal information in exchange for access to the dev tools.
- An overview of the most common types of iPhone apps. You might not realize it - either because you're unobservant or because you don't own an iPhone - but there are only a few fundamental "types" of iPhone app. I'm talking about structure here. As we've seen with apps like iFart, you can make any kind of app you want, including really stupid, disgusting, embarrassing, stupid, awful, stupid apps. Stupid awful apps that somehow held the top spot in the iTunes App Store for weeks. Stupid awful apps that were purchased by people like you, thereby solidifying their place in the iTunes App Store hall of fame. If the App Store had a hall of fame. It doesn't. But if it did, you can bet iFart would be in there. I'm not kidding. I wish I were. Oh, god, I wish I were.
- How to slap an app together and then run it in the simulator. This includes the most effective way to swear at the simulator when it tries to ruin your life. I might even share some secret tips on how not to do things that will upset the simulator. And how to detect the simulator's lies. Yes - the simulator lies. It will lie to you. Together, we'll look at how to create an iPhone simulator polygraph.
- I'm going to talk about the process of taking your app from the simulator to a device, and then from a device to the App Store. If you're used to Windows Mobile development, then this'll be a real eye-opener for you. Apple made these things about as convenient as surrounding your home with a moat of sulphuric acid populated with sulphuric acid-resistant crocodiles that have the ability to squirt sulphuric acid out of their eyeballs at you and blind you with it and then eat you. The crocodiles have been trained to laugh at you and film the whole thing and then put it up on YouTube where the videos get millions of views. Also, the crocodiles wrote iFart. That's where they get their funding.
- Sprinkled throughout, I'm going to comment on things I don't know about, but I'm going to do it with an air of authority that you will find impossible to resist. You'll leave with a bunch of new "facts" that are really just things I made up on the spot to try and make myself look smart. Or things I make up in response to questions I don't know the answers to. I'll even do this for yes/no questions, so look out.
- There will inevitably be something said about other platforms - Windows Mobile, Android, blah blah blah - I'll do everything I can to offer my own biased point of view on these matters. If there's time, maybe we can also argue about Commodores vs. TRS-80s vs. the Atari ST vs. the Amiga vs. Linux vs. Unix vs. Republicans vs. Democrats vs. Apples vs. Oranges vs. Anything-else-we-can-have-pointless-religious-battles-about. It's gonna be SOOOOOOOOO fun.
If you're the rare sort of person who likes to show up to these things prepared, then I strongly recommend you go read as much of Apple's Introduction to Objective-C as you can. It's a (sorta) short, (sorta) easy read, and it'll give you a lot of (sorta) useful context. I advance this recommendation more strongly if you see learning as a competition. It's your best chance at being the person in the room who knows more about the subject than the presenter. You'll be able to interrupt to say things like, "But isn't it truuuuue.... that the best practice for borking the thingy is to twaddle the widget in a separate process?" to which I'll respond, "I guess so. I don't really know what I'm talking about." Then you can sit back, satisfied that you've made me look like an idiot. Know this, though: I don't care. I've given a lot of talks. I've dealt with people like you. Also, I'm sleeping with your wife, so I kinda guess the last laugh's on you, jackass.
It should be fun for everybody.
Hope to see you there!