Jan Čurn's homepage  

Photo of Jan Curn My name is Jan Čurn, welcome to my personal homepage, a place where you can find some information about me and my work. Until 2014 I was a Ph.D. student in the Distributed Systems Group of the School of Computer Science and Statistics, at Trinity College Dublin - I used to have a dedicated departmental web page there. In 2008 I co-founded VirtualRig™ Studio, a professional software for realistic motion blur simulation in traditional photography and CGI. In 2011 I co-founded Dev tank, a software development company and finally in 2015 I co-founded Apify, the web automation platform.

Here you can find my official Jan Čurn's curriculum vitae, Jan Čurn's LinkedIn profile and Twitter. My email is jan.curn@gmail.com.

Below is a list of several projects I have been working on so far and some other stuff (ANCIENT ALERT: this stuff hasn't been updated in ages and although it's quite embarrassing I keep it here for my amusement when I get back here from time to time. You have been warned.)

YA-RPC

YA-RPC is a next generation framework for building distributed applications in C# and Java. In comparison to classical remote procedure call systems, YA-RPC offers unique performance, and provides features like encryption, compression, asymmetrical serialization, intelligent threading and much more.

All the information may be found on dedicated project web site http://www.yarpc.org.

Distributed OpenMI

OpenMI is European standard for linkage of water and environmental computational models, supported by the European Commission under the Fifth Framework Programme. Distributed OpenMI extends the standard with a possibility to link models running on different computers, and provides advanced features like caching, piggybacking and direct model linkage to achieve high performance of distributed computations. I designed and developed the system during my Master's Thesis at Department of Software Engineering, Faculty of Mathematics and Physics, Charles University, Prague. Using the link below you can download the text of the thesis.
download size year platform language
Distributed_OpenMI_Master_Thesis.pdf 994 kB 2006-2007 PDF english

Najednommiste.cz

Public web site providing unique service for searching web pages offering used cars. In one place a user may find most of the offers present in the Czech internet. I am one of the owners of the system, the project manager, overall system architect and developer of many components of the system, including the document analyzer which is based on advanced evolutionary algorithms.

The site is running at http://www.najednommiste.cz.

C# implementation of HTMLParser library

Once I needed C# source code of parser of HTML documents, but I couldn't find any suitable. However, I found very nice open source library named HTMLParser written in Java (see http://htmlparser.sourceforge.net) released under GNU Lesser General Public License. I used Java Language Conversion Assistant to convert this library to C#, and then spent some time with rewriting of code and adding some new functionality (like capturing of single pages). Of course, new code is not so well tested like its Java "brother" so there can be many bugs in it. You can download it here, but remember it is also released under GNU Lesser General Public License.
download size year environment platform language incl. source docs
htmlparser_cs.zip - 2004, 2005 MS Visual Studio.NET 2003 Win32(x86) english yes english, detailed

User accounts management system

Commercial project intented to automatically manage over 9000 users of network at Institue of Chemical Technology and many other interrelated things like mailboxes or personal cards. Main problem of the solution was to make robust system that would understand whole organizational logic and intelligently decide some unusual situations to minimize human intervention. The kernel of the system was developed in C#, data are stored on MS SQL 2000 database server, web interface was done in ASP.NET with C#. Regrettably the system contains private data so it's not possible to show you how it works. However, you can look at some screenshots here.
download size year environment platform language incl. source docs
- - 2004 MS Visual Studio.NET 2003 Win32(x86) czech - czech, detailed, XML

Mersenne Twister x86 assembler implementation

Mersenne Twister is popular pseudo-random number generator of period 219937-1. Compiled version of C implementation is not effective at all when you use compiler without profiling optimizations. That's because each time you call the function which generates pseudo-random number your code creates quite big stack frame to preserve values of some registers. But this behaviour is needed only in one of 624 function calls. So I decided to implement Mersenne Twister algorithm in x86 machine instructions (rather 80386). The resulting code is about 15-20% faster.
download size year environment platform language incl. source docs
mt.zip 75 kB 2004 MS Visual C++ 6.0, MASM 6.14 x86 english yes english, source comments

SPAM and anti-SPAM techniques

Text for school seminar of modern networking solutions. It deals with SPAM and techniques used to fight against it.
download size year environment platform language incl. source docs
spam.ppt 592 kB 2004 MS Powerpoint - czech - -

Image processing

During my work at Institue of Chemical Technology I was asked to help with analyzation of morphological quality of stomatal wax on the needles of picea abies. I developed simple tool that processes images from electron microscope. Here you can see some pictures generated by this software.
download size year environment platform language incl. source docs
- - 2004 MS Visual Studio.NET 2003 Win32(x86) czech - -

MIPS R4000 memory manager

Part of school project lead by Distributed Systems Research Group of Faculty of Mathematics and Physics at Charles University in Prague intended to develop elementary preemptive multitasking operating system. We implemented modules to manage physical and virtual memory and mapping between them and to dispatch memory exceptions. Modules were developed in C and MIPS R4000 assembler, compiled using gcc cross compiler and tested on R4000 simulator MSIM. By my opinion the most interesting is module for managing physical memory that can handle variable length frames of up to 64GB of physical memory and operates in logarithmical asymptotic complexity with less than 0.05% overheads.
download size year environment platform language incl. source docs
- - 2003, 2004 Linux, gcc cross-compiler MIPS R4000 english - -

