Thursday, October 21, 2010

Java Performance Tuning

Oracle Technetwork article on gc tuning
Memory leaks in Java

java
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=9000
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-agentlib:hprof=heap=dump,file=/tmp/hprof.bin,
format=b,depth=10
-jar java_app.jar

use jconsole from JDK 6

Saturday, August 14, 2010

Ssh Port forwarding

SSH port-forwarding can allow secure access to remotehost/remoteport even if firewalls don't allow a direct connection; as long as we can access an ssh-server that has access to the remotehost/remoteport.

ssh -f -L localport:remotehost:remoteport hostname tail -f /dev/null

ssh-server must be running on hostname and hostname must be able to connect to remoteport and remotehost.

Saturday, July 31, 2010

Branch vs Trunk based development

Branching to develop new features is a common practice with large software development efforts. This has several drawbacks - primarily it prevents refactoring because merges become a huge problem, as suggested here. An alternative is the notion of "branch by abstraction" - where everyone works on the trunk but features can be turned on/off.

Saturday, May 22, 2010

Versioning in RESTful Web services

Two kinds of versioning: Data versioning vs schema(language) versioning
Langage versioning should be forward-compatible - not require existing clients to change their implementation. See Tag recommendations
Options from Stu Charlton
- version in content
- versions in URI
- versions in MIME-type http header