Jul 03 2008

Spent the week in Burbank…

Tag: Geekstuff, Ranting and Reflections, iphoneJoe @ 7:39 am

I’ve spent this past week in LA - Burbank I think most specifically, but I get confused on what’s burbank, glendale, the “greater LA area” and all that stuff. I think of it all pretty much as “North Hollywood”, which apparently annoys some of the locals who have finer grained definitions. Not quite sure what those definitions are, because I sure can’t see a visual one. 

I’ve been working with some great folks at the Disney Tower in Disney’s mobile unit, not very far from the Studio Lot. Even got over there to go shopping at the company store, but not surprisingly all the interesting WELL-E goods were already gone. I’ll tell ya though, it seems like there’s a WALL-E game for every platform known to man though.

I was kind of hoping to find one of those little posable action-figure WALL-E things. There’s quite an number of animated toys available (none here, of course - they’re all sold out) that are really interesting. One was running around the office yesterday afternoon, which was pretty amusing.

I got a lot good coding done down here. The project will continue on a while - this week was an intensive get sync’d up and some design sessions. I think I’m most excited simply by the prospect that I might have something at Disney where you’ll see my name attached to some credits. Most of the time, I’m doing doing internet plumbing - you pretty much don’t see anyone’s names involved with that.


Jun 13 2008

End of the week: WWDC

Tag: Geekstuff, Ranting and Reflections, iphone, macJoe @ 4:18 pm

It’s the end of the week and I’m bushed. I suspect there’s a few folks even more “bushed” than me - it’s been an intense week of talking, learning, and “socializing”. I ran across a bunch of folks I’ve seen before, and I think I was introduced to an equally huge number of folks. Hooking up with some other geeks from work was really interesting as well. Sitting around chatting with Michael Johnson about web applications and codecs used in video production may not sound all that interesting, but he’s a funny dude.

The pieces that excited me the most from the conference is the detail that we learned about “Grand Central” and some of the associated componentry within the next release of the OS: Snow Leopard. Outside of the NDA boundary, there’s not a lot of information - but I walked away from the sessions with a deep appreciation for Apple’s forethought and insight into how to not only keep up, but take full advantage of the concurrent/multi-core world that we’re heading into.

Outside of Snow Leopard I spent a huge amount of time focused on the various iPhone technologies and details. The labs and UI review at the conference are amazing wells of technical help that I wish were available more often. Priceless help, to be honest. I’m glad that I spent the time to get myself into a state where I could take advantage of it. I actually walked away this afternoon wishing I’d done more so that I could take even greater advantage of what was available.

In addition to my own work, I saw a lot of fantastic applications that are going to be great to get out into the market. Nobody was committing to a date on the App Store launching, but there was an intense amount of interest on who would have applications ready to roll for launch, with the understanding that it was coming up pretty darn quickly in the future. My own personal bet is July 11th, but I’m not convinced as I think Apple will have their hands full with the new iPhone launch at that time as well. So if not then, shortly thereafter I guess.

And no - I didn’t see any 3G iPhones. I’ll be waiting with the rest of the masses to get my grubby paws on one.


Jun 07 2008

WWDC keynote … coming on iTunes

Tag: Geekstuff, Ranting and Reflections, iphone, macJoe @ 12:44 pm

Apple’s definitely getting prepped up this year. The WWDC keynote link on iTunes is available (found at iLounge). I expect that sometime around Monday Noon, that subscription list will include the WWDC keynote and whatever details they’re announcing.

In this morning’s “waiting for the next load of laundry so I’ll check my RSS feeds” reading Mark Bessey wrote about looking forward to WWDC 2008 - this time NOT as an Apple employee. I think the following paragraph best sums up my continuing interest in the OS X platform:

More interesting to me is that Apple has really started to embrace having a single platform that supports multiple kinds of products. I wrote a whole blog post on that subject a while back, but the fact that Apple can now get a microprocessor for $10 or so that’ll run OS X means that they can aggressively move into whatever new kinds of products they want, based on variations of the new iPhone platform. It’s an exciting time to be a developer for Apple’s platform.

