iPhone 3G woes

Well, I tried again today to get a new 3G iPhone for Su. We went over to the Michigan Ave. store in Chicago and tested our powers against fate. An Apple employee in an orange shirt said: “let me start by saying some things:

  • From this point in the line (and there looked like there were maybe 30 people in front of us), the wait will be 4 hours.” Ok, annoying, but doable since we gave up last time(on Friday) because of the wait.
  • “We are out of the 16GB black iPhone.” Non starter.
  • “We are the only store who has iPhones left in Illinois.” Wow, did Apple really underestimate the sales volume?

So what do I think of all this?
I understand that Apple(well, really AT&T) doesn’t want to sell phones without a plan. But there are *so* many ways without making people go through all these hoops. They could have:

  • Asked people to pay the full unlocked price. Then when you sign up with AT&T, you get a credit for the subsidy.
  • Asked people to sign up online at home with all the information they need to buy the right iPhone and the right plan. Then you just go to the store and give them an activation number. Done and done.
  • Provided more iPhones to AT&T stores. There are a lot more of them and would have made more people happier sooner.

Why didn’t Apple think of all this and just get it done?

  • A lot of people tend to balk at a large outflow of money (even though they would get it back right away).
  • Generally speaking, your average consumer is an idiot and doesn’t know how to sign up for all this stuff on-line. That being said, I hear that a lot of purchasers are previous iPhone folk so theoretically they should have *some* idea what they are doing. On the other hand, AT&T web sites are totally crap.
  • Given that they are running out of iPhones anyway, this point might be moot. My other suspicion is why not let people buy all their iPhone accessories at your store rather than AT&T’s store. Not to mention, they might be inspired to buy more general mac hardware.
  • Apple likes to make people wait. I attended WWDC 08 and there was nothing short of a long wait to get inside to watch the keynote address. Waiting creates lines which creates hype in the news which (I guess) sells more iPhones.

So what are the next steps?
Probably wait a few more days and see if inventory levels of the proper 16GB black version become available. Maybe, just maybe, it’s worth waiting for the 32GB version?

NYC to Chicago move

During a rough week of farewell parties, it was time to pack up and prepare for the move back to Chicago.

