Category Archives: Reviews

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.


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.


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.


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.

Dropbox: How to REALLY not run a public beta

Man, am I having a bad week. No sooner had I been burned by beta testing Mendeley, I get absolutely toasted by trying out Dropbox. The goal of Dropbox, in case you haven’t heard of them, is to allow one to keep a folder of files transparently synchronized across multiple computers (and the web). In theory, all your computers will have the same set of files, transparently maintained by the Dropbox daemon (background program) running locally. Awesome, right? No more treking around an external drive, no more juggling multiple versions of files when you need to work on something on two or more platforms. It also handles folder sharing among users.

Fantastic. Awesome. Terrible. Sync is one of those killer applications that usually ends up killing the user, like a hand gun being passed around at a frat party. The result is often a solution worse than the problem, with data corruption and inconsistent data between locations a common failure mode. People have gotten it right recently, however. Apple has done a very good job with MobileMe, at least in terms of sync reliability. I have my complaints about them, but they’ve never messed up my data, even after more than a year and probably over 1000 synchronizations.

I was, therefore, perhaps a bit too unwary in trusting my data to Dropbox. I also figured that if they are already charging people they must have the bugs worked out, right? This is people’s data we’re talking about. No company is going to take control of your data with a product that is still buggy, right? Right?

Wrongo. It took me only two weeks of using Dropbox to find out I was grossly mistaken. Yesterday I moved a few large folders around on my linux machine, and the result was hopeless corruption of my Dropbox file system, with the server basically throwing its hands up and locking itself in the bathroom (folder “rejected by server”). Note that my problem wasn’t caused by conflicting edits made simultaneously to the same data on different devices (the typical difficulty with synchronization). Dropbox failed spectacularly just because I made multiple changes to ONE of my local copies and it got hopelessly confused. (Fortunately, I was able to restore everything from a backup on another computer, so you can stop sending cards and letters. I appreciate the sympathy, however.)

Talking with tech support, and looking at the forums, this is clearly a known issue that many users are having. A known issue that results in database corruption if you have the audacity to do something insane like move folders around! And they don’t mention this in the FAQ, let alone bright red flashing letters on their web page. Did I mention they are accepting legal tender for this product?

It seems to me their fundamental sync architecture is flawed (it apparently doesn’t record file operations in a way that is guaranteed to preserve the transformation of the file system from one state to another). I wonder if they don’t warn against this in their FAQ because they don’t want their VC funders (who are surprisingly big names) to know they are in over their heads, or if they are so far in over their heads they don’t know they have a problem. To do file sync, as far as I can tell, you basically have to be able to hook into all possible I/O operations on the disk and make sure you record every single change, in order, so that those operations can be “replayed” on the remote copy. I can’t think of another way to guarantee consistency. Maybe the folks at Dropbox found a way to avoid this complication. Maybe they were wrong. I’m not saying I’d be able to do better, and I know it’s a notoriously hard problem, but I’d hope that if I couldn’t solve it I’d at least know that I hadn’t. And I certainly hope I wouldn’t look for funding and customers before I’d solved it.

Looking at the Dropbox staff list, I should’ve been more careful. Its CEO and CTO seem like great guys, but they also look like they just started shaving last week. Their CTO, and well over half their staff, are very young, very recent MIT dropouts. With all the new humanities course requirements, I guess you can’t trust MIT undergrads with your data until they’ve gotten at least an MS. Either that, or MIT must cover some pretty important material senior year in Course 6. The fact that the first several iterations of their Mac OS X client didn’t even synchronize all possible parts of a file (despite not informing the user of this) should’ve been a red flag that Dropbox was not being run with a whole lot of discipline or adult supervision.

Am I just writing this to complain? Of course not. I would never do that! I’m writing this with the hope that my experience may prevent at least one other person from wasting their time with Dropbox, or losing their data. I’m also writing about this because my experience with Dropbox, as well as Mendeley, bring up interesting questions about VC technical vetting, a topic which I will discuss in my next post.

