jejt / jmons

Engineering Tommorrow

Category Archives: C#

Platform independant Distributed Stuff

Ok, so theres this massive need I’ve found for good distributed bug tracking which is actually platform independent. And this brings me around to my gripe of the week. Platform Independence.

Firstly, I classify myself as an indie developer – that means that I use open source and free software tools in my tool chains, and I use developer / free to use sdk’s to develop applications.

So I’m not able to afford any of the larger programs and tools which are used – things like the Visual Studio or the Team system. Things like Bug Management and Tracking, things like support and ticketing. To some extent things like release managment.

And why would I want to? There are plenty of open source, free, and community based tools out there which do of these things. The problem is however is that they often don’t work across all platforms. They often have requirements or don’t “fit together properly”.

Last night I found a quote by Doug Vargas (I dont know who the guys is or I would have linked to it):

“It’s easy to cry ‘bug’ when the truth is that you’ve got a complex system and sometimes it takes a while to get all the components to co-exist peacefully”

So with this in mind, this is where things begin to get a bit more tricky. The first problem is that I don’t work on one project – I don’t have a single project which is “my baby” I dont have a single passion in life which takes my complete and utter concentration, instead I have a few – simple single use tools which I reuse in other projects. I have a collection of libraries and tasks and I treat each one as a new project and I keep them seperate.

So when it comes to using some of these tools – they are really only for one project. For instance, trac – awesome huh? But I dont want to have to configure one for every application that I write. And this is where some of the harder hitting application come in, but there really isn’t much for the small indie people.

Then we find that half these tools only work in linux. Or windows. Or they work in Cygwin and they require some bizaare libraries. Its very easy to write a tool which does what *you* want and then not worry about everyone else – in fact this is probably the only way that the tool gets written.

So I’m starting work on a platform-independant distributed bug tracking app (this is because I want to track bugs inside of the projects) and I’ve decided to write it in C# which means it will be dependant upon Mono or .Net being installed on the target platform.

I’ve worked out that I need a scriptable level inbetween my application and the SCM – because I want to make it independant of the SCM I am at the moment tying it into Git, however I can see how I need to make it indepenant by having a script wrapper around the SCM (which might be Git or might be SVN or something like that) which would provide the answers to a collection of questions that I want to put to it.

Its getting things to coexist peacfully which I think is the big Programming problem.


SDKs and what that means

I’m having a real problem understanding the idea of an SDK. The entire concept is becoming more and more spleurgh (if you don’t mind my making up words). The concept makes sense when tit ties in with a particular IDE. And here’s the problem – why should anything tie into an IDE? The advantage of using something like Ant is that it allows you to build both inside an IDE and outside.

I built a “build bot” a while ago which took its own parameters and called csc.exe from the command line to help do building – because my knowledge was small, it seems that I had missed the point of msbuild. This takes the same project files that Visual Studio produces to do the same builds.

The only problem I have now is that I don’t know if there is a mono alternative to msbuild. If there is, that would be awesome, becuase I can define the build just as I would a java ant build, and know that it would work no matter what kind of system you where going to build for.

So is a SDK actually more then libraries? When it comes to mobile development, they seem to be libraries, maybe some tools which integrate into a particular IDE (for example Eclipse) and maybe also an emulator or test tools of some kind. Perhaps also, with an SDK is just a marketing thing – that you expect with an SDK a higher level of support. 

Why am I writing this? Well, I’m currently struggling with the Windows SDK for .Net 3.5 – I’m having massive problems with it and its compatibility with the Visual Studio C# Express. It would be nicer if instead of complex SDK installers (and from my experience, it is the installer which is the problem) they had Library versions or just “unzippable” folders to get the tools out. 

Anyways. Windows SDK and Visual Studio do not like to be installed in that order – Visual Studio first, THEN the Windows SDK (or at least, if you’re using Express editions because you’re an indie development like me)

AngryBot – easier .NET app to IRC interface

So I’ve been working a bit on Angrybot recently. For those of you who don’t know, AngryBot is a wrapper around’s smartirc4net IRC interface (which can be found at ). Anyways, the idea behind this wrapper was to provide a much simpler interface for people to use an IRC bot as a reporting tool, or as a method of communicating with the people that want to use it.

My view on it is that people are writing their own applications or deamons or services or whatever you want to call them, and want to call IRC functionality from that – they don’t want to be bothered with writing all the IRC handling stuff, (which to be fair, meebey’s code does a lot of it for you), but instead just has hooks into particular commands, or just has it sitting there as a class that they can call “send message” on.

Implementing a command at the moment requires a reference in the project to the Meebey dll, but I am wrapping around that soon.

Now I have a few bugs to fix, and I have to add the parrellism to the normal commands, but its certainly a good start to see it in a public place after sitting on my desktop for 2 years (in various states, including a poker playing bot).

In the mean time, I am currently trying to break/fix some stuff for a “top secret plan”…. mwhahaha haha haha haha ho ho.