Announcing TiddlyWiki 5.0.16-beta

365 views
Skip to first unread message

Jeremy Ruston

unread,
Sep 2, 2014, 9:03:32 AM9/2/14
to TiddlyWiki
I'm delighted to announce the release of TiddlyWiki 5.0.16-beta:


The new features and bug fixes are listed below, but the most significant changes are internal. In particular, we've adopted new prefixes for messages, classes and variables that mean that this release will break almost all plugins and customisations created for earlier versions. See the release note for more details.

Making such a big change is always undesirable, and is not undertaken lightly. I'm hoping that TW5 will enjoy a long life, and be used for many decades to come. That's why I think it's worth taking some pain now in order to try to make the eventual product better.

Anyhow, other changes in this release include:

* Amended behaviour of the tm-browser-refresh message so that it no longer clears the location hash
* Fixed problem with single line macro definitions incorrectly including whitespace in the value
* Extend TableOfContentsMacro to use the caption field if present
* Added suffix and removesuffix filter operators

Another important addition is the introduction of a preliminary version of the tw2parser plugin (developed by @buggyj). This component allows TiddlyWiki5 to display wikitext created for TiddlyWiki Classic. As well as supporting the classic WikiText format, tw2parser includes a number of macros and other features from TWC. The new component is not yet ready for primetime, but you can experiment and find out more at:


You can upgrade at http://tiddlywiki.com/upgrade.html - but please, please make sure that you keep careful backups of your content.

Any feedback or questions welcome here. Any questions from a development perspective should be posted to the dev group over at http://groups.google.com/group/TiddlyWikiDev.

Many thanks to all the contributors for their patient work on this release,

Best wishes

Jeremy

--
Jeremy Ruston
mailto:jeremy...@gmail.com

Danielo Rodríguez

unread,
Sep 2, 2014, 10:10:51 AM9/2/14
to tiddl...@googlegroups.com, Tiddl...@googlegroups.com, jeremy...@gmail.com
I think this sentence is depressing:

 we've adopted new prefixes for messages, classes and variables that mean that this release will break almost all plugins and customisations created for earlier versions.

Specially the part

we've adopted new prefixes for messages, classes and variables

I find it a very poor explanation for something that breaks "all plugins and customisations". I would like a list of what was the previous value and what is the new one. On every TW release I have to spend a lot of time trying  how new things works. I can assume it for new features and small changes but not for everything. I will think really carefully if I should spend time and effort developing anything for TW until it comes out of this unstable state.

I'm pretty sure you have your reasons for do this, and I wish tiddlywiki to have a long life too,  but it takes me out of the scene for a long time. I will monitor TW closely, and I will only upgrade if there is no other option.

If it is possible, I would like to have the 5.0.15 nodejs version available somewhere.

cmari

unread,
Sep 2, 2014, 10:40:06 AM9/2/14
to tiddl...@googlegroups.com
Hi Jeremy,
Minor point among all the daunting major ones: it looks to me as though the documentation for removesuffix
http://tiddlywiki.com/#FilterOperator%3A%20removesuffix

was copied from removeprefix but the example didn't get changed.
cmari


--
You received this message because you are subscribed to the Google Groups "TiddlyWiki" group.
To unsubscribe from this group and stop receiving emails from it, send an email to tiddlywiki+...@googlegroups.com.
To post to this group, send email to tiddl...@googlegroups.com.
Visit this group at http://groups.google.com/group/tiddlywiki.
For more options, visit https://groups.google.com/d/optout.

Jeremy Ruston

unread,
Sep 2, 2014, 10:55:19 AM9/2/14
to Danielo Rodríguez, TiddlyWiki
Hi Danielo

On Tue, Sep 2, 2014 at 3:10 PM, Danielo Rodríguez <rdan...@gmail.com> wrote:
I think this sentence is depressing:

 we've adopted new prefixes for messages, classes and variables that mean that this release will break almost all plugins and customisations created for earlier versions.

I'm not a fan of making backward incompatible changes either.
 
Specially the part

we've adopted new prefixes for messages, classes and variables

I find it a very poor explanation for something that breaks "all plugins and customisations". I would like a list of what was the previous value and what is the new one.

That passage isn't attempting to explain the reasoning for the change, it's focussed on the consequences for end users.

