Summary of changes

Update 1.5 contains the following improvements:

Below you can find more extensive description…

ChartFlow – navigable pie charts for reports (full version only)

200909071242.jpg

Pie charts for reports can be displayed by tapping on the top-left button or by rotating iPhone/iPod to landscape position on Reports view. You can go back to reports table by changing device orientation to portrait mode. Charts represent times in the same way as you have them configured for reports table (against, interval, total time, parent).

200909071243.jpg

So you can go back and forth just by rotating your iPhone/iPod. But I’ve added the chart button for the sake of discoverability. To avoid angry emails (”You promised pie charts! Well, where the frig are they?!!!”) and for users who don’t really have time to check what’s new in the latest update :) . The spot was free anyway, so why not use it.

But the chart itself is not all. You can go to chart for previous/next interval by swiping right and left. You can also switch between daily/weekly and monthly modes by swiping up and down. And when you go back to Reports table, it’s in sync with your last chart. Cool, isn’t it :) ?

For those who don’t have time to read silly blogs, there are instructions under the ‘i’ button.

200909071244.jpg

Why pie charts? It wasn’t the most requested feature, but:

  • One picture is worth thousands of words. Many people (including me) digest data much easier when served as pictures, not text.
  • Many users exported data to spreadsheet just to make pie charts. Now they can use that time for something else :)
  • It’s an eye-candy and everybody loves eye-candy :) . After all, we bought our iPhones/iPods because they are nice and shiny, didn’t we (”Nope! Actually I’ve bought mine to develop life-changing apps bla, bla, bla” – yeah, sure
  • Pie charts are not rocket science really, but I had to learn some new iPhone development tricks to implement them. I also had to rewrite some reports-related code to make reports faster (you should generally notice that reports are calculated faster, export quicker and even scroll smoother now. Especially when you have data from many months). So there was a challenge and some new things to learn. Two most important ingredients of a fun project soup.
  • Developing Eternity I wanted to use standard GUI frameworks as much as possible. It makes development faster and the app consistent with iPhone user expectations. But the standard controls delivered by Apple frameworks, as nice as they are, have their limitations. It became obvious to me when I developed auto-adjustment functionality. The wheels-based time controls with separate, independent months, days, hours, minutes and AM/PM settings just don’t work very well in that context. I need to learn some lower-level tricks to go beyond standard controls in such cases and pie charts project was a good one to start from.
  • I don’t follow competition that much, but I hope it will differentiate my app a bit. When I first get requests for adding pie charts I was not convinced at all. “The report screen is crowded already. How do I present the data, the charts, the legend and all the controls.” (I’m not sure now, but I might have been influenced by a picture of another app I’ve had seen on App Store). But then I thought “Why not get rid of the legend, the controls and draw everything in landscape mode so there is more space for labels?”. Eureka (gee, it’s sad that I have to discover the obvious in such pains ;) ).

Easy date switching for logs and reports

200909071246.jpg 200909071246.jpg

This is a no-brainer. Interval labels are tappable now. I made them more button-like looking to make it discoverable. You can pick any date and switch to today with one tap.

Manual reordering of activities

200909071246.jpg

When you tap on Edit activities, the editable rows have standard reorder controls on the right side. You can also sort activities alphabetically with one tap.
In addition, activities editing/deleting/reordering can be cancelled now if you’ve done some mess. The ordering you set here is respected in reports too.

Text editing settings (capitalization, auto-correction) for activity names and notes

200909071247.jpg

Go to Settings->Text editing to switch auto-correction and capitalization ON or OFF for activity names and notes.

Easy data migration from Lite to full version

200909071234.jpg200909071234.jpg

Now you can upgrade from Lite to full version without loosing your data. In three easy steps:

  1. Install full version on the same device
  2. Open Lite version, go to Settings->Full version, tap on “Migrate data to full version”
  3. Full version is opened and asks for confirmation. Confirm.

Enjoy :) !

  • Share/Bookmark
,

Summary of changes

