Sensor Web, Geoprocessing, Security & GeoRM, Geostatistics, Semantics, 3D, Ilwis, Earth Observation

Ilwis 4

January 23rd, 2012 @ 10:19 by MartinSchouwenburg
Posted in ILWIS

Ilwis 3.8 is almost done (sigh, finally) and apart from some bug tracking I don’t expect significant changes anymore. I am not sure if I will release it before my own holidays ( after 2nd week of february) but we will see.

The last few weeks a discussion has started internally but also within 52n, about the future of Ilwis. All parties see Ilwis as worthwhile (for different reasons) but also see sginificant risks in the future. The risks boil down to the following points (note that I don’t agree with all points, but I mention them anyway).

  1. Ilwis is based on old technologies, programming wise. This is true. Many choices were made 10-15 years ago when the IT world was quite different from the current IT world. That we are still able to make a quite nice product out if proves that the choices we made were quite reasonable, also in the long term but still the point stands.
  2. Ilwis is based on an old fashioned programming paradigm: Desktop applications. We should change towards a more web/browser/service oriented model as this will be the future. Yes and no. True, our support for web based things is limited, though the options in 3.8 have increased significantly.  Ilwis was designed in a world where the internet played a limited role, certainly with respect to data access and services. That has of course dramitically changed since then and we should better support that. But I question the statement that desktop applications are ‘old fashioned’. Browsers are quite limited in what they can do with local data and doing all processing remote is a pipe dream. In the long run I believe we will see a merge between dekstop and browser enviroments. A bit like Google envisions with Chromium OS; though they are probably not the right party for it to succeed.
  3. Ilwis is based on an old fashioned language, C++. We should change to something more modern like Java. Sigh. People who propose this don’t have a clue in my opinion. First of all, these days, C++ is probably more modern than Java. The last overhaul of the C++ language is from July 2011. Java specs are older.  The C/C++ combination is still king when it comes to raw performance  and Java lags (literally) behind. Some claim that Java is “easier”, but seeing that both laguages are very similar with respect syntax and structure  I don’t see were that claim is comming from( I programmed in both languages). Sure C++ can be quite difficult when delving deep into the generics but this is hardly something you do regulary. Ever tried class loaders to work flawless in Java? urgh. Probably every language has its nooks and crannies were you rather keep out. Anyway, the complexity of big applications like Ilwis is not in the language, but in the size and design of the application itself.
  4. Ilwis is rooted in the Windows enviroment and we should be able to run on more platforms. I agree with this. When Ilwis was designed, Windows was absolute king. It made no sense to make it for different platforms. Sure the Mac was there but nobody used in the field we were working in. That is different these days of course. Windows is still king, but there are other platforms also. Linux (though desktop Linux is still a midget), the Mac is more viable these days, Server enivorments. And then of course the growing market of the mobile applications ( both for smart phones as for tabs). Though I dont have a clear vision what ‘meaning’ Ilwis will have for these (mobile)platforms I still feel we have to prepare in someway for it.
  5. The developer base of Ilwis is too small. True. Basically there are two developers and that is not good. This is partly due to the fact that Ilwis is quite complex to program with. The current version, though there were some overhauls in the last years, is with respect to structure and concepts 15+ years old. Many things were added to it, sometimes in a haphazard way, sometimes in a clean way. As expected the internals of the software are as a consequence sometimes difficult to fathom. Now, this need not to have any consequences for the users of Ilwis. The outside works ok I think. But for programmers wanting to contribute to Ilwis it is another story. So yes, an Ilwis 4 might create a more attractive  Ilwis for outside developers.
Though there are some other points I think these are the main points. What will happen is still very much unclear. It is under discussion and as always money ,time allocation  and commitment are the deciding factors.  Some people like to maintain the status quo, “it works fine now, why change?”, others want it to conform to their pet vision. I do agree that a new design of Ilwis is probably in order. I also think that you should not forget your roots. Slowly drifting away in a cloud of vague future visions and short lived hypes is also not a good idea.

Segment and Point editors

January 16th, 2012 @ 11:06 by MartinSchouwenburg
Posted in ILWIS

Both these editors have been significantly changed. This was a side effect of having changed the drawing system of Ilwis. The way the old editors worked could not maintained in the new system and so I had to redesign them from ground up. This proved to be a more time consuming job then I had anticipated. Particulary in the segment editor there were so many states and state transistions to be reckoned with that I sometimes had trouble determining the right course of action.  Anyway, I think I now have a working editor for both pointmaps and segment maps;

Both editors are now simply display tools, just like any other display tool and they can be found in the context menu of the display options (default it is off).

Select the the item and a new node is added to the tree looking like:

Fairly identical to the “old” button bar. Maybe a bit more understandable as I found the “old” icons always a bit vague. The layer (for which you opened the editor) is seemingly unchanged. When you select a segment, be it for a direct select or for moving/spliting etc.. The nodes of the segment become visible like:

Nodes can moved, deleted, inserted just like the old editor. When inserting a new line, you stop the line by pressing enter. In the insert mode, clicking in the middle of the segment will insert a point at that point; clicking at one the ends will extend the line(and you can add more points).

Snapping has now a big brother. You can indicate that after stopping a line it will automatically close how large the distance between both ends may be (so an auto-close).

A big change is how values are added/changed for the segments. All is now controlled by the layer info on the bottom left side. When in edit mode, the fields (not coordinates) are editable. See for example below

Also the fields of any attached attribute tables are editable.

Line and point editor work fairly identical ( point editor is of course little bit simpeler). One extra option in the point editor is though that you can double click on a point and enter exact coordinate when clicking on the map is not sufficient. Maybe I will implement this also for the nodes of the segment editor but it is not there yet.

I feel that the editors are fairly basic ( but that was also true in the old version) but as usual it is a compromise between time and functionality.

 

 

 

 

 

 

 

Successful HackDay Münster 2011

January 12th, 2012 @ 09:41 by AnnHitchcock
Posted in 52°North, Communities, Sensor Web

Ifgi recently hosted Münster’s first HackDay to promote contributions to the nationwide “Apps4DE” competition. Between 40 and 60 hackers and thinkers from Münster met throughout the day to discuss “open data” and come up with ideas for Apps which demonstrate the use of public sector information. An opening presentation by Albert Remke was followed by a series of lightening talks about linked science, linked open data, map Apps and Augmented Reality. After several hours of brainstorming and hacking in small groups, the participants presented resulting ideas and small prototypes such as:

  • Family and Recreation App
  • App for Open Sensor Data
  • Linked open data applications for the Bundestag  members and their private activities in the market economy

Several participants also announced that they plan to submit their idea or App as a proposal to the “Apps4DE” competition. In the eyes of the particpants, the Münster HackDay – one in a series of Hackdays promoted by the Open Knowledge Foundation – proved to be a highly successful event!

Organisers: Geonetzwerk Münsterland, 52N, ifgi, con terra, Open Knowledge Foundation

The printed Map

January 9th, 2012 @ 13:47 by MartinSchouwenburg
Posted in ILWIS

Finally back after a long break. Happy new year to all.

Some people have voiced to me some concerns about my remarks about printing of maps in Ilwis 3.8. Or basically the lack of it. So I think it might be  usefull if I explain a little bit better.

First of all the baseline

  • The layout object is gone. It is no more. It has been deleted. No directly printing of maps anymore.
  • The copy of the content of the mapwindow is now realy a WYSIWYG copy. Everything there  will be placed as a 300 dpi image on the clipboard.
So first of all the reason why.
  • The Layout reused (of course) the code for drawing of maps and added its own stuff to it. E.g texts, boxes, scalebar etc. The whole lot of objects we call annotations in Ilwis. These things were only available in the layout, not in the mapwindow.  Layout positioning was quite different from mapwindow positioning due to it being based on paper, not on a screen. To integrate that with the new stuff would of course have been possible but not trivial and cost extra time.
  • The Layout was not very good. Too many quirks, some bugs and limitations. I am a bit hesitant to “port” a system to a new structure and then still find it not very good. Improving it would of course have been possible, but again, it costs time. As cartographic output is not a important part of Ilwis, I find spending lot of time there a bit hard to justify.
  • After some investigation (mainly talking with users here at the ITC), I came to the conclusion that most users wanted their output as part of a larger document. A document were they could combine text, tables and cartographic output in one unit. I say here ‘cartographic output’ and not just a simple copy of the map. A copy is just a plain image with no context, cartographic output is an image that contains spatial annotations giving the image a spatial context.
Judging the requirements and time available I decided that figuring out a whole UI for layout was not worth the trouble. Creating a WYSIWYG copy on the clipboard should be sufficient. You can paste this in any wordprocessor and do whatever you like with it. Printing is certainly one of the things you can do.
Of course I had to recreate a number of annotation elements to give the spatial context. These will now be directly available in the mapwindow.  What will be available is legend, grid/graticule, scale bar, mapborders and north arrow.
People also voiced some concern about the size of the copy. “Wont I get some small screen dump that I can not use to make posters and such!”. Eehm, no. It is a 300 dpi rendering of yout screen, quite large and with high detail. So your picture is sufficient large and has all the detail you could whish.
I might release a beta-3 in the near future. Some extra stuff is in there (and lot of bugs have been removed). Almost all the functionality I want is in there.

Babel

