Keyport Slide 2.0 Review – Lighter and More Refined

About a year ago, I ditched my key ring and went to Keyport V01. Since then I’ve been using it religiously, my only change being the addition of the swivel cap which became available a few months after my original purchase, which made Keyport a bit easier to use with a key fob. Keyport V01 was so awesome I purchased one as father’s day present (and it’s still in use) and sold a few friends on them as well, to say nothing of its conversation starter abilities.

So when I heard Keyport was making a 2.0 version on Kickstarter, I couldn’t jump on the project fast enough. Keyport 2.0 remains compatible with the exact same set of blades (keys) as the first version, making it an easy upgrade from the V01 edition. What’s different is pretty simple: Keyport 2.0 is manufactured from plastic instead of metal, making it lighter and hopefully more resistant to denting when dropped, cheaper, has a new mechanism locking the top cap on, offers smoother sliding action, and comes with a swivel by default. It has slightly different dimensions but retains the same thickness.

The change in width is a noticeable at first, but it’s there to accommodate the removable sliding side plates which come in a few different colors. What’s really evident is the big change in weight, which is perhaps the biggest improvement for those looking to upgrade from the V01 to 2.0. The change in width might make it difficult to use in some vehicles with clearance issues already, but it’s minimal.

Initially I was a bit surprised that Keyport would want to ditch metal in favor of plastic (or polymer, if you’re sugar coating things) but the difference allows Keyport 2.0 to be so much less noticeable in the pocket. Likewise the change from metal to polymer seems to make the slider action much smoother. Previously my only gripe with Keyport V01 was that after you got a bit of pocket lint in the action, sliding out the lesser often used blades resulted in a gritty feeling and some sticking and chattering. With 2.0 it seems that the plastic on plastic interface results in much smoother movement, and there’s a bit more play instead of the somewhat tight fit of the previous model. The cap on 2.0 also locks in place while blade number one is fully retracted, making it less likely that dropping Keyport will result in the cap popping off and dumping your blades out.

While the 2.0 model doesn’t fundamentally change anything about the system (it’s still 6 keys total), the improvements made to fit, finish, weight, and of course the slider are arguably worth the difference. Either way I definitely can’t go back to a normal set of keys.

Fixing Dropbox’s Camera Upload Organization Mess – EXIFmover

First, I have to note that I love Dropbox. I’ve been using the service almost since the beginning to synchronize my work across multiple desktops, notebooks, and mobile devices. There’s really no alternative at this point that rivals Dropbox in my mind.

That said, the state of their camera upload organization is abysmal. This is a recent new emphasis for Dropbox, automatically uploading all the photos taken on a mobile device or onboard an SD card inserted into a notebook. The problem is that all of these photos are dumped into the same /Dropbox/Camera Uploads folder, so you end up with a huge list of photos. That’s not so bad, except that in my case I’m dealing with sample photos taken on multiple devices for testing results in a completely unwieldy directory with so many files that it often causes Finder on OS X or Explorer on Windows to stall for seconds upon opening.

This isn’t that well organized…

I’ve pleaded my case for a simple feature to be added – per device folder creation. This didn’t make it into the last update, and about a week or so ago I wrote a script to do exactly that. It parses the EXIF data, and sorts photos into a folder with name /[type]+[model]. The end result looks like this:

Finally, some per-device sorting

It’s called EXIFmover and I stuck it up on Github as a Gist since it’s pretty simple. I use Python 2.7 personally, so that’s what this is tailored for. I’ve tested on OS X, Windows, and Ubuntu. Python’s OS interface is fairly platform agnostic. The one prerequesite is EXIF-Py for parsing the EXIF metadata from photos, which can be obtained from that project’s Github page.

Stick both EXIFmover.py and EXIF.py in the Camera Uploads directory, and run. As more files are uploaded, this can be run again and photos will be sorted once more.

Finally, some organization.

AT&T 4G LTE in Tucson, AZ – Coming Before End of 2012

It has been what seems like an eternity since I wrote a bit about Verizon 4G LTE coming to Tucson, AZ. Since then, the network has been deployed and working just fine, and made it into my mental take-it-for-granted state. Since then, Cricket has lit up their own LTE network on AWS (1700/2100 MHz), and next up is AT&T who just recently announced details about their LTE deployment for a bunch of markets before the end of this calendar year. I wrote about the AT&T LTE news at a high level at AnandTech, and the announcement comes a not-so-coincidentally timed week before the next iPhone announcement in an attempt to prevent lots and lots of LTE related churn.

I’m burying the lead a bit, but before the end of 2012 AT&T will have LTE finally lit up in my part of the world. There’s a relevant press release here which is relatively light on detail – there’s no outline for what parts of town will get LTE, whether it will include surrounding areas, or any further detail. I guess we can only hope that they mean the greater metro area. I’ve asked a few of my sources for a better timeline, but can only say that before December LTE should be lit up.

I hope it goes without saying, but LTE (3GPP Long Term Evolution) is completely different from the earlier announcements AT&T made about “4G” coming to Tucson in May 2011. That was really just deployment of HSPA+ with up to 16QAM on the downlink (HSDPA 14.4) and some additional WCDMA carriers for capacity reasons. I’m pretty pleased with the state of AT&T WCDMA in town, I see around 2-3 carriers on PCS (1900 MHz) around town and what I consider very good peak speeds.

AT&T Spectrum Holdings in Pima County (As of Sept. 7 2012)

Since AT&T LTE doesn’t use the same channel bandwidth everywhere, it’s worth noting that in this particular market (Pima County), AT&T can run 10 MHz FDD-LTE on Band 17, (Lower 700 MHz B+C blocks) and 5 MHz FDD-LTE on AWS (1700/2100) when the time arises. I haven’t seen AT&T enable any LTE on AWS quite yet, this is likely coming at some future date after the rollout is closer to completion or as a way to mitigate loading in the future.

Ditching the Key Ring – Keyport Slide V01 Review

For the longest time, the number of keys on my keychain seemed to be growing out of control. I couldn’t really figure it out, but it was to the point that I had a carabiner and multiple rings to contain all the keys I somehow was accumulating. Then it occurred to me that I didn’t really need all those keys every day – just the few that I use on a day to day basis, then the rest could be stored and used when necessary. I had seen Keyport a few times before, including on the very popular every day carry blog, but something about going through the process didn’t seem worthwhile when a move between houses was looming and my future was relatively nebulous. Recently however, while thinking of an ideal Father’s day present, stumbled on a coupon code for the Keyport and decided I’d order two – one as the gift, another for myself just to see how it goes.

