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 <javascript:>. >>> 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/214a4cf0-6b14-4be0-826c-48e67ec7145d%40googlegroups.com.