Master thesis is delivered

The reason for the lack of posts is because I’ve been quite busy working with my master thesis that I delivered yesterday! So my summer break have (kinda) started. Need to give a presentation about my thesis sometime between the 5th and 20th of June before I get my grade and diploma. It is very nice to finally be done, but it also feels a bit strange. “What to do now” kind of feeling, as I have worked a lot on the paper the last 5 months. So if you want to read it you can click here, but be aware, it is 121 pages about implementation of editors with textual domain-specific languages. Check out the abstract underneath.

Keywords: ThingML1 , Open-source, Framework, Editor, Integrated de- velopment environment (IDE), Domain-specific language (DSL), Eclipse, RsyntaxTextArea, Eclipse Modeling Framework, EMFText, Xtext. In this thesis there has been a research on different text-editor frame- works that can be easily implemented with a domain-specific language. Several frameworks were tested both by implementing a language and by a comparison of available data. From this we ended up favouring RSyn- taxTextArea and made a fully working editor with the language ThingML. Features implemented were syntax highlighting, code suggestion/comple- tion, outline/syntax tree, and error-reporting. These selected features were chosen by having a survey of which gathered information on what kind of editors developers use, what kind of features the editors supports and what features that were used.

You may be wondering what I’m going to do next, and part of me are doing the same, but I have some projects that I would like to do. Since I have three months before I start working again I think I should be able to finish them all, *crossing fingers*. Also, I will write more about my job in August.

Following is a list of summer projects 2013!

  •  Blog! My draftlog is pretty big, so expect a new post each day the coming weeks.
  • More bloging, want to do at least one “songweek” and one “vinyl week” the coming month.
  • Code! I have a lot of coding projects that I want to get done with. For now I’m working on a game and learning a new language called Lua (with the framework Löve2d) which is really fun, plus I have some Heroclix apps that needs to be upgraded. So we’ll see how that goes.
  • I’m also still working on my NTE car, I’ve decided to upgrade the motor to brushless instead of the brushed. It wasn’t good enough for the big 1/8 car, but it fit perfectly in my old Tamiya FF-01. So we’ll see how much money I can gather. I still have the g-force program to code, so that is going to be fun.
  • Speaking of RC cars. I’ve been filming jumps and driving with my buggy so I’m hoping to be able to put together a little film. Jumping in 240 fps looks very cool!

I think that is all.

Notepad++ and ThingML

I still haven’t properly talked about my master thesis topic, and now is not the time I’m going to do it either. What I will do is talk about the language my thesis is around, namely ThingML.

ThingML is a new domain specific language currently under development at SINTEF, it’s probably easier to just copy + paste the working on the page;

ThingML is a modeling language for embedded and distributed systems. It is developped by the Networked Systems and Services department of SINTEF in Oslo, Norway.

ThingML stands for “Thing” Modeling Language as a reference to the so called Intenet of Things.

The idea of ThingML is to develop a practical model-driven software engineering tool-chain which targets resource constrained embedded systems such as low-power sensor and microcontroller based devices.

ThingML is developed as a domain-specific modeling language which includes concepts to describe both software components and communication protocols. The formalism used is a combination of architecture models, state machines and an imperative action language.

The ThingML toolset includes text editors to create and edit ThingML models, a set of transformations to create diagrams from ThingML models and a set of code generators to compile ThingML to C, Java and Scala.

So, what does ThingML have to do with Notepad++? The current ThingML Editor isn’t really good, to be honest, it’s crap. Sadly, since there is no other editor (that not completely true, there is an Eclipse plugin, but Ecplise is way to big for ThingML. A simple stand-alone editor is preferably best for ThingML.) out there. Luckily you can make your own user defined languages packs for Notepad++, to make it easier to read code, indent it, and generally edit it. So that what I did today, so for you five other ThingML users out there, you can download the .xml file at the bottom of this post. For best usage you should install  the “Indent by Fold” plugin. You can find it here or in the Plugin Manager. Here is a little how-to on installing my language pack.

Import the file by opening  “User Defined Language” which you can find under “View->User Defined Dialog…”. Then click the  “Import” button and choose “ThingML_Npp.xml”. Then install the “Intend by Fold” plugin either by going to or by the Plugin Manager;  “Plugins->Plugin Manager->Show Plugin Manager”. Which is easiest.


Training master students

I haven’t written much about my master thesis, but my friend Jan Ole who is on the same project has. Mostly because he is one year a head. I’m also getting help from him to learn the language my master thesis is supposed to circle around, namely ThingML. I’ll get back to this language and my master thesis on a later post. What I wanted to show you here is a post by my friend wrote about the training session we had today.


It’s inspired by this story.