Your perfect tw5 device (and running external programs via tw)

beautiful. i am a huge fan of e-ink/epaper displays, i used to have a pebble smartwatch back in the day. looking forward to larger versions of sharp’s memory lcd which has a much faster refresh rate!

2 Likes

Exactly! That would “make the difference”.

TT

Interesting Question @Scribs

Perhaps rather than Think of TiddlyWiki as an OS perhaps as the key “application interface”

Unfortunately I am biased as a user of TiddlyWiki on a desktop with two large screens, I am used to using two large screens, each containing a browser and between one and a dozen (often tiddlywiki) tabs.

  • I would like more local system interaction as TiddlyDesktop and hta installs permit we could trigger scripts that collect and imported information into and out of tiddlywiki.
  • This OS integration as can be demonstrated with Tiddly Desktop, but under the hood demands a local browser - such browsers however don’t keep up with the features of public internet browsers. I now use special features of Chrome, FireFox and even Edge daily now.
  • Certainly the Timimi integration, or a separate facility to interact with the host would be very powerful.

However I just purchased a new Tablet, a Lenovo with a pen, with a view to using it for tiddlywiki, so my mind is now open to using tiddlywiki on a portable device.

  • Brain chip with at least 256GB storage and safe internet connection :nerd_face:

This makes sense as a user but perhaps not for security. I many ways I think we need to come to terms with this division between internet facing tiddlywikis and local system facing tiddlywikis. Once we accept this, perhaps it points us in the direction we need to go.

  • Enhanced local access through a turbocharged Tiddly Desktop platform, with more browser features.
  • Increased interaction from an internet browser to this Tiddly Desktop and the local system via a secure but functional set of mechanisms.

I am in many ways only talking here about the underlying mechanisms, but they have being on my mind for some time. Yet I do have many ideas about how to integrate with the locally installed filesystem and apps.

  • To me the hardware platform is of our choice once we solve these issues.
  • Certainly this needs some serious innovation and challenges some received wisdom. Yet there are many examples of approaches such as embedded secure sandboxes or browser windows, hosting PWA’s etc…
1 Like

You could have a program, like Polly, that periodically scans your TW file, looking for key strings. When it finds those strings, it parses and launches the appropriate activity.

Inside of the TW file, you generate the strings in a way that the string isn’t available as text until you do so. That is, you create a tiddler containing the instructions on the fly.

1 Like

agreed on security, i would imagine that if the wiki was “the device” then it would likely be local access only with a cloud backup, not meant to be accessed by anyone else. there is still a promising (maybe even primary) use case of “my personal information manager” that would not be concerned with security as everything is user-generated or shared with the same… gravitas? as a full computer program with system access (super-plugin).

i.e
in this theoretical “tw os”, plugins can be shared and downloaded that request root access to your device similarly to an executable program. the “tw os” has full permissions and can load these “super-plugins” as root to launch other programs, run commands on the terminal to download dependencies, etc.

the security becomes a user responsibility at the same level as vetting software before you install/run it. this would necessitate the wikis being “local system facing” and not “internet facing”.

1 Like

Keep in mind another aspect of useability is what can your tiddlywiki do, for example a Get things Done organiser wiki may want to open an internet resource such as a google calendar, a shared document or access a website to order goods.

  • As soon as these features are available there is a risk that the tiddlywiki, which now has local rights is able to be compromised.

I am not in any way suggesting we should not do this, only that we need to take full account of security issues and build what is needed. To do this we can start with thinking how to enable the functionality we need from a local access wiki, by handing off the security of some features to another browser at arms length from the wiki, Sandboxes, iFrames, embedding and API’s etc…

2 Likes

Agreed. The more access you get, the more attack/threat vectors you create. More doors = more locks to look after = more opprotunities for a break in.

Its why I’m hessitant about these neural chips elon’s developing. Taking something that is in a closed network, ie a brain in this case, and exposing it to the public network, you risk compromising that system.
It’s kind of like your going from isolated individual to artificial hivemind.