The order process is pretty simple. After picking out the desired Keyport color, number of keys, and accessories (I went with a USB drive and bottle opener), you snap photos of the keys on a printed form and write down markings on the keys. The bits can be blanked out in photoshop, all that needs make it are the head, shaft, and both sides. These then get sent off so Keyport can ship back the appropriate blanks. I had two keys which Keyport couldn’t mail blanks for – a US Post Office box key (which was expected), and my locking gas cap key (which looks incredibly generic). For these, one needs to either ship the key in for Keyport to cut the head off of and turn into a keyport key (in the case of the post office key), or properly identify. I ended up with the following codes:

After a while, the Keyport comes in the above tin with some documentation, along with your blanks. The interesting part of the key blanks is that it appears that Keyport simply cuts the heads off of blanks themselves. If you look closely at the blanks, it’s pretty obvious that they use a bandsaw or something, then mate them up with the plastic Keyport insert. Nothing wrong with this, just an interesting note.

After you get the blanks back, it’s then a matter of finding a locksmith who will cut the keys. There’s a list of approved locksmiths from Keyport, however there weren’t any down in Tucson, AZ. Since there’s really only one go at getting the blanks cut (without paying money and ordering more), getting a good cut is key, and I worried that Ace or Home Depot might mess things up, especially after having a few keys cut at Home Depot that needed to be re-cut. I ended up going to Bruce’s Lock Shop on Broadway, who had no problem with the blanks, and charged just $2 for my 4 keys. All of my keys worked perfectly in their respective locks – phew! Of particular interest is the chipped car key, which comes along with a plastic insert (for you to stick a loyalty club barcode on) and the transponder chip at the end. Both of the relevant vehicles I ordered car keys for support onboard programming, which is simple – you insert the original OEM keys one after the other, then the third key you want added to the ECU, and boom, it works. How this goes is largely a function of your car, of course. The other difficulty with the car key is that you must make sure you have adequate clearance around the keyhole for the whole Keyport to rotate, a little over a 1″ diameter circle. In addition, this means that the middle two Keyport slots basically must be dedicated to the car key and transponder / barcode insert, so the turning radius is minimized. I have no problem with clearance or turning the Keyport in my 2005 F-150, though it is tight. I also worried about whether a Keyport full of keys would be heavy enough to cause concern about wearing the car’s key slot on the steering column, and thankfully it seems light enough that I’m not worried about damage happening. The rest of the keys for me were very simple and turn in their respective tumblers just fine. If you have a particularly torquey lock, however, I could see how Keyport might not handle it. The documentation supplied with the box notes a design torque of up to 20 inch-lbs, and that most locks only require 1-3 inch-lbs. I can see how this is a very big design concern, since you’re no longer just torquing the metal head of a key, but instead this large assembly. Overall I’m pretty pleased with how things turned out, and the end result is that I no longer have a huge carabiner of keys poking me in the leg or taking up space in my pocket that could be otherwise used for additional smartphones. I still have to get the second set cut, but don’t expect any problems since it’s largely the same set of keys. Spoiled by iMessage – Or Things I don’t miss about SMS As the smartphone space becomes increasingly commoditized, the obvious next step is to make hardware choice a function of ecosystem choice. That’s already happened for some of the obvious features (marketplaces for music, video, and books), but the next step is delivering ecosystem-specific features for core phone functionality. Probably one of the features I use the most on a device is messaging, and since iMessage is nearly a year old, I couldn’t help but think more about why I feel a back-of-my-mind longing for it whenever I go back to a device that’s strictly SMS. Also, a recent influx of weird SMS issues I encountered while chatting with a friend prompted both a twitter rant and me deciding to finally get all of this down somewhere. So here’s a simple bulleted list about some of the things I don’t miss about SMS: • Split messages at the 160 character limit • The caveat here is that some carriers do indeed properly concatenate messages, but this usually only works if both sender and recipient are on the same carrier. The Verizon -> AT&T exchange used to properly implement this, back when the CDMA iPhone 4 came out, but it later was broken and inexplicably never fixed. Part of me wonders whether iMessage wasn’t spawned partially because of this annoyance. • Messages arriving out of order, sometimes as a result of the split from the character limit • This is a continual annoyance, there’s no greater way to break the flow of a conversation than by having replies arrive completely out of order. Also SMS is predominantly circuit switched, and not an IP based protocol. Obviously BBM/iMessage just work over the internet, and aren’t tied to having a working cellular session. • No delivery guarantee, SMS is best effort delivery only • Duplicate SMSes as a result of carriers implementing proprietary systems to mitigate SMS’ best effort delivery system • Verizon seems to be particularly aggressive about this. I still would like to know more about just how their system determines when to re-send a particular SMS, but I sometimes get 3 or 4 of the same SMS from Verizon subs. • No read reports or delivery status reports (at least on most new smartphone OSes that don’t implement SMS delivery receipts) • Delivery reports are actually a pretty common feature for SMS (usually just uses a prefix), but implementation varies from carrier to carrier and is a big mess. I suspect this is the reason smartphone platforms tend to implement it at random, if at all. • Delivery time is sometimes very long depending on SMSC load • Try getting an SMS delivered on New Years, I dare you. • Image sizes are smaller and more compressed for MMS, different for each carrier and up to the exchange to accommodate and tailor to sizes • This is set on iOS in the carrier bundle • iMessage can deliver full quality images if both sender and recipient are on WiFi • The price of an SMS •$0.11 per message is downright absurd

RIM understood the importance of having a platform-specific messaging product with BBM, specifically in both the platform lock-in and loyalty that this kind of feature adds. There’s a certain amount of potential energy that it takes to overcome both this messaging tie-in when switching platforms, and users can readily identify the differences. Apple clearly got this and delivered with iMessage, and I expect that having a messaging platform that spans the smartphone, tablet, and desktop will make that potential energy to escape to another ecosystem even harder to overcome. There’s a certain message or conversational velocity that makes BBM and iMessage feel entirely different from traditional IM, yet faster than the sometimes minute-delayed SMS.

Currently Google’s messaging “product” is Google Chat, but the acquisition of Meebo and other internal rumblings make me strongly suspect that a more cohesive and mobile-oriented messaging product with the same BBM/iMessage like conversational velocity is coming, maybe even at Google I/O 2012. There’s so much at work here which both shifts the balance of power away from the carriers and also makes the whole messaging experience better by sharing it with the tablet and desktop.

A Quick Analysis of EXIF data from iPad (3rd Gen) Camera Samples

