Thursday, May 26, 2011

Productivity Tools


S.No

Tools

Detail

URL

1

Apache Ant

Java Build Tool

http://ant.apache.org/

2

Apache Maven

Software project management and comprehension tool

http://maven.apache.org/

3

Apache Tomcat

Open source software implementation of the Java Servlet and JavaServer Pages technologies

http://tomcat.apache.org/

4

Cygwin

collection of tools which provide a Linux look and feel environment for Windows

http://www.cygwin.com/

5

Fiddler

Fiddler is a Web Debugging Proxy which logs all HTTP(S) traffic between your computer and the Internet.

http://www.fiddler2.com/fiddler2/

6

Grails

Grails is a high-productivity web framework based on the Groovy language

http://www.grails.org/

7

Gwt

Google Web Toolkit (GWT) is a development toolkit for building and optimizing complex browser-based applications

http://code.google.com/webtoolkit/

8

iReport

The report designer for JasperReports and JasperServer

http://jasperforge.org/projects/ireport

9

jad

Java Decompiler

http://www.varaneckas.com/jad

10

Java Decompiler (JD-GUI)

JD-GUI is a standalone graphical utility that displays Java source codes of “.class” files

http://java.decompiler.free.fr/?q=jdgui

11

JMeter

Java desktop application designed to load test functional behavior and measure performance

http://jakarta.apache.org/jmeter/

12

Notepad++

free (as in "free speech" and also as in "free beer") source code editor and Notepad replacement that supports several languages

http://notepad-plus-plus.org/

13

Putty

Telnet and SSH Client

http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

14

SQLDeveloper

Database frontend

http://www.oracle.com/technetwork/developer-tools/sql-developer/overview/index.html

15

Sun JDK

JDK

http://www.oracle.com/technetwork/java/javase/downloads/index.html

16

SVN

command-line SVN

http://www.sliksvn.com/en/download

17

Tortoise-svn

Windows Shell Extension

http://tortoisesvn.tigris.org/

18

Violet UML

UML Editor

http://alexdp.free.fr/violetumleditor/page.php

19

Firefox

Browser

http://www.getfirefox.net/


Plugins




Yslow



Firebug



Selenium



Greesemonkey


20

Eclipse


http://www.eclipse.org/downloads


  • STS – Springsource Tool Suite

  • Eclipse Java Development Tools

  • Eclipse Platform

  • EMF - Eclipse Modeling Framework Runtime and Tools

  • Graphical Editing Framework Draw2d

  • Additional plugins :

  • Cypal Studio for GWT

  • EclEmma Java Code Coverage

  • Eclipse BIRT

  • Eclipse Checkstyle

  • Eclipse HTTP Client (http4e)

  • Eclipse XML Editors and Tools

  • FindBugs Feature

  • Java Code Review Feature

  • Java EE Developer Tools

  • Javascript Developer Tools

  • Log Analysis Core

  • Maven

  • Maven Integration for Eclipse

  • Maven issue tracking configurator for Mylyn

  • Maven : The Definitive Guide Book

  • Maven Embedder

  • MoreUnit Plug-In

  • Mozilla Rhino Feature

  • Mylyn

  • Mylyn Connector

  • Mylyn WikiText

  • PMD for Eclipse

  • RegexUtil

  • SoapUI Feature

  • Spring IDE

  • AJDT*, AOP*, Autowire, Core, JavaConfig, Mylyn, OSGi, Security, Web Flow

  • Subversion

  • Subclipse

  • Subclipse Integration for Mylyn

  • Subversion Client Adapter

  • TPTP v 4.5.1.v200901090100

  • Analysis, Charting, Core, JVMTI Profiler, Log & Traces Analyser, Monitoring Tools Project, Platform*, ...

  • Web Developer Tools

  • Wicked Shell

  • WSDL

  • XSD

  • Liferay Plugin

  • JBoss JBPM Plugin

  • Vaadin Plugin

  • Mule

  • Scala

  • Groovy




Friday, May 06, 2011

Tech Trends - My Observation

Attended GIDS 2011 few weeks back, watching the forums and other sources.
Based on those, my observations are -

1. Learn atleast couple of Alternate JVM languages like Scala, Groovy/Grails, JRuby etc.,
2. Start focusing on Tablet / Smartphone application development (Android, Objective C, Bada[Samsung], etc.,)

I'm not sure when the Desktops / Laptops getting phased off (could happen in the near future).
The reason why i'm skeptical is the war which is happening on the Tablet space

See the list of tablets (not based on the sales / market presence)
iPad, Galaxy Tab, PlayBook, S1, S2, etc.,

Thursday, May 05, 2011

Some Sample Code

All samples depend on the Perf4J.

- no title specified

import org.perf4j.StopWatch;

import org.perf4j.log4j.Log4JStopWatch;

public class ArrayCopy {

private static int count = 200000;

private static void nArrayCopy() {

StopWatch stopWatch = new Log4JStopWatch();

int arrayFirst[]= new int[count];

int arraySecond[] = new int[count];

for(int i=0;i<count;i++) {

arrayFirst[i] = i;

}

for(int i=0; i<count ; i++) {

arraySecond[i] = arrayFirst[i];

}

for(int i=0; i<count ; i++) {

if(i/5000 == 0)

System.out.print(arraySecond[i]);

}

stopWatch.stop("Normal Array Copy");

}

private static void sArrayCopy() {

StopWatch stopWatch = new Log4JStopWatch();

int arrayFirst[]= new int[count];

int arraySecond[] = new int[count];

for(int i=0;iount;i++) {

arrayFirst[i] = i;

}

System.arraycopy(arrayFirst, 0, arraySecond, 0, count);

for(int i=0; i<count ; i++) {

if(i/5000 == 0)

System.out.print(arraySecond[i]);

}

stopWatch.stop("System Array Copy");

}

public static void main(String[] args) {

nArrayCopy();

sArrayCopy();

}

}

