I love developing software, and I have a bunch of projects. Here are a few of my professional and hobby projects;

Natural Intelligence

Natural Intelligence was my AI/NLP project during my M.S. years. It's basically a question answering system based on Combinatory Categorial Grammar (CCG) as the theory of grammar and Conceptual Graphs (CG) for knowledge representation and reasoning. Open Cyc is used for upper ontology and commonsense handling. Here is the Springer link to the latest publication about the project.

Currently, I am working on a new version of this project on my startup: PragmaCraft. It is called Intelligent Search Assistant, and helps you to semantically filter search results by natural language.

Read More


This web site is currently running on PragmaCMS.  It is aimed to be a lightweight alternative to mainstream PHP CMS/blogging platforms like Drupal/Joomla/Wordpress. Instead of very complex features, when we need only a simple CMS system to serve static pages using a nice template. It falls somewhere between a wiki and a blog. I think it is very suitable for individual and small company web sites. Works on Java (Spring) and PostgreSQL.

Read More

fmgVen (ORM)

fmgVen is my open source (SourceForge link) convention over configuration Java ORM tool. It is an alternative to heavyweight ORM tools (yes, I mean Hibernate), where mapping needs configuration, and you have to deal with lazy loading issues, etc. It maps java domain objects to database tables without explicit mapping configuration. It makes data access straightforward, simple and lightweight. It is an advanced form of Spring JdbcTemplate/RowMapper. Think of it as Ruby on Rails ActiveRecord but instead of inferring data objects from database, fmgVen auto maps java objects to database tables.

It is basically;

  • Convention over Configuration ORM
  • No Select N+1 
  • Simple
  • Lightweight

With fmgVen, you don't have to think about DAO layer, it just works. It is especially very suitable for proof of concept phase of your project, until you get a minimal viable product. I use it in all of my projects.

For source code and documentation, visit the fmgVen project home

Read More

Remote Support

Remote Support started as a hobby project to be an alternative for reverse SSH port forwarding, without the ssh client and linux server requirement. The initial goal was to access remote apps bypassing firewalls. Most remote access tools are based on screen sharing, although you need to access ports remotely. This one is somewhere between ssl vpn and screen sharing. RS can be embedded to your app so that you can access and do maintenance whenever VPN is not available.

Read More

Scheduling System

Scheduling System aims to solve the problem of scheduling issue tracker tickets involving multiple projects. Most issue trackers (or at least Trac, which I use) don't let you to schedule all tickets over a timeline. The original objective is to get done the 6th item of the Joel Test (Do you have an up-to-date schedule?). Currently this project is in early design phase. Actually I've abandoned it, with the hope of returning sometime.

Read More