Previously I posted about the EXIF data present in Apple’s untouched, straight-from-the-device iPhone 4S camera samples. Today, I saw that they had done the same thing again by posting original samples of images taken from the iPad. There’s still no original video sample (instead just a compressed one) so unfortunately there’s no telling whether A5X gets a better encoder than the one from A5. I wouldn’t hold my breath, however, as it’ll probably wind up being the same 24 Mbps H.264 baseline with 1 reference frame.

Like before, Apple has left the EXIF data intact on its samples, including the geotagging data for a surprising number. I think it’s interesting to just take a look.

Image 1 – IMG_1610.jpg

Flowers seem to be a recurring thing for Apple photo samples, and in general are a subject that probably resonates with even amateur macro photographers.
ExifTool Version Number : 8.68
File Name : IMG_1610.JPG
File Size : 1518 kB
File Modification Date/Time : 2012:03:08 12:44:45-07:00
File Permissions : rw-r--r--
File Type : JPEG
MIME Type : image/jpeg
Exif Byte Order : Big-endian (Motorola, MM)
Make : Apple
Camera Model Name : iPad
Orientation : Rotate 180
X Resolution : 72
Y Resolution : 72
Resolution Unit : inches
Software : 5.1
Modify Date : 2012:02:16 11:19:30
Y Cb Cr Positioning : Centered
Exposure Time : 1/2160
F Number : 2.4
Exposure Program : Program AE
ISO : 80
Exif Version : 0221
Date/Time Original : 2012:02:16 11:19:30
Create Date : 2012:02:16 11:19:30
Components Configuration : Y, Cb, Cr, -
Shutter Speed Value : 1/2160
Aperture Value : 2.4
Brightness Value : 10.13573086
Metering Mode : Multi-segment
Flash : No flash function
Focal Length : 4.3 mm
Subject Area : 1295 967 699 696
Flashpix Version : 0100
Color Space : sRGB
Exif Image Width : 2592
Exif Image Height : 1936
Sensing Method : One-chip color area
Exposure Mode : Auto
White Balance : Auto
Focal Length In 35mm Format : 35 mm
Scene Capture Type : Standard
Sharpness : Normal
GPS Latitude Ref : North
GPS Longitude Ref : West
GPS Altitude Ref : Below Sea Level
GPS Time Stamp : 19:19:30.6
GPS Img Direction Ref : True North
GPS Img Direction : 267.2341772
Compression : JPEG (old-style)
Thumbnail Offset : 904
Thumbnail Length : 10049
Image Width : 2592
Image Height : 1936
Encoding Process : Baseline DCT, Huffman coding
Bits Per Sample : 8
Color Components : 3
Y Cb Cr Sub Sampling : YCbCr4:2:0 (2 2)
Aperture : 2.4
GPS Altitude : 0 m Above Sea Level
GPS Latitude : 38 deg 21' 21.60" N
GPS Longitude : 123 deg 4' 1.20" W
GPS Position : 38 deg 21' 21.60" N, 123 deg 4' 1.20" W
Image Size : 2592x1936
Scale Factor To 35 mm Equivalent: 8.2
Shutter Speed : 1/2160
Thumbnail Image : (Binary data 10049 bytes, use -b option to extract)
Circle Of Confusion : 0.004 mm
Field Of View : 54.4 deg
Focal Length : 4.3 mm (35 mm equivalent: 35.0 mm)
Hyperfocal Distance : 2.08 m
Light Value : 13.9

Like last time I’ve reproduced the entire EXIF output using the ever-awesome exiftool, or you can do the same thing (which uses it as a backend) on exifdata.com. It’s the same data just presented in a nicer fashion online (and with a link to google maps).

So a couple things immediately stand out which I’ve bolded. First, the model of the device reflects Apple’s new naming scheme, and reports simply “iPad.” There’s no 3 or “Late 2012″ or any other moniker, which should further confirm (if it’s even possible to more strongly confirm) that the name of the thing is literally just “iPad.” The software this iPad was running is iOS 5.1, which makes sense. Image size is 2592×1936 which works out to exactly 5.01 MP as well – the original iPhone 4 also produced images 2592×1936 in size, in fact, I wouldn’t be surprised to see the same OmniVision CMOS being shared between the 4 and iPad (3rd Gen).

Moving on we also see that the focal length and field of view reported in EXIF data are exactly the same as those from the iPhone 4S. This does seem to back the claim that the iPad 3rd Gen is indeed using the same optical system/module as the iPhone 4S, at least superficially. Further, this means that the two must be using the same size sensor to achieve the same field of view with the same 4.3mm focal length.

Update: This ended up being the case, as the iPad (3) uses the same CMOS as the iPhone 4 (as predicted), which is OmniVision’s OV5650. That sensor has 1/3.2″ size and 1.75µm pixels. Recall that the iPhone 4S uses Sony’s IMX145 sensor which is 1/3.2″ as well, but with 1.4µm pixels. Using the same optical format is what makes it possible for Apple to reuse the same 5P optical design between the iPhone 4S and iPad (3).

The image is recorded at ISO 80 (which is the lowest I’ve seen the 4S go as well) and at 100% crop looks pretty good, though I wouldn’t go so far as to say it’s mindblowing. There’s some definite noise visible in the sky and some noise-reduction which seems to battle it. Thankfully Apple still isn’t using a sharpening kernel, so there aren’t any halos around the flower’s petals. The lower part of the flower petal also has some oversaturation (100% white). The good part is that it seems to inherit the good optical qualities from the 4S system (same module, different CMOS I guess) and there’s minimal distortion or vignetting, two things that drive me absolutely crazy with most smartphone/tablet camera modules.

Location this photo was taken is Bodega Bay, CA. The photo was also taken on February 16th if the data is to be believed.

Image 2 - IMG_0470.png

Image 2 is pretty surreal. First off, it isn’t a jpg (which is why I’ve added the extensions to these headings) but is rather a png. I’m not sure whether this was just an honest mistake, but something is really weird here and the image obviously didn’t come in this extension or format directly from an iPad.

Pulling out the EXIF data raises more questions than it answers:

