I managed to ready the “Moogle” milestone release one day later than I originally planned. This time there was a lot of work around the project: Establishing Mantis as my tracking system and changing the license to GPL. I never felt comfortable with doing the project on the Apache 2.0 license, because I am more familiar with the GPL and it goes better with my personal view about software freedom.
The sourceforge tracker would probably have been perfectly appropriate for my needs, but using Mantis gives me an opportunity to learn a new tool. I like to see how other people write software and learn from them, I have worked with Bugzilla, and while I can use it, I prefer simpler interfaces like Jira or in Mantis.
Actually there were only three new features I added this week: Compartments, rectilinear connections and multiline editing. These are central features, because I am still in the phase of creating the building blocks of the system.
The rectilinear feature took me the longest to add and in fact, I need to refine it in later versions. Basically connections between the main elements (associations, dependencies, inheritance etc.) could be implemented by only one style of connection, I have grown used to the rectilinear feature of many drawing programs and so choose to implement it. I have to admit, it seems not that easy to get it to “feel right”. Every time I work on an application that is primarily dominated by the user interface, I am amazed at the amount of detail that needs to go into it to make it to “feel natural” and it makes programming user interfaces a greater challenge than writing a server application in my opinion. Technology is one thing, but getting a feature to work according to one’s expectation involves more than just technical skill.
Looking at the fields of computer and video games, the great games all have great balance in their user interfaces and application developers can learn a lot about designing interfaces by looking at a computer game.
The next release is named “Chocobo”, another internal release, that will add some more features towards a usable tool.