OS X on a $10 chip. Granted that’s not typically in the hacker range (look to the Arduino for some fun there), but it definitely reflects a breaking barrier point where the cost of putting in more serious compute to devices is here. I think it’s also clear that we’re seeing the initial serious stabs into a new realm of user interfaces with touch. Voice remains a bit of a dream, but slowly computers are becoming more and more invisible.


Jun 06 2008

Mentally, I’m already on the plane…

Tag: Geekstuff, Ranting and Reflections, iphone, macJoe @ 2:32 pm

With WWDC 2008 right around the corner, I’m mentally already on the plane.

Aside from a few niggling details (like thinking I need to get laundry done tomorrow…) I’m focused on next week. Coordinating with a few folks - exchanging cell #’s, coordinating some times to head to the keynote, and double checking the planning for the social events in the evenings.

While I’ve got a pretty iPhone heavy focus right now, I’m also looking forward to seeing what happens with rumors of Snow Leopard and the next rev of MacOS X. I do hope it’s primarily a performance, tuning release - I really loved the early days of Mac OS X where every release made my machine feel *faster*.

Most importantly, I think I’ve got SeattleBus to the point where I can really get some useful information from the labs. I’ll have it with me on an iPod touch (not that it’ll be that useful in San Francisco). I’ve got some UI components that I’m not happy with, so I’m looking forward to getting some sage advice (from my compadre’s there as well Apple engineers) on how I might want to tweak things up.

I’ll also be hooking up with some fellow Disney employees down there. I’d love to babble more about what they’ve been working on, but that’s quite verbotten, so I’ll have to refrain. It’ll be cool hooking up with them and getting the latest and greatest.


May 11 2008

The first one you throw away

Tag: Ranting and Reflections, iphone, macJoe @ 11:17 pm

I’ve been working on a couple of applications for the iPhone, both of which are “scratch my itch” sorts of things. One was a simple little nonsense thingy for calculating tips. The second is meant to let me know when the next bus was going to be hitting the stop at which I am waiting.

The bus app has undergone several names, starting with “Where’s the damn bus” and currently residing a “SeattleBus”. I took out the somewhat more profane project and class names when I thought “Hey, maybe I’ll enter this into the Apple Design Awards“. Last thursday, I was thinking “Yeah, maybe…” and after the encouragement from some of the guys figured I’d jump into it this weekend and see what came out.

What came out is a reminder that the first app you write will often be thrown away. After I sat down with the functioning app and showed it to some friends (unfamiliar with iPhone programming) it became pretty clear that while what I had functioned, it wasn’t anywhere near the smooth flow and effect that I think I’d really want to have for something to be submitted to the ADA.

In fact, after a few days to really sleep on it, I’ve redesigned the whole flow of the application - hopefully for the better. I’d had a completely navigation bar driven style of working through the application, and that’s getting completely gutted in favor of a tab-bar setup and a bit more automatic capability in trying to determine what bus stop you’re sitting at when you invoke the app. Turns out the whole “what’s coming next and when will it be here” is the easy part… it’s getting to that information and displaying it efficiently that’s the bitch.

What’s really interesting is most folks that I show this application too instantly want another, completely different application to go with it. An application for route finding - not even necessarily related to busses. I hadn’t quite realized how much of a demand there was for something like that. That application is a bit beyond what I’m interested in making - at this point I want to dive in to recode my bus application with the new flow. Not a chance it’ll get submitted to the ADA - at least not this year.

I am really looking forward to seeing what does get mentioned from the awards for the iPhone. Just four weeks away now…


May 04 2008

Learning to program for the iPhone

Tag: Geekstuff, iphone, macJoe @ 10:22 am

It’s probably no surprise that there has been a deluge of folks asking “Hey, what’s the best way to learn to program the iPhone”. Since I set up and run the Seattle XCoder’s group, I’ve been getting my fair share of those.

Some folks have traditional programming/CS backgrounds, and it’s easy enough to redirect them to some good resources to learn. It’s the folks that have little or no programming background, but who want to get into the game anyway that I’ve been finding harder to help. Much as we’re a great bunch of folks to ask questions and get tips, Seattle XCoders isn’t a tutorial house.

