I am working on a Tiddler Serial number (TSN) tool and would like some community input. Like always I try and design to avoid impacting on any other related solutions and with a view to sharing.Features
- When you save a tiddler it will obtain the next available serial number and assign it to the tiddlers tsn field.
- When the title changes for any reason the serial number in the above macros in your tiddlers will be used to lookup the correct tiddler title/content
<$link to="HelloThere"/>
{{{ [created[20130822170200000]] }}}
from wikipedia:
A Uniform Resource Name (URN) is a URI that identifies a resource by name in a particular namespace. A URN may be used to talk about a resource without implying its location or how to access it. For example, in the International Standard Book Number (ISBN) system, ISBN 0-486-27557-4 identifies a specific edition of Shakespeare's play Romeo and Juliet. The URN for that edition would be urn:isbn:0-486-27557-4. However, it gives no information as to where to find a copy of that book.
PMario
I'd like to understand why "creation time" is not good enough?
@TiddlyTweeter wrote:I'd like to understand why "creation time" is not good enough?
It's probably better than a 1,2,3,.. number, but it's not really human readable
and most system tiddlers _don't_ have one.
PMario wrote:It's probably better than a 1,2,3,.. number, but it's not really human readableI doubt any solution to this would be :-)
<<tsn NNN transclude>>
, easy to read and even type, a link
<<tsn NNN>>
you could even remember a number for long enough to type them.
What is interesting here is you need to WORK on them a bit ;-)
I was most interested in full automation without anything else.
My impression is "date created" is pretty good for that.
You gave example of some system tiddlers lacking the creation date.I'm still unclear how much of an issue that is?
- I have no desire to make tiddlers unique in the tiddly universe. Perhaps I need to filter out / reset the tsn field in imports so they do not interfere.
- Actually I think serial numbers like 1, 2 and 3 are cool, and simple.
Uni-link is a nice companion for tiddlers with serial numbers. I will revise its capabilities for integration.
All,
If you managed to read my last post you will see that a very large set of use cases exist for a local wiki only, on demand serial numbers.
You do not need a serial number for every tiddler if the tiddlers that need to be addressable "by any other name" we only give them the serial number and write references with that serial number.
However in many wikis a serial number added to non system tiddlers at tiddler creation this will remain very low overhead.
For those wanting to develop multiwiki or universal serial numbers perhaps you could consider laying it on top of a locally issued serial number.
With my current use case, the subtiddlers so created for a tiddler with a serial number are easy to identify but perhaps an indicator on any tiddler referencing a serial number would prepare tiddlers for export.
Regards
Tony
Perhaps for universal serial numbers we could use the public url and compress it to give a unique wiki serial number and store it in the wiki. If the compression were reversible the wiki serial number could be decompressed to find its url. In this case it would be the wiki owners responsibility to deal with url changes etc.. But anyone with the wiki serial number could find the wiki and a locally managed tiddler serial number would be the compound key. This would allow the publisher to reassign the key locally. The local key could be found by search or mapped to tiddler name.
This would make serial number unique to a public url.
Regards
Tony
Using the url to create the wiki serial number with a lossless compression could be used with the dat files in beaker browser as well.
Tony
Beaker Browser is an experimental P2P web browser that natively integrates the Dat protocol. You can think of Dat as being an improved version of BitTorrent that’s optimized for sharing folders of data that are constantly changing. This makes Dat a good fit for hosting static websites and building hostless applications because the author of a website or application can publish updates that users can download from anyone on the network and still be sure that they are downloading the same updates as everyone else. (See this blog post for more info). With Beaker, creating a new website becomes as easy as entering a name for the site and clicking on a button to generate a new “key pair.” The “private” key gives the author the power to change the site while the “public” key gives other users the power to find and download the site.
Can the ID be generated offline or do I have to register it on an online server?
$ cd dat-test
$ dat share
dat v13.13.1
Created new dat in /home/bimlas/Letöltések/dat-test/.dat
dat://5d5b02b61e7d883732cc5007743d4ef987157073824a489330bcbf791a8cae6e
Sharing dat: 1 files (3.0 KB)
0 connections | Download 0 B/s Upload 0 B/s
Watching for file updates
I have not heard of the DAT protocol and I do not know how Peer-2-Peer works, but it is clear that it has to do with networks.
One of TiddyWiki's basic ideas is to be free of external dependencies and work on its own. Does the DAT protocol break this principle?
Can the ID be generated offline or do I have to register it on an online server?
I have not heard of the DAT protocol and I do not know how Peer-2-Peer works, but it is clear that it has to do with networks.
... There are some 3rd party servers involved at the moment, because you need to find other peers.
bimlas wrote:I have not heard of the DAT protocol and I do not know how Peer-2-Peer works, but it is clear that it has to do with networks.PMario wrote:... There are some 3rd party servers involved at the moment, because you need to find other peers.Right.It is interesting and works. A downside is, right now, is 3rd party servers in-between.
I think this is part of the problem with it.
The protocol fosters true peer-to-peer, but, given how most of the net now works, true peer-to-peer seems not possible under DAT?
In my mind, linking is one of the two major pillars of TW (searching/filtering being the other - why I think a lot and comment a lot about search). If I want to link to something there are three issues of concern:
- what I want to type
- Aliases are magical here! A tiddler with "long title of method" can save me many keystrokes (and potential typos!) if I just type the name of the alias.
- Critically, this is decoupled from where I want the link to go, and what I want it to render as. I don't ever want to type "a very long title", or if the core also supports uniqueIDs, I don't want to type timestamps.
- Something that I think should be incorporated into the core (!!!!) (or at least with uni-link) is the Edit-Comptext dropdown plugin. This plugin already lets you define custom dropdown templates, so its natural to incorporate the filters uni-link provides.
- where I want it to go
- If we're not just focusing on aliases for a second, this isn't as straightforward as I initially thought - frequently I want a link to go to a tiddler with a specific title. Sometimes I want a link to go to a specific tiddler, regardless of its title. For example, my TW is constantly evolving as my system of knowledge is evolving - I rename things, reorganize, etc frequently. If I rename a method, or person, etc. all of my links to this tiddler no longer work (there have been previous discussions of renaming tiddlers triggering a search/replace). I am more interested in linking by a UNIQUE ID (for example, created timestamp) - that way renaming a tiddler's title does not trigger massive changes in the rest of your tiddlers (I use version control, so its a bit annoying when I rename one tiddler, my commit object contains changes to 20 other tiddlers whose links to this one tiddler also had to change).
- Uni-link address this issue, by introducing a (hopefully) unique field: aliases. So now I can link to [[coolMethod|?]] regardless of the actual title of that tiddler. This is a wonderful feature.
- what I want to render
- TW already supports some version of this, as sometimes its appropriate to render a tiddler's title, other times its caption. I just want to extend this so that the user has more fine-grained control over this.
:<<tsn N>>
:<<tsn N link>>
:<<tsn N text>>
:<<tsn N transclude>>
:<<qualify-tsn>>
:<<tsn>