78 lines
1.2 KiB
ReStructuredText
78 lines
1.2 KiB
ReStructuredText
|
Centralized vs. decentralized
|
||
|
-----------------------------
|
||
|
|
||
|
Centralized
|
||
|
```````````
|
||
|
|
||
|
- one central list
|
||
|
- remote apps that sync with central?
|
||
|
|
||
|
Decentralized
|
||
|
`````````````
|
||
|
|
||
|
- sync to URL(s)?
|
||
|
|
||
|
- need a network protocol
|
||
|
- HTTP?
|
||
|
- SSL?
|
||
|
|
||
|
- group-wise sync?
|
||
|
|
||
|
- establish master/slaves?
|
||
|
- easier than coordinated group-update:::
|
||
|
|
||
|
map each URL to synch -> the last time updated.
|
||
|
if (update_period):
|
||
|
forall URLs: synch
|
||
|
else if (incoming_update):
|
||
|
forall (URLs older than incoming update): synch
|
||
|
|
||
|
- synch based on hash of updates?
|
||
|
|
||
|
- need canonicalizer for text. Use XML?
|
||
|
- hash algorithm:::
|
||
|
|
||
|
SHA-1 of:
|
||
|
concatenate:
|
||
|
date (YYYYMMDDhhmmssSSS)
|
||
|
name
|
||
|
notes
|
||
|
|
||
|
External Feeds
|
||
|
--------------
|
||
|
|
||
|
Item format
|
||
|
```````````
|
||
|
|
||
|
- time started
|
||
|
- name/description
|
||
|
- notes
|
||
|
- category?
|
||
|
|
||
|
Pull from
|
||
|
`````````
|
||
|
|
||
|
- needs to be optional
|
||
|
- standardized input format
|
||
|
|
||
|
- easy to parse
|
||
|
- no errors, false positives
|
||
|
- restrictive.
|
||
|
|
||
|
- flexible input format
|
||
|
|
||
|
- matches regex's?
|
||
|
- map groups to fields
|
||
|
|
||
|
Push to
|
||
|
```````
|
||
|
|
||
|
- optional
|
||
|
- standardized output
|
||
|
|
||
|
- cannot be flexible to match output medium
|
||
|
|
||
|
- flexible input format
|
||
|
|
||
|
- choose fields and format values
|