Review: Uppababy Vista Stroller 2009

There are a lot of things to love about this stroller. For me, the best thing is that it’s one of the few strollers designed for tall people. The handle extends to a reasonable length for a 6’4″ person. There is no through-axle, but instead an arch that gives plenty of space for your feet when walking. On other strollers I’d end up kicking the stroller when walking.

Another major point in favor of the Vista is that it allows for the baby to be rear-facing, even in the seat. This way you can talk to the little guy or girl while walking with them, and apparently research has shown this interaction to be important. I’m not sure it will ever make a difference in their development, in all honesty, but it’s just really nice to be able to see and interact your kid while you’re walking with them.

Unfortunately, there are a few major design flaws in this stroller. First, the front “suspension” is terribly designed. The spring is far too heavy, and it takes me putting my (considerable) weight on the stroller to even begin to compress the front springs. Given that the wheels are made of very hard foam, the result is that the ride is extremely harsh when the stroller is in rear-facing mode such that the baby’s weight (not to mention head) is over the front wheels. This isn’t a big deal on smooth surfaces, but my poor kid gets bounced around quite a bit on the brick sidewalks where we live. So much so that he was grabbing the sides of the stroller. It’s so bad that I have to avoid certain streets where we live. I certainly expected better engineering from such an expensive stroller.

Another design desision which I question is the fact that even at the most upright setting, the baby is declined at a 45 degree angle, making it hard for him/her to see out.

Finally, the construction is a rather low-quality in areas. For example, both our wheels wobble. In fact, the fit and finish on most of the stroller is a lacking, with rivets and attachments loose and a lot of play in everything. For example, the seat frame is in two halves, with the two aluminum parts attached to a plastic center bracket with cheap rivets. Those have come loose, and now the seat is starting to “recline” a bit on its own. All in all, a very disappointing experience to have with a stroller that cost this much. My personal guess is that when you buy this stroller, most of your money is going into paying Massachusetts taxes, as this company made the poor decision to base themselves in one of the most expensive states in the country in which to do business. (I know, I live here, too, unfortunately.)

After six months of use, the stroller continues to fall apart. The wheels have developed flat spots (so much for foam being more robust), and are getting more wobbly. The frame is becoming somewhat loose. Our rain cover cracked in the cold. Nothing that affects safety, I don’t believe, but it’s very frustrating to pay this much for a product so cheaply made and badly tested. This is a lot of expensive aluminum held together with very cheap plastic. Our baby seems to be mostly content with the stroller, but often strains to try to see out given the recline of the seat.

Mendeley: How NOT to run a beta preview program

One of the (many) influences Google has had on the software industry is the concept of the beta release as product. In some ways, this is a good idea, as it creates a community of early-adopters who can act as a massive beta testing community, giving the company feedback on real world use and making for an even more stable general release. The early adopters benefit from access to early technology, the public benefits from better software, and the company benefits from advance publicity and testing.

It can backfire if not done correctly, however, and Mendeley is providing a good object lesson in that. In theory, Mendeley is a killer app for people in academics. It is a cross-platform (including web), cloud-synced database for papers that handles citations and automatic import from all manner of online journals.

Unfortunately, the beta releases have been so bad that most of the word-of-mouth on Mendeley has been poor. Do a quick Google search on them and you’ll see a lot of complaining. In my experience, the software has tremendous potential but is so poorly implemented that it is currently unusable. Import of any paper with an accented letter in an author name, for example, fails. In my field, it seems half the people have umlauts in their name. Page numbers aren’t imported correctly, either, requiring the user to manually enter them. If you import a PDF for a paper already imported through other avenues, the software is happy to create duplicate entries. And so on…

After the frustration of importing their citation database from other software, only to find Mendeley too buggy to be usable, it’s likely many of the early users will not bother return for more punishment. So, what Mendeley is actually accomplishing with their beta program is the alienation of exactly the kind of people they are supposed to be winning over: technologically-minded members of their target audience. These are the people their collegues will to turn to when they are looking for citation software. Mendeley won’t be their answer.