In terms of the details of the change, it really is as simple as the release note says: a search and replace from tw->tc, tm and tv. I think that that is all anyone needs to know to adapt existing code to the change. (There are some prefixless classes that have gained the tc prefix too, and they are listed in the ticket referenced in the release note).
 
On every TW release I have to spend a lot of time trying  how new things works. I can assume it for new features and small changes but not for everything.

That will stop once we get to the full release; then each release will be backwards compatible.

I will think really carefully if I should spend time and effort developing anything for TW until it comes out of this unstable state.
 
As I mentioned above, the full release is scheduled for September 20th.

I'm pretty sure you have your reasons for do this, and I wish tiddlywiki to have a long life too,  but it takes me out of the scene for a long time. I will monitor TW closely, and I will only upgrade if there is no other option.

The reason for the change is that it was confusing for new users to be using the same prefix for three completely different things:

 * Classes like tw-drop-down
 * Messages like tw-save-tiddler
 * Variables like tw-auto-open-on-import

The concern is that that makes it almost impossible for a newcomer to figure out what's going on. I understand that you and other contemporary users have got used to the situation, but I have to look at it from the point of view of future new users as well.

If it is possible, I would like to have the 5.0.15 nodejs version available somewhere.

It's available via GitHub, but obviously I can't offer any support in the future for old beta versions.

Best wishes

Jeremy


 


El martes, 2 de septiembre de 2014 15:03:32 UTC+2, Jeremy Ruston escribió:
I'm delighted to announce the release of TiddlyWiki 5.0.16-beta:


The new features and bug fixes are listed below, but the most significant changes are internal. In particular, we've adopted new prefixes for messages, classes and variables that mean that this release will break almost all plugins and customisations created for earlier versions. See the release note for more details.

Making such a big change is always undesirable, and is not undertaken lightly. I'm hoping that TW5 will enjoy a long life, and be used for many decades to come. That's why I think it's worth taking some pain now in order to try to make the eventual product better.

Anyhow, other changes in this release include:

* Amended behaviour of the tm-browser-refresh message so that it no longer clears the location hash
* Fixed problem with single line macro definitions incorrectly including whitespace in the value
* Extend TableOfContentsMacro to use the caption field if present
* Added suffix and removesuffix filter operators

Another important addition is the introduction of a preliminary version of the tw2parser plugin (developed by @buggyj). This component allows TiddlyWiki5 to display wikitext created for TiddlyWiki Classic. As well as supporting the classic WikiText format, tw2parser includes a number of macros and other features from TWC. The new component is not yet ready for primetime, but you can experiment and find out more at:


You can upgrade at http://tiddlywiki.com/upgrade.html - but please, please make sure that you keep careful backups of your content.

Any feedback or questions welcome here. Any questions from a development perspective should be posted to the dev group over at http://groups.google.com/group/TiddlyWikiDev.

Many thanks to all the contributors for their patient work on this release,

Best wishes

Jeremy

--
Jeremy Ruston
mailto:jeremy...@gmail.com

Jeremy Ruston

unread,
Sep 2, 2014, 10:55:42 AM9/2/14
to TiddlyWiki
Minor point among all the daunting major ones: it looks to me as though the documentation for removesuffix
http://tiddlywiki.com/#FilterOperator%3A%20removesuffix

Thanks cmari, I'll fix for 5.0.17,

Best wishes

Jeremy.


On Tue, Sep 2, 2014 at 3:39 PM, cmari <cem...@gmail.com> wrote:
Hi Jeremy,

Danielo Rodríguez

unread,
Sep 2, 2014, 11:33:18 AM9/2/14
to tiddl...@googlegroups.com, rdan...@gmail.com, jeremy...@gmail.com


In terms of the details of the change, it really is as simple as the release note says: a search and replace from tw->tc, tm and tv. I think that that is all anyone needs to know to adapt existing code to the change. (There are some prefixless classes that have gained the tc prefix too, and they are listed in the ticket referenced in the release note).
 

It can sound trivial from a human perspective, but it is not fro an automatic process. How can you distinguish between a class, a variable and a message? The only reliable way is to have a list of the old messages and its new equivalent. If you have that list already , or at least a list of the old ones classified by classes.

Maybe you can consider include that list in the upgrade mechanism and let it make the search and replace.

Julie

