Walt,

Using a automatically issues ID is wise in these circumstances, however I 
have done work of fixed serial numbers for tiddler so Personal Message me 
if you want to discuss.

I am not in favor of using such a large serial number as created date/time, 
however the date can be transferred to an independant field, then tested to 
ensure its unique, simply incrementing milliseconds until it is unique. 
Then you hide this field from edit. The problems come about when dragging 
and dropping tiddlers from other wikis, but a test for uniqueness can 
occurs again, unless we were to include a wikiname in the serial numbers.

I expect a database solution may assume an empty.html with the stored 
tiddlers anything added or overwritten. There is a real question however 
with tiddlers delivered via the database that are needed as the wiki loads. 

You may not know couchDB but Noteself implementing a database model and 
would inform you, perhaps even give you code examples. Two notable features 
are tiddler versions and the use of a local couchDB when PouchDB not 
available and before connected. A Design path is to build first to a 
browser internal Database, then look at connecting to an external Database. 
this could allow one Tiddlywiki to switch databases, or one database share 
multiple wikis.

Regards
Tony

On Friday, 1 May 2020 05:03:19 UTC+10, ludwa6 wrote:
>
> If there's any doubt about using the "Created" field, then the 
> auto-assigned integer always works for PK (most RDBMs do it that way by 
> default, in fact). 
>
> Meanwhile, i am playing with tiddly server, trying to get Github Saver to 
> work, with no joy as of yet.  Is this supposed to work, or does it work 
> only for single-file instances, i wonder?
>
>
> On Thursday, April 30, 2020 at 6:08:24 PM UTC+1, Mark S. wrote:
>>
>> I'm not sure the created field is never cleaned off. Like possibly during 
>> export/import procedures. Or when packed/unpacked from a plugin. 
>> Maybe use a separate id field just to be sure. 
>>
>> On Thursday, April 30, 2020 at 9:52:28 AM UTC-7, Arlen Beiler wrote:
>>>
>>> If I was doing that I would auto assign an integer primary key, but if 
>>> that's more work you could use the created timestamp. 
>>>
>>> On Thu, Apr 30, 2020 at 8:40 AM ludwa6 
>>>
>>>> Arlen: storage in a RDBMS (requirement for this application i want to 
>>>> develop[1]) requires a Primary Key that is both guaranteed unique AND 
>>>> cannot be changed -but tiddler Title *can* be changed, so that is not a 
>>>> good candidate, seems to me. The one element of this schema that appears 
>>>> immutable to me is that "created" date/time stamp, which has 3 digits 
>>>> beyond minutes (thousandths of a minute, perhaps?), so that is 
>>>> fine-grained 
>>>> enough to guarantee uniqueness, i guess. 
>>>>
>>>> [1] To explain: i need RDBMS storage for this particular application 
>>>> because i need to correlate tiddlers with records in other tables of the 
>>>> database that they are meant to document, or otherwise extend. This RDBMS 
>>>> lies at the heart of a gateway that facilitates data I/O with a set remote 
>>>> nodes for sensing & control of farm operations -initially a 
>>>> climate-controlled greenhouse.  The data flowing between nodes in this 
>>>> environment is structured as a rule, such that humans cannot mess with it. 
>>>> Yet it is precisely those "messy" human inputs -e.g. observations, photos, 
>>>> links, questions, etc.- that i aim to capture thru TiddlyWiki.  The real 
>>>> power of this application will lie in its ability to corrrelate machine 
>>>> data with user-generated data... And for that, i need both to be stored in 
>>>> RDBMS (just in case you were wondering why :-)
>>>>
>>>>
>>>> On Thursday, April 30, 2020 at 12:23:00 PM UTC+1, Arlen Beiler wrote:
>>>>>
>>>>> Those last lines are a mystery to me. I've never seen them before. 
>>>>> I'll check make sure I'm not missing anything. 
>>>>>
>>>>> The tiddler title is the primary key in Tiddly wiki. I don't really 
>>>>> think you would need to store it anywhere else though.
>>>>>
>>>>> Everything is in flux right now, but hopefully we'll have it mailed 
>>>>> down soon and then I'll be able to better recommend how to use a database 
>>>>> with this. But it certainly isn't required. 
>>>>>
>>>>> On Thu, Apr 30, 2020, 06:42 ludwa6 <wlud...@gmail.com> wrote:
>>>>>
>>>>>> Arlen: Putting your earlier instructions together with Mark's 
>>>>>> declaration of listener port, i *think* i've got he server running on my 
>>>>>> Pi 
>>>>>> server... But in fact i'm still confused about this.  
>>>>>>
>>>>>> The UI looks & seems to be performing pretty much like TiddlyWiki 
>>>>>> single-file version, except that default "Getting Started" tiddler asked 
>>>>>> me 
>>>>>> to make & save one, & confirm that it worked... So i did, and now i see 
>>>>>> it 
>>>>>> in the file system, inside 'MyNewWikiFolder/tiddlers/ , along with 
>>>>>> $_StoryList.tid .  I then created a 2nd tiddler, which appeared as a 2nd 
>>>>>> file in the same directory... So can i safely presume i've got tiddly 
>>>>>> server working as it should?
>>>>>>
>>>>>> Now looking at the schema of these files, it seems pretty simple, 
>>>>>> i.e.: 
>>>>>>
>>>>>>    - created: (date/time stamp in yyyymmddhhmm format, followed by a 
>>>>>>    3-digit numeric)
>>>>>>    - modified: (same format as above)
>>>>>>    - tags: (if any, a horizontal list)
>>>>>>    - title: (as declared)
>>>>>>    - type: text/vnd.tiddlywiki
>>>>>>    - (single line space, followed by...
>>>>>>    - (full text of tiddler, followed by...
>>>>>>    - (some 16 lines, blank except for '~' as initial character...
>>>>>>    - <ikiFolder/tiddlers/(TitleOfTiddler).tid
>>>>>>    - [noeol] 7L, 132C      7,23      ALL
>>>>>>
>>>>>> That last line is most mysterious to me, as i don't know what those 
>>>>>> codes refer to, nor why there's so many spaces preceding the last 2 
>>>>>> strings. 
>>>>>>
>>>>>> Best candidate for Primary Key here, as far as i can see, would be 
>>>>>> the first attribute -the "created" date/time stamp- but i don't know how 
>>>>>> to 
>>>>>> turn these files into rows in the SQLite database where i want to store 
>>>>>> the 
>>>>>> data. From what Tony said, i gather it would involve building a sync 
>>>>>> module 
>>>>>> of some sort, but i have no idea how that might be done.  Any prior art, 
>>>>>> or 
>>>>>> ideas about this?
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Wednesday, April 29, 2020 at 7:00:25 PM UTC+1, Arlen Beiler wrote:
>>>>>>>
>>>>>>> Sorry, what I said was for tiddly server. What mark said is for 
>>>>>>> tiddly wiki.
>>>>>>>
>>>>>>> On Wed, Apr 29, 2020, 13:56 'Mark S.' via TiddlyWiki <
>>>>>>> tiddl...@googlegroups.com> wrote:
>>>>>>>
>>>>>>>>
>>>>>>>> The listen command can take a port number. Like
>>>>>>>>
>>>>>>>> --listen port=8090
>>>>>>>>
>>>>>>>>
>>>>>>>> On Wednesday, April 29, 2020 at 9:37:36 AM UTC-7, ludwa6 wrote:
>>>>>>>>>
>>>>>>>>> Hey Arlen: Great to hear, thanks! 
>>>>>>>>> So i ran those commands, installed TiddlyServer on my Raspberry Pi 
>>>>>>>>> gateway... But hit a little snag setting up the listener, in that 
>>>>>>>>> port 
>>>>>>>>> :8080 is owned by another application server.  Can't change that for 
>>>>>>>>> the 
>>>>>>>>> moment, as it's a service i can't really mess with.  Could talk to 
>>>>>>>>> that 
>>>>>>>>> developer about changing the port he's using, i suppose...
>>>>>>>>>
>>>>>>>>> But just to see this working, i tried to install on my Mac, but 
>>>>>>>>> terminal tells me:
>>>>>>>>>
>>>>>>>>> -bash: npm: command not found
>>>>>>>>> Suppose i could use a different package manager, if i knew how 
>>>>>>>>> (yes, i am a complete unix n00b  =8-(
>>>>>>>>>
>>>>>>>>> Will try to bone up on the requisite skills, but any more crib 
>>>>>>>>> notes would of course be appreciated!
>>>>>>>>>
>>>>>>>>> /walt
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Wednesday, April 29, 2020 at 3:06:52 PM UTC+1, Arlen Beiler 
>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>> I have tried doing SQLite but there are some caveats that need to 
>>>>>>>>>> be accounted for. 
>>>>>>>>>>
>>>>>>>>>> What I would recommend you do is use data folders instead of 
>>>>>>>>>> single file wikis. Data folders store tiddlers in individual text 
>>>>>>>>>> files 
>>>>>>>>>> using a custom format that Jeremy came up with. It works very well 
>>>>>>>>>> for text 
>>>>>>>>>> based storage solutions like GitHub. I'm actually really surprised 
>>>>>>>>>> no one 
>>>>>>>>>> mentioned this yet. 
>>>>>>>>>>
>>>>>>>>>> To get started, install tiddlywiki globally by running npm 
>>>>>>>>>> install tiddlywiki -g
>>>>>>>>>>
>>>>>>>>>> Next, to create a blank data folder, run tiddlywiki 
>>>>>>>>>> ./MyNewWikiFolder --init server
>>>>>>>>>>
>>>>>>>>>> Then run tiddlywiki ./MyNewWikiFolder --listen
>>>>>>>>>>
>>>>>>>>>> Now open your browser to localhost:8080 and start exploring. 
>>>>>>>>>>
>>>>>>>>>> TiddlyServer is a good way to load multiple data folders on the 
>>>>>>>>>> same port. 
>>>>>>>>>>
>>>>>>>>>> Hope that helps, 
>>>>>>>>>> Arlen
>>>>>>>>>>
>>>>>>>>>> On Wed, Apr 29, 2020 at 7:52 AM ludwa6 <wlud...@gmail.com> wrote:
>>>>>>>>>>
>>>>>>>>>>> Such a wealth of options for Local-First storage have emerged in 
>>>>>>>>>>> this thread (must say: i'm super impressed with the strength of 
>>>>>>>>>>> this 
>>>>>>>>>>> community i have just joined), i've been able to quickly implement 
>>>>>>>>>>> the 
>>>>>>>>>>> simple approach suggested by Jeremy (TW Desktop, + cloud sync to 
>>>>>>>>>>> Github), 
>>>>>>>>>>> which is serving me well enough for now. 
>>>>>>>>>>>
>>>>>>>>>>> Yet, as i'm fast creating quite a mountain of data in TW, i'm 
>>>>>>>>>>> also bothered by the growing sense that what i really want at the 
>>>>>>>>>>> back end 
>>>>>>>>>>> of this beautiful thing is a database -ideally SQLite, which has 
>>>>>>>>>>> all that 
>>>>>>>>>>> local-first/ single-file/ portability goodness of TW, while 
>>>>>>>>>>> bringing the 
>>>>>>>>>>> full set of functionalities needed to manage a large database with 
>>>>>>>>>>> integrity.  With a single SQLite file stored locally and replicated 
>>>>>>>>>>> to the 
>>>>>>>>>>> cloud, that gives us a solution that ticks all the boxes in that 
>>>>>>>>>>> seminal Local-First paper 
>>>>>>>>>>> <https://www.inkandswitch.com/local-first.html>: Fast, 
>>>>>>>>>>> Multi-Device, Offline, Collaboration, Longevity, Privacy, 
>>>>>>>>>>> User-Control.  
>>>>>>>>>>> Combining this with the power of TW5 interface (really an 
>>>>>>>>>>> "interface 
>>>>>>>>>>> builder for the rest of us," i would call it), minus mess of .html 
>>>>>>>>>>> backup 
>>>>>>>>>>> files i've got to keep cleaning off my machine (SQLite has a full 
>>>>>>>>>>> transactional history, so no need of any backups but that one file, 
>>>>>>>>>>> replicated to cloud), and that in broad-strokes would be the shape 
>>>>>>>>>>> of my 
>>>>>>>>>>> dream machine. 
>>>>>>>>>>>
>>>>>>>>>>> So i must ask: has anyone tried using SQLite as storage for a 
>>>>>>>>>>> TiddlyWiki?  If this is indeed technically feasible, can anyone 
>>>>>>>>>>> point me to 
>>>>>>>>>>> prior art on which i might be able to build such a solution?  
>>>>>>>>>>> Though i am 
>>>>>>>>>>> no programmer, i am reasonably comfortable with SQL as a data 
>>>>>>>>>>> manipulation 
>>>>>>>>>>> language, if someone can just show me how to get the TW data in 
>>>>>>>>>>> there!
>>>>>>>>>>>
>>>>>>>>>>> -- 
>>>>>>>>>>> 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 tiddl...@googlegroups.com.
>>>>>>>>>>> To view this discussion on the web visit 
>>>>>>>>>>> https://groups.google.com/d/msgid/tiddlywiki/856ad777-dc63-4491-bd74-c0391c4bf413%40googlegroups.com
>>>>>>>>>>>  
>>>>>>>>>>> <https://groups.google.com/d/msgid/tiddlywiki/856ad777-dc63-4491-bd74-c0391c4bf413%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>>>>>>> .
>>>>>>>>>>>
>>>>>>>>>> -- 
>>>>>>>> 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 tiddl...@googlegroups.com.
>>>>>>>> To view this discussion on the web visit 
>>>>>>>> https://groups.google.com/d/msgid/tiddlywiki/9571530e-806f-4a61-ae2f-ef1498d49f7b%40googlegroups.com
>>>>>>>>  
>>>>>>>> <https://groups.google.com/d/msgid/tiddlywiki/9571530e-806f-4a61-ae2f-ef1498d49f7b%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>>>> .
>>>>>>>>
>>>>>>> -- 
>>>>>> 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 tiddl...@googlegroups.com.
>>>>>> To view this discussion on the web visit 
>>>>>> https://groups.google.com/d/msgid/tiddlywiki/e11cd690-1d1b-4ad4-a301-049640052549%40googlegroups.com
>>>>>>  
>>>>>> <https://groups.google.com/d/msgid/tiddlywiki/e11cd690-1d1b-4ad4-a301-049640052549%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>> .
>>>>>>
>>>>> -- 
>>>> 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 tiddl...@googlegroups.com.
>>>> To view this discussion on the web visit 
>>>> https://groups.google.com/d/msgid/tiddlywiki/41b844a9-ec92-48f3-82ba-577224128761%40googlegroups.com
>>>>  
>>>> <https://groups.google.com/d/msgid/tiddlywiki/41b844a9-ec92-48f3-82ba-577224128761%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>> .
>>>>
>>>

-- 
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+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/tiddlywiki/6b4963f7-4c97-466d-9e58-1707f8e5f444%40googlegroups.com.

Reply via email to