June 17, 2009

Google Calendar and iPhone OS 3.0

Typically when someone schedules a meeting on UMcal my first instinct is to copy the information to a Google Calendar. I've got a few for work: one general work calendar, another specific to a topic I'm frequently involved in, and another more general University calendar marking holidays, starts and ends of semesters, and the like.

Among the new features in iPhone OS 3.0 is the ability to use CalDAV to sync calendars to your mobile device. Google Calendar supports CalDAV, and it's pretty easy to set up. Go to the Settings app, tap "Mail, Contacts, Calendars", "Add account...", "Other", and finally "Add CalDAV Account." Enter the following information:

User Name: [Your user name]
Password: [Your password]
Description: GCal (or whatever you prefer)

iPhone will verify that you entered everything correctly and send you on your way. The only problem is that it doesn't sync all of the calendars on your account. Instead, it just gives you your default calendar. Fortunately, armed with a special token found on the calendar's setting page, you can add secondary calendars to your iPhone by creating additional accounts in the same manner as above and changing the "Account URL" in the advanced settings page.

First, you'll need to find the token for your calendar. Log into Google Calendar, click "Settings" at the top right, then the "Calendars" tab, open the detail page for the calendar you want to add, and then copy the "Calendar ID" listed near the bottom in the "Calendar Address" section. It'll look something like [random alpha-numeric characters]

I haven't been able to find a way to get this token from the mobile version of Google Calendar, and I can't find a way to force the fully-featured version to show up in Safari on iPhone. I put the IDs in an e-mail and sent it to myself (which conveniently masquerades as a way to test cut and paste functionality).

Once you have the calendar ID you would like to add, create a new account, name it appropriately, and then edit the advanced settings for that account. The Account URL should be:[random characters]

Once that's in place, you should be set with multiple calendar goodness.

June 15, 2008

iPhone 3G, New SDK Features

Sometime in March, my Razr was on its last legs and I wasn't held down to any contract, so I started my search for a phone that would let me install software on it. The iPhone was the closest thing to it--the Palm and Blackberry options didn't appeal to my programming tastes and I was intrigued by the touch interface. Knowing the SDK was coming out, I took the plunge and bought it. However, it appears I bought my iPhone prematurely.

Although I wouldn't call myself a Mac zealot, I watched the live keynote updates on just like everyone else. Most of what was revealed was expected. There were three pieces I was most interested in: an addition to the SDK that was an attempt at pleasing those who wanted background processes, a way of adding applications to the iPhone without having to use the App Store or have an enterprise SDK license, and the addition of a GPS chip.

The push notification service, as they call it, is pretty neat. It does take care of a good 75% of use cases for background processes on a mobile device--but not all. Say you wanted to create a service that sent severe weather updates to a user's phone based on their location. If you assume the user is stationary, the push notification service will work.

However, if they're mobile, they could be driving 70 MPH into a dangerous situation and there's nothing you can do to warn them (although the large line of dark clouds will probably tip them off). Apple missed the boat in not doing an information pull at the same time as they do the information push. There's not a whole lot of other data that would change over time while the user is not utilizing their phone--and I'm sure there are other uses for live user location data. Maybe they'll work on that after September.

The ability to add your own applications to the iPhone (and 99 of your closest friends) without having to go through the App Store or shell out for the enterprise license is awesome. I figured that they would at least allow personal applications to be put on the iPhone, but the ability to send them to friends, family, co-workers, or whatever is great news. I guess others expected this, but I found it to be a nice surprise.

Then there's the addition of a true GPS receiver. Being an amateur radio operator (K0WMS), it was at this point that an idea slapped me in the face so hard that I have to try and get to work. Now that the iPhone has a GPS, you can write custom software for it, and there will be an easier to use headphone jack--it seems that it would make for the perfect APRS unit. Just connect the iPhone's headphone jack to the packet radio adapter on your trusty VX-7R using the sound card to generate both the data stream and PTT signal and you're set.

As strange as it sounds, this might be the killer feature that will push me over the edge (no pun intended) to upgrade, rather than the better internet data speeds afforded by 3G. I will say that I have found EDGE to be an annoyingly slow service. If AT&T is reasonable about upgrading to the iPhone 3G, I may have to consider it. I hate you, Steve Jobs.

June 7, 2008

Automating Wireless Login on the iPhone

A few people have found this to be useful so I figured I'd post it. Anyone who's logged into the campus wireless network from their iPhone have probably found it to be somewhat annoying after the third time or so. So, we in the office have created a JavaScript bookmark in Safari to automate the login process.

The fun part was figuring out how to actually get the URL onto the iPhone/iPod given the limited keyboard characters available (not sure why they restricted the character set in Safari). Just create a bookmark at any old web site, and then add the following JavaScript URL (the eureka moment was that the brackets can be URL encoded):

javascript:document.forms%5b0%5d.uid.value='examp001'; document.forms%5b0%5d.upass.value='password'; document.forms%5b0%5d.submit();

Then whenever you're presented with the wireless login page, just activate the bookmark and it'll use whatever credentials you entered in the bookmark to login. It's pretty slick. If you wanted, you could set the desturl too.

September 28, 2007

MacBooks are fun.

$ for laptop in $LAPTOPS; do ssh -f admin@$laptop "echo 'say \"rawful copter skates lemau\"' | osascript"; done;