unread,
Sep 2, 2014, 11:57:23 AM9/2/14
to tiddl...@googlegroups.com, rdan...@gmail.com, jeremy...@gmail.com
To start it out, the list of all messages is in the ToC :

+## [[tm-cancel-tiddler|WidgetMessage: tm-cancel-tiddler]]
+## [[tm-clear-password|WidgetMessage: tm-clear-password]]
+## [[tm-close-all-tiddlers|WidgetMessage: tm-close-all-tiddlers]]
+## [[tm-close-other-tiddlers|WidgetMessage: tm-close-other-tiddlers]]
+## [[tm-close-tiddler|WidgetMessage: tm-close-tiddler]]
+## [[tm-delete-tiddler|WidgetMessage: tm-delete-tiddler]]
+## [[tm-download-file|WidgetMessage: tm-download-file]]
+## [[tm-edit-tiddler|WidgetMessage: tm-edit-tiddler]]
+## [[tm-full-screen|WidgetMessage: tm-full-screen]]
+## [[tm-home|WidgetMessage: tm-home]]
+## [[tm-import-tiddlers|WidgetMessage: tm-import-tiddlers]]
+## [[tm-login|WidgetMessage: tm-login]]
+## [[tm-logout|WidgetMessage: tm-logout]]
+## [[tm-modal|WidgetMessage: tm-modal]]
+## [[tm-navigate|WidgetMessage: tm-navigate]]
+## [[tm-new-tiddler|WidgetMessage: tm-new-tiddler]]
+## [[tm-notify|WidgetMessage: tm-notify]]
+## [[tm-perform-import|WidgetMessage: tm-perform-import]]
+## [[tm-permalink|WidgetMessage: tm-permalink]]
+## [[tm-permaview|WidgetMessage: tm-permaview]]
+## [[tm-save-tiddler|WidgetMessage: tm-save-tiddler]]
+## [[tm-save-wiki|WidgetMessage: tm-save-wiki]]
+## [[tm-server-refresh|WidgetMessage: tm-server-refresh]]
+## [[tm-set-password|WidgetMessage: tm-set-password]]

The list of all non tw-... classes is in the associated ticket :

btn-invisible
btn-icon
btn-big-green
sidebar-header
story-river
titlebar
title
modal-wrapper
modal-backdrop
modal
modal-body
modal-header
modal-footer

For the others (variables and tw-classes), it's harder to find an already done list.

Jeremy Ruston

unread,
Sep 2, 2014, 2:26:17 PM9/2/14
to Danielo Rodríguez, TiddlyWiki
Hi Danielo

Apologies, I didn't mean to imply that the actual task of adapting code for 5.0.16 is trivial, just that the nature of the changes is relatively straightforward because they are regular changes.

A tool that does the search and replacing may be feasible. In some cases there may still need to be manual intervention/verification, I guess.

Right now upgrader modules don't get told the version number of the incoming TW document, which would be needed in this case so that the upgrader can determine whether or not to make the replacements for a certain tiddler.

Best wishes

Jeremy

cmari

unread,
Sep 2, 2014, 3:30:07 PM9/2/14
to tiddl...@googlegroups.com, Danielo Rodríguez
Since I said I thought it would be "daunting" (after seeing that there were 1200 instances of "tw-" in my file), I'm coming back to report that search/replace in a text editor made things relatively easy.  Half the instances of "tw-" were related to tw-scholar, so I changed those to something else temporarily.  The examples in the release notes and the list of messages in tiddlywiki.com helped with most of the rest.  

The only slightly confusing thing (to me) was config-toolbar, which I thought might need to be separately treated because it appears as part of both a message and a class.  It does still seem a bit counter-intuitive that the class name uses the tv- prefix (tv-config-toolbar-class), rather than tc-, but it certainly makes the search/replace process easier.
cmari


--

Ton Gerner

unread,
Sep 2, 2014, 3:39:34 PM9/2/14
to tiddl...@googlegroups.com, Tiddl...@googlegroups.com, jeremy...@gmail.com
Hi Danielo,

I think you overreact.

1) TW is open source software. You don't have to pay for it and you can influence the development.
Be grateful that Jeremy spend so much time in the development of TW, a piece of software that is unique.

2) TW is in beta. It means in principle everything could change. Read the roadmap!

