Improving Apps

Open Source Way

Those needing some hints at making your open source project succeed should check out The Open Source Way. Great resource!

Thanks for visiting! Any suggestions for content that would be helpful to you? Contact me.



Ready for One User

A while ago, I saw an interesting development idea I thought I’d pass on. Work on KOffice is proceeding by targeting a specific user.

Target the application for one specific user and make it perfect for him/her. Then hope that it’s good enough for other users as well.

Honestly, I don’t know how well it will work. There’s the potential to cause problems by being so targeted that it’s unusable by anyone else. :) But I have to say that this makes a lot of sense. Most open source projects, if they were just stable enough for any user to use, they’d come a long way. They may even come up with a couple features no one has thought of yet, but I doubt it. I suspect that they’ll mostly be checking off features they’re used to using elsewhere. As I’ve mentioned before, you don’t get many switchers by just matching features. But, if they can check off some important features and add a game-changing feature that could work.



Why People Switch

I’ve already noted why the open source or free angle isn’t as helpful at getting people to switch. As Seth Godin says:

The chances that you can top a trusted provider on the very thing the provider is trusted for are slim indeed.

Instead, you gain converts by winning at something the existing provider didn’t think was so important.

This is why if you show someone a checklist of features their proprietary software has and show that the open source alternative has all of them, they probably will not be swayed. There is a cost to switching, and if they already have the proprietary one that does all those things, why switch. In fact, you have to show them the features they don’t have.

Wow Factor

It might not be something important. I’ve mentioned Disco before, a disc burning app for Mac OS X. Killer feature? Smoke blows around on your screen as it burns the disc.

With Disco we tried pushing the boundaries of interface, usability, and utter functional simplicity. Well, once you realize that Disco is emitting real time smoke as you burn, we start redefining the boundaries of progress indication. You can even blow into your microphone and the smoke will react accordingly.

Useful? Hardly. But I bought it. And I couldn’t wait to tell others about it. I didn’t lead off with things it actually did- I led off with the smoke. Don’t get me wrong- the minimalist UI was fun and easy to use. But the smoke- man that’s cool.

Don’t provide an alternative- provide a better product. What has your app got that they don’t?



Switching to KDE

I know. I’ve railed against KDE for a long time. And yet here we are. Leaving GNOME behind.

Why

To be frank, part of it I’m sure is that I’m kind of restless with technology. And KDE has a lot that has impressed me. Not just slick appearance- maybe even too slick- but there is a focus in KDE that feels lacking in GNOME. I think part of that is that with so many of the major Linux distributions- Red Hat, Ubuntu, etc.- standardized on GNOME, there’s lots of development but it’s fragmented. I like the ideas behind GNOME Shell, but I don’t understand how that justifies a 3.0 label. As far as I can tell, the code that makes up the rest of GNOME will still just making baby step improvements. That’s fine. But the KDE 4 evolution to me says a lot about KDE, their ambition, and their potential. They are moving. There is a solid foundation- still a little buggy for me, but pretty solid. GNOME by comparison seems increasingly fragmented with different subsystems and architectures leaking out the sides. Do not misunderstand. I love GNOME and I love using GNOME. But KDE is what I have chosen now. I think it’s the future.

How

The great thing, one of them anyway, about using openSUSE is that it has fantastic distributions of both GNOME and KDE software. So it was just a matter of installing what I wanted. It will take a bit to get used to some apps, but I’ve been surprised how easy it has been to switch. Even KMail had an ‘import from Evolution’ option that made that shockingly easy. DigiKam read in my photos and Amarok is playing my music.

Should You Switch?

You don’t have to. Look, I think there is a lot to like about KDE, but it’s not perfect. Points I’ve made about it in the past I think are still valid- there are too many options, an inability to make choices for users. And yet, for me and my productivity, those are great, powerful features that make my workflow better. Does that mean we will lose users that can’t think? Yes. Luckily, most people can think- what I’ve found is that many just aren’t willing to- they have something that works ok so why would they switch? There has to be something that makes not switching painful.

What It Means for Tuxrocket

It is my site, so if you’re using GNOME, I apologize, but I will be moving things to a KDE focus. What I present here needs to be what I feel deeply or I will not make time for it in my life.



Let’s Make Our Name Sillier: KDE Chooses Not to Rebrand