Update 1.4 contains the following improvements:

  1. new: inserting log entries without starting new timer
  2. new: easier log entries deleting
  3. new: auto-adjusting times for previous and next log entry
  4. new: changing activity for past log entries
  5. new: hierarchy paths for logs and reports
  6. new: more Excel friendly dates in exported log files
  7. new: data purge

Below you can find more extensive description…

Inserting log entries without starting new timer and easier log entries deleting

That was one of the most requested features. Now if you forget to start a timer you can always insert it later easily. On Logs view, the first row is always “Insert/Delete”.

200909041647.jpg

After tapping on it, a new view is presented with options to delete existing entries and insert new ones.

200909041647.jpg

You can insert new entries between any existing ones. If there is a time gap between existing entries, the new entry will automatically take the size of that gap. If there is no gap, the new entry will have zero duration, but you can change it easily with the new “auto-adjust time for previous and next log entry” feature (described below). You can also tap on any existing entry to edit it. I hope it’s pretty straightforward and you’ll find it useful.

Auto-adjusting times for previous and next log entry


200909041648.jpg 200909041648.jpg

That was a tough one. The problem I had here was that the date and time selection picker takes half the screen space all by itself. The rest of it I can use for presenting times for the previous, current and next log entries.
So here is the solution. When you select the “Start” time for the current entry, you will have a previous entry presented (first screen). If you select the “Stop” time, you will have the next log entry presented (second screen).
The “Adjust prev. and next” switch allows you to turn auto-adjusting on and off.

One rule in auto-adjusting is “you can push, you can’t pull”.

Example. When your current entry ends at 3:16 and the next next one starts at 3:20, you can set current end for 3:25 and the start for the next will be auto-adjusted to 3:25. But when you change your mind and set current end back to 3:16 the next start will stay at 3:25. But you can tap on next entry row to adjust its start time and push current end stop time. Why you can’t pull? That’s to avoid constant switching between auto-adjust on and off when you happen to make a mistake.

When you turn auto-adjust off you’re free to set times however you want. Overlaps will be indicated by orange colors and time start/stop inversion (stop precedes start) will be indicated by red color. Trying to save them can result in a warning or error message. The error is when one entry completely overlaps other or when the times are inverted. The warning appears when the current entry starts before the previous ends or ends after the next starts.

Changing activity for past log entries


200909041648.jpg

In log entry editing view you can now tap on the activity to change it.

200909041649.jpg

Here you can go through your activities hierarchy to select a new one for the edited log entry.

Hierarchy paths for logs and reports

You have seen them on the screen shots above already. They will also be in a few other places and in the exported logs file, in a separate column (so you can easily hide it).

More Excel friendly dates in exported log files

Previuosly, dates in exported logs had format like “Wednesday 13 May ‘09″. This turned out to be hard to digest for Excel and other spreadsheets. Looks like I thought too much like a human and too less like a machine this time around :) . Now the dates have only numeric representation formatted depending on your iPhone/iPod local date format.

Data purge

There is a new “Logs” row to tap on the Settings view.

200909041649.jpg

For now, the only option here is to purge logs. You can pick any date to purge all logs older that that. By default it’s set to “tomorrow” which purges all your logs. After tapping on purge you will be asked for confirmation.

200909041649.jpg

When the purge is running you can still cancel it (if you tap quick enough that is :) ).

One more thing. The Lite version will be ad-supported beginning V1.4.

That’s all for now. Let me know if you have any comments or requests.

Enjoy :)

  • Share/Bookmark

The nicer part first: how to get 5 starts? This is not as tough as you may think. There are millions and millions of iPhone and iPod Touch users. They’ve downloaded over a billion apps so far. Looking at this numbers it’s pretty obvious that virtually every app will find someone who like it enough to give an enthusiastic review.

My app, Eternity, got it’s first 5-star review, the day it was published. Let me quote it here:

