Friday, July 30, 2010

iPad Thoughts

I bought an iPad in early May. This post is a summary of my thoughts when i first got it, up till now, 3 months later

Opening Thoughts and The First Month

First off - you really need to use an iPad to appreciate their coolness. They are incredibly slick.

I found immediately after getting an iPad that I almost never needed to turn on my desktop at home. I also didn't really need to turn on my laptop for much. It satisfies most browsing, email, RSS, and other media needs. The battery life is incredible, especially for watching video. You can read books from iTunes, Kindle, and Nook stores. There are lots of fun games for it. It's a great web browser.

It has really changed how I consume media. Let's not forget it also does Comic books - although selection is still not excellent, I have enjoyed one or two series that way.

My iPad is my first choice entertainment device wherever I go. It is also my note taking device in meetings at work. It's handy for note taking + browsing our issue tracker + continuous integration + email all in one. It rocks.

Favorite Apps

Below are some of my favorite apps.
  • The Early Edition
  • Twitterific
  • Comixology
  • Instapaper
  • Netflix 
  • ABC Player
  • We Rule 
  • Cogs HD
  • Plants vs Zombies HD
  • Leap Sheep!


Problems

The iPad is a device I use every day, but there are a couple of clear annoyances popping up.

  1. The iPad needs the iOS 4 update BADLY. It feels like it's a second class citizen now that the iPhone 4 is out and has iOS 4 and multitasking. Apple really better have some extra features up their sleeve, or the wait just is not justified (and is crummy for early adopters)
  2. It needs flash. As much as I dislike flash, I still hit websites that require it - some sites even have videos, half of which are HTML5, the other half of which appear to be flash and won't play. This is an issue for both Apple and Adobe to sort out. Adobe because I still don't think they (although as I write this, Froyo is finally out on some phones potentially) have a good, working flash implementation out on smartphones. Also - where's Linux flash support these days? 64-bit anyone? You can't claim it "just works" when basic platforms have had problems for YEARS. Also, 

 Summary

The iPad is an amazing device. Considering it is not only a first generation device, but also the first of its class - a true tablet with great battery life for browsing, reading, and watching video, I am definitely impressed. It isn't perfect - but iOS 4 should remedy my biggest issue, and it can't come out soon enough. Being able to multi task on my phone but not my iPad just isn't right - it should have launched with it. My hope is that printer support and/or a more sophisticated multitasking are coming. Time will tell...

Tuesday, July 13, 2010

Browser Benchmarks - July 8, 2010 - Ready. Set. Fight!

Update: More recent benchmark

Yesterday my Opera browser at work auto-updated to 10.60. Opera's auto update is finally coming in line with Firefox...still not quite as nice, but it's getting there. More interesting was the dev blog about 10.60, and I saw elsewhere that Firefox 4.0 beta 1 was out, and also checked up on IE9 to see how things were progressing. Somewhere along the way, I also found the Peacekeeper benchmark and decided I wanted to benchmark some browsers to see what the current state-of-play is. I will be using that for overall (HTML5 / DOM / Javascript) performance, and Sunspider for pure Javascript performance. I'm also throwing ACID3 in there for a sense of where each browser is standards-wise. 


Environment:
System: Intel Core i5 750 @ 3.36GHz, 4GB RAM, 80GB Intel SSD (G1), ATI Radeon HD 4850
OS: Windows 7 64-bit Home Premium
Fresh boot. No other apps or system tray programs running aside from Microsoft Security Essentials.
Each browser was run by itself, with only one tab for the benchmark itself.

First off, I'll start with Sunspider. These are the final numbers, but I have linked the full results for each. I don't have any fancy graphs, so I will order them fastest to slowest.

  1. Chrome 5.0.375.99 - 224.0ms +/- 2.0% [Full Result]
  2. Opera 10.60 final - 231.4ms +/- 1.5% [Full Result]
  3. Safari 5.33.16.0 - 273.4ms +/- 2.3% [Full Result]
  4. IE 9 Preview 3 (1.9.7874.6000) -  293.6ms +/- 0.7% [Full Result]
  5. Firefox 4.0 Beta 1 - 406.8ms +/- 1.9% [Full Result]
  6. Firefox 3.6.6 - 575.6ms +/- 1.1% [Full Result]
  7. IE 8 - 3555.8ms +/- 0.6% [Full Result]
