iPhone 3G first impressions

It’s been close to 10 days now with the new iPhone and I wanted to write down my impressions.

The bad:

  • Battery life is terrible. I mean, I understand the usual fanboy tactics of saying that the iPhone 3G still has the best battery life among 3G phones, but who the hell cares? It still sucks, I still have to charge the damn thing at least two times a day.
  • It crashes a lot. I mean a lot lot.
  • No idea why, but deleting emails from a specific IMAP account that I have, completely disables the Mail app against any other account. I have to restart the whole phone to be able to use that app again.
  • Every so often iTunes does a backup of the phone, and it is now taking a LOT of time. I remember it taking around 1 hour for the first time. I believe it takes that long when you install new applications on the phone, but it makes no sense to me to take that much time.
  • The contacts app takes a lot of time to open now. I’m assuming this has to do with a new architecture that allows one to search the database, but damn. 4-5 seconds to load a contact database of 73 contacts? Come on.
  • The App store needs to review new applications / updates to existing apps more quickly.
  • The store should restrict app reviews to users that actually purchased the app.
  • A small thing, but it’s quite common for the phone to stop doing the “unlock” sound. You know, the one that is triggered when you unlock the phone with a sliding motion. The “lock” sound still works, but the “unlock” one doesn’t. I need to restart the machine to make it work again.

The good:

  • The App store is so very cool. Lots of cool apps available, and I’m sure many more will come in the future.
  • Exchange support is very useful. I can finally sync with my work’s email account with ease, without doing a lot of IMAP/procmail hacks.
  • The new “tap at the top of the screen” to scroll to the top of the list of email messages is awesome, something I wanted for a long time.
  • Same feature is now available in the contacts app.
  • Being able to delete multiple messages is also invaluable. I can’t believe how much time I wasted in the past deleting a whole bunch of spam.
  • The sound quality seems much better. The speakers are much better as well.
  • The ability to save images into your photo folders is awesome.

Customizing the message display layout in pine

I’ve been using pine for a long time now — I remember it was the default mail client available at my university’s computer sciencie department. If I remember correctly, I think it was the first program I ever used in a UNIX system (back in 96?).

In any case, after more than a decade using this program, I just found out that you can customize the display of the message list within a folder. I noticed that the list of messages looked different while browsing the Wikipedia entry for Alpine.

My personal setting now is:

index-format=STATUS MSGNO SMARTTIME FROMORTO(33%) SIZE SUBJECT(67%)

If you go into the configuration section, search for the “index-format” entry (^W index-format), and then hit ? to go to the online help entry, you will get access to all of the documentation available for this. Very cool stuff.

Follow-up on HttpWatch integration with Selenium

Simon Perkins of Simtec Ltd (makers of the HttpWatch plugin for Internet Explorer that I mentioned before) was kind enough to get in touch with me via email about my wishlist for YSlow / HttpWatch / AOL Pagetest.

He wasn’t familiar with Selenium, but said that it might be possible to hook up HttpWatch to retrieve performance data dynamically. He pointed to a blog post describing how to do so with Watir, an automated web testing tool written in Ruby. Simtec even has a tutorial about this on their own web site.

While that does sound interesting, it looks like Watir interfaces with HttpWatch with a COM object on Windows, and that’s how it gets the performance information.

The way to do this integration with Selenium would be to expose a set of JavaScript APIs (maybe the same set of objects available through the COM layer?), so one could write JavaScript code to export the HttpWatch information. That’s really what I would love to see.

If that was available, I could write a simple Selenium RC test suite in PHP, remote control a set of browsers from my Linux box, and get access to this performance data from HttpWatch by simply running some JavaScript function.

Random interesting links

  • Bart Jansens documents his experiments with Varnish, a reverse proxy server that is making the rounds as of late. Varnish really needs better documentation.
  • Pragmatic Programmer Screencasts - now with Erlang screencasts that should make it grokking this language a bit easier for newbies. I saw this a few weeks ago, and I can’t remember exactly, but I think no new screencasts have been published since?
  • Google Doctype (kind of old news by now) - a new effort to build an online reference library by web developers for web developers. Do we really need another resource for web development articles?
  • Writing Apache’s logs to MySQL - very old article, but still nice for someone that is not interested on deciphering Apache’s documentation.
  • Profiling LAMP Applications with Apache’s Blackbox Logs - same for this one; nice overview of what’s possible with mod_logio

YSlow wishlist: JavaScript API to export performance results

Here’s one thing that I wish YSlow (or even HTTPWatch or AOL Pagetest) supported: a way to dynamically export the results of the performance grade results. In a perfect world I would run a set of Selenium tests on my development environment, and get access to YSlow’s results from the Selenium API.

Selenium RC allows you to write unit tests in PHP (or a bunch of other programming languages), and get access to the browser as it is executing your test. If you could get access to YSlow’s results from JavaScript, then you could export that information directly to PHP, parse it, and store it. Add a few scripts to build some simple reports and you are done: performance metrics that you can track and act upon.

I was going to suggest this feature at Velocity last week, but there was no time for questions on most of the sessions. Here’s hoping this doesn’t happen next year.

« Previous entries