import org.perf4j.StopWatch;

import org.perf4j.log4j.Log4JStopWatch;

public class ArrayCopy {

private static int count = 200000;

private static void nArrayCopy() {

StopWatch stopWatch = new Log4JStopWatch();

int arrayFirst[]= new int[count];

int arraySecond[] = new int[count];

for(int i=0;i<count;i++) {

arrayFirst[i] = i;

}

for(int i=0; i<count ; i++) {

arraySecond[i] = arrayFirst[i];

}

for(int i=0; i<count ; i++) {

if(i/5000 == 0)

System.out.print(arraySecond[i]);

}

stopWatch.stop("Normal Array Copy");

}

private static void sArrayCopy() {

StopWatch stopWatch = new Log4JStopWatch();

int arrayFirst[]= new int[count];

int arraySecond[] = new int[count];

for(int i=0;i<count;i++) {

arrayFirst[i] = i;

}

System.arraycopy(arrayFirst, 0, arraySecond, 0, count);

for(int i=0; i<count ; i++) {

if(i/5000 == 0)

System.out.print(arraySecond[i]);

}

stopWatch.stop("System Array Copy");

}

public static void main(String[] args) {

nArrayCopy();

sArrayCopy();

}

}

import java.util.HashMap;

import java.util.Hashtable;

import org.perf4j.StopWatch;

import org.perf4j.log4j.Log4JStopWatch;

public class HMHT {

private static int count = 2000;

private static void hashMapMan() {

StopWatch stopWatch = new Log4JStopWatch();

HashMap hMan = new HashMap();

for(int i=0;i<count;i++) {

hMan.put(i, i);

}

stopWatch.stop("HashMap");

}

private static void hashTableMan() {

StopWatch stopWatch = new Log4JStopWatch();

Hashtable hTable = new Hashtable();

for(int i=0;i<count;i++) {

hTable.put(i, i);

}

stopWatch.stop("HashTable");

}

public static void main(String[] args) {

hashMapMan();

hashTableMan();

}

}

import org.perf4j.StopWatch;

import org.perf4j.log4j.Log4JStopWatch;

public class Primitivies {

private static int count = 20000;

private static void usingChar() {

StopWatch stopWatch = new Log4JStopWatch();

char val=0;

for(char i=0; i<count;i++) {

val = (char) (val + i);

}

stopWatch.stop("Char");

}

private static void usingShort() {

StopWatch stopWatch = new Log4JStopWatch();

short val=0;

for(short i=0; i<count;i++) {

val = (short) (val + i);

}

stopWatch.stop("Short");

}

private static void usingInt() {

StopWatch stopWatch = new Log4JStopWatch();

int val=0;

for(int i=0; i<count;i++) {

val = val + i;

}

stopWatch.stop("Int");

}

public static void main(String[] args) {

usingChar();

usingShort();

usingInt();

}

}

import org.perf4j.StopWatch;

import org.perf4j.log4j.Log4JStopWatch;

public class StringMan {

private static int count = 2000;

public static void usingString() {

StopWatch stopWatch = new Log4JStopWatch();

String output= new String();

for(int i=0;i<count;i++) {

output = output.concat(Integer.toString(i));

}

stopWatch.stop("String");

}

public static void usingStringBuffer() {

StopWatch stopWatch = new Log4JStopWatch();

StringBuffer output= new StringBuffer();

for(int i=0;i<count;i++) {

output = output.append(Integer.toString(i));

}

stopWatch.stop("StringBuffer");

}

public static void main(String[] args) {

usingString();

usingStringBuffer();

}

}

import java.util.ArrayList;

import java.util.HashMap;

import java.util.Vector;

import org.perf4j.StopWatch;

import org.perf4j.log4j.Log4JStopWatch;

public class VALHM {

private static int count = 2000;

private static void vectorMan() {

StopWatch stopWatch = new Log4JStopWatch();

Vector vMan = new Vector();

for(int i=0;i<count;i++) {

vMan.add(i);

}

stopWatch.stop("Vector");

}

private static void hashMapMan() {

StopWatch stopWatch = new Log4JStopWatch();

HashMap hMan = new HashMap();

for(int i=0;i<count;i++) {

hMan.put(i, i);

}

stopWatch.stop("HashMap");

}

private static void arrayListMan() {

StopWatch stopWatch = new Log4JStopWatch();

ArrayList aMan = new ArrayList();

for(int i=0;i<count;i++) {

aMan.add(i);

}

stopWatch.stop("ArrayList");

}

public static void main(String[] args) {

vectorMan();

hashMapMan();

arrayListMan();

}

}

Wednesday, April 27, 2011

Failing to Plan is Planning to Fail

http://java.dzone.com/articles/failing-plan-planning-fail

Saturday, June 05, 2010

Fan is now Fantom

Did some work for few days long time back and recently came to know that FAN is now FANTOM



Check this........
http://fantom.org

Thursday, April 29, 2010

Two things ....

HP to buy Palm - http://money.cnn.com/2010/04/28/technology/hp_palm/index.htm?hpt=T2
Let's wait and see... another sensational product in the pipeline....
Apple's Market Cap is more than MS' - http://www.macworld.com/article/150809/2010/04/apple_marketcap.html

Wednesday, March 10, 2010