Posts

REST API Best Principles

Image
As we are using REST APIs more and more nowadays, I thought of listing some of REST APIs best principles or practices that developer should take care of while designing/developing REST APIs. Please feel free to provide your thoughts. 1.        URI - a.        Name versus Verb - Concrete names should be used for Resource name instead of action verbs. e.g. if API is to get users, it should be GET /USERS and not getUsers b.        Singular versus Plural - There is always debate on if singular noun should be used or plural for the resource name. I think answer is that it depends. e.g. if GET API might return the list then it should be plural. But if API is for single object e.g. Cart, then it could be singular. In general, plural will provide more flexibility to return single or multiple records. c.        Spinal case versus camel case - Shall we use camel case(like Java) or spinal case(-)? I think it is individual preference. But some of the rest principles enco

New age career opportunities in Information Technology after graduation

Image
IT boom is almost over now. Gone are the days when anyone knowing only technologies like Java, JSP, Servlet etc could have easily landed a job. Data is growing fast with companies like Facebook,LinkedIn,Twitter and competition between the companies is getting tough day by day. Today, companies focus on user experience and personalization and therefore, the need to harness this vast data is more important than ever. Now how this is translated to the newer career opportunities for graduates who have just graduated.   1. Big Data Data is growing at a rapid pace (doubling in every two years). Every year, we perform 1.2 trillion searches. Facebook users send on an average 30+ million messages every minute. Since data is growing at fast rate, it arises need to store and process the data. There are many technologies like Hadoop,Hive, MongoDB, Couchbase, Spark etc which allows user to store tons of data. This is one of the area which started growing in last couple of years and will also

Analytics - Google vs Adobe Analytics

Primary purpose of analytics is to capture user behavior and display it in the reports in order to analyze user behavior. Behavior could be in term of how many users are accessing the website, their id, type, demography, device, browsers, page visited, etc. These are just some examples and lot of other variables could also be captured. In any typical eCommerce website, we can capture: 1. Items added to the cart 2. Conversion rate 3. Abandoned cart (which will help in sending targeted email to the user). Tracking of such parameters can give good insight about user behavior. There are many tools (open source and proprietary) available in the market for tracking. Among the commonly used front end analytic tools are Google and Adobe Analytics. Both have documentation in form of tutorials and video available. Both version allow you to collect data from websites, mobile apps for iOS and Android. Adobe and Google use very complex algorithms to calculate sessions, time spe

Writing Use case effectively

Before discussing about what goes into Functional Specification document, let us understand what is a Functional Specification(FS) document and why we need it. Functional specification is the document containing requirement in detail, helping business in understanding and confirming the requirement. Moreover, it gives developer details of the requirement Business requirement document is the other artifact that has details about the requirements. But it list requirements at high level and not the details. FS contains requirement in detail, including validation and alert messages etc. A complete Functional Specification document contain purpose, scope, assumption and use cases etc. This article is about the typical format of use cases that would help business in reviewing the requirements and developers in implementation. Though FS document template might vary depending on the requirement, I am listing high level items that should go inside use cases. Use Case number  

Improving performance of single page application or front end web application

Now a days, most of the people are using single page application. Before I mention performance testing of single page application, I should mention what is single page application and why it is getting popular. Single Page Application (known as SPA) - As it is clear from the name, single page application contains primarily one main html page and rest of the pages are different views in addition to the main html page. User will not see any change in the url once main page is loaded. They can click on different features and only some portion of the main page will be reloaded thus providing good user experience. Why single page application is getting popular - There are many reasons but some of the main reasons are - Entire page is loaded only once at client end and will be served from client side thus performance will be fast HTML/CSS/JS can be cached on first load and network call(except fetching dynamic data) will not be required to load static assets. User will not observe p

What's new in AEM 6.0

Below are the changes introduced in Adobe Experience Manager(AEM) 6.0 1.Sightly HTML template system introduced in place of jsp.Primary objective of Sightly is - Sightly template is based on HTML5 thus allowing designer to focus on design related part and not to  aware of CQ knowledge. - Secure by preventing cross site scripting attacks - Seperation of concerns(presentation logic with business logic). 2.New foundation components 3.New developer mode in AEM 6 4.Architecture changes - Mongo DB(Mongo MK) introduced in AEM 6 - Persistence has been rewritten. Jackrabbit 3(Oak) repository has been integrated with AEM 6. Instead of persistence manager,  Micro Kernels(MK) like TarMK and MongoMK has been added. 5.Data Store Connector for S3 has been included in AEM 6. Now you can store data in cloud without hosting instance on cloud. 6.Eclipse Jetty has been introduced in place of CQ Servlet Engine. 7.HTML5,CSS,JQuery based Coral UI has replaced ExtJS based side kick. 8.A

Digital Marketing Concepts

Image
This is a snapshot of what is digital marketing and its components. Digital Marketing  In simplistic terms, digital marketing is the promotion of products or brands via one or more forms of electronic media. Digital marketing differs from traditional marketing in that it involves the use of channels and methods that enable an organization to analyze marketing campaigns and understand what is working and what isn’t – typically in real time. While the Internet is perhaps the channel most closely associated with digital marketing, others include wireless text messaging, mobile instant messaging, mobile apps, podcasts, electronic billboards, digital television and radio channels, etc. Below are the high-level activities and sub activities required for digital marketing. 1. Get site online The first major step is to get your site designed and developed either by your in-house team or out-sourcing to some third party. A good website attracts target audience and builds traff