ExifTool Version Number : 8.68
File Name : IMG_0470.png
File Size : 5.1 MB
File Modification Date/Time : 2012:03:08 12:44:50-07:00
File Permissions : rw-r--r--
File Type : PNG
MIME Type : image/png
Image Width : 2592
Image Height : 1936
Bit Depth : 8
Color Type : RGB
Compression : Deflate/Inflate
Interlace : Noninterlaced
Pixels Per Unit X : 2835
Pixels Per Unit Y : 2835
Pixel Units : Meters
Profile CMM Type : Lino
Profile Version : 2.1.0
Profile Class : Display Device Profile
Color Space Data : RGB
Profile Connection Space : XYZ
Profile Date Time : 1998:02:09 06:49:00
Profile File Signature : acsp
Primary Platform : Microsoft Corporation
CMM Flags : Not Embedded, Independent
Device Manufacturer : IEC
Device Model : sRGB
Device Attributes : Reflective, Glossy, Positive, Color
Rendering Intent : Perceptual
Connection Space Illuminant : 0.9642 1 0.82491
Profile Creator : HP
Profile ID : 0
Profile Copyright : Copyright (c) 1998 Hewlett-Packard Company
Profile Description : sRGB IEC61966-2.1
Media White Point : 0.95045 1 1.08905
Media Black Point : 0 0 0
Red Matrix Column : 0.43607 0.22249 0.01392
Green Matrix Column : 0.38515 0.71687 0.09708
Blue Matrix Column : 0.14307 0.06061 0.7141
Device Mfg Desc : IEC http://www.iec.ch
Device Model Desc : IEC 61966-2.1 Default RGB colour space - sRGB
Viewing Cond Desc : Reference Viewing Condition in IEC61966-2.1
Viewing Cond Illuminant : 19.6445 20.3718 16.8089
Viewing Cond Surround : 3.92889 4.07439 3.36179
Viewing Cond Illuminant Type : D50
Luminance : 76.03647 80 87.12462
Measurement Observer : CIE 1931
Measurement Backing : 0 0 0
Measurement Geometry : Unknown (0)
Measurement Flare : 0.999%
Measurement Illuminant : D65
Technology : Cathode Ray Tube Display
Red Tone Reproduction Curve : (Binary data 2060 bytes, use -b option to extract)
Green Tone Reproduction Curve : (Binary data 2060 bytes, use -b option to extract)
Blue Tone Reproduction Curve : (Binary data 2060 bytes, use -b option to extract)
White Point X : 0.31269
White Point Y : 0.32899
Red X : 0.63999
Red Y : 0.33001
Green X : 0.3
Green Y : 0.6
Blue X : 0.15
Blue Y : 0.05999
Image Size : 2592x1936

The Microsoft and HP lines above are just talking about the ICC profile and header attached to the image. It’s an sRGB 1998 ICC profile, and there are CMM type fields (Lino) and others. I would suspect that this image was put through some software with a color management system which saved this information in the headers, and the person saving it chose PNG to not introduce more JPEG artifacts by re-encoding an already lossy-encoded image.

I’m not going to pretend to know exactly what went on here, but it’s fairly obvious the image didn’t come out of camera.app this way…

Image 3 - IMG_1190.jpg

Image 1190 is of a beached boat with “Point Reyes” marked on it. Thankfully this is a JPEG and not a PNG with everything stripped out.

Software : 5.1
Modify Date : 2012:02:14 16:14:55
Y Cb Cr Positioning : Centered
Exposure Time : 1/1439
F Number : 2.4
Exposure Program : Program AE
ISO : 80
Exif Version : 0221
Date/Time Original : 2012:02:14 16:14:55
Create Date : 2012:02:14 16:14:55
Components Configuration : Y, Cb, Cr, -
Shutter Speed Value : 1/1439
Aperture Value : 2.4
Brightness Value : 9.728654971
Metering Mode : Multi-segment
Flash : No flash function
Focal Length : 4.3 mm
Subject Area : 1295 967 699 696
Flashpix Version : 0100
Color Space : sRGB
Exif Image Width : 2592
Exif Image Height : 1936
Sensing Method : One-chip color area
...
GPS Altitude : 0 m Above Sea Level
GPS Latitude : 38 deg 5' 51.60" N
GPS Longitude : 122 deg 51' 3.00" W
GPS Position : 38 deg 5' 51.60" N, 122 deg 51' 3.00" W
Image Size : 2592x1936
Scale Factor To 35 mm Equivalent: 8.2
Shutter Speed : 1/1439
Thumbnail Image : (Binary data 9285 bytes, use -b option to extract)
Circle Of Confusion : 0.004 mm
Field Of View : 54.4 deg
Focal Length : 4.3 mm (35 mm equivalent: 35.0 mm)
Hyperfocal Distance : 2.08 m
Light Value : 13.3

I didn’t paste the whole output since it’s a lot more of the same as before. Still an iPad running iOS 5.1, same focal length, field of view, all that good stuff. ISO is still 80 as well.

The location is Martinelli Park near Point Reyes (hence the marking), taken on February 14th, 2012. This is two days before the first image in the set, and very close to it (Bodega Bay and Point Reyes are essentially neighbors, at least based on Google Maps)…

Subjectively this image looks pretty decent, though there is definite blurring and loss of high spatial frequencies in the brown grass at left, though this is a challenging subject and great place to look for any camera to start making things a homogenous mess.

Image 4 - IMG_0561.jpg

This is a photo of some dog, and is the only portrait orientation photo in the set. Seriously I have no idea what kind of dog this is, I guess that cements my status as not an animal person.
Software : 5.1
Modify Date : 2012:02:09 12:03:06
Y Cb Cr Positioning : Centered
Exposure Time : 1/1890
F Number : 2.4
Exposure Program : Program AE
ISO : 80
Exif Version : 0221
Date/Time Original : 2012:02:09 12:03:06
Create Date : 2012:02:09 12:03:06
Components Configuration : Y, Cb, Cr, -
Shutter Speed Value : 1/1890
Aperture Value : 2.4
Brightness Value : 10.12332838
GPS Altitude : 0 m Above Sea Level
GPS Latitude : 34 deg 1' 14.40" N
GPS Longitude : 118 deg 47' 10.80" W
GPS Position : 34 deg 1' 14.40" N, 118 deg 47' 10.80" W
Image Size : 2592x1936
Scale Factor To 35 mm Equivalent: 8.2
Shutter Speed : 1/1890
Thumbnail Image : (Binary data 8699 bytes, use -b option to extract)
Circle Of Confusion : 0.004 mm
Field Of View : 54.4 deg
Focal Length : 4.3 mm (35 mm equivalent: 35.0 mm)
Hyperfocal Distance : 2.08 m
Light Value : 13.7

Again there’s no point in republishing all the EXIF data as much of it is the same as before and seems to be valid. ISO is 80 once again.

This photo interestingly enough was captured before all the others, on February 9th, 2012, five days before the third image above. Location this time is Paradise Cove right on the PCH. It’s interesting to me that all the images seem to be of or taken near beaches for some reason.

