I couldn’t think of a better name for this one, but hey, it’s only a school project for my master studies.

I had to implement an app that shows the benefit of using Aspects. So I’ve created an app that downloads pictures from Picasa, using Google’s APIs. Of course, with some aspects behind it (logging and thread pool).

It was finished in September 2009.


Copie – Network copy/paste

Definitely my favorite school project. I love it so much that I’ve recently shared it with the world. You can find the source code here http://code.google.com/p/copie/

Part of the “Concurrent and distributed programming” course, professor was Zoran Jovanović. The main task is simple: make computers share their clipboards. So if I would copy something, and if you would “paste from” my computer you would get the content of my clipboard (text or file). It was required that was a client application (notepad like) with that special “paste from” option, also a subserver, working on every computer and a main server. Subservers communicate with the main server to find out what other subservers are alive, and the main server keeps the list all of the active subservers.

There is a lot of synchronizing, working with sockets, clipboard… Very interesting, and I’ve learned a lot from it.

It was implemented in pure Java, no additional jar were used. And yes… GUI in netbeans (yup, I love it that much, I mean the GUI builder).

Back in october 2006. But I plan to continue to work on this project (on of the reasons it is @google code)

Virtual HDD for C++ kernel

Don’t know how to name it better, anyway, this was a part of “Operating systems 2” class. The goal was to enable the core (kernel) from the first course, to make it work with virtual HDD and to work on caching and optimization algorithms.

Created in june 2006.

Multithreading support for C++

One of my favorite projects during college. It was a part of “Operating systems 1” class (Dragan Milićev was the professor). The goal was to create a multithreading support for C++, with features like context switching, explicit synchronous preemption, asynchronous preemption (caused by an interrupt), time sharing, round-robin scheduling…

It was used as a core for Operating systems 2 class.

This was back in january 2006.