Idea: “Messages For Me”

This is an old school web 1.0 idea I had over the weekend. It’s very simple: let’s say you want to leave a message for someone, anonymously or not. You go into the website, put in the person’s email address and the message. The person doesn’t receive any notification about this, and can only see his/her messages if they go to the website and enter their email address. That’s it.

What is it good for? With all the connectivity among people and now that every website has “social” features, there’s no way for a simple “message in a bottle” kind of a gesture in today’s Internet.

Like I said… old school.

Dindy Is Now Free

After over a year of selling Dindy, without much success, I finally made it free. In that year 366 people downloaded Dindy, 105 (28%) kept it on their device, 74 cancelled their order (to get the refund) and 187 paid for it and later on uninstalled it without getting their money back.

Dindy’s rating in the market is 4.26/5, which is pretty good. I hope it will keep this rating now that it’s free. Well, first it has to be downloaded :) I want to see what will come out of it. If it will be popular, I’ll add the option to donate money.

Leaving IBM

I’ve decided to leave IBM. After 2 years in Diligent Technologies and over 2.5 years as an IBMer following Diligent’s acquisition, and considering I wasn’t pursuing an IBM career that will last many years to come, it was definitely time for me to go.

I’ll be an IBMer until January 31st, 2011. In Diligent-IBM I worked with many great and smart people. As part of my work on ProtecTIER, Diligent-IBM’s award winning Virtual Tape Library product, I learned a lot about high-performance, high-availability systems programming in Linux. My main contributions were to the cluster version of the product and most recently to ProtecTIER’s OpenStorage (OST) implementation. I believe ProtecTIER is a great product that can bring tremendous value to customers and I’m proud to have been part of its development.

My next step is a joint project with a good friend. A garage start-up of sorts. I can’t say much about it, only that while it’s not the greatest idea in the whole wide world, I think it can be a successful venture. I expect to be unemployed for about a year :)

Wish me luck.

My Home WiFi Is No Longer Free

Ever since I had a wireless router I’ve been sharing my WiFi network with anyone who could find it. It had a web-only restriction, but that’s just because I didn’t want anyone using file sharing and using up all the bandwidth. Yesterday, however, I password protected and encrypted my home WiFi network.

