Recent Articles

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 RDF and RDF Schema, such as a flexible access API, which supports both local and remote (through HTTP or RMI) access, and several query languages, of which SeRQL is the most powerful one.

Originally, it was developed by Aduna (then known as Aidministrator) as a research prototype for the EU research project On-To-Knowledge. Now, it is further developed and maintained by Aduna in cooperation with NLnet Foundation, developers from Ontotext, and a number of volunteer developers who contribute ideas, bug reports and fixes.

Popularity: 1% [?]

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 rhythm of programming.
  • lets you precisely specify the interactions between your objects, reducing the brittleness of your tests.
  • works well with the autocompletion and refactoring features of your IDE
  • plugs into your favourite test framework
  • is easy to extend.


EasyMock provides Mock Objects for interfaces in JUnit tests by generating them on the fly using Java’s proxy mechanism. Due to EasyMock’s unique style of recording expectations, most refactorings will not affect the Mock Objects. So EasyMock is a perfect fit for Test-Driven Development.

Java mocking is dominated by expect-run-verify libraries like EasyMock or jMock.

Mockito offers simpler and more intuitive approach: you ask questions about interactions after execution. Using mockito, you can verify what you want. Using expect-run-verify libraries you are often forced to look after irrelevant interactions.

Mockito has similar syntax to EasyMock, therefore you can refactor safely. Mockito doesn’t understand the notion of ‘expectation’. There is only stubbing and verifications.

Mockito implements what Gerard Meszaros calls a Test Spy.

Some other features:

  • Mocks concrete classes as well as interfaces
  • Allows flexible verification in order (e.g: verify in order what you want, not every single interaction)
  • Supports exact-number-of-times and at-least-once verification
  • Flexible verification or stubbing using argument matchers (anyObject(), anyString() or refEq() for reflection-based equality matching)
  • Allows creating custom argument matchers or using existing hamcrest matchers
  • Verification errors are clean – click on stack trace to see failed verification in test; click on exception’s cause to navigate to actual interaction in code. Stack trace is always clean.
  • Little annotation syntax sugar – @Mock
  • Single-jar distribution mockito-all-1.6.jar includes cglib, objenesis and java source
  • Zip distribution contains all jars, javadoc and source

Popularity: 1% [?]

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.

image Suite™ is a complete collection of portable apps including a web browser, email client, office suite, calendar/scheduler, instant messaging client, antivirus, audio player, sudoku game, password manager, PDF reader, minesweeper clone, backup utility and integrated menu, all preconfigured to work portably. Just drop it on your portable device and you’re ready to go.


tiny USB office is a small productivity software package. It is a small, portable productivity software suite which offers a collection of unique standalone free software applications. If you find yourself working on different machines and like the idea of having portable software that you can access hassle-free from any computer, then this is the package for you.

Tiny USB Office features all of these programs, which are accessible with one click with the included Qsel portable program launcher software:

  • Database Creation – with CSVed
  • Data Encryption – with DScrypt
  • Email Client Software – with NPopUK
  • File Compression – with 100 Zipper
  • File Sharing – with HFS
  • File Transfer – with FTP Wanderer
  • Flowchart Creation – with EVE Vector Editor
  • MSN Messenger Client – with PixaMSN
  • Tree-Style Outliner Software – with Mempad
  • PDF Creation – with PDF Producer
  • Password Recovery – with XPass
  • Secure Deletion – with DSdel
  • Spreadsheet Creation – with Spread32
  • Text Editing – with TedNotepad
  • Word Processing – with Kpad
  • Program Launching – with Qsel


Universal Extractor is a program do to exactly what it says: extract files from any type of archive, whether it’s a simple zip file, an installation program, or even a Windows Installer (.msi) package.  This is still a work in progress (see details below), but so far it’s proven quite useful and I feel others can also benefit from it.



Plata Software MultiMedia Office™ is a productivity solution that offers fully integrated features and enhancements not currently available in any other office productivity package. The core components are based on industry standard programs:, Audacity, GIMP, and VirtualDub.

  • Read and write MS Word, Excel and Powerpoint files.
  • Read and write files in ODF (Open Document Format), the “new” ISO (International Standards Organization) global standard for document storage.
  • Create text documents, spreadsheets, database, and presentations with our integrated Word Processor, Spreadsheet, Database, and Presentation Creator.
  • Directly save files in PDF format.
  • Insert video and sound files directly into text, spreadsheet, drawing and presentation documents with our Video Editor, Sound Studio, and Drawing Package for Flow Charts.
  • Customize files with our integrated professional quality graphics package that is compatible with virtually all formats.
  • Switch between English and Spanish at the touch of a button.
  • Utilize integrated Email and Web Browser.
  • Remove confidential Meta Data utilizing Plata Software’s CleanSave™ feature.


Popularity: 2% [?]

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 your data, ensuring that your software moves in sync with your business.


It provides an environment for describing how the business works, and making this information available to the application tier. Additionally, it enforces the business rules, making it very difficult to store bad data in the database.

