Thursday, March 07, 2013

How did I ever live before Evernote

I have now been using Evernote for a little over a month and I am amazed by how this service has simplified my life.. well.. not life... but at managing random pieces of information.

I think I created an account on Evernote back in 2011 when one of my colleagues told me about it but at that time the service just did not make the cut for me and I abandoned it.  Since then I have tried to use Google docs, dropbox, ubernote and a variety of different services to manage my personal notes, how-to's and other random crap but every service had something missing or I was just using them for something that they were not meant for.  Then came my decision to give Evernote a second shot and am I glad I did that.

Here is what I love about the service:


  1. Access my stuff from anywhere... yeah anywhere... PC, Android phone, Android Tablet, Mom's iPad, laptop...anywhere. 
  2. Clean and Crisp user interface.  Its simple and elegant and the think I love the fact that i can add a new note in a giffy. 
  3. Attaching files to notes... oh yeah.. love this.
  4. Organizing stuff into notebooks on top of labels.
I think Evernote is a keeper and I might even end up with a paid account soon.

Thursday, August 16, 2012

Bye Bye Flash

The blogosphere is abuzz with the news of Adobe stopping to support flash for Android. There are 2 sentiments that I picked up from all the literature published on the web:

1) The fanboi group is talking about payback for 1999 and how Steve Jobs was right all along.
2) Quiet a few people are applauding Adobe for this step. Continuing to support flash was a loosing battle.

Personally, I was never a fan of flash but did not hate it either. It had come to signify annoying intros and adverts on websites for me but I accepted it as part and parcel of web dev technologies.

That being said, who is using flash right now ? I am writing this post on a nexus7 tablet with Jelly Bean and this device never supported flash and quiet frankly this has not made a difference to my web experience. I guess the web development world stared migrating away from flash long ago and this was just the final nail in the coffin.

I am kinda sad it all ended for flash the way it did, it was a powerful tool and HTML 5 is nowhere close to the feature set of Flash right now.

bye bye flash !

Friday, May 18, 2012

Launcher 7 for Android

I have been a android user for the last 2 years or so and I migrated to it after 6 long (and sometimes happy) years on nokia series 60 devices. I cannot think of migrating away from android now, i am hooked but i can appreciate the necessities of other platforms.

I am a fan of the whole metro and tiles thing going on windows phone world. It just makes using a smartphone easier for people. This is the main reason i got my wife a WP7 phone when we upgraded our plan last month and she couldn't be happier with her phone but this post is not about her experience.... it is about the Launcher 7 application on android.

Get the app on Google Play
The app developed by Timo Kujala gives you a taste of the minimalistic metro UI on your kick ass android phone. The app allows you to convert your android phone into a windows phone atleast from the experience perspective.

Thanks to the post on this app by Matt Smith that introduced me to the app. 

I decided to give it a spin on my HTC One S.


The first screen you see after the install is the initial configuration screen that allows you to choose the different styles. Once your home page is created, you can click on menu to change the background color and tile colors to customize the look you desire.

Initial settings screen and home screen

You can customize your launch screen later by tapping on the application from the list menu.

This app really rocks and kudos to the development team. The app has all the key features that would make my phone feel like a windows phone. Love the way the drag and drop of tiles has been implemented too.

It is kinda cool that my phone now looks like a windows phone but its scary too so I am switching back to my familiar HTC sense launcher UI for now.



Friday, April 20, 2012

Barcode Reader add on for Chrome

Simple menu popup from add-on
basic but functional

Just started using the Barcode Reader add-on for Chrome. If you are looking for a solution that reads QR codes posted on web pages then this is the must  have.

The UI and functionality is very basic and I would like to see more in the coming months from this add-on. The add-on only supports QR codes and Code 128 barcodes right now and reads them pretty well.


Screenshot of page, crop to select QR code
The primary function of the add-on is to allow you to decode QR code images shown on web pages. If you find your self on a page filled with barcodes and want to know whats inside them then all you have to do is click the icon and take web page screenshot. This opens up the add on page with the image of the web page, all you have to do is press the decode button. 

There is also the "crop" option which would come in handy if you have several QR codes on the page and cropping will allow you to select the one you are interested in. 

The add-on also allows you to decode QR codes using your webcam. This is pretty cool but not what I had initially downloaded the add-on for, this came as a bonus. 

The thing that kinda sucks about this is that you have to click on the Take photo button for it actually read the barcode.