You may have already heard (and here, here, here, and the announcement here) that KDE just changed their name to KDE. That’s right. What’s that? You don’t see the difference between KDE and KDE? Isn’t it obvious? Now it’s not an acronym. No, I know what you’re thinking, when you have something in all caps, by convention that means it’s an acronym- it stands for something. But KDE no longer stands for something- it’s just… KDE. My favorite part:

The expanded term “K Desktop Environment” has become ambiguous and obsolete, probably even misleading. Settling on “KDE” as a self-contained term makes it clear that we have made the shift from a limited set of software components to a community providing an ecosystem of free software applications and platforms for the end user on the desktop, mobile devices, and more.

Definitely clearer. I know I’ll be able to explain it to my mom now.

What’s really wrong with this? I mean beside naming yourself in a way that suggests your brand is an acronym even though it’s not.

Rebranding is a hard decision and I respect anyone that makes a change intended to make their product more obvious to the casual observer. I think there are a lot of open source projects that would do well to rename their project. To me, though the KDE community doesn’t deserve any notice, let alone applause, for this… decision.

If the community surrounding the GNOME desktop renamed themselves GNOME (no longer an acronym) I would be equally disdainful. But at least their acronym is also a word. Whether an acronym or not, you always have to spell out K-D-E to say KDE.

THIS WAS YOUR CHANCE!

Want to make it clear what you are or what you provide? Pick a catchy name that says something -anything- about what you’re providing so your explanation just clarifies your focus. I am not saying there’s not some good decisions and points in the repositioning document- a good read for anyone mulling a rebranding of their project. Just don’t do what they did.

At least they’re just ruining it for themselves and no one else, like app developers that develop using the KDE platform.

Oh, wait…

Software created by the KDE community is branded on its own under the umbrella brand of KDE. Use of “KDE” in the product name is optional and depending on the context. Especially for applications that are not well known as KDE applications and are not easily identified as such by a “K” prefix in their name, it is recommended to use “KDE” in the product name.

Well, at least it’s optional. One example on the announcement page mentions KDE Dolphin. Now, Dolphin as the name of a file manager (does the default file manager need a name?) is pretty questionable. I don’t see it. But KDE Dolphin? Seriously?



Making the Pitch

Do yourself a favor and go read Joe ‘Zonker’ Brockmeier’s brilliant article on what your attack vector should be in convincing users to use your FOSS app. At least, that’s what it comes down to. He says that there’s a mentality among the FOSS community to either lead with, or I would say, rely wholly on the fact that the app is not just free but Free Software. As if that factor alone should make any normal person, drop anything else and switch.

Unfortunately, real, normal people are mostly ignorant of the holy war that is the FOSS movement. In fact, I bet most people, if they became aware of it, would think it odd. Odd, first because they didn’t realize that there would or should be ethics surrounding the creation of computer software. Second, odd that anyone would be so partisan about it.

A normal user should be thought of in more practical terms. To rationally convince someone, you would need to show that

  • Your app can do everything the app they’re already using can do
  • Your app can do some additional things that will make their life easier

Not Convinced?

Not convinced that Free isn’t what you should lead off with? Let’s look at some ‘successful’ open source projects. I’ll go with Firefox and OpenOffice. For good measure I’ll throw in some other great apps like Songbird and Miro. I think these haven’t made it yet, perhaps, but are well-poised for huge success.

Firefox

Firefox Website
A simple search shows that nowhere on the http://getfirefox.com website does it say Open Source. In fact, there’s a curious link about organic software. It says Free only once, in the phrase “Free Download”. Any shareware site could say the same. Lots of stuff on what Firefox can do. There’s emphasis on speed and safety- things Internet users want.

OpenOffice

OpenOffice Website
Does anyone else think it’s stupid how .org is part of the product name? When you write “Download OpenOffice.org” does that make you dumber since they already did or they couldn’t see the page? I digress.

OpenOffice leads off with the faint tagline “The Free and Open Productivity Suite”. Aside from that, the only free is again in conjunction with the download being free. In general, there’s not a lot on their homepage that inspires either, so…

Songbird

Songbird Website
No Free. No Open Source. Features are the name of the game.

Miro

Miro Website
Open Source halfway down and again at the bottom of the page. No rant on why it should be. Three mentions of Free- once in regards to it being 100% free (in small type) and the other two mentions being about the content you can watch with it.

Zonker says it like this:

Logic leads to conclusions, but emotions lead to actions. You can make the logical argument about Software Freedom until the proverbial cows (or gnus…) come home, but if people aren’t buying it emotionally, they’ll stick with their existing stuff.

