Wednesday, September 3, 2008

Hack week project

This hack week I choosed to do an ansi art viewing tool. Called M-Draw.

Back in the 90' I had an own bbs system running and ansi art was used for the menus. There were some ansi art groups like ACiD or iCE who made an art out of textmode drawings.

I made an tool to load and convert different formats. During the years many formats were invented. I tried to make load/save routines for all these formats.
During the hack week I had support for following formats:
  • ANSI - this is the standard format
  • AVATAR - this is a format for making the images very small
  • PCBoard - this format was used by a BBS system (link)
  • BIN - standard binary format (just like saving the screen buffer memory to a file)
  • ASCII - plain, colorless format
First I tried to make a console application (with editing capabilities).
But this was more complicated than excepted and I switched to a GTK interface (without editing capabilities).
The GUI is able to load & save all formats above.

It is possible to view and edit the meta data information (SAUCE) of the files. One of the nice things is that it's possible to load fonts from TheDraw. TheDraw was one of the most widespread ansi creating tools and it made a format for ANSI art fonts. No other editor was able to load&use the proprietary TheDraw font files.
In the 90' I re-engineered the TheDraw font routines and now I've rewritten them in C#.

Still to do:
  • Adding more formats: X-Bin and Wildcat! BBS (these two are not really important)
  • Support for animation
  • Adding editing capabilities
One of the problems with the console gui was that the old ansi files require the old dos font and the linux fonts are a bit different. Using a custom gtk widget and an old dos font file is much easier and looks better than using the linux console directly. The widget could be extended with zooming support, but for now it does it's job.

Saturday, March 1, 2008

Background story

I'm the creator of the SharpDevelop IDE which I started out of curiosity at 2000 where Visual Studio was not available.
I've begun my C# experience with the first released PDC version of C#. I always wanted to write a full featured IDE myself. I've written small editors (in Pascal and C) before, not only text also hex editors and ANSI drawing tools.
The official release date of the first version I've used myself and gave to other people is 9/11/2000 (the birthday of my mother, has nothing to do with the precognition of a terrorist attack). I invested much time in this project, delayed my university degree several years - but I had much fun.

For the record:
SharpDevelop was my first Windows Application. I always used to be a C/C++ unix (before that DOS/Pascal) programmer. I've developed Java applications during my computer sience study. But I came to C# because it was better than Java (in my opinion, I don't want do offend the Java fans, Java is great).

... After the first half year of developing SharpDevelop I got kind support from Austria. Christoph Wille wrote me that he want to sponsor the project. He became the SharpDevelop "team" leader. The team consisted mostly: Me (programmer), Bernhard Spuida (documentation, he invented the names like codon), Christian Holm (testing) and Andrea Paatz (my girlfriend, she helped on various places with code and much mutch patience).
Some time later Markus Palme joined the team, a very talented programmer which began to contribute VB.NET stuff. I left the project in 2005 after #Develop 1.1->2.0 was more or less completed (80%). At this time Daniel Grunwald joined #Develop development.
I really wrote much code at that time and needed a break. I started to play World of Warcraft and overplayed it a 'little' ...
At that time I lost a bit the believe in SharpDevelop. I thought with the free VS.NET versions there would be no room for a free IDE on windows - I thought that no cost was THE reason for the SharpDevelop user base on Windows for the Windows developers, fortunately I was wrong. At my univerity I got not very positive feedback on SharpDevelop, in fact they more or less ignored it, I couldn't use SharpDevelop for my diploma thesis.
During that time I managed to finish my diploma in computer science (it's something like the master degree for you us people). Because I found no SharpDevelop supporter at my university I had to find a different project for my diploma: I wrote a small 2D RPG multi player computer game engine and editor for Windows CE.

After finishing I looked out for something different - I began to work at a small closed source software company in the Berlin region (I didn't think about working for Novell at this time). It was very interesting. I've worked on a different development environment (no code development) - at this time I wrote a nice WPF forms designer. I got a development contract for 6 months, at the end I wrote to Miguel, if I can work for Novell and he said yes. The company didn't want to let me go (It was a very cool company, but Novell is cool too), but I had made my decision.

I joined MonoDevelop in April 2007 and I first needed to set up MonoDevelop for Linux development.
At the beginning it was very difficult, MonoDevelop run only for about 2 minutes without crash on my computer - I wasn't used to mono and linux development at this time. And I found it all very difficult to work with it. (Maybe thats one reason why we spend a half year for bug fixing)
But after struggling for a while I became used to it. I needed to learn linux/gtk# development and to integrate in the mono team, but I've manged it ^^ and can do full time work on MonoDevelop now.