Tag Archives: apple

Finally, a good Subversion client for Mac OS X

If you don’t have a Mac, or don’t know what SVN is, please accept my apologies for this very directed post. To the one guy remaining, rejoice:

For the longest time, there has been no good SVN interface available on the Mac. Windows folks had TortoiseSVN, and Linux folks wouldn’t be caught dead using anything other than command line tools (or, git, for that matter). So, everybody was happy but us Mac folks.

A program called “Versions” has been available for a while, but it, sadly, epitomizes the style over substance sin that is so prevalent on the Mac. It’s got a beautiful interface, but it’s an interface to very little. Namely, it doesn’t support merging or branching, which is pretty much the most important reason for using a versioning system like SVN. If you’re not branching and merging, you might as well just use a good backup system, because that’s pretty much all you’re using SVN for at that point.

So, I was very excited to find “Cornerstone,” which was recently upgraded to support the slickest SVN interface I’ve seen on any platform. It’s as pretty as “Versions” and as powerful (if not moreso) than TortoiseSVN. It’s merge facility is the best approach I’ve seen, for example. It’s intuitive, and as you adjust the settings it automatically performs a trial merge and gives you the results in real time. Awesome.

They have a two-week trial, which is more than enough to get a feel for the product, it’s so simple and well-executed.

(By the way, they aren’t giving me anything for this. I wish they were, but I don’t have that kind of juice.)

First impressions of the iPhone 4

I had the honor of being the last person to get an iPhone 4 in Cambridge on launch day, wandering in to the Reserved line at 8:59, stupidly thinking the store closed at 9:30 instead of 9. Am I glad I braved the line and the self-loathing attendant with standing in line to buy a cell phone like some teenage girl camped out to buy Justin Bieber tickets? Yes. Yes I am. Below are my impressions on a few major elements of the phone.

Physical Build

This has the nicest feel to any consumer electronics device I’ve ever used, let alone a a phone. Using Corning Gorilla Glass for both the front and back was a beautiful touch. Not only does it look nice, but it resists fingerprints (due to oligophobic coatings which makes grease happier to stay on your finger than stick to the coating) and makes scratches nearly impossible. Early users who report scratches in the glass are likely seeing scratches in the coating, not the glass. While it’s a myth that only diamond can scratch glass, you’ll nonetheless have to try very hard to scratch Corning’s chemically hardened glass.

Another nice touch was going with a squared edge instead of the visually weak rounded edge of the prior generation. It’s like the difference between a ’91 Ford Taurus and ’65 Chevy ’67 Shelby GT. The phone has a solid heft, and the hard edges give it a more secure feel in the hand. (This will be especially important as you try to delicately hold the phone so as not to cause reception to drop, as I’ll describe below.) It has the feel of something substantial, that you might actually use for more than two years before throwing out.

Interface Feel

The A4 chip is impressive. The phone feel orders of magnitude faster than the 3G. No waiting for menus to come up. Everything is fluid and quick. They are going to save a bundle in post production when they do the iPhone 4 ads, as no special effects will be required to keep the ad under two minutes. (I’ve been tempted to make my own ad for the iPhone 3G where I do exactly what Apple does in their ads, except my ad will be shown in real time, with the announcer making awkward comments about the Met’s bullpen while he waits for the screens to come up and the keyboard to unfreeze.)

The iPhone 4 actually works as well in real life as the iPhone 3G does on TV.

Display

Shockingly vivid and sharp. I thought this was just going to be another phone, and I’d simply hoped it would (ironically) fix the reception problems I’ve had with my 3G. I had no idea how blown away I was going to be by the display. If you buy one of these phones, enjoy the feeling you get the first time you see it, because it’s going to be the last time you ever feel that way about a phone: despite the false controversy, these displays really are at the limit of what the human eye can see (unless you’re a 12 year old with 20-15 vision). There’s really no better they could do. Pictures look like slides placed on a light box. It’s quite an effect that you really have to see to appreciate.

Reception

Now, the ugly. The reception problems are true, and have already been acknowledged by Apple and Steve Jobs. Apple packed so much stuff into the inside of the phone that they had to put the antenna outside. The outer metal band of the phone is comprised of three distinct stainless steel segments that form the antenna used for (at least) cell and WiFi reception. (I’m not sure if the GPS antenna is internal, someone please let me know.) What this means is that when you hold the phone, you’re holding the antenna directly. Anybody whose ever touched a TV antenna knows that touching an antenna can affect the signal.

