Privacy is Important

“You have zero privacy anyway. Get over it.” – Scott McNealy, former CEO of Sun Microsystems.

When I was invited to join Sepia Labs and create the Android version of Glassboard, I stressed that privacy was the key to our success. Companies like Facebook and Google are trying to convince millions of us that we can trust them with our privacy, but millions of us remain unconvinced.

These companies make the majority of their revenue from advertising, and advertisers are willing to pay more when they know exactly who their ads will be shown to. We’re expected to trust our private conversations with companies that don’t benefit from keeping our conversations private. Red flag, anyone?

“If you have something that you don’t want anyone to know, maybe you shouldn’t be doing it in the first place.” – Eric Schmidt, Google’s executive chairman and former CEO.

It’s not that we fear saying things that we don’t want anyone to know, it’s that we fear saying something without knowing who will hear it.

We want to be able to say something online without fearing that a future employer may see it and count it against us. We want to complain about the country we live in without fear of reprisal. We want to share pictures of our kids without wondering who else will see them. We want to share with only the people we choose to share with.

When we know a conversation is private, we’re more willing to share ourselves. It feels good to share who we are, to open up to the people we trust. When we don’t know who will hear us, we censor ourselves and hide the rough edges of who we are. But those rough edges help define us. It’s impossible to feel truly loved if you have to hide parts of who you are.

It’s time for us to say, “No, I won’t get over it. Privacy is important, and I won’t give it up.” Today’s software developers need to look at privacy the same way they’ve learned to look at security: it’s not an add-on or a feature that customers have to turn on, it’s something built-in that shouldn’t be turned off.

I hope more companies follow our lead and take the same approach to privacy that Glassboard has. I think the web is headed in the wrong direction, and the more that participate in trying to change that direction, the more likely it is to change.

From Windows to Android with Glassboard

Earlier this year I got an offer I couldn't refuse. Several friends and former co-workers of mine were forming a company named Sepia Labs, and they asked me to join them. They planned to create a mobile group sharing app, and they wanted me to develop the Android version.

I've been itching to get into mobile development for a long time, but I didn't even own an Android, let alone know how to develop for one. Yet there was no way I could turn down the chance to learn mobile development while working with people I know and respect.

So I joined Sepia Labs, and we immediately set out to design a different kind of mobile group sharing app, one that values privacy above all else. The end result is Glassboard, which we launched today for Android and iPhone, and will soon be available for Windows Phone 7. I'm really proud of what we accomplished with Glassboard, and I hope you'll give it a try (and after you get it, this post will help you get started).

Now, I can tell you that switching to Android wasn't easy after almost two decades of Windows development. I had to learn a new language (Java), a new IDE (Eclipse), a new platform (Android) and a new programming mindset (mobile) in a very short time. Oh, and just to make it harder, I decided to do it all on a Mac. I guess you could say I was looking for a challenge :)

And a challenge it definitely was.

The first challenge was trading my iPhone for an Android. I've used an iPhone for several years, and my new Android felt unpolished and geeky by comparison. But I slowly warmed to it, and now I love my Android so much that on the rare occasion I pick up my iPhone I curse it for not having a back button.

The second challenge was learning Java. My usual approach to learning new things is to just jump in and get my hands dirty, but I decided not to do that with Java. Instead, before I wrote any code I read a ton of books on the language (my favorites were this one and this one). I had Java books all over the place – on my desk, next to my bed, in my car, and in every bathroom of the house. I wanted to really understand the language before I used it so I could design Glassboard correctly (and not have to redesign it a dozen times as I learned more about Java). Surprisingly, I liked Java right away. It does feel a little too object-oriented sometimes, and it was hard getting used to garbage collection and the C-like syntax, but it made sense to me. It's a very well thought out programming language.

Next I had to figure my way around Eclipse so I could actually write some Java code. Like Nick Farina, I absolutely hated Eclipse at first. I despised its strange, overloaded user-interface. I made up new swear words as I stumbled around trying to decipher its overwhelming array of menu items. But I've definitely grown to appreciate Eclipse. It has some incredibly powerful features that I haven't seen elsewhere, and it rarely gets in my way – in fact, it actually helps me write better code. And funny thing is, when I work on FeedDemon now, I wish that Delphi had the features I've gotten used to in Eclipse.

