Thursday 18 February 2016

Unit testing in database driven projects

DbUnit is a JUnit extension (also usable with Ant) targeted at database-driven projects that, among other things, puts your database into a known state between test runs. This is an excellent way to avoid the myriad of problems that can occur when one test case corrupts the database and causes subsequent tests to fail or exacerbate the damage.

http://www.dbunit.org/

Managing project dependencies while using Ant

Ivy (The agile dependency manager) - Ivy is a tool for managing (recording, tracking, resolving and reporting) project dependencies. It is characterized by the following:
  1. flexibility and configurability - Ivy is essentially process agnostic and is not tied to any methodology or structure. Instead it provides the necessary flexibility and configurability to be adapted to a broad range of dependency management and build processes.
  2. tight integration with Apache Ant - while available as a standalone tool, Ivy works particularly well with Apache Ant providing a number of powerful Ant tasks ranging from dependency resolution to dependency reporting and publication.
Ivy is open source and released under a very permissive Apache License.

Ivy has a lot of powerful Features, the most popular and useful being its flexibility, integration with ant, and its strong transitive dependencies management engine.

The transitive dependencies management is a feature which lets you get dependencies of your dependencies, transitively. In order to address this general problem, ivy needs to find metadata about your modules, usually in an ivy file. To find the metadata and your dependencies' artifacts (usually jars), Ivy can be configured to use a lot of different repositories.

http://ant.apache.org/ivy/index.html
http://ant.apache.org/ivy/history/latest-milestone/tutorial.html

Open source API

Joda Time - Java date and time API -

Joda-Time provides a quality replacement for the Java date and time classes. The design allows for multiple calendar systems, while still providing a simple API. The 'default' calendar is the ISO8601 standard which is used by XML. The Gregorian, Julian, Buddhist, Coptic, Ethiopic and Islamic systems are also included, and we welcome further additions. Supporting classes include time zone, duration, format and parsing.

Guidelines & Best practices

Refactoring -
http://martinfowler.com/bliki/OpportunisticRefactoring.html
http://www.refactoring.com/catalog/index.html

CSS Best Practices -https://developer.mozilla.org/en-US/docs/CSS/Writing_Efficient_CSS?redirectlocale=en-US&redirectslug=Writing_Efficient_CSS
https://developers.google.com/speed/docs/best-practices/rendering
http://www.onextrapixel.com/2012/05/03/css-tricks-how-to-speed-up-css-rendering/


Implement Continuous Integration (Build and Deployment)
http://www.lordofthejars.com/2012/09/deploying-jee-artifacts-with-jenkins.html

Other best practices
  1. Use javadoc tags to imrpove internal documentation quality
  2. Check the software aging signs are not existing
  3. Exception object creation is slow so should be used carefully 
  4. Jenkins best practices
  5. Jenkins configuration backup plugin

Buying a wireless router

Router with best WiFi range - http://compnetworking.about.com/od/wirelessrouters/f/bestwifirange.htm
802.11n Info - http://compnetworking.about.com/od/80211nwirelessrouters/802_11n_Wireless_Routers.htm
Cable Vs DSL Modem - http://www.youtube.com/watch?v=VLcPvz5k-Ac
Setting up cable modem and Router -http://www.youtube.com/watch?v=rEUAAiAIKbw&feature=relmfu
Setting up DSL modem and Router -http://www.youtube.com/watch?v=4clBtigoFpA&feature=fvwrel
Setting up Only Router - http://www.youtube.com/watch?v=kawBR2YtjmA&feature=fvwrel
Installing only DSL Router - http://www.youtube.com/watch?v=JPqKgVn_JsU&feature=related

Quartz

maven dependency - http://quartz-scheduler.org/downloads/catalog

Quartz sample http://www.mkyong.com/java/quartz-scheduler-example/
Tutorial -http://www.quartz-scheduler.org/documentation/quartz-2.1.x/tutorials/
Example - http://www.quartz-scheduler.org/documentation/quartz-2.1.x/examples/

