Archive for the ‘iPhone’ Category

The iPad, the 4.2.1 update, and what it means for us developers

Posted on November 25th, 2010 in iOS, iPhone, webkit | No Comments »

The 4.2.1 firmware update that rolled across all iOS devices brought a lot of new advertised features such as AirPrint, AirPlay, Game Center, and even welcomed small improvements such as the ability to search in page in Mobile Safari, but out of all devices it affected, the iPad was the device to benefit the most: bringing it up from the ancient 3.2.2 firmware and enabling it to do something the rest of the iOS devices have been able to do for awhile, namely drag-and-drop folder creation and multitasking.

For web developers like myself, some of the unadvertised updates that came from 4.2.1 are an Accelerometer API, WebSockets, and better HTML5 support (enhanced forms, canvas and SVG).

Out of all these updates, my favorite things about this update (besides finally being able to multitask on the iPad) is the iPad’s support for onhashchange and the HTML5 audio tag. The iPhone has been able to do both for a good long while but since the iPad lacked it, I had to do some code forking in my Flash to HTML5 JavaScript interpreter. Previously In the place of an audio tag, I used the video tag – a really similar element with identical API’s but different in many ways. My next entry will cover these differences as well as the benefits and pitfalls of working on a project that specifically targets webkit and webkit mobile devices.

Learn more about the developer specific improvements of 4.2.1 here.

Happy Holidays!

Getting MobileTerminal to work on Jailbroken iPhone4

Posted on October 14th, 2010 in iPhone | 1 Comment »

I decided to jailbreak my iphone again so that I can access the terminal as root, create wifi for my ipad, facetime without having to be connected to a wifi point, etc.

Jailbreaking for the iPhone 4 OS with it’s multitasking support is a whole new architecture but surprisingly most jailbroken apps are already working. MobileTerminal unfortunately just crashes when opened. After doing some research I found that it hasn’t been finished being ported yet but you can install a prerelease copy through the following steps:

- Download the 426 version from
- Rsync the folder to your root/Applications/
- reboot (you can just type reboot right from your desktop SSH session if you’re lazy.)

I’ve tested out SSHing into a few boxes with it as well as using the gestures it allows you to set up. Working pretty sweetly. Now I just need to find out how to enter the meta key…

Taken from comment #11 here.

Google Voice, Skype, the unrelenting phone industry, and a cool iPhone tip

Posted on July 31st, 2009 in iPhone | 4 Comments »

A new toy

Yesterday I finally got my free Google Voice account and honestly, I didn’t know much about it until I finally started using it except the fact that you get one phone number to rule them allâ„¢ (also known as one number that rings all your phones.)

Turns out there’s a smorgasbord of features including, automatic voicemail transcription, call recording, conferencing, per person / group personalized greetings, call blocking, and lastly, cheap international calling – all of which (besides the last feature) comes completely free. It’s such a future-thinking product that straps itself on our current outdated telephony architecture – with similar ideas having shifted whole industries in the past – that no wonder AT&T and Apple blocked it’s existence in the iPhone store – a greedy decision that reflects both the industry’s avarice and unwillingness to get with the times. I mean, how long can $.10 text messages really last?

But I digress. I have some friends and relatives in South Korea that I like to call and have been using Skype to be able to place international calls on the cheap. For $12.95 a month they offer unlimited calling to most of the world – unfortunately this doesn’t include mobiles (who uses land line these days, honestly?) Calling mobiles however, is still pretty cheap at $0.07 a minute (check your rates here) and using the handy dandy Skype iPhone app I can still place calls using my phone instead of being tied to a computer.

The downside (again because of contractual obligation probably forced on Apple by AT&T): you can only use Skype on the iPhone while connected to a wireless point, making it’s use limited to home, work, and the occasional wifi hotspot. Real big bummer. Additionally, you may deal with other annoyances such as a real call, text message, alert, or other process knocking you off the Skype app, and people sending you skype IM’s because they think you’re “online” when actually you just want to make a call.