Chrome has the lead on pure Javascript performance with its V8 Javascript engine, but Opera is not far behind. It's only trailing by 3.3%, barely more than the margin of error. Next up is Safari, taking 22% longer. IE9 Preview is showing great promise, at 31% behind Chrome. 

Firefox 4 beta is not in the same ballpark currently, at just more than half the speed of Chrome. It is a good increase over Firefox 3.6.6, which would've been almost a 3x difference, but it is a ways off. The big takeaway is that the IE9 team appears to now be ahead of the Firefox 4 team on Javascript performance...times are certainly changing.

IE8 is included as a baseline, and because a lot of users are still on IE.

Next up is Peacekeeper, for this I have screenshots and the full results here.



Opera 10.60 leads here overall. Chrome is close, at 16% lower score. It's worth noting just how far ahead Chrome and Opera are over every other browser in the overall category. Safari 5 is next, at less than half the score. Firefox 4b1 is on the heels of Safari, and then there are the rest.

What's interesting to note here is that even though Safari & Chrome are both webkit based browsers, clearly the Chrome team is going the extra mile on performance.

I want to drill into what makes up these scores, as this benchmark is new to me, but I think that will be in a follow-up post as this post is already almost a week late if you look at the date..


Finally, lets look at ACID 3.

  • Chrome 5.0.375.99 - 100/100
  • Opera 10.60 - 100/100
  • Safari 5  - 100/100
  • Firefox 4 Beta 1 -  97/100
  • Firefox 3.6.6 - 94/100
  • IE 9 Preview 3 -  83/100
  • IE8 20/100 (FAIL)

Chrome, Opera, and Safari all receive full marks. I did not compare pixel to pixel, but they have had good track records with ACID tests. Firefox 4 Beta 1 is getting close to passing, slightly better than Firefox 3.6.6. IE9 has come a long way from IE8 but still has a ways to go in order to pass ACID 3.

Regardless of your preferred browser, there is some intense competition now in Javascript engines and general rendering performance, resulting in the experience improving for everyone. It is an exciting time, and I don't think you can go wrong with Chrome, Firefox, Opera, or Safari. Rendering and performance are more than good enough in all of them, so it comes down to other usability / features. Once IE9 is closer to final, I may even be able to recommend that.

Update: More Recent Benchmark 

Thursday, March 25, 2010

My Nana Broke My iPhone Calendar

The other day I was following Google's instructions on how to sync my Google Calendar with my iPhone. I've been a big fan of Rainlendar for a long time, and it just so happened that every important Birthday is in my Rainlendar calendar. First, I setup the syncing. Piece of cake - I chose to go the CalDAV route, rather than Google Sync.

Great - events are showing up on my phone. Ok - let's import my Rainlendar birthdays iCal (.ICS) file to Google. Also easy - now everyone's birthday is in my google calendar, and should now make their way to my iPhone.




















There's just one problem. Now every day on my calendar has a dot, even when there are no events. I check my Google Calendar - it looks fine...so I do some searching, and what do I find out? 

My Nana Broke My iPhone Calendar.

You see, there's a bug in the iPhone calendar. It cannot handle with recurring events that start prior to December, 1930. Nana, I've made you 3 years younger to make my iPhone happy - I hope you don't mind.

Wednesday, March 24, 2010

Eclipse and Mockito

Mockito is great. A big part of it is the syntactic sugar, which relies on using static imports. Eclipse, by default, removes static imports when you use 'Organize Imports' (Ctrl+Shift+O). This saddened me, so I found a way to fix it. Thanks go to this post on static import content assist and the post it links on organize imports. I will repeat both instructions in here in one place.

Part 1: Tell Eclipse Not To Remove My Precious Static Imports
  1. Open Preferences (Window-> Preferences)
  2. Browse to Java -> Code Style -> Organize Imports
  3. Change 'Number of static imports needed for .* to '1' 
  4. Click Ok 
