jb… a weblog by Jonathan Buys

From Zero to the App Store

January 16, 2011

This past Thursday I was privileged to speak at our local CocoaHeads about my history, and how I was able to bring my app to market. Since someone on Twitter asked for my slides, which don’t amount to much, I thought writing up my experiences would be a little more useful.

I didn’t grow up with computers. My first experiences programming were not when I was six on my Dad’s Apple II. We were poor, we lived on an Indian reservation in Montana, and for a good part of my life we lived in a mobile home. My first experience with a computer was in high school, after a semester of learning to type on an IBM Selectric, we moved on to one semester of computers, which was basically typing out documents in WordPerfect. That was it… for years. I didn’t start learning computers in depth until I had been in the Navy for a few years, and needed to learn them to make rank as a Radioman. It was then that I found I had a knack for technology, and started pursuing it. My first computer was a PC, a mistake I made exactly once. I had the machine for a few months before Linux was loaded on it for the first time. In 2000 I was introduced to Unix, and started working with OpenBSD, Linux, HP-UX, and Solaris. I enjoy Unix, I find that the system has a spartan elegance to it, especially the BSD flavors. Around this same time I heard that Apple was basing their new operating system, OS X, off of Unix, and I was anxious to try it out. In 2003, we moved back to the states, and I bought my first Mac, an iBook G4.

The iBook served me well, and I fell in love with the Mac and with the Mac community. I became a regular reader of Daring Fireball, and was inspired by a post named “The Life”. However, I had one college semester of programming experience in C, an experience that left a bad taste in my mouth, so I figured that “The Life” was out of my reach, put it behind me and moved on. Eventually I got out of the Navy and found work as a Unix sysadmin, using the skills that I learned while on active duty. The reality of work in a cubicle is much different than I imagined it would be. In the Navy there is always something different right around the corner. You will spend a max of 3-4 years at a single command, and during those years you will most likely have several different jobs. Things are much different as a civilian, and while I have a good job, the prospects of keeping this same job for the next ten or more years scares me more than a little. So, the question that came to mind was “is this what I want to do for the next 30 years?”, and Gruber’s article on The Life came back to mind.

So, I decided to learn Objective-C.

This decision was not taken lightly. I considered the possibility that it was beyond me, that I was not smart enough, or that I did not have the necessary math and programming and educational background to become a developer. Could I be dedicated enough to learn something so far out of my area? Was I smart enough to learn this? That last question gnawed at me, and I finally decided that there was no way I was going to know unless I tried, and gave it everything I had. So, I did some googling and found that for first timers wanting to learn Cocoa, most experienced developers pointed to what I now simply refer to as “The Book”, Cocoa Programming for Mac OS X.

For the next several months, I would wake up at 5AM and go through The Book, page by page, chapter by chapter, every challenge, no cheating. If I got stuck on something, I’d search the Apple developer documentation (which is excellent), or search through the CocoDev mailing list archives. I was investing in my future, so it was important to understand everything in The Book. Eventually, I finished The Book, and started working on my own little Mac app, a GUI version of a little shell script that I wrote called “go”.

The first few versions of Go were tough. I had a hard time getting my head wrapped around the “Modal, View, Controller” framework that Cocoa and the Mac developer tools are built around. I could not for the life of me figure out how to get an image to display in an NSTableView. That was by far the single most difficult hurdle I had to overcome. Changing my mindset from “Ok, place button here, and place image here”, which didn’t work, to “OK, place button here, and display data from my data source in this table”. I struggled for weeks, months even with this simple concept. Trying to work against the MVC is a sure way misery and failure. It was around this time that I found the local CocoaHeads group. I went to a meeting, and the speaker (a great guy), was talking about drawing pixels and getting your views to look just right. It was interesting, to be sure, but over my head at the time. I left that meeting disheartened, feeling that maybe it was simply too much for me, and I was just not smart enough.

I gave up, and for several months did not touch Xcode or Cocoa.

