Author Archive

Design considerations while migrating the application to cloud

Thursday, February 2nd, 2012 at 1:05 pm   - Posted by Prachi Kulkarni

As outlined in earlier blog (Is your application a candidate for cloud migration), any application can be deployed on cloud, using right cloud application framework. However, in order to take maximum advantage of cloud features like dynamic scaling and high availability, it is advisable to make some design changes in the application. Here is a list of a few such design considerations:

  • Use of Decoupled Components
  • Asynchronous Communication
  • Stateless Application Design
  • Choice of Database
  • Data Storage Strategy

I plan to discuss these design considerations in some detail, in the coming sections. (more…)

Share
 

Is your application a candidate for cloud migration?

Wednesday, January 18th, 2012 at 2:24 pm   - Posted by Prachi Kulkarni

It is now safe to say that the future of Software Application Space is ‘”Cloudy”, and for once, it is a very good thing! The Cloud platforms have been around for a while, but now more and more applications from Enterprise as well as Consumer space are seen to take advantage of them.

So the question is, which applications can migrate to cloud? Short answer: all applications.

For a descriptive answer, we should go into details of what the Cloud can provide us. (more…)

Share
 

Troubleshooting Mobile Applications

Sunday, February 20th, 2011 at 9:40 pm   - Posted by Prachi Kulkarni

Now-a-days the mobile application development is advancing towards higher levels of sophistication. Attractive UI and animations supporting cool functionality are still the major factors in making the application popular. However, there is no denying that other factors like availability in different network coverages as well as device resource utilization and memory leaks as well as overall performance contribute a lot in converting the initial buzz to sustainable popularity for an application.

A lot of diagnostic information is available for mobile devices now, which helps the developer assess the application on these non functional criteria. Our team at Harbinger has expertise in various troubleshooting aspects of the mobile platforms and tools used therein. Here is a birds’ eye view of those efforts.

Function Platform Description
Unit Testing iPhone OCUnit can be used for tracking functionality issues as well as Unit Test case automation
Android JUNIT can be used for Unit Test case automation.Commands for monkey testing are supported hence various Test cases which include Black Box (Device) Testing can be done on emulator without actual need of device.
WinMo Slilverlight Unit Test Framework for Windows Phone 7 is the tool of choice
BlackBerry b-unittesting and J2MEUnit tools can be used for unit testing. There is no built-in support for unit testing BlackBerry Apps.
Bada The bada IDE provides a tool for unit testing. Unit tests wizards as well as API for test case development can be used for the testing. Test results are in the form of XML files.
UI testing and Automation iPhone Instruments tool can be used for UI testing and automation
Android UI/Application Exerciser Monkey can be used for UI testing
WinMo Silverlight UI Automation Testing using Prism 4.0 can be the tool of choice.
Bada UI sequencer can be used for the UI automation of the application
Memory Leaks iPhone Static analyzer will show memory leaks in the application while building it.
Leaks Instrument is useful to find memory leaks while running the application.
Android Android supports DDMS tool which can be utilized for tracking memory utilization by various threads, and memory released during garbage collection, profiling application etc.
WinMo Application Verifier tool can detect and pinpoint memory leaks, handle leaks, and leaks in graphics device interface (GDI) objects. The tool can also detect some forms of heap corruption. The profiling tools can also help detect memory related performance issues.
BlackBerry The BlackBerry JDE provides two tools to help find memory leaks – Memory Statistics tool and Objects tool
Bada Memory usage checker tool monitors application memory usage, which will help in analyzing memory leaks
Code Coverage / Profiling iPhone “Instruments” can be used for code coverage and profiling
Android Android supports DDMS tool which can be utilized for code profiling
WinMo Ants performance profiler, CLR Memory profiler as well as profiling tools in Visual Studio Visual Studio can be used for profiling.
BlackBerry The Profiler tool, included in the Blackberry JDE, can be used to optimize application code.
Bada Bada Testing Tool also contains a code coverage tool.
Network details, overall performance iPhone Charles” tool can be used to simulate various network availability scenarios. Using this tool, we can find out performance of the application.
Android ADB tool provided by Android supports lots of debugging features. It runs on adb shell and calls (Linux) system specific commands to debug the application, trace memory logs, retrieve time consumptions and radio informations, stack etc.
WinMo Microsoft.Phone.NetNetworkInformation namespace is used to check the availability of various network connection types like MobileBroadbandCdma, MobileBroadbandGsm etc.EQATEC Profiler can be used to monitor Windows Phone 7 application performance
Bada We can monitor resource usage statistics using the Resource Monitor. This will help in assessing overall performance of the application.
Logging and Debugging iPhone Logging and Debugging can be done in Xcode
Android Android supports api’s for Event Logs, Logging Method calls, and tracing data in application
WinMo Visual studio provides logging and debugging ability for windows phone 7 applications.
BlackBerry EventLogger API can be used to log various events in the application.