Imagine getting a neurological equivilant to a ransomware attack. Pay a large lumpsum or become at least amnesic, and at worst, a comatose-like brain dead state?

I’m good with just using a medium of connection, like smartphones. That natural barrier is fine by me. I feel like I digressed :thinking: oops.

Anyways, that isn’t saying it can’t be done of course. I think for TW, you’d want to implement sandboxing, where you have conttol over which things can do what. Like granting permissions on a smartphone, or like qubes os, since we’re on the topics of operating systems.

A tiddler for file browsing that can only view and modify the files, not add or remove, a tiddler for file creation / removal functions, a tiddler for web browsing, that cannot interact with any other tiddlers except by way of an approved temp tiddler, that self wipes after each use, and at the root running the shows your core tiddlers.

Keeping it all isolated means that if one or multiple is co.promised, if they are shadow tiddlers, juzt delete them to reset them. Minor set back, but not a fully compromised and protentially dangerous system on your hands.

1 Like

I love eink devices, but the screen is a bit slow to update, and the devices themselves tend to use slower CPUs and minimal RAM. A slow eink device used for drawing would not be popular with most people, but some specialists might want it.

And slow computers is becoming more of a problem, mainly from users of Office 365. It takes much longer to open an Excel file with Office 365 than it did with an earlier Office.

Thanks @Mark_S.
I won’t write much here as it is a @Scribs’ initiated discussion.

But, YES to a Polly approach!

FYI, after your very helpful post, I’m envisioning this …

  1. Create a Tiddler Export format for a “.bat” file (or for any other O/S scripting language).

  2. Put a button for that on any Tiddler tagged “O/S Command”,. On click it saves it to the “downloads” directory

  3. The Tiddler contains the “command line” you want executed

  4. This is detected by a running Polly daemon (or other PowerShell) script monitoring “downloads” for “.bat” files.

  5. Executes the command.

  6. On succes the .bat script is deleted.

  7. Adds a record, indicating success or failure, to a “.log” file that is visible as an external file in the TW that started the process.

This is a brief version. One I will try.

Hopefully it coveys a viable idea that is not that difficult to get working.

Thanks again, TT

1 Like

Yeah, that’s actually a better approach, as long as the user doesn’t mind the download dialog.

1 Like

Right. But in the scenario where you get TW simply to save a text file (locally) with instructions to the O/S to run a program that is NOT a browser I can’t see a serious issue.
Unless your computer is under “remote control” already?

Just a comment
TT

wow! this seems more approachable than i thought with a polly layer vs. a rewrite of something like tiddlydesktop. while it is not completely integrated (requiring the file download workaround), it seems like an interesting place to start on expanding the capabilities of tw in a local system!

1 Like

in any case, i see “launch external programs” is high on the list of desired features.

anything else? consider maybe a commercial product, the “tw machine” as a dedicated portable wiki device. what features would it champion that would get your attention? cloud backup? auto-import .tid files from a connected usb device?

i also see promise in the “mini-app” concept discussed here :eyes:

Samsung Tab s9 Ultra + Smart Stylus, TW5 front-end UI Client with Infinite Canvas mode (See this youtube video).

Backend cloud server to handle authentication/authorization/api-secrets/persistence/live-multiplayer-sync/mutli-wiki (recipe/bags model) support.

Launch local apps on your device through smart URL links, launch complex processes on the server through TW websocket messages.

Live filter your wiki to compose “context windows” and send them off to an AI-LMM of your choice with a click.

Store the results as a “Streams” style node tree branching off the context window-source.

Type stuff on your phone, see it on your tablet live.

Draw on your tablet, see it on your phone live.

Invite others to collaborate.

The pieces are starting to come together. It is still a ways out. Threads like this are a great inspiration to keep going.

4 Likes