I’m not sure what brought me back, but I have a feeling it was stubbornness. The idea that there was a learned skill that I could not learn was too much for me. I started getting the feeling that I was almost there, that my understanding of Cocoa was incomplete, but I was just one more article read, one more blog post scanned, from finding the missing piece. So, I started reading again, I started building again, and piece by piece I started to understand Cocoa. I found that the best way for me to display an image was to use a value transformer. Store the data as a string, transform that string to an image, and the NSTableView would happily display that image for me. I started asking questions on Twitter and the mailing lists, and was recognized by Jim Turner, who ran CocoaHeads in Des Moines.

Jim is not the type of guy to give you an answer, but he is the type of guy to point you in the right direction. Jim and I exchanged emails a few times, and he pointed out where I was going about things wrong, or making things harder than they needed to be. Eventually, I built real, working versions of Go, which Jim was kind enough to beta test. Some of his critiques of Go were scathing, but absolutely necessary. Each email Jim would send me with a list of things that were wrong with Go, I’d drop into a to-do list and check off each item as it was fixed.

Some features that I worked on for months I killed. Some features that I spent months working on and hundreds of lines of code I found could be replaced with only a few lines of more functional code. The original version of Go used AppleScript and the Cocoa ScriptingBridge framework to launch the Terminal. I would build a shell script in Cocoa, then send that to the Terminal as a “Do Shell Script” AppleScript. This entire structure was replaced when I learned about the functionality of NSWorkspace and NSURL. Now, all bookmarks are URLs, and opened by NSWorkspace. Much simpler, and more functional. This discovery allowed me to take Go in a new direction, instead of being a launcher for SSH connections, Go could be a universal bookmarker, storing and launching bookmarks for anything that could be addressed by URL, which turns out to be just about everything. I finalized the functionality of Go, and spent another month or so building in a copy protection scheme and a 30 day trial, and… launched.

Farmdog Software was launched to the amazement of no one. I had the store open for three months and sold a grand total of seven copies of Go. I was languishing in obscurity. No one knew what Go was, who I was, or had heard of Farmdog Software. Then Apple announced the Mac App Store, and I knew that was my opportunity.

I started an entire redesign of Go, and renamed the application Go2. I redoubled my efforts. Now I was not only programming in the morning before work, but also at lunch, and at night after the kids were in bed. I built a custom NSCell class, and spent a long time building the Status Bar search menu that Go2 has now. Jim came to the rescue once again with a way to use the down arrow to navigate out of the search field, which was the final piece of the Go2 puzzle.

I submitted Go2 to the App Store, and in the last week of December it was rejected. Turns out there was an odd bug that only showed itself at launch time, and only on the first time the app was launched. I fixed that bug, resubmitted, and Go2 was in the store on day 1.

Go2 and Farmdog still have a long, long ways to go, but they are on their way, and that’s the important thing. If anyone can take anything away from all this I hope that it is to never give up. Never. Nothing worth doing is ever easy.


Go2 and the Mac App Store

January 7, 2011

Yesterday, Go2 was one of approximately 1000 applications available on launch day of the Mac App Store. It’s been a nerve wracking experience, but overall I’m pretty happy so far with the way its gone. I’ve been able to identify a couple of last minute bugs and get their fixes incorporated into version 1.1, which I’ve had in beta testing for about a month now.

I’ve created a new version of Go2 in iTunes Connect, and I’m waiting now for Apple to let me know that they are ready for me to upload. Once I do, the new version should take a week to two weeks to be approved, and will then be available in the Mac App Store. Thats being optimistic, but so far my experience with the MAS has been very positive, and I’m expecting for it to remain positive in the future. I won’t go into any numbers, mainly because they are all very small, but I will say that I’ve sold twice as many copies of Go2 on the first day of the MAS than I did for the entire four months of running my own store.

However, simply being in the MAS is not enough, I still need to be better at marketing, and getting Go2 in front of people. Wording in the short explanations of Go2 provided is important, and getting the definition of what Go2 is right, and getting it brief is important. I’ve started marketing Go2 with a tagline suggested by a friend “What the Finder’s Connect to Server Should Have Been”, but I’ve already had at least one person download Go2 thinking that it was an FTP client like CyberDuck or Transmit. It makes me wonder how many others have thought the same thing and simply didn’t say anything. (Note to all non-spammy types: you can always get ahold of me, I’m a friendly guy!)

