Radu's homepage

Some things I have worked on:

While doing some training for a contest that required image processing I have written a set of filters, then bundled them into a single application so you could change or cascade them easily. Most of them are simple filters that I have learned in school, for some I had to improvise, and about another one I had a vague idea from something I have heard and the rest I had figured out myself. The application also features a few presets which are chains of filters that can be used to perform specific tasks. I had almost forgot to mention, what we were required in the first place was to recognize some basic shapes from a noisy picture taken by a web-cam.
Sources, an executable and some sample input files can be found here.
This is a database engine. I don't know what use can it be to anyone except maybe as an example to look at. It could also become usefull in case I finish what I needed it for (I had that idea once: people have different preferences but they also have things in common. What if you could make a huge database, about movies let's say and you try to make correlations between the preferences of different users and you could tell them what other movies they might like -- I don't know if it would become popular but I was about to try it, I even had some ideas with neural networks and multi-dimensional spaces). To come back where I started, I needed a database engine that would keep my data in a very compact manner and was very efficient and less general. So I wrote a custom one. It uses implicit dictionaries, a red-black tree and some file/memory management.
I am a fan of old computer games. In fact I think I am a fan of many things that are old. Music, movies ... . One day I had an idea, what if I could convert the old graphics with huge pixels into something modern that will never have the same problem as the display size and resolution increases. So I started working on a program that would convert a bitmap image into vector graphics. There were a few programs that did mostly the same thing (some with scary results). Nevertheless I started working on my own. In case you don't know me already, I like doing things from scratch. The results are pretty nice, better than other programs especially for objects that are a few pixels in size. I still need to find a decent output format to export into.
Application and sourcecode can be found here.
One of my oldest ambitions was to design my own processor. This later combined with the desire of doing something that would fight off Java. As you might guess I am not much of a Java fan. There was a time, in the beginnings, when Java was about a hundreat times slower than the machine it ran on. Then I had the idea: why use a really complex virtual machine when a simple one could do much better. Computer games made for the Spectrum ran very well in emulators even on a 386. So I started work on an emulator for my architecture which was, I thought, simple enough and had some features I considered real breakthroughs. However I had to make a few changes when I discovered that some of those features were inducing quite a performance loss.
The core of the emulator has been written in assembler for x86 and included in a Deplhi program. It can be downloaded here.
There is also a specification for the virtual machine.
Just in case you might like to write code for it you can try this assembler.
The performance of Java improved a few years later as the code started being recompiled on the target machine instead of interpreted, so I went back to the original idea of designing hardware. After I have studied what other guys have done, and drawn lots of diagrams (I have no idea where I have done woth those I only had them on paper. They might be in a pile in the attic), I tried to actually write code in Verilog describing my idea. Then I got mad with Verilog, so mad that it made me start working on my own hardware description language.
Though in the mean time I came to better terms with Verilog (and got mad on VHDL instead) I still find my language a good idea. Describing a manchaster adder only takes 20 lines of code :) which is a bit overkill but it is really fun. On the other hand, describing a more complex adder in Verilog may be even harder and once you have a library with all the pieces you need (like adders and multipliers) it wouldn't matter anymore anyway.
This is some sort of spec for the language.
It resembles C a lot so it should be easy to learn. It only does one thing, it creates instances of objects. GLH stands for Gate-Level-Hardware.
I also had a parser for it somewhere.
Somewhere around the third year, we were using a *really* old program for digital signal processing. The professor said he would be very glad to replace it if we had a better one. So I wrote one. I got an A for that lab, which was barely fair, but nobody complains. It only has one special feature, it does FFT also for signals that are not a power of two in length. Though when I studied more deeply the problem I have found my method to be mathematically flawed it seems to work pretty well in practice. I even found some improvements, but they are not part of this implementation.
A windows exe and some sample files can be downloaded here.
Sources are also available in this other archive.
Every time a new school year is about to start I start working desperately on this program. It is supposed to help those guys at my school make a better timetable for us. Hopeless. I never got to actually write any line of code of the algorithm, though it has haunted my dreams a few times. All I've got is this good-looking user interface that does nothing. And I am already last year in faculty. Well, maybe when I retire I will have a little more spare time.
BMP2ASC is, as the name suggests, a program to convert bitmaps into ASCII art. It is not very complex, but some heuristics were used to choose the right character. Some images, especially the ones with a high contrast and defined shapes look pretty nice. I must say it is *very* slow (I think it is a few orders of magniture slower than converting an image into JPEG). Although written quite recently (2002) it is in Pascal for DOS (booh, shame on me, I know). Input bitmap must be 320x200-256 colors.
Sources, executables and an example are available here.
Batty is a remake of an old game from the spectrum era. It was written a while ago by me and a friend of mine. It was written for DOS and it uses VGA hardware directly. As a result it might not run well on Windows or other emulation. I've seen it working under XP though and also on a Mac. You will also be unable to run it inside a window because it is in text-mode (it changes the character set every frame so it looks really nice). The executable is compressed using my own implementation of LZ and Huffman (I wanted to do everything from scratch). It can be downloaded here. So far I have not made the sources public, but again, nobody asked (just mail me if you want them, it is a pity to have written it just to play it myself).
When I was really young I wrote this. It is a cpu simulation that also shows what happends inside the cpu. It was inspired by Z80, though somewhat simplified, and its purpose was to teach people the basics of how microprocessors work. The machine code is really simple and I have actually written directly in hex a "hello world" program that can be found on the simulation page. I know there were some issues with some browsers back in those times but I have recently tested it in Opera and it worked fine.
My CV.
And my email address radu124@yahoo.com
1