Skip to main content

Posts

How to Open a File in Vim Editor without Navigating through all the nested Directories

                      O ne day I was working on something and I needed to modify the configuration file on the server. So I had to navigate to all the way through nested directories and then finally edit the file. The requirement was quite frequent and every time I had to navigate to multiple directories. This post is about to simplify the above task. For example, We need to edit the following file. File path : /home/alex/Softwares/apache-tomcat-7.0.62/webapps/live-service/WEB-INF/classes/conf/database/database.conf We can do it by using the below command: alex:~$ vim /home/alex/Softwares/apache-tomcat-7.0.62/webapps/live-service/WEB-INF/classes/conf/database/database.conf If we count the nested directories, There are 10 directories We need to navigate through and It is cumbersome even we know the exact path of the file. We will try to do something which can reduce the effo...

Hibernate Template vs Entity Manager while Persisting a List of Entites

I did a test for comparison between  org.springframework.orm.hibernate3.HibernateTemplate and   javax.persistence.EntityManager . I am sharing the result of my analysis. use case : Persistence of a List of Entities. environment : Linux 64-bit, jdk_1.8 When I run the test I found that Entity Manager performing better when persisting large size of list. An image can tell better than thousands words. So find the below image to see the performance difference between the frameworks. Data Table: Graph Chart:

Best Way to use ArrayList in Java

                      I n the following post we are goning to discuss a little variation in use of ArrayList in java. We will see how we can improve the performance by just a small change. First of all run the below java code on your machine. import java.util.ArrayList; import java.util.List; public class Test{ public static void main(String... args) { int s = 10000000; String v = "PROGRAMMING"; long t1,t2; //Segment-1 t1 = System.currentTimeMillis(); List<String> l1 = new ArrayList<>(); for(int i=0; i<s; ++i){ l1.add(v); } t2 = System.currentTimeMillis(); System.out.println("Time for above segment-1 : "+(t2-t1)+" ms"); //Segment-2 t1 = System.currentTimeMillis(); List<String> l2 = new ArrayList<>(s); for(int i=0; i<s; ++i){ l2.add(v); } t2 = System.currentTimeMillis(); System.out.println("Time for abo...

About Software Design and Development

When we plan to design a software we need to focus certain things. Here are some important points we can go through. Functional Decomposition: Functional decomposition is natural way to deal with complexity. The challenges with this approach: to dealing with change and bugs originate with changes to code. Low cohesion, tight coupling Focus on function leads to a cascade of changes from which it is difficult to escape. The Problem of Requirements: Requirements always change. Requirements are incomplete. Requirements are usually wrong. Requirements (and users) are misleading. Requirements do not tell the whole story. Deal with Changes(Use Functional Decomposition): Shift responsbility from yourself to...

Builder Pattern : Java Code Example

Builder Pattern Builder Pattern is used when the increase of object constructor parameter combination leads to an exponential list of constructors. It is a solution to the telescoping constructor anti-pattern. Let's describe the pattern by using a sample requirement. Problem: We need to create a class for a Customer in a Bank and need following attributes in the Customer object. {Name, Father's Name, Date Of Birth, Mobile, Email, PAN, Permanent Address, Correspondence Address, Account, Branch} Constraint : Name,Date Of Birth,Account can not be null or empty There are 10 attributes in the objects So there will be total 2^10(1024) possible constructor and It is not practical to write all required constructors. One alternative could be to use Setter method but it will not work if any attribute has final modifier and would be difficult to fulfill the constraint that some attributes can not be null or empty. Now We will see how Builder Design Pattern helps to solve...

How to Create a Namespace in Aerospike Database

                      T his post is about creating a namespace in Aerospike. I could not find any concrete method to create a namespace like create database in MySQL and MongoDB. So I am suggesting a way to create a namespace in Aerospike Database. Step-1: Locate config file aerospike.conf and open it in your favorite editor and make sure you have permission to modify the file. In my system the path of file /etc/aerospike/aerospike.conf (Default in Ubuntu). Here the content of the file. # Aerospike database configuration file. service { user root group root paxos-single-replica-limit 1 # Number of nodes where the replica pidfile /var/run/aerospike/asd.pid service-threads 4 transaction-queues 4 transaction-threads-per-queue 4 proto-fd-max 15000 } logging { # Log file must be an absolute path. file /var/log/aerospike/aerospike.log { context any info } } net...

Books : Every Computer Science Student Should Read Before Leaving College

Awesome books for Computer Science students: =================================================================== ------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------ -------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------    ------------------------------------------------------------------------------------------------------------------------  -----------------------------------------------------------------------------------------------------------...