A new solution

I’ve settled with these drawbacks and limitations for now (the proximity limitations being the biggest), hoping something will give eventually (and you know it has to because it’s 2009). Today for me it just did. Out comes Google Voice with so many new-fangled features you’ll feel like a VIP – the most important one for me: to place international calls on the cheap (0.6 cents for South Korean mobiles, check your rates.)

A slight problem

It’s interesting with all of Google’s technology and Google Voice’s ability to automatically transcribe your voicemails that there’s no audible method for dialing your friends. For example you can’t ring up your GV number and say “Dial Maria’s mobile” – you have to manually key in the 15+ digit international number and, considering most people’s short term memory capacity of seven, plus or minus two, you probably won’t know it either without referencing it. Now I’m almost 100% sure that this feature is coming and in the meantime you might be able to do the phone-app-to-contacts-app-switcheroony a couple times to key it in, but I propose an easier solution.

While the process isn’t as easy as two-clicks on an iPhone app, I’ve streamlined it so you might even say it’s easier than Skype app (at least more natural) after setting it up (providing you have a Google Voice account – you did request an invite didn’t you?) and you get the benefit of using it everywhere, not just when you’re connected to a wifi point.

Easy cheesy one click calling!

One click international calling with Google Voice on the iPhone

At work, I occasionally have to call in meetings which involves dialing a conference number and a long pin number to enter the “room”. I instantly wanted to automate this process so I only had to click one button to call the number, wait, and enter the pin. What’s more is that these meetings can go on for long amounts of time and considering I don’t have an unlimited phone plan, I wanted to use Skype, my laptop, and a very nice headset. After various attempts and endless minutes of online searching I found that this just wasn’t possible. Really. There is no pause option in Skype (some think it’s intentional.) Lucky for us the iPhone can. So some tinkering and a new address book entry later I have one click conferencing, my AT&T bill be damned:

1 (555) 555-5555 , 1234567#
(Note: the comma creates a two second delay.)

To place a call using your Google Voice account you call your Google Voice number via your phone. From there, after entering your four digit pin, you can access the menu where you can access Google information (GOOG411), check voicemail, place a call, or change your settings. After messing around with the timing I came up with this which works great.

The master equation:

(aaa) aaa-aaaa , pppp, 2, 011 bb cccccccccc#

a = your Google Voice number
p = your Google Voice pin number

b = country code of the number you’re dialing
c = local number of the number you’re dialing

Create a new entry under your contacts, save it under your favorites, and prepare to burn money at pennies a minute from anywhere (in the US at least).

Sure beats ATT&T’s $2.29 a minute.

Additional benefits:

  • It’s a regular phone call but you gain all the benefits of GV! Press *4 for example to start recording your conversation and *4 to stop. Your recording will be in your Google Voice web account.
  • If you have a 3Gs, the numbers you save can be dialed via Voice Control. I created custom phone labels “goog mobile” and “goog home”. To dial a person via Voice Control I say “Call Sara google mobile” (even though I say the extra ‘le’ it’s still a close enough match and works everytime.)
  • Because you’re making a real phone call you can use third party devices such as a bluetooth headset (something you can’t currently do with the Skype app) and you won’t be knocked off of your call by other processes.
  • I believe the sound quality is better than Skype and a fellow friend who uses GV agrees.


  • Even though it’s automated the whole dialing and connecting process takes about 30 seconds.
  • Because you’re making a real local call you’re using your regular minutes compared to Skype where you’re using none. If you’re like me though you have a ton including a dwindling number of roll over minutes that drop off after 12 months. Us’em before you lose’em!
  • Since you’re essentially storing your GV pin in your address book there are some security issues around that (don’t worry, no one you call can see your pin when you call them). In order for someone to actually access your voicemail they would need to be using your phone (or know how to spoof it’s number.) No one can access your GV homepage without knowing your Google password even if they knew your pin. I auto-lock my phone so it’s slightly less of an issue but just be sure not to use the same PIN for your phone, ATM, or other passwords. You’ve been warned!

