Amazon Contextual Product Ads

Tuesday, June 10, 2014

Business Plan to Transform the Kirana Store to Retail Industry

The real question is How to upgrade the technology of a 'Kirana' Store?

In general Retail Industry offers:
  • Organized distribution of retail products
  • More profitability for retail outlets
  • Making available the products the customer actually wants.
  • Listening to customer requirements
  • The store layout for more freedom of choice

What can Kirana Store provide to the Supplier:
  • Area details and customer buying behavior
  • Low cost preference and options – based on the purchasing power of the customer
  • Actual purchasing trends

The Solution - 
* Kirana Retailer and Supplier Online Network (KRSON) Software *
A Platform is made available for online transactions between Supplier and Kirana Store that provides:
  • Online Ordering Service
  • Kirana Store Inventory Management

Provides a Online Portal for Kirana Supplier for -
  • Adding of products to catalog
  • Inventory availability and costs
  • New products and availability
  • Receiving order and payment as per terms

Portal for Kirana Retailer -
  • Ordering service
  • Value add in Store Inventory Management
  • Payment gateway - optional

Cost structure - 
  • Tablet Device + Software costing approx. Rs. 10,000 is purchased by Kirana Store owner and Supplier  
  • Each transaction costs is paid by a flat rate. The rate is variable and dependent on the number of suppliers and retail store owners that are using the service.

The Software architecture is based on advanced collaboration platform and does not need a specific software although it is possible to provide all features in one software that can enable the solution.

A solution is openerp – an open source solution. Check for details.

The solution is designed in such a way that there could be potentially any software enabling the features that already have the capabilities mentioned in the architecture.

The Service will require a industry association endorsement to be acceptable and changeable for future enhancements and benefits. This is typical B2B application though the discussion is for its applicability to the Kirana Store and transform it to Global Stature.

Friday, January 17, 2014

Industrial internet - An Opportunity for more analytics sensible apps

The term Industrial Internet term is already not new. The primary idea being there are industrial devices that are on local network sending data to a controller - that's also on the internet. The challenge is to bring this data accessible and make sense of it. Hence the manufacturing industry has huge potential where many devices connected to the internet.

Additional reading material with a detailed study is can be found here.

To take an example as per the paper there is a 1% savings possible for Oil and gas industry. What does it really mean?
We can apply techniques such as web applications to the devices on internet (not just mobile devices but anything that can capture data) and provide its analytics as a web applications. – Think home appliance connected to your home wifi or work network.

Many apps are on the app store similar for IOS and other platforms.  Some of the use cases are data collection, device management, automation, control, analytics, predictive behaviors, as a computing power in the form of distributed information network. Many standards are already in place such as NMS and OPC that can enabled standardized access.

The analytics enables solutions for improving productivity. Details would depend on the actual device and what data is made available.

Further it is possible to provide private/public cloud with these devices connected to the internet for select set of users. These applications can enable to optimize and provide analytics and visualization for decision making. In nut shell each connected device in the industrial internet can support users from internet. The support could be reduced overhead, report ability, and grid computing capabilities. The more data collected and made available from these devices can make suggestions for further improvement in design and recommend trials. By adding these devices remote control is also possible.

There are benefits if these devices are online e.g. energy efficiency for a longer period of time.  The target platform can also enable the unified vision that many strive for.

Monday, September 30, 2013

Running Windows applications on Unix

There is a need to reduce the cost of expensive Windows Server and licensing costs. How to find a solution that is cost effective and executes code of already pre-built windows applications on UNIX environment.

Solution Approach

Install Ubuntu (or other supported Unix) and wine.Run the specified windows application with Wine on command prompt. Wine converts all windows API calls into its native equivalent function calls and performs action as per the defined API. Hence application is able to perform action as per the desired functionality.

Scenario: Windows application source is available

If access to source code of windows application is provided then an alternate solution of using winlib is used where the source is recompiled thus also improving the performance of the system.

Scenario: Windows application source is not available

To ensure wine can run the application and certain tests need to be run and then wine is ready to use with the application. This is done using a test suite. Once the testing is passed the application is ready for use.

Wine internals