I’m confident as people use Go2, they’ll see that it’s a great app and really like it. I don’t want to sound like I’m boasting, but I am very proud of Go2 and very happy with how it turned out. There’s still a great roadmap for the future of the app, and the eventual suite of apps I’m planning on building, in which Go2 plays a big part, but for version 1.1, I’m happy with it. The biggest challenge for Farmdog Software right now is getting noticed. I’ll be working on press releases and contacting people I respect and seeing if they are interested in Go2.

I also developed a “Go2 Lite”, a version of Go2 limited to only six bookmarks and intended to simply be an introduction to what Go2 is. My original intention was to submit Go2 Lite to the MAS and see it alongside Go2, one for $4.99, and the other free. However, I tweeted about this and was promptly reminded that Apple recommends against (read: will reject) demo or lite versions of apps, and they recommend hosting demos on developers web sites, like here at Farmdogapps.com. A secondary discussion popped up about needing a free demo version of a five-dollar app, with the general consensus being that it’s not really necessary. Which brings me back to my original problem: press and marketing coverage. Having Go2 Lite in the MAS might have encouraged people to download and try the free version, just to see what it does, then, if they liked it and wanted to use it, they could download the full version. Ideally, Apple would support a limited trial and in-app purchase to the full version, similar to the original Go’s 30 trial period. Is five dollars enough of a barrier for people unsure of the purpose and functionality of the app? I’m not sure, but it might be. It’s a problem I’m working on.

I’m also still waiting for promo codes to allow the original users of Go to upgrade to Go2, but so far Apple has not provided developers with the codes. I’m hoping that they will, soon, and as soon as I have them I’ll be sending them out in email.

I’ve been quiet on the Farmdog Blog, but that’s because I’ve been neck-deep in Objective-C, writing code and getting Go2 ready. Farmdog Software is in it for the long haul, and the MAS is a great step in the right direction for our tiny, independent company.

Thanks for stopping by.


Delicious Bookmarks

December 17, 2010

Word leaked out yesterday that Yahoo has it’s popular Delicious bookmarking service on the chopping block. I don’t personally have an account, not anymore, so the closing won’t affect me. Twitter tells a different story, my stream lit up with people upset about the decision. Yahoo’s leak, coupled with their announcement that the company is laying off 4% of it’s workforce right before Christmas, caused a fairly good sized migration from Delicious to Pinboard. I do have a Pinboard account, and I think I even have a few bookmarks saved, but its been weeks since the last time I visited the site.

There was once a time when I used del.icio.us (as it was once called) extensively, tagging my bookmarks, installing the firefox extension… I had thousands of sites bookmarked. And I never actually visited them. When Yahoo bought del.icio.us, I closed my account and deleted my bookmarks, and I’ve honestly never missed them. For a while afterwards I used a “To Read” bookmark folder in Firefox or Safari, but again, the size of that folder would grow to be unmanageable, and I’d eventually just delete everything in the folder, loosing potentially interesting reading along the way.

Then came Instapaper. My problem with bookmarks was that I did not get around to actually reading the site, and even if I did, my bookmark remained alongside every other bookmark I had. Instapaper provides a simple service to add a site (I have the keyboard shortcut in Safari mapped to ⌘+1), and a beautiful interface on the iPad to actually do the reading. The best part is, when I’m done reading, I tap the trash, select “Archive”, and the article is gone. I don’t have to worry about link rot or managing yet another boatload of data, I just read what interested me and move on.

I believe there is also a psychological reason that Instapaper is so appealing to me. It fits into a “trusted system” type of flow where I know if I send something to Instapaper I will eventually read it. Not true with a bookmarking service. Instapaper’s flow of new content is very similar to how I listen to podcasts; I sync only the unread podcasts to my iPod to listen to on the way to work. In Instapaper, I only ever see the unread articles, so I know that whatever is in my queue is something that is new and that I found interesting enough to save for later.