Tutorial - http://www.roseindia.net/quartz/index.shtml
Quartz cook book -  http://quartz-scheduler.org/documentation/quartz-2.x/cookbook/
Documentation  - http://quartz-scheduler.org/documentation
Other Module dependencies - http://quartz-scheduler.org/downloads/catalog
Quartz inside web app- http://onjava.com/onjava/2006/03/01/job-scheduling-in-web-application.html
 http://stackoverflow.com/questions/4905671/email-notifications-and-reminders-in-java-web-app-using-quartz-scheduler
Quartz available jobs - http://quartz-scheduler.org/api/2.1.0/org/quartz/jobs/package-summary.html
API Doc- http://quartz-scheduler.org/api/2.1.5/index.html

Salil's Bookmarks

Way to improve English vocabulary and grammer

Games-
http://www.vocabulary.com/
http://www.english-test.net/gre/vocabulary/words/026/gre-test.php
http://www.vocabularycoach.com/default.aspx
http://freerice.com

Search Engine Optimisation of Blog

Optimizing the site -
Title Optimization - http://freshtutorial.com/search-engine-optimization-blogger/

Improving content and design quality - 
Nicely aligned & formatted code - http://codeformatter.blogspot.in/2009/06/about-code-formatter.html

<pre  style="border:1px dashed #CCCCCC;width:99%;height:auto;overflow:auto;text-align:left;line-height:20px;"><code style="word-wrap:normal;">

-- Your code goes here

</code></pre>

Java vs Groovy

Software design principals

Java interview Preparation


Dependency Injection design pattern - http://en.wikipedia.org/wiki/Dependency_injection
Intercepting filter - http://java.sun.com/blueprints/patterns/InterceptingFilter.html
J2EE Filter Example - http://viralpatel.net/blogs/2009/01/tutorial-java-servlet-filter-example-using-eclipse-apache-tomcat.html
Spring IOC- http://www.roseindia.net/tutorial/spring/spring3/ioc/index.html
Immutable Objects -  http://www.java-questions.com/ImmutableClass_interview_questions.html
Filter life cycle - http://srikanthtechnologies.com/articles/j2ee/filters.html
Servlet life cycle - http://www.javabeat.net/tips/118-servlet-life-cycle.html
JSP life cycle - http://www.deepakgaikwad.net/index.php/2009/04/15/jsp-life-cycle.html/comment-page-1
Request Dispatcher - http://docs.oracle.com/javaee/5/api/javax/servlet/RequestDispatcher.html
Star  interview technique -  http://www.youtube.com/watch?v=0nN7Q7DrI6Q
Understanding reference types - http://weblogs.java.net/blog/2006/05/04/understanding-weak-references
 http://mindprod.com/jgloss/weak.html
Implementing a Least-Recently-Used(LRU) Cache -http://www.roseindia.net/java/example/java/util/LRUCacheExample.shtml
Object identify and importance of understanding - http://today.java.net/pub/a/today/2006/07/27/defining-object-identity.html

Multithreading interview questions
- http://www.fromdev.com/2008/05/java-threading-questions.html
http://geekexplains.blogspot.in/2009/10/why-waitnotify-and-notifyall-in-object.html
http://www.ibm.com/developerworks/java/library/j-5things15/index.html
http://veerasundar.com/blog/2010/11/java-thread-local-how-to-use-and-code-sample/ 

Common Java interview questions urls -
http://java-questions.com/garbagecollection_interview_questions.html
http://java2novice.com/java_interview_questions/
http://thecafetechno.com/tutorials/interview-questions/most-frequently-asked-core-java-interview-questions-and-answers/

Design Principals - http://salilstock.blogspot.in/2013/01/software-designing-principals.html

Scenario Based Questions -
File upload - http://balusc.blogspot.sg/2007/11/multipartfilter.html