I’ve had several folks come to me with a programming background in javascript and nothing else. Javascript is clearly the new “BASIC” - probably has been for a while, and I haven’t been paying attention. I actually think that’s really cool on a bunch of different levels, but it makes explaining Objective-C, C, and memory management quite a bit more difficult. For a lot of those folks, I’ve had to punt - not much to help them. I suggest that they get a basic course in C programming and build up from there. I don’t think that’s really doing the whole setup justice, but it’s the best I could wrangle out.

As of yesterday, I might have a new tactic. Uli Kusterer has put up a “Learning C on the Macintosh” tutorial site called Masters of the Void. Uli’s done some really great things in Mac programming, and definitely know’s his stuff. Way better than me, definitely - and quite a bit more in depth than many I’ve run into. That being the case, I’m hoping it translates well into a tutorial on C for the Macintosh. The examples, details, and so forth in the site all point to using Xcode. I don’t know that it takes anyone beyond strict “C” programming, but it’s a hell of a jump start, and freely available.

So if you’re hunting around for a start on programming for the iPhone and you haven’t ever touched C, I’d say start with Masters of the Void and build up from there.


Apr 01 2008

coding away - iPhone SDK

Tag: Geekstuff, iphone, macJoe @ 4:05 pm

It’s hard to write about what you’ve been doing when most of the time it’s been involved with an SDK from Apple that’s buried under an NDA agreement.

So… I’m not dead - I’ve just been head’s down with coding. I’ve found a few bugs, filed quite a pile (mostly enhancement requests), and have written a pile of toy programs trying out the new pieces and parts available.

The two bugs that top my list are (not surprisingly) duplicates. radr://problem/5789981 is so obvious… a forum for discussing NDA products where developers can share notes on what they’ve got working and what they don’t. It’s surprisingly frustrating to not be sure if you’re just missing something or if there’s an actual issue that others have run into. That’s the original bug number, by the way - not my bug report for this “issue” with the SDK.

The other is a crashing problem with the development environment. radr://problem/5795236 is apparently the master issue - I guess several folks have been talking about this issue on forums and such. It’s annoying, but hey - it’s beta software.

Without getting into specifics, the SDK is clearly got some serious traction and attention. It is a wonderful bit of code made available, and one of the easiest mechanisms I’ve ever experienced for getting code onto a mobile device. Granted my other experience is hacking in linux and related software on to an HP iPAQ handheld at a previous job - it involved an unholy combinations of tftp, very specific network settings, and carefully timed physical buttons presses.

The folks who’ve been working on this project have done an incredible, bang-up job with it. I’m really looking forward to the next steps in the beta program, and the additional pieces and tweaks that come along.


Mar 12 2008

Syncing data from your iPhone app to a desktop… and other “iPhone SDK bugs”

Tag: Geekstuff, iphone, macJoe @ 3:24 pm

I was reading Paul’s post on iPhone SDK bug reporting and sort of pondering that list.

I’m not sure I care specifically about a bug for being able to run a background application so much as I want to be able to get application events when my application isn’t active. At least for my needs - I could come up with some specific reasons for wanting a background app on the iPhone, but moving that processing/event waiting stuff off the Phone seems like a pretty reasonable way to go to me. More expensive surely - you’ve got to have something running somewhere - it’s easy to put that on an iPhone (at least technically), but you’re using potentially using power and dealing with memory pressure when you don’t need to on the device.

