[TW5] Announcing Single Executable version using Bob 1.0.2 Sourdough Biscuits

523 views
Skip to first unread message

Jed Carty

unread,
Jun 24, 2018, 9:38:10 AM6/24/18
to TiddlyWiki
I just uploaded the new versions of Bob as a single executable tiddlywiki. The updates to Bob as a plugin have actually been up for about 3 weeks but I forgot to announce it.

The single executable version is here https://github.com/OokTech/TW5-SingleExecutable/releases/tag/1.0.2

The plugin version is here https://github.com/OokTech/TW5-Bob

Let me know if you run into any bugs.

Here is the changelog for version 1.0.2:

- Fixed/Updated documentation
    - for the getSetting macro (fixed typo)
    - for the buildHTMLWiki message (added excludeList info)
    - fixed the message about shutting down the server in the server actions tab
- Fixed a bug where output single file html wikis would always be called `index.html`
- Added an optional excludeFilter attribute to the buildHTMLWiki message that lists tiddlers that shouldn't be added to the exported wiki.
- Added the option to set the location of external editions using the editionsPath setting.
    - This shouldn't affect the environment variable method of setting the location.
- Fixed a bug that would let the server try and load a wiki that didn't exist
- Updated instructions to point to TiddlyWiki version 5.1.17






























@TiddlyTweeter

unread,
Jun 25, 2018, 7:22:31 AM6/25/18
to TiddlyWiki
- Fixed a bug where output single file html wikis would always be called `index.html`

Thanks! Its working well now with bespoke names.

@TiddlyTweeter

unread,
Jun 25, 2018, 7:35:18 AM6/25/18
to tiddl...@googlegroups.com
Dear Bob & Jed

There are a few things I'd like to check to make sure I have understood them right ...

Am I right that in...

<$action-websocketmessage $type='buildHTMLWiki' outputFolder= ....

... that "outputFolder=" needs an address relative to where the wiki is located. I.e. "$type='buildHTMLWiki'" runs from the directory of the wiki concerned?

Whilst...

 <$action-websocketmessage $type=runScript

Always run from the directory where the executable is located. I.e. when using addresses in "$type=runScript" paths should be relative to that?

Ed

unread,
Jun 25, 2018, 9:54:20 AM6/25/18
to tiddl...@googlegroups.com
Hi Jed,

Am trying out latest version of Bob. Problem.
I have made a tiddler and did the following
1. I edited it: Entered some more text.
2. Changed the title
3. Saved it

Now I have two tiddlers, the old one AND the new one.
If I delete the first version that version persists and I have two
tiddlers instead of the edited one only.
I have to close down everything to get rid of it, or so it seems.
and starts via the .exe file again.
Any ideas?

Update
On the computer next to me tha t I use to check the actions via the network,
the double tiddlers seemed to be stuck, even if I had changed it on my computer.
Tomorrow I'll try again at the offive, now at home. Time permitting I will try out the
32bit version.


Update2
Tested the 32bit version at home. Made only one tiddler. Changed naan and text in the tidller.
Result 2 tiddler.
Shut down everything Restart. 1 tiddler in recent the chnged version.
Did not test over network as there isn''t any at the moment.

Nevertheless my respect for Jed's work is rocksolid!

Tschüß, Ed
= = = = = =






Op zondag 24 juni 2018 15:38:10 UTC+2 schreef Jed Carty:

@TiddlyTweeter

unread,
Jun 25, 2018, 11:31:41 AM6/25/18
to TiddlyWiki
Testing extra editions path ...

I set "editionsPath" in Manual Settings to ...

"editionsPath":".\tpl\"

In the ".\tpl\" directory I added the sub-directory "awsAgain" that is a simple clone of the "aws" edition created through Available Wikis.

After reloading Bob "awsAgain" correctly appears on the "Select Wiki Edition" menu.

I click "Make Wiki" and get the long error message below, which says something like its 'not compiled into the executable.'

FYI I undid "editionsPath" and tried running Bob using the Environment Variable instead. Same issue arose.