December 12th, 2011 @ 10:01 by MartinSchouwenburg
Posted in ILWIS

Though ILWIS was in theory multilingual from the 2.0 version it was hardly used. I believe there were a (partly?) Italian version and partly Spanish version but they never ended up in the release version and/or were maintained. In the 3.7 this for the first time changed. Thanks to the work of Robin Prest and the money from the Geonetcast project a french translation of the user interface could be made.

The work of mr Prest made me also realize that the existing translation system was cumbersome and difficult to maintain. Oh, it worked, the results are ok. But it is more work than needed and difficult to track changes. Furthermore I found is as a programmer also quite annoying. Basically I had to touch multiple files when adding a string in the code. So one of the goals for the 3.8 was a more comprehensive translation system.

From the GeontetCast project the clear whish was there to have a Spanish and Portugese translation. So it was reasonable to spend some time to make this easier

I had a few goals with the new translation system,

  • The translator should have to touch as few files as possible.
  • The programmer should have to touch as few files as possible
  • Maintainance should be easy
  • The translation files can be changed without needing the change anything in ILWIS.
Fortunately I had come across the Qt platform. For some time I am pondering how to move the Ilwis code base from Windows/MFC to something more modern and platform independent ( enough stuff there for another blog) and in this context I came along the Qt framework. Apart from other nice things they had a suitable translation system in place that I adopted with some modifications for Ilwis.
What basically happens it that every “translateable’ expression in the code is compared to a lookup table that is loaded at startup time of ILWIS. If there is a translation, it will choose the translation. If not it will use the original English phrase. Internally, Ilwis only uses English. The advantage of this system is that I can extend Ilwis without needing to update the translation files each time. Incomplete translation files will simply lead to more non-translated English in the UI. Not ideal, but much better than having nothing at all. Once in a while you update the actual translation files and then everything is cool again.
So how does translating ILWIS works? It is very simple.The language files exist inside a folder in the instalation folder of ILWIS : Resources\Strings. At the moment you will see there a number files with the extension .fr and .sp. French and Spanish translations ( I am not 100% sure if the spanish is already there in the beta-2, it is now). For each language there are three files (I take french as an example). Men.fr, Dsc.fr and string_table.fr. From a technical point ‘Men’ and “Dsc’ could probably be merged but I’ll leave it as they are not that big anyway.
  • Men contain the texts of all the menus except for the operations menu. So when you translate ‘Men’ you will get a translation of all the menus. The men file consists of a number and a string. Each menu item is coupled to the number, and through the number it can find the string. This is a different organization than the ‘string_table’ file(see later) but there are technical reasons for that (never mind). When translating the file take care that the special signs (e.g. ‘&’) als end up in the translation. They have a meaning. The ‘Men’ file is not very large and can easily be translated
  • Dsc ( short for description) is a direct companion of the ‘Men’ file. Basically it contains the description/short explanation of the menu commands that appear on the status-bar below ilwis windows. it is structure and numbering are identical to the Men file.
  • The big translation table is the ‘String_Table’ file. it contains ‘the rest’. So all the forms, operation menu, windows etc.. The structure of this file is different. The file consist of a pair of strings separated by a ‘|’. For example  ”Invalid Map|Mapa Incorecto”. The software, internally, knows of the first english string and simply looks it up in the table constructed of this file to see if their is an (translated) alias. If so, great, it uses it. If not, it will use the internal english version. Note that when translating these texts it is very important to take over all the special symbols. Particual the ones marked with % ( e.g. %S,  %i etc. These are, during execution, filled with internal values. So for example a string “Adding File %S” might become “Adding File MyMap” because that is something that was happening during execution.
    This table is quite big, at the moment around 3700 entries. Not difficult to translate, simply a lot of work,
That is all there is need for translating ILWIS to a ‘local’ language. Ilwis translations have their limitations. When the internals of ILWIS were designed, many years ago, Unicode was in its infancy. It was not considered and still isnt part of Ilwis. So translations are limited to alphabets that uses the extended Ascii table. An annoying limitation these days but it is very difficult to change that (probably for a rewrite of Ilwis).
Ok, nice that we can translate things. But how do we activate a translation? Well, Ilwis contains a form that most people don’t seem to be aware of , the preferences form (under the file menu). In that form you have the ‘General’ page in the tree. That looks like this
In the form you can indicate which language files should be used (based on extension). In this example I have choosen Spanish (.sp). When I press Ok and restart ILWIS it will use the spanish translation. So a contour interpolation form suddenly looks like

A spanish form :) .
Ilwis 3.8 will contain a french and a spanish translation. It is likely that there will also be a portugese translation but that remains to be seen.
One thing. The translation is about the user-inteface of Ilwis, not of the help files. That is far too much work to do for volunteers.
Next Page »