Hibernate -
http://stackoverflow.com/questions/1921865/how-to-connect-to-mutiple-databases-in-hibernate

Information for debugging Sybase issue

Business object Basics

Performance tuning of web application

Liquibase - Open source library for tracking managing and applying changes

Tuning the Data Access and Data Layer

There are multiple tweaks if performed on data access and data layer,significant improvement would be visible in the application. List of some such tweaks is as mentioned below -

Tuning Data Layer
  1. Use materialized view, (if suitable) in place of very time consuming queries or views
  2. Use query re-write
  3. Use parallel execution of queries 
  4. Use PARALLEL_DEGREE_LIMIT to control parallization on database level
  5. Partition big tables 
  6. Choosing the right isolation level
  7. Use sql trace and explain plan both to analyze query for tuning
  8. Loading data very fast using partition exchange
  9. Types of index and correct one to choose from

Tuning dataaccess Layer
  1. Identify and resolve select n+1 problem in hibernate
  2. Use in clause in hibernate only if options inside in clause are few  
  3. Avoid using explicit getSession in spring-orm
  4. Use jdbc batch while firing multiple query using jdbc 
  5. Prefer batch operation in hibernate while executing multiple queries 
  6. Prefer ordered collection over sorted collection in hibertnate
  7. Prefer parametrized SQL over completed sql created at run time
  8. For batch operations prefer 11g version driver for better performance

jQuery - javascript library

Oracle Pl/SQL programming

JavaScript Fundamentals

Improving Application Performance

Compressing files on Apache with mod_deflate  - http://www.electrictoolbox.com/compress-files-apache-mod-deflate/

Apache mod deflate - http://httpd.apache.org/docs/2.2/mod/mod_deflate.html

Minify Javascript and CSS with YUI Compressor - http://www.electrictoolbox.com/minify-javascript-css-yui-compressor/

Force reload of updated CSS and Javascript files with unique filenames - http://www.electrictoolbox.com/force-reload-css-javascript-unique-filenames/

Mod index - http://httpd.apache.org/docs/2.0/mod/
mod_expires -http://httpd.apache.org/docs/2.0/mod/mod_expires.html
mod_file_cache-http://httpd.apache.org/docs/2.0/mod/mod_file_cache.html
mod_rewrite-http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html
mod_cache-http://httpd.apache.org/docs/2.0/mod/mod_cache.html
Dynamic loading images - http://www.freeiconsweb.com/Free-Downloads.asp?id=585 Performance of various java Script frameworks - http://blog.creonfx.com/javascript/dojo-vs-jquery-vs-mootools-vs-prototype-performance-comparison

Spelling Correction

Wrong Spelling
Right Spelling
Compulsary
Compulsory
Delievery
Delivery
Plateform
Platform
evaluvator
evaluator
catagory
category

FrequentlyUsedEnglishWords


connive Secretly allow (something considered immoral, illegal, wrong, or harmful) to occur you have it in your power to connive at my escape
vie contend for superiority Congress vies for more LS seats
rejig to rearrange, alter, or manipulate, sometimes in a slightly unscrupulous way Under fire for letting Pak off hook,govt to rejig position
quash to make void, annul, or set aside (a law, indictment, decision, etc.) HC quashes four-year police case against teenage volunteer
satiated satisfied, as one's appetite or desire, to the point of boredom. Defence min eats his words, BJP satiated
turn turtle to overturn; upset Actor's car turns turtle at Oshiwara on way back from friend's party
mayhem random or deliberate violence or damage "There was mayhem in Kishtwar town for over 8 hours. This situation should have been brought under control immediately," Arun Jaitley said in Rajya Sabha
indigenous inherent; natural;originating in and characteristic of a particular region or country; Indigenous aircraft carrier INS Vikrant launched
Spar to bandy words; dispute. Manmohan, Subbarao spar over RBI's policies

Jenkins Concepts