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
Thursday, October 21, 2010
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.
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
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
Tuesday, December 8, 2009
HATEOAS (Hypermedia as the Engine of Application State)
HATEOAS requires that each server response must contain not only the requested data — but also control information (in the forms of specially tagged URLs) describing the next set of permitted interactions with the server .....
Craig McClanahan's post on advantages of using HATEOAS - reduced client' coding errors, avoid invalid state transitions, fine grained evolution of the api's.
Jim Webber's
Craig McClanahan's post on advantages of using HATEOAS - reduced client' coding errors, avoid invalid state transitions, fine grained evolution of the api's.
Jim Webber's
Thursday, November 26, 2009
SSH X11 Forwarding
SSH X11 fowarding allows X11 connection to be tunneled from the remote system (client) to the local system (display server). Here is how to set it up to work on a Mac OS.
Open a X11 terminal
Start an ssh session: ssh -X -l username server-ip
xclock &
It should display on your Mac screen.
Open a X11 terminal
Start an ssh session: ssh -X -l username server-ip
xclock &
It should display on your Mac screen.
Friday, October 9, 2009
Maven
There is a lot of discussion on the net about issues with using Maven for builds. Fairly old post by Howard Lewis (Tapestry creator).
Read this Infoq Maven debate Another post worth reading is Don Brown's
The key problems with Maven seem to be:
Read this Infoq Maven debate Another post worth reading is Don Brown's
The key problems with Maven seem to be:
- Poor documentation leading to a somewhat steep learning curve
- Inconsistent builds due to fact that repository metadata is not properly maintained and newer broken versions of plugins can be released. Maintaining transitive dependencies is a hard problem! This issue can be addressed by using very specific versions of plugins in the Maven pom.xml and by caching dependencies in a local metadata repo and configuring your Maven build to look there first before going to general repos like Maven or ibiblio.
- Verbosity of the pom.xml- this is primarily due to XML language choice itself. One way to address this is to use inheritance and put most of common stuff in a parent pom so that a project's pom is limited primarily to dependencies.
- Dealing with large multi-module projects - even Ant builds I suspect will have a problem here.
Subscribe to:
Comments (Atom)