Final Thoughts

Of the images we can extract EXIF from, all are taken at ISO 80. This is probably no coincidence, as Apple probably wants to stay away from low light performance where basically everything struggles right now even with BSI CMOSes and fast F/2.2 or F/2.4 optics. I guess the beach is a logical choice of scenery to that end since there’s a lot of light (sand is reflective, after all). The photos are from different dates as well, which seems like a risky thing to do when trying to minimize the chances of some crazed tech-paparazzi catching an Apple engineer/exec with an unreleased iDevice snapping photos. With the iPhone 4S we saw a huge variety of different locations spanning California to Yosemite to Germany, whereas the iPad essentially gets a drive up the coast and a week of photos. Read into that what you may.

Obviously the last point is that the iPad 3rd gen’s camera is much improved from the almost universally-derided iPad 2 camera (which borrowed the iPod touch module). It’s interesting to see a move to using the same optical system as the 4S and likely the same CMOS as the 4, though it does make sense to maximize component cross-compatibility and drive up volume.

Motivation

In the course of doing smartphone reviews for AnandTech, I’ve taken a lot of photos for the expressed purpose of comparing camera quality. I don’t have an exact number, but it’s an absurd number of images, and of those, maybe 20% or so actually get published. We reviewed the iPhone 4S and discussed its camera at length in our review, but one of the things that piqued my attention was Apple’s claim that they had were sharing untouched, direct-from-the-iPhone samples online (at the bottom). In case you want all of the images, I’ve uploaded a zip here locally.

What’s interesting is that by default, iOS captures geolocation data on each image capture unless you decline the location services request on initial launch. I was curious to find out just how untouched these images were and whether all the EXIF data was left intact, including the GPS location data. Clearly these photos were taken at places that are either some engineer’s favorite hideouts, or possibly much more. Also, there’s that ever looming question of when they were taken, and whether there’s any chance anyone could’ve seen Apple employees taking photos with an unreleased iDevice at some scenic location.

You can analyze EXIF data in any number of image manipulation packages, and increasingly desktop OSes are exposing this data directly (Finder, Explorer, e.t.c.) but for quick analysis I turned to exifdata.com which does a nice job visualizing everything. Alternatively one can just dump the EXIF data using libraries like the very popular exiftool.

Image 1 – IMG1031

Here’s the dump from one of Apple’s demo images, “IMG_1031.JPG” which is the squirrel photo shown during the announcement event. There’s all the standard data included in the full headers, and you can see specifications such as focal length, exposure time, ISO, model, and the software (iOS 5) used. There are some other fields as well.

SubjectArea I believe corresponds to either where the face detection routine selected an AE/AF target with highest confidence value (most likely to be a face), or where the image was focused using tap to focus. The iPhone 4S also includes some new fields at the very bottom such as 35mm equivalent focal length, field of view, hyperfocal distance (at half this distance, all objects and further meet image plane blur criterion and appear in focus – this half trips people up), and even circle of confusion diameter (blur size/circle of confusion). These values at the very end appear to be specific to the iPhone 4S (and possibly its H4 ISP) and aren’t part of the JEITA EXIF 2.2 specification.

ExifTool Version Number         : 8.68
File Name                       : IMG_1031.JPG
Directory                       : .
File Size                       : 3.1 MB
File Modification Date/Time     : 2011:10:05 01:43:44-07:00
File Permissions                : rw-r--r--
File Type                       : JPEG
MIME Type                       : image/jpeg
Exif Byte Order                 : Big-endian (Motorola, MM)
Make                            : Apple
Camera Model Name               : iPhone 4S
Orientation                     : Rotate 180
X Resolution                    : 72
Y Resolution                    : 72
Resolution Unit                 : inches
Software                        : 5.0
Modify Date                     : 2011:08:24 13:13:33
Y Cb Cr Positioning             : Centered
Exposure Time                   : 1/286
F Number                        : 2.4
Exposure Program                : Program AE
ISO                             : 64
Exif Version                    : 0221
Date/Time Original              : 2011:08:24 13:13:33
Create Date                     : 2011:08:24 13:13:33
Components Configuration        : Y, Cb, Cr, -
Shutter Speed Value             : 1/286
Aperture Value                  : 2.4
Brightness Value                : 6.992671928
Metering Mode                   : Multi-segment
Flash                           : Auto, Did not fire
Focal Length                    : 4.3 mm
Subject Area                    : 1631 1223 881 881
Flashpix Version                : 0100
Color Space                     : sRGB
Exif Image Width                : 3264
Exif Image Height               : 2448
Sensing Method                  : One-chip color area
Exposure Mode                   : Auto
White Balance                   : Auto
Focal Length In 35mm Format     : 35 mm
Scene Capture Type              : Standard
Sharpness                       : Normal
GPS Latitude Ref                : North
GPS Longitude Ref               : West
GPS Altitude Ref                : Above Sea Level
GPS Time Stamp                  : 21:08:30
GPS Img Direction Ref           : True North
GPS Img Direction               : 346.4727273
Compression                     : JPEG (old-style)
Thumbnail Offset                : 908
Thumbnail Length                : 12311
Image Width                     : 3264
Image Height                    : 2448
Encoding Process                : Baseline DCT, Huffman coding
Bits Per Sample                 : 8
Color Components                : 3
Y Cb Cr Sub Sampling            : YCbCr4:2:0 (2 2)
Aperture                        : 2.4
GPS Altitude                    : 1222 m Above Sea Level
GPS Latitude                    : 37 deg 44' 10.80" N
GPS Longitude                   : 119 deg 35' 58.80" W
GPS Position                    : 37 deg 44' 10.80" N, 119 deg 35' 58.80" W
Image Size                      : 3264x2448
Scale Factor To 35 mm Equivalent: 8.2
Shutter Speed                   : 1/286
Thumbnail Image                 : (Binary data 12311 bytes, use -b option to extract)
Circle Of Confusion             : 0.004 mm
Field Of View                   : 54.4 deg
Focal Length                    : 4.3 mm (35 mm equivalent: 35.0 mm)
Hyperfocal Distance             : 2.08 m
Light Value                     : 11.3

If you look at this data a few things pop out. There really is GPS location data inside, and just like before the iDevice also encodes what direction the phone was pointing (compass data) when the image was captured.

This first photo was captured in Yosemite National Park on August 24th 2011, a full one month and 10 days before its announcement on October 4. Interesting.

Image 2 – IMG1664

