Closed AdrianRossouw closed 9 years ago
What's the stuff we need to do? Let me throw in a list of pre-requirements for Aetherboard to happen:
Anything else? Can we crack down the bare minimum graft API for Aetherboard to work? This will drive #2.
Check out the readme and the issue queue, it's quite well documented now.
I don't think they are pre-requirements, as in blockers to making the project happen.
Aetherboard is something I could have built without the existence of graft or jschan, but those libraries are going to make it a really elegant and straight forward solution.
Those are definitely the success criteria for the project though, although I'd add :
So the order I see things best working is :
Wiring things together with jsChan might be painful, I'd go straight to graft (it does routing!). Anything simple (even just on in-mem jschan) can help making aetherboard more graft-like from the very beginning.
I'll focus on the websocket layer and/or I can sketch a basic graft API.
What I'm talking about is building like 2-4 of the services that I've laid out so far, and just using jschan to chain them together. For something that simple, i really don't think we'd need routing yet, right ?
My gut is also telling me that I would feel more comfortable building something a bit more substantial with jschan than the rexec example we ported from upstream. I mean, if jschan really does turn out to be painful to use, I would prefer us have the opportunity to fix the underlying issue, rather than layering an abstraction over it straight away.
While I think you are definitely the right person to be tackling the websocket stuff, I do also really want to see what you are thinking for the graft api. But maybe we should do that in a branch though, so we can iterate towards a working install that has lines showing up on the screen asap (even if not synced to any kind of server)
What I'm talking about is building like 2-4 of the services that I've laid out so far, and just using jschan to chain them together. For something that simple, i really don't think we'd need routing yet, right?
Albeit being stream-oriented jsChan offers a very different API if compared to what we sketched in #2. However, you should be able to do what you want. Let me know if you need any fixes!
While I think you are definitely the right person to be tackling the websocket stuff, I do also really want to see what you are thinking for the graft api. But maybe we should do that in a branch though, so we can iterate towards a working install that has lines showing up on the screen asap (even if not synced to any kind of server)
I will focus on the websocket stuff for the time being. I'd code a quick-and-dirty msgpack over ws thing and then research the spdy-over-websocket theme. In this way we can move forward Aetherboard, and maybe switch later to the spdy thing.
Just to let you know I've released jsChan v0.0.4 that includes websocket support (with the msgpack trick, incompatible with libchan).
aetherboard is in progress now, and we've already gotten a few bug fixes / features out of this process. will update and close this issue when the project reaches some nominally stable state.
this is as built out as it needed to be for this issue.
i've moved aetherboard out of it's own org, and will be managing issues on there.
It's kind of hard to make any decisions about what an API needs to look like, without at the very least trying to build something in the problem domain. (see: #2 )
So we've decided to build out a collaborative whiteboard app called AetherBoard.
The project itself is something I had been working on to be able to pull off in a node knockout situation, and is a new iteration of a project we did for the 2011 contest
We were going to aim for pseudocode at first, but after plotting out the spec, I think it's more feasible to build the pieces and then figure out how they want to be connected to each other.
We’re hoping to have a working demo by nodeconf, since @mcollina is doing a jschan presentation.
check out the issue queue and lend a hand if you are interested ?