From OpenStreetMap Wiki
Jump to: navigation, search


My name is Bogdans and I am currently acquiring a computer science degree in Eindhoven Technical University. This year I am taking part in Google Summer of Code 2017 working on the project JOSM: UI enhancements and Main menu refactoring the main purpose of which is to refactor some core modules of JOSM and improve UI of the application. Feel free to contact me - if there is a need ;>

GSoC 2017

This section is devoted to sections listing the weekly progress during the Google Summer of Code 2017.

30.05 - 08.06

The first week was spent mainly on reading and analyzing the code of JOSM. Sounds silly, I know, but the application exists for quite a while and internals are not always so intuitive and obvious to start submitting patches immediately. The idea of GSoC is not about blindly submitting the code, but about improving the project and submitting the code that will certainly work. Because of that I spent most of my time playing with JOSM, tracking the list of open issues, reading the OSM documentation and so on. Despite that I managed to submit my first patch on improving the search dialog of JOSM which was pretty messy at that time. This task is definitely trivial, but it was the first step. Despite that, I also continued working on enhancing the search dialog by extending the language it supports, namely I expect to support for searching presets. The search functionality of JOSM is very powerful and is used often by the users of JOSM. But functionality related to searching for the presets is very limited. For example, the user cannot append resulting OSM objects to the current selected set of objects, the user cannot search for objects of several presets at the same time and so on. The idea is to add this functionality, since most of the code already exists. What is more, I also reacted on the ticket on adding user defined queries which is still not defined properly.

To summarize:

  • Diving into the JOSM codebase.
  • Refactoring the search dialog.
  • Working on extending the query language of the search dialog.
  • Proposing functionality for snippets

09.06 - 16.06

During this week I was mainly focused on extending the search compiler of JOSM to allow the users to search for object by presets. Also, spend some time on testing the feature to ensure that it behaves as expected. According to the pull request on GitHub, there is not much code, but it is worth noting that exploring the code of the search compiler was challenging in some sense ;) The feature seems to be working and the progress can be viewed here.

UPD: It turned out that searching for presets by their 'simple' name is not a good idea, since these can overlap and confuse the users of JOSM. For example, one of the standard JOSM presets has simple name 'Rental' and there are several types :

  • 'Transport/Bicycle/Rental'
  • 'Transport/Car/Rental'
In case of using just a simple name ('Rental') wrong primitives can be matched. To avoid this issue, I am currently working on refactoring the code to use strictly complete names and extend the search dialog with a list of available presets and let users choose them.

17.06 - 23.06

During this period I was mainly focused on finishing the issue explained in the previous part. Here is the pull request that fixes the problem and also adds additional feature, namely it allows the users to search for objects using two types of queries.

  • Regular query matching objects only of one preset : preset:"Craft/Blacksmith"
  • Query with the wildcard that matches all objects that belong to a certain group of the preset and not the preset itself : preset:"Craft/*"

Also added a new GUI component that allows the users to select presets easier.

24.06 - 30.06

Exam week