Vaya con iOS, Entry #3: Some Personal Notes, iTunes U and The iOS Apprentice

Some Personal Notes

As I wrote earlier, I’ve declared a bit of a summer vacation for myself, but that doesn’t mean it’s been all fun and games and loafing about. I mean there’s been some fun and games and loafing about, but there’s also been a little work as well, what with lining up some conversations about work opportunities, updating the LinkedIn profile and old-school resume and of course, learning iOS development, which is what the Vaya con iOS series of articles is all about.

So, with my trusty MacBook Pro, iPad 2 and iPhone 4S, I got to work…

Just kidding — that’s not me.

As I said, with my trusty Mac and iTools, I got to work…

Okay, enough fooling around.

This is really me. I’m at the girlfriend’s place in Tampa. She goes off to work, while I start the day with an energizing swim at the central pool that almost no one in this townhouse complex seems to use:

Sixty to eighty lengths of the pool later, I emerge, shower, get dressed and then it’s time to get cracking:

She has a desk set up in her living room, which I’ve commandeered for my studies and other work. The laptop, mouse, iPad and phone are mine; Tux, the SUSE gecko, IBM bee and Sun dolphin (alas, it’s not in the shot) are hers.

A few people asked about the Nyan Cat sticker. I bought it at — I almost hate to admit this — Hot Topic (they have good pop culture stickers), cut it into two sections and laid it carefully around the trackpad.

iTunes U’s iPad and iPhone Application Development Course

There’s a pretty interesting iPad and iPhone programming course on iTunes U taught by Stanford’s Paul Hegarty. I enjoy his lectured and have watched the first three without zoning out or dozing off, which I must say is a damned sight better than some moments in my colourful academic career. I suppose not being hung over helps.

Over the course, which was recorded as it took place in the fall term of 2011, students were expected to build two complete iOS applications, with each lecture providing more material. There are 19 lectures in the series, which also includes some supplementary sessions as well as the slides for each lecture. It’s a Stanford computer science course without the Stanford tuition — it’s free! All you need is iTunes. If you decide to subscribe, be sure to get the 2011 course, as it covers iOS 5.

Ray Wenderlich and the iOS Apprentice

While researching blogs and other sites with useful information for developers with programming experience but little or no iOS development practice, I stumbled across Ray Wenderlich’s site. It’s updated regularly with new articles about various aspects of iOS development, and there’s also a regular email newsletter. One of the enticements for subscribing is that subscribers get a free tutorial — the first part of a tutorial series called The iOS Apprentice, written by Matthijs Hollemans.

I used to do Windows Phone tutorials back when I was a developer evangelist at Microsoft, and I was curious to see how someone else did it. So I signed up and soon afterwards, I got an email with the download link for the tutorial, a zip file with the tutorial in HTML form, plus XCode project files for the completed application and all the graphics and other resources needed.

I was impressed, especially because this was free. It’s on par with the NerdDinner tutorial for ASP.NET MVC, which I called the best “chapter one” I’ve ever read.

The tutorial is huge and it’s beautiful; it looks as if it was made by Apple. If you turn it into a PDF, it becomes a 117-page book, and it covers the development of a “Bull’s Eye” game, in which you try to position a slider as close as possible to a specified target value. In the process, you learn a lot: you get an intro to programming in general and XCode in particular, setting up UI controls and responding to events, dealing with different device orientations, adding a modal screen, customizing controls with your own graphics, giving your app an icon, dealing with regular and Retina displays, deploying your app to a device and more.

The tutorial was written for people who’ve never programmed before, but it does move pretty quickly. I wonder if complete novices get stuck in the process. However, I found it easy and skipped the parts in which programming concepts were explained, focusing more on the iOS-specific parts. I didn’t find the fact that it was written for beginners a bother, and I had a lot of fun in the process of following along. I even opened another project to noodle with the concepts I was learning from the tutorial.

In fact, I had so much fun with the Bull’s Eye tutorial that I decided to spend the $54 and purchase the rest. I’m currently on part 1 of the second tutorial, in which you build a reminder list app, which covers TableView-based applications. I found The iOS Apprentice more appealing and more packed with useful information than a number of iOS development books that I’d had the chance to read over and that it’s money well-spent.

If you’ve been putting off learning iOS development for whatever reason, go sign up for the newsletter at Ray Wenderlich’s site, get the first tutorial for free and give it a try. You might be pleasantly surprised.


Zero Punctuation on “Spore”: NOOOOOOOOOOOOOOOOOOOO

Oh, how I enjoy Ben “Yahtzee” Croshaw’s game reviews in his video series Zero Punctuation. In this installment, he covers (and savages) Will Wright’s long-awaited game, Spore. Thankfully, he skips complaining about the DRM, which I heard plenty about already. After hearing his review, DRM sounds like the least of the game’s problems…


Zero Punctuation’s Bang-On Review of “Too Human”