In this case, however, there is an even worse effect: if you hold the phone in your left hand (which you will if you’re right handed when using the touch screen with your right hand) your sweaty little palm will likely bridge two of the segments of the antenna. Since sweat conducts (due to dissolved salt) you will partially short the antenna. I can get the phone to drop from five bars to two just by holding it in a natural position. Even when not touching the phone, the reception is significantly worse than my wifes 3G phone, also on AT&T. I guess we’re in for another generation of iPhones that do everything well but make calls. Steve Job’s response to a user who e-mailed him about this was “A non issue. Just don’t hold it that way.” Yes, he actually said that. Even more amazingly, I’m guessing Apple will actually get away with this.

I can also tell you right now exactly what Apple is going to do about this: they will issue a software update in the near future that “fixes” the issue by artificially boosting the number of bars shown. This is what they did on the 3G, and people actually fell for it. Apparently having calls dropped while five bars are showing isn’t enough to raise any suspicion in the average Apple user. I have to sincerely admire a company that can achieve this kind of user loyalty. Steve Jobs is nearly ready to trade in the black mock turtleneck of a Sith apprentice for the hood of a master.

How did Walt Mossberg possibly miss the reception issues in his review? Robots don’t sweat.

Camera

The camera on the phone is so good that it’s probably going to replace my small Canon digital camera. Having a camera always with you that also geotags your photos is really nice, and something I never anticipated as a significant benefit of the iPhone. Nonetheless, I find myself taking a huge number of pictures with my 3G, because it’s just always there when my kid does something worth recording. So, at least for me, one significant justification for the upgrade is that Apple finally got the camera right on this model. While it’s not actually as good as a dedicated camera (even a small one) it’s close enough that it’s certainly worth not having to lug around a second device. Obviously, you’re not going to replace your DSLR with your iPhone, but when was the last time you, your SLR and something worth photographing all found themselves in the same place?

The iPhone 4 can also take 720p HD video. It’s not great quality, and is only at 23 frames per second. It has a slightly blurry quality to it, which I think is due to the detector being used at it’s full native resolution, rather than interpolated from a higher resolution. You can tell this is the case because the scene “zooms in” a bit when switching to video mode, which I believe is a technical limitation; there likely just isn’t enough camera transfer bandwidth available to allow for a full frame capture and then interpolation down to 720p, at least not in a way that wouldn’t require further reduction in the frame rate. I hoping there is a way to do lower resolution video at a higher frame rate, but I haven’t found it yet. HD video of any kind of pretty impressive for a cell phone, so it’s hard to complain about this at all.

Final Thoughts

Aside from the poor RF performance, it’s an amazing piece of engineering. You’ve got a high-end GPS chip, custom low-power processor, human resolution-limited display, broad spectrum LED backlight, a micro-machined gyroscope and accelerometer array, all clothed in chemically hardened glass package the size of a cigarette case. You basically have some of the most impressive modern optics, electronics, microtechnology and radio circuitry available, all in your hand. In fact, the RF problems stem from a design compromise they had to make in order to fit all of this in such a small package.

Having given them this much credit, however, one has to wonder about the wisdom of a design choice that puts size above reception on a cell phone. You know, a pebble is small, but it doesn’t get good reception, either. That’s why I don’t carry pebbles in my pocket even though they are incredibly portable. I’m willing to have a slightly larger phone if it actually works.

Will I keep the phone? I don’t know yet. I’ll have to see how well the phone works in problematic areas for reception, like MIT’s campus. I’ll also look at comparative download speeds between the 3G and the 4, to see how much the reception issue really affects things. However, for now I’m inclined to keep it and just tell myself that it’s really so much more than a phone, how can I expect it to make calls? Steve Jobs really knows what he’s doing…

Update: I recently did a download speed test. Holding the phone normally: 0.2 MB/s. Holding it with the tips of three fingers: over 2 MB/s. This is repeatable.

iOS 4 significantly slows down the iPhone 3G

Just a quick post to warm people that the iOS 4.0 upgrade will significantly slow down an iPhone 3G. I don’t know if it’s the slower processor or the lack of RAM, but I very much regret making the upgrade. The only useful features of iOS 4 that are enabled on the 3G are folders and the new version of Mail. While those are nice, they don’t begin to make up for the incredibly slowness of the update for certain tasks. Typing in addresses in Mail, for example, often hangs the phone for several seconds. It now takes a few seconds for the settings menu to first come up, as well.

Benchmark results for Snow Leopard: 32- versus 64-bit kernel

It was recently revealed by ZD Net that Apple’s new Mac OS X release, dubbed Snow Leopard, would default to a 32-bit kernel despite being largely portrayed by Apple as the final step in the Mac’s journey to being a fully 64-bit OS. The reactions, as with anything Apple-related, were sheer polemic. Just check out the comments on the ZD Net article, and you’ll see what I mean. The Apple apologists played it off as if 64-bit code is pointless in the kernel, despite being indispensable in applications. The Microsoft partisans acted as if Apple had just halved the speed of the entire OS.