This second image is of some waves breaking on a rocky beach and shows very nice detail. Just like the first image, it too includes GPS data and the creation date.

Make                            : Apple
Camera Model Name               : iPhone 4S
Orientation                     : Rotate 180
Date/Time Original              : 2011:08:29 18:50:23
Create Date                     : 2011:08:29 18:50:23
GPS Latitude Ref                : North
GPS Longitude Ref               : West
GPS Altitude Ref                : Below Sea Level
GPS Time Stamp                  : 02:27:00
GPS Img Direction Ref           : True North
GPS Img Direction               : 357.1590909
GPS Altitude                    : 0 m Above Sea Level
GPS Latitude                    : 38 deg 26' 28.20" N
GPS Longitude                   : 123 deg 7' 36.00" W
GPS Position                    : 38 deg 26' 28.20" N, 123 deg 7' 36.00" W

I’ve truncated the exported data for this image since the same format as the previous one. Note zero feet above sea level, indeed this checks out.

This photo was taken at goat rock beach on August 29th, five days after the first image, and one month 5 days before the announcement. What’s intense about this image is that if you study the google satellite view enough, then take into account the pointing direction, you can actually see the rock in the photograph.

Image 3 – IMG0032

This image is a landscape photo with a waterfall in the distance.

Make                            : Apple
Camera Model Name               : iPhone 4S
Orientation                     : Horizontal (normal)
Date/Time Original              : 2011:08:25 09:27:36
Create Date                     : 2011:08:25 09:27:36
GPS Latitude Ref                : North
GPS Longitude Ref               : West
GPS Altitude Ref                : Above Sea Level
GPS Time Stamp                  : 17:26:10
GPS Img Direction Ref           : True North
GPS Img Direction               : 254.5312024
GPS Altitude                    : 1192 m Above Sea Level
GPS Latitude                    : 37 deg 44' 38.40" N
GPS Longitude                   : 119 deg 35' 30.60" W
GPS Position                    : 37 deg 44' 38.40" N, 119 deg 35' 30.60" W

This one also includes the GPS location and pointing data.

Upon inspection, we can see this photo was taken also at Yosemite National Park and on August 25th 2011. It seems very likely this was taken by the same person who took the squirrel photo, given the fact that it’s a day later and in the same region in the park – perhaps a camping trip or something?

Image 4 – IMG1295

This image is of a person holding a flower up to the camera showing shallow depth of field and some serious bokeh. The subject is the same as shown in the 1080p video sample Apple provides, and appears to lack GPS data of any kind, but was taken on August 29th.

Make                            : Apple
Camera Model Name               : iPhone 4S
Orientation                     : Horizontal (normal)
Date/Time Original              : 2011:08:29 15:54:02
Create Date                     : 2011:08:29 15:54:02

Image 5 – IMG0945

This image looks almost like a test scene, and includes some potted herbs, drawers, fruits, lemons, and a bunch of different knick knacks. The EXIF data for this one includes GPS data.

Make                            : Apple
Camera Model Name               : iPhone 4S
Orientation                     : Horizontal (normal)
Date/Time Original              : 2011:08:30 14:01:03
Create Date                     : 2011:08:30 14:01:03
GPS Latitude Ref                : North
GPS Longitude Ref               : East
GPS Altitude Ref                : Above Sea Level
GPS Time Stamp                  : 13:25:21
GPS Img Direction Ref           : True North
GPS Img Direction               : 21.31747484
GPS Altitude                    : 342.1 m Above Sea Level
GPS Latitude                    : 50 deg 55' 6.60" N
GPS Longitude                   : 14 deg 3' 24.00" E
GPS Position                    : 50 deg 55' 6.60" N, 14 deg 3' 24.00" E

So far the images we’ve seen have been from just inside the US – this image is from the Königstein Fortress in Germany of all places, and was taken on August 30th.

This one is particularly interesting since it’s a great demonstration photo but also is the only sample image not taken in the US.

Image 6 – IMG1401

This image also has no GPS data, which means it possibly was taken by the same iPhone 4S as number 4 (and this user disabled location services for the camera app), or just someone else who was likewise cautious to not include position. This image is a macro of some flowers.

Make                            : Apple
Camera Model Name               : iPhone 4S
Orientation                     : Horizontal (normal)
Date/Time Original              : 2011:08:29 17:30:26
Create Date                     : 2011:08:29 17:30:26

This image was taken on August 29th, however.

Image 7 – IMG1720

Likewise, this one also lacks GPS data, but shows a beach at dusk (thus, west coast) and appears to have been taken likewise on August 29th in the evening.

Make                            : Apple
Camera Model Name               : iPhone 4S
Orientation                     : Horizontal (normal)
Date/Time Original              : 2011:08:29 19:28:56
Create Date                     : 2011:08:29 19:28:56

Image 8 – IMG0940

The last image shows the same hot air balloon as shown in the 1080p video sample, and includes GPS data. We can see where this video (and likely image 4) was taken.

Make                            : Apple
Camera Model Name               : iPhone 4S
Orientation                     : Rotate 180
Date/Time Original              : 2011:08:30 10:33:45
Create Date                     : 2011:08:30 10:33:45
GPS Latitude Ref                : North
GPS Longitude Ref               : West
GPS Altitude Ref                : Above Sea Level
GPS Time Stamp                  : 18:48:01
GPS Img Direction Ref           : True North
GPS Img Direction               : 270.9027778
GPS Altitude                    : 31 m Above Sea Level
GPS Latitude                    : 38 deg 30' 13.20" N
GPS Longitude                   : 122 deg 46' 21.00" W
GPS Position                    : 38 deg 30' 13.20" N, 122 deg 46' 21.00" W

Oddly enough image 4 and image 8 were taken on different days, so this possibly is a different location. That said, the location appears to be the Kendall-Jackson winery right off the 101.

Like the beach photo, this is just up the coast from San Francisco. The photo was taken August 30th as well.

Conclusions

Apple took sample images for its iPhone 4S presentation between the dates of August 24th and August 30th, a little over one month before the public unveiling. It’s interesting to note that had you been fortuitous enough to be in Yosemite National Park on the 24th or 25th, you might have by chance seen an iPhone 4S snapping photos of scenery and squirrels. Other locations near San Francisco seem logical given Apple’s location in Cupertino, CA, leaving the photo from Germany an odd outlier.

It seems that for all the scrutiny placed on bars surrounding 1 infinite loop, being in picturesque locales one month before an iPhone unveiling is quite possibly another logical strategy for spotting an unreleased iPhone.