There are two other types of sites that I come across that I once might have thrown into del.icio.us. There are sites that I want to read every day, which are thrown into NetNewsWire, and there are sites with an amazing article that I absolutely want to maintain access to. In that case, I archive the site in Yojimbo, or I copy the text from Safari’s reader mode and add that into Yojimbo. Either way, Yojimbo becomes my long-term storage mechanism for web content.

I’ve found that Instapaper and Yojimbo fit in much more naturally than bookmarks in my flow of how I deal with web content. I still have a few bookmarks in my browser, like my bank and login pages for various things, but those are relatively static, things that I haven’t changed in years, and access on a regular basis. For everything else, Instapaper is perfect.


PC Apps

December 16, 2010

alt text

Interesting choice of wording in Apple’s most recent press release. The intent of the release is to announce the availability of the Mac App Store on January 6th, however, the interesting parts read like this:

“The App Store revolutionized mobile apps,” said Steve Jobs, Apple’s CEO. “We hope to do the same for PC apps with the Mac App Store by making finding and buying PC apps easy and fun. We can’t wait to get started on January 6.”

Apple spent a long time with the “I’m a Mac” commercials, educating the public about the differences between Macs and PCs, so why the change in wording now? Jobs is a master of nuance and wording, so I can’t imagine that addressing the Mac as a PC is an accident. This may be a continuation of a subtle suggestion that Macs are the past, and iOS is the future, by grouping the Mac along with the PC that Jobs has derided for so many years.


The Proper Place of Technology In Our Lives

December 15, 2010

It’s now the middle of December, which signals the end of my first semester of grad school. I took two classes, both focused on HCI: cognitive psychology and social implications. The paper I just finished writing for the social implications course was about answering the question of whether all software should be free, and required a lot of research into open source, the Free Software Foundation, and a lot of deep thinking about what I felt was right.

The definitions of freedom offered by the Free Software Foundation act on the assumption that computers are central to a persons well being, and that the user of a computer should have full and complete access to the source code of the computer based on a natural right of well being. However, it is my position that computers, or any other form of technology, only serve to increase personal freedom of the user in proportion to the increase in overall quality of life of the user of the technology.

Richard Stallman, in his essay entitled “Why Software Should Not Have Owners” claims that authors of software can claim no natural right to their work, citing the difference between physical products and software, and rejecting the concept of a tradition of copyright. Stallman uses an example of cooking a plate of spaghetti to explain the difference between software and physical products:

When I cook spaghetti, I do object if someone else eats it, because then I cannot eat it. His action hurts me exactly as much as it benefits him; only one of us can eat the spaghetti, so the question is, which one? The smallest distinction between us is enough to tip the ethical balance. But whether you run or change a program I wrote affects you directly and me only indirectly. Whether you give a copy to your friend affects you and your friend much more than it affects me. I shouldn’t have the power to tell you not to do these things. No one should.

However, what Stallman does not address what gives the second person who receives the software the right to benefit from the authors work without giving something in return.

Before the industrial revolution, most people learned a skill and worked for themselves in small communities. A single village would have all of the skill sets necessary to sustain itself, and each member of the community would apprentice into a particular skill set to contribute and earn a living. The industrial revolution pushed skilled workers into factories and assembly lines, work that was both distasteful and disdainful to an artisan in the craft. However, corporations were able to reduce cost and increase profits, and the platform has persisted into current work environments.

In the information age, the assembly line mindset has created oceans of cubicles filled with programmers who use their skills in small parts of large software projects, sometimes to great success, but far too often to failure. The Internet and popularity of lower priced computers has created a market for high quality third party software, the kind that is created by someone with a passion for what they are doing. This passion comes from learning a craft, and using that skill to earn a living, just like the workers from before the industrial revolution. Instead of living physically in small villages, these new age artisans live online and create communities built around social networking.

In many ways, this is a return to a more natural way of life, and a simple form of commerce. One person can create an application and sell it, and another person can buy it from him. The person selling the software benefits from being able to purchase shelter, food, and clothing for his family, and the person who buys the software benefits from the use of the software. It is a very simple transaction, and a model that is not adequately explained in the GNU essays. If all proprietary software is wrong, then an independent developer who sells software as his only job is also wrong. GNU supporters could argue that there is nothing stopping the programmer from selling his software, but he should give away the source code under a license that permits redistribution along with the software once it is sold. At this point, selling the original program no longer becomes a viable business model. A programmer can not continue to sell his software when the user can, and is encouraged to, download his software from somewhere else for free.

