Projects

These are the recent projects I am proud of.

Network Monitoring

Implemented an easy to use network monitoring system. Interesting features:

  • Automatic discovery of open TCP services.
  • Non-blocking I/O monitors many services in a single process.
  • Fetching and graphing of SNMP values.
Category: Server Application
Completed: 2009
Responsibility:Both backend and frontend programming
Technologies:Python, Storm, Ext JS, Symfony, MySQL
screenshot

Real Estate Aggregator

I launched a site to view home prices in Prague: jakybyt.cz
It provides list of homes for sale, map and a graph of prices.

Category: Web Application
Completed: 2008
Responsibility:Whole project
Technologies:Python, web.py, Google Maps, Chart and Visualization API
Homepage: http://jakybyt.cz/
screenshot

Electronic Program Guide

An Electronic Program Guide (EPG) for IPTV provides detailed information about past, current and future TV shows. The data are displayed on a user's set-top-box. It is comfortable to browse the TV listing while watching the TV.

I had the opportunity to provide solution on all layers:

  • A tool to acquire and import EPG from vendors.
  • A web service to store EPGs inside our database.
  • Optimized Hibernate queries to get the EPG when need.
  • Slick and fast AJAX UI with data precaching.
Category: Web Application
Completed: 2007
Responsibility:Both server side and UI programming
Technologies:AJAX, Java, Spring, Hibernate, PostgreSQL
screenshot

Vodafone live!

Vodafone live! is a WAP portal with collection of mobile services. News, games, sport, music and pictures are all offered on Vodafone live! pages.

I meet Vodafone live! as a programmer at Vodafone Czech Republic. I was a member of the team that integrated Vodafone live! with our billing system.

Category: Software Infrastructure
Completed: 2006
Responsibility:Payment workflow implementation
Technologies:Java, TIBCO, Oracle, SOAP, JMS
screenshot

Robo Hunt

Realistic artificial agents hunt the player. I started this projects as an experiment with artificial intelligence. But it has became a fully polished game.

Features:

  • Random map generator.
  • Realistic hunters use technique of Particle Filters. They have to calculate the probability where the player could be at a given time.
  • Optimized A* algorithm for path finding.
Category: Game
Completed: 2005
Responsibility:Whole project
Technologies:Python, Pygame
Homepage: http://ivo.danihelka.net/python
screenshot

Localization Server

This server allows to guess position of mobile phones. The localization service is used by multiple clients. One client is a rich GUI application, another client is a monitoring application to localize company cars.

The geographic guess is based on two sources of information:

  • Database of antennas across country - includes antenna ID, position and transmit power.
  • List of signal powers that the mobile phone receives - these could be obtained from application running on the phone.

I developed the localization server and invented few localization algorithms. Same algorithms are better at free space, while others are required to get good guess in a crowded city with signal scattering. The error is usually under 200 meters.

Category: Client-Server Application
Completed: 2005
Responsibility:Server programming
Technologies:Java, Spring, MySQL
screenshot
screenshot

Problem Solving Contest

I implemented web platform for a problem solving contest. The contest was organized by Research and Development Centre to invite bright students. The players had to solve a given quest to advance to the next level. The developed platform provides interface for both contest definition and contest solving.

Features:

  • Dynamic questions unique per player.
  • Support for questions with embedded images and applets.
Category: Web Application
Completed: 2005
Responsibility:Functional specification, implementation
Technologies:Java, Spring, Tapestry, OGNL, Hibernate, MySQL
screenshot

Fish Fillets - Next Generation

Fish Fillets - Next Generation is a wonderful puzzle game. Two fish agents investigate Lost Atlantis, UFO, pirate treasure and other global concerns. The goal is always the same: find safe way out.

The fish utter witty remark about their surroundings or quarrel between themselves. Music melodies are quiet, comforting.

The game was first released in 1998. In 2004, I convinced the original authors to re-license the game under GPL and started on a Linux port. Whole game engine was rewritten to C++ and game levels were converted to Lua scripting language.

The porting project was very successful. The game is recognized as one of best Linux games. It is now included in all major Linux distribution and also runs on FreeBSD, Mac OS X, BeOS and others.

Features:

  • 70 game levels with strong story.
  • Data driven game engine with a stack of game states.
  • Embedded scripting language drives dialogs and animations.
  • Contributors translated it to 14 languages.
Category: Game
Completed: 2004
Responsibility:Project leader, all programming
Technologies:C++, Lua, SDL
Homepage: http://fillets.sourceforge.net
screenshot
screenshot
screenshot

Pocket Self-care

Part of my diploma thesis was development of Pocket Self-care. The self-care is server application that provides a dynamic menu for mobile phones. Any customer can browse the menu and find information about her account, news or fun content. The menu offers 1200 items in total.

Features:

  • Support for Linux and Solaris.
  • Definition of menu in XML files.
  • Storage of customer preferences.
  • Administration and menu updates are possible without outage.
Category: Server Application
Completed: 2004
Responsibility:Whole project
Technologies:C++, pthreads, MySQL, Python
screenshot
screenshot

Rigid Body Dynamics

This simulator demonstrates Newtonian mechanics. Simulated rigid bodies move in 3D space and their velocities and accelerations are dictated by laws of physics. For example, it is possible to simulate bouncing cubes or the solar system with all its planets and moons.

I examined multiple methods how to resolve object collisions. One group of methods solve system of differential equations to compute precise contact forces. Another approach is to use an iterative process to resolve one contact per step. The later approach is less physicaly accurate but it has proved to be more reliable. The iterative process is able to resolve already interpenetrating bodies and that makes it usable for interactive computer games.

Features:

  • Numerical integration by Euler or Midpoint method.
  • Collision detection and resolving.
  • External forces: gravity, interactive engines
Category: Physical Simulation
Completed: 2003
Responsibility:Whole project
Technologies:C++, SDL, OpenGL
screenshot
screenshot

SMS Voting

In 2003, I implemented backend and simple web presentation for voting by SMS. The voting was used as an entertainment on a mobile operator press conference.

Features:

  • Statistics with bar chars.
  • Support for both Oracle and MySQL.
  • Remote administration over SMS.
Category: Sever Application, Web Application
Completed: 2003
Responsibility:All development tasks
Technologies:Java, Servlets, JDBC
screenshot

Cars

A simple car racing game for up to 4 players. Each map has two turns and the maps could be edited by Gimp.

Features:

  • Car collisions.
  • Easy to edit maps.
Category: Game
Completed: 2002
Responsibility:Whole project
Technologies:C++, SDL
Source:cars.tar.gz
screenshot

Ships

This game is a classical top down scrolling space shooter. Your brave spaceships starts with just single cannon. It has to crash to damaged enemy ships to stole more weapons. Using this tactics, it is possible to build a cruiser over whole screen.

Features:

  • Choice between one or two-player game.
  • Multiple types of weapons.
  • Increasing difficulty.
Category: Game
Completed: 2002
Responsibility:Whole project
Technologies:C++, SDL
Source:ships.tar.gz
screenshot
screenshot