I have to come full circle and say that I’m impressed Apple really didn’t scrub data from its sample images. This is something even I do to provide some location anonymity in the course of uploading sample images, though as of late I’ve become sloppy with scrubbing all the GPS data from EXIF for each sample image.

NiZn PowerGenix Batteries

I’ve been meaning to write about a set of interesting new rechargeable AA batteries I came across for a while now. Last year (wow, has it really been that long?) I came across a review on engadget of some PowerGenix NiZn (Nickel Zinc) rechargeable batteries which promised better performance, higher voltage than NiMH, and greater capacity. I was compelled to invest in some otherwise experimental and new rechargeables for a few reasons:

Doing indoor photography with my girlfriend – especially weddings – it becomes apparent just how many AAs you can go through quickly. So many that it’s relatively expensive and prohibitive to keep up and carry all those batteries around. They’re expensive, and just don’t last long enough. One or two hundred shots or so, if I recall correctly.

SB600 Flash

Anyhow, right after getting them and charging them, I decided to shoot a wedding with my SB600 flash and the NiZn batteries. I was immediately floored at how fast the flash recharged and how performance never seemed to fade like alkalines do. Usually, flash performance seems to fall off exponentially with the generic alkaline batteries – eventually the time it takes to recharge gets so long you can’t take photos of anything. So what’s useful about the NiZn was the hugely fast, super quick recharge time.

That’s also… the problem. While shooting that wedding, I managed to somehow completely blow out the flash. This thing was under 2 months old, used at a few other weddings, without what I’d consider very many activations at all. The SB600 apparently has no thermal cutoff at all, allowing the whole thing to overheat. Whatever the case, while shotgunning some photos of the dance floor in low light, it stopped working. The flash didn’t feel notably hot, but the flash showed an error on the screen and wouldn’t work from then on. Anyhow, I shipped the flash back into Nikon and had a replacement about a month later, but the point is that I’m now far too scared to repeat the “experiment” again.

It seems that two things are possible:

• The SB600 lacks adequate/any thermal protection preventing the flash from overheating or being fired too quickly
• The SB600 possibly relies on alkaline AA battery performance to prevent the flash from being overheated
• I realize that the NiZn PowerGenix batteries are 1.6 volts (as opposed to the 1.5 standard for alkaline, and 1.2 for NiMH). At the same time, there should definitely be regulation of some kind preventing failure.

The batteries themselves are remarkable in their performance, but it’s that which scares me out of using them in the flash where they’re needed most.

NiZn PowerGenix AA Batteries

What brings this all up is that engadget compared the PowerGenix batteries to some of the other new (and exotic) choices from Energizer and Sanyo Eneloop, and I left a comment.

I purchased the NiZn batteries after your initial review and was super stoked when they came. I’m an avid digital photographer, and replacing flash batteries at a wedding actually gets expensive enough to make buying a bunch of rechargables worthwhile.

That said, I had a brand new SB600 (just like yours) burn out with no warning while shooting with the NiZn batteries. I had to ship the whole thing in and get it replaced. I browsed the Fred Miranda forums some time later and found a bunch of people with the same issue – the SB600 relies on Alkaline batteries simply not being able to drive enough power quick enough when shotgunning that flash to avoid burning out. There isn’t any thermal safeguard.

So be warned, even though you’re testing on an SB600, if you actually do go out and abuse the batteries like you would at a big event firing the flash a lot, you WILL nuke your stuff. I’m too scared to use my NiZn batteries now.

That Fred Miranda forum thread I mentioned is here.

Zoneminder MJPEG and Shared Memory Settings

If you’ve read my big post on the Zoneminder configuration I have at home, you’ll notice that I favored capture of JPEG stills over using MJPEG during initial configuration.

At the time, the reason was simple; I couldn’t make MJPEG work. I’ve now succeed in doing so, and understand why it didn’t work the first time.

Memory Settings

I remembered reading something in the Zoneminder documentation about a shared memory setting resulting in capture at higher resolutions failing. Originally, when I first encountered the problem I decided that it was simply me getting something wrong with the path to the .mjpeg streams on the cameras, since I was more familiar with capture of jpeg stills from prior scripting.

However, I stumbled across some documentation here from another tinkerer, which also pointed to the memory sharing issue.

The problem is that the buffer of frames (usually between 50 and 100 for the camera) must be contained in memory for processing. If the size of the image:

$buffer\, size\times image\, width\times image\, height\times3_{for\,24\, bits}+overhead$

Exceeds this shared memory maximum, you’ll run into errors or see the camera status go to yellow/orange instead of green. (It can get pretty confusing trying to troubleshoot based on those status colors unless you’re checking the logs… /doh)

In fact, the problem I was seeing was likely directly as a result of the large capture image size of my Axis 207mW, as they cite it directly:

Note that with Megapixel cameras like the Axis 207mw becoming cheaper and more attractive, the above memory settings are not adequate. To get Zoneminder working with a full 1280×1024 resolution camera in full colour, increase 134217728 to, for example, 268424446

/facepalm. I really wish I had come across this the first time around. Either way, you’re going to ultimately run into this problem with either higher framerate connections, color, or higher resolutions.

I followed the tips, here, but doubled them since the machine I’m running ZM has a pretty good chunk of memory available.

The process is simple. You’re going to have to edit /etc/sysctl.conf to include the following somewhere:

# Memory modifications for ZoneMinder (kernel.shmall = 32 MB, kernel.shmmax = 512 MB)
kernel.shmall = 33554432
kernel.shmmax = 536870912

Now, apply the settings with

sysctl -p

Which forces a reload of that file. Next, you can check that the memory parameters have been changed:

brian@brian-desktop:~$cat /proc/sys/kernel/shmall 33554432 brian@brian-desktop:~$ cat /proc/sys/kernel/shmmax
536870912

Which is successful. You can also check it with ipcs -l. Now, reboot ZoneMinder and you shouldn’t have any problems.

Motion JPEG Time!

Having made these changes, I was ready to finally explore whether MJPEG works! I went ahead and decided to use the MJPEG streams from my two respective types of cameras in place of the static video links. These are:

I also discovered (by reading the manual) that there’s a handy utility on the Axis config page (under Live Video Config -> HTML Examples -> Motion JPEG) which generates the proper URL based on a handy configuration tool where you can select size, compression, and other options:

Handy config page

The idle load on the system has increased, as expected, but that’s partly from me raising the FPS limit to 10 which seems reasonable, and enabling continual recording with motion detection (mocord).

Nice, 10 FPS! (still a gaping hole though...)

