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.
|
|
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
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/
|