Some of my coworkers at b5 were all hot-and-bothered about the demo for the XBox 360 game Too Human, so I decided to download it and give it a try. I played it and was generally less than impressed with both the gameplay and especially the storyline (like Assassin’s Creed, the story’s a rather clumsy mish-mash of swords-and-sorcery and sci-fi genres).

Ben “Yahtzee” Croshaw, the fast-trash-talking host of the excellent videogame review show Zero Punctuation agrees with me. He panned the game in his trademark fashion:


Taking IE8 Beta 2 for a Test Drive, Part 1: “Porn Mode” (a.k.a. InPrivate Browsing)

The IE8 USB key in my computer

Last night, I attended a special sneak preview for Internet Explorer 8 Beta 2 organized by the folks at High Road Communications, who do the PR for Microsoft here in Toronto. Pete LePage, Product Manager of Internet Explorer Developer Division, did the presentation, and also present were Elliot Katz, Senior Product Manager for Microsoft Canada, Daniel Shapiro, Microsoft Canada’s Audience Manager, and my friend and fellow DemoCamp steward David Crow, Tech Evangelist for Microsoft Canada.

Let me get the disclosure part out of the way. Attending this event got me:

  • Free drinks and snacks during the presentation and a free dinner afterwards,
  • One Internet Explorer 8 gym water bottle with a tag inside it saying “BPA Free”,
  • and one 1GB USB key containing installers for IE8 (pictured in my laptop above) and the IE8 Evaluators’ Guide (a Word document that walks you through IE8’s features).

I’ve been to a couple of these Microsoft events before. The one about their “Windows Live” sites didn’t interest me at all, and the Vista one I attended was largely for people who did IT at companies with 1000 or more employees, which really isn’t my area of interest either (and the Vista preview installer they gave me resulted in disaster). This one was a considerably more interesting, as Pete put on a good presentation and it appears that Microsoft is making an effort to match the competing browsers.

Over the next little while, I’ll post articles covering my experiences as I take IE8 for a spin. In this article, I’ll mostly be talking about InPrivate Browsing, which is colloquially known as “Porn Mode”.

“Porn Mode”, a.k.a. “InPrivate Browsing”

The implementation of a browser session in which history, cache and other “trails of breadcrumbs” are deleted as soon as the session is over isn’t new: Apple’s Safari has a “Private Browsing” feature and there’s a Firefox extension that provides the same utility. However, for those not using Macs and especially those who aren’t the type to download and install Firefox and then install a plugin — and there are lots of these people out there — IE8 may be their first opportunity to try out such a feature.

Banking, Not Wanking

In his presentation, Pete was careful to take the “Banking, not wanking” approach when covering InPrivate Browsing, suggesting all sorts of non-saucy uses for the feature, including doing online banking, shopping for surprise presents for your spouse, surfing from a public terminal and so on. The Microsoft people present took my constant referring to it as “Porn Mode” in great stride, and I thank them for having a sense of humor about it.

The Problem

Convenience features like history, cache, automatic username and password field-filling are handy, but they sometimes have unintended consequences. For instance, suppose you, as a healthy, open-minded adult, like to look at videos featuring ladies without pants sitting on cakes at Let’s also suppose that a friend asks to borrow your computer for a moment to see a funny cat video at As your friend types in the letters for “” in the address bar, this happens:

Screen capture: A user starts to type in "" and as "you" is formed, my "" history appears.

This sort of browser-assisted embarrassment takes place more often than you might think. I’ve seen it happen firsthand, and it’s done everything from causing a little red-facedness to actually thwarting romantic possibilities. And you thought computers were supposed to make our lives easier!

The IE8 solution, InPrivate Browsing, is accessible through the Safety menu (shown below) or through the control-shift-P key combo:

Screen Shot: IE8's "Safety" menu, with "InPrivate Browsing" selected

This opens up a new, separate browser window for InPrivate Browsing, which does not keep “breadcrumbs” like history, cache data, cookies and so on. The address bar for InPrivate Browsing windows has the InPrivate logo as a visual cue that this particular session won’t leave a trail that will embarrass you or give away your secrets:

Screen Shot: A new "InPrivate Browsing" window appears

Maybe it’s me, but I think the “InPrivate” graphic in the address bar is a bit too subtle. Then again, a more obvious visual indicator (say, giving the InPrivate browser window a different color) might be an invitation to shoulder-surf.

Hey man, I had to see if it works, right?

Screen Shot: YouPorn's title page

I swear, I had to poke about the site a little bit in order to test if my History was being saved. It’s all in the name of application testing!

Screen Shot: Blurred-out YouPorn video page

After a little “research”, I closed not just the InPrivate Browsing window, but the whole browser, then started it up again. Then I proceeded to type “You” into the address bar. Under normal circumstances, my history would be there for all to see. But it wasn’t!

Screen shot: None of my InPrivate browsing history shows up

For those of you who need to clear the cache, cookies, history or other data for any reason, there’s also the Delete Browsing History item in the Safety menu:

"Safety" menu with "Delete Browsing History" item selected

And it provides a number of deletion options:

The "Delete Browsing History" dialog box

