One of my students has a friend who works at Apple, and who visited recently with their iPhone. They really exist and they seem to work in Canada! They couldn'y say much about it, but it seems to live up to expectations. (I didn't get to play with it myself.)
It's well known that the iPhone uses GSM technology and thus was expected to roam fine on Rogers (the only Canadian GSM carrier). Most people this means Rogers is the only possible Canadian carrier. While a senior executive from Rogers has recently stated that discussions with Apple are still at an early stage, this news implies that truly desperate Canadians can snag an American model and use it safely in Canada.
(Note: this entry is superceded by the announcement of the iPhone, and it's subsequent unlocking and use in Canada. A more recent blog entry is this one).
2007
2007
Well I finally got my hands on an iPhone and it's just as nice a device as all the media frenzy would lead you to believe. I am lucky enough to have a project that needs exactly such as device, so I can rationalize the purchase (in fact it's actually less costly than alternative solutions that provide the key feature set, and that was before the big price reduction of Sept 6th).
The user interface is genuinely very satisfying and the whole experience in really nice. Just as a mobile web client and PDA, it totally blows the socks off my prior Palm Treo and/or Windows CE (iPAQ) devices in terms of both aesthetics and usability. One slightly frustrating feature relative to the Treo is that the key on the on-screen keyboard are rather difficult to type with. This, apparently, improves with familiarity and is alleviated by a built-in automatic spelling correction engine; we'll see about that.
Activating the phone was tricky (without an AT&T subscription yet). In principle, the software does not permit this (and you can't get AT&T here in Canada), but inspired hackers have come up with a work around and now there are lots of tools for doing this. (I recommend the progran called iNdependence.) I would not recommend this for people who are not technically skilled and willing to risk an a few hours debugging, though. Better to get one of the (very attractive) AT&T phone plans, or (outside the USA) suffer it out until a carrier in your own country is available.
Activation was fairly "easy" on the factory-installed firmware (or I was just lucky). Once I installed Apple's 1.0.2 firmware update, however, the activation tools became very fussy and consistent told me that activation failed with an error code of -402653165 (i.e. "Activation failed with code -402653165") . I tried numerous tools and tricks. Simply attempting it several times in a row is supposed to work. I think getting it to work may well involve a random process since the set of alternative "solutions" people have reported on the web seems diverse to the point of being ridiculous. Key issues seem to be to (1) make sure all iTunes applications are stopped, (2) generating the proper home-made "plist" using the correct device codes, (3) re-enter jailed mode just while activating, and (4) making sure no other programs (such as iTunes) are using the same USB ports. I also though it was a good idea to kill USB camera demons (such as the PTP daemon for my Canon camera). The technically inclined should use "ps wax" and "kill" from the terminal window. Even so, getting it to work seemed to depend on an apparently random enabling and subsequent disabling of "jailbreak" mode (i.e. write enabled or protected modes) .
2007
The iPhone has a note-taking application, but at present the notes do not seem to get synchronized with the host computer. I wrote a program that allows you to sync and save the notes database from the iPhone and/or restore it at a later date. It also produces an ASCII text file (notes.ascii) that has the content of the notes so that they can be accessed off the phone.
The program is python code and requires a python interpreter. This is found by default on Mac OS X, but I am not sure about it's status on Windows.
On a Mac, running it would involve opening a terminal window and typing:
python getNotesaver.py
The program can use the USB connection to communicate with the iPhone (in which case iTunes needs NOT to be running and the open source iphuc program must be installed). It can also communicate with the phone using scp, assuming you have "jailbroken" the phone and installed this tool. If you use scp, then the phone needs to be on your network and you should know it's IP address.
TO USE THIS, YOU EITHER NEED TO HAVE ALREADY INSTALLED iphuc ON YOUR COMPUTER OR ELSE INSTALLED scp ON THE PHONE ITSELF, FOR EXAMPLE USING iNdependence.
Of course this program comes with no assurance of utility or anything else. I do not warrant it in any way against any consequence, direct or indirect. I believe it works well, but by using this you disclaim all recourse for whatever it does, even if it erases your database, your phone or your bank account.
The program is here. The latest version is version 1.2.0. This page entry is updated as new releases appear. (it was originally released as version 1.0 and there were several other versions).
It now includes the ability to patch the display of the cell-phone carrier name to allow the name to fit in the allocated space, for those not using AT&T. (Yes, it's sort of an odd feature for this tool.)
Feeback is welcome, especially from Windows users who should feel free to provide patches.
Updated Nov 26, 2008 to version 1.3.2 (Not all updates are noted in this way.)
2007
This news will be all over the place soon, but I was surprised it has not been widely publicized yet. The software-onlysolution for unlocking the iPhone to allow it to work with and GSM cell phone company was released for free yesterday.
[ Followup 9/20: the software-only fix described below works well sometimes, often it is quite tricky, and occasionally (rarely?) it leads to complete disaster. ]
A solution that required a hardware fix, including opening the very-hard-to-open case has been around for some time. A software-only solution was announced weeks ago, but was widely considered to be false or premature. There ewre numerous announcements that failer to materialize. About 2 days ago a commercial vendor started selling a software-only solution which was widely believed to be derived from the intensive efforts of a public reverse-engineering group. Finally, yesterday, a free solution was released and it is being widely distributed on the internet. It seems to be compatible with Rogers in Canada as well as Fido, Vodafone, T-Mobile, Telstra, SingTel, ORANGE, PCCW Mobile, Telenor and other GSM providers.
So far, the solution still requires you to find various critical files on obscure web sites, but simpler and simpler ready-to-click packages are being produced by programmers. I have not tried any of these, but they are being very widely reported to work well for most people. A few caveats remain, such as that the solution will not work for SIM cards that have a PIN lock on them, or that a few people report rendering their iPhone inoperable (but who knows this small minority actually did, as some of the tools have the potential to be used incorrectly).
It remains possible that a subsequent release of iTunes from Apple with be incompatible with this or other unlocking solutions, but that is impossible to predict with certainty. It seems certain that Apple will be under pressure from AT&T, due to their contractual obligations, to try and stop this unlocking. They almost certainly cannot to anything to interfere with people using the current version of iTunes though, and they can't force people to update, so the risk is probably quite low.
2007
These are shell incantations for transcoding video with ffmpeg, especially for the ipod or iphone. ffmpeg is one of several free open source video editing programs you can use. These recipes are here partly to make it easier for other people to find them, and partly for me to find them again.
The standard open-source programs for transforming video are ffmpeg and mencoder. Each is capable from reading video in many different files formats, and writing out video using many different video encoding options. Each is supported in some form on Mac OS X, Linux and probably Windows. Both use common source libraries. You can get ffmpeg at http://www.mplayerhq.hu/design7/dload.html in many forms, or else compiled for Win32 at http://sourceforge.net /project/showfiles.php? group_id=205275.
mencoder has more filters than ffmpeg for processing the video. ffmpeg supports more different input and output formats, including direct output to mp4 container files. mencoder support for non-avi files is new and questionable, so for use with Quicktime you need to post-process with mp4creator: that's too much hassle for me, but instructions can be found at: mplayerhq.
My preferred solution is simply to use ffmpeg.
Basic command for iphone-compatible video
ffmpeg -i input-file -f mp4 -vcodec mpeg4 -maxrate 1000 -b 700
-bufsize 4096 -g 300 -acodec aac -ab 192 -s 480x320 output-file
iphone (better setting than above)
INFILE="$1"
OUTFILE="$2"
ffmpeg -i "$INFILE" -f mp4 -vcodec mpeg4 -maxrate 1000 -b 700 -qmin 3 -qmax 5
-bufsize 4096 -g 300 -acodec aac -ab 192 -s 480x320 -aspect 4:3 "$OUTFILE"
This should be fine with any ipod-like device, but it is customized for
the iPhone screen size.
The -s 480x320 refers to the size of the iPhone screen; customization for the video iPod would use the same incantation, but with a screen size of 320x240 to produce slightly smaller files. On the other hand, showing the video on TV would benefit from the larger size, or even 640x480. The Apple TV uses as much as 1280x720. (It is never worth using a larger size than your input footage, however, which is often limited to 640x480 for NTSC.)
Thus, for the ipod video is might be:
ipod video
ffmpeg -i "$INFILE" -f mp4 -vcodec mpeg4 -maxrate 1000 -b 700 -qmin 3 -qmax 5
-bufsize 4096 -g 300 -acodec aac -ab 192 -s 320x240 -aspect 4:3 "$OUTFILE"
Other more exotic settings are the following:
sample separate image frames to jpeg images
ffmpeg -i "$INFILE" -y -ss 5 -an -sameq -f image2 -r 1/4 frame%03d.jpg
remove logo(from) from commercial video with lavc mpeg4 codec, avi container
mencoder -vf "delogo=545:401:100:45" -ovc lavc -lavcopts vcodec=mpeg4:acodec=libfaac 002.mpg -o 002.avi
Contrast enhancement (not recommended, can confuse compression)
mencoder -ovc lavc -lavcopts vcodec=mpeg4:acodec=libfaac -vf pp=autolevels:f 002.mpg -o 002.avi
WARNING: note that the -i inputfile flag needs to come early otherwise the resize (resizing/rescaling) flag -s will not have any effect. This is incredibly stupid, yes. At one point I found it didn't work and it took me a long time to figure out the problem that caused my resize to fail.
If you want to play with these, a quick guide to the key (somewhat obscure) ffmpeg parameters are as follows:
`-title string' Set the title. `-b bitrate' Set the video bitrate in bit/s (default = 200 kb/s). `-ss position' Seek to given time position in seconds. hh:mm:ss[.xxx] syntax is also supported. -r fps Set to frame rate `-s size' Set frame size. The format is `wxh' (ffserver default = 160x128, ffmpeg default = same as source). A few of the many allowed appreciations are: `qqvga' 160x120 `qvga' 320x240 `vga' 640x480 `-maxrate bitrate' Set max video bitrate (in bit/s). `-minrate bitrate' Set min video bitrate (in bit/s). `-ar freq' Set the audio sampling frequency (default = 44100 Hz). `-ab bitrate' Set the audio bitrate in bit/s (default = 64k). `-ac channels' Set the number of audio channels (default = 1). `-an' Disable audio recording. `-acodec codec' Force audio codec to codec. Use the copy special value to specify that the raw codec data must be copied as is.
2008
One of the main things that makes me love the iPhone is the combination of a good solid web browser with the phone functions. I once had a Treo and there is no comparison at all. Sometimes people complain about the browsing speed, so it was interesting to see the side-by-side comparison below between the Apple iPhone and the RIM Blackberry Bold.
The video makes and interesting and compelling demonstration, but the upshot is that the iPhone is a lot faster. I wonder if this is partly because the iPhone is based on a robust UNIX-like kernel which is the backbone of the internet, as well as because the Safari-based browser has been the subject of development for the huge Mac community for many years. (Claims regarding the speed of Safari version 3 in comparison to other browsers have been around for some time.)