It's just chapter 2.

On Thursday, July 20, 2017 at 11:36:48 AM UTC-4, [email protected] 
wrote:
>
> "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/1b4a509e-06ab-455c-9223-77094d88cdb1%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to