I thought my biggest challenge would be switching to the mindset of a mobile developer, but that hasn't been nearly as hard as I expected. I've written for years about simplicity, killing features and doing away with options, all of which are requirements for mobile development. Mobile development forces you to focus on exactly what your software needs to do, and I really enjoy that.

But developing specifically for Android has been a huge challenge. There's an awful lot to learn – intents, activities, AsyncTasks, XML layouts, services, BroadcastReceivers and on and on and on. Once you wrap your head around everything it all makes sense and fits together well, but getting to that point doesn't come quickly. And as is always the case, the thing that takes the most time is learning your way around all the gotchas. If you're just getting started with Android development, be prepared to spend a lot of time on StackOverflow!

Of course, I can't write my first post about Android without mentioning its supposed "fragmentation" problem. It is a problem, but it's mostly blown out of proportion. Desktop developers have always had to create software that works across different OS versions, different devices and different screen sizes, so the fact that you have to do that on Android isn't a big deal. But it is a big deal when different Android devices handle things differently – video playback and recording, for example, are challenging due to device differences, and getting video streaming to work reliably across devices feels impossible (as Netflix discovered).

All in all, learning so much new stuff in such a short time has been both thrilling and exhausting. I'm finally doing mobile development, something I've wanted to do for years. But take it from me: if someone offers you a job that requires switching from Windows to Android development and learning it all in a few months, stock up on the caffeine – you're going to need it!

PS: Hopefully this post explains why it's been so long since there was a new build of FeedDemon. I am still working on FeedDemon, and a new release is already underway.

Some Customers Suck

After reading David Frampton's rant about the impact a small minority of mean-spirited customers has had on him, I wanted to send him an email saying that it'll get better.

But I couldn't do that, because it won't get better.  I started selling software on the web in 1995, and the problem of nasty customers has plagued me since day one.

Don't get me wrong: I've talked with enough other developers to know that I've had it easy compared to many of them.  The vast majority of my customers are great to deal with, even when they have a complaint.

But there's always that small fraction of customers that suck. 

They're used to dealing with companies that sell them crap and then ignore them, so they treat it as a rare opportunity to vent their frustrations when they find a company that actually has a real person answering questions.

They toss insults at you, threaten to bad-mouth you all over the web, post mean-spirited reviews on download sites, and demand IN ALL CAPS that you change your software to meet their needs RIGHT NOW OR ELSE.

When you try to help them, they just get worse.  And they do this even if they've never paid you for your work, and never plan to.

Being forced to deal with these miserable people is enough to make you want to stop providing support, but that's a mistake.  I've always believed that the key to creating great software is to talk with those who use it, to understand what they need and want from your product.  If you step away from support, your software will suffer.

You can, however, step away from bad customers.  If they have a valid complaint, sure, address it, and treat them with the same respect that you wish they'd show you.  But if they bad-mouth you over something very minor and demand that you reply immediately, either wait a little while before answering or just ignore them completely.  You're better off without each other.

The worst thing you can do is let these people ruin your day.  After all, it's not like they're making you look bad.  Think about it this way: if you go to a store and witness someone screaming at the cashier, who looks worse? Everyone knows the customer is being a jerk, and they feel sorry for the cashier.

I've been able to keep doing this for over 15 years by understanding that these people aren't just unhappy with me: they're unhappy in general.  You can't change that, and you can't let it change you.

Localized FeedDemon 4.0

If you upgraded to the new FeedDemon 4.0 and English isn't your primary language, then you'll be pleased to hear that Chinese, Czech, French, German, Italian, Russian, Slovak and Ukrainian language files are now freely available.

The simplest way to switch to a different language is to select Tools > Options > Language > Download Additional Languages from within FeedDemon 4.0, which takes you this page:

From there you can select the language file you wish to use, and FeedDemon will take care of downloading and installing it.

PS: These language files were created by customers who simply wanted FeedDemon to be available in their native language.  It's a tedious process creating these translations, so we owe a big "thank you" to those who spent their time working on them.

Browsers and RSS

Continuing where I left off yesterday, the latest round of "RSS is dead" articles is partly the result of this post by Kroc Camen which claims that RSS is in trouble because browser vendors are failing to make RSS usable.