The reason is the latest unveiling of Firesheep, a tool for HTTP session hijacking that works over open WiFi networks. The only protection against Firesheep is using secure HTTP (https://) with every website, but I don’t think I’m that meticulous to remember this all the time. And yes, I know about the extensions that help with that.

On the other hand, it’s probably a better idea to start using https everywhere just to be on the safe side.

p.s.

Sorry, neighbors.

Dindy Update

It’s been a while since I posted an update regarding Dindy. Dindy has been slowly evolving since its first release 9 months ago. It is now a relatively complete profile management solution for Android-based phones. It can be used for quite a few purposes, including:

  • Simple profile manager for profiles like “silent” or “vibrate”.
  • Auto-away SMS responder.
  • Unique urgent call handling by sending an SMS message to the caller and waking up the phone if the same person calls again.

Other nice features are:

  • Profile time limit.
  • Profile widgets for one-click activation.
  • Profile shortcuts for activation using external apps.
  • Locale plugin.

I’m pretty happy with Dindy’s current feature list and it seems as though the users are happy too: Dindy now has a rating of 4.46 out of 5 in the app market. Out of 318 installations, 159 (50%) of them are active. That’s actually a little disappointing but, since people aren’t giving Dindy bad ratings lately, I can only assume that it worked fine but wasn’t what they were looking for.

I dropped Dindy’s price to 0.50 British Pounds. I wanted to see how it would affect sales and I believe what happened as a result was that people who didn’t find Dindy useful didn’t hurry to uninstall it and get the refund. But that’s just a guess.

The most enjoyable part of writing Dindy is the interaction with users. It’s a great feeling to know someone uses Dindy and even has ideas on how to improve it. That’s why I’m still considering making Dindy free. Like I said before, I wish there was a way to do app promotions in the app market and give Dindy away for free just for a week. Until that’s possible I will probably have Dindy priced the same as now.

Should I Give Away Dindy For Free?

Dindy’s sales have been dropping lately. I believe the reason is that it got some bad reviews and the current rating on the app market (3.93/5). Being unable to test Dindy on all the different Android phones prevents me from knowing whether claims of it not working are real or a misunderstanding on the users’ end. After all, this app isn’t trivial.

What I do know is that I have some very satisfied customers on many different phones. Also, the app works great on all the Android emulator versions. Since phones don’t run the vanilla Android versions as the emulators run, this means I can’t be sure that successful testing on the emulator means correct operation on phones.

The Android app market has a lot of different phone silencer apps. Non of them has Dindy’s functionality, but in a way they are all competitors. A lot of them are free, too. I already tried dropping Dindy’s price to the minimum, which didn’t seem to help.

What’s really missing on the app market is an option to promote an app by giving it away for a limited time. Once you set the app as free on the Android app market it stays free forever. That’s a shame because I would have tried a promotional giveaway, had such an option existed.

People have suggested to give out a crippled (lite) version of the app. I’m not a big fan of this idea because what happens on the market is that users give lite version of apps bad reviews with comments like “add [insert paid feature here] to the lite version and I’ll give you 5 starts.” Kind of blackmailing the developer. When giving away a lite version you really need to think about the right mix of features in the lite version that will attract the most users to the paid version.

The way I see it I have two options:

  • Invest in marketing – advertise Dindy to get recognition of the app and create a better looking website.
  • Give Dindy away for free.

I’m not big on marketing and I need to think what’s Dindy’s sales potential, but how can I know that? I’m really tempted to give it away for free. If there was a way to back out of that I would have already done it.

Creating A Transparent Activity In Android

UPDATE: This answer in Stack Overflow is more complete and correct. You better use that instead of what appears below.

If you want to create a transparent activity in your Android app, add the following style In your res/values/styles.xml file (if you don’t have one, create it.) Here’s a complete file:

<?xml version="1.0" encoding="utf-8"?>
<resources>
  <style name="Theme.Transparent" parent="android:Theme">
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowBackground">@color/transparent</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:backgroundDimEnabled">false</item>
  </style>
</resources>

(the value @color/transparent is the color value #00000000)

Then apply the style to your activity, for example:
<activity android:name=".SampleActivity" android:theme="@style/Theme.Transparent">
...
</activity>

Thanks to Mathias DESLOGES (aka FreakDev) for his posts on this thread in anddev.org.

Shameless plug: If you’re an Android user, check out my app, Dindy.

My Two Rules For Writing Software

I’ve been writing software for over a decade now and I think I’ve established a minimal, yet very effective, set of rules for writing software:

Amit’s rules for writing software

  1. Make the users happy.
  2. Allow for known future modifications.

Doesn’t seem like much, does it? But, much like code, the brevity of these rules says nothing about what they encapsulate.

The first rule requires you to make the users happy. And by “happy” I mean make the users think your software is worth the time, money and effort they invested in order to use it. Some things are hidden in this rule – shipping on time, for example, is something that makes users happy. But sometimes achieving this goal requires you to make compromises and write code that isn’t according to your standards. Maybe you had to make an ugly shortcut, duplicate code, a hack, whatever. As long as the users are happy it’s OK to cut corners but…

The second rule says you should allow for known future modifications. That’s where all of your education, experience and religious pursuit of perfect code come into play. To make software future-proof you have to write good software, which practically disallows the aforementioned hacks from rule #1.

A delicate balance exists between the rules. Making users happy will presumably allow for a great first version but you might end up with unmaintainable software. On the other hand, write code without compromise and you may never ship. If you manage to write non-compromising software that your users are happy with, kudos to you.

I never could.

Dindy’s (Small) Sales Boost, User Reviews

Ah, a moment of pride. A day after posting Dindy’s slow sales progress on my previous post 13 new users bought it in just 2 days, increasing sales by almost 50%. At first I thought it was because I posted an update to the market but then I realized that, again, someone gave Dindy a positive rating and/or review. So the current tally is 45 total installations with 33 active installs (73% retention rate.)

Dindy now has five 5-star ratings (the highest rating for an app) and so it has a perfect 5-star score in the market. The reviews are also very positive:

Miguel:
It works, so far so good. Not for everyone. Helpful for students, busy people, productive folks and for those that just wanna sleep.

This is the first reviewer that gave Dindy its first sales boost. Miguel was very kind to positively review Dindy the day after I posted about Dindy in a forum. I thanked him for that.

Jason:
I really like this app and the Dev is super quick with a response to feedback. Multiple profiles can be used and its simple to set up!

Jason has contacted me with regards to an issue he had with Dindy on his phone and he refers to the fact that I answered his email as soon as I saw his message. It’s very nice of him to give Dindy (and me) this review.

corina:
Wonderful! Works like a charm!

Thanks! Hopefully I’ll be able to continue providing people with software they’re happy with, which has been my goal to begin with.

Dindy Statistics After Two Months

I haven’t made any further attempts to market Dindy and the sales have dropped a little bit – there’s a new user every 3-4 days. Google’s publisher statistics tell me that 29 people have downloaded Dindy and there are 18 active installs, which account for 62% of the downloads. From what I read this is a pretty normal retention rate.

These numbers provided by Google do not include two users whose payment has been declined and one person I refunded. I wonder what happens when your payment is declined – do you get to keep the application installed? If not, how is this enforced?

T-Mobile customers in the US can now purchase applications using their monthly bill. It remains to be seen whether this will increase the general sales of apps, and specifically Dindy’s.