Be Unforgettable

So what is it about your app that would make someone want to use it? If it has achieved feature parity with the commercial competition, that’s great but it’s not enough. The $0 price tag might make someone take a look. But the thing that will make them download it and switch to it immediately is if it covers most of what they need and has some additional benefit that makes your app unforgettable.

In regards to your marketing strategy, instead of a dogged reliance to FOSS dogma, Zonker writes:

  • Introduce them to the project
  • Explain the benefits of the project, including Freedom
  • Educate them on how to switch

So in your bughunting and coding, don’t forget- how can I knock their socks off? What’s the thing I could list or have a demo of on my website that would just drive people insane with jealousy.



New Name and Direction

I’m excited to announce that I’m refocusing on improving the Linux (and GNOME in particular) experience and to that end we’re changing a few little things like our domain name. After a lot of thought and crossed-out (taken) ideas, I’ve settled on tuxrocket.com, which has a lot of meaningful cues.

  1. Tux could be short for tuxedo, as in dressing up
  2. Tux is the name of the official Linux penguin mascot
  3. Boosting Linux is the goal
  4. There’s UX in Tux- User Experience
  5. How can I say no to a rocket in the name?

There’s nothing wrong with the eazely.com name, but it’s too far from where I want to drive this. I set out to show how easy it is, but in truth, many things about Linux can be tricky. I suspect that part of it is real and the other part is my incessant messing with the operating system, but anyway…

My hope is that I can play a small part in helping to grow and polish Linux apps so that as my children grow up it will be ready for them and for your children too.



A Quality Website: Great Typography

I love this article- what does quality feel like online? Take a minute and go to your app’s website. And ask yourself, does it scream quality?

Long ago, as a linux user with Red Hat 7 I quickly developed a quick way to see if an app I was interested in trying was well-developed or not. I’d find their public website and take a look at that. My reasoning was not simply “I’m a web guy and if you’re not I won’t use your app”. I just figured that if you have time to make your website nice, your app was going great. I know, not very scientific. But look around. The ‘big-time’ apps that are winning have nice sites. Ok, nice is very subjective. But they have ‘serious’ sites. Time was spent making the site look good. If you have time to polish that, it tells me your app is also pretty polished. So I’ll at least consider using your app.

In the aforementioned article, Chris Mayfield talks about:

  1. Sticky Stories
  2. Great Typography
  3. Humanistic Experience
  4. Intuitive Interactions
  5. Empathy for Your Customer

I thought I’d touch on #2 today. Great Typography. (That means the use of font styles, sizes, and spacing around said fonts.) The article quotes Jared Christensen who says:

Nothing says quality like a Web page that treats type like a first-class citizen.

I believe that. Now you may laugh. But this isn’t Linux app development. This is customer experience. You make it look pretty. They like. Now you may not get fonts. You may not know a serif from a tilde, but it’s not that hard to learn.

If you’re an avid Microsoft hater you’ll be horrified to learn that you should design websites to target their Core Fonts for the Web: Andale Mono, Arial, Comic Sans MS, Courier New, Georgia, Impact, Times New Roman, Trebuchet MS, and Verdana. I will leave Webdings off that list completely. This isn’t to say all of these would be great for your site. Comic Sans MS in particular should just be blocked by browsers so that no web design is harmed by its use. The reason these are the usual suspects is because they’re on all the Windows and Macs out there. And I’m guessing a good chunk of Linux users too. Since you can count on most people having these, it’s a cinch- make use of them. They’re not stellar, but they’re ok.

The latest browsers- all of the main ones on Linux in fact- support the @font-face CSS property, which allows you to put a font on your server and have your site use that font even on somebody’s computer that doesn’t have that font. The main drawback, aside from proprietary font licensing restrictions, is that the whole font has to be downloaded from your site just like an image for it to render so it can slow things down. Another similar idea is cufón which is a cross-browser way that uses Javascript to rewrite ‘normal’ text in a font of your choice.

Below are some great resources for fonts you can use online. Aside from any political feelings you may have on using fonts that are 100% free. Some methods of embedding, like @font-face and cufón, are still kind of murky (or downright illegal) in the legal department, so make sure the fonts you use for embedding, if you do that, can legally be used in that way. Here are some notes on ‘open source’ fonts if you’re interested.

Some fonts, like Bitstream Vera and the Liberation font family, were created specifically for the open source community and are completely usable. At least right now, Liberation Sans is being used on my site here via cufón.

