Saturday, December 1, 2012

Blurb on Mobile UI design


I got these thoughts on mobile UI design as I was working on a recent mobile web app project, and using my own app during the design phase: 

1. *Every* action that a user takes, is an opportunity for you as a developer to enthrall, engage and please the user. Similarly, *every* action by the user must have a very clear reward for the precious time, effort and attention provided by the user in performing that action.

2. Strict focus on getting the maximum done, with the minimum number of clicks is not an optional feature, but a required feature for a mobile app.  

3. Any step more than the absolute bare minimum required to finish an activity will prove to be a hurdle to continued user adoption.

Small Business - Success Factors

The following factors, in my opinion, are some of the key driving factors for the success of a small organization. While it is true that the same factors are useful for an organization of any size, the factors below apply more to a smaller organization than a larger organization, due to the lack of dedicated functional resources which are usually available in a larger organization.

* Cross-functional training
In any organization, ‘silo’-ization of information is a problem. ‘Silo’-ization is a term I use to describe creation of distinct storehouses of knowledge / information about the company, and it’s processes. Some of it is unintended, simply because it is a tad impractical to know everything about everything in your organization. However, sometimes it is also intentional. In the latter case, there can be several driving factors: 1. Employee insecurity in imparting information which they think may be hazardous to their continued employment 2. Employee inertia to hold on to an existing skill-set and to not evolve with time. 3. Lack of good communication within the team leading to distrust, 4. Or just plain old laziness. This problem gets compounded as ‘silo’-ization increases and usually has an adverse impact on efficiency and viability of an organization as a whole. To counter these

* Leading from the top
While leadership from the top is key for an organization of any size, I believe it has a special meaning in case of a small company. In a small company, you typically get to know people more intimately than a small organization since one has to wear many hats at the same time. Therefore, top management personality traits can have a significant impact on the employees.

* Documentation
Documentation is essential for:
- Maintaining project history over time.
- Keeping a record of KPIs ( Key Performance Indicators ) over the years and trending them to evaluate current performance. 

Android: Pre-built Drawables Index



This link contains a comprehensive listing of inbuilt Android Drawable Resources ( android.R class ) which can be used directly in your projects. Use of these can also increase connsistency of the user experience, in reference to the default apps.

Tools And Services



An (incomplete) list of tools and services that I use, and love to use.

Category = Security ( Windows )
* Microsoft Security Essentials = Microsoft’s free real-time antivirus solution which taps into Microsoft’s threat libraries to detect / prevent attacks.
* SuperAntispyware = A good solution which has helped me on atleast three instances.
* MBAM - Malware Bytes’ Anti Malware = Another solution like  SuperAntiSpyware. I typically use these programs in parallel.

Category = Storage / Backup
* DropBox - the best Sync solution I have come across. DropBox just works.
* Adrive - excellent for storing large amounts of Data. Provides 50 GB of free storage space. 

Category = Developer
* Eclipse IDE - extremely customizable and has a plug-in for almost anything that you can imagine ! Some of the typical use-case scenarios are: For pure Java development, GWT development, BIRT Report development, Android development, Syclo development etc. 
* MS VWD - Microsoft’s free tool set for Web Development.
* Fiddler2 - a tool for capturing HTTP Request/Response Headers, indispensable for web service and/or HTTP development. Other similar products: Firebug extension for Firefox does this ( and much more ). Similarly, Wireshark/Ethereal can be used deep analysis of port traffic. 

Category = Browser
* Google Chrome - the best/quickest browser I have come across. Has a very rapid update cycle which is good from a security perspective. Also comes with a wide array of extensions which can be used to extend the browser functionality. One of my favorite extensions is theSecure Sites extension. This extension attempts to establish a secure connection ( HTTPS, instead HTTP ) with every site that you visit which allows for safer browsing. Also, it was excellent Javascript debugging tools and Firebug Lite as well. 

[ This list will be expanded in due course of time ]

What makes Smartphone ( and development on the same ) so important ?


A few reasons off the top of my head.

1. Mobiles are getting extremely powerful, and more people are looking at ways to replace laptops with them, and / or augment the existing use cases for laptops. The diversity of uses to which mobiles have already been applied are frankly mind-boggling: from being used as satellite controllers to being used as supercomputers ( sort of ) to enabling extremely vivd and engaging augmented reality games / apps . The future holds tremendous possibilities. 

2. As per some studies, more people will access the internet using devices with a form-factor much smaller than traditional computing platforms.

3. App Stores are extremely lucrative, provided you can make a good app. There are literally millions of people who can access the distribution channels, hence can be targeted. Another fact is that App Stores are indexed extremely rapidly by search engines ( Google at a minimum ), leading to decent ‘search’-ability ( not necessarily visibility though ) even without excessive marketing. More marketing muscle behind a solid app is always welcome, but the point is that even without the same, you can hope to write a decently popular app.

4. Several of the companies, today, are yet coming to grips with the upcoming future and need a consistent mobile strategy. Due to the upcoming trend of ‘mobilization’,  they will need people with skills to ‘take them mobile’.

5. The advertising of future will be 1. highly personalized, and 2. hyper-local, which is again commoditized / democratized due to the mobile technology, since mobiles are always with you AND can also capture your location information ( i.e. if you allow them to), enabling permitted apps to provide you with localized, hyper-contextual info ( and ads. ). Advertising is about context, and location is an excellent signal for determining relevance and context….

TRIRIGA Application Platform versus TRIRIGA Applications


For a significant period of time, I had a confusion between the TRIRIGA Application Platform, and TRIRIGA Applications. In addition to my own confusion, I also found that several other people whom I met, were equally confused about the same. The difference between the two is that the Application Platform represents the underlying technology like the Data Modeler, Workflow Builder, GUI Builder.

TRIRIGA Applications, on the other hand refer to the objects created using the Application Platform, like the Workflows themselves, the created Business Objects, GUIs, Queries etc. As a rough rule, all the ‘builders’ form a part of the TRIRIGA Application Platform, while the rest of the elements can be considered to be Applications themselves, which have been created to address specific business needs, like the Real Estate Application, Project Management Application. Also, the TRIRIGA Applications version, by definition, refer to the out of the Box Applications provided.

In certain cases, like the WPM Applications, the difference between the Platform, and the Application is blurred.

A short collection of Tech Blogs and Feeds that I like to visit / read