Hm… Not directly related but you reminded me of things that I would love as creature comforts for my perfect device.

Stylus supported device using wacom’s EMR stylus support, like samsung devices have; The ability to use a TW in place of outlook (setting calendar events, contacts, timer/alarms) that can be sync’ed with other email clients, and to keep a local copy that sends a copy of updated changes to the cloud for backup, a more mobile friendly UI (which can be remedied with a plugin, so this isn’t really needed in mentioning.)

and I also would enjoy an infinite canvas / ZUI layout for TiddlyWiki, and think that’s a cool idea.

Not sure how well it would work on mobile, but it would be neat. Maybe as a view mode. Like how @linonetwo’s tw-calendar plugin works, where you could change view modes from canvas to calendar to storyriver etc.

2 Likes

I have had similar ideas @TiddlyTweeter since back before Polly, the conversation I was involved in at the start.

I think for me at least, I would be happy, not saving to downloads, but to a custom folder outside download (this adds a level of security).

  • I also have a mechanism to “download as filepath/filename” using copy/paste.

Something very similar could be done with a browser extension designed to send your script and execute it like Timimi explored.

Perhaps we also need to consider access to the results of such a script, such as returning outputs to a file the current wiki has access to?

1 Like

I use the Shortcuts-app on macos to launch project files in their own apps. In a tiddler which details what I need to do with a given file at a given moment, I include a link which I can simply click on and the file opens in the app I have specified, ready to get to work. Before using Shortcuts, I could do this previously only with the ext syntax and TiddlyDesktop (and then only with the default app). Now it works under Node as well.

I would be interested to learn if a similar solution exists for Linux or Windows.

1 Like

Absolutely doable, but will take some custom setup.

On windows, you have to Register a Custom URI Handler with the Windows Registry (various ways):

On android, it’s similar but called other things (“Deep Linking”). You setup a “Protocol Handler” in your app and that catches links with specific keywords. This is how the Youtube App opens youtube.com links, BUT you need to have the main Android settings turned on.
How to Open an Android App from the Browser - Branch
settings - Open links in corresponding app instead of browser - Android Enthusiasts Stack Exchange

Open your Android settings and search for “default”. This should open App Permissions; near the top, under the Default heading, tap on “Opening links.” Near the top of the page should be a toggle for “Open links in apps” - set this to on/yes, and restart both the browser and YouTube to reset with the new setting (you may need to reboot your device, I’m not sure). basically, the option in YouTube tells it to watch for those links so it can open them when it sees you click on one, but the Android system settings are what give it permission to actually open them. You can scroll down through the list of apps on that screen to the bottom and tap on YouTube to see exactly what links it will look for and open.

[Note: these steps are based on a tablet (Lenovo Tab 4 10 Plus) running Android 7, so they may be slightly different on a phone or a different tablet. You should be able to get to this setting via the Apps menu though in Settings, just it might be kinda buried and hard to find, which is why I use the search function.]

Linux: Is it possible to open an Ubuntu app from HTML? - Ask Ubuntu

This SHOULD all work from a single-file HTML Tiddlywiki, but requires a bit of OS setup on each device you want to do this on. So, what do we want to open/run?

3 Likes

Typically a .exe or shortcut or .reg files and .anyting files which launch the appropriate app.

An interactive are you sure may be needed/eanted the first time.

Which suggests registering them in memory

Thank you for the links. It could be as simple as TQCH shows in browser - How to enable local file links in Firefox (on Windows) - Super User with a user.js file that any TW user who wants to could copy and add to their own system to change browser behavior to allow linking to local files. I’m feeling precautious and hesitate to try this on my working setup since Firefox is my everyday browser and linking to local file system is a security risk. I will find a computer to try this on and report back.

in my case it’s individual files opening in Dorico, Reaper, or Bitwig for the most part, all music related, scoring, transcribing audio, and electronic music experimentation.

3 Likes