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 ThingML.org 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  https://bitbucket.org/bbluemel/indentbyfold/ or by the Plugin Manager;  “Plugins->Plugin Manager->Show Plugin Manager”. Which is easiest.

ThingML_Npp.xml

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.

Enjoy! 

It’s inspired by this story.

So, whats up?

I feel like I mostly start a post being sorry that I don’t post so often, not anymore. I’m not sorry, life just busy. You might wonder what I’ve been up to. The last thing you heard is that I’ve got my tablet. So, I’ve started my Master in Design, Use and Interaction. It’s looking good and I’m taking two course in modeling and system process improvement, plus one in experimental it design. I have also applied for a master thesis about ThingML and Android. Hoping to get that, cause that would be a blast.

I’ve also worked on two more Android apps. One for something called Idéfestivalen, which was a treasure hunt (read: geocaching) app, taking you around campus both on Blindern and in Oslo center. The other was yet another Heroclix app, but this one is focuing on hosting a tournament. So you don’t need to use pen and paper. I also participated at Idefestivalen with Loopy Tangible, the sound machine I’ve mention earlier. Looked like people had fun playing on it. Now we just need to make another one, as it’s getting worn out. People are rough with it. Especially children.

There is also some new photos on my Flickr stream.  Some graffiti/stickers, one of a cute robot and one of a strange street art. You should really check the last one out.