In addition to these, there are various troubleshooting abilities provided by SDKs and third party tools for all mobile platforms. The above table covers tools and\or API for most of the critical non-functional testing aspects mobile application developers face today

Share
 

Conducting usability analysis for the attention economy

Monday, July 12th, 2010 at 2:33 pm   - Posted by Prachi Kulkarni

In today’s computer dominated world crowd sourcing is an important aspect of software. Various social media /portal integrations provide immediate feedback, and make the user a very rich contributor in how an application looks. With distributed delivery, the application is easily available across the globe on various devices to various demographic users.

Naturally, usability study is of prime importance in product development today. Usability analysis results in ease of learning, ease of use and navigation. Apart from typical usability studies like Focus groups and Heuristic studies, now a days there are specially devised methods and guidelines for Mobile application usability, Social Media portal usability etc. that contribute in enriching the distributed and social flavor a product. All of this helps keep the user focused on the product making it compatible with the principles of Attention economy .

Recently, we conducted Heuristic and Card sort usability for some of our products. There were some interesting findings there:

  • We found that feedback from users familiar with various web portals, social media forums – in general users active on the web – was very valuable. This was so, because most of the products are trying to become more interactive, and crowd facing. This results in a lot of web 2.0 flavor in the product- be it FaceBook Twitter integrations, forums, chats or availability on mobile. So the users’ familiarity with lateral domains like web 2.0 and social networking helps a lot in this study.
  • Another interesting conclusion was early application of usability principles in the product lifecycle. If we apply usability analysis techniques, at the time of designing wireframes, it saves a lot of time and makes the output look really great! The resulting design is based firmly on user feedback, which added to the products appeal in addition to reducing design iterations.

Usability of a product is valued forever. The popularity of a design is always determined by how effective and useful its users find it. Many inventions are a result of user feedback that prompted a design change. In the cyber world also, usability is and always will be a dominating factor. So adapting to usability principles throughout the design and development phase of product seems to be the way to go.

Share
 

Search results, relevance and the emerging web: What is Google doing about them?

Monday, May 3rd, 2010 at 4:33 am   - Posted by Prachi Kulkarni

This is a new world for searches. More and more techniques are evolving to index, manage and present the tremendous amount of data available on the net, and make it fit for users’ need. Both old and new search players are trying to shape searches and refine results. More than ever before, relevancy and context are key to “organizing the world’s information” today.