WINE (originally an acronym for "Wine Is Not an Emulator") is a compatibility layer capable of running Windows applications on several POSIX-compliant operating systems, such as Linux, Mac OSX, & BSD. Instead of simulating internal Windows logic like a virtual machine or emulator, Wine translates Windows API calls into POSIX calls on-the-fly, eliminating the performance and memory penalties of other methods and allowing you to cleanly integrate Windows applications into your desktop. And Windows API calls and services also are not emulated, but rather substituted with Linux equivalents that are compiled for x86 and run at full, native speed.
Supported Windows Versions
Windows 3.1 is supported
Most applications executions can be done in the 32bit or 64bit backward compatibility mode.
64bit or 32bit applications
32bit applications are supported although wine can also run 64bit machines
.NET applications
In the recent wine update .net applications are supported

How to run wine

How to run Wine
Usage: wine PROGRAM [ARGUMENTS...] Run the specified program
wine --help Display this help and exit
wine --version Output version information and exit
The first argument should be the name of the file you want wine to execute. If the executable is in the Path
environment variable, you can simply give the executable file name. However, if the executable is not in Path, you
must give the full path to the executable. For example, given a Path of the following:
You could run the file c:\windows\system\foo.exe with:
$ wine foo.exe

Issues that need to be resolved

  • Missing dll’s
  • Windows Registry
  • Windows Drivers


Some of the other benefits Wine can provide over Windows:
•Possible to take advantage of Unix strong points such as stability, flexibility, remote administration while still using the Windows applications you depend on.
•Unix has always made it possible to write powerful scripts. Wine makes it possible to call Windows applications from scripts that can also leverage the Unix environment to its full extent.
•Wine makes it possible to access Windows applications remotely, even if they are a few thousand miles away.
•Wine makes it economical to use thin clients: simply install Wine on a Linux server, and you can access these Windows applications from any X terminal.
•Wine can also be used to make existing Windows applications available on the Web by using VNC and its Java client.
•Wine is Open Source Software, so can be extended it to suit your needs. The code can be fixed after issues are found that prevent the use of windows application.

Open Issues

 The Windows Genuine Advantage system checks for existence of Wine registry keys. Hence executing Microsoft product may not be possible. Custom built software and compiled products that are not commercial product but applications should be possible to run under the wine environment.
2.       Windows update is not supported. Hence updates to packages , bug fixes and security update are not supported.



Hence its possible to reduce cost for applications to be run on Unix with certain restrictions refer to link here

Saturday, July 28, 2012

Why Translate?

What is the language translation market?
On Internet and desktop PC's and mobile devices English is the primary language used worldwide and hence majority content and software is developed in that language. Supporting multiple languages is essentially a costly activity with rewards only as per demand. It is done for most global software otherwise its "English only".

To add, to an interesting insight is made available by Internet World Stats's pages: Up-to-Date Internet World Stats  Specifically checkout the "Internet Penetration" a benchmark ratio between the sum of Internet users speaking a language and the total population estimate that speaks that specific language.

Check the page here: Worldwide its at 30 percent. What this means is 70% are non english users using the internet who do not speak that language. To take an example of India - although majority of education is in English the spoken language is different. Infact in India, Hindi is official language so most of the users may be of that category (in 70%).  

Language Easiness
For most users who know English, even though they do not speak english language would be "comfortable" with using the english language internet. But some rural population (less education) could have "difficulty" in "understanding" because the basic education is not in English. Particularly in non-metro cities (tier 2, 3) getting on the internet for information/knowledge and sharing may not be that productive.

What should be done?
Well its imperative that these users "learn" English so they can understand. That is definately good and the general trend. Having said that globally there are users who would'nt want to "use" English for own reasons and these could be "sensitive" in nature too. Let's discuss what are the solutions available for these users.

What are the tools?
For all small text translation needs its Bing and Google. Some other tools are here. 

Websites, Applications and Data
When there is a need and demand for global users Software Developers take "Globalization and Localization of Applications" methodology and though its time consuming and complicated its obviously the better route. 

Methods for types-of-applications are mainly two main routes:
Java Applications  - Uses resource strings for each language supported
Database Applications - Uses a database column for each language for each of the application text.

Websites - Automatic language translators that translate all content to any language are now available.

A detailed set of activities are documented here.

Data Input
The Unicode Consortium enables data to be represented as a number so all alphabets from all languages can be represented as computer data and also easier translatable display. "Input Keyboard" - this is solved by installing appropriate language Font and keyboard layout. An example can be found here.