I’m making a lot of tweaks as I get ready to transition everything onto a VM on a faster computer with much more disk space (on the order of 8 TB). If you’re interested in reading more about the Linux kernel shared memory settings, I found some good documentation:

• IBM/RedHat settings: here
• Configuring shared memory: here

7 Wishes for iPhone OS 4.0

Tomorrow’s big unveiling will likely be focused around the much-hyped, illusory tablet (whose name nobody even knows), but a large part of its launch will be iPhone OS 4.0.

Much debate has taken place regarding whether the tablet will run OS X, iPhone OS, or something in-between. Thanks in large part to an errant comment by the McGraw Hill CEO on MSNBC, I think it’s safe to assume that iPhone OS was the right guess all along.

Or was it? It’s likely that instead of releasing the tablet running the 3.x line OS, apple will launch a 4.x fork to bridge the handheld iPhone/iPod Touch experience with that of the tablet, and in so doing bring the mobile OS closer to its desktop counterpart. It makes sense considering keeping two disparate app stores running could cause a colossal flustercuck.

Since its launch in March of 2009, OS 3.x has begun showing some signs of age, especially compared Android 2.x. Here’s a list of what I think OS 4.0 needs to really keep the platform competitive:

1- Google Voice integration

Although Google just launched an HTML5 version of the google voice interface (no doubt specifically targeted at the iPhone and WebOS platforms), it still pales in comparison with how seamless Google Voice integration is on Android. Users of that platform can completely transition to their new number.

Plus, let’s be honest, using a web based version is just hackety compared to being able to use a much more responsive app without having to jailbreak. Until the day comes, I’ll stick with using the still-banned GV Mobile.

2- Google Latitude integration

This is the one that actually started the whole Google – Apple divorce, in case you have forgotten. It’d be amazing to finally see latitude integrated into the maps app the way it should have been the same month latitude launched.

Even better, the maps application (maintained by google) on BlackBerry OS and Android allows for seamless background position updating. As it is right now, iPhone OS users have to go to an HTML5-based version of the same application to update their position. Or jailbreak and use a solution like longitude (some screenshots/info here) and have it done on a schedule by a persistent background process. This is the solution I ultimately decided on

Perhaps this functionality isn’t allowed because of “duplication of functionality” with Mobile Me? Whatever.

3- Better gmail integration in the mail app

Let’s just come out and say it, the mail app on the iPhone is extremely barebones. Coming from Windows Mobile, I was kind of shocked at how barebones, in fact. No ability to change font, underline, bold, italicize, or do anything regarding formatting. As it is right now, the best you can do is some copy paste.

ArsTechnica really did a good job highlighting a number of subtleties that I’ve noticed in their article here. The most annoying of which is that folders aren’t fully synchronized until you go into them. For example, opening a sent folder will cause all the sent emails to load chronologically. This can get frustrating if you’ve sent a lot and just want to look at one; instead, you’ll have to wait for all of them to load. I can do without a unified inbox or unified messaging app, because honestly I view that as a more of a nightmare to be avoided than a feature.

But those aren’t my main gripe, it’s that there isn’t a gmail app (like what Android has) that supports Labels, Stars, or any of the features that make Gmail integration with email clients over IMAP or Exchange difficult. It’s that whole decision they made to not use “folders” and instead use labels that drives me crazy, and to this day, I’m lucky if I can find any sent email in my google apps account.

Forget about background and push, just fix the email client.

4- Notification customizations for SMS, scheduling

Even though the platform has good customization for ringtones, the alert sounds for system events such as email and new SMSes are surprisingly limited. In fact, at first, I assumed I was “doing it wrong” and failing at finding the proper way to load them. Nope, turns out, what you have is what you have, and what you will have forever.

That default “Tri-tone” sound is what everyone uses, and it’s annoying as hell to have it go off in a crowded room and watch 8 people all go for their phones (myself included). Allow some variety, without the need to jailbreak.

A lot of the other platforms also have alert profile scheduling. Namely, you can specify whether you should be alerted audibly, with vibration, or not at all, on a time schedule throughout the day. I’ve defaulted to always leaving my phone on vibrate simply because this is missing.

5- Background apps done right

This is probably everyone’s #1 wish for OS 4.0. Multitasking done right. Sure, you can jailbreak and do it, but it doesn’t lend itself to having a nice task-switcher. Instead, you’re left using what amounts to a task manager, which is completely the wrong way to do it.

Every other platform has it, only one platform (WebOS) has done it right so far. Can you, apple?

6- Better App organization

If you’re like me, you have 9 pages of applications that you’ve tediously organized. But sometimes, categories that are logical don’t come in sets of 16 (how many you can fit on one ‘page’). The real solution is to allow some sort of management. Be that folders, a menu, or something else.

My Layout

Also, there’s no reason that people should be limited to 4 apps on the bottom row just for aesthetics when you have the room for 5. I couldn’t live without having 5 anymore.

7- Better power management – centralized reporting, on/off, scheduling

Something that I think Android really executed properly was the centralized power management screen. HTC has added this to virtually every single device in recent memory as well. That feature is centralized management of radio hardware and other large current draws.

This is something that, if executed properly, could also be a selling point for making hardware “green.” Hell, as a potential EE, I’d be absolutely in love with a screen showing current consumption from all the chipsets in the hardware that report it, plots of use vs. time, and more intelligent prediction of how much life I’ll get out of the device with current use.

But on a more basic level, what we really need is a feature that allows users to schedule the hardware itself. Imagine you’re on a trip without your charger; odds are, you don’t need the radio hardware on while you’re sleeping, but you do need the device on so the alarm works. Allowing users to schedule power events lets you balance use ahead of time.

But a feature I think is really needed is a so-called “last legs” setting. Basically, after the battery has crossed a user-defined threshold (say 15-25%), the software automatically does everything it can to preserve battery life; WiFi is turned off, 3G is turned off in favor of EDGE, screen brightness is reduced to 20%, push services are put on hold, email fetch intervals are doubled or quadrupled, background processes are killed.

The hardware and software essentially would work together to squeeze every last minute of use out of the hardware when battery gets low. This is especially important for when you cross the threshold while the phone is in your pocket, when you probably don’t even know it’s dangerously close to death.

Conclusions

Historically, Apple delivers products that have extremely polished, working features. Essentially, they err on the side of only releasing features that work, always work, and work well, instead of releasing features that don’t always work, or lack polish.

That said, a lot of the market has caught up since 2009. It’s time to address all of those gripes, and I’m hoping OS 4.0 fills some of the glaring holes in the feature set tomorrow. We’ll find out soon.