The front ends seem to get desynchronised when two incompatible concurrent edits happen; this is a difficult issue to resolve, but one solution would be to change the data flow so local edits are drawn by the client on a transparent canvas, get sent to the server, and then get drawn on the underlying main canvas only when they are sent back from the server. The transparent canvas can be reset by the client at that point (you might need some synchronisation mechanism for this), so all users will end up having consistent state once edits have been processed by the server.
Quit hint: it's too easy to make a DOS by quickly drawing hundreds of lines in the same spot. It doesn't take more than two minutes and regular writing or drawing is too slow and ends up erased before finished.
Maybe limit the number of lines an user can draw during a certain time?
Thanks :) Yeah, we limit the length of line to try to avoid scribblers. We thought of rate-limiting the number of lines too, and adjusting the limit, so the first time you hit the limit you're stopped for 1 seconds, next time for 2 seconds, then 4, 8, 16 and so on.
Would probably work quite well.
PS is your hostname 'bd222edited for privacy.com.br' ?
Yep, that would be me. Sorry if I broke something, it started as an attempt to remove the random lines obscuring the drawings and text. When I noticed the fade out effect on the lines, I had already erased everything D:
yeah it's hilarious what people's doodles actually end up turning in to. Everything's logged on the server, I'm planning to do a stop-motion style playback video to put up on youtube eventually.
Really glad to see that people are interested in this!
We're actually planning to write up a little blog post about our learning experience with NodeJS etc, maybe open-source the code, and then post that to HN/reddit/etc.
We've actually been waiting for a good opportunity to 'launch' it properly. Just as a fun side-project, no real business in 300lines as it stands, though we'd like to spin off a simple collaborative whiteboard app at some point.
I'm using a Thinkpad with Wacom enabled display and stylus. It 'should' say 'hello world' 3 times and have an underline after each one.
In the saved and view only link, it shows a 4th 'hello world' on the left and more slanted. It was erased before my real test.
It seems to miss certain strokes as you can tell by the sketch. Mainly straight lines. This might have been caught as trying to move the sketch area, but it did not move or register the line.
(As a control test to check display and stylus, I wrote the same text in OneNote and it was handled fine.)
I work in a distributed office, and over the past few days I've been trying to find a "concept mapper", which helps us to make projects more concrete through flowcharts etc. The problem that I keep on facing is that the web apps which dominate the current market just don't cut my needs. They don't allow for proper exploration, and collaboration is a frustrating progress. We would gladly pay for a tool that doesn't get in our way and just lets us all communicate.
I think that you will find a ready market, if you can solve the thorny problem of communicating projects, which involve several interconnected parts/ideas.
Yes, you need text and images. The company I work for has been looking for a simple, fast, and good solution to make notes over webpage wireframes. I think this could be it!
Very nice - you should do what I figured out for a project - momentum when there is a big action, and fine control for small actions - if I scroll the wheel dramatically, give me some momentum on that zoom - if I scroll it slowly, no momentum and fine increments (like you have now)
The way I did this in javascript was to create an array of zoom in/out and the four directions - then you add or subtract from the array based on intensity of gestures over time - even keyboard action keys (+/-) can have momentum this way by adding when there is continuous keypresses - I was pleased how it turned out in the end.
I would have liked the ability to change the line thickness, to work around you'd have to zoom out or in depending if you wanted a line thicker or thinner with the latter being particularly difficult as it's harder to keep track of where you are in relation to the rest of the page.
I've looked a bit at what it uses: shapes drawn are vectors, the app uses Raphael (http://raphaeljs.com/) for drawing, and Pusher (http://pusher.com/) for whiteboard syncing.
Regarding the Pusher web site, am I the only one who cannot resist the temptation of loading up Firebug to verify whether the counter is for real or "interpolated"?
Unfortunately it's not really viable to sent a counter msg for every msg which goes through the system ;) Our stats and logging has to be somewhat delayed.
Great tool ! Simple and focused. Maybe two things a little more helpful :
1. The ability to press Ctrl+Z to undo
2. A global reset button (not so important as we can refresh the page)
this is pretty neat, from a designers point of view here are some things I'd suggest:
- something like a photoshop navigator where you see your zoom level vs your current canvas. Currently it's quite easy to zoom out a lose your stuff.
- alternatively have a zoom % and return to 100% and center
- As well as the current freehand drawing style, have a version that straightens the lines for you.
- keep line thickness at any zoom level so it's not so bad when you zoom back in (although I can think of nice uses as it is)
- write text
Totally agree, I'd like to be able to draw a straight line as well. I don't have that talent manually =) Some command such as shift would be nice for this, as well as the ctrl + z command
sorry, but I don't know the hardware details.
It was a laptop with external display, multitouch was plugged in via USB and handled by a software called dreaMTouch.
Working fine on 4.3.5 here, just emailed a link to several friends to see what happens over the next couple of hours with it. The best bit about it is the super-low barrier to entry/sharing.