While it may be the ethically right thing to do to purchase the software if you intend to use it, ethics alone are often insignificant motivation to encourage people to spend their money. If the choice of supporting the development of the software or not is entirely up to the user of the software, then purchasing the software becomes a choice that the user can make on a whim, with no real implications on the conscience of the user with either decision. GNU and the GPL place this decision squarely on the user, and encourage the users to not feel in any way obligated to pay.

The ethics of open source come into question when the requirement of adhering to the free software philosophies result in an independent developer not being able to support a moderate, middle-class lifestyle by developing a relatively popular application. Kant’s first formulation asks what would happen if all developers gave away the source of their code for free. In this imaginary world where all developers did this, the quality of software would go down to the lowest common denominator of acceptability. Each developers motivation would be to develop for himself, and since he would need to find a source of income elsewhere, only in the free time allotted to him. This would result in a wide variety of software availability, with very little integration or testing, mirroring the current state of GNU/Linux based desktop operating systems. Current software companies would move to a business model arranged around providing support to customers of their software. Competition, and therefore innovation, based on pure software features would decrease, since the source code of any feature another group could develop would be easily copied and integrated into competitors products.

A second implication of business providing support as their primary source of income is that the support becomes the product, not the software itself. Businesses then have a vested interest in creating software that requires support, resulting in intentionally complicated user interfaces.

From a utilitarian point of view, the outcome of proprietary software has clearly been to produce more pleasure for more people than open source has up to this point. Open source software is often more complicated, difficult to learn and maintain, and harder for the average computer user to use. Apple produces proprietary software and hardware, and states their mission to “make the best stuff”. Using their position as a leading software company, and leveraging their control over their computing environment, including iPads, iPods, iPhones, and Mac computers, Apple has been able to successfully negotiate deals with entertainment companies. The deals Apple has made allow the consumer to download music, television shows, and movies off of the Internet and watch them on any Apple branded device, and output the media to their televisions or home stereo systems. Because of the limits of Digital Rights Management, open source or free systems have not been able to provide this level of entertainment.

Free software enables the user to learn the intricacies of how the software works, and modify the software to suit his needs. Free software also provides a legal and ethical alternative to expensive proprietary software in developing nations or areas where the cost of obtaining a license for legal use of the software is prohibitive. Public institutions, like schools and government offices, where the focus of the organization is the public good, have the option to use software that is in the public domain and is not controlled by any one company.

However, proprietary software is also beneficial to the public, as well as respectful of the original authors rights regarding their creative work. Software is the result of a person’s labor; it does not matter how easy it is to copy that work, the author still retains a natural right of ownership, according to John Locke’s The Second Treatise of Government. Proprietary software enables products like the iPad, which is being used to enable elderly people, nearly blind with cataracts, to create creative works of their own. The iPad is also being used by caretakers of severely disabled children to enable them to communicate and express themselves. It is possible that the iPad would have been created if the software used to power it had been free, but that is unknown. What is known is that the net result of the device is to better peoples lives, which is the true purpose of technology. Any technology is merely an enabler to get more satisfaction and enjoyment out of life. What the free software movement does is exaggerate the importance of a specific type of freedom, without addressing the proper place of technology in our lives.

However, the existence of free and open source software alongside proprietary software creates a mutually beneficial loop, wherein consumers and developers are able to reap the rewards of constant innovation and competition. There is a place for both proprietary and free software, and it is the authors natural right to their creative work that gives them the freedom to choose how and why their software will be distributed.


Weekend With Android

November 29, 2010

I should have known better… I do know better, but it was on sale, and it was Black Friday, and I bought an Android phone. I purchased the HTC Desire, a perfectly reasonable choice in high-end smart phones. Android 2.1, a 1GHz processor, 512M of RAM, and an 8G MicroSD card for storage. The phone is well designed, solidly built, and aesthetically pleasing, but at this point, its still on probation, I might take it back.

