“Many organizations which want to use Qt for their business applications choose commercial licenses, for a variety of reasons. These include restrictions in using open source licensed software in industries such as defense & aerospace, or the need to provide product warranties & indemnities such as in the medical device industry. Others choose a commercial relationship for access to Qt professional support and services to ensure successful development of their projects.”

and Matthias points out:

First, warranties, indemnities, support and services can be done with any GNU license. Qt is licensed under the GNU LGPL, so in this sense it is a commercial license. There is commercial Free Software, as well as non-commercial non-free software, or to put it in David Wheeler words:

“It’s time to end the nonsense. OSS is practically always commercial, which means that there are two major types of commercial software: proprietary software and OSS. Terms like ‘proprietary software’ or ‘closed source’ are plausible antonyms of OSS, but ‘commercial’ is absurd as an antonym, and phrases like ‘commercial or OSS’ make no sense.”

I agree with Matthias (and David) here; speaking as a software engineer, the biggest requirements in the aerospace and defense sectors are about testing and software reliability.

For example, NASA requires complete MC/DC for critical code. But that has absolutely nothing to do with licensing.

Most proprietary software does not qualify either. And its closed-source development model makes it only harder to assess its quality, because it is hard to ask for multiple third-party code reviews.

In fact, many times tenders for aerospace or the military ask for delivering *also the source code*. I wonder how any type of free software licensing scheme can hinder that.

As far as other points go: the GPL states that “this program is distributed without any warrant of any kind”. But indemnities can be offered as an additional service on top of the original license (like the GPL). This is not unalike to what happens with most EULAs.

This week I finally managed to get my Bachelor’s degree in Computer Science with a final mark of 101/110. Here you’ll find my thesis about the project I implemented during my final internship: Gallows.

Gallows is a scaffold generator that uses ExtJS 3.0 to achieve CRUD actions on a editable grid, as well as on some associated controller views. The Gallows generator produces a grid view of records starting from a pre-existing model. The capability of modifying, creating and deleting items is achieved via AJAX, by setting up ExtJS 3.0 to use a JSON renderer.

It is necessary to run the generator two times: the first round it creates a stub of configuration file, which you can alter to achieve the wanted result in views. The second time, it generates a controller and the right JSON-based views.

The advantage of this approach is to allow you to get automatically some join capabilities across different tables/models, and to associate the right widget to the right field when more than one may apply. (Hopefully) sensible defaults will be auto-generated. The controller name (which can be namespaced) must match the model name.