Pavel Parízek

e-mail:pavel.parizek at
Jabber:pavelpar at {,}


The BTP-JXTA framework




My Person

My name is Pavel Parízek, I'm 25 years old and I live in Prague. I'm a PhD candidate in software engineering at the Faculty of Mathematics and Physics, Charles University. I'm a member of the Distributed Systems Research Group. I have a lot of interests - see below:

  • Computer science - operating systems, distributed systems, object-oriented programming, programming languages, software development paradigms, testing, formal methods, software engineering (analysis, design, etc).
  • Culture - literature, movies, music. I read sci-fi quite a lot but not exclusively. And I like almost all music and movie genres.
  • Physics, biology, math and other nature sciences - I find science very fascinating and I read a lot about it (books and articles).
  • and some others

School projects

The BTP-JXTA framework
The BTP-JXTA framework is a transaction service for the JXTA platform, which uses the BTP as a transaction coordination protocol. I have developed this framework for my master thesis, so it's a stable and working software product now.
The framework has been approved as the btp-jxta project on the website. I have consequently put all the source code, configuration files and various documents (i.e. everything except the thesis) into the CVS repository, which is hosted on the website. The framework is also available for download in the form of a tar/gzip archive.
Master thesis is available here and defense presentation is here.

XStore is a native XML database, which allows a user to store XML documents, query them with the XPath language and access the documents with DOM. I developed it together with four other students as our "big software project", which is the most difficult assignment one must complete in order to get the master degree. The XStore itself is composed of a XML database library, a network server and two clients. One of the clients is a QT application and the other one is a PHP module. Source code of the project is written in the C++ language. The docs directory contains various PDF documents - user manual, developer documentation, etc. The developer documentation describes the theoretical background behind the XStore too. All source files are available through CVS hosted by Sourceforge.
The XStore website is available here.

Implementation of SHA-1 in assembler for IA-32
This is a simple implementation of the SHA-1 algorithm in assembler for IA-32. An archive with the source code contains a version in the C language and a version in assembler. I have used the NASM and the GCC to compile it, what means that it is aimed at the Unix/Linux environment. Comments in assembler source code make sense only together with the version that is written in the C language because I have written the C version first, and then rewrote it in assembler - comments in the asm source usually reference corresponding code in C.
Source code

The DirService project provides a simple directory server, a shared library for clients and an example client application. The server is able to store key-value pairs, update and delete them and return value for given key as a response to the find command. It was written as an assignment for the Unix class. All elements are written in the C++ language and tested on RedHat Linux 7.3. It uses autotools but it didn't work very much on Solaris and Irix. Configure script is written in a rather simple way - it exits if anything is missing, etc. The server uses "one thread for each request" paradigm. See the directory with documentation for more.
Source code

MUD (Madmen's Unpredictable Discoveries) is a 3D multiuser dungeon. I have developed the graphic library, RPG library, client and the editor. My friend wrote common code and the server. The whole project is written in the C/C++ language for Linux platform and uses a lot of third-party libraries - OpenGL, SDL, Gtk, some collision detection libs, etc. It is by no means a finished product - main drawback is the level of artwork (graphics - UI and 3d models) because neither I nor my colleague are artists.
See here for more

MyDB is a simple relational database written in the C language as a class assignment. It is mainly a database library with a console client. The library is able to process only basic SQL queries, including select on two and more tables, and it also support indices. Details are in the documentation, which is written in the czech language. Whole project was written for Linux and Glibc 2.2 but I tried to comply with the ANSI C standard as much as possible. I have used the GCC 3.0.2 compiler for this project. Comments in the source code are in English and external documentation is in Czech. This release uses autoconf but only in a rather simplified form. Any missing library or header file will stop the configure script with an error and no alternatives are supplied because I don't know them.
Source code

Skolni rozvrh ("School scheduler" in English)
This is a program in the Prolog language, which I have written as a class assignment for the Programming II subject that is concerned with logical and functional programming. The program reads input data (list of classes, teachers, etc) and computes week schedule for all classes. The program was tested in the GNU Prolog environment. Documentation, comments and data are in the Czech language, mostly because the program is related to the Czech school system and I just decided to write it in Czech.
Source code

School papers

TCP/IP stack in Linux

POSIX signals in Linux (in Czech)

Java programs

Simple Application Server Framework
This is a very small framework for construction of simple application servers. I wrote this framework because I wanted to try to develop a custom classloader and a network server that would be able to handle virtually any protocol. The whole package is divided into two subsystems - into the network server and application server. The application server is centered around the custom classloader and uses the default implementations of interfaces that are provided by the network server. User is encouraged to provide custom implementations of the MessageEncoder and MessageDecoder interfaces for the particular wire representation of application messages.
The distribution contains an example application. All necessary third-party libraries are included too.
Source code

Other projects

Table-Lang is a simple language for table processing, which I have designed and implemented as a part of my experiments with the ANTLR software. The archive contains the grammar for the language, source code for the execution engine, build script, the ANTLR library and a few example programs. Implementation of the execution engine is rather naive and inefficient, as I focused especially on use of the ANTLR library and did not want to spend too much time playing with it.
Source code

The OOLib is a small framework written in the C++ language. It enables users to create "active objects" - i.e. objects with one thread assigned exclusively to each of them. A thread that is assigned to one object processes all messages sent to the object. Objects communicate only with messages, not through method calls. I have created it as an experiment to see if it is possible to develop an application based on this library. Current version supports only communication in one virtual address space. Similar object model could be used as a base for some distributed system, in my opinion. See the README file and the included example for more.
Source code