One of the things I’ve done several times in my career as a developer is to write color pickers. I was one of the authors of the color pickers in an early Mac painting program Color It! years (and years) ago. Since then, I made a couple freeware color picker components for the Apple extensible color picker dialog that was present in Mac OS 7.x (until it was superseded in Mac OS X by the new color picker panel). After starting at Adobe, I wrote the color picker panel and dialog used in ImageReady (where I included a mechanism for doing web-safe color selection, which at the time was a useful feature). And when Phil Clevenger came to us with a design for a popup color picker for Lightroom version 2, I loved the design (there are a couple fun elements to it, especially if you play with modifier keys while it’s up) and implemented it one weekend.
So, after leaving Adobe last year and founding an indie company named InfinitApps, it was only natural that one of the first things I wrote for myself was a color picker for iPhone and iPad, especially since there isn’t one included in the OS. I used this color picker in my Pyramid 13 solitaire game (it’s used to allow users to pick a custom color for the background and the cards), and I have other apps where I plan to use it eventually.
It had always been my intent to eventually release this color picker as open source, but other things came up, and that got pushed back. However, last month, I had the opportunity to present a short session about my color picker at our local CocoaHeads meeting. In the process, I did a little bit of cleanup, and prepared it for release. Now, it’s almost a month later and the next CocoaHeads meeting is tonight, so I thought it prudent to actually publish the code I talked about last month for all to download, clone, fork or what-have-you on GitHub.
So, without further ado, hop on over and take a look at the InfinitApps Color Picker (InfColorPicker for short). Let me know if you find any problems or have suggestions for improvement (or fork it, make some changes, and send me a pull request if you think the changes would be useful for everyone).
I recently saw a link on Twitter to a blog post on The Practice of Code where Jay nicely details the performance difference between his 2010 MacBook Air 11”, which had a Toshiba SSD (with a 128GB capacity), and a new 2011 MacBook Air 11” fully-upgraded to the i7 processor, 4 GB of memory, etc. which happened to come with the Samsung SSD (256GB in this case). He shows a graph comparing these two machines’ disk scores from XBench both with and without Lion’s FileVault whole-disk encryption turned on.
Well, I also have a new i7 MacBook Air (in my case with the 13” screen size but otherwise configured the same as Jay’s), and I’d been considering turning whole-disk encryption on, so this post was timely.
In my case, I had the “bad fortune” to end up with a Toshiba 256GB SSD in my Air (again — my 2010 Air also had a Toshiba drive). Apple appears to source their SSD drives from either vendor at random, and it has been known for a while that the Samsung drives are somewhat faster than the Toshiba ones.
However, this did provide me with an opportunity to run the tests Jay described on my Toshiba drive and get some numbers that I could compare with his Samsung. Adding my numbers to the ones he gave in his post produces the following:
So the Toshiba drive is in fact somewhat slower than the Samsung, but not by too large a margin. In the sequential and overall cases, it’s almost as fast as the Samsung drive even though it falls behind a bit more in the random access tests.
Also, the 256GB Toshiba in the 2011 Air is faster than the 128GB Toshiba in the 2010 Air by a noticeable amount (I don’t know if this is due to the capacity — perhaps the 2010 Air with a 256GB drive would have been as fast in the non-FileVault case? — or due to a newer model of the Toshiba drive perhaps being used now).
The overhead added by FileVault is similar regardless of drive vendor, as one might expect since the processor doing the work is the same in both of the 2011 cases.
As I’ve used them, I’ve never noticed the Toshiba SSDs feeling slow. Regardless of brand, an SSD holds clear advantages over a spinning-disk-based drive, so I’m happy to have one in my laptop. Still, it’s nice to know that I’m not sacrificing too much performance due to the make of drive my machine happens to contain, and it’s also good to be aware of the overhead FileVault incurs.
I just signed up to do one of four small talks being given by people at our local Minneapolis/St. Paul CocoaHeads meeting next month (in two weeks, on August 11). There’s less pressure due to the reduced time allotment, and I thought I had something that would be just interesting enough (I hope) for a smaller talk like this.
I’m going to be showing code for an iOS color picker I wrote last year. I’ve always meant to publish it as open source for others to use, but I’ve never quite found the time to do the extra work necessary to polish and publish it. This talk will be my opportunity to do that, so the color picker will be made available that day (or the next).
I use Mercurial and BitBucket for my own projects, so it’s tempting to publish it there, but it seems that GitHub has a much wider reach when it comes to this kind of thing, so that’s probably where I will end up putting it.
If you want to check out my color picker and how it works in an iOS app prior to my releasing its source code, download my Pyramid 13 app from the App Store. You can access the color picker by going into the Settings view and picking a custom color for the card backs or one of the first few wallpapers.