I am giving an enthusiastic 5-stars because I think this is totally worth many times the money with out any improvements at all. I use it as a constant (eternity) running time log even while I am sleeping. I have created categories some even with several layers of sub-categories ranging from Family and children, Business and Partners, Music and multiple instruments, Writing and several books, and Miscellaneous and multiple recurring categories. The reports allow me to know exactly where I spent my time in practice in the broader categories and be able to drill that down to the more refined specific area. I never stop the timer ever but rather just start the next one which auto stop the former even knowing exactly how long I sleep and when. I even created a “What next?” category in Miscellaneous that fills the gap when I don’t know what to do next. This is a self management and tracking system dream come true. Of course you can run other programs while Eternity is still running and yes I have some improvement ideas but somebody must have read my mind on exactly what I needed. I now know exactly where my time goes with as much detail as desired with the elegant simplicity of the iPhone touchscreen. WOW!

For me, the most pleasing part was the one where the user describes my app as his “dream come true” and projection of his mind. It’s a great compliment for a developer when a user concludes, that software does exactly what he wants.

This was a review of the 1.0 version of Eternity (the first iPhone app I’ve ever written). Lacking many features, very basic. Still, someone liked it very, very much. Not that hard, is it? Write an app, publish it, wait some time.

OK, now the harder part…

How to get a 1-star review on App Store?

The recipe for getting a 1-star review is very similar: write an app, publish it, wait enough time (Eternity waited almost 7 months). Given enough users and time, someone will be dissatisfied enough to voice his opinion.

This is even more true for free apps. People download them just to see what’s in or because they are bored and browse the App Store. If they don’t know what the free app really does, which is very common in case of niche apps, they will give it 1-star review just because of that.

The 1-start review for the paid version of Eternity was:

To have a logging application on a mobile device without a way to purge the data is crazy at best. This application will take up some space and you would have to remove log entries one by one!
Contacted developer and was told it would be in the next version. I have stopped using the application.

(it was subsequently updated by the user and the rating was increased to 2-starts).

I’ve had an email exchange with the author of the review before he published it. I explained that Eternity requires very little storage space (about 150KB after over half a year of 24/7 logging, fraction of the space used by an mp3 song). So my first reaction was: oh, this user probably doesn’t understand what kilobytes, megabytes and gigabytes are. Hence such review. So I explained it in more detail and assured that Eternity won’t consume a lot of storage even when the log is not purged for years.

It turned out that the author was a developer himself and he perfectly understood what KB, MB and GB are. So his review was very technically oriented. Every software collecting data should have a way to purge it somehow. It’s a “must have” from a technical point of view. And I agree!

Note however, that such review could be written by a non-technical user as well: It’s my little iPhone. There is no much space in it. Do you think you can eat and eat it forever? No way! ;)

So why Eternity didn’t have that feature right from the start? Well, that’s because I thought too technically developing it. It will take few hundreds of kilobytes after years of using, I have few months (at least) to develop data purging. Both technical and non-technical criticism of such approach is valid, however. It’s a bad practice not to have a way to delete data in a data-collecting software. It’s a bad practice to restrict user control (even a bit paranoid) over his mobile device.

What should you do now?

In my teen years, I was on a camp. When me or my fellows did not behave well, our instructor ordered us series of push-ups. After completing it, we had to say a simple formula: “thank you for improving my brawn!”.

So what should you do, as a developer and a micro-ISV owner, with a 1-star review? Well, you should accept the critique whether you think it’s fair or not. Say “thank you”. “The user is always right” should be your motto. Users have many expectations (sometimes contradictory), different views, requests, worries, but it’s always your job to reforge them into a robust shape of your product.

So the first thing I did was developing the “data purge” functionality (it waits for other features to join, before the next update is released). The second is writing this entry to document a bit harder part of “My micro-ISV way” ;) .

What to do to avoid 1-star reviews?