Additional notes:

  • If you don’t know the country code check here.
  • Remember that you can always sync over changes from your computer’s address book if you don’t want to type so much on your phone or have a lot of new numbers to input.
  • There’s no easy way to add a space in a phone number field on the iPhone (except maybe through copy / paste) so if you want pretty numbers use your computer’s address book.

So that’s it, I hope it helps someone out!

Charging your iPhone on the go

Posted on October 29th, 2008 in iPhone | 1 Comment »

The Kensington Mini Battery Pack for iPod and iPhone

So I’m planning a 2 week trip to Korea, and I know during the course of my trip I’ll probably be watching lots of video on my iphone, potentially siphoning off internet for my MacBook, and reading my Google Reader when I can. All of that would lead to the quick demise of my iPhone’s battery life – with no AC outlet in sight. To remedy this I’ve been planning to get an external battery pack – something like the Kensington’s Mini Battery Pack ($50) [inset left].

The other day, however, I was at the local Duane Reade (popular NYC pharmacy chain) and came across this in the $10 discount bin [inset right].

Energizer Energi To Go Portable Power for iPod

It’s called the Energizer Energi To Go ($10?) and what is basically does is recharge your iPod via two double-A batteries. Although the packaging only advertises charging iPods, I took the chance and bought it considering all the connectors are the same. Sure enough it works great! I’ve only tested it out twice but I dig it. Here’s the pros and cons:

Energizer Energi Pros

  • It’s cheap. Judging from the condition of the packaging this things been around for awhile, and I’m pretty sure I’m not the only guy that’s never heard of it. I mean, Energizer, making an iPod accessory? It even comes with a free pair of batteries.
  • It’s easy to charge. You can get a small box of double-A’s anywhere and in most countries I assume. I could go camping for days and still be able to make calls and get online.
  • It’s small. Easy to slip in a jacket pocket if you know you’ll be needing it. It folds compactly when you’re not using it and also serves as a stand when you are. Here’s an unoptimized WMV movie (6MB) from their site showing the folding action. Additionally the device has a coin-operated screw area so that you can expand the dock to fit larger or smaller devices.

Energizer Energi Cons

  • It’s a little wasteful. And probably worse for the environment. A set of batteries can charge an iPhone about 1.2 times before being emptied.
  • Long charge time. Takes a good couple of hours to charge.
  • Dock can be a little fickle. I’m not sure whether it only happens when the batteries or low but sometimes my iPhone beeps / vibrates constantly as if it’s constantly getting unplugged and replugged.

Overall, I definitely think the pros outweigh the cons, especially for my case where I’m not going to be using it much. I’ve got an iPhone dock ready at home and work so the only time I need it would be when I’m away from both places for longer than a day. The charging time isn’t so bad either since I can charge and use it at the same time (I only wish it could somehow dock horizontally for MovieTime™.)

This marks the end of my review, so if you have ten dollars burning a whole in your pocket go to your local Duane Reade store and try to pick one up!

Pwning (JailBreaking) your iPhone 3g with 2.0.1 firmware

Posted on August 11th, 2008 in iPhone | No Comments »

My brother Mark, his girlfriend Jen, and their iPhones

Excuse another iPhone posts, I have some juicy programmerly entries coming up I just have a few friends that are interested in this and want to save them some time.

The 2.0.1 firmware which came out just a few days ago was just the thing I was waiting for – it fixed the craziness and slowness that was going on with (all?) my iphone (hour long backups anyone?) as well as the slow texting and “apple screen of death”. It came, in fact, just when I decided to jailbreak my iPhone for the second time.