Here are the significant moments:

  • Farewell gathering at George Keeley’s: I think this is the best bar in NYC. Perhaps I’m biased by the easy location (2 blocks away). Perhaps I like that they have a great selection of Belgium beers. Perhaps I like that they have DirecTV and provided a mechanism to watch the Bears play when they weren’t broadcast nationally. Perhaps I like the free popcorn. Perhaps I like the hot and tasty home fries. Perhaps I like the tasty bacon cheddar burgers and chicken sandwiches. Perhaps I like the great bar staff who always remembered my name and gave the occasional free round. Perhaps I like the spicy bloody mary’s (which weren’t Uncle Bill’s recipe, but a solid second place). Perhaps I always had a good time when going there. Anyway, it was a good time had by many(all?) with Yat, mr. and mrs. schwardo, the Potts’, the Petko’s, Erika, and Su and I.
  • Packing up my full-scale library of books: Not much for me to say about this as the main (full) effort of packing was done by Su. I’ve got a lot of them and now (thanks to Su) there is even some kind of inventory list.
  • Packing up the stereo: This is now the 3rd time my entertainment system (receiver + speakers) has been moved. Some would say that Dolby Digital 5.1 is outdated technology, but if one must live off of OTA(over the air) broadcast, then that is the best one can get anyway. Suffice it to say that the cardboard has held up and probably no surprise that the styrofoam hasn’t degraded in the least.
  • Farewell party #2: One party is never enough and it was necessary 🙂 because not everyone could make it on Sunday. What could only be construed as a grammar error (OR vs AND) made this effort a bar/pub crawl. We began the event at Bra Bar. Mike is the great bartender there who has never left us dry or poor. This event was attended by kucerado, Peri, Adam, Su and I. After several rounds, we made our way to bar #2: St. James Gate. Though this bar is relatively new, it is destined to become a local favorite due to its location and friendly authentically Irish staff. The food isn’t bad either (but it’s no Keeley’s). Several more rounds of drinks and the addition of Adam’s girlfriend’s new roomie and we got the signal from kucerado that it was time to go. (As a side note, for any future bar crawl, kucerado is the guy you want in charge. His unique combination of time management and drinking prowess keeps the crawl on schedule.) We tried to go to Keeley’s next, but for some reason they were crazy busy. This wasn’t the end-of-the-world because we had a back up bar of Prohibition. They make a lovely (yet expensive) mohito and their ‘works’ burgers are pretty damn tasty. Since this was the ‘last’ bar, several rounds became many, and there was much drinking to be had. The live music was great. In true kucerado fashion, he went out and bought food so that he could make dinner at home. I’m way too lazy (and drunk) to do that kind of thing on a drinking night, but he’s got game. Adam’s gf showed up and our group size was maxed out. It was snug in the booth, but it’s amazing how that didn’t matter at the time. Mission accomplished.
  • Getting rid of the furniture: Friends of Kevin came by on Thursday night to take all the furniture that we no longer needed. I’ve been through a lot with the black couch. I would say that falling asleep on it with the TV running will never be the same again, but I’m fully optimistic that another couch will rise up to take its place. The desk, the chair, the table and chairs (for poker), the couch, and the futon(that should have been a Lazyboy) now begin their new life with new owners in new locations.
  • Packing up the wine: Though not as ritualistic as the stereo, packing up the wine was itself a sacred and important task. Because I don’t know when I will have the ‘new’ place in Chicago, all of the stuff going with the movers may sit in a truck/storage for 1-2 months. Any wine drinker worth anything knows that you can’t mess around with temperature. Sitting in a truck for the hottest summer months seems like it would destroy the collection (and basically mean writing off major $$$). To avoid all this loss of wealth, we purchased a 10 boxes (each holds 12 bottles) to keep the wine safe for the road trip.
  • Last NYC Domino’s delivery: Now I’m sure that most of the NYC faithful will roll their eyes that we (Su and I) order from Domino’s. But really, it’s the best delivery pizza one can get in the city (at least in the Upper West Side). I won’t go so far as to say it’s the best pizza in NYC (I think that Patsy’s and Grimaldi’s do a good job), but it’s definitely up there. Say what you want about chains, but Domino’s (at least this location) really had their game on. When you add in the cheesy garlic bread and the chicken kickers, it was really hard to find a more satisfying quick and easy delivery meal.
  • Real movers show up: The arrived Friday morning to do the rest of the packing (which wasn’t much, but they sure did make it last). I left Su to go to work, but Su said they did a ‘good job’.
  • Street meat lunch: Pretty sure this is the best street meat in NYC. You get a monster platter with meat salad, rice, pita, white sauce and hot sauce. If you don’t want the rice, they just give you more meat. The best part? Only $5. As with most street meat, it is a proper drinking base.
  • Farewell party #3: This was a work gathering, so a bit more toned down than the previous ones. Nonetheless, it provided a good opportunity to say goodbye to a lot of my co-workers.
  • Moving day: Without going into a lot of detail, it’s safe to say that I wasn’t 100%. We got up (too) early to rent the truck and load it up with the wine, relevant electronics and clothing. This was a tiring and sweaty experience. In case you didn’t do the math, it was 120 bottles of wine and 2+ levels of stairs to units that have 14′ ceilings (what does this mean? lots of stairs). We started driving at 9am, but not before I snapped off a bunch of pictures of my now empty apartment. I drove for 2.5 hours until we were safely on I80. After that, it was pretty much Su driving the rest of the way. As kucerado is to the crawl, Su is to the move. She gets the MVP for her skill in packing and driving. We made it to Chicago by about 9pm local time. With the assistance of Chris we were able to wrap up the move.

What a week!

WWDC 08 — all wrapped up

So I’m writing this final blog about WWDC 08 sitting comfortably in my NYC apartment.  Things were a bit too busy yesterday and I was trying to maximize time with my program and the Apple engineers.  After that, I unfortunately had no wifi access to do blog posting.

Due to the excessive partying that occurred on Thursday night, I unfortunately missed out on the two really interesting sessions (Master Table Views, Tips and Tricks). Ah well. I should be able to catch the videos in a day or two.

I had one more session with Apple User Interface engineers which (though not as productive as the first session) added some new ideas.

The rest of the day was spent in the iPhone lab implementing those and other ideas.

So…final thoughts:

  • Developer conferences are exhausting. Aside from the Thursday night debacle, there is a lot of work keeping up with all the sessions. Though there is a lot of energy in this environment, it also takes a lot of energy to get the full value add. This was a similar experience to the Java One conferences I attended several years ago
  • Don’t wait until the last day to buy apparel at the Apple store. They don’t have much selection and all the sizes that make sense
  • iPhone platform development is big. There are a lot of people trying to get in it because they see the vast potential.
  • This has to be the only event I have attended that included an usually large number of men with pony-tail hair cuts

That’s all for WWDC 08. Later.

WWDC 08 — Day 4 wrap up

I started the day with a session looking at the address book api. No big surprises, but I was excited to learn that I could leverage the ‘viewers/editors’ without actually saving the data to the database. I think that the ‘contact’ viewer/editor is actually a great ad-hoc widget which has applications outside of the address book space.

