Recent blog entries for julesh

Nothing much happening at the moment. Doing some interesting work for my company with Java; this may or may not produce any open-sourceable results. Knowing the way the rest of the management think, probably not, but I live in hope of one day persuading them that it might help us :-)

Also doing some not-so-interesting work with Windows, which has let me in for my first experience of MFC. For those who haven't, well, if you like the standard Windows API, go right ahead. If, like me, you think of it as illogical and inconvenient, MFC won't help you much. I despise it.

Had a few discussions with other NASM developers about arranging a new release. Could be coming some time soon, so any users out there be sure to keep an eye open!

In reference to the last entry, I decided to go with LGPL, so anyone out there wants to modify NASM but was deterred by the old licence, go ahead and use it under the new licence!

Well, I haven't been here for a little while.

My home PC, which is half owned by my company, has been commandeered back by them for a little while, while I work on a project on it (my standard desktop machine at work runs NT only, and the project is a linux one that requires more processor power than our 200MHz application server box can spare...). Hence, not much work has been achieved recently.

A helpful e-mail recently pointed me in the direction of a group of NASM developers that I had lost contact with a while back (when Nelson Rush left their group, as he was the only one I had ever really had a chance to work with), and brought up the issue of licensing again.

For those who don't know about it, NASM is currently released under a rather obscure license, that has been officially declared by the OSI as 'not free' (I disagree with them on various points, but agree that it isn't a good license). For quite a while now, I have been intending to relicense NASM under the DSPL, an idea I have been playing with for a little while now. However, after two attempts to get it OSI certified, it has again not made it due to the license-discuss list not having given it adequate discussion. It is a rather unusual free software license, and I don't think they are entirely comfortable with it. Maybe now is not the time for it.

So, I have been considering alternative licenses. Those who know me well will know of my dislike of the GPL. As one who works in the software business as well as in free software communities, I know all too well that GPL code is often avoided for commercial use due to potential problems. To what extent do two interrelated processes need to be separate before one of them can be licensed separately? This is a very important question that the GPL treats only vaguely.

I have been considering LGPL. A lot of people read that and say 'but NASM isn't a library'. While this is true, there are many advantages in treating it as such.

  • Aggregation of NASM with projects under different licenses becomes easy: you can say 'you will need NASM on the system' without having to worry about whether this causes your project to be licensed under the same terms as NASM (it might with the GPL, depending on how you read it).
  • Certain parts of NASM, particularly the instruction table, and maybe also its preprocessor, would be useful to turn into an actual library as many other programs could benefit from using them.
I have considered separating NASM out into a back-end library (licensed under the LGPL) and a front-end program (BSD licensed), to prevent any 'but this isn't a library' style difficulties people may have. The task wouldn't be too hard.

My other option is to just forget about keeping control of the project and stick the lot under the BSD license. Then I could forget about it all and just let people go their own way - this is very tempting at times.

Anyone want to let me know what they think? E-mail me if you have a strong opinion...

Got some time over the weekend to do a bit of organisational work. Had a look over the current state of NASM and checked up on what bugs had been fixed and hadn't. I'm going to organise an interim release, so that developers can tell whether or not their patches have made it into my code and whinge at me in case they haven't.

Had a play with an old scripting language I wrote for my company a while back, and got it to compile with modern compilers & glibc. I don't think the company is interested any more so I may be able to persuade them to release the copyright back to me, at which point it's open season :-)

If I can get it to work properly, I'd like to incorporate it into Helium, which is an experimental project I've been working on lately, a web application server similar to ColdFusion... it definitely needs a scripting language, and I'd rather not rewrite from scratch or have to learn how to incorporate someone else's code into it.

Also got a chance to play a bit more with QT; I've started on a personal finance tracking application to replace a spreadsheet I've been using with something a little more usable...

All in all, a rather busy weekend!

Well, its about time I got myself an account here. I've been an occasional reader for some time, but haven't got around to setting an account up until now.

I'm sure some people reading this know me (Hi!), but then again most of you probably don't, so I ought to introduce myself a bit better than the dry description I just wrote.

I've been involved with free software for many a year now. The first project I worked on was NASM, the Netwide Assembler. While most of the code in the earlier stages was written by Simon Tatham, I worked closely with him on the architecture of the system and have been strongly involved with most of the design decisions that has brought it the acclaim that it (I think rightly) has received over the years. Despite rumours to the contrary, Simon's departure as head of the team hasn't left the project completely dead in the water, and a new version will be released some time soon. Especially now I've got myself a new PC at home :-)

Anyway - I'll chronicle more of my life story for those who don't know me at some point later. For now, I'll bring myself back to the present with a bit of a status update on what I'm working on now.

I recently discovered the delights of QT, and have been working on a few little test applications with it, getting to the guts of how it works. I don't know exactly what I'm going to do with it yet, but it's good to be able to do this kind of thing when you need to :-)

MOSCOW, my pet operating system, has progressed a little. I now have the core of the microkernel running with a couple of tasks doing weird things on the VGA text mode display. Making it a bit more stable and adding debugging support is the next step, following which I can start implementing the IPC parts of the system call interface.

Erm... I've been doing a bit of research into video compression, but that's my paid work, so I'm not sure if anything free will come about from it (my company would probably not appreciate me releasing the results of their research!). That seems about it for the last few weeks... if anything else happens, I'll be sure to let you all know :-)

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!