There are often cross cutting concerns in your app, such as logging, security checkpoints and or maybe business validations.

This is a very simple approach of implementing method interceptors in pure javascript.

The crux: This decorates all the methods for the given object with before and after interceptions.

intercept: function(o) {
 for (let p in o) {
 if (typeof o[p] === 'function') {
 let c = o[p];
 o[p] = function() {

Read complete blog post

CKEditor is a Rich text editor which is used in web applications to write email content, HTML content, templates etc. It provides many features to edit the text like styles, formatting (bold, italic, underline), HTML formatting, alignment options etc. We (QA Team) got a chance to test CKEditor when it was integrated with Realvolve. We created a scenario sheet for each day of testing. We had daily meetings with Dev team to discuss which features from CKEditor are going to deploy for next 1-2...

Read complete blog post

In our project, every time we get a new product from a Donor, we use InventoryNumber table to assign inventory_number to that product. InventoryNumber table has just two columns : (id, code). Code is nothing but the inventory_number that needs to be assigned to the product.

inventory_number needs to be auto-generated for every product and gets added to the InventoryNumber table once the the product is accepted by one of the admin. Also the interesting part is this inventory_number can also be...

Read complete blog post

It's been more than a year when i started learning knockout.js, now I felt it's time to share my experience with you all what i have learnt so far. As this is my first post on Knockout.js, i am going to introduce you to basics of knockout.js.

Knockout is library written in Javascript, which is based on MVVM approach for creating rich and responsive websites

Knockout.js become powerful with some of its highlighting features :

Dependency Tracking :

Knockout automatically identifies the changes...

Read complete blog post

Before start to explain, I Know some of you might have greater experience about this word Proxy. what does this really means?

Let me explain it through simple example, In our school days when class teacher used to take class attendance and if we found some of our friend missing then we still used to hear from back "yes madam" even though the person called is missing in the class. That is nothing but a proxy attendance, It means answering on behalf of someone and you all know if the proxy...

Read complete blog post

CABasicAnimation An object that provides basic, single-keyframe animation capabilities for a layer property.

Using init(keyPath:) method of CABasicAnimation you can animated particular the key path of the property.

Properties of CABasicAnimation

var fromValue: Any?

Defines the value the receiver uses to start interpolation.

var toValue: Any?

Defines the value the receiver uses to end interpolation.

var byValue: Any?

Defines the value the receiver uses to perform...

Read complete blog post

This is part 2 of 'How does Ember Boot?'. If you haven't read 'How does Ember Boot?' part 1 you might consider reading it first.

In the last article our main focus was Ember.Application which is sort of static part of Ember boot process. Now we will look into didBecomeReady() and Ember.ApplicationInstance. Which deals with initialization and creation of instances. Ember.Application is called only once but Ember.ApplicationInstance can be n number of times based on number of requests for the...

Read complete blog post

Now a days in many website we use chart to show the statistics for the site and there are many plugins and gems available for it. But I liked one gem Chartkick that I used in one of our application to create column chart to show weekly, yearly and From date - ToDate range statistics of site. I found it very useful and easy to use. You will get details about chartkick here.

To use chartkick you have to just follow simple step and you are ready to create beautiful Javascript charts with one...

Read complete blog post

In one of our Rails application, we needed to generate password protected PDFs. We used wicked_pdf (an awesome gem that generates PDFs from HTML template) to generate PDFs but it doesn't provide feature to secure it.

While searching for solution to secure PDFs we came across PDFtk (PDF toolkit). It is a cross-platform tool for manipulating PDF documents. It has feature to add password to PDF document using "user password" as well as "master password" (owner password) which is great.


Read complete blog post

I will be showing the steps Ember takes to startup before you start seeing your page rendered in the browser. There is a lot of steps and packages involved in this process but I'll try to make it as simple and compact as possible. Following snippet shows the steps in brief which I will be explaining in detail as we proceed.

Ember has evolved from being the SproutCore 2.0 framework to a modern trusted Javascript framework used by major tech companies like Apple, LinkedIn and Vine, ever since...

Read complete blog post

Rspec has great feature and that is trait. In rspec we create factory for each class which provides the simplest set of attributes necessary to create an instance of that class. Many times we need some attributes which we do not want to add in original factory and at the same time we do not want to repeat it. In such scenario rspec trait is good option. For few attributes we need different values and we want to use it at multiple places can be another reason to use it.

Without Trait:


Read complete blog post

Server side rendering need lots of configuration to get up and running if you choose to use boilerplate which is filled with package that you may not need, well next.js is developed to solve this problem and it makes server-side rendering in React a breeze

What you will learn in this article

  • Get up and running with Next.js
  • Add Client-side transitions between routes
  • How to do handle Ajax in Next.JS
  • create reusable component for rendering Layouts

To get started with you need two things Nodejs...

Read complete blog post

iOS 9 introduced a new way of creating Popovers on iPhone. Instead of using the UIPopoverController class we can now use the UIPopoverPresentationController.

Presenting a Popover from a Bar Button Item

We need a content View controller that's displayed inside the Popover and also need to set properties for contentSize, modalPresentationStyle and sourceView.

Action for right BarButtonItem-

 @IBAction func addEntity(_ sender: UIBarButtonItem) {
 let vc: TableViewController =...

Read complete blog post

I was facing an issue while working on one of my Ember Apps. Issue was like, Ember data store was not updating the record after receiving the response from backend.

So whenever user visit the page, it was showing the old data of that record from Ember-Data store. After some searching I found that Ember-data by default doesn't re-request data that is already present in Ember-data store.

If parent route's model has loaded an array of objects then the child route that requires specific object...

Read complete blog post

enter image description here

Postgres uses a mechanism called MVCC(Multi Version Concurrency Control) to track changes in your database. Due to this reason, some of the rows become “dead”. Dead rows are generated by DELETE and UPDATE operations, as well as transactions that have to be rolled back. Refer this link learn more about MVCC.

These dead rows keep on adding as there are lots of updates and deletes. Periodic clean up of these dead rows is necessary to not only save space but also maintain the performance of your...

Read complete blog post

Hi Everyone..!! All of us have dreams to accomplish so many things in our lives..!! There are many instances in which we face difficulties in fulfilling our dreams and sometimes we just let go those dreams due to irritation or frustration that we go through due to those difficulties. But Dreams are one of the reasons for which we live life for and letting them go without fulfilling them is a big heart break..!! I would request all of you to never forget your dreams and kindly go through this...

Read complete blog post

Recently while working on one of our project we came across requirement where we wanted Hubspot integration with our application for ease of sales team to manage user's data and understand their interactions and trends in application. I will quickly explain few things about Hubspot here in my article.

What is Hubspot?

In brief, Hubspot is a CRM which helps you monitor and fine tune many things regarding your application. Based on my analysis I will shortly list down few most important of them...

Read complete blog post

Currently I've been working on writing acceptance test cases for my project in which there were lot of scenarios where I'd to use mocking/stubbing for which I used MockJax plugin of jquery.

So I'm sharing some examples which might be useful to someone.

A simple mock request using mockjax plugin can be written as

 url: '/posts/1',
 responseTime: 500,
 responseText: {
 status: 'success',
 post: 'Mockjax Plugin for mocking or simulating ajax...

Read complete blog post

As an Ember developer, discovering Yarn package manager by Facebook was the best that could happen to me. Whenever one of my fellow developers encountered “Broccoli Plugin failed…” I used to say ‘rm -rf node_modules’, that’s what my seniors told me and I continued the tradition.

That was very frustrating and as a beginner, I use to blame it all on Ember as I didn’t understand much of what was happening. As time passed I realized npm was the culprit. But a few months back I discovered this...

Read complete blog post

Recently, I had come across a situation where I had to make 2 ajax calls sequentially, i.e. fetch address from GeoLocation API and send it to Fedex API for fetching the transit time. For this, I needed to convert the address from GeoLocation in particular format using loop to send it to Fedex. Initially, I used '$.each()' method of jquery on an address array to convert it in desired format. This is common approach that we follow and it took 1.12ms for the processing. I wanted to reduce this...

Read complete blog post