I am a bit disappointed with the way results are displayed. There is really nothing i can do with the barcode value apart from copying and pasting it somewhere else. The idea behind the add-on was to give me the encoded data and I completely get this but hope that future revs would have more functionality.  





Friday, April 06, 2012

User behavior in App with Flurry Analytics

This blog post is a short summary of my experience with the Flurry analytics SDK. Adding the SDK to our application has been a good experience (so far) and has drastically improved our ability to make data driven decisions.

Why ?
We have a connected app and are able to gauge the performance of the app (we thought) based on the server based transactions but we found that there were certain questions that we just could not answer with our logs on the server.
  • Why isn't there a direct correlation between the number of downloads and the number of transactions ? Do our users even launch the app after they download it ?
  • We spent a lot of time adding a feature, do the users understand it ? do they even navigate to the screen ?
  • many more ...

What ?
We started looking for ways we could answer these and other questions. The stress was on figuring our how users interacted with our application:
  • Do they use the features we put into the application?
  • How often do they use them ?
  • What screens do they visit in the app and how often ? (should we really be spending the time and effort in updating help section inside our app?)
  • Once they visit the screen do they perform the action we want them to perform or get side tracked by something else ?
  • ...
We already had transaction based data on the server already about our users but we were looking to finding out what percent of our users actually reached the point where they could perform a transaction.

How?
The engineers in us already knew the answer : we had to put in some sort of logging mechanism in our application that logged the user activity. Nothing ground breaking, we have been doing that in web applications already. Things we considered:
  • Should we build our own ? This was interesting from engineering point of view and we could just extend what we were already doing in our web app. We decided to look for third party libraries as we just did not have the bandwidth and time to invest in building and testing something for all the platforms. Reinventing the wheel is a sin that modern dev teams should stay from.
  • Impact on app performance. We decided very early on that what ever library we choose should have minimal impact on the app performance. User activity was important but not at the cost of our apps speed.
  • Dashboard: we did not want to invest time in building a dashboard that displayed the metrics for the same reason we started looking for a third party library.
  • Cost: It almost always comes down to cost. All the stakeholders loved the idea of knowing the user behavior but no one wanted to put down a number on the spend. We started looking for the cheapest option we could find.
Flurry
We looked at a few packages (not a lot) and quickly decided on using Flurry analytics SDK. Here is a breakdown of the reasons:
  • Free : Talk about in-expensive.
  • Reported activity offline and did not impact app performance.
  • Required very little development effort, the documentation was simple and to the point and we just added the library as a black box into our app.
  • Self service system, we did not have to speak to account managers or do a webex to understand how the system works. (I hate these calls)
  • Widely used in the industry. That took care of the end of life questions.
  • Support for the mobile platforms we cared about.
  • The analytics dashboard was just awesome.
Notes:
  • Adding the SDK impacted our test cycle more than development. We had to add a relatively large number of test cases in our functional and performance tests.
  • We decided against using the pageviews in the SDK. We created our own custom events for page views.
  • Sessions on Android were handled differently from the default behavior. We made the implementation decision based on our application needs.
  • As with any good SaaS platform, the SDK website allows us to download all our data through APIS and we plan to do this periodically. We found that the data for the past few days often changes due to the nature of the SDK so we plan to download data before the last 7 days.
All in all, it was pretty easy getting up and running and we were able to add the SDK and track some of the core events within one iteration along with solving other worldly problems.

Privacy
Tracking anything about the
user has taken a beating in the recent months especially when mobile applications are involved. Though I agree with most of the arguments made for privacy, some of the concerns that have surfaced are way over the top. I will leave this topic for another blog post.

Privacy was one of the first hurdles we had to cross internally before implementation could begin. We set our goal: We wanted to know what "users" did when they opened our application, not a particular "user". The privacy concerns played a important role in our implementation decisions (rightly so) and we made a conscious effort not to include any PII in the data we logged. We are also not using the data we collect in making any real time decisions on what to display to a particular user (we cannot, it wasn't built for this.).

Summary
Adding the analytics sdk in our application(s) did not solve all our issues but it definitely provided us more data to base our product decisions on.

Moving forward:
It is awesome that Flurry has recently added HTML5 to its list of supported platforms. It makes my life easier if i can use the same engine for mobile web and apps.

I also love the user segmentation and funnel features they have recently added to their dashboard.