But it was the bug entitled “Allow iPhone applications to access the host computer when docking” that really caught my eye (Bug ID #5788803). The iPhone and iPod touch has bonjour, and straight ole TCP/IP network access available to it. I thought back to various conversations about hybrid applications, and then I recalled that Gus even stuffed a whole web server into VoodooPad Pro. I don’t know if he just linked in something like lighttpd or if he wrote his own http request handling classes (I’d easily believe either - I know he’s basically done both in the past for different projects). Take that concept a little further, and I could see how you might have a paired application that enabled you to sync data down to the Mac over Bonjour and maybe http. Okay - that’s a hell of a workaround because Apple isn’t enabling a path through Sync Services, which would make a lot more sense (and be a lot less coding) - but the idea is intriguing. Since VoodooPad Pro has bonjour enabled already, it wouldn’t surprise me if Gus fiddled together a “read only” VoodooPad client. That is a little weird since you can already just point Safari at VoodooPad Pro, so maybe that’s a dumb idea after all.

I can imagine a whole class of what Apple’s iPhone HIG is labeling “utility applications” that would take advantage of periodic data updates from syncing with a desktop client. Data you couldn’t or didn’t want to share across the web that you wanted to have in a quick read-only format.

I’ve even been debating that process myself - I have some relatively static data that I’m planning on using for a little application. For my first iteration, it won’t need to change and re-releasing the application with updated data looks to be the easiest path when I need to do that. On the other hand, to make it more generic (assuming I follow through with a “more generic” path), I think it would be really handy to be able to pull an update, or allow a user to provide custom data. It’s that custom data from the user track that would really benefit from a Sync Services link of some form.

Update:

Holy cow - I just noticed that Jon Wight of ToxicSoftware has included TouchHTTPD, which looks to be right along these lines of something to be used to help transfer data into and out of the iPhone.


Mar 08 2008

bugreport for iPhone SDK: Enable remote events to 3rd party applications

Tag: Geekstuff, iphone, macJoe @ 12:46 pm

I’m mentioning it here in case anyone else would like to reference/jump on this particular bandwagon. rdar://problem/5788673:

Summary:
Please enable some mechanism for 3rd party applications to receive events or run in the background to poll for events from remote sources.

Notes:
In the initial release of the SDK, there does not appear to be a mechanism for an SDK application to get activated and receive events in the background (or remotely). For some application scenarios (reminders, instant messaging, alternate reality gaming, etc) it would be nice to enable an interrupt if the user choose to accept them - either in the style of an SMS message highlight on the screen, or the activation of an application as in the case with an incoming call to an iPhone.

These are enabled for Apple applications (mail, SMS, and incoming phone calls being examples). I would like the capability to receive an event through some channel, or to be able to poll for events in the background and activate my application.

The Android SDK reportedly enables a similar SDK functionality using the XMPP protocol (albeit requiring login to Google’s XMPP service - http://code.google.com/android/reference/com/google/android/gtalkservice/package-summary.html). Enabling some mechanism to post and forward events to iPhones, potentially with URL’s to activate local applications, would be very beneficial.

 

Update:

I added the following detail to the bug report - since folks outside Apple can’t see it, I wanted to share it:

I’m specifically looking for a way to get events from external to the iPhone and it’s environment to my custom application. Either via pushing into some queue like mechanism that perhaps apple runs or enabling the application to periodically request data from a remote TCP/IP interface. I’d be using a web application to send the data - likely with a REST interface and the data represented in a JSON of XML format.

My specific desire if for the iPhone to receive events from outside the iPhone and it’s environment (i.e. on the internet) and activate my application if there is anything in the queue for it. In my case, I’d like to be able to get alerts from a monitoring application very much akin to SMS, except have my application intercept that data and provide a more appropriate/informational interface to the message coming in. I can currently receive SMS messages or emails with some amount of data, but an immediate visual representation of the system outage and related metrics would be a far superior user experience.

I thought this might be accomplished by supporting a generic internet event passing mechanism like what is supported with XMPP (small messages basically “stored and forwarded when requested”). To send an event/message to my application, I’d simply submit it to a central XMPP server with a designated address. The iPhone would be the recipient of the address, and assuming that a pub/sub mechanism was working efficiently, it would get the message with little significant delay.

Another option, not as desirable, that came to mind is to poll a remote URL periodically to determine if any data is available. I don’t know what pub/sub options are available, but I’m hoping that something is possible with Apple and ATT’s infrastructure. The alternative of polling seems like it would have potentially significant power draining consequences.

I wondered if the SMS mechanism could be used, the same mechanism to determine that voicemails exist, or perhaps a different mechanism altogether.

If a polling solution (like the original email functionality - poll every 5 minutes sort of thing) is available, then i a central combined queue of events would make sense - as that could be shared across any number of applications. That way the potential for 5 different applications, all polling different URLs or sockets wouldn’t present such an enormous drain the battery.


Mar 08 2008

Java on the iPhone - coming from Sun…

Tag: Geekstuff, iphone, macJoe @ 11:46 am

AppleInsider is reporting that Sun will make a Java available for the iPhone… following a report on InfoWorld where Eric Klein (VP of java marketing at Sun) was quoted on a number of details - mostly blather that rolled up to “If Apple ain’t gunna make a JVM for the iPhone, we will”. 

That is a dramatic change from the past decade of Java on Apple products - where Sun has been releasing JVM’s and JDK’s for Linux and Win32, leaving Apple to following along with it’s own development effort. I can’t even really fathom why Sun didn’t make Java available on MacOS X, but they haven’t. And from someone that has been working with mostly Java technologies for the past 10 years, this lagging setup has been a real pain in the ass. Finally, Sun is stepping up and asserting that they’re going to make a JVM for the iPhone. I wonder if they’ll pick up doing a JVM for MacOS X too?

With the iPhone, the shoe is now on the other foot for the Sun/Apple relationship relating to Java - instead of Sun treating Apple as a second class citizen when it comes to Java, it’s the other way around. The anthropomorphic voice of Apple to Sun in my head says “You wanna see Java continue? Put up or shut up! It’s not doing us any damn good.”

Since I read and wrote about Daniel Steinberg’s article “Java to the iPhone: Can you hear me now?” back in January, the idea that Java isn’t really happening on the Mac has just continued to resonate. There are really no java desktop applications (yes, I know you can prove me wrong - it’s a hasty generalization, but a reasonable sterotype). Where I mostly see Java being used on the Mac is with developers - folks coding with Eclipse and making Java server based code. And even then, it is typically being deployed (quite reasonably, I think) on Linux servers. The only real downside is that it’s getting damn tricky to enable those Mac based developers to continue to do that when there isn’t a released 1.6 JDK for the Mac. That isn’t a lot of pull from a customer base, and precious little incentive for Apple to continue developing Java for the Mac, let alone to spend the developer time to port it over to the iPhone and make even a subset of Java run there. Google’s Android hasn’t even gone with the J2ME standard. It is instead implementing the Dalvik runtime, which is reportedly more sane with memory usage and power consumption.

It doesn’t come as any surprise to me that Apple has taken the “Nope, no java here - ain’t worth the time” road. I suspect they are right. While it would potentially open up the market to more developers, the popularity of the iPhone makes me think that it may not even need those J2ME developers to see some world class amazing applications come available. Shoot - Apple Apple basically committed a denial of service attach on itself with the SDK announcement - interest in the SDK is clearly popular enough right now without needing to include J2ME in the game. The iPhone will draw it’s own crowd, and with it’s already significant market share in the 4th quarter of 2007, it’s got enough “go juice” that it really doesn’t need to do a whole lot of work enabling even more sandboxes. Shoot - most of the indie developers I know are looking at the iPhone SDK and either making something now, or starting to poke and see how hard it will be to port some of their desktop technologies into this platform. In a lot of respects, this is a whole new era for mobile development - desktop developers are serious about implementing something, and Apple’s providing the tools to enable it. And there are some damn fine Mac desktop application developers out there.

I expect that Sun is seeing this as a significant threat to the continuation of Java on mobile devices - more piling into the competition along with WinCE and Flash. Especially now that Sun has decided to compete with the Flash juggernaut with their own JavaFX, they’ve got to be sensitive about J2ME and the iPhone. With Klein asserting that Sun will be making a J2ME for the iPhone, I’ve got to wonder if the Google dudes aren’t crankin’ away at a Dalvik VM implementation for the iPhone as well.

Now that I’ve had a chance to read through the iPhone OS Programming Guide (hard to link directly to this document due to Apple’s continuing stupid and fundamentally shortsighted NDA setup - but it’s available at http://developer.apple.com/iphone/), I’ve got to wonder if a sandbox within a sandbox is really going to an efficient setup. That’s what a JVM would be, what Flash is, etc. While the iPhone supports some pretty serious compute power, I’m not sure that it is really quite up to par with supporting multiple VM sandboxes. I suspect that’s still in the laptop or desktop computer realm, and Moore’s law hasn’t yet enabled it at the size of an iPhone.


Next Page »