The first time I did it was back before 2.0 firmware and it was the high life. I had SSH, VNC clients, silly games, and an Apache web server running from my phone. I gave all that up for the light saber app and international keyboard support. But now I have the best of both worlds again, and the five hours it cost me can be yours in less than one following my quick guide.

At first jailbreaking your iPhone was really hard. You had to do all kinds of things in terminal and cross reference about three or four tutorials that all weren’t quite right. Then it got really easy – just go to a web site using your phone’s browser and BAM, your iPhone got to pass go and collect two hundred dollars. Now it’s somewhere in the middle. Freedom is in the form of a downloadable app called Pwnage (Mac only but there should be a Windows equivalent by now). Basically, jailbreaking your phone under the 2.0 firmware involves rewriting the latest firmware update and making a custom “altered” one for you to restore with – don’t worry it’s a lot easier than it sounds and as far as I can tell, it’s impossible to brick your phone, it would have happened to me from all the things I’ve tried. So here’s what to do:

  1. Backup your iPhone and restore it to factory condition (you can restore your backed-up files later.)
  2. Visit this link and download Pwnage to your desktop (don’t run it or unzip it):
  3. IMPORTANT: Do not use some app to unzip the file. It creates weird permission issues and it looks like 80% who tried this including myself wasted a lot of time reformatting their phones several times. Instead, open up Terminal, change directories to your desktop, and unzip the file with this command: tar -jxvf PwnageTool_2.0.2.tbz
  4. For some reason, iTunes keeps backups of all your firmware updates – this seems incredibly wasteful to me since they’re about 250mb a piece. Inside of /Users/USERNAME/Library/iTunes/Mobile Backups is where they’re located.

    Go ahead and move the 2.0.1 update (iPhone1,2_2.0.1_5B108_Restore.ipsw) to your desktop.

    (If you’re having trouble finding this folder just type open /Users/USERNAME/Library/iTunes/Mobile\ Backups, where USERNAME is the current logged in user. If you don’t know who the current logged in user is type whoami in Terminal.

  5. Ok, now run Pwnage in Expert mode (simple mode is awesome but it only auto-detects and tries to use the 2.0 firmware, not 2.01.) Browse for your latest software update file (IPSW) on your desktop. Here you have a bunch of options. Just do this:

    Click General, then the next button, and unclick Activate the phone. Hit the Back button.

    OPTIONAL: Click custom logos, next, and uncheck them if you don’t want them. Hit the back button.

    Click the Build button and the next button. In about 5-10 minutes you should have your new IPSW file. Here it should ask you to do some magically things with your iphone, including putting it into recovery mode. It’s SLIGHTLY tricky but you just have to get the timing right to get into recovery mode. Last time I remember, it’s 10 seconds on home and sleep buttons followed by 5 seconds on home button. Just follow the pictures (don’t look at the words, they throw you off.)

  6. Switch back to iTunes. It’ll say it detects your phone in revovery mode. Option click the restore button – it will allow you to pick a file. Pick the custom one from your desktop. In a few minutes you’re done!

    You should see 2 new icons on your springboard. The old familiar Installer, where you can install apps with. And the new installer called Cyndia. Try to open up Cyndia – if it crashes, that means there were some permission issues when you initially unzipped pwnage. Try again.

  7. Optionally, restore from your backup in step 1. Now install apps to your hearts content!
  8. Do note that right now a lot of 1.0 jailbreak apps haven’t been ported to the new 2.0 framework yet. Still there is a lot of cool stuff including having an interactive terminal, the ability to SSH/SFTP into your phone and SSH out to other machines, Ruby, Perl, Python, and Java support, Lighttpd web sever, an NES emulator, MxTube (let’s you download full res Youtube vids to your phone), lots of abilities to customize themes, logos, ringtones on your phone, SVN, CVS, IRC clients, Lynx, and the list goes on.

    If you have any trouble with the above and you have my phone number feel free to call me, else just leave a comment.