jb… a weblog by Jonathan Buys

Keyboard Driven Safari

January 27, 2011

A friend was explaining his preference for Google’s Chrome browser the other day, and was using 1Password as an example of why he felt that Chrome was a better designed browser. The 1Password extension in Chrome drops down a menu that looks almost like an iOS window, which he felt was more polished than it’s Safari equivalent. In Contrast the “1P” button in Safari drops down a normal cocoa menu. Funny thing is, I’m fairly certain that I had never seen that menu, simply because that’s not how I use Safari.

Chrome is an excellent browser, and got several things right with their design and philosophy, it’s fast, light on resources, and I love that it separates tabs into their own processes. The one thing I think they got spot on right was the name. The browser is a pane of glass that the web shines through. When the browser starts outshining the web there’s an imbalance. The browser really is just the chrome around the content of the web, which is why I choose to hide all of Safari’s toolbars.

I use Safari because it is a proper Mac app, and so it respects the standard keyboard combos that I’ve become used to over the years. I browse the web almost without touching the mouse. Almost, because I still use it to click links and to scroll down a page, but for the most part I use these keyboard combos:

  • ⌘ + [ = Back
  • ⌘ + ] = Forward (I don’t use this one much)
  • ⌘ + L = Pop open the address bar to enter a URL
  • ⌘ + F = Search for text in the current web page, immensely useful when searching for an answer to a technical question in a long newsgroup, mailing list, or forum page
  • ⌘ + ⌥ + F = Pop open the address bar with the cursor focused in the search field
  • ⌘ + Shift + R = Safari Reader mode, inherited from Readability

And, for 1Password:

  • ⌘ + \ = Log in to the current web site
  • ⌘ + ⌥ + \ = Pops open a HUD window that lets you quickly select a saved login, then opens a new tab and logs into the web site for you.

I also use bookmarklets fairly extensively, particularly Instapaper and Yojimbo. Safari let’s me use these keyboard combos to trigger bookmarklets I have saved in the Bookmarks bar. These change a bit more than the others, like once every six months or so, but here’s what I currently have:

  • ⌘ + 1 = Instapaper Read Later Bookmarklet
  • ⌘ + 2 = Readability, for those few times when Safari Reader fails me
  • ⌘ + 3 = Bookmark in Go2, something special I’m working on for Go2 1.2 release
  • ⌘ + 4 = Share on Twitter, because… well… you know…
  • ⌘ + 5 = Archive in Yojimbo

As I said earlier, extensions can drag down a browser, clutter the interface, and generally do bad things. However, there are a few absolute gems that I keep around.

New windows and new tabs both open with Top Sites, which I think is just a beautiful home page. My current Top Sites are:

  • TeuxDeux: All the “task management” I need
  • iTunes Connect: To keep tabs on Go2
  • Farmdog Software: because I’m really happy with how the design turned out
  • This site: Evidently because I’m my biggest fan
  • 5by5: I’m constantly checking the site to get to the links in the shownotes. I wish there was a separate RSS feed just for these links, that’d be pure gold.
  • FogBugz: My bug tracker and customer support for Farmdog, also hosts Kiln, a Mercurial repository which keeps Go2’s source nice and cleanly revisioned.

Another part of Safari being a proper Mac app is it’s support for the system-wide dictionary. One of my favorite features of Mac OS X is that I can highlight a word, press ⌘ + ^ + D, and see that words definition in a little window below it. I use it constantly.

At this point i’m fairly invested in Safari. I’ve tried other browsers, but Safari is the one I keep coming back to. Omniweb used to be my go to web slicing and dicing tool, but sadly, it’s been leapfrogged. Safari lets me keep everything out of site, and just a quick keyboard press away. Everything I need, nothing I don’t.


Friendly Conversation for the Drive

January 21, 2011

It’s snowing again, which means my normal 40-minute commute will now be closer to an hour. I’m actually a bit excited by the prospect of a long drive; it will give me some time to catch up on my favorite podcasts, most of which come from Dan Benjamin at 5by5.

What Dan has built at 5by5 is important. He’s amassing a collection of incredibly smart people, the people who design and build the things we use on our computing devices every day. Dan is an accomplished developer himself, and has been publishing online since the paleolithic age on Hivelogic. The 5by5 interviews are an audio library of intelligence. Inspirational and honest, Dan has a talent for asking meaningful questions that cause his guests to think. What I love most about the 5by5 shows, especially The Pipeline, is that Dan always asks questions along the same subject line: “How did you get to where you are?” and “How can the guy sitting in a cubicle get to where you are now?”.

The answers to his questions are often hard, but always truthful. There’s a theme of hard work and dedication that goes through all his guests. You don’t get to be a successful developer, designer, producer, writer, or any other profession without hundreds of hours of sweat and tears. You don’t get to be a successful small business owner without the guts to take the necessary calculated risks.

I don’t subscribe to all of the 5by5 shows, but here are my favorites:

  • The Talk Show: John Gruber, from Daring Fireball, and Dan Benjamin talk about technology, Apple, Star Wars, and all kinds of assorted nerdery. Listening to the Talk Show is like sitting at the pub with a couple of good friends over a pint.
  • The Pipeline: The main 5by5 interview show, Dan’s guests are makers, they build what we use. The Pipeline is an inspirational, entrepreneurial show about chasing your dreams, never giving up, and being honest with what your passion is.
  • The Big Web Show: Tagged as “Everything Web That Matters”, Dan co-hosts this show with Jeffery Zeldman, author, speaker, designer, developer, and pioneer of web standards. Dan and Jeffery’s guests range from the unknown trying to get tracktion on a start up to Roger Black.
  • Back to Work: Merlin Mann brings his unique view on work, attention, and real productivity to the newest addition to the 5by5 network. I’ve been a big fan of Merlin’s for a long time, and I’m happy to see him back in the public again after his hiatus to write a book. As of today, there has only been one episode of Back to Work, but I’m excited to see where this show goes.
  • Build and Analyze: Marco Arment, co-founder of Tumblr and developer of the amazingly awesome Instapaper hosts this show about programming, coffee, and doing things the right way. Marco is super intelligent, and equally opinionated, a combination which that for a really great show.
    The 5by5 shows remind me of broadcasting in the 1950s, an idea that I think Dan shares, if the current design of Hivelogic is any indication. One of my favorite parts of each show, strangely, is the advertising. At some point in the show Dan will stop and acknowledge the sponsors, and read a prewritten release. It feels low-tech, and so much more authentic than a gimmicky advertising agency, and far, far more human than a banner ad on a web page. Whenever I hear the ad I imagine a guy in a suit standing at a microphone tossing papers on the wooden floor after each page is read.

My daily drive is easier now because of 5by5, so, thanks.


Past Blast

January 20, 2011

I’ve loved reading some of the “Past Blast” articles that have been linked about in Twitter, so here is my contribution.

Two from Me

On Graduation Day, written after I, finally, finished my bachelors degree. A personal accomplishment that means a lot to me.

The Master Craftsman, solidifying the concept of my work as a craft, whatever that work might be.

One from Daring Fireball

The Life, I just wrote about this article, but I think linking to it today is in keeping with the spirit of the meem.


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.