Roadmap
TiddlyWiki is under rapid development at the moment as it moves through beta to a full release. That is the point at which it is declared stable enough for general use. It will continue to improve and evolve, but constrained to remain backwards compatible so that plugins and content created for version 5.0 will continue to work into the future.


So, if you cannot live with changes in the beta phase you have to wait to the stable release of September 20th.
But do not complain in the way you did.

I am grateful for the work you did for TW (I do use your Context search plugin daily). So keep going on with making plugins like the Encrypt tiddler, Keyboard snippets, Packplugin, Import tools, ...

I also have a lot of personal TW's that need to be upgraded/converted (besides my 7 guides at TiddlySpot). I don't complain; it is just part of my learning process. When I started about a year ago I knew a lot would change and I accepted that.

So, stay part of the TW family ;-)

Cheers,

Ton

Jeremy Ruston

unread,
Sep 2, 2014, 5:01:07 PM9/2/14
to TiddlyWiki
Hi cmari

On Tue, Sep 2, 2014 at 8:29 PM, cmari <cem...@gmail.com> wrote:
Since I said I thought it would be "daunting" (after seeing that there were 1200 instances of "tw-" in my file), I'm coming back to report that search/replace in a text editor made things relatively easy.  Half the instances of "tw-" were related to tw-scholar, so I changed those to something else temporarily.  The examples in the release notes and the list of messages in tiddlywiki.com helped with most of the rest.  

Great, glad it went OK.
 
The only slightly confusing thing (to me) was config-toolbar, which I thought might need to be separately treated because it appears as part of both a message and a class.  It does still seem a bit counter-intuitive that the class name uses the tv- prefix (tv-config-toolbar-class), rather than tc-, but it certainly makes the search/replace process easier.

Ah, what's going on there is subtle: "tv-config-toolbar-class" is the name of a variable that contains one or classnames to be applied to any toolbar buttons that are in its scope. So, if you put <<tv-config-toolbar-class>> in a new tiddler on tiddlywiki.com you'll see "tc-btn-invisible", which is the actual classname that is applied.

Best wishes

Jeremy.

PMario

unread,
Sep 2, 2014, 7:21:55 PM9/2/14
to tiddl...@googlegroups.com, Tiddl...@googlegroups.com, jeremy...@gmail.com
Hi Danielo,

Breaking changes are the burden of early adopters :(
On the other hand, early adopters have the real possibility to influence the product, like nobody else.
So if these changes let's you abandon the scene, imo both parties lose.

I think at the moment, we only have 17 days left to introduce breaking changes. Afterwards we have to live with the decisions made.

Jeremy talked a bit about backwards compatibility at HO59 from 0:11:50 - 0:14:15 see: https://www.youtube.com/watch?v=9SVf04i6jYY&feature=player_detailpage#t=709
And knowing him from TWclassic discussions about new core features in the past. I tell you, he is serious when he talks about backwards compatibility.

So imo now is the time to influence the product :)

have fun!
mario

David Gifford

unread,
Sep 2, 2014, 8:29:06 PM9/2/14
to tiddl...@googlegroups.com, Tiddl...@googlegroups.com, jeremy...@gmail.com
Danielo

I concur with what others have said about accepting the breaking changes. This isn't the first beta version with sweeping breaking changes. I had to totally re-do TW5 mall, not only the code but the instructions, last time there was a major breaking change. I guess I better go look at that again, since it is out of date again.

That is why I said a long time ago that I would wait on doing an adaptation of TiddlyWiki 5 until it gets out of beta. I have shared experiments, but have always indicated that they were only experiments and that I would not be offering any help to people who use them. I was surprised when you did TW Scholar so soon, since that was such a huge undertaking. I remembered fearing at the time that future changes would affect it adversely.

For what it's worth, I got Stephan's new tiddler, time and date, and context search working fine in a TW of mine after a very small number of changes.

Dave

Danielo Rodríguez

unread,
Sep 3, 2014, 2:51:46 AM9/3/14
to tiddl...@googlegroups.com, Tiddl...@googlegroups.com, jeremy...@gmail.com

I think you overreact.
Probably
 

1) TW is open source software. You don't have to pay for it and you can influence the development.
Be grateful that Jeremy spend so much time in the development of TW, a piece of software that is unique.

 
I'm very grateful. Tiddlywiki is the project I donated the most in my life. Also I spent a lot of time developing tools and documenting them. Of course that does not give me any power or control over the project, but you can't say that I'm not grateful.
 