Various web presentations

Sometimes I also compose web presentations using different technologies and for different purposes, recently for example for childern medical camp named "Morsky konik" organised by VZP (which I also taked part as couch) using pure HTML, CSS and CGI scripts at http://www.volny.cz/mk or for example for Lipnicka s.r.o. (house building company) using HTML, CSS, PHP and MySQL at http://www.lipnicka.cz.
download size year environment platform language incl. source docs
- - 1998-2004 PSPad - czech - -

Eye

System usable for 3D reconstruction of real-world scene from two or more photos. Human assistance is needed to synchronize positions of cameras, to identify equivalent pixels at two photos and relations between them. The result can be rendered by own software engine, textures are read from source photos.
download size year environment platform language incl. source docs
eye.zip 1608 kB 2003 MS Visual C++ 6.0 Win32(x86) english yes czech, detailed, MS Word format

EyeAI

System for 3D reconstruction named Eye still needs human assistance to synchronize cameras, to identify equivalent pixels and relations between them. The goal of project EyeAI is to minimize these activities. Synchronization of cameras by hand isn't needed any more, non-trivial genetic algorithm to solve this problem was successfuly tested. I also tried some methods based on huge statistics to automatically identify equivalent portions of source pictures, but the result wasn't so obvious. Main problem is with surfaces with non-sharp textures (white wall, sky, ...) so other advanced heuristic methods should be used. I would like to thank for inspiration to Center of Machine Perception of Faculty of Electrical Engineeing at Czech Technical University in Prague, namely to Tomas Pajdla for his valuable time. The project was due to time reasons defered.
download size year environment platform language incl. source docs
- - 2003, 2004 MS Visual C++ 6.0 Win32(x86) czech - -

Pseudo-random number generators

Short text giving basic overview of pseudo-random number generators and their properties.
download size year environment platform language incl. source docs
random.zip 37 kB 2003 MS Word - czech - -

Nibbles

It's classical game with snakes, you control small snake, which grows with some tokens it eats. If your snake run into borders, other snake or itself, it dies. I improved the game with some other features, for example there can be at the same time up to four human or AI players together. Of course you can apply your own keyboard settings.
download size year environment platform language incl. source docs
nibbles.zip 578 kB 2002 Inprise Delphi Win32(x86) english, help in czech yes czech, basic, plain text

Inorganical chemistry nomenclature converter

Non-procedural script written in SWI-Prolog for converting chemical formulas of inorganical compounds to its czech chemical nomenclature equivalents. It doesn't implements nomenclature of coordination compouds, elementary compouds and ions. Nomenclature of covalent hydrides doesn't meet czech national norm.
download size year environment platform language incl. source docs
chemie.zip 16 kB 2002 SWI-Prolog - czech yes czech, detailed, MS Word format

RxRtoR

Application for renedering of analytical function f: R2->R. You have to type this function in the text-box using arithmetical expression with two variables, the application solves than its values in some points which will be later shown using different view-settings. There are some options you can apply, for example z-buffering, square/random points generation and other.
download size year environment platform language incl. source docs
rxrtor.zip 234 kB 2001 Inprise Delphi Win32(x86) english, help in czech yes no

Elementary particles

The text for physical seminar at grammar school Budejovicka, it deals with elementary particles, it's properties, detection and acceleration.
download size year environment platform language incl. source docs
elemcz.htm 76 kB 2000 MS Word - czech yes -

Jokes

Application that shows jokes stored in textfile at Windows startup. More interesting then application itself is multi-thread installation utility which manages files, destination directory and some registry entries. Uninstallation is done by little trick - it uses DOS executable which deletes itself during runtime because Win32 executable cannot do this.
download size year environment platform language incl. source docs
vtipyins.zip 762 kB 1998 Borland C++Builder Win32(x86) czech yes no

QuEngine

I spent lot of time with developement of universal software 3D engine intended for games. After one year of hard work many source lines of code have been written, but the engine was still unusable.
download size year environment platform language incl. source docs
- - 1997 Borland C++ DOS, x86 czech - no

SmallCars

One of my first programming experiments, implemantation of classical school game for up to four human players. The script was written in BASIC, later it has been compiled to DOS executable, some intro was added and whole these files were included into one Win32 executable (interesting, or not?:-), which you can download below.
download size year environment platform language incl. source docs
auticka.zip 259 kB 1995 MS BASIC (later Borland C++Builder) DOS (later Win32), x86 czech no no
realistic curved motion blur software simulation

Links

There are links to pages of my friends and colleages.

http://plgr.cz/
http://refresh.cz/
http://gomocup.wz.cz/
http://werewolf.wz.cz/
http://www.azrael.cz/
http://www.snc.cz/
http://www.cs.union.edu/~dolezalj/
http://www.webgame.cz/
http://www.vojta.cz/
http://bura.borec.cz/
http://www.janvesely.com/
http://usersold.vscht.cz/~maniakr/

Last update 1st November 2008
Copyright© 2004-2008 Jan Čurn