How Do I Get to Live on an Island?

When people find out I live on a tropical island for half the year, the first question they often ask is, “wow, how do I do that?” Short answer, it’s not easy. So, I’ll tell you a story about how we did it, and then I’ll try to give you a better path. Continue reading

In Defense of Capitalism

I saw John Mackey of Whole Foods speak at inc. Magazine’s GrowCo conference (highly recommended), and have read his book Conscious Capitalism since. In both, he began with the premise that capitalism is viewed negatively in the U.S., that companies are viewed as greedy and are a cause of social problems. He continues with a defense that shows that capitalism has raised the standard of living, increased life expectancy, and generally improved people’s lives. Please read the book for the details. I agree with all of this, which is not difficult as it is fact based. Continue reading

Developers in Support? – Maybe Not

I once had a boss that insisted that developers act as support for at least a month on all newly released products. The idea was that they would get direct feedback from the customer. This would allow them to better understand the real world use cases, and share the pain of any errors. I believe this approach has a fair amount of merit. I have learned a lot from my customers. In general, I release a version 1.0, and from there, customers determine future feature releases. It doesn’t always work this way, but customers have pretty good ideas about what they want. (Thank you for that insight captain obvious). Continue reading

Retrieving Android Contacts

If you are developing a social networking app, or something similar (and who isn’t!), then you might need to retrieve contacts. There are several samples out there that do something like this (sample code in MonoDroid):

private void PopulateContacts()
{
   var uri = ContactsContract.Contacts.ContentUri;
   var cursor = ManagedQuery(uri, null, null, null, null);
   while (cursor.MoveToNext())
   {
      var contactId = cursor.GetString(cursor.GetColumnIndex(BaseColumns.Id));
      txtContacts.Text += System.Environment.NewLine + "Id = " + contactId;
      txtContacts.Text += System.Environment.NewLine + "Name = " +       cursor.GetString(cursor.GetColumnIndex(ContactsContract.ContactsColumns.DisplayName));
      var emailCursor = ManagedQuery(ContactsContract.CommonDataKinds.Email.ContentUri, null, "CONTACT_ID" + " = " + contactId, null, null);
      while (emailCursor.MoveToNext())
      {
         var email = emailCursor.GetString(emailCursor.GetColumnIndex("DATA1"));
         txtContacts.Text += System.Environment.NewLine + "Email: " + email;
       }
      emailCursor.Close();
      txtContacts.Text += System.Environment.NewLine;
   }
   cursor.Close();
}

Continue reading

So You Want To Live on an Island

As you may have read in Living the Dream, I live half-time in North Caicos, a small island in the Caribbean. When finding this out, fellow developers want to know how I managed to make it happen. I’ll talk about some technical considerations later, but the question is really about how you can position yourself to work in paradise. “You may ask yourself, well, how did I get here?”1 Lots of folks work, as an old co-worker of mine once said, their ordinary job in their ordinary way for their ordinary pay. It is the seemingly safe thing to do, and I fell into that pattern as well. Often, however, people want more, and when presented with proof that it is actually possible, the wheels start turning.

When I was growing up, I wasn’t ambitious. My family didn’t come from money, and most everyone I knew worked their ordinary jobs. I grew up thinking you went to college, and then you worked in a profession until you retired. The idea of starting a company never occurred to me. Why, I’m not sure, because a close friend of the family was an engineer who owned his own company. Yep, I had a mentor right there in front of me, and yet didn’t see it. I was constrained by my ideas of a normal life. Continue reading

Why You’ll Eventually Hate Your Boss

Perhaps you are one of the fortunate ones. Your boss is great. They respect you, appreciate your hard work, provide valuable guidance and insight, understand what you are doing, but give you enough freedom to create. Good for you! Now, wait for it, because it won’t last. Eventually, you’ll hate your boss. Hate may be too strong of a word, you just won’t want to work for them anymore because they:

  • Micro manage,
  • Play politics,
  • Don’t have any technical knowledge,
  • Are too negative and see problems where there are none,
  • Underestimate everything,
  • Make decisions without information,
  • Yell like a drill sergeant,
  • Are disorganized,
  • Can never be reached,
  • Change requirements hourly,
  • Think they know how to do everything, and it involves VB,
  • Never anticipate problems,
  • Don’t allow creativity, everything has to be by the spec,
  • Are indecisive,
  • Are too easy-going, and let people get by with murder,
  • Don’t provide input or add any value,
  • And on and on…

Any of these sound familiar? Do you want your boss to possess any of these qualities? Those of you with good eyes may see some contradictions in these common complaints. Requirements change all the time, but I can’t be creative, and have to do it to the spec? Well, which do you want, flexibility to be creative or stable requirements? I would guess the answer is ideally both, but at least a nice balance between the two, and therein lies the rub. It would be great to have a technically competent boss who provides tremendous input, makes timely decisions, but also allows plenty of freedom and independence to employees, all while being organized and setting clear objectives. Now that sounds easy enough, right? Continue reading

Is This Another Developer Blog?

Um, yes, er, no, on occasion, but not really. Is that clear? No? OK, so let’s talk about what this is. I am indeed a developer, and there will be some tutorials, tricks and insights about developing software, but that won’t be the only focus. I’m also a business owner, have had a long and varied career, and live on a tropical island, so I think there’s more to life than code. I also have opinions, and am absolutely willing to voice them. So, hopefully, this will be entertaining, interesting and/or educational in a number of different areas.

Joel on Inspiration

Once upon a time, there was an interesting site called Joel on Software. Oh, that’s right, it’s still there. Well, Joel used to write all sorts of interesting articles about developing software and the business of selling it. His company grew, and I suppose he doesn’t have time to write like he used to, but I enjoyed reading him, and miss those articles. They were perfect for in between code runs, where you want to let your mind relax for a bit, but you were still learning something. I hope this will provide you those kinds of experiences. Continue reading