So, what’s the truth? I ran a few quick benchmarks to find out. To isolate the effects of the kernel from the benchmark software itself, I used a 32 bit benchmark program, XBench, so that the only thing that would be changing between the two runs was the kernel. (My understanding of Mac internals is not great, so I hope I wasn’t making a poor assumption here.) The results were interesting. As one might expect, neither side is entirely right or wrong.

The biggest difference was in memory allocation, where the difference was almost a factor of two. The next biggest difference was in the thread benchmarks, where the 64-bit kernel had a roughly 30% improvement in time. Finally, the 64-bit kernel had over a 10% improvement in large block disk transfer speed. These results seem plausible, as all involve tasks where the kernel plays a relatively large role. The rest of the benchmarks, mainly graphics and computation, had little or no improvement, as one would also expect.

So, it seems that while it’s true Apple isn’t doing a terrible thing by defaulting to the 32-bit kernel, it’s certainly also the case that you’re leaving some speed on the table. This is especially true for the disk transfer benchmarks, which can have a real effect on the perceived responsiveness of the computer.

The complete results for my are below. The test computer was a 2.53 GHz Mid-2009 MacBook Pro.

64-bit Kernel

Results	127.31
CPU Test	180.05
  GCD Loop	285.50	15.05 Mops/sec
  Floating Point Basic	145.63	3.46 Gflop/sec
  vecLib FFT	120.72	3.98 Gflop/sec
  Floating Point Library	280.68	48.88 Mops/sec
Thread Test	331.22
  Computation	500.00	10.13 Mops/sec, 4 threads
  Lock Contention	247.63	10.65 Mlocks/sec, 4 threads
Memory Test	200.62
 System	255.76
  Allocate	618.01	2.27 Malloc/sec
  Fill	185.89	9038.61 MB/sec
Copy	211.31	4364.56 MB/sec
 Stream	165.04
  Copy	157.53	3253.68 MB/sec
  Scale	155.20	3206.42 MB/sec
  Add	175.03	3728.48 MB/sec
  Triad	174.48	3732.49 MB/sec
Quartz Graphics Test	190.82
OpenGL Graphics Test	86.25
User Interface Test	245.26
Disk Test	48.75
 Sequential	101.56
  Uncached Write	120.97	74.27 MB/sec [4K blocks]
  Uncached Write	119.43	67.57 MB/sec [256K blocks]
  Uncached Read	64.63	18.91 MB/sec [4K blocks]
  Uncached Read	137.50	69.11 MB/sec [256K blocks]
 Random	32.07
  Uncached Write	11.66	1.23 MB/sec [4K blocks]
  Uncached Write	77.18	24.71 MB/sec [256K blocks]
  Uncached Read	59.85	0.42 MB/sec [4K blocks]
  Uncached Read	107.70	19.98 MB/sec [256K blocks]

32-bit Kernel

Results	122.67
CPU Test	179.50
  GCD Loop	295.89	15.60 Mops/sec
  Floating Point Basic	141.66	3.37 Gflop/sec
  vecLib FFT	120.19	3.97 Gflop/sec
  Floating Point Library	283.69	49.40 Mops/sec
Thread Test	260.69
  Computation	396.28	8.03 Mops/sec, 4 threads
  Lock Contention	194.23	8.36 Mlocks/sec, 4 threads
Memory Test	190.01
 System	234.38
  Allocate	369.54	1.36 Malloc/sec
  Fill	186.29	9057.73 MB/sec
  Copy	211.60	4370.52 MB/sec
 Stream	159.77
  Copy	153.34	3167.08 MB/sec
  Scale	150.01	3099.22 MB/sec
  Add	169.51	3610.92 MB/sec
  Triad	168.11	3596.34 MB/sec
Quartz Graphics Test	187.39
OpenGL Graphics Test	87.04
User Interface Test	237.42
Disk Test	46.82
Sequential	90.51
Uncached Write	118.31	72.64 MB/sec [4K blocks]
Uncached Write	79.22	44.82 MB/sec [256K blocks]
Uncached Read	60.05	17.57 MB/sec [4K blocks]
Uncached Read	154.69	77.75 MB/sec [256K blocks]
Random	31.58
Uncached Write	11.29	1.20 MB/sec [4K blocks]
Uncached Write	76.69	24.55 MB/sec [256K blocks]
Uncached Read	60.83	0.43 MB/sec [4K blocks]
Uncached Read	116.08	21.54 MB/sec [256K blocks]

New MacBook Pros have hard drive problems