Part 2: Get Eclipse to Create the Mockito Static Import for Me
  1. Open Preferences (Window -> Preferences)
  2. Browse to Java -> Editor -> Content Assist -> Favorites
  3. Click 'New Type...'
  4. Enter org.mockito.Mockito
  5. Click Ok twice. 
Now you can write unit tests with Mockito in Eclipse without issues. You can now type mock and ctrl+space and Eclipse will add the static import for you. It will also leave it alone when you Organize Imports going forward. No more trying to remember not to Ctrl+Shift+O when editing a mockito test.

Monday, February 22, 2010

Cool concurrency feed and some links

Google Reader recommended a new feed to me today: Concurrency. I have to say, that was pretty smart of it. Sure, that word appears a lot in some of the feeds I frequent - it's still nice that it brought it to my attention, as I otherwise was missing out on it.

Right off the bat there is a sweet post: Concurrency in Maven. This then lead me to see there are other cool posts at In Code We Trust Inc, like this one on concurrent junit test execution.

Google Reader has made my day with this find, and I thought people might find the links interesting.

Sunday, February 14, 2010

UI Prototyping Tools

I have been a fan of paper prototyping for many years. Paper prototypes are easy to create,  easy to edit,  and easy to scan and distribute the same as if it was created with some software UI designer. They also put your mind in a different mode - writing with a pen or pencil and paper is a lot different than sitting in front of the computer using a mouse.

There's just one issue - my office doesn't have a scanner. Now, that shouldn't be too hard to remedy, but along with my list of benefits to paper prototyping, there are also a couple of drawbacks.

  • When there are many states to a given UI screen, it can result in a lot of repetitive drawing
  • It can take a long time to sketch detailed layouts of more complicated UI components
This has made me once again curious about UI prototyping tools. I probably last looked at the available options 4 years ago.

To start things off, a coworker discovered Balsamiq Mockups. This looks like a pretty fast and easy to use mockup tool. It's quite possible I could create mockups faster in Balamiq than by hand, and they have a sort of notebook-sketch quality to them - they don't try to look like a real UI, and I like that. It also has JIRA integration (as well as some other issue tracking systems like FogBugz and some wikis), which could be a big win for us if we adopt it.

I'm curious what else is out there. I've read a couple of questions about this on StackOverflow to get some ideas, and WireframeSketcher also looks promising (it's an Eclipse plugin).

Tuesday, December 22, 2009

Intel SSD Toolbox on WinXP x64

If you use an Intel x25-m (G2) on Windows XP, then you've probably been eagerly awaiting the Intel SSD Toolbox now that both the TRIM-capable firmware and new toolbox are released. I was too, so I downloaded it today.

I just installed it on a 64-bit XP box, only to see this screen when I tried to run it:



Having no idea what this means, I googled it. (which quickly pointed me to the readme, which is linked on the download page for the toolbox itself. Silly me, I should have read it first. The readme document used a very wild font, but it boils down to this:

Without a hotfix, the toolbox does not work correctly on Windows XP 64-bit. The hotfix you need is supplied on this page (also linked in the readme). The details don't look related to shadow copying, and you have to jump through a couple of hoops to get it.

After you 'View and request hotfix download', give Microsoft an email address, and submit a form...you will get an email with a link to the hotfix, and the password for the password-protected zip file it contains with a password that changes weekly! I have never before had to 'request' a hotfix file, let alone enter a password - I completed the process diligently though, as a secret agent might do, and now the Intel SSD Toolbox is working on my Windows XP x64 machine.

NOTE: The reason it's so much work to download the hotfix is probably because, as of this writing, the hotfix has not undergone full testing. Also, it is a very specific hotfix for Windows 2003/XP x64*.  It recommends staging (i.e. non-production upgrade first). You should backup your files and perform this on a non-critical machine first, or update at your own risk.

* windows XP x64 is based on Windows 2003, so it is distinct from 32-bit XP.

This post is for personal reference, as well as for the 10 seconds it might save someone else out there. It seems like kind of a strange edge case...