"NoteSelf - The Missing Manual - Part II"

Seriously... excellent, Lost Admin.  Thank you!



On Thursday, July 20, 2017 at 8:06:46 AM UTC-5, Lost Admin wrote:
>
>
>
> On Thursday, July 20, 2017 at 3:19:06 AM UTC-4, @TiddlyTweeter wrote:
>>
>> Tutti, Small comments ...
>>
>> *NoteSelf is currently largely MAGIC*.  
>>
>> Meaning *its actually quite difficult to conceptually grasp* what it is 
>> & how it works. In time it will get clearer. That is NOT a criticism. Its 
>> an observation on a technology that just works a different way.
>>
>> I am still myself unclear on several points ...
>>
>> (1) CORS settings in Cloudant and what the addressing they ask you for 
>> there does? Do you need a "stub" at the address?
>>
>
> I had to look this one up too, when I first ran into it. CORS stands for 
> Cross-Origin Resource Sharing. One needs to understand a bit about how the 
> web works. A website serves up an HTML document. That HTML document has 
> links to other things that are used to render the final page. These things 
> include pictures and stylesheets and javascript. If they all come from the 
> same http server (host and domain) they they are from the "same origin". If 
> they get them from some other http server, then they are cross-origin.
>
> For example, if you create a website that makes use of jquery you can 
> choose to host a copy of the jquery library on your own website 
> (same-origin) or to have your html page get it from the public google 
> repository (cross-origin).
>
> CORS came into existence to stop thing like linking images from other 
> people's websites without permission among other things like CouchDB.
>
> The reason you need to set-up CORS is that CouchDB was designed from the 
> start to be a database server that is accessible directly over the 
> Internet. As such they made a few unusual design decisions (from a database 
> perspective). Whereas a traditional database (like say MySQL) uses an SQL 
> interface with a somewhat simple network protocol, CouchDB chose to use 
> HTTP as the interface and network protocol.
>
> So, we use CORS (a relatively recent extension of HTTP) as a security 
> setting in CouchDB. It tells the CouchDB server what other websites are 
> allowed to send code to a browser that can be used to make calls to the 
> CouchDB server.
>
>
>> (2) Still unclear in the difference between the DOWNLOAD version and the 
>> ONLINE version.
>>
>
> This also takes a bit to grasp. In the simplest way I can think of, 
> NoteSelf takes TiddlyWiki (a single-file document) and turns it into the 
> client side of a client-server application. Danielo's genius was in 
> figuring out how to make it do that so elegantly.
>
> One of Danielo's plugin(s) is like a modification to the TiddlyWiki json 
> export function. Except instead of exporting to a file for download, it 
> exports to a CouchDB server through a REST call. And it does it 
> automatically every time you save a tiddler.
>  
>
>>
>> (3) Am very hazy about COOKIE setting when using the ONLINE version.
>>
>
> This is a requirement from CouchDB. The CouchDB server uses http cookie 
> based authentication. When you log-in to the CouchDB, it sets a cookie. 
> That cookie is used as a token to say "hey this guy logged in".
>
> Since CouchDB supports people writing their own login forms, Danielo did 
> that. That is what the login popup does when you click the OFFLINE button 
> and it turns into a cloud. It sends your credentials to the CouchDB server, 
> and if login succeeds, you get cookie.
>  
>
>>
>> (4) I get the impression that some tiddlers -- like PLUGINS for instance 
>> -- can be "hard-coded" into the DOWNLOAD version, rather than be in the 
>> browser database. *In other words, there is a "sort-of" TW that exists 
>> outside the PouchDB for the download version?*
>>
>
> The DOWNLOAD version is the traditional TW way.
>
> There is exactly a TW that exists outside of PouchDB. But if you do it 
> entirely the NoteSelf way, that TW is always the empty.html version. 
> Everything else comes from CouchDB.
>
> PouchDB is like CouchDB, except it is written entirely in javascript, only 
> usable by the browser that runs it, and uses the Browser's local storage 
> (specifically the recently introduced IndexDB local storage). 
>
>
>> (5) I'm unclear IF and HOW one can convert a DOWNLOAD version into a 
>> synchronising one with a cloud database version.
>>
>
> Danielo's PouchDB plugin holds all the magic. It has the PouchDB and the 
> interface for CouchDB. If you put it into any existing TW5, you have turned 
> it into a NoteSelf (I think that's all it takes). You then, of course, need 
> to set-up the cloud database server stuff.
>
> This next bit I'm not completely clear on (I haven't dug into Danielo's 
> code enough yet). I believe that once you have the PouchDB plugins added 
> and you've added the settings to communicate with the CouchDB, it works 
> pretty much like a new TiddlyWiki saver. When you save a change to a 
> tiddler, it sends that tiddler to the local storage of the browser though 
> PouchDB and updates the CouchDB (send a json formatted version of the 
> tiddler).
>
> Because there needs to be a bit of bootstrap to get all the 
> PouchDB/CouchDB stuff working, there are a few tiddlers that are an 
> exception to the "send to PouchDB/CouchDB". These always come from the html 
> file.
>
> And since you always have that html file (the empty.html from 
> noteself.github.io) and it is Tiddlywiki with a special sort of saver, 
> you can do everything you would do with TiddlyWiki like adding plugins to 
> it or adding tiddlers to it. You then get your own download version.
>
> Finally, because Danielo built on-top of TiddlyWiki, you can still save 
> your NoteSelf wiki just like you can save TiddlyWiki (as a single file).
>
>
> One final word:
>
> PouchDB (https://pouchdb.com/) is a javascript library that makes use of 
> browser storage to provide a database interface and also synchronize that 
> database to a back-end server. The back-end server software it supports is 
> Apache's CouchDB (http://couchdb.apache.org/)
>
> It can get confusing when needing to talk about both. In general terms 
> Pouch is in your browser, Couch is on a server.
>  
>
>>
>> Best wishes
>> Josiah
>>
>

-- 
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 [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/tiddlywiki.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/tiddlywiki/20ac5289-fea8-4ddd-86b1-58b4c1afe660%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to