While I don’t see this as any real threat to RSS, I do agree that browsers do a poor job handling RSS.  But I would argue that browsers shouldn’t try to be RSS readers, any more than they should try to be email clients.  I’m obviously biased here since I develop FeedDemon, but I’m far from the only one who doesn’t need their browser to be a full-fledged RSS reader. 

I might think otherwise if any major browser vendor was visionary enough to "bake" RSS reading into the entire browsing experience and make it an equal partner to reading HTML.  As Camen says:

Why do we go through the same daily routine of checking certain sites over and over again? Can’t our computers be more intelligent here? Isn’t the purpose of the computer / browser to save us time!? Why doesn’t the browser, when you open it, tell you how many new items there are, on what sites you commonly visit, without you having ever configured this?

That’s certainly a web browser I would use, but I don’t see it happening.  Browser vendors consider reading RSS to be too much of a niche activity to re-design their products around it.  (Aside: this is why I use FeedDemon as my primary browser – it’s a full-fledged web browser that has RSS baked into it.)

Since browser vendors are unlikely to substantially improve the RSS reading experience, I think they should drop it entirely, but at the same time they should make the benefits of RSS accessible to less tech-savvy users.  Browsers are being extolled as platforms these days, so how about making these platforms more helpful when dealing with different types of content?

Provide obvious RSS auto-discovery and perhaps basic RSS viewing, and make it easy to subscribe to feeds in an external RSS reader.  Just as clicking a mailto: link opens your email client, clicking a feed link/icon should open your RSS reader (regardless of whether it’s desktop- or web-based).

If the user doesn’t have an RSS reader, don’t simply show a cryptic error message that says there’s no associated application, or the MIME type isn’t recognized.  Provide some basic info about what RSS reading is.  Some browser vendors could go a step further and link to the RSS reader category in their app stores.

Browsers don’t need to provide image editing features just because they can display images, but they do need to make it easy to copy or save the images so they can be opened in whatever application you like.  Likewise, browsers don’t need to offer RSS reading features just because they can detect RSS – they just need to make people aware of RSS, and make it easy for them to use an RSS reader.

RSS: Dead, Dying or Pining for the Fjords?

I've tried to stay out of the whole "RSS is dead" thing.  Really, I have.  But just when I think people have stopped saying "RSS is dead," someone comes along and says it again, and everyone gets all worked up.

I mean, it's been over a year-and-a-half since Steve Gillmor's RSS is dead post.  If something really is pushing up the daisies, surely we wouldn't have to keep pronouncing it dead all the time?

In all fairness, when I read Gillmor's original piece I didn't think he meant RSS was dead.  That would be like saying "XML is dead" or "HTML is dead" – like RSS, these will be with us for a very long time because they're the plumbing behind so many critically important things.  Steve may be a little loopy (word has it this was caused by listening to "Revolution #9" during a bad acid trip), but he's not crazy enough to rip up the plumbing.

Instead, I read it as though he was saying that RSS readers are dead.  As in, products like FeedDemon.  And I can see his point.  Years ago we all hoped RSS readers would become mainstream, but that never happened.  They're too oriented towards power users, require too much work to ensure you keep getting stuff you're interested in, and don't provide the social aspects of Twitter and Facebook (which IMO are the offspring of RSS readers).

But while it's true that dedicated RSS readers like FeedDemon didn't find mainstream acceptance, that doesn't mean they're dead, dying or even wounded.  It just means their audience is smaller than it perhaps could've been.  We're still talking about an audience of millions of people – not enough for a large company to consider a decent target market, but more than enough to enable smaller companies with the right products to stay alive for years to come.

And I have to point out that while RSS readers may have a niche audience, that audience includes the writers and editors of many of the web sites and blogs you visit.  Yes, many of the people writing the latest crop of  "RSS is dead" articles are using an RSS reader to keep up with the discussion.  They don't really believe RSS is dead, but they do know that writing about it will bring more traffic to their sites.  Which to me is a pretty sure sign that RSS is alive and well.

Not an Option

It's hard to say no to your customers, but I'm getting a lot of practice at it.

You see, almost every day I say no when a customer asks me to add a feature to FeedDemon.  It's not that I don't want them to be happy – it's just that every feature I add to FeedDemon potentially makes it more complicated for every customer, so I have to shoot down features that I don't believe will be widely used.

Quite often, the customer will reply with, "well, why not just make it an option?"  Which of course makes sense when you're thinking about one little feature.  I mean, how could adding one measly checkbox tucked away in the program's settings make it more complicated?  But multiply that by the number of feature requests I get, and it becomes clear that making everything an option is, well, not an option.