Go ahead- make your fonts beautiful!



Does Your Software Know Who’s Using It?

Seth Godin says:

The people who make desktop software are making themselves obsolete. When you start developing on the web, your default is to be smart, to interact and to be open (with other software and with your users). Desktop software (like Word) is insanely unaware of what I do, why I do it and who I do it with. Right now, the desktop folks have the momentum of the incumbent. Not for long. Time to hurry.

As a web developer, I know that there are numerous technologies out there that can make the web feel more and more like a desktop app- some like Adobe’s AIR and Appcelerant’s Titanium provide an actual desktop app that use web markup and coding to create a desktop application. That’s fine- but I don’t subscribe to the new ‘Web is the OS’ movement. I work on my desktop and there is a real difference between the two. At the simplest, my desktop is usable no matter what happens online. If a website I use goes out of business, gets shut down, decides they don’t like me anymore, etc., I’m sunk. I can’t use that anymore. And anything ‘saved’ on their sites is just gone.

But I digress. Seth is right in that it’s odd that apps I use on my own computer know me less than a lot of websites I use. One reason for that may be that on a website, you try to customize the experience for user because you want something- more users or more money. So the data and personalization goal is to drive revenue. You are hoping that if you create a great experience the user will continue using the app.

A desktop app is either:

  • Free : you’ll never get any revenue for it
  • Shareware : the user has a short time to decide to pay or not. Most of the time they will not have enough time to put enough data in for it to show whether it will personalize things or not.
  • Commercial : the user has already given you money. There may be hope that they will upgrade when it’s time, but those upgrades are usually driven by a need for a new feature- not because the app is so fun to use or personal for the user.

But a web app usually has a free model to attract eyeballs or a monthly payment system. Everything depends on people coming back while a desktop app developer may not care whether a paying customer ever uses their app at all.

Why should your app be different?

If you’re making a free, open source app, that changes more than just the initial ‘price’- your upgrade model is different too. As long as your app is useful, there’s nothing to stop users from getting the latest version. If they like what they’ve seen so far, why wouldn’t they upgrade? If the app you’ve created gives them the personal experience that just makes their whole desktop come alive for them, they’re going to talk about it with those they know. They’re going to start talking about you.

When they do that, you’ll have created a reason not just to use your app, you’ll be making the whole Linux community a better place because your app is there. Face it: Apps drive adoption. A stronger Linux community will depend not on the kernel but on the apps that are available to users. Make yours personal.

Two Goals For Your App

  1. Keep track of what users do and when they do it. One of the things Seth mentions is his contact list and how it would be nice to sort that based on when they were used or maybe the frequency of how often they are contacted. To do either of those your app needs to save data on how often and when contact is made. Store what actions are taken, who they involve, how many times they happen, when the last one was, when the first one was.
  2. Alter your app’s behavior to take advantage of the data. Offer new sortable columns if that applies. Highlight certain things differently based on age. If you see certain things happening on a schedule, have your app offer to do it automatically or create a toolbar button to easily perform that action. Making an app isn’t about collecting data- it’s about applying it. Every screen and button in your app should be aware of who is using the app.


A Tale of Two Desktops

There are two real desktop environments for Linux: KDE and GNOME. Yes XFCE and others, I’m completely leaving you out. There are always people that defy convention or want to try something out there. I love BeOS and Haiku but I doubt I will ever push it as a viable option.

Having more than one desktop environment is stupid. It stems from KDE starting out with the QT framework which was not open source. That is why GNOME started. But QT long ago changed licenses and now there’s no “this one is more open” element of the debate. What has changed is that GNOME is completely dominant. I program for neither so I can’t speak to how easy one is over the other. But in general, industry has backed GNOME. I think that stems from the aforementioned open/closed dynamic that used to exist. Companies backed the more open one and gradually that made that an easier and easier choice because of so much investment in it. I think there was more of a push to get GNOME “business-ready” with usability work too.

Up till about a month ago, I would have said that KDE should be scrapped. I have always preferred GNOME. I have even have a Ximian hat. I am not one who thinks that Linux needs choices within it. I think Linux is the choice. It shouldn’t be the first choice in a gauntlet of other important decisions. That’s why distros have default setups instead of asking users to choose every single app they want to use. It’s crazy! Then there’s our community’s most precious resource: developer time. For every duplication that exists between apps we lose time that we could have spent making something new and wonderful, or refining what we had. Example: GTK engines for GNOME. That’s what draws the buttons and widgets you see in GNOME apps. Why are there so many engines? I don’t mean themes (don’t get me started), but the engines- I have about 10 installed! That’s 10 projects, who knows how many developers, that are duplicating what’s been done. Maybe pruning a bit, adding on a bit. But primarily duplicating.