Unfortunately for Mendeley, they may eventually have a great product, but when that final bug is fixed and they drop “beta” from the name, it may be a tree falling in a forest with nobody to hear.

iPhone 3G initial impressions

iPhone maps

iPhone maps

Last Friday (through means which I’m too embarrassed to publicly discuss) I got an iPhone 3G. Here are my initial impressions after using it for a couple of days.

Screen. Visually, it’s near perfect. Bright and with sufficient field of view. The only problem I have with it is that sometimes my finger just won’t slide over its surface. I don’t know if I’m just some sort of physical mutant, or if I’ve got weird finger chemistry, but sometimes it’s just unusable as a touch screen as my finger sticks to it, especially if the screen has just been cleaned. It seems that the screen was designed to work best when covered by a thin layer of grime from you fingers. I just don’t get why everybody loves this so much, but I guess I’m just weird. This problem was solved by getting a matte protective anti-glare film for the screen. The display isn’t as sharp, but its finally a pleasure to use the touch screen. I recommend you play with the iPhone in the store for a while and actually use it (try scrolling and dragging) to make sure you like dragging your finger across polished glass a million times a day.

3G network. This is a bit of a disappointment. As many many other people have found, the 3G reception is poor, and a huge battery killer. With 3G turned on I can’t get through a full day without having to recharge. Where I live in Cambridge the signal is so bad that calls will degrade and occasionally drop. It fluctuates between zero and three bars. Cambridge ain’t exactly the middle of nowhere, however, and I expect AT&T’s network is better than the iPhone’s performance would indicate. From what I’ve heard, this is a problem with the iPhone; an AT&T 3G phone from another manufacterer will often have five bars sitting right next to an iPhone with one.

I will say this, though: when it works, it’s quite fast, and I usually see speeds of around 1 Mb/s. Fortunately, you can disable 3G from the phone settings, but unfortunately there’s no way I can disable the $10 a month extra I’m paying for it. From all my previous experiences with Apple, I knew I was asking for trouble by buying the first batch of anything. Apple brutally punishes early adopters like no other company.

If there’s an excuse for this poor performance, it’s the near engineering miracle Apple had to pull off to get everything to work. In one tiny package, the iPhone contains GPS, multi-band 2.5G, multi-band 3G, WiFi, and Bluetooth radios. That’s a lot of RF going on in one place, and they all have to share antennas. I’m kind of amazed it works at all, frankly.

Data integration. For now, the iPhone only integrates natively with iCal (on a Mac), Outlook and Exchange. Fortunately, if you use Google calendar, there is a wonderful solution available from The folks at NuevaSync have essentially built an Exchange server that can pull your contacts and calendar from various online services (Google and Plaxo, for now) and make it available from the industry standard Exchange protocol. A brilliant idea, and a very timely one given the release of the iPhone 2.0 software which allows for Exchange integration and push. When I (or my wife) edit a calendar item online, it instantly appears on the iPhone.

App Store. As everybody predicted, there is a plethora of putative social networking revolutions, with trendy names like beepo and blue lemmingster, etc. But there are some surprisingly good apps available, and it seems the best ones are free. Some highlights: Bloomberg has an app gives you access to beautiful stock charts and a live news feed. AOL Radio provides dozens of live streaming radio channels across several genres, and it works over the cell network.

As Apple opens up the API more and more, I think the biggest impact of the iPhone will be as a new development platform for connected mobile applications. The most powerful applications of the phone are those which use the wireless broadband to connect to remote information and computing resources. It’s very satisfying, for example, to be out walking around outside and yet have access to the terabytes of satellite photos in Google Maps. On a more frivolous level, there is Shazamm, a program that will tell you the name and artist of virtually any song based on a 15 second sample played into the phone. One of the most interesting examples of the mobile-to-cloud computing paradigm is Jott, an app which will transcribe dictated notes. It records and compresses your voice at the iPhone, and then sends it to India where it is transcribed by a person and then sent back to your phone as text.

