Development

Qt / Nokia ramping up open source involvement

community Open Source qt

I reported a few months ago on how pleased I was that Qt was changing license to the LGPL, something I saw as a watershed for Qt adoption. I already had an awful lot of respect for Qt, but the previous GPL/commercial license did mean that adoption was in two quite widely separated camps - those who were already making GPL software, and those that could afford to license it for other cases.

Read more →

Windows 7 giveth, and taketh away

I picked up on this via Gringod’s twitter: Windows 7 will have an XP Mode, a virtualised environment but with the added bonus that it doesn’t create a new desktop, just virtualised application windows inside Windows 7 that are actually running on an XP SP3 VM. At first it all sounds pretty damn good, paving the way for MS to ‘do an Apple’ and redesign things more fundamentally without having to worry about being backwards-compatible forever.

Read more →

Oracle - the devourer of open source databases

In a past working life, I used Oracle a fair amount - I used Oracle 7 through 10, and they were pretty decent products. The lineup was pretty simple back then - Oracle was the gruff, stoic mercenary who didn’t talk much and cost a fortune, but had it where it counted - if you could get him to do what you wanted; SQL Server was the approachable and gregarious rogue who was a jack of all trades and came fairly cheap, but had a habit of disappearing into the shadows or asking for more money at more sticky moments; and MySQL was the happy-go-lucky bard who was just along for the ride, happy to work for free so long as it was all just a jape and no-one asked him to do any real work.

Read more →

Google Summer of Code 2009

As I just announced on the OGRE site, I was really pleased to find out today that we’ll be participating in Google Summer of Code 2009. This will be the 4th year running for us, and it wasn’t at all a given that we’d be accepted again this year - even though I think we’ve been a good mentoring organisation for the past 3 years, there are always new organisations wanting to get onboard and there are a finite number of places, so I wouldn’t have gotten my panties in a bunch if we’d been passed over in favour of letting someone else have a go this year.

Read more →

Learning to love CMake

build cmake ogre

The trouble with developing a project which is not only cross-platform, but is old mature & wizened enough to have users dotted across a whole history of incompatible versions of the same tool, is that you end up having to maintain a ton of project files. Linux makefiles, 3+ versions of Visual Studio, Code::Blocks, XCode, Eclipse - it all gets a little unmanageable. I’ve been meaning to look at cross-environment build managers like CMake for a long time, but the time investment required to port & test, let alone learning how to do it, was daunting enough that it never seemed to make it to the top of my TODO.

Read more →

Making a new home for patent trolls

I live on an island that often gets bad press for being a ‘tax haven’. Those in the local financial services industry don’t like that term of course, pointing out how standards-compliant the finance industry is, and how many information exchange agreements we have with other countries (the line ‘the lady doth protest too much’ bubbles to the surface in some people’s minds I’m sure at this stage). So, we’re not technically a tax haven according to the OECD definition, but we’re certainly a place for people to stash their money and avoid paying tax on the income they derive from it in the juristictions in which they live.

Read more →

Kaz doesn't understand (most) developers

Sony’s PR machine has been rather contrite of late, after some really quite stellar gaffes a few years ago, but comments from Kaz Harai in an interview recently are a firm return to the ‘what in Gods name were you thinking?’ school of PR. Ignoring the fanboy-baiting predictions of who’s going to ‘win’ (given the expansions in the game industry, does anyone have to ‘win’?), the bit that got my attention was when he talked about the (many would say unnecessary) complexity of developing for the PS3:

Read more →

Qt 4.5 will be available under the LGPL

I’m on the Qt (owned by Nokia now) mailing list since I have a commercial license for a client project, and I got a very interesting email today, telling me that on its release in March 2009, Qt 4.5 will be available under the LGPL. This is really big news. Up until the current Qt 4.4, your only licensing options are a per-seat and per-platform commercial license (which adds up if you have multiple developers and multiple target platforms, which you will do if you’re using Qt anyway), or alternatively the free option which means you use it under the GPL - meaning all your own code has to also be GPL, with an exception that allows you to publish / use software under other open source licenses too, but nevertheless it all has to be public.

Read more →

SpatialGraph, SceneTree, RenderQueue - sound familiar?

design ogre OO scene graph

I was quite gratified to read this post on Wolfgang Engel’s blog, in which he refers to some other posts discussing the recommended categorisation & nomenclature for the various stages / structures of scene rendering. If you read it and you’re an OGRE user, you’ll find them all rather familiar concepts, because OGRE has been based around these principles for years 😀 “SpatialGraph: used for finding out what is visible and should be drawn.

Read more →

Depth shadow mapping Dx9 depth-range gotchas

Pretty much everyone wants to use texture shadows in their real-time scenes these days; since they are calculated entirely on the GPU they scale well with modern chipsets, they are capable of shadowing alpha-rejected materials correctly (both as casters and receivers), they can be extended relatively simply to have soft edges, a variable penumbra and opacity with distance, and all kinds of other nice features. Depth-shadowmapping is the approach whereby you render the light-space depth (or some derivative thereof) of the shadow caster into a (typically floating point) shadow texture, then when rendering the main scene perform comparisons of the light-space depth of the pixel being rendered versus what is stored in that shadow texture.

Read more →