I wasn't always this way.  Many years ago when I worked on HomeSite (and, to some extent, TopStyle), I'd say "yes!" to feature requests all the time.  If the feature wasn't one that a ton of people wanted, I'd just make it an option.  I thought this was great – and at first, it was.  Customers got new stuff all the time, and loved seeing their suggestions included in the product.  But fast forward a few years, and suddenly my software was an option-laden monstrosity.

In a misguided attempt to please everyone, I had added page after page of checkboxes to the options dialog.  Customers kept asking for options that already existed, or wondered where an option was that they knew was there but couldn't find in the checkbox maze.  Even worse, they'd inadvertently enable some option that changed the program's behavior, and then report that the software no longer worked like it was supposed to.  Which meant that when I received a bug report, I'd have to figure out which options might be involved in the bug, and then figure out which of those options the customer had enabled.

The other thing is, while it's easy to add an option, it's very hard to take it away.  If you add an option to your software, you'd better be prepared to keep it around for the life of the product unless you want customers coming after you with pitchforks and torches.

For example, in the first version of FeedDemon, I added a few options that made sense at the time, but later on weren't being used much and were complicating the development of new versions.  So in the first few beta versions of FeedDemon 4.0, I did away with some options that had existed for years.  To say this wasn't received well would be an understatement.  Customers who had become used to these options were up in arms, and said they'd never upgrade if the options weren't returned.  It's pretty frustrating for a developer to hear that all the work done to improve a product is overshadowed by the loss of a few options that probably shouldn't have been added in the first place.

So if you're a developer and you're working on a new piece of software, don't make my mistake of adding options, especially if you're doing so just to please a handful of power users.  In fact, see if you can avoid the need for a settings dialog at all.  You and your customers will be happier in the long run.

My Top 20 Minor Annoyances

If you've been on Facebook or Twitter for any length of time, chances are you're following at least one person who constantly complains about all the little things that annoy them. If they stub their toe, wake up with bad hair, or someone just looks at them funny, they immediately post about it.

In an effort to not become one of these people, I've decided to spout off my minor annoyances here. That way I can get them off my chest without bothering my Facebook friends. So, in no particular order, here they are:

  1. People who blow their nose in restaurants
  2. Lights that are controlled by more than one switch
  3. Wearing wet socks
  4. Dr. Phil
  5. "New" music which rips off classic rock
  6. Fitness fanatics who worry about eating too much at Thanksgiving and Christmas
  7. Fake eyebrows
  8. People who think you can't see them picking their nose because they're in their car
  9. Athletes who all-too-obviously thank god when they win a game
  10. Doorbells that play music
  11. Anyone who tries to cure your hiccups
  12. Sarah Palin
  13. TV commercials that are twice as loud as the show you're watching
  14. Walking down stairs and thinking there's another step when there isn't one
  15. Being woken up by the sound of your own snoring
  16. Food with an unreadable expiration date
  17. Slow elevators
  18. Waiting for a long time at a red light when there's no other traffic in sight
  19. People in an audience who loudly say "Shhhhh!" when everyone is supposed to be quiet
  20. Clogging up the toilet in someone else's house

Bonus: Geek that I am, I can't help but mention my top five geeky annoyances:

  1. Software that asks whether you really want to exit
  2. Constant Adobe Flash and Adobe Reader updates
  3. Anyone who acts superior because of their choice of operating system
  4. Video games that make you start the level over when you die
  5. Auto-correct that turns a technical term into a cuss word

Why I Decided to Charge for FeedDemon Again

By now, FeedDemon 4.0 is in the hands of thousands of customers, many of whom are disappointed to discover that it's no longer free (well, there is a free ad-supported version, but the full feature set is only available in the for-pay Pro version).

Explaining how this came to be requires some history, so bear with me here…

When FeedDemon became free back in 2008, I was still working for NewsGator, and the goal was to promote the NewsGator brand (especially the enterprise products) by getting consumer products like FeedDemon into the hands of as many people as possible.  I was among those who thought this was a good idea, and I'm sure it helped spread NewsGator's name.