When the new unibody MacBook Pros (MBPs, henceforth) came out, many owners were up in arms over the fact that the new, supposedly high-end models lost SATA 2, and were only capable of 1.5 Gb/s SATA 1 speeds. Some people felt this was fair because Apple only provides SATA 1 drives, but this isn’t entirely true: some of the upgrade drives Apple offers on its online store are drives that would support 3.0 Gb/s speeds if Apple had enabled them.

A few weeks ago, Apple quietly released a firmware upgrade that enabled SATA 2 on the new MBPs. Unfortunately, something is wrong with the hardware, because now people with SATA 2 drives are having problems right and left. Apparently, the SATA bus on the MBP is unable to handle 3.0 Gb/s, and large numbers of transfer errors are occurring. SATA is designed to catch these errors, but since they’re not supposed to happen in the first place the result is not pretty. The system hangs for several seconds as the operating system deals with the errors and the data is reread. This causes the infamous Apple “spinning beach ball,” especially if a lot of processes are competing for disk access.

If I were to speculate (and what fun is a blog if you can’t do that?) I’d say that Apple’s hardware engineers used a cable that isn’t capable of reliably supporting the higher bit rate. Having opened up my MBP to upgrade the hard drive, I’m not surprised that the cable they used would have problems. It’s an unshielded ribbon cable that runs right along the case of the hard drive. It probably has all sorts of parasitic capacitances. I’m guessing their engineers tested it at 1.5 Mb/s and saw no problems, and then somebody rushed the firmware out without adequately testing it.

To make matters worse, this bit of poor hardware engineering triggers an even more egregious bit of software engineering: the ‘spindump’ process. This little piece of Mac OS X kicks on automatically whenever a process hangs, and writes a ridiculous amount of information to the disk so that Apple can diagnose the problem. Of course, if you’re already having a hang because of hard drive problems, the last thing you need is for the system to respond by spewing massive amounts of data at the disk. It’s often enough to take a minor problem and make it a major one that requires a hard shutdown of the computer. Brilliant, Apple. This is my first Apple computer since abandoning Apple in 1997 during the dark years of System 8. So far I’m regretting the decision to come back…

How to tell if you’ve got a problem: If you have a stock MBP configuration, you probably don’t have a problem. However, if you have an upgraded drive (especially one of the 7200 RPM, or solid state drives) and you’ve been having system hangs, this may be the problem. If you’re nerdy enough, you can install smartmon tools and check to see if UDMA_CRC_Error_Count is more than zero.

How to fix: Until Apple gets it’s act together and issues a firmware update (if that’s even possible) to bring it’s “pro” level computers technologically inline with last years low-end models, you’re just going to have to disable SATA 2 on your drive. Whether or not this is possible, and how to do it, will vary by manufacturer. On Seagate Momentus drives, you can short two jumper pins to force the drive to use SATA 1 speeds. Details can be found in the user guide of your specific drive.

A new problem with the iPhone: stress cracks

I noticed a crack in the back of my iPhone, between the mute button and the metal bezel. It just appeared, not caused by a drop or anything. Looking online, this is happening to a lot of people. The reason why this is happening, I think, is that Apple bonded a plastic back to a metal bezel. Metal has a much higher coefficient of thermal expansion than plastic, so it’s not surprising that the plastic gets stress fractures at the weak points. Also not surprising that it happened to me during the winter, as the phone goes from

I swear, sometimes it seems like Apple is all design, no engineering. It would be nice if, in addition to the mock turtleneck-wearing crowd that runs the company, they would hire a mechanical engineer or two.

From what I’ve seen online, if you have this problem, Apple might replace your phone if it’s in otherwise pristine condition (i.e. there is no evidence you have dropped the phone).

Apple’s iPhone 2.1 software: Lipstick on a pig

Among the myriad problems the 2.1 firmware was supposed to solve was poor 3G reception. How did Apple achieve this? Apparently by simply artificially displaying more bars, at least in part: In their release notes for the update, they list “improved accuracy of the 3G signal strength display.” That’s just corporate speak for “we can’t fix these pieces of junk, but we don’t want to pay for a recall, so we’re going to just fool you into thinking your phone is working properly.”

Sure enough, I now get five bars of 3G signal in my office, where I used to get one or two! However, when I try to make a 3G call, the audio is warbled (is if packets are being constantly dropped) and it eventually either drops the call entirely, or switches back to standard GSM. All while showing five bars of 3G signal until it dies! Five bars of lies and deceit.

Update: Using my wife’s 2.0.2 iPhone 3G, I can confirm that Apple has, in fact, done little to nothing to improve the 3G reception beyond the psychological bromide of increasing the number of bars displayed. Holding the phones side by side, she gets one bar and I get five. However, download times for web pages are virtually identical (i.e. slow).