Author Archives: Stefan Prasse - Page 4

ttrss – Light and dark theme

with todays post I hope to sort out some confusion about the setting named “Use dark background for article text”.
In german: Nutze dunklen Hintergrund für Artikeltext
In italian: Usa lo sfondo nero per gli articoli
In russian: Использовать тёмный фон для статей

Some people seem to think that this setting changes the overall style of the app, but it doesn’t. The app uses the setting of windows 10. On desktop/tablet you should have the light theme enabled by default (dark theme can only be set through registry hacks at the moment). On Mobile you can switch between light and dark theme.
However there is one place whithin the app that doesn’t use those predefined colors – the article body.
This is basic html rendered by the edge browser. And per default this uses black text on white background.
For those using the dark theme this just looks stupid (IMHO). So I created the setting to use white text on black background – and that’s all the setting does. Just compare the two screenshots below.

For the light theme it doesn’t make much sense to enable the setting, but you can do of course if you like to.

Have a nice day.


Follow the tips & tricks post via this feed:

Dark theme with setting disabled

Dark theme with setting disabled

Dark theme with setting enabled

Dark theme with setting enabled


ttrss – Swipte to open FeedList Pane


here is my first tip for the users of my tt-RSS App for Windows 10.
On Windows 10 Mobile or when you resize the app to have a small width, the Menu with the list of feeds is hidden and just pops up if you click on the hamburger button.

Highlighted area where you can swipe to open the menu.

Highlighted area where you can swipe to open the menu.

As the button is far away when you’re using your phone with one hand, I implemented a swipe gesture to open the menu. Just swipe from left to right somewhere above the list of headlines (see red rectangle in the screenshot on the left) and the menu should open. Sadly this doesn’t work for the listview of headlines, but better then nothing. Please comment for improvements or problems.

Have a nice day!

Follow the tips & tricks post via this feed:

Tips & Tricks for TinyTinyRSS for Windows 10

Hello there,

as the app usage really grew with the migration to a window 10 universal app, I want to start a blog series with tips for the app. Sometimes I get bad comments or reviews, just because a feature is not known or a setting is misunderstood. I’d really like to get in touch with you, cause most problems can easily be fixed.

And of course you can get all these tips and tricks as feed right within your app. Just subscribe to the following feed:

Tiny Tiny RSS Client

Hello there,

last year my son was born. Since then not much happened here, mostly because I was at no concerts since then. The spare free time, that I don’t commit to my son, I spent with programming. And that’s what this article is about: the Tiny Tiny RSS Windows Phone client.

Tiny Tiny RSS is a software that can be installed on yyour own server to read and manager RSS feeds, like your own Google Reader or news aggregator. If you didn’t understand a word, you can probably skip the rest.
Here is some explanation about tt-RSS: How to Build Your Own Syncing RSS Reader with Tiny Tiny RSS

Tiny Tiny RSS has a built in web interface that isn’t that comfortable to use on a smartphone. And as I didn’t like the existing apps for windows phone 2 years ago I started to build an app for myself.
The result is a fine working app (at least for my purposes) with 400 downloads to date. I can’t tell about the real number of users, cause microsoft has no statistic for that, but I know there are at least 36 users, cause they are using the live tile.

Well that’s all I wanted to say for now. There is a project page hosted on this blog and you can find screenshots on the help page. I still have some features in mind that need to be implemented, so no boredom in sight for my just started holidays.


MGT Testlanguage

Part of the series about a project of mine: MGT

After I wrote about the metamodel for the tests in the last post, it’s easy to present the language now. The language is just an easy to write serialization of the model. The more interesting part is the tooling to derive the language from the model and an editor to use the language. So I start with this first and we’ll see the result at the end.

For deriving the language from the Eore model I used EMFText. For the basic installation and usage have a look at the projects homepage. To define the language one has to add a syntax description for any model element. The descriptions are like EBNF notations. The following snippet shows the ones of MGT:

    TestSuite ::= "TESTSUITE" #1 "{" !1
                        "suiteName"":" name[BIGNAME]"," !1
                        "systemUnderTest"":" systemUnderTest[BIGNAME]"," !1
                        "adapter"":" adapter[IDENTIFIER] !1
    TestCase ::= "TESTCASE" #1 "{" !2
                        "caseName" ":" name[IDENTIFIER] !2
                        (testSteps ";"!1)+ 
    Assertion ::= "ASSERT" assert[IDENTIFIER]"(" actual ("," expected)? ")" (":" 
                    verdict[fail : "FAIL", error : "ERROR", inconclusive : "INCONCL", pass : "PASS"])?;
    UIElementLocator ::= "id" id[IDENTIFIER];
    Keyword ::= name[IDENTIFIER]  (":" target)?  (":" testData ("," testData)*)?  ;
    Sequence ::= "SEQUENCE" #1 name[IDENTIFIER] #1"{" !1
                        (steps ";"!1)+ !0
    SequentialStep ::= "seq:" sequence[IDENTIFIER];
    Integer ::= dataValue[INTEGER];
    Boolean ::= dataValue["true" : "false"];
    String ::= dataValue['"','"'];
    Float ::= dataValue[FLOAT];

I don’t wanna explain the whole thing now so I refer again to the documentation of EMFText or you can compare it to the actual language below.
Besides the syntax you can also define the tokens that are allowed to fill the models properties (text in square brackets, e.g. IDENTIFIER), the token styles and some options for code generation. All that is done in one ‘concrete syntax’ file.

Having a valid cs-file you can start generating code. EMFText will generate three Eclipse Plugins. The first one contains Java-Classes that represent those of the model (EMF itself can also do this). Another Plugin is used to parse text files to models and vice versa. This plugin uses antlr to parse the text. The third plugin provides code to integrate the language into the Eclipse editor, like code completion, run configurations, code styles, validation and so on. To make it more usable one should adapt the third plugin, which I also did and will present in another post.

With those generated Plugins you can configure a new Eclipse environment that allows you to write instances of your metamodel. The following screenshot shows the MGT test (model) editor with validation (errors and warnings) and code completion.
As this is a complex topic don’t hestitate to ask and/or discuss.