But a year later it was decided that we still needed to generate revenue from FeedDemon, so we inserted non-intrusive ads which we hoped would earn a few dollars without pissing too many people off.  But of course, it did piss people off, especially those who purchased FeedDemon before it became free and were now faced with advertising (which is generally accepted on the web but not in desktop software).

Much to our surprise, there were also people who said they'd pay to get rid of the ads.  We hadn't planned for that, but it's hard to ignore customers demanding that they be able to pay you, so we scrambled to come out with a version that enabled purchasing a serial number to get rid of the ads.

Then just over a year ago, I was let go from NewsGator.  For the record, it was the right decision, and there are absolutely no bad feelings between myself and NewsGator.  They treated me very well while I was there, and I'm still friends with my co-workers.

But that left me in a tight spot: I had to pay the bills with whatever money FeedDemon generated, and as popular as FeedDemon is, it's not popular enough to bring in enough cash through ads alone.  And very few people were paying just to get rid of the ads (can you blame them?).

For a year I kept FeedDemon free, and I started work on FeedDemon 4.0 in the hopes I could find a way to keep it free yet still pay the bills.  But eventually it was clear that the only way to keep FeedDemon (and myself) going was to start charging for it again, and I figured the best way to do that was to come out with a free ad-supported Lite version with fewer features, along with a for-pay Pro version that had all the features and no ads.  That way there would still be a free version, which I knew had to exist, while at the same time there would be a way I could charge for a more feature-rich version.

Of course, I realize many of you aren't happy about this, and it's not just because you expect everything for free – more likely you're tired of the constant shift in FeedDemon's business model (believe me, I'm tired of it, too!).  I really am sorry for all the changes.  Honestly, in retrospect making FeedDemon free wasn't a great idea.  It would've been far better to have a free Lite version and a for-pay Pro version from the start and to have stuck with that model.

Given all these changes, I'm flattered that so many of you have stuck with FeedDemon over the years, and I thank you for it.  Despite the naysayers, I continue to believe that RSS has a bright future, and I plan to keep working on FeedDemon for a long time to come.

Would You Eat a Retarded Dog?

Just over a year ago, I became a vegetarian.  This was quite a shock to my friends and family, since they were accustomed to seeing me wolf down steaks, roast beef sandwiches, and more meat-laden pizzas than I care to admit.  To them, me choosing to become a vegetarian seemed as unlikely as Hugh Hefner choosing to become celibate.

The turning point for me was a conversation with my kids after school one day.  They’d learned about slavery in America, and were appalled that so many people let it happen.  They couldn’t believe that an entire country could be so cruel.  I told them that they were right, and that it’s difficult to understand how a nation could let something so horrific continue for so long.  But I also told them that it’s easy to look back in history and condemn those who allowed cruelty to exist – what’s hard is to see what cruelty happens today that we accept as normal.

The moment I said that, I immediately thought about how we treat animals.  Deep down I’ve always known – as we all do – that factory-farming requires horrible abuse to animals, but I never let the idea take hold because, well, meat just tastes so damn good.  It’s hard to feel sympathy for a cow when a juicy steak is staring at you.

If I had been talking to someone other than my kids, I would’ve ignored this unexpected concern for animals.  But talking with your own children demands a level of honesty that you can’t ignore, and I couldn’t let go of the fact that animal cruelty popped into my head when I thought about what we do today that future generations will condemn.

Over the next few days I researched how factory-farmed meat is produced, and what I found was enough to turn me off meat forever.  I’m not going to be one of those recently-converted vegetarians that tries to shock you with grotesque images of animal abuse, but I will say that there’s so much more to it than how we treat animals.  The reality of how 50 billion animals a year live and die before reaching our tables should make us worry about our own health, regardless of whether we value the lives of those creatures.

For the most part, I’ve kept my vegetarianism to myself (well, until now, anyway).  I don’t expect anyone to cater to my meatless ways when they invite me to a party, nor do I act holier-than-thou when friends eat meat in front of me.  It’s a personal choice for me, not a crusade (and after all, I’ve eaten enough meat in my lifetime to fill several farm yards).  But when close friends ask why I gave up meat, I’m happy to talk about it.  At some point I usually ask why they don’t eat dogs, and they usually respond that it’s because dogs are smarter than the animals they eat.  At which point I ask, "So does that mean you’d eat a retarded dog?," which unfortunately seems to stop the conversation.

PS: If beer and brownies are ever classified as meat, I’m screwed.