Comments (15)
marked for 1.0
from bookie.
Need an API for installs to call each other:
- api call to list/verify user
- list bookmarks, by tag, recent, etc
- provide rss feeds of those so the app can just subscribe to rss feeds and update that locally
- Dare we try to do a search on friend's bookmarks? Seems scary performance-wise
from bookie.
Wondering if we could create something where the transactions are logged, ie:
- Timestamp
- shaNsum of current bookmark
- operation code (add, edit bookmark, edit tags, delete bookmark)
- payload (new bookmark, new tags)
- shaNsum of new bookmark
Then, when another remote instance calls for the latest changes, it could gather what it needs, and be off on it's merry way.
Going to look into what Status.net does for their API calls.
from bookie.
So what all are we expecting the federation to do then? Is it actually sharding/storing the changes on each site? I guess that's what status.net would do, but hadn't thought about copying the actual urls across. Just providing some basic 'I can see your latest stuff over here' thing.
But yea., if we do copy all out then things like search/etc become more feasible.
I have some notes on creating sha-like strings based on the urls so that when we go multi-user we can create a bmark table and share those among users to reduce db storage/overhead. It's much like what the url shorteners do out there. Generate a short url string and use it as the bookmark url id across the app.
from bookie.
And just for the record, note-like urls can usually be found:
http://rick.bmark.us//tags/bookie
https://github.com/stochastic-technologies/shortuuid
and for federation we need to check out this standard:
from bookie.
I've overloaded the term federation to mean acting as an endpoint for stuff like status.net, as well as allowing different bookmark sites to communicate with each other. iirc, Each status.net site keeps a local store of the content that it's tracking. I'm not 100% sure, though, and will investigate.
Ideally, I'd like something that would allow anyone to access bookmarks via the twitter API, as well as a bookie API. That way, if someone wanted to follow by bookmark stream, they could follow [email protected], and it would just work. If I wanted to socially interact with someone else's bookmarks, I could subscribe to another user's bookie instance, and have their public-facing content available to me.
from bookie.
This would be a killer feature for the "socialisation" of Bookie and it's addition to projects like FreedomBox.
from bookie.
the new cool kid in town for federation is http://pump.io, at least that's what http://mediagoblin.org will be using for sharing content amongst instances.
from bookie.
Are there any other server implementations of pump.io? The only implementation I can find seems to have a fairly long dependency list, including nodejs.
from bookie.
Federation seems interesting, but I'm not sure how it fits at this time. What we might do, is look at using the GSoC student's project this summer, that will be implementing saving bookmarks from external sources, to auto save bookmarks from another user's account. Perhaps that available on another Bookie instance would suffice?
I guess, what's everyone's wishlist functionality for federation?
I'm definitely not going to go loading nodejs deps and such into Bookie. I've fought a long battle to get install/setup simpler over time and bringing nodejs and npm into the picture isn't on my todo.
from bookie.
I'd be interested in "following" the bookmarks from friends.
Installing nodejs is definitely also a no-go for me personally.
from bookie.
Ok, yea I think we can do that sans federation though. Bookie provides RSS feeds of almost any URL (search/tag filter) and the ability to maybe add some feed into your stream of bookmarks might get the job done in a simpler fashion.
from bookie.
Personally, being able to subscribe to an RSS feed with links would be sufficient.
from bookie.
There's a program I'm using called "Spigot" which has a python library that supports sending content to pump.io. If there's a desire for Pump.io support this would be my preferred method. :)
from bookie.
so the pump.io protocol doesn't depend on nodejs by itself. this is why i mentionned mediagoblin: those guys are working on a Python interface to the pump.io API: http://pypump.org/en/latest/
if you don't want to add that as a dependency, you can use the API directly: https://github.com/e14n/pump.io/blob/master/API.md
as that document explains, it's really just a matter of exposing a few things: an activity stream, some webfinger magic and oauth. i don't know how i feel about it personnally, but seeing mediagoblin join in seems to make me think it's promising...
for me, typical use-case scenarios would be:
- i am a fan of george, and i want to see all the bookmarks he posts - i go on his page and click "subscribe", which asks me for my bookie url for registration. after i register, i see his posts in my stream of bookmarks
- i want to share a bookmark with george: there's a "share" button on my bookie which allows me to share a resource with him
this is the idea here: to integrate other install's stream of bookmarks into my install without having to host them myself. it's like what RSS feeds provide, but it's as if bookie was an RSS reader...
from bookie.
Related Issues (20)
- Uploading 1.6MB delicious export said to be too large... HOT 5
- "make clean" should remove virtualenv directories HOT 1
- make install fails on Ubuntu 14.04 and Mint 17.1 HOT 3
- Sponsors to revive bookie.io HOT 7
- Import filter
- Add contact and version to bottom bar
- Bookmarklet at Welcome page
- OPDS support HOT 1
- Bookmarklet should not be user-specific
- Enhance 403, 404 and Internal Server Error errors
- Bookmarklet that opens a new window (easy-fix)
- Undo button
- [Off topic] AMO censors Bookie HOT 1
- [Accessibility] make Javascript optional
- Propose ATOM instead of RSS
- Proposing a PR to fix a few small typos
- Joining forces with buku HOT 1
- Support XBEL
- XMPP PubSub support (XEP-0060)
- Contemplating about being a maintainer
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from bookie.