Wikis Folder Exists
WebSocket error, probably closed connection:  { Error: Directory 'C:\**\SingleExecutable\editions\awsAgain' was not
 included
into executable at compilation stage. Please recompile adding it as asset or script.
    at error_ENOENT
(pkg/prelude/bootstrap.js:422:17)
    at readdirFromSnapshot
(pkg/prelude/bootstrap.js:762:29)
    at
Object.fs.readdirSync (pkg/prelude/bootstrap.js:782:12)
    at specialCopy
($:/plugins/OokTech/Bob/NodeMessageHandlers.js:598:29)
    at
Object.$tw.nodeMessageHandlers.createNewWiki ($:/plugins/OokTech/Bob/NodeMessageHandlers.js:651:11)
    at
WebSocket.incoming ($:/plugins/OokTech/Bob/NodeWebSocketsSetup.js:182:57)
    at
WebSocket.emit (events.js:159:13)
    at
Receiver._receiver.onmessage ($:/plugins/OokTech/Bob/WS/WebSocket.js:156:47)
    at
Receiver.dataMessage ($:/plugins/OokTech/Bob/WS/Receiver.js:402:14)
    at
Receiver.getData ($:/plugins/OokTech/Bob/WS/Receiver.js:343:12)
  errno
: -4058,
  code
: 'ENOENT',
  path
: 'C:\\snapshot\\SingleExecutable\\editions\\awsAgain',
  pkg
: true }


Jed Carty

unread,
Jun 26, 2018, 5:19:32 AM6/26/18
to TiddlyWiki
Ed,

Were you editing the tiddler inside tiddlywiki? I have seen this happen sometimes when changing the title on the file system but I haven't tracked it down yet. If you are having this bug when editing inside the wiki than that is new. Either way I am going to have to put aside some time this evening to try and track it down.

TiddlyTweeter,

That looks like an oversight on my part. I need to look at how the search path is created for the single executable version. And I need to set up a better test suite to include tests on the single executable. Hopefully this is an easy thing to fix but I am not certain when I will have time to look into it.

Mark S.

unread,
Jul 1, 2018, 12:09:48 AM7/1/18
to TiddlyWiki
Hi Jed,

I believe this line in the documentation:

cp -r TiddlyWiki5/plugins/OokTech/Bob/BobWiki TiddlyWiki5/Wikis/BobWiki/

Is incorrect. But seems to work with:

cp -r TWBob/plugins/OokTech/Bob/MultiUserWiki TWBob/Wikis/BobWiki/

In another thread, you say that this is just TiddlyWiki with a plugin. If so, would it be possible to set up Bob on a node implementation just by dragging and dropping the plugin into the instance? Or would there be other steps?

Thanks!
-- Mark

Jed Carty

unread,
Jul 1, 2018, 4:51:30 PM7/1/18
to TiddlyWiki
I haven't tried dragging and dropping the packaged plugin into a node wiki. I don't see any reason it wouldn't work. After you install the plugin you would still have to start the server using the wsserver command instead of the normal server one but there isn't any reason it wouldn't work. I haven't tested it because so far the only times I have the packaged plugin are when I am running Bob and you only need one wiki running it so it never came up.

And thank you for pointing out the error! It looks like I missed a spot when I changed the name to Bob. I will hopefully be somewhere I can fix that soon.

Jed Carty

unread,
Jul 1, 2018, 5:03:12 PM7/1/18
to TiddlyWiki
Ed,

It turns out that the error was a rather serious bug that somehow crept in. I am still not sure how it wasn't a problem before but I fixed it and I am trying to upload the fix to GitHub. It should be fixed in the plugin repo but my inconsistent internet access is giving me trouble uploading the single file versions.

Mark S.

unread,
Jul 2, 2018, 12:53:50 AM7/2/18
to TiddlyWiki
It just seems like, for most people, dragging and dropping a plugin would be much more preferable than the current 5 step, complicated process -- especially for updates.

Thanks,
-- Mark

@TiddlyTweeter

unread,
Jul 4, 2018, 4:12:37 AM7/4/18
to tiddl...@googlegroups.com
Dear Jed & Bob

Is there a way to define in settings the base directory for the slave wikis? Such that, in "Available Wikis" I can use a path default other than ".Wikis\". I'd really like to be able to use...

..\..\pages\tw\bob\

...without having to type it in Manual Settings. I couldn't figure out how to do that for the "Available Wikis" Tiddler.

FYI, why I want the wikis separate is I like to keep "documents" out of "program" folders. 

Best wishes
Josiah

@TiddlyTweeter

unread,
Jul 4, 2018, 4:28:21 AM7/4/18
to TiddlyWiki
Dear Bob

For my personal use of your skills I quite like the image of Bob The Builder as a mascot ...