Depending on the user need and application today its possible to provide an appropriate solution so as to get benefitted from desired language and the "translation" is solved!

Disclaimer:Opinons expressed in this article are my own. Website links are not owned by me and are owned by respective owners.

Sunday, September 4, 2011

My takeaway from Cloudcamp

I had a chance to attend a cloud conference recently and have some updates to share. Not that cloud computing is any new term though I wanted to attend from the cloud testing point-of-view and renewing my knowledge.

- The best definition of cloud computing can be found on the NIST website here.
- Attended the conference as an - Unconference sessions - its really an informal way and gives you the idea about what’s missing and what has to be learned as a developer.
- I attended the conference to understand about what skills I should have to be able to successfully test the cloud app, soon realized I am better at the development side due to my technical nature and understanding of tools.
- Cloud apps are highly connected type of apps or “connectedness" is primary characteristics.
- No versioning required for cloud apps since can be updated anytime.
- IT department is gone though system admin has now new set of tasks to perform.
- Amazon cloud service is most widely used though there are other available service.
- Everything is Service-Oriented. There is a service for each task and your application should start using/implementing these services to be able to deploy on cloud. Integration service will be an important service. A typical type of app consists of Marketing, Sales and Service integration is thus critical.
- All conference speakers were very confident of future quoting that its a $70b market by 2015.
- Application characteristics for which cloud apps are suitable are primarily defined by traffic. There are many other parameters to consider.
- Load and performance testing tools are required to gauge the performance and whether website application meets performance expectation. Mobile application on popular platforms is also usually developed simultaneously.
- Cloud apps are more suitable for social apps but there is no such rule as to what application can be developed. There is evaluation criteria.
- To consider if an app can be considered for deployment as a cloud app here are the following needs:
o Company infrastructure
o Application requirements
o Storage requirements
o Application options
o Vender slection
o Third party integration
o Usage requirements
o Security requirements
- Once you have a web app design ready answer the question whether:
o A SAAS solution
o Public or private cloud
o Cloud storage
o No cloud
on the checklist based on nature of application to decide for cloud application.
- Apps can be tested using Winrunner and jmeter scripts are supported.
- Cloud apps are required to be scalable, measurable, on – demand and self-service based.
- The type of tools available are for development community, Cloud management, Dataprocessing pre-packaged apps, plug-ins to fascilitate development as per the requirements.
- Popular tools are: StreamBase for event processing, Cloud Management:Cloudkick, Rightscale, Kaavo, enStratus. Data processing and BI: Cloudera, Greenplum, Good data, Zoho Reports, Hadoop, ScaleDB etc.. Reason for this discussion is once a tool is selected there is a lock-in, unless a abstraction layer in the code takes care of these issues.
Definitively wikipedia page is exhaustive source for Cloud Computing and lot more to learn in particular hands-on lab.

Monday, March 21, 2011

On being a better Tester

I am a software tester and have seen and met many software testers like me who want to make a accurate judgement about a test case if it has passed or failed. The obvious answer and the correct one is - compare the specification output of system to output that is observed for the test case being executed. Interesting thing to note here is that there are other influencing factors to change the decision of the tester.

Common factors include:
• Design discussion that is part of tester's knowledge base.
• Testing similar products and its output for somewhat similar test case.
• Heuristic output prediction that comes due to experience. e.g. if I have been testing many years I think you know the answer.
• Statistical characteristics judgement. e.g. I know this test case will work because it has worked most of the time.
• Changing product specs that influences comparison of results of one test execution to another.
• A model based approach is used because tester wants to be subjective and expect specific output set for specified input data set.

In all cases the tester is a voice of customer. I conclude that a better method is if tester and subject matter experts are two different people one working towards software specifications only and other towards functional specifications only.

Blogspot कीती छान आहे?

Now you can post in your regional language post on blogspot - here is sample snippet I have typed.

आपल्या मत्रुभाशेत ब्लॉग्गिंग करण्या सारखे दुसरे सुख नही बघा.. अखेर आम्ही मराठी अहोत हे स्वाभिमानाने सांगता येते आनी ते व्यक्ते पण करता येते. मस्त मजा मादी

चला दाम्लो अता लिहून