To the Future Croatian Prime Minister – Part 2

Information and Communication TechnologiesDear Sir/Madam,

as announced in part 1, in this letter I would like to draw your attention to a few country-level, ICT-related issues I have stumbled across over the years. Once more, this is just a sampling of all ICT issues: I am afraid we have amassed many during decades of all but ignoring computing technology. The elections are just around the corner so I better get started…

Allow me to start with education as I cannot overstate its importance in my eyes or my concern with how it appears to be developing. The state has the last (only?) word on which text books can be used in schools (and rightfully so). However, it refuses to let the education system into the 21st century: this is roughly what happens… Continue reading “To the Future Croatian Prime Minister – Part 2”


No one should ever use Adobe Flash

Flash is basically a content delivery platform and one which is supported on a large majority of computers. You all know what kind of content it is about: typically video, some games, advertisements and various minor page decorations or enhancements. Thankfully, this list no longer includes flash-only web sites, a justifiably failed experiment in graphical user interfaces.

To get straight to the point, the key problem with Flash is that it is a content delivery platform under the control of a single third party – Adobe – with effectively no way to get around it. Consider the situation: a significant part of the world digital content is currently created, distributed and reproduced using Flash technology and the only people in the world with a say in how this will work are anonymous board members of a corporation in the USA. Given the choice, who would ever hand over so much power to a board of directors on another continent? Who would want to maintain such a situation?

It is not only a matter of control: there is the issue of quality. Continue reading “No one should ever use Adobe Flash”

Why it is hard not to love Mercurial

Source ControlSoftware is complex. You wouldn’t believe how complex it is. You might think a skyscraper is a complex system, but if buildings got built like software, you would frequently run into fractal cathedrals filled with basketball halls, space ports and zero gravity hair styling salons, reaching into higher orbit and standing upside down on one of their many towers.

Because software is complex, people tend to reduce focus to what they think is most important and polish it as well as they can. However, every once in a while, one stumbles over something which can only be called a diamond because from whichever point of view you look at it, it always looks perfect. One such system is Mercurial, an SCM system.

Continue reading “Why it is hard not to love Mercurial”

Please keep settings in a database

settingsOne of the things people keep reinventing in all kinds of information systems is settings management. There are a number of ways to go about it, which is what probably confuses developers: settings can go into simple property files, XML/YAML files, structured/typed DB tables and general purpose key-value DB tables, among others.

Each of these is best under specific circumstances and it is worth looking at how things are done in really successful software.

Java uses simple property files which get packaged into .jars and are typically used as read-only mappings which are quick and simple to process and easy to understand. Providing GUI element translations in such files is a fairly sensible use of .properties files. Because no assumptions can be made about what the code does at the language level, using a database is out of the question.

Log4j used to be configured using properties files, but property files being basically maps, this was too strict a constraint to represent the richness of concepts the log4j developers wanted people to be able to express. They solved the problem by switching to XML with which they retained the immediate access to the content, sufficient readability (mostly due to limited document size) and reasonably simple processing. Again, there is no such thing as a log4j database to keep settings in so a database table is not an option.

Having said all this, it is very rare that people develop software for the x86 platform without using some kind of database. Continue reading “Please keep settings in a database”

No kind words for Microsoft Word

Microsoft WordWell clearly, it is not free software, runs on only one operating system (and not a very good one, at that) and its maker has a long history of sabotaging every aspect of interoperability. However, I have been forced to use it by rules beyond my control and the impression I got is not very flattering. These are some of my observations, in roughly chronological (i.e. useless) order:

  • it scales pasted images from other applications so that it can’t be scaled to the original size and ratio
  • inconsistencies between pop-up and main menus, e.g. no “insert row” in a table context menu, but it is present in the main menu
  • it hangs several times a day
  • it promotes sloppy style management: “you do what you like with the text and I’ll see what I can make of it”-approach
    • regularly mixes “Body Text” and “Normal” styles making documents look bad and requiring subsequent clean-up
  • the dynamic main menu: searching for less used features takes more than its share of time, menu items can no longer be expected to be where they “usually” are
  • Continue reading “No kind words for Microsoft Word”

Umbrello pros and cons

Umbrello activity diagram

UML modelling is one of the more under-served aspects or areas of software development within the FOSS ecosystem, so I find myself pushed to frequently re-evaluate less than ideal offerings.

Umbrello is one of the tools I have revisited a few times and, to cut a long story short, it is one of the tools I will not use again until or unless it significantly evolves. To be fair, I appreciate a number of its properties:

  • in certain respects it is quite fast: during start up, initial work on a diagram, saving of diagrams, editing of individual objects…
  • it builds a fairly extensive and sensible underlying concept dictionary
  • it allows me to document the model on every level
  • it is fairly simple to get around
  • it supports a fair number of UML diagram types

However, there is no shortage of issues:
Continue reading “Umbrello pros and cons”