Regards
@TiddlyTweeter
Auto Generated Inline Image 1
Auto Generated Inline Image 2

Jed Carty

unread,
Jul 4, 2018, 4:53:09 AM7/4/18
to TiddlyWiki
TiddlyTweeter,

The new update v 1.0.3 lets you set the base paths used for wikis and plugins and they can be different. The plugin version is up but I keep forgetting to make the single executable versions to upload while I am at work. I will try and remember for tomorrow.

@TiddlyTweeter

unread,
Jul 4, 2018, 4:59:30 AM7/4/18
to TiddlyWiki
Thank you!

J

Mark S.

unread,
Jul 4, 2018, 2:03:17 PM7/4/18
to TiddlyWiki
Just ran a test. Created the plugin for 1.0.3. Exported it. Loaded it into a node running 5.1.18-prerelease.  Ran it a couple different ways, but running with -wsserver crashed it.

There's a question about how to launch it. If you use a standard node install, then clearly there is no " Wikis/BobWiki" directory.

It seems like there's some configuration that needs to happen in addition to the plugin.

-- Mark

Jed Carty

unread,
Jul 4, 2018, 2:25:20 PM7/4/18
to TiddlyWiki
If you have a wiki that you have installed the plugin into than it shouldn't need a Wikis/BobWiki directory, it should point to the one you installed the plugin into.

Jed Carty

unread,
Jul 4, 2018, 2:37:01 PM7/4/18
to TiddlyWiki
I am trying to find anywhere that would have the path Wikis/BobWiki hardcoded and I can't find anything that would use it.

The command to start the wiki is the same as the node version but with --wsserver in place of --server like this:

node tiddlywiki.js path/to/wiki --wsserver

is that what you are using?

Mark S.

unread,
Jul 4, 2018, 3:42:07 PM7/4/18
to TiddlyWiki

Had to launch the regular way in order to drag/drop the plugin in. Verified it's in there.

Then Launched with  tiddlywiki editions/tw5.com-server --wsserver

-- Mark


Websockets listening on  8081
Serving on 127.0.0.1:8080
(press ctrl-C to exit)
 syncer
-server-WebsocketAdaptor: Dispatching 'save' task: $:/StoryList

$:/
plugins/OokTech/Bob/ServerSide.js:125
       
var subWikiInfo = $tw.Bob.loadWikiTiddlers(resolvedIncludedWikiPath,{
                                 
^
TypeError: $tw.Bob.loadWikiTiddlers is not a function
    at $
:/plugins/OokTech/Bob/ServerSide.js:125:35
    at $tw
.utils.each (C:\Users\Mark\github\TiddlyWiki5\boot\boot.js:69:12)
    at
Object.ServerSide.loadWikiTiddlers ($:/plugins/OokTech/Bob/ServerSide.js:119:15)
    at
Object.ServerSide.loadWiki ($:/plugins/OokTech/Bob/ServerSide.js:76:33)
    at
Object.handler ($:/plugins/OokTech/Bob/commands/wsserver.js:217:24)
    at
SimpleServer.requestHandler ($:/plugins/OokTech/Bob/commands/wsserver.js:153:15)
    at emitTwo
(events.js:106:13)
    at
Server.emit (events.js:191:7)
    at
HTTPParser.parserOnIncoming [as onIncoming] (_http_server.js:546:12)
    at
HTTPParser.parserOnHeadersComplete (_http_common.js:99:23)

Jed Carty

unread,
Jul 4, 2018, 4:08:56 PM7/4/18
to TiddlyWiki
Oh, Bob doesn't work with the tw5.com editions. I think because they have an includeWiki entry and some part of that doesn't play well with Bob. I noticed that the other day but I haven't had a chance to determine why.

Mark S.

unread,
Jul 4, 2018, 6:55:49 PM7/4/18
to TiddlyWiki
Ok. It appears to work with the server edition.

-- Mark

@TiddlyTweeter

unread,
Jul 5, 2018, 9:06:39 AM7/5/18
to TiddlyWiki
This is a periodic "shout-out" about the Brilliance Of Bob ... I, a relative idiot, got Bob to do loads of things quickly and easily ... Here is a shot of a small part of what I use Bob for ...

Auto Generated Inline Image 1

Alex Hough

unread,
Jul 5, 2018, 9:25:49 AM7/5/18
to TiddlyWiki
Hi Jed,

some dunmb questions: 


1) does this require a node server connected to the internet
2) can we have go with a test version