One of my oddly favorite things about the Desire is HTC’s marketing design. I absolutely love the hand drawn images that adorn the packaging and the HTC site. I think it gives the product a more earthy and homegrown feel, and ties in with the Android open source roots. HTC’s Sense UI is wonderful, and seems well thought out, with a few noticeable exceptions. HTC’s “polite ringer” which lowers or silences the volume of the ringtone based on the phones position is an excellent idea. Holding down the home button brings up a pane to switch between running apps. Pinching or double tapping the home button brings up an exposé type interface to choose the screen to bring up. The more I use the Sense Ui the more I like it. It is very different from iOS, but sometimes that can be a good thing.

Yesterday the phone had a bad morning. I had seen something on the Internet that I wanted to show my wife, so I took out the phone and started the browser, found the site, and waited for the content to download and render. It was taking a while, so I set it aside and turned to go back to what I was doing. After a couple of minutes I went back and found that the phone had turned off the screen, which it’s supposed to do if it’s not in use. But then, I couldn’t turn it back on. Pressing any of the buttons on the front didn’t help, and neither did pressing the button on the top. Pressing and holding the power button on the top did not help either. The phone was entirely bricked. So, I popped the back off, took out the battery, waited a minute or so, replaced the battery, and the phone powered up again.

Comparing the phone to a computer, pressing and holding on the power button overrides the operating system and kills power to the machine immediately, no questions asked. On iOS, pressing and holding the power button brings up a prompt asking you to swipe to power down the device. I’ve never once seen an iOS device die from loading a web page though, something very core to the system must be at work while browsing for that to happen. The HTC Desire ships with Android 2.1, but HTC also includes a flash plugin, perhaps that died.

While making breakfast for the kids, I put the phone in my pocket. I turned to do something on the counter, and heard a distinct “beep, beep”, and gave a surprised look to my daughter. I pulled the phone out of my pocket and found that it had pressed against my leg, activated the phone app, and started dialing a couple of numbers. Not the first time I’d pulled the phone out of my pocket and found that it had launched an app. I’ve since gotten in the habit of pressing the power button to lock the screen before the phone goes in the pocket. Again, not something I ever had to do with the iPod.

Later, I got in the car to drive to work, plugged in the Android to the aux port in the car stereo, and started one of the 5by5 podcasts to listen to on the way in to work. Nothing. I checked the phone, it was still on, the time was still ticking along, so the media player was playing the podcast, but there was no sound. I unplugged the cable from the headphone jack, and I could hear the podcast from the built-in speakers, plugged in the cable back in, and there was no sound. I said to hell with it, went in and grabbed my iPod and listened to my podcast on the way to work.

Once at work, I did some searching on Google, and found that several other people have had the problem with the headphone jack, and the fix for it was to reboot the phone. I did, and tested with a set of headphones, and sure enough, it worked again. At this point I thought… what next.

Throughout the day I’d use the phone for various things, checking Twitter, looking something up in a meeting, the kind of general mobile computing use that I’d use my iPod Touch for over wifi. After a while I noticed that the phone was generating a significant amount of heat. Not hot to the touch, but definitely much warmer than any phone or iOS device I’ve ever used. I handed the phone to a coworker and he noticed it too.

Around three in the afternoon, the battery on the phone started to die. By four, it was red, by four-thirty the phone was dead. The battery will not last for a full day of normal use. I checked to make sure that I had bluetooth, wifi, and GPS turned off, and all of them were. The Android system has an information page that details what applications were using the most battery life. Number one in my system was the Android OS itself. It’s clear that if this phone is going to stick around I’ll need a few places to charge the battery, and maybe a couple of spares to keep in the briefcase.

That was yesterday. Today, so far, has been a different story. The phone worked perfectly to check my messages this morning at breakfast. The phone worked great listening to my podcasts on the way to work. Most importantly, when I got a call from the school about one of my kids possibly having an ear infection, the phone worked great to look up the doctors office, schedule an appointment, look up the schools number, call them back, and send my wife a text message about what was going on. You know, the real work that a smart phone is meant for.

Except now it seems that 1Password has failed. Now what.