This can’t be said enough times: think like users think (or at least try to). That may be hard for several reasons, however.
First of all, there are many users and they, well…, “think different” :)
Second. You, as the developer, know your software inside out (yes, that’s a common illusion among developers, including me :) ). Because of that, what’s obvious to you, may be a mystery to the user. In a one-person company there are not many people to take a (blank) look at your creation :) . Before users do, of course.

Third. It’s hard to wear your “software engineer” and “average software user” hats at the same time. And you have to do that all the time. Do you think 256 is a nice, round number in the eyes of the user? Think again ;)

Looking at the 5-start reviews, I’ve had a bit of success in thinking like users do, but there are still many 1-start aspects of what I do. I’m aware of that.

What does it mean in a micro-ISV world?

Running a one-person company, you’re responsible for all the good as well as bad things. There are no layers of tier 1, 2 and 3 customer support between you and the end user of your products. Your praise is very public, but your shame too. That’s very different from a corporate software development world, as far as I know it.

BTW, that’s why I gave my company a name after one of my nicknames: Komorian. I wanted my business to a bit personal too. That and the lack of good, unregistered domain names :) . I know it’s lame (do you want to hear a lame company name? Stand up and say “Google” out loud :-P .

The conclusion of this story is that when you screw up in a micro-ISV, there is no-one else to blame. So be prepared to take the blame yourself. It may be tough, I know. But “this is the business we’ve chosen!”. Now, who said that? The first three readers sending good answers get a free copy of Eternity :) (via promo code – valid only in US App Store, sorry).

  • Share/Bookmark
,
200909041249.jpg

Where Eternity name and icon came from?

When I started developing Eternity Time Log, the first name for it was Hourglass (it’s still in many place in the source code). But before I released it in App Store, another time tracking app had showed up with a hourglass as the main theme for its icon. I had some hourglassy icon designs ready, but I decided to change the name of my app and the icon to something a bit more distinguishing. So you could tell your friend: “I got this cool app on my iPhone. It’s for time tracking (yeah I know, I’m a freak ;) ). But try it. It really makes a difference. Look for …”. And you would tell the name of the app or show the icon on your device and both would be easy to find. So I wanted something differentiating from other time tracking apps and time related at the same time (lot of “times” in this sentence:-P). “Eternity” was definitely a time related word and still pretty unique App Store-wise, so I choose it. “Snake eating its tail” is one of the symbols of eternity so it looked like a perfect fit too.

So why change the icon now?

I still think the name “Eternity Time Log” was a good choice. If you’ve heard about my app and search App Store for “eternity”, you will find it right away. With google search it’s not that straightforward. There is Samsung Eternity mobile phone so when you search google for “iPhone eternity”, my website will probably not show up on the first page of the results. But if you search for “iphone eternity app” or “iphone eternity time …”, something related to my app should be placed by google gods at the first spot. But this is searching. And what about browsing? Eternity is rather not an “impulse purchase type of app”. It’s a niche application for someone who knows what he’s looking for. You would not spend $7.99 just to get a taste of it. So if you’re gonna download it, you’ve probably already heard of it or you’re browsing iTunes App Store whispering “time, time, time…” mantra ;) .And the problem with “snake eating its tail” icon is that it’s a symbol of eternity (and not very well known for that), which is somewhat related to time, which is somewhat related to time tracking which is too distant from your mantra to catch your eye when browsing countless pages of apps even for “time manager/tracker/log” search result. That’s the problem. I finally got it off my chest, I feel so light ;) .

Snakes are scary

I also had some complains that the “snake” icon is scary (even demonic) and too dark. I sympathize with you, I’m afraid of snakes too. That’s when you figure out it’s a snake on the picture (”is this a zipper?” asked one of my friends :-P ). On the other hand it seems too toy-like and not-very-business-looking for some tastes. I understand that too.

“So what the frig is on the new icon” you ask?