CodaServer’s model for businesses is quite complete, including facilities for data type validation, user access control, time-driven events, object state transitions, and more.

Popularity: 2% [?]

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.


Popularity: 1% [?]

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 events, recover and continue providing service (rather than crashing, burning and getting you into trouble).


SMC is written in Java but it can generates code for the following object-oriented programming languages:

  1. C
  2. C++
  3. C#
  4. [incr Tcl]
  5. Groovy
  6. Java
  7. Lua
  8. Objective-C
  9. Perl
  10. PHP
  11. Python
  12. Ruby
  13. Scala

Popularity: 1% [?]

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 Java version 6, version 5.0 and version 1.4.2.

Popularity: 1% [?]

Django: An Excellent Python Web Application Framework »

Recently I am browsing through the Python programming language to develop some application.

Along the way, I am trying on the Django framework, and found that it is very useful.

Django has the followings

  • Object relational mapper
  • Automatic admin interface
  • Elegant URL design
  • Template system
  • Cache system
  • Internationalization

Popularity: 1% [?]

Model-based Data Export Tool »

Jailer simplifies the extraction of referentially intact data. Once you have defined an extraction model, it can be used to extract data from the production database fast and easy whenever up-to-date test data is required.



  • Exports consistent and referentially intact row-sets from your productive database and imports the data into your development and test environment.
  • Improves database performance by removing and archiving obsolete data without violating integrity.
  • Mass data export to XML and SQL.
  • Generates hierarchically structured XML and topologically sorted SQL-DML.
  • Open Source. Entirely written in Java. Platform independent. DBMS agnostic.

Popularity: 1% [?]

Open Source Mobile Platform »

Siruna platform offers all the functional components you need to easily unleash your traditional website on a wide range of mobile devices. The content of your “mobilized” website is based on:

  • Your existing “desktop” website, written for the browser: desktop website adaptation (also called transcoding)fetches the content and style from an online webpage in real-time and transforms it to each mobile device according to the device capabilities.
  • An XML or RSS feed from a Content Management System (CMS): feed adaptation fetches an online feed in real time, adds pre-defined styling (also called a template) to the content and transforms it for each mobile device according to the device capabilities.


The platform allows you to add, delete or change content according to the user’s wishes:

  • replace original advertisement banners by mobile advertisement banners
  • adapt images for mobile use (scaling, reduce file size,…)
  • replace JavaScript functionality
  • adapt the menu structure to fit the browser window on a mobile browser
  • repurpose content to enhance the viewing experience on the screen of a mobile device

The Siruna platform offers several components to accomplish the desktop website adaptation and the feed adaptation. The three most important components available in the Siruna platform are:

  • Device detection module
    allows the platform to detect the browser and device capabilities of the end-user’s device. Existing device detection approaches are combined into one intelligent high-performance solution. The detection mechanism is based on industry standards like WURFL and UAProf (pdf) and extended with self-defined browser detection algorithms.
  • Content adaptation module
    is responsible for the real-time content adaptation of the content and layout. The underlying platform of the content fetching module is using the Apache Cocoon project as core, enhanced with our own set of generators, selectors, transformers and serializers.
  • Content fetching module
    fetches the content of the original desktop webpage or the XML/RSS feed and passes the content to the content adaptation module. The content fetching module acts as a normal browser which is fetching content and ensures that the Siruna platform is transparent for end-users.

Popularity: 1% [?]

Open Source .NET Enterprise Application Framework »

Habanero is an open source Enterprise Application Framework for .Net that provides the tools to produce an agile application from the data layer through to the front-end. Released for free under the LGPL license, it persists data to and from the database using object relational mapping (ORM), manages business objects to support a rich domain model, and generates user interfaces to display and edit the mapped data.

  • Support multiple database vendors
  • No more database coding
  • Multiple data sources, in-memory DB
  • Object Relational Mapping (ORM)
  • Rich domain model
  • Validation and business rules


Popularity: 1% [?]

SELECT COUNT in Database »

This is a common problem often overlooked by Java programmer.

Create the following table in your database

   1: create table test_table
   2: ( 
   3: field_1 varchar2(10) not null,
   4: field_2 varchar2(10)
   5: );
   8: insert into test_table values('1','1');
  10: insert into test_table values('2', null);


select count(*) from test_table

The number of records = 2


select count(field_1) from test_table

The number of records = 2


select count(field_2) from test_table

The number of records = 1. This is because it has NULL value in the 2nd record

Same for

select count(distinct field_2) from test_table

NULL value is excluded.

Popularity: 2% [?]

Open Source Point of Sales System »

Openbravo POS (previously called Librepos and TinaPOS) is a point of sale application designed for touch screens, supports ESC/POS ticket printers, customer displays and barcode scanners.



  • Designed specifically for touch screens in a range of retail-based businesses! *
  • Configurable for any Point-of-Sale environment! **
  • Very flexible and feature-rich solution with many robust capabilities!
  • Highly customizable; very user friendly!
  • No vendor lock-in!
  • No licenses! Minimum total cost of ownership!

Popularity: 1% [?]