And there you have it: a quick tour of IE8’s much-snickered-about “Porn Mode”.

Keep watching the blog for more posts about IE8 as I use it more and cover its features. Perhaps I’ll cover the development tools next.


Gift Idea: “RailsSpace: Building a Social Networking Site with Ruby on Rails”

Cover of the book “RailsSpace”Today marks the start of my fourth week at TSOT, a Toronto-based startup that develops custom social networking software in Ruby on Rails. The company’s first two products are FraternityLive and SororityLive, which as you might imagine are targeted at fraternities and sororities, with future plans for creating similar apps for other fields.

I was hired primarily for my tech evangelism cred and broad development experience (Visual Basic, Python, PHP, Director and Java from the rough-and-tumble Java 1.2 days) rather than for experience with Rails, on which I’d done only a little spare-time noodling. This means that a good chunk of my time during this first month on the job has been split between getting familiar with Rails as well as TSOT’s apps.

Just before my first day at TSOT, I went down to Boston to join my in-laws for American Thanksgiving. While there, I decided to take advantage of the strong Canadian dollar and Thanksgiving weekend sales to do a little job-related book shopping. Although I had the PDF edition of Apress’ Practical Rails Social Networking Sites, I was pleased to stumble across another book on building social networking apps in Rails: Addison Wesley’s RailsSpace: Building a Social Networking Site with Ruby on Rails. I figured that if I find a book that covers the sort of development work that I’m about to start, I should buy it on the spot (after a quick skim of the book while in the store, of course).

Of all the books I’ve read on Rails development, this one’s my current favourite. Yes, there’ll always be a special place for Agile Web Development with Rails, but I have to say that I like the pacing, ordering of topics and the presentation of material in RailsSpace a little bit better. I like the way that authors Michael Hartl and Aurelius Prochazka take a slightly different approach to teaching Rails, from going with a social networking app rather than a “store” app to their clever visualization of Rails’ directories as a pie chart, shown below:

Rails directories, laid out in pie chart format
Graph adapted from RailsSpace
and borrowed from Weblog of Fernando Reig Matthies.

So take it from a guy who’s paying his rent by working on Rails social networking apps: if you have some development experience under your belt and are looking to pick up Rails in a hurry (or if you’re looking for a gift for someone who needs to learn Rails in a hurry) I recommend:

Here’s what other folks have to say about the book:

  • Review at by Charles Harvey: My favorite of the Ten Ruby and Rails Books on my desk — “The authors’ programming style(s) are easy to read while following and teaching the Ruby/Rails community practices. The book uses output examples after each snippet of code so you can follow along not wondering if what you just did worked.

    The example app you produce while working through RailsSpace is not YASNS (Yet Another Social Networking Site) rather a (LBERBPS) Learn by Example Rails Best Practices Site. It was fun for me as I was tired of shopping cart, and book/music store examples.

    I don’t know how to put it into to the right words, but this books code flows.

    I always enjoy the rare book that sets a standard of excellence, and that is what puts this book at the top of my Ruby on Rails Library.”

  • myCATs: An excellent Rails tutorial for the intermediate Rails Programmer — “This book is just plain fun. As the title implies, the focus is on building a social networking site using Ruby on Rails. The depth of knowledge of the authors, Michael Hartl and Aure Prochazka, is evident right from the first chapter. The examples are relevant and well explained, with clean, consice, well-tested and correct code.”
  • Nate Klaiber: RailsSpace review — “I may seem cynical about social networks, but this truly book pays attention to the small details. Building a social network is a great tutorial that covers many aspects of Rails and building your own application – no matter what it is. It has several callout boxes that give more explanation where it is needed. It discusses the importance of testing. It shows the importance of refactoring. All of this comes together to make a great reading experience and knowledge gained. If you are a Rails professional, there might not be a whole lot new for you, but if you are just beginning Rails this is an excellent full-blown tutorial. Even if you don’t want to create a social networking site, the foundation and principles set in this book will give you the knowledge needed to start building your own application.”
  • ComputerWorld: RailsSpace hits the Ruby on Rails learning sweet spot — “…if you’re already a proficient OOP developer — or a beginner who prefers learning by example — RailsSpace offers useful insight into what the Ruby on Rails hoopla is all about.”
  • A.P. Lawrence: RailsSpace — “I liked also that the project paid attention to both looks and ease of use without clouding up with too much detail. The design is simple, but with enough attention paid to presentation to understand how to accomplish that in ROR, and the same is true for niceties like data validation: they do enough to show the concepts without burying us in it.

    The authors also included deliberate mistakes – that is, design deficiencies which you might notice before they get around to pointing out the problem. That’s good too, because often the best way to understand why you need to do something this way is to see what happens when you don’t.”

  • WebChicanery: RailsSpace – The Book — I’m somewhat skeptical of these “build a project and learn” type of book, but this book may be one the the handiest book on Ruby that I’d had a chance to read. The authors approach it was a very pragmatic and structured standpoint, all while explaining some neat steps and additions they’ve thrown in along the way.”