Well, it’s a combination of a hourglass and another symbol of eternity – “8″, which has its origins in, guess what, hourglass (as far as I know). I hope it’s closer metaphor to “time, time, time…” mantra and still quite distinguishing. I also hope it’s simple, beautiful, elegant and will bring me some much desired design awards ;) . Come on, at least you have to admit it’s not scary :) . I’m releasing the app with new icon in the 1.3.1 bugfix-only update (currently in review by Apple). The basic goal is to catch some more eyeballs on App Store without sacrificing all the uniqueness. I have no idea if it’s gonna have any impact on downloads and sales, but if it will, I should be able to notice it in the absence of any additional features. It’s a small experiment in some way. I showed the new icon to some Eternity users and they liked it. I hope you’ll like it too.

  • Share/Bookmark
,

How do you like the title of this post? What’s your reaction to the “carrot and stick” remark? I’m sure you don’t like the stick. But do you really like the carrot? Isn’t your reaction like “Carrot and stick? Hey! I’m not a donkey! Take your carrot and stick it…”. OK, OK, please calm down ;) .

Is advertising time tracking as a carrot and a stick a mistake by me (I develop and sell time tracking software after all ;) )? Well, whether we like it or not, most of the time we are driven by our fears and desires (and we sleep for the rest of it :) ). And tracking how you spend your time can help you face some of the former and chase the latter.

I’ve been tracking my time 24/7 for about 7 months now. I started when the prototype of my app, Eternity, was usable enough to become my “dog food”. Here are a few time-tracking related findings by me as the user of this app.

Is ignorance a bliss?

Keeping a time log gives you a simple knowledge. How you spend your days, weeks, months, years… doing this, this and that. Is that information useful (more than the last year’s snow)? I think it is. Past time is an investment in your game of life. Do you see any profits today? Does watching TV for three hours a day benefits you in any way? How much time do you spend in your day job? How it compares to your “dream job” projects? Does your income reflects that? Does satisfaction from what you do reflects that? How other people benefit from your time investments? Are you OK with that?

Time log helps you answer such questions. But you should be aware, that this knowledge will push you out of your comfort zone. This is the stick, the truth that your days here are numbered and you robably spend some of them in some ways you’re not really comfortable with. You won’t get them back by running a log of course. Sorry, I can’t help you here ;)

Thanks for the stick, can I have my carrot now?

Are you sure you deserve it? For many goals you assign some time to reach them. One hour a day, ten hours a week and so on. When you don’t have a log you’re always unsure if you’ve spent enough time “working”. This leads to the constant feeling of guilt, discomfort.

On the contrary, having a record of your activities gives you a proof. It makes a big difference, even if you’re the only person demanding such validation of your efforts. “I’ve earned it. It’s in my record. See? Can I have my carrot now? Thank you.”. And it’s yummy :-P When you’re not sure if you deserve it, it leaves a bitter aftertaste. You tend to work more and more. You don’t know when to stop. The result is burnout and your outcome is poisoned by it.

And the best part is…

That you don’t even need to wait for weeks and months to gain benefits from logging your time. The plain fact of having a log forces you to make more conscious choices right from the start. Is watching this movie worth my time? Is reading this book, playing this game, meeting these people, a time well spent? Will I consider it as such tomorrow? “Holy crap! I’m reading this blog by some bird-brain again! I should start a timer for it. Wait! Maybe I should really choose something better to do?”;). It’s a constant reminder to re-focus your activities. Say: “Life is short and I can’t afford to waste another minute” :-P

Where is my mind?

You can ask: “Do I really need to play games with my mind? Is that normal?” It feels strange sometimes, maybe even a bit schizophrenic, but the consolation is in knowing that you would bang yourself with a stick anyway, consciously or not. So I just think the conscious option is better. At least you will know where the bruises come from ;) . Does it sound convincing? That’s not the point. I don’t want you to convince you, but to make you wonder if or how it works. Make your conscious choice and follow it.

  • Share/Bookmark

If you expect “Yet another iPhone developer made a fortune selling farting app” kind of story, you will be disappointed. Read on if you want something different. Not that I have anything against farting apps and their developers. I really don’t.

What? When?

