Archive for October, 2008

SOA Using Open Source Software »

Here is a interesting presentation on how to build a SOA platform using open source technologies for an educational institution. You can download the presentation from here. The architecture snapshot.

Java: Favor Generic Methods If Possible »

Instead of this, 1: /** 2: * General select statement which allows you to pass in 3: * arbitrary parameter object 4: * 5: * @param obj Parameter object 6: * @param sqlQuery SQL statement 7: * @return The desired return type 8: * @throws DaoException Database exception 9: */ 10: protected Object select(Object obj, [...]

Java: JSF Comparison Matrix »

Interesting comparison matrix available at

Java: Refactoring If-Then-Else using Enum »

Download the code here One thing good about object oriented language is that now we can reduce the conditional statements typically found in procedural language, which in turn can make our code more maintainable. In Java, normally if we want to refactor a long conditional statements, we use polymorphism, which results in a lot of [...]

Java: Debug Commons Digester Exception »

This is a exception produced by Commons Digester. After spending few hours to find out the root cause, including studying the source code, I found that I make a silly mistake. 1: java.lang.NullPointerException 2: at org.apache.commons.digester.Digester.createSAXException( 3: at org.apache.commons.digester.Digester.createSAXException( 4: at org.apache.commons.digester.Digester.startElement( 5: at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source) 6: at org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(Unknown Source) 7: at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source) 8: [...]

Free Ebook: A Practical Theory of Programming »

This is another good book for general reading. Download Link

Free EBook: C# HandBook »

This document covers many aspects of programming with C#, from naming, structural and formatting conventions to best practices for using existing and developing new code. It’s the manual developed at Encodo Systems AG for developing with C# and .NET, but many of the concepts and ideas can be applied to any programming language. The intent [...]

Java: Generate UI Components for Business Objects »

Metawidget is a ‘smart User Interface widget’ that populates itself, at runtime, with UI components to match the properties of your business objects. Metawidget does this without introducing new technologies. It inspects your existing back-end architecture (such as JavaBeans, existing annotations, existing XML configuration files) and creates widgets native to your existing front-end framework (such [...]

Java Spring Based Integration Framework »

Apache Camel is a Spring based Integration Framework which implements the Enterprise Integration Patterns with powerful Bean Integration. Camel lets you create the Enterprise Integration Patterns to implement routing and mediation rules in either a Java based Domain Specific Language (or Fluent API), via Spring based Xml Configuration files or via the Scala DSL. This [...]

Java: Document Oriented Database »

 Apache CouchDB is a distributed, fault-tolerant and schema-free document-oriented database accessible via a RESTful HTTP/JSON API. It is A document database server, accessible via a RESTful JSON API. Ad-hoc and schema-free with a flat address space. Distributed, featuring robust, incremental replication with bi-directional conflict detection and management. Query-able and index-able, featuring a table oriented reporting [...]

Scalable Cross Language Services Development »

Thrift is a software framework for scalable cross-language services development. It combines a software stack with a code generation engine to build services that work efficiently and seamlessly between C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, Smalltalk, and OCaml. Originally developed at Facebook, Thrift was open sourced in April 2007 and entered [...]

Open Source Alternative for Microsoft OneNote »

Basket Note Pads helps you to Easily take all sort of notes Collect research results and share them Centralize your project data and reuse it Quickly organize your thoughts in idea boxes Keep track of your information in a smart way Make intelligent To Do lists And a lot more…

Aggregating Log Data from Multiple Servers using Scribe »

Scribe is a server for aggregating log data streamed in real time from a large number of servers. It is designed to be scalable, extensible without client-side modification, and robust to failure of the network or any specific machine. Scribe was developed at Facebook and released as open source. Scribe is implemented as a thrift [...]

Java: Open Source RDF Framework »

Sesame is an open source framework for storage, inferencing and querying of RDF data. It has been designed with flexibility in mind. It can be deployed on top of a variety of storage systems (relational databases, in-memory, filesystems, keyword indexers, etc.), and offers a large scala of tools to developers to leverage the power of [...]

Java: Open Source Mocking Framework »

Here are some mocking frameworks that I have used JMock is a library that supports test-driven development of Java code with mock objects. Mock objects help you design and test the interactions between the objects in your programs. The jMock library: makes it quick and easy to define mock objects, so you don’t break the [...]

Windows: Portable Software Bundle » provides a truly open platform that works with any hardware you like (USB flash drive, iPod, portable hard drive, etc). It’s open source built around an open format that any hardware vendor or software developer can use. Suiteā„¢ is a complete collection of portable apps including a web browser, email client, office suite, [...]

Open Source Business Rule Engine »

Traditionally in our application we have the application and database layer. CodaServer takes a different approach. CodaServer is a business rules engine; similar to a database, but specialized to make building form-based business applications simple. As your processes change, your software can incorporate these changes automatically without recoding. CodaServer lets you map your processes to [...]

Google Android is now open source »

Android is the first free, open source, and fully customizable mobile platform. Android offers a full stack: an operating system, middleware, and key mobile applications. It also contains a rich set of APIs that allows third-party developers to develop great applications.

Open Source State Machine Compiler »

SMC uses the state pattern to its fullest extent. In the real world, events don’t always happen when they should. Dealing with unexpected events is a must for a robust application. By combining virtual methods with the state pattern, SMC allows you to define “Default” transitions – transitions which allow your objects to handle unexpected [...]

IBM DTFJ adapter for Eclipse Memory Analyzer Tool »

The Eclipse Memory Analyzer Tool (MAT) is an open-source Eclipse project for analyzing heap dumps and identifying memory leaks from Java virtual machines. The basic MAT installation only works with Sun HPROF binary dumps. The IBM Diagnostic Tool Framework for Java (DTFJ) adapter enables MAT to work with system dumps from IBM Virtual Machines for [...]