Efficient C++ Hash Map Implementation »

google-sparsehash is an extremely memory-efficient hash_map implementation. 2 bits/entry overhead! The SparseHash library contains several hash-map implementations, including implementations that optimize for space or speed.

These hashtable implementations are similar in API to SGI’s hash_map class, but with different performance characteristics. It’s easy to replace hash_map by sparse_hash_map or dense_hash_map in C++ code.

It consists of two hashtable implementations: sparse, which is designed to be very space efficient, and dense, which is designed to be very time efficient. For each one, the package provides both a hash-map and a hash-set, to mirror the classes in the common STL implementation.

Popularity: 3% [?]

Open Source .NET Zip Library »

#ziplib (SharpZipLib, formerly NZipLib) is a Zip, GZip, Tar and BZip2 library written entirely in C# for the .NET platform. It is implemented as an assembly (installable in the GAC), and thus can easily be incorporated into other projects (in any .NET language). The creator of #ziplib put it this way: “I’ve ported the zip library over to C# because I needed gzip/zip compression and I didn’t want to use libzip.dll or something like this. I want all in pure C#.”

#ziplib is a by-product to the open source IDE SharpDevelop. It is free, C# source code included!

Popularity: 2% [?]

Java Data Distribution Platform »

Hazelcast is a clustering and highly scalable data distribution platform for Java.


  • Distributed implementations of java.util.{Queue, Set, List, Map}
  • Distributed locks via java.util.concurrency.locks.Lock interface
  • Distributed implementation of java.util.concurrent.ExecutorService
  • Support for cluster info and membership events
  • Dynamic discovery
  • Dynamic scaling to hundreds of servers
  • Dynamic partitioning with backups
  • Dynamic fail-over

Hazelcast is for you if you want to

  1. share data/state among many servers (e.g. web session sharing)
  2. cache your data (distributed cache)
  3. cluster your application
  4. partition your in-memory data
  5. distribute workload onto many servers
  6. take advantage of parallel processing
  7. provide fail-safe data management

Popularity: 1% [?]

Free EBook: Algorithms for Programmers »

A good for references – Algorithms for Programmers.

Download Link:

Popularity: 2% [?]

Boost: A Useful C++ Library »

Boost is a very useful C++ library. Boost libraries are intended to be widely useful, and usable across a broad spectrum of applications.


Many organization already use programs implemented with Boost, like Adobe Acrobat Reader 7.0.

Popularity: 1% [?]

High Performance HTTP and Reverse Proxy Server »

Nginx (pronounced “engine x”) is a free, open-source, high-performance HTTP server and reverse proxy, as well as an IMAP/POP3 proxy server. Written by Igor Sysoev in 2005, Nginx now hosts between 1% and 4% of all domains worldwide (sources: 1, 2). Although still in beta, Nginx is known for its stability, rich feature set, simple configuration, and low resource consumption.


People generally use Nginx:

  • As an Apache replacement that gracefully handles many concurrent connections: Nginx is especially popular among web hosting providers. 50,000 simultaneous connections have been reported, thanks to Nginx’s use of epoll and kqueue.

  • As a load-balancing proxy server: Nginx is a popular front-end to Rails and PHP applications, either via FastCGI or HTTP. Written in C, it consumes about a quarter of the CPU that Perlbal uses.

  • As a mail proxy server: more of a niche application, but reports great success.

  • As a server with a simple installation process, a clean configuration file, and few bugs: Nginx is easy to get running, and it almost never needs restarting. You can even upgrade the binary with zero downtime.

Popularity: 1% [?]

Open Source Social Networking Software »

Here are some open source social networking software that you can use to set up your social networking website,


Mahara is an open source e-portfolio, weblog, resume builder and social networking system, connecting users and creating online learner communities. Mahara is designed to provide users with the tools to demonstrate their life-long learning, skills and development over time to selected audiences.


Elgg is an open, flexible social networking engine, designed to run at the heart of any socially-aware application. Building on Elgg is easy, and because the engine handles common web application and social functionality for you, you can concentrate on developing your idea.image


Built with Ruby on Rails, Lovd is a social networking solution that has everything you need to build your community.


Using AROUNDMe collaboration server you can create multiple collaborative group, webspace, community or social networking websites. Each group can create a multiple page collaborative web site. They get social tools such as a guestbook (a wall), a group blog, a forum and a wiki which they can drop into web pages. Each group is fully customisable using xHTML, CSS, Javascript and PHP. Groups can be private or public.

People can connect to a group to contribute using OpenID. They get tracking tools such as forum digest and blog RSS feeds.


XOOPS is an extensible, OO (Object Oriented), easy to use dynamic web content management system written in PHP. Yogurt is a social network module for ImpressCMS, Xoops.


Dolphin Smart Community Builder is a universal, free, open source software that allows you to build any kind of online community. With a huge variety of features & options, you can quickly develop your very unique and successful website.


PHPizabi is another social networking software in PHP.


Insoshi is a product and a project. The product aims to be the best open-source social networking platform. The project is to make the product!

Popularity: 5% [?]