Actually this day is both behind me and yet to come. It means I already told my employer that I quit, but for various reasons and obligations my contract ends May 31. Until then, I’ll be finishing various projects and in May I’ll be on leave.

It’s not about money, it’s about sending a message

Did I make a fortune selling on App Store? As for now I don’t even make enough to pay my bills. So why did I quit my day job? Let me tell you my little story here.

I wanted to write software since I was a kid (and that was when ZX Spectrum was the king). I owned SHARP MZ700 (have you even heard of it :) ), Commodore 64, Amiga 1200, PC and a Mac. Eventually I became a software developer in a big corporation and I’ve been working there for almost 9 years.

I always liked tactical and economic games. I spend many hours playing them but at the same time I felt that I should start playing a real game instead. It was really bugging me. So about two years ago I registered my one-person company and developed my first app: weight training assistant for Nokia phones called Treneiro. I needed it, used it, liked it, but I sold only a handful of copies.

Few years ago, mainly for personal reasons, I got interested in personal development, time management and similar topics. So when the iPhone and the App Store came out it was natural for me to develop an app that I needed and then try selling it. That’s how Eternity Time Log was born.

As I mentioned, I haven’t make big money selling Eternity. But the feedback I got from costumers was very, very positive and encouraging. As I write this, there are 14 user reviews from 4 countries for the paid version of Eternity on App Store. 13 of them gave Eternity 5 starts for 5 possible and the one with 4 starts is still titled ?Awesome app? :) . I also got many ?Love this app!? emails where people say my small app changed their life for a bit better. And that’s hard to ignore. A big THANK YOU here for all these emails and reviews.

So as Joker said in ?The Dark Knight?: it’s not about money, it’s about sending a message.

The message for you, dear reader, is that I’m committed. If you find my app useful, I’m committed to make it even more so in the future. Otherwise, I’ll be out of business. If you find my story interesting, I’m committed to make it more interesting in the future, following my little dream. If you come back to this blog, you’ll see how it unfolds.

The message for me is that there is no going back. I hope I can grow my business and I hope to grow too, in the process. Being creative, providing value, ?making something people want? as Paul Graham describes it, is too important for me to pass over the small opportunity I have right here, right now. I may fail. I’m just a human after all. We will see.

But the whole universe is in crisis!

Well, ?I don’t have to tell you things are bad?. Mr Howard Beale will do it much better :)

Hard to believe this scene was filmed the year I was born and ?hits it? so well again.

For me, the whole ?crisis thing? is politicians game, but our money, if not more, is at stake. So it obviously impacts me and possibly you too. But in hard times people tend to go for real value instead of casual pleasures and this can be an opportunity.

Going the self-employment route is my answer to the situation. I think I can create more value this way than working for a corporation. Because big corporations are like ogres. Why ogres? Because (if you didn’t know that already) ogres are like onions and onions have layers. Onions have layers -- ogres have layers -- corporations have layers. And it’s hard to give/get value through them. And yes, all three can make you cry ;) .

Because of that I don’t think that cubicle job is a good investment of my time and time has a lot of value to me. I’d like to invest it better and help you in pursuing that goal too. That’s for the start and we will see where I’ll go from there.

So here it is, something ends, something new begins

Is this a bad moment? A bad idea? Will I be able to create enough value? Will money follow it? That remains to be seen. I make some money already, I have some savings. I plan to update this blog once a week until I have more time in May. It will contain stories about Eternity development, my small business development and my personal development. English is not my native language, but I hope it will get better too. If you find any errors in my post, it’s perfectly OK to let me know about them.
Contest

If you’ve read that far, a little contest for you :) . What ?Network? and ?The Dark Knight? movies have in common? That question turned out to be too vague. So what’s the link between actors Peter Finch (Howard Beale in ?Network?) and Heath Ledger (the Joker in ?The Dark Knight?)? Besides profession of course ;) . The first three readers sending good answers get a free copy of Eternity (via promo code -- valid only in US App Store, sorry).

  • Share/Bookmark
,