Next, I went to yet another session about debugging and profiling iphone programs with xcode and the associated tools. Session didn’t teach me too much, but occasionally you see some feature and go ‘yeah, that’s cool’. I left early so that I could ask all of my address book questions in the lab.

While in the lab, I met some guys that were doing professional iphone development(Kyle, Oskar). We talked a lot and their experiences and advice were very useful. Conversation went through most of lunch, so I ate quickly and headed to the next session.

Probably one of the first ‘not a beginner’ sessions was ‘Mastering View Controllers’. It wasn’t really mastering, but it was a refreshing change of pace from the ‘here is a view controller’ session.

I spent the rest of the day in the lab trying to improve the Wine Tool program. Well, until about 6:15 pm when the lab was closed for the party.

The party was at Yerba Buena gardens. It was crazy filled with people, which isn’t really surprising when you consider 5000+ attendees and associated apple engineers and related staff. I drank some crappy red wine and listened to the Bare Naked Ladies. They claimed to be Apple afficianados and were cracking jokes about Apple stuff all night. I liked their music and had a pretty good time (with the one exception of being really cold–San Francisco has crazy weather). I even got interviewed for some company in Santa Monica(I won’t be moving there any time soon). I bumped into Aaron and Curtis (and new guy Danny) at the end of party and we hit a bar (Dave’s). Let’s just say that I was over-served, but there were some good times.

WWDC 08 — D3 wrap up

Day 3. The day when you take all the lessons from Tuesday and try to put them to good use.

I began the day getting an overview and detail of Core Graphics and Core Animation. In proper Apple style, these frameworks are slick and easy to use. I don’t think that some people appreciate the difficulty of designing a framework. You have to balance power (ie leverage) with flexibility. You have to put everyone else’s shoes on and make sure that you haven’t limited some cool innovative idea because of some arbitrary design decision. But as I said, Apple has passed with flying colors on both counts.
The only downside of the presentation was that we couldn’t get the demo code for how they do the photo ‘house of cards’ demo. If you have an Apple TV, you know what I’m talking about. That shows the power and slickness of Core Animation.
In terms of what I learned, the most useful piece of information was about rendering and how the coordinate system is used to do everything. What does this mean? It means that the renderer always understands how much ‘space’ or ‘resolution’ there is to draw something. So, it always draws it in the best way possible. For example, take an iphone and run either safari or the maps application. When you zoom in, the screen is fuzzy for a moment and then gets really clear. That is the renderer + coordinate system magic in action. What is the take away from this? All displayed graphics (especially text) will look good on any sort of device.

The next session was about controls, views and animation. This was a great walk-through of building a cool looking app from the ground up. What do I mean by ‘cool’? Basically, how to leverage all the built-in animation capabilities of Cocoa Touch as well as the low-level apis of Core Animation. I think the example code for this session will be a great blueprint for custom animation of any iphone/ipod touch application.
What really blew me away was how easy it was to do what I would have considered extremely complex. For example, you can define a path (straight line, circle, random, etc.) and have the animated item follow it. You can change acceleration and apply all manner of transformations too. Very cool.

Lunch was sort of lame today. I unfortunately sat at a table of mostly Apple Engineers and they didn’t seem to want to talk too much. On the plus side, the lunches have had great food (pretty much sandwiches with a side + dessert).

After lunch, I got in the know about the new Push Notification Service. I can’t talk too much about it, but I will say that it will give an well thought out application additional polish.

The next session was about multi-touch events and gestures. Again, very interesting. At the moment, nothing pops into mind about how to use them more effectively in the application.
The funny moment at Q&A was a developer who wanted 6+ concurrent touches but wouldn’t explain what his program was trying to do. I have trouble with 2 touches. I can’t imagine using 6.

I finished up the day with with a lot(4+ hours) of programming trying to incorporate everything I have learned so far into the now infamous Wine Tool. I’m pretty happy with the result and I think the user experience (which was my theme of the day) has vastly improved.

WWDC 08 — Apparel

Here are shirts/fleec that are available at the store. Let me know if anyone wants anything. Store closes on Friday at 2pm local time. Note that there is only one women’s shirt (the white one) and I didn’t photograph the kid shirts, but they are there too.

WWDC 08 — D2 wrap up

Day 2. The day when developers get down to the nitty gritty of building software with the energy inspired by Day 1’s keynote messages (pseudo-sarcasm).

I began the morning talking with a networking expert who offered several opportunities to optimize my client/server interaction. The key was the program tcpdump that let me view all the interaction on the socket. I also learned something cool about the Core Foundation event run loop (which in hindsight I should have realized). Basically, it is completely event driven. What does this mean? It means that you can do cool things like sending a bunch of socket requests via the ‘async’ api and not have to mess around with threads.