looks really good on the face of it, I need to spend more time on processing the detail. Seeing what it does would help me.


Alex

On 5 July 2018 at 14:06, @TiddlyTweeter <Tiddly...@assays.tv> wrote:
This is a periodic "shout-out" about the Brilliance Of Bob ... I, a relative idiot, got Bob to do loads of things quickly and easily ... Here is a shot of a small part of what I use Bob for ...

--
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+unsubscribe@googlegroups.com.
To post to this group, send email to tiddl...@googlegroups.com.
Visit this group at https://groups.google.com/group/tiddlywiki.
To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywiki/7b9df187-09c2-4ce3-80a0-dcc4b5a1129e%40googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

Jed Carty

unread,
Jul 5, 2018, 9:41:44 AM7/5/18
to TiddlyWiki
Alex,

If you use the single executable version than it doesn't require anything other than a computer running windows, linux or osx. It doesn't require a tiddlywiki or node install, everything is packed in the one executable.

Neither the single executable version nor the plugin version require internet access.

I haven't done much testing but I think that it can run on node versions newer than 4.

I run it for myself on a raspberry pi 3 and have about 10 wikis that I use consistently and it has no trouble with any of it. You can also just have it running on the computer you use and it will let you use multiple wikis and not have to worry about if you have the same wiki open in multiple tabs or browsers. And you can create new wikis from inside the main wiki.

It takes a bit of configuration to get some of the features working the way you would want, like the static file server for local images and media and running scripts from the wiki.

@TiddlyTweeter

unread,
Jul 5, 2018, 11:07:27 AM7/5/18
to TiddlyWiki
Ciao Alex

Footnote to Jed.

Its currently not possible to live demo Bob on the web securely. It makes it a bit more difficult than usual to grasp what it can do. My screenshot was a tiny part of it. The outstanding features for me are...

 (1) local networkable;
 (2) proper multi-user (i.e. with aware "locking");
 (3) direct access to the OS to run external programs that can also change the content of wikis, even running (I'm testing this. So far I had no issues at all.)

If you read the previous threads you should, hopefully, be able to get a better overview of it ...

https://groups.google.com/forum/#!searchin/tiddlywiki/bob%7Csort:date/tiddlywiki/cQRhkfhvbVk/PxbhggXNAwAJ


https://groups.google.com/forum/#!topic/tiddlywiki/m85IYlxjQss%5B76-100%5D

Josiah, x

Ste Wilson

unread,
Jul 14, 2018, 4:25:24 PM7/14/18
to TiddlyWiki
I finally got around to trying this.
Ssh'd into my pi 3, wget-ed the link to the arm7 version.
chmod +x tiddlyArmV7
And then ./tiddlyArmV7

The following is what happened...

pi@raspberrypithree:~/bob $ sudo ./tiddlyArmV7.1
NodeSettings - Parsed raw settings.


Websockets listening on 8081
Serving on 127.0.0.1:8080
(press ctrl-C to exit)

events.js:136
throw er; // Unhandled 'error' event
^

Error: spawn xdg-open ENOENT
at _errnoException (util.js:1031:13)
at Process.ChildProcess._handle.onexit (internal/child_process.js:201:19)
at onErrorNT (internal/child_process.js:389:16)
at _combinedTickCallback (internal/process/next_tick.js:138:11)
at process._tickCallback (internal/process/next_tick.js:180:9)

Help?

Michael Z.

unread,
Jul 14, 2018, 7:20:42 PM7/14/18
to tiddl...@googlegroups.com
You probably don't have xdg-open installed. Try
 
$ which xdg-open

to see if it is there.

Otherwise you can install it with

sudo apt-get install xdg-utils

It is used to open standard applications on the desktop.

Edit: As you use ssh you probably don't want to use the desktop browser. I don't know if the single file app can be used as server only. Probably try
$ sudo ./tiddlyArmV7.1 --wsserver
Of course Jed Carty can tell you more.

Jed Carty

unread,
Jul 15, 2018, 4:57:20 AM7/15/18
to TiddlyWiki
By default the single executable version tries to open up the systems default browser when it starts, which is probably causes problems if you are running it headless. Try setting the 'suppressBrowser' property to true in settings.json.
Reply all
Reply to author
Forward
0 new messages