Chrome notification re: Timimi

https://ibnishak.github.io/digital-garden/?stackedPages=%2FNotes%20by%20Category&stackedPages=%2FNote%20taking%20and%20Workflows&stackedPages=%2FTiddlywiki%20-%20An%20exit%20interview&stackedPages=%2FTiddlywiki%20-%20Conclusion

From reading this part of @Riz post, what I understand is that he may continue to support Timimi. Hope he is seeing all these messages.

1 Like

Indeed, one of the reasons I started writing the TiddlyWiki app was because I saw this post. I am quite disappointed that the official saving method for TiddlyWiki doesn’t have a perfect solution (at least for regular users). Even now, when I approach TiddlyWiki from a beginner’s perspective, I don’t have much patience to go through the website’s introduction. For newcomers, they just want to instantly find the download button and then understand what TiddlyWiki is through their own experience.

1 Like

Hi guys

I am doing this by email because when I go to talk.tiddlywiki.org on my laptop it is showing me a several day old version of the thread and not letting me post. I am having trouble with Airbnb, too.

Is this site down for anyone else?

As for vuk’s comment, I don’t take offense. He doesn’t know my contributions to the community, or how they were hobbled together based on the participation of many others because I had a vision without the accompanying knowhow. And he is imagining that I have a lot more technical background than I do.

What the TiddlyWiki communiity needs to realize is that if I find it difficult to jump these hurdles, the average person will find them insurmountable. And these hurdles are at the point of entry. Something needs to be done to get TiddlyWiki to save changes easily without having to resort to command prompt or anything to do with Github. Not just for me, but so that TiddlyWiki doesn’t become an isolated walled community unto itself, irrelevant to the rest of the world.

Blessings

3 Likes

Dave - I have a private Manifest 3 version of Timimi that I’ve installed locally, probably built the same way that you updated it for yourself also? I think all that is needed to share it is an account with Google for serving the plugin to users. I’m not much of a Google person so don’t really know what is involved in that last leg. I’ll take a look tomorrow and see what is involved. We don’t want to lose Timini. Chris.

P.S My current go-to is my dev copy of Quine running on macOS - which is really not ready for prime-time - otherwise TiddlyDesktop.

3 Likes

I just reactivated Timini after Google deactivated it. It still works for now if you activate it.

There is a fundamental tension between the design goals of TiddlyWiki and the nature of the Web.

A simple answer to the quote above, is “Well, just use Tiddlyhost.” And Tiddlyhost is wonderful, no doubt about it, even with the occasional instability lately. But the first two bullets on the first tiddler most new users see are these:

  • TiddlyWiki stores its data and code in a single HTML file, requiring no installs, no external dependencies, just a web browser
  • TiddlyWiki lets you choose where to keep your data, guaranteeing that in the decades to come you will still be able to use the notes you take today

(If you haven’t looked lately that first bullet is relatively new.)

“Wait, you say that, and then want me to store my data in some centralized service run by a single guy I’ve never met?”

Well, perhaps. That is probably the single easiest way for a brand-new user to try things out and maybe fall in love with the most feature rich tool of its kind. But this is definitely in conflict with the statements above. Partly it’s the centralized/decentralized tension, but it’s also the notion of needing to save a backup.

But all the savers out there are part of a larger conflict. Since JavaScript was introduced, there has been a pendulum over how to serve content over the web: depending more on the server or more on the client. It feels to me as if the last three or four years has seen a push back to the server, after a long stretch of single-page apps on the client. Swinging along with this pendulum is the question of just how much browsers should be allowed to do. TiddlyWiki’s notion of saving the current wiki on the user’s machine is often in tension with the Web’s Security constraints.

Most of the other tools out there don’t try this, serving content instead from server-side databases. They won’t have a Firefapocalypse (sp?) when a browser changes the rules that had allowed their saving mechanism. When Chrome decides that they need to update a specification in order to restrict the ad-blockers cutting into their profit, these other tools are less likely to break.

But the security concerns that often stymie TiddlyWiki are not imaginary. Allowing the user to easily save web content is an invitation to malware. So Tiddlywiki’s saving mechanisms have had to adapt over the years, as the Web community decides that certain mechanisms are unsafe. This latest one sounds more like Chrome trying to restrict ad-blockers, but it’s likely of similar effect.

The good thing, as @Quine mentioned, and as discussed in a Timini issue, is that this can easily be patched. But it would be great if someone who understands the code would be willing to take over as maintainer, if Riz is no longer interested. @YakovL, might that be you?

I’m having no such issue. With Airbnb as well, I’m guessing this is something local to you.

2 Likes

Is it hard to compile that extension? Like do you just have to install Go and then run a command line to put the package together? It’s been 7 months without a response from Riz, so that’s not a good sign. Being able to offer and test a new extension offline (I mean not from the Google extension store) would be a good first step forward.

I don’t know. I’ve never used golang, and there is nothing obvious like a make file, package.json, pom.xml, etc. to make it clear what needs to be built and how. It may be clear to a golang user.

Sorry, I meant it to be an open question for anyone.

But looking at the code, only the executable is in Golang. And hopefully the existing executable will work until MS adds some security feature.

On Linux, with Google Chrome, it was only moderately difficult to load the manifest 3 changes from FSpark in the browsers’ developer mode.

There is actually nothing to compile for the extension. You just tell it to load the directory with the files that make up the extension.

There was one bit I had to do by hand, which the installer didn’t do for me. I don’t know if that has something to do with manifest 3, or if the installer wouldn’t overwrite the old setting from Manifest 2.

1 Like

