Friday, September 9, 2016

Webpage performance tuning tips

It has been very long time. I thought I can share my recent leanings Webpage performance tuning tips.

1) Yslow (http://yslow.org/)–
To evaluate your site’s speed and get tips on how to improve performance. This link has more insite about the best practices to be used to improve the web application speed.

2) Google’s PageSpeed Tools (https://developers.google.com/speed/pagespeed/) –
To learn more about performance best-practice and automate the process. If we give an existing application web URL, it will give the comprehensive details and the detailed fix to address the performance bottleneck.


Happy Learning!
Nanjundan Chinnasamy


More detailed developerworks article on web application speed can be found at http://www.ibm.com/developerworks/library/wa-speedweb/

Wednesday, June 22, 2016

Google’s Cloud Service - Google App Engine (PlatformAsAService)

It has been very long time posted my blog. It is much needed too. Yes, an most important much need life changing Event. Now I am back to normal with my regular BusinesAsUsuall work.  Yes, it is time to write my technical blog too. 

Long back, I have explored Google’s Cloud computing solution “Google App Engine”. I have created sample applications using Spring, JSF too. Recently, I have deployed website with static pages for one of my personal need. One of my friend hosted his static website using Google App Engine for his high availability and high scaleability requirement. I strongly believe Google App Engine will be the right choice for many individuals and startups to host their web application to meet their needs. Here is the sample Google App Engine application he hosted http://rainbowmobiles.co.in

You may have questions like What is Google App Engine? When to go with Google App Engine?, What is the problem it is trying to solve?. No worries, you will find an answer for such questions by end of my blog. 

Google App Engine is a Platform as a Service (PaaS) that lets you deploy and run your applications on the Google infrastructure without having to worry about setting up your own hardware, Operating System or server. Google App Engine lets you run web applications on Google's infrastructure. 
Easy to build. 
Easy to maintain.
Easy to scale as the traffic and storage needs grow.

Cost:
All these are Free. Yes, free for up-to 1 GB of storage and enough CPU and bandwidth to support 5 million page views a month. 10 Applications per Google account.

Use App Engine when:
You don’t want to get troubled for setting up a server.
You want instant for-free nearly infinite scalability support.
Your application’s traffic is spiky and rather unpredictable.
You don't feel like taking care of your own server monitoring tools.
You need pricing that fits your actual usage and isn't time-slot based (App engine provides pay-per-drink cost model).
You are able to chunk long tasks into 60 second pieces.
You are able to work without direct access to local file system.

Language Support:
Java, J2EE (Selected framework with some restrictions)
Python
PHP

Data Store Support:
NoSQL schema-less object based data storage, with a query engine and  atomic transactions.
Data object is called a “Entity” that has a kind (~ table name) and a set of properties (~ column names).
JAVA JDO/ JPA interfaces and Python datastore interfaces.

Google cloud SQL:
Provides a relational SQL database service.
Similar to MySQL RDBMS.
Fast, scalable and highly available solution. 

Other services:
App Engine also provides a variety of services to perform common operations when managing your application.

URL Fetch: Facilitates the application’s access to resources on the internet, such as web services or data.
eMail: Facilitates the application to send e-mail messages using Google infrastructure. 
Memcache: High performance in-memory key-value storage. Can be used to store temporary data which doesn’t need to be persisted.


I am hoping many new IoT solutions will evolve in near feature using Cloud solutions like Google App Engine. Let’s hope.

Happy Learning
Nanjundan Chinnasamy

Thursday, March 17, 2016

Google Map - for Cab booking service -

As I keep telling to many of my friends, today’s modern technology can be used to address the day2day issues in a veryeffective way. Ie, using the power of “Internet of Things”. Technology adoption is very good (I could say the best) in cab services, telecom and banking compare to other areas as many of you aware.

I am referring here the Cab services as Geo/app based cab booking service ins very popular now a days. App based Cab service solved many problems like cab delay, cab booking/Cancellation and consumer & supplier issues. To book any cab service, we want to install the apps from different cab providers. It’s good to rely on one service provider and use their service. But we may be missing the price comparation and the great flexibility of using any cab service for the given source and destination.

Google has come up an innovative solution to solve such issue. Yes, Google map will be a one central point and you can select the source and destination and select the cab service on the GO based on your choice. Also, it gives the ride charge details for various cab service providers. Ie, Ability of booking cab service from Google Map. Sounds interesting?

You can look at the blog Google Map blog for more details about this @ https://maps.googleblog.com/2016/03/your-car-has-arrived-more-ways-to-get.html

Nanjundan Chinnasamy

Wednesday, March 9, 2016

I have planned to write an article for iCal – Calendar event utility using Java technology long back. Due to many reasons, it took some time to prepare this article. I have done with the working POC. You can explore and come back if you have any doubts in iCalendar generation using iCal4j framework.

iCal4j can be used to creating new iCalendar data from scratch OR modifying existing iCalendar data. Here you will find a few examples indicating the recommended usage of this library.

iCal comes with many handy functionality to deal with iCalendar related functionalities. Major functionalities are:
Creating an iCal event
Updating an existing iCal event
Parsing anexisting iCalendar file
Iterating over a Calendar and get the available events

It also provides a functionality to deal with different TimeZones. Here I have added my POC code only for iCalendar file creation alone using iCal framework. You can use this as a reference. Rest of the functionalities will be easy if you understand the iCalendar creation. Those functionalise can be explored at http://ical4j.sourceforge.net/introduction.html

Creating an iCal event – Sample Code:

public static void main(String[] args) throws FileNotFoundException,
                                    IOException, ValidationException, ParserException {
                        String calFile = "c:/mycalendar.ics";

                        // Creating a new calendar
                        net.fortuna.ical4j.model.Calendar calendar = new net.fortuna.ical4j.model.Calendar();
                        calendar.getProperties().add(
                                                new ProdId("-//Temp//iCal4j 1.0//EN"));
                        // calendar.getProperties().add(Version.VERSION_2_0);
                        calendar.getProperties().add(CalScale.GREGORIAN);


                        Calendar calStart = new GregorianCalendar().getInstance();
                        calStart.set(2015, java.util.Calendar.MARCH , 03, 12, 0);
                        Calendar calEnd = new GregorianCalendar();
                        calEnd.set(2015, java.util.Calendar.MARCH, 03, 13, 0);
                        DateTime startTime = new DateTime(calStart.getTime());
                        DateTime endTime = new DateTime(calEnd.getTime());
                        String appmtSubject = "Test appointment_EventId12345";
                       
                        // Create event
                        VEvent appointmentEvent = new VEvent(startTime, endTime, appmtSubject);
                        appointmentEvent.getProperties().add(new Location("NC Home"));
                        StringBuilder appmtSumamry = new StringBuilder();
                        appmtSumamry.append("Dear Friend, \n\n");
                        appmtSumamry.append("This is to catchup with you for 30 mins at my home. \n");
                       
                        appmtSumamry.append("Topic: Chumma\n");
                        appmtSumamry.append("Address: address1, address2, postcode\n");
                        appmtSumamry.append("Telephone: \n");
                        appmtSumamry.append("Purpose: \n\n");
                       
                        appmtSumamry.append("if you need any assistance mean time, please contact us at 1800XXXYYYY");
                       
                        appointmentEvent.getProperties().add(new Description(appmtSumamry.toString()));
           
                        /*// initialise as an all-day event..
                        christmas.getProperties().getProperty(Property.DTSTART).getParameters()
                                                .add(Value.DATE);*/

                        UidGenerator uidGenerator = new UidGenerator("1");
                        appointmentEvent.getProperties().add(uidGenerator.generateUid());
                        calendar.getComponents().add(appointmentEvent);

                        // Saving an iCalendar file
                        FileOutputStream fout = new FileOutputStream(calFile);

                        CalendarOutputter outputter = new CalendarOutputter();
                        outputter.setValidating(false);
                        outputter.output(calendar, fout);


Required JARs:
commons-lang-2.6.jar
commons-logging-1.1.3.jar
ical4j-1.0.5.jar
backport-util-concurrent-3.1.jar


If you are seeking for any specific details to build a Calendar event using iCal, feel free to comment this blog. I am happy to respond to you.


Thanks,
Nanjundan Chinnasamy

Thursday, February 11, 2016

Social data – An alternative Credit database to check Customer Credit worthiness

Banks can assess credit worthiness based on digital data culled from multiple sources like social data in addition to multi credit databases.

Banks/Lenders can assess the credit worthiness based on digital data derived from multiple social data’s like Facebook, LinkedIn etc..

To assess the address of the applicant, Location services (GPS) on mobile phones can be used to establish address and place of work, based on where a person is during the day and night. 

SMS mining can also be used to know the transactions in one’s accounts and to establish patterns. Bank transaction details based on SMS logs can provide information on bills paid and salary credits

Social media profiling is also widely used. For example, a LinkedIn profile can be used to validate place of work and establish identity

Again, we want to assess the credit worthiness of the Customer/person prior to lending them. Social data assessment will be more helpful for those who don’t have data at credit database. Also, banks can think of up/down selling of the products based on the customer social behavior. 

We can consider social data as an Influencer to derive credit worthiness of a person rather relying only credit databases. 

What do you think?

Tuesday, February 2, 2016

Design Patterns - Creational design patterns

Few of my friends and followers requested me to write blogs on Design patterns. I am here briefing the Creational design patterns using java language. I am sure i will be post other design patterns soon.









Startups - free tools

Are you an Entrepreneur OR planning for?  Here are the free tools will help/manage your business effectively. 



Happy Reading,

Nanjundan Chinnasamy

Tuesday, January 19, 2016

CAPTCHA – Java based solutions.

You may aware that Captcha is common and much needed solution to prevent Denial of Service attack from public network. Being a Java lead, it is very difficult to find out the correct Captcha solution for the given requirement. If so, don’t worry. I have articulated the available Captcha solutions for Java Technology with Pros & Corns. Hope this article brings much detail to choose relevant Captcha solution to your project.































Are you looking for any specific details on the above?  Leave me a comment. I will get back to you.,

Thanks,
Nanjundan Chinnasamy

Monday, January 18, 2016

New ways of doing the Banking..

Use Customer Mobile & banking app to complete Customer Identification Verification at other channels:
Use customer Mobile/banking app as one of the authentication mechanism to use banking services in any channel. Once Customer successfully login with banking app, they can use their device to pair to your banking channel and by-pass any channel specific Customer Identification and Verification process. Think of like generating ready-to-use QR code while paring mobile device Whatsapp app and web client version browser to make the communication.

This mobile phone authentication concept can be applied to multiple channels like ATM, branch, Online etc. Few of the examples I am thinking at this moment and documented below. This may be eliminating/minimizing the use of plastic card going forward. I am thinking that world is moving towards cardless in banking area. This concept can be analyzed further to make it reality in any industry including banking.

ATM channel usage:
Customer can withdraw money from our own bank ATM using mobile authentication without a plastic card. At present, to get any emergency cash, we really no need to call telephone banking and get the one time access code to get the emergency cash from ATM.

Firstly, Get Emergency cash onetime secret code can be generated from App.
If we pair customer mobile and ATM using mutual authentication as mentioned above, we won’t need to generate the one-time access code.

Branch channel usage:
Widely used Customer Identification and Verification mechanism at the branch is using a plastic card (Chip&PIN OR Signature across UK banks). Some/Most of the banking services can be made available at the branch just with the phone along with some bio-metric security integration like fingerprint scanning to complete CIV to use the services offered by the bank.

Again, the overall idea is that customers have phone with them, so - they can be identified & verified using Mobile app secret code. And hence, No additional identification mechanism will be needed to use the services offered by the customer - once customer’s mobile device has been paired with our banking network.

Additionally, we can offer this feature by minimizing the mobile banking app using Web client like Whatsapp web client to experience the app feature within desktop/laptop. Customers like me may be excited to use the app specific feature via desktop/laptop browser.

Do you think you have some idea and it can change the way we are doing banking today? Please write to me. We can catch-up.

Happy Learning,

Nanjundan Chinnasamy

Wednesday, January 6, 2016

Ideation Blog - Exposing few banks APIs (RESTFul) to the Public

I am planning to share my Ideas on the way we are banking today. Also, how the technology can be used to help our Customers on day to day basics. Again, Banks are not there to Server Customer alone. To Make Profit as well J. Next 4-5 blogs will be more specific to how banks can make money using the new technology and trends.

Banks can follow Project-centric approach to Product-Centric approach. What do i mean by this? Banks should not limit to implement the project. Rather banks should proactively think to convert Projects to Product to make more money out of it. Few points are,
ü  As a bank, we can think of exposing our APIs like Telecoms to generate income by following Product centric approach.
ü  Open/Closed API model to increase the traffic.
ü  APIs are a channel to new customers and markets.
ü  APIs promote innovation & revolution is Banking. Like Savings account deal comparator, all banks branch/ATM locator etc..
ü  APIs are a better way to organize IT.
ü  APIs create a path to apps.

Business Benefits:
ü  API’s will generate indirect income to the bank.
ü  A free API is free advertising.
ü  Free APIs encourage 3rd party developer usage.
Eg: Expedia’s 70% revenue comes from API

Above points are explicit. So i am not going to explain in detail. If you are seeking for more specific details on any of the points above, i am happy to clarify you.

Happy learning!


Nanjundan Chinnasamy

Pega Decisioning Consultant - Mission Test Quiz & Answers

The Pega Certified Decisioning Consultant (PCDC) certification is for professionals participating in the design and development of a Pega ...