There is a lot to talk about with the HTC Sense UI, and the Android phone in general. When its good, its very good, but when it fails, it fails hard. Which is why, for now, the phone is still on probation.


Android Marketplace Inconsistencies

November 7, 2010

Living out in the farmland of Iowa where we do, there’s really only one carrier who provides decent service, US Cellular. US Cellular has a great service for battery replacement. If you find yourself out and about and your battery dies, you can drop by any US Cellular store and they will replace the battery for free. I was in that situation today, so I spent some time looking at the Android phones HTC Desire and Samsung Mesmerize.

Both phones are $280, with an $80 mail in rebate. Both phones have 1GHz processors, and both phones have 5.0 MP cameras. The main difference between the two phones is that the Samsung has a 4” Super AMOLED screen, and the HTC has a 3.7” WVGA screen. Software wise, while both phones use Android 2.1 as the core, they each have different themes, or skins. The difference in themes reminded me of the difference between KDE and Gnome on Linux. There are a few other differences; the Samsung is fully touch screen while the HTC uses hardware buttons for the four base Android buttons search, back, home, and menu. What I found most striking were the differences in the Android Marketplace.

I love Angry Birds for iOS, so I thought I’d see how the game looked and felt on Android. I searched for “Angry Birds” on the HTC and found two screens worth of knock-offs. Some of these applications took the artwork and Angry Birds name directly from the real game. There was one game called “Angry Avians”, who’s icon looked like a closeup of the red bird from the real game. There were Angry Birds wallpapers, Angry Birds books, and Angry Birds unlockers. I can’t imagine that any of these apps were actually licensed to use either the Angry Birds name or the Angry Birds artwork. They are ripoffs riding the wave of the original games success.

Pathetic, and a poor impression of the Android Marketplace.

What I did not find on the HTC was the actual Angry Birds game from Rovio. I knew that it was released, thanks to Dan Benjamin mentioning it on The Talkshow, so I checked on the Samsung. Sure enough, the Samsung search returned 53 results, and the HTC only 51, and the Samsung included the official game. I wonder how many people buy one of those ripoffs on the HTC when they can’t find the real game, knowing that it is supposedly available for “Android”.

A quick comparison of the iTunes App Store shows that there are a few Angry Birds references, walkthroughs and hints of where to find the golden eggs, but none of them use Rovio’s artwork, and none of them are copies of the game.

The Android Market is open and free, and doesn’t give one seconds thought to the end user experience. At least with the curated App Store, Apple does a decent job of keeping unethical developers from preying on users who just don’t know any better. The difference between the two markets feels like the difference between buying from an upscale mall, or buying from a back alley black market.


Emotions and Machines

November 6, 2010

I’ve been using different forms of computer “chat” for over ten years now, starting with operator-to-operator communications over a 9600baud satcom circuit in the Navy. Over time, I’ve become used to using certain forms of “emoticons” to convey subtle nuances in the conversation that are unnecessary in face to face communications. I even have friends with whom I communicate with entirely over chat.

Over the summer my cousin appeared on chat, and I tried to have a conversation with her. She was not familiar with the conversational tone and rhythm of chat, which made the interface difficult and frustrating, to the point where we both simply decided to go back to email.

Apple understands the human element of their devices possibly more than any other company in their field. Their advertising plays to your emotions, and their products are designed to elicit an emotional response; an appreciation for their beauty. Technology like Skype and Apple’s FaceTime video chat removes one layer of abstraction between you and the person you are trying to communicate with, and allows the emotional facial queues that are so important in communication to come through.

If my cousin and I were chatting face to face rather than over the keyboard, I imagine our stunted conversation would have lasted a bit longer than it did.

Another point I’d like to make about emotion and computers is that even if you do see your computer as simply a machine, a tool to accomplish a task, it is difficult to use a tool for any serious length of time, with a serious financial investment without an emotional connection to the tool. A carpenter is likely to have his favorite hammer, a mechanic his favorite ratchet, and anyone who uses a computer to create something will have their favorite brand, and strong reasons for choosing that brand.


Interaction

November 3, 2010