In a project as huge as a desktop environment, the duplication is staggering. Underlying services, APIs, those little apps no one would ever write except as part of a desktop environment. So instead of having two desktops- why not just have one? The problem is that there’s no common base code there. You’d have one environment ‘win’ and the other have to rewrite apps if they wanted to integrate. And let’s face it, no developer that I know would just say “You’re right, that app is better so I’ll stop working on mine.” So my hope for a GNOME-KDE wedding seem hopeless. So barring that I want one of them to just go away. :) Since I’m a GNOME user, naturally I’d prefer that KDE went away.

However, I installed KDE 4.3 and really liked it. Not loved I think. But I really liked it. Enough that I’ve been using it for several days now. In an effort to clear it up in my own mind, I’m going to see if I can compare some things about the two- things that really matter:

Point GNOME KDE
Name Gnome is fine. It’s people that insist on pronouncing it GUH-nome that I have a problem with. That’s stupid.Yes, the G stands for GNU which is an acronym for GNUs Not Unix. Why the emphasis? The best acronyms are the ones you can just say. And doesn’t GNOME run on Unix? It could be that I just hate the letter K. But I hate the name KDE and the K everywhere. I think my trial only succeeded because in openSUSE the K menu in the corner has the openSUSE geeko on it instead. Yes, rebranding’s a nightmare. But that isn’t a name!
Core Programming Language C (I would be embarassed to be coding with something this old) C++ (Really nothing to brag about here)
Polish Reasonable, but focused on being simple and easy to use. Obviously various theme combinations can make it fairly slick. While GNOME has reasonable polish, KDE has polish oozing out of the screen. As a former Mac user, I liked that. I have no desire to skin- KDE looks excellent as-is. Window movements, alerts, everything shows a degree of thought not seen in GNOME.
Icons Good consistent icons based on the Tango icon project or everywhere. They’re simple, but beautiful in the high-resolutions when available. Great in smaller sizes. Beautiful icons but they don’t seem to downgrade the detail for smaller sizes. I don’t need a tiny hi-res icon for the configure button! Smaller icons should show less detail. Kind of the opposite problem from GNOME.
Apps A plethora of apps and for me personally, all the apps I use are GNOME apps. Integration is often lacking and it seems to be more of a loose confederation of apps living in the same neighborhood. While I know there are lots of KDE apps, I like that there seems to be a core group of apps that are standard. There seems to be a little bit more integration and intentionality in what KDE does. A tightly-knit group of apps.
Usability GNOME is very easy to use, but having been a long-time GNOME users I don’t think I’m objective enough to score this. But GNOME is simple and works “as expected” I am an expert computer user so it’s hard for me to judge, but to me KDE is first and foremost configurable but with that changeability lies problems. There are just too many options. I prefer the GNOME (and Apple) way of hiding a lot of options in configuration files. Power users can find them, but they’re not in your face.
Distribution Default Red Hat, Novell, Ubuntu openSUSE (now), Mandriva
Speed I used to say GNOME was faster but I think they’ve bulked up? The GNOME philosophy is more load-as-needed which means it can load quicker. KDE is more monolithic with a slower startup for all the underlying pieces to load and stand in readiness for when you need them.

And does anyone else see a KDE/Europe, GNOME/Elsewhere slant to this debate?

I want to recognize and congratulate Back in Time and any other app that go to the trouble of making both a KDE and GNOME front end for their app. We shouldn’t need to do that. Again, it’s a waste of resources. But thank you.

For me, I’m still a GNOME user. I really like what I see in KDE, but I will be working for ways to improve GNOME. I see it as not just a frontrunner but the right direction for Linux to become mainstream. But I will not seek KDE’s destruction. Power users can and maybe should use it. At the least it’s valuable as an option, or even a target. GNOME should be as cool but it shouldn’t sacrifice usability to get there. I wish the two would work harder to integrate so that if you’re running one, the apps from the other are skinned well.



Improving Apps: Some hints, tips, and thoughts on marketing an app for Linux.

More

Pure Linux: How I use Linux 100% of the time.

More