Archive for June, 2008

MetaPad – A Small, Fast and Free Editor »

metapad is a small, fast (and completely free) text editor for Windows 9x/NT/XP with similar features to Microsoft Notepad but with many extra (and rather useful) features. It was designed to completely replace Notepad since it includes all of Notepad’s features and much, much more.

Scintilla – Free Source Code Editing Component »

Scintilla is a free source code editing component. It comes with complete source code and a license that permits use in any free project or commercial product. Notepad2 uses it.

Fiddler – A Free Web Debugging Proxy »

As quoted from the website, Fiddler is a HTTP Debugging Proxy which logs all HTTP traffic between your computer and the Internet. Fiddler allows you to inspect all HTTP Traffic, set breakpoints, and “fiddle” with incoming or outgoing data. Fiddler includes a powerful event-based scripting subsystem, and can be extended using any .NET language. Fiddler [...]

QJ Pro: Code Analyzer for Java »

As quoted from the website, QJ Pro is a sophisticated code quality assessment and coding standards technology for Java development detecting potential software during development time. It significantly reduce code review effort by automating a portion of the code inspection process and coding standards enforcement.  QJ Pro gives developers the ability to automatically assess the [...]

Displaying, debugging and performance tuning information with tusc and truss »

tusc is a great program for working with Java.  It gives you another view into the system activity in addition to Java stack traces, GlancePlus, and HPjmeter. tusc has many options which can be displayed with the command tusc -help. tusc works with HP-UX 11.0 and 11i PA-RISC systems, and HP-UX 11i HP Integrity systems. [...]

Axis: Adding Client IP to SOAP Message Header »

Here is the piece of code that I used to add the client IP address to my incoming SOAP messages.   import org.apache.axis.AxisFault; import org.apache.axis.Message; import org.apache.axis.MessageContext; import org.apache.axis.message.SOAPEnvelope; import org.apache.axis.transport.http.HTTPConstants; import org.apache.axis.handlers.BasicHandler; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory;   import javax.servlet.http.HttpServletRequest; import javax.xml.soap.SOAPException; import javax.xml.soap.SOAPElement; import javax.xml.soap.SOAPHeaderElement; import javax.xml.soap.Name;   public class ClientIPHandler extends BasicHandler { [...]

Java: Detect Memory Leak in Your Application »

This is a recent problem that I faced. In this article I am going to show you how I detect memory leaks in a Java application that I have refactored. If your application is leaking memory overtime, eventually you are going to get java.lang.OutOfMemoryError exception. Over time, you may see your application doing garbage collection [...]

SciMark: Java Benchmark for Scientific and Numerical Computing »

SciMark is a Java benchmark for scientific and numerical computing. It measures several computational kernels and reports a composite score in approximate Mflops (Millions of floating point operations per second). It is a composite Java benchmark measuring the performance of numerical codes occurring in scientific and engineering applications. It consists of five computational kernels: FFT, [...]

Free Video Software »

MediaCoder – The universal audio/video transcoder

Java: Analyze Performance Issue »

This is a sequel to my previous post on performance troubleshooting by collecting profiling data without interrupting your running application. By looking at the profiling data, it is found that garbage collection is the bottleneck of the performance. The following parameters added to the server to collect the garbage collection data. -Xloggc:gc.log -XX:+PrintGCDetails After investigation [...]

Java: Dependency Injection using Google Guice »

As quoted from the website, Guice alleviates the need for factories and the use of new in your Java code. Think of Guice’s @Inject as the new new. You will still need to write factories in some cases, but your code will not depend directly on them. Your code will be easier to change, unit [...]

Java: Useful Tools for Performance Troubleshooting »

Here are some of the tools useful for Java application performance troubleshooting. jconsole comes together with JDK 1.5 and above. It is a Java Monitoring and Management Console – JMX-compliant graphical tool for monitoring a Java virtual machine. It can monitor both local and remote JVMs. VisualVM is a visual tool that integrates several existing [...]

IOzone Filesystem Benchmark »

IOzone is a filesystem benchmark tool. The benchmark generates and measures a variety of file operations. Iozone has been ported to many machines and runs under many operating systems. Iozone is useful for performing a broad filesystem analysis of a vendor’s computer platform. The benchmark tests file I/O performance for the following operations: Read, write, [...]

Java: Collecting Profiling Data for Performance Troubleshooting Without Interrupting Your Application »

There is a mysterious performance issue that I faced recently. The scenario is like this I have a Java backend application running on a 4 CPUs, 8 GB RAM Unix Server The application connects to a Oracle 10g database server. Whenever it is processing a transaction, it will do the typical database CRUD operations, talks [...]

Subclipse: Eclipse Plug-in for Subversion »

Subclipse is an Eclipse Team Provider plug-in providing support for Subversion within the Eclipse IDE. The software is released under the Eclipse Public License (EPL) 1.0 open source license. Subversion is an open source SCM tool that was designed from the ground up to overcome the limitations of CVS. It is a finely designed tool [...]

Install OS into USB Drive using LiveUSB-Creator »

liveusb-creator is a cross-platform tool for easily installing live operating systems on to USB flash drives. As quoted from the website, it features Completely non-destructive install. There is no need to deal with formatting or partitioning your USB key. Supports downloading various Fedora releases, including Fedora 9! Automatically detects all of your removable devices Persistent [...]

Java Code Inspection using Enerjy »

This is a continuation from my previous articles which I wrote about various tools and methodologies that can be used to assure code quality in software development using Java. Enerjy is a Eclipse plug-in that you can used for statistical code analysis. As quoted from the  website, the biggest cause of missed deadlines is unplanned [...]

Open Source P2P Framework »

JXTA technology is a set of open protocols that enable any connected device on the network, ranging from cell phones and wireless PDAs to PCs and servers, to communicate and collaborate in a P2P manner. JXTA peers create a virtual network where any peer can interact with other peers and resources directly, even when some [...]

JadClipse: Eclipse Plug-in for Better Class File Viewing »

As quoted from the website, JadClipse is a plug-in that seamlessly integrates Jad (the fast Java decompiler) with Eclipse. Normally, when opening a class file the Class File Viewer will show a brief API outline of the class. If you install this plug-in, however, the Class File Viewer will be replaced with the JadClipse Class [...]

Why Code Review is important? »

Beside design review, code review is a must-do during software/system development. There are many software projects that I have implemented. Some projects are continuation from legacy applications that have been developed years ago. The developers are no longer in the companies and most of the time we have to do a lot of guess works [...]