Friday, February 16, 2018

MongoDB Transactions and ACID compliance

MongoDB is a most popular NoSql database amongst all other NoSql databases. There is a main difference between SQL and NoSQL is that SQL supports transactions and NoSQL do not. Databases are selected depending upon the business requirements, development feasibility, scalability, and agility.

Transactions are important. Any database needs to offer transactional guarantees to enforce data integrity. But they don’t all do it in the same way – different database technologies follow different mechanism.Transactions in a database is a sequence of operations performed as a single logical unit of work. A logical unit of work must conforms  four properties of ACID to qualify as a transaction. The properties are called the atomicity, consistency, isolation, and durability. 

Thursday, October 19, 2017

Coding from the passion!

I have been writing computer programs from the second year of my bachelor study. Now, it has been over 6 years since then. I did not have CSE as major in the University. That's why writing code was my hobby, passion, art whatever you say. I feel most excitement when my code works and gives me output as I expect. Therefore, programming started to be considered as a creative field for me where I can show up or create most challenging things. I know every programmer feel the things same as I do.

As programming is an art and creative things derive from passion, Programmer always love to work in good environment with latent peoples and with challenging exciting projects. But, Traditional full-time job sometimes becomes boring and even bitter in some cases. These days remote work is being more popular among software developers for its various advantages.

Friday, July 14, 2017

JavaScript Best Practices Checklist / Important Things

Learning new things every day is a great habit that makes people great and ideal human being. As a developer, it is a part of our job. Developers are always accustomed to learn new things regularly. Sometimes, it becomes part of our daily work and sometimes it happens for more curious minds who advance always themselves with new technology and best practices.

Best practices is a significant coding style for every professional software developer. Your code is not enough good when machine can only read it and other developers can not. Your code should be human readable too. That's why ideal developers follow best practices for their coding style. It makes their code more sophisticated, readable, elegant, and comprehensive for every other developer.

In this article, I will point out a few important JavaScript best practices that you can remember easily.

1. Avoid polluting global scope. Always use IIFE (Immediately-Invoked Function Expression)
(function () {
   var foo = 12;
   console.log(foo);
   // 12
})();
 
 More Examples:
 
const getName = function () { }()     // ✗ avoid 
 
const getName = (function () { }())   // ✓ ok 
const getName = (function () { })()   // ✓ ok 

2. Use "use strict" to protect version compatibility and unexpected error. Best to use inside IIFE
(function () {
   "use strict";
   var foo = 40;
   console.log(foo);
   // 40
})();
 

Tuesday, April 4, 2017

How to make image slider in AngularJS from scratch

Hi, I hope you like angular and seeking to make an image slider, right? I will show you how to make image slider in AngularJS from scratch.
I was searching for a good slider in AngularJS that will be able to show my products with three images in a row or carousal but one image in the middle will be some bigger or some different style look. I did not find proper library that can meet my exact need. Finally, I decided to make the slider from scratch that will fulfill my requirements.

I will share with you the tricky ways in AngularJS that I followed to make the slider. You can also make your own slider if you can understand my tricky rules. That's actually very easy thing when you know JavaScript well and set necessary algorithm. I will make a slider that will display three image in a row and will pass by one image when click on next or previous and it will come the next images repeated after it  finishes the view. The slider will look like the following.


I have followed a basic project structure for angular slider project. Here is my folder and files structure.

Sunday, October 16, 2016

Comparing Nodejs v6 Vs PHP7 Performance Benchmarking

I will show you a comparison of performance between Nodejs and PHP. This is my PC configuration.



I will compare
===================
The version of NodeJS:  v6.4.0
The version of PHP   : PHP 7.0.8


Nodejs Code:

app.js
var http = require('http');
var server = http.createServer(function (request, response) {
response.writeHead(200, {"Content-Type": "text/plain"});
response.end("Hello World\n");
});
server.listen(8000);


PHP code

index.php

<?php

echo "Hello world";

Running the server:
===============
I have used node built-in http server to run the nodejs code
node app.js 
 the node server is running on http://localhost:8000

And I have used php built-in server to run the php code

php -S localhost:8080

the php server is running on http://localhost:8080


Benchmarking:
==================
I did benchmark with siege, and ran them on the same machine. To install siege on Ubuntu, you can run sudo apt-get install siege . First, I have run this test on node server


siege -q -c 100 -b -t 60s http://localhost:8000/

and got this result for Node:

Transactions:              572363 hits
Availability:              100.00 %
Elapsed time:               59.29 secs
Data transferred:            6.55 MB
Response time:                0.01 secs
Transaction rate:         9653.62 trans/sec
Throughput:                0.11 MB/sec
Concurrency:               99.83
Successful transactions:      572363
Failed transactions:               0
Longest transaction:            0.04
Shortest transaction:            0.00

Afterwards, I have ran the same test on php  server  by the following command


siege -q -c 100 -b -t 60s http://localhost:8080

and got this result for PHP:

Transactions:              443534 hits
Availability:              100.00 %
Elapsed time:               59.49 secs
Data transferred:            4.65 MB
Response time:                0.01 secs
Transaction rate:         7455.61 trans/sec
Throughput:                0.08 MB/sec
Concurrency:               99.74
Successful transactions:      443534
Failed transactions:               0
Longest transaction:            0.08
Shortest transaction:            0.00

Finally, we can see that NodeJS is more faster than PHP.

Thursday, September 1, 2016

What is Module in AngularJS

AngularJS is one of the most popular JavaScript MVC framework now in the field of web application development. It is used mostly to develop Single Page Application (SPA). Understanding Module in AngularJS is very important to develop your application efficiently, Most importantly when you need to write modular code.

Sunday, August 21, 2016

Notification Schema Design in MongoDB

 I was searching for a best solution to design a notification schema in No-SQL database. I was using MongoDB and Mongoose ORM in Node app. I had to maintain the idea of scalability. That's why I tried to keep my schema in a single collection instead of using multiple collections.