Google has introduced many new initiatives to advance relevancy in its search results. Let’s take a look at few of the most critical ones of these:

  1. Latent Semantic Indexing: Google’s effective use of Synonyms to determine if a page should qualify in the Search Engine Results Page (SERP) of a particular search is the basis of this. With the help of synonyms, a search about “song words” or “song writer” will also include hits with the word “lyrics” or “lyricist” in the content. Google is going one step ahead, where it will not only look at the key words for relevancy, but also scan the entire content and look for keywords as well as synonyms. If the entire content satisfies the requirement, it will be judged as relevant. This is called Latent Semantic Indexing.The purpose behind this is to index searches closer to the way a human reader would rank the page. In natural indexing, actual information rather than repetition of words would be a factor in how well the page ranks. The use of related words (synonyms) would signify that the subject is thoroughly covered.

    As shown in the above example from the Google blog, the search for “pictures developed with coffee” will have all the search results with synonyms for pictures, and all the synonyms along with the search terms will be displayed in bold.

  2. Semantic Searches based on profiles, reviews and events: For over a year the concept of Semantic Searches is doing the rounds in full force on the search scene. RDFa and microformat have been around for quite some time, but now they have caught prime attention spot as the new wave of search.
    Last year, Google announced its support for Semantic Searches with Rich Snippet. As an initial step, Google did this for two formats, people and reviews, with LinkedIn and Yelp as partners. They followed it up with semantic support for Video searches as well as events.

    The concept behind this is quite simple. There are people associated with documents, pictures, companies, addresses – almost everything. Similarly, there are events associated again with a place, an address, a company, a play etc.

    So now with the help of Rich Snippets, it is possible to tag profiles, events as well as reviews for a particular search string. An example outlined again in the Google blog shows three links to three events on Jan 23rd, Jan 25th and Jan 29th when a user searches for Irving Plaza on Google (see image below). Needless to say, this provides a fast and convenient way for a user to determine if Live Nation has any events lined up that he or she might be interested in.

  3. Google Insight for Searches and Google Trends: While Google Trends show us the current search trends, Google Insight takes it one step ahead. It shows us the applicable (frequently used) keywords as well as the rising searches within a topic, so that we can make out what is the related ‘hot’ search topic. For example, if we search for “Tigers + animal”, in addition to the search trend information of these and the synonyms, Google Insight also shows us the top and the rising searches related to these words.
  4. There are other new initiatives from Google in beta stage, like Real Time searches, Comparison Advertisements, as well as new domains in Semantic Searches, but we will leave them to another post.

Of course, relevancy in search results has been a determining factor of the success of a search engine for decades. Google is a key player in the search world, and will definitely be an important contributor in defining the semantic web. With all the above as well as other semantic analysis techniques like context servers and usage of explicit user actions when indexing content, the search scenario for 2010 and beyond looks very interesting… And Google seems to be taking small but sure steps towards the intelligent web of tomorrow.

Share
 

Open Handset Alliance for Android: A blessing or achille’s heel?

Thursday, January 14th, 2010 at 11:02 pm   - Posted by Prachi Kulkarni



It is not easy to take Apple head on when it innovates. And if it was Microsoft in the early days, it is Google today. Both have gone in a direction of making open systems against Apple’s proprietary approach.

Google made Android open source (free using Apache license), and went on to launch Android through Open Handset Alliance (OHA), a collaboration of around 50 companies including handset manufacturers. The OS is up for everyone’s taking, and is also generic enough to everyone’s liking. In true Web 2.0 style, Google has also been encouraging application development through awards and development programs. The result: Around 20,000 applications in the Android Market as of this writing, and growing exponentially.

Google has dented Apple’s fortress to some extent, but going forward, following are some key considerations that will make or break this onslaught:

  • The OS can be very generic, and unless the OHA members agree to iron out all their differences, everyone will have to spend time and resources modifying the generic version to suit them.
  • The Android market, though picking up, is no match for the AppStore yet. Apps are critical on mobile platforms and Google will have to solicit continued focus of developers through its developer program.
  • iPhone is a key product for Apple and it is trying hard to get it absolutely right. Android, on the other hand, would be pushed and pulled by an alliance. It risks being everybody’s piece of pie and nobody’s baby.
  • On the hardware side, Motorola Droid and Google Nexus One are worthwhile competitors, but there needs to be a proliferation of such capable devices to seriously dent Apple’s long strides. Remember, Apple has a head start, and mobile devices are far from being commodities. Users have strong preferences and the ODMs have to get it very right with their devices.

With rising popularity and advantages like background processing, Android is a very worthwhile competition to Apple’s iPhone eco-system. Can it give Apple a run for its money in the long run?

Share