Last night I did my civic duty by casting my vote at the local community center. I walked down since it was not far from my house, and enjoyed the crisp night air. Once I arrived at the community center I noticed that the voting process was being run by a group of elderly women, two of whom had Lenovo laptops, which were curiously tied together by an ethernet cable. Each of the laptops had a label printer attached to it via USB, with the other USB port occupied by a mouse. As I approached one lady noticed me and asked me to fill out a form, which I did, and then asked if I had voted there before, which I had not. That turned out to be a bit of a problem, one that was easily resolved, and one that was caused entirely by the laptops.

The laptops were labeled “Primary” and “Secondary”, and each had stickers on it showing which ports on the side to attach the mouse and sticker printer to. They were each running some kind of database software that had all of our names and registration status. When I was asked if I had voted here before, I said that I had not voted in that town, but I had voted early at the county seat during the presidential elections of ‘08. They wanted to make sure I was in the database, but since they were continually having problems with the computers it took some time.

While I was waiting, a man next to me needed to be registered, so one lady asked another, who was apparently in charge, to come and help put him in the database. I overheard the two of them ask questions like “I’m not sure what the difference is between ‘accept’ and ‘apply’”, and “Ok, I don’t know what to do here, where do I go next?” I couldn’t help but wonder who had designed this system, knowing that its intended users were going to be elderly women who had little to no computer experience. One of the ladies rebooted her computer twice before she was able to get it to work again.

I leaned over to take a look at the screen, and confirmed what I had previously thought. It looked like an application left over from the Windows 3.1 days, multiple screens, buttons everywhere, seemingly random labels. How much simpler and easier could the entire night have gone if they would have given that application to a UX designer first, before sending it out to be field tested.

People have become used to computers behaving this way. They are incomprehensible, confusing machines that if you look at them wrong they break. I wanted to tell the ladies that the problems they were having with the computers were not their fault, but the fault of the people who designed the computer, the operating system, the application, and the process that must be followed to glue them all together. I wanted to tell them that it doesn’t have to be this way, and that computers are meant to make things easier, not harder; simpler, not more complicated. If they don’t, then why do we continue to use them? It would have been easier to stamp everyone with a rubber stamp last night than deal with those machines.

I wanted to tell them a lot of things, but there were people behind me in line, and it had been a long day already. So, I smiled, said thank you, and cast my vote. Then, I walked home and enjoyed the starry night.


Clean and Clutter Free

October 10, 2010

I like to keep both my desk and my computer desktop clean and clutter free. I’ve found that when there is less visual noise, I’m able to better concentrate and focus. In the article “The Proximity Compatibility Principle: Its Psychological Foundation and Relevance to Display Design”, Wickens and Carswell outline scientific principle’s that back up my personal preference.

Unless I’m actively working on a project that requires papers, my desk has nothing on it except my notebook, my computer, and a pen and pencil holder. Likewise, my desktop on my Mac is normally free from files, icons, and distracting wallpaper. If there is a file on my desktop, or if the trash needs to be emptied, I find that my attention is drawn to those cues, and I wind up dealing with them right away.

I always thought it was just because I was picky, but in the article it says

“It is clear that the negative influences of confusion and clutter will be enhanced to the extent that the contributing elements are both salient (bright, distinctive) and cannot be easily discriminated from the relevant ones. (In the visual search literature, this is known as target-distractor similarity.)” (Wickens, and Carswell 473-494)

To me, this is saying that when there are distracting visual elements, like a bright and colorful wallpaper, it takes additional mental effort to concentrate on the task at hand. Furthermore, the article also states

“Added clutter is known to disrupt visual scanning, whether this scanning is carried out by movement of the eyeball or by movement of an internal ‘attention pointer’ (Thorndyke, 1980). It is evident that the costs of scanning over (or filtering out) this clutter will be greater when there are added burdens of integration.” (Wickens, and Carswell 473-494)

When writing, or entering commands into a terminal, I find it much easier to concentrate on the task at hand when there is a single window open on my display, and the background is a neutral grey, and all non-essential visual elements are removed or hidden. I was very glad to read about Information Access Cost, it is good to know that there is actually hard science backing up my personal preferences.