I’m looking forward to seeing what other kinds of applications are enabled by having a computer in your pocket with an always-on broadband internet connection. The iPhone isn’t so much a phone in this context as it is a rich mobile interface to remote supercomputers (and underpaid Indians).

What’s missing. Cut and paste, for one. Video conferencing. Live mobile TV, such as AT&T makes available on some of their other cell phones. Flash support in the browser. The ability to read PDFs anywhere but within an e-mail attachment or from a webpage. Push Gmail.

What’s just plain bad. The third from worst design flaw I’ve seen is that turning off the sound doesn’t actually turn off all sounds. Music can still play through the speaker in certain cases, and not all apps respect the mute setting. The second worst is that when you unplug the headphones, the phone sometimes turns on whatever music you were last playing in the iPod software (it fools the phone into thinking you momentarily hit the play button on the headphone remote). The absolute number one design flaw is that the second and third worst flaws can combine, so that you can end up blaring music in the middle of a lecture just by pulling out your headphones. I presume Apple will fix this in an update.

The 2.0 software feels like an early beta. The interface is often unresponsive, taking a few seconds to do something as simple as open a field for editing (the contacts program, of all things, is the worst offender). The browser crashes fairly regularly, and I’ve even hung the phone one or twice trying to watch a video podcast. It’s the first phone I’ve ever owned that crashes more than my laptop…

The battery life is rather poor. I haven’t gotten the phone to make it through the day yet, though a lot of that maybe that I leave the WiFi on. Regardless, I have no idea how Apple can claim five hours of 3G usage. Maybe that’s if you’re standing on the top of a cell tower.

Summary. Were it not for some of the aforementioned issues, it would be a truly remarkable piece of technology, especially in terms of the wonderful interface. It’s more enjoyable to use than a computer for most small tasks like checking e-mail. While I really love the iPhone in many ways, I have to admit that it’s clearly not worth the money when you factor in the plan. Of course, I’m kind of loath to return it at this point. It’s a kind of irrational psychology that is probably responsible for most of Apple’s revenue, I suspect: In the end, it’s just cool, and it would be hard to go back to klunky, even if klunky gets the jobs done for half the price. Look-and-feel counts for more than anybody (certainly I) would like to admit. Steve Jobs is a genius for being so cynical as to truly plumb the limits of this. So, I’m gonna stick with my heavy, big, overpriced, crashy, no-battery-life, embarass-me-in-meetings iPhone. Because it’s just so goddam fun to scroll around with a flick of your finger!

REALbasic: Cross-platform that really doesn’t work

It sounds too good to be true. Write once, run everywhere. (Where did we hear that promise before?) Alas, it is. I’ve been working with REALbasic for about a year, now, and my conclusion is that it’s not ready. Given that they have been working on it since 1996, I suspect it never will be. As a language, it’s amateurish. Threads are not native, and are actually cooperative as opposed to preemptive. Kind of like the Mac back in the 1980s. Worse, threads hand over control not at regular intervals, but at each iteration of a loop. Who came up with that horrendous kludge? It’s hard to believe they have the gall to actually release a version of their software dubbed “Professional.”

But being merely amateurish wouldn’t be enough to warrant a blog post. I’m warning people off of this piece because it’s so buggy as to be almost unusable. I’ve had problems with bugs in their semaphore class not actually protecting resources from all threads. (Apparently they really have a problem with this thread thing.) Most problematically, however, the IDE itself is highly unstable. Sometimes, under Linux, it gets confused and when you hit “delete” in an editor window, it actually think you want to delete the whole method, not just the current character. That’s obviously a problem, especially if you don’t catch what it just did, and accidentally hit save. Restarting fixes this. Right now, whenever I set a breakpoint, it crashes with a segfault upon reaching the breakpoint. Running without the breakpoint works fine. Clearly, they need more work.

Maybe in another ten years they’ll be ready, but for now I suggest anybody considering REALbasic learn a real language instead. BASIC can potentially be a great language, but in the hands of these guys, it’s open mike night.