Well, difficult to say, although I now have some experience with Go, maintaining Timimi requires also some fundamental discussions, i.e. standandazing the event-based saving so that it can be implemented in TWC, and is extendable (for handling various cases of the saving itself, and also saving other files, including images, plus security topics). I’ve tried to start such a discussion, but didn’t get much attention/help. Currently, my preferred savers are MainTiddlySaver and the ContinuousSavingPlugin as a fallback (uses window.showOpenFilePicker and window.showSaveFilePicker, those looking for a way to save in Chrome may be interested in implementing a similar saver for TW5), and MTS is solid, i.e. won’t be hurt by further security restrictions (again, if we had a standart of IO interfaces, I could extend it to support TW5 as well). If I maintained Timimi, I’d probably rewrite it with Node.js, to allow more community members to collaborate on it. These days I’m focused on launching my own product, and it would be much more convenient for me to consult and help rather than be the maintainer of the Timimi successor.

1 Like

One of the selling points on the Timini home page is how much faster it is because its written in Go. I have no experience, and little interest in the language. I do wonder how much of the extra speed is noticeable to end users, but I’m not a user of these tools, so I have little to offer.

OK. I only asked as yours was a name I recognized among the Timini contributors. I didn’t dig in to see whether that was one PR fixing a typo or months of active collaboration on major features.

Good luck on launching your product!

I realized a while back that Timimi is a surprisingly complex piece of software to support and maintain, and that unless more maintainers joined the effort, it’s just a matter of time before it’s not usable anymore.

(I think we can say that it has been abandoned, since the last commit was June 2022, despite some apparent and not too hard to solve problems for Snap and Apple Silicon.)

As I understand it, Timimi consists of:

  1. A (built-in) TiddlyWiki saver plugin
  2. A Chrome extension
  3. A Firefox extension
  4. A binary, cross-platform host application that should work on and be compiled to Windows, MacOS and Linux
  5. A Linux installer
  6. A Windows installer for Chrome
  7. A Windows installer for Firefox (registers timimi.exe in the Registry in a different place)

The extensions must be updated when browsers require changes, and the installers and binaries when the different OSes etc change their requirements and assumptions.

Currently, the Manifest debacle should probably be prioritized, then a new Snap-compatible installer and an installer for Mac OS (maybe just Apple Silicon, I don’t know).

Are you as a community up for the challenge? :wink:

1 Like

I’m not sure about the protocol here.

@FSpark Is it ok with you if I produce a side-loadable extension here based on your manifest-3 work ?

Backgrounder: Extensions can be side-loaded in Chrome’s developer mode (you just slide a switch to turn on the mode). This is how @buggyj distributes TiddlyClip, for instance. In the case of Timimi, there are additional tweaks to your system that have to be made.

For an extension to be available on the Chrome extension store, someone will have to register as a Chrome developer. Last time I checked this was $25 – a real bargain compared to apple, BTW. But extensions can also be side-loaded locally, though the intention was testing for development.

1 Like

re: timimi on apple silicon, you’ve probably already tried Timimi extension not getting access to local TiddlyWiki (macOS Sonoma; Apple Silicon; Chrome 120.0.6099.129) · Issue #94 · ibnishak/Timimi · GitHub

is there something else that is not working on apple silicon?

Of course, I mentioned it before in this post.

Thank you very much!

1 Like

So I think I worked out how to compile and set up the extension and saver for Chrome on Linux (not Snap). Are there any brave Linux users that want to try it?

In any event, you should be able to use this extension on Linux/Windows/Mac after some tweaking. This extension fix is actually from @FSpark – I’m just putting the pieces together here.

You unzip the addon-chrome.zip file to some safe directory (pick a place you won’t delete). You go into your extensions manager on Chrome and turn on developer mode. Then “Load Unpacked Extension”. Navigate to the directory with the manifest.json file and load. The Timimi extension should appear. It’s 99% the same as the original, and will navigate to the old write-up.

Note that this extension should work for Chrome on Linux, Windows, and Mac. I’ve tested it on Linux and a very, very old Windows. A report on Mac would be helpful.

But this isn’t enough. The problem is that there is a configuration file that needs to be updated with the id of the extension. In the following, it’s assumed that you have installed Timimi as a regular user, and not as a corporate user. Verify that your newly loaded extension has an id of “eckkbhekakplhjeabeoechennfbclgng” . This happened to be the name of my first goldfish, so it was easy to remember.

For Linux, the path to the configuration is:

~/.config/google-chrome/NativeMessagingHosts/timimi.json

For Windows, the path should be:

C:\Users\<your account>\AppData\Roaming\Timimi-Chrome\timimi.json

(it could be a different drive depending on your configuration.)

For Mac the path should be:

$HOME/Library/Application Support/Google/Chrome/NativeMessagingHosts/timimi.json

In timimi.json there is a line to be edited for “allowed_origins”. The line for allowed origins in the timimi.json file should look like this after editing:

"allowed_origins": ["chrome-extension://eckkbhekakplhjeabeoechennfbclgng/"]

For Linux, I’ve compiled an installer which will do this reconfiguration for you. To use it, download the timimi-test.sh file, set to executable and run (this is the brave part). In the menu, select Chrome for your installation. Hopefully it will run ok. This installs the “timimi” file (which hasn’t actually changed) over-writes a timimi-json file with the new id of the “new” extension. Be aware that installing this might zap your old Timimi settings, so if you are still using it under the grace periood of manifest 2, … be aware.

But I guess it would be useful to know if my newly fledged “go” compilation skills work for anyone else. If there were any tweaks to the code after it was submitted to github … then the code here will be wrong.

The extension itself:

The Linux installer

1 Like

Wow, you too? I thought I was the only one!

Are one and only coterminus in Math?

Just asking, TT