Inspired by how neat the networking stack was on mac/iphone, I decided to go to the Bonjour session and see how good their service discovery model worked. Short answer: pretty awesome. In true Apple fashion, they have created a very simple and intuitive way to register, browse, and connect to servers anywhere. I haven’t thought of a great way to use this feature in Wine Tool…yet.

I had lunch by myself but managed to meet some garrulous folks from Kansas City (Missouri, not Kansas). They (and this other guy from Manhattan) were new to iPhone development, so I ended up talking more than listening: explaining objc, slamming xcode, and wondering what Apple would do next.

I had a very productive session talking with a user interface guy (not a coder, but a looks and feels expert). He provided a lot of good ideas about the interaction which I will be incorporating to the future release of the Wine Tool.

For some crazy reason, I decided to go and learn about the Core Audio architecture. After being a bit perplexed about the api (because I wanted to do simple record/play), I thought this session would be the answer. Unfortunately, the session didn’t really deliver. It seemed in violent opposition to the simplicity of a service like Bonjour. Ah well.

After going to an xcode session later in the day, my fears were realized as certain features that I thought were bog standard on an IDE would be coming soon. The long and short of it is that I don’t think xcode was designed with keyboard people in mind. And as far as I can tell, a lot of the engineers seem to be more ‘mousey’ than ‘keyboardy’.

I had enough sessions for the day, so I decided to spend the last ‘period’ in the iphone lab where I could ask more UIKit and xcode questions. Based upon some of the xcode engineers I will grudgingly admit that things weren’t as bad as I originally made them out to be. Not surprising, as learning is the whole point of this conference. I also got to work with the designer/implementor of UITableView which was great as I had a ton of questions for him. It’s pretty cool being able to talk to the designer and find out what they were thinking in terms of apis and how they would be used.

Going to try and incorporate everything I have learned tonight so that I can start a whole new set of questions tomorrow.

WWDC 08 — D1 wrap up

I didn’t get to post this until this morning as my hotel wireless doesn’t work and I chose to go out last night.

Anyway, the first day was pretty good.

There was lunch following the keynote. I didn’t know for sure if there was going to be food, but it appears that the high-priced entry ticket includes all you can eat/drink throughout the day. I ate with several guys(Aaron and Curtis) that I meant standing in line all morning. They were both here for the IT track and worked for educational institutions.

After lunch, there were several more ‘state of the union’ speeches. The first was for Max OSX. There was a lot of information there, but I have to admit that I nodded off in a couple sections (probably due to a mix of the jet lag and food coma). Things of note:

  • Apple thinks multiple threads are bad and that you should use GCD(Grand Central Distribution) along with this block concept. Perhaps they read the Knuth essay that says parallelism is bad because it makes algorithms hard (paraphrasing).
  • Snow leopard will be out in a year. No new features and will incorporate all the slimmed down QuickTime stack that has already been used for the iphone/ipod
  • System apps will be 64-bit compatible
  • etc. I didn’t take notes, but I’m sure there were a couple other items

The second was for the development tool set. There was a lot of rah-rah about how xcode was the best IDE because it was so integrated. I might start to sing the same song if I can find keyboard equivalents for all the things that I can do so effortlessly in Intellij (eg goto a class). The one thing of note I will say is that developing web apps that look native on the iphone appears to now be effortless.

The third was for graphics and media; however, I skipped it to check out the open labs session to see ‘how it all worked’. And it was a good thing, too. I learned that I was actually supposed to sign up for certain labs so that I could have 1:1 time. So, I have an ‘Interface Design’ session today and an ‘App Store’ session tomorrow. Should be educational.

At 6:15, security came through the lab and said in not so many words: “get out and go to the party so that we can close out this area”. So, off to the ‘party’. It was a bit of a mess: extremely crowded, everybody waiting for the food line, and the food was very appetizer-ish. I met some other people(Heidi, Jake, Mike, John) and we went to a ‘real party’. It was a bar called Gallery 111 which contained paintings, some sculptures and drinks. Apparently, this was agreed upon ‘after party’ so there were Apple faithful in abundance. It always amazes me to see a crowded bar on a Monday night. I suspect that the place expects this kind of thing with all the conventions that happen around here.

WWDC 08 — Keynote thoughts

So, the keynote happened and some of the rumors came true.

What do I like?

  • $199 8GB 3G iphone
  • push notification for the sdk
  • GPS (tracking was very cool)
  • full calendar, contact sync over-the-air (about time!)

What do I wish had happened?

  • video conferencing
  • 32GB iPhone
  • Jobs didn’t look well

Pontifications About Everything