2) TW is in beta. It means in principle everything could change. Read the roadmap!

Roadmap
TiddlyWiki is under rapid development at the moment as it moves through beta to a full release. That is the point at which it is declared stable enough for general use. It will continue to improve and evolve, but constrained to remain backwards compatible so that plugins and content created for version 5.0 will continue to work into the future.


I did.
 
So, if you cannot live with changes in the beta phase you have to wait to the stable release of September 20th.
But do not complain in the way you did.

I'm expressing my opinion. I don't like the change: seems non intuitive to me and breaks every single peace of work the community did for the project. I did not say that I'm going to leave TW, but this situation kills all my customizations and I don't have time to change and try. I never complained about any change before, but this is very different: it is not any new feature, so there is noting coming in, but I should change everything in a way very prone to errors.

I am grateful for the work you did for TW (I do use your Context search plugin daily). So keep going on with making plugins like the Encrypt tiddler, Keyboard snippets, Packplugin, Import tools, ...

Glad you like it. I'm very grateful for your work too.
 
I also have a lot of personal TW's that need to be upgraded/converted (besides my 7 guides at TiddlySpot). I don't complain; it is just part of my learning process. When I started about a year ago I knew a lot would change and I accepted that.

I know that everyone has lot of work to do. 
So, stay part of the TW family ;-)

Sure I will, but I will stay out of date for a while.

Danielo Rodríguez

unread,
Sep 3, 2014, 2:52:54 AM9/3/14
to tiddl...@googlegroups.com, Tiddl...@googlegroups.com, jeremy...@gmail.com


Breaking changes are the burden of early adopters :(
On the other hand, early adopters have the real possibility to influence the product, like nobody else.
So if these changes let's you abandon the scene, imo both parties lose.

I agree with every single word.
 

Danielo Rodríguez

unread,
Sep 3, 2014, 2:58:09 AM9/3/14
to tiddl...@googlegroups.com, Tiddl...@googlegroups.com, jeremy...@gmail.com


El miércoles, 3 de septiembre de 2014 02:29:06 UTC+2, David Gifford escribió:
Danielo

I concur with what others have said about accepting the breaking changes. This isn't the first beta version with sweeping breaking changes. I had to totally re-do TW5 mall, not only the code but the instructions, last time there was a major breaking change. I guess I better go look at that again, since it is out of date again.

But this is the first beta which changes breaks so much with a change that adds not much value.
 
I was surprised when you did TW Scholar so soon, since that was such a huge undertaking. I remembered fearing at the time that future changes would affect it adversely.

TW Scholar is not mine. Is an Alberto's project.
 
For what it's worth, I got Stephan's new tiddler, time and date, and context search working fine in a TW of mine after a very small number of changes.


Thank you every one for your encouraging words. They helped me a lot in the way of accepting the changes.

I want to express my very BIG gratitude to Jeremy for this awesome and unique piece of software. I never pretended to sound ungrateful. This is my very favorite piece of software, and Jeremy is a very talented developer and a very good person. 

PMario

unread,
Sep 3, 2014, 4:58:23 AM9/3/14
to tiddl...@googlegroups.com, Tiddl...@googlegroups.com, jeremy...@gmail.com
On Wednesday, September 3, 2014 8:58:09 AM UTC+2, Danielo Rodríguez wrote:

El miércoles, 3 de septiembre de 2014 02:29:06 UTC+2, David Gifford escribió:
Danielo

I concur with what others have said about accepting the breaking changes. This isn't the first beta version with sweeping breaking changes. I had to totally re-do TW5 mall, not only the code but the instructions, last time there was a major breaking change. I guess I better go look at that again, since it is out of date again.

But this is the first beta which changes breaks so much with a change that adds not much value.

IMO this is not true. There is very much value in consistent naming conventions. Because the replaced one was simply wrong.
Sure. It doesn't pay back in the short run but in the long run. There will be much less support to do in the future.

-mario

Alberto Molina

unread,
Sep 3, 2014, 10:45:17 AM9/3/14
to tiddl...@googlegroups.com, Tiddl...@googlegroups.com, jeremy...@gmail.com
Thanks Jeremy for 5.0.15 and 5.0.16 releases!


> The new features and bug fixes are listed below, but the most significant changes are internal. In particular, we've adopted new prefixes for messages, classes and variables that mean that this release will break almost all plugins and customisations created for earlier versions. See the release note for more details.

As expressed before, it's frustrating when backwards incompatible changes force you to revise all your code, but it's the price to pay for using beta software, and personally I think it's not such a high price considering the opportunity it gives you to know better the internals and even to influence development. And I would like to thank not only Jeremy for paying attention to the needs us early adopters but also to Danielo and all the community members who have been working hard to make tw5 a better software.


> Making such a big change is always undesirable, and is not undertaken lightly. I'm hoping that TW5 will enjoy a long life, and be used for many decades to come. That's why I think it's worth taking some pain now in order to try to make the eventual product better.

Since they are for good, I hope there will be as many more "undesirable changes" as possible before the stable release.

@David Gifford
>I was surprised when you did TW Scholar so soon, since that was such a huge undertaking. I remembered fearing at the time that future changes would affect it adversely.

It's not the first time you confound Danielo's name with mine :p

Concerning TW for Scholars, I was aware of the possibility of "adverse upgrades" but I developed it as a tool for myself since I urgently needed such a tool. And it was also a good way to learn about using tw since I am not a developer. Now there's still a lot of work to be done before a "stable version" is released, including features that were made possible by 5.0.13 and are waiting for their turn, and upgrading to 5.0.16 just adds another task to the list.

Alberto

Ton Gerner

unread,
Sep 3, 2014, 11:40:15 AM9/3/14
to tiddl...@googlegroups.com, Tiddl...@googlegroups.com, jeremy...@gmail.com
@Jeremy,

With TW5.0.15-beta it was possible to use overwritten shadow tiddlers as payload tiddlers for plugin development in the browser.

With TW5.0.16-beta the original shadow tiddlers are used as payload tiddlers and *not* the overwritten shadow tiddlers.

Has something changed?

I tried with 2 plugins, Firefox 32 and Chrome 37 (Windows 7) with the same result.

Cheers,

Ton

David Gifford

unread,
Sep 3, 2014, 2:02:24 PM9/3/14
to tiddl...@googlegroups.com, Tiddl...@googlegroups.com, jeremy...@gmail.com
My apologies to Alberto and Danielo for confusing the two of you! I can't believe I did that...

Dave

CB

unread,
Sep 4, 2014, 3:29:24 AM9/4/14
to tiddl...@googlegroups.com, Tiddl...@googlegroups.com, jeremy...@gmail.com
Hi, 

I have been getting following error after upgrading to 5.0.16-beta. I think it is related to MathJax plugin from http://mathjax-tw5.kantorsite.net/ . I am aware that the plugin is for version 5.0.12-beta. But, it has been working fine till 5.0.15. So, I was wondering if there is an easy fix for the latest version....

 TypeError: Argument 1 of MutationObserver.observe is not an object.


Thanks
CB

Eucaly J

unread,
Sep 4, 2014, 3:32:20 AM9/4/14
to tiddl...@googlegroups.com, Tiddl...@googlegroups.com, jeremy...@gmail.com
@Ton:

Guess you are referring to TW5 tristate Sidebar
I like that very much, and also try to fix that (by my own) for TW5.0.16-beta

I would suggest not to overwrite the major system shadow tiddlers such as

because that might easily lost compatibility between TW5 updates

Can tristate Sidebar work by tweaking below CSS style, rather than overwrite the system shadow tiddlers ?
.tc-story-river - left
.tc-story-river - width
.tc-tiddler-frame - width



Ton Gerner於 2014年9月3日星期三UTC+8下午11時40分15秒寫道:

Ton Gerner

unread,
Sep 4, 2014, 4:40:05 AM9/4/14
to tiddl...@googlegroups.com, Tiddl...@googlegroups.com, jeremy...@gmail.com
Hi Eucaly,

Glad to hear you like my plugin.

Yes, you are right: TW5 tristate Sidebar is one of the plugins I tried to upgrade.

And yes, I know that overwriting shadow tiddlers has its shadow side ;-) I warn for it in my guide. As soon as I know a better way, I'll implement that.

If upgrading to TW 5.0.16 is not possible the easy way, I'll have to 'hack' my plugin the hard way (modifying the JSON stuff directly).

Cheers,

Ton
Reply all
Reply to author
Forward
0 new messages