Hey all
I am a student doing a 4th year project, studying the usability / workflow effects of a multi user vector graphics prorgam, at the time, I had not heard of inkboard, and planned on developing a prototype myself. then, after realising this was far too ambitious, I decided to add multi user functionality to inkscape, to realise it had already been done.
Searching the net / mailing list archives it seems there isnt any up to date information on the current state of inkboards development. I have it compiled from the latest stable and cant get inkboard sharing with other users(different bugs show with loudmouth 0.17 / 1.0 / 1.0.1), I will try compiling the latest svn checkout today
My plan is to take inkboard (either the rewrite or current release, depending on the rewrite state) and modify it to fit my requirements, due to the timescale on my project, and my lack of experience with open source development, I would not be looking to join inkscape development team immediately, if all goes well with my project, I would be happy to contribute my effort to inkboard after your review.
So I would appreciate it if somone could fill me in on the current state of its development, and possibly point to where my problem is getting it working ( ill post details if needed )
Also any advice pointers on how to develop with inkscape would be appreciated, I am familiar with c++, however nowhere near this scale project, which I am familiar with in other languages (java, erlang)
I will be looking to contribute to inkscape / inkboard in the future after my project is finished and I have some experience with its development
Thanks
Dale Harvey
Dale Harvey wrote:
At the moment, the version in Inkscape's trunk is fairly complete.
There are a couple things it doesn't handle -- for example, it only transmits changes made to the SVG document itself, so linking in external documents (i.e. raster image data) won't work unless the linked file is somehow shared between users. Conflict resolution isn't quite all that graceful yet, and there are also some bugs with the SSL implementation, as some servers that use Jabber over SSL can send data that cause crashes in Inkboard and/or the Loudmouth library.
Because of bugs in the mu-conference module, which I'm pretty sure is still a very popular -- if not _the_ most popular -- method of providing multi-user chat facilities on Jabber, Inkboard also has some special requirements with regards to multi-user document sharing. You can read about them in the v0.43 release notes.
Can you describe the bugs you're experiencing, as well as the platform you're on?
Sure thing! We could always use more people.
As for where you begin: either is fine. I have been focusing my efforts on the rewrite, since getting Windows support is a really big deal, but it is not yet very complete. So starting out with the current Inkboard would also be great.
There's two places that work out: #inkscape on irc.freenode.net, and the inkscape Jabber conference channel on conference.gristle.org. Additionally, if you have any questions about Inkboard interals, feel free to email me -- although I haven't really had much time to hack on it, I'm still pretty sure that I have a good grasp on Inkboard's architecture :)
- David
# from Dale Harvey # on Tuesday 07 February 2006 03:14 am:
Dale,
You may want to join the whiteboarding list
http://mail.jabber.org/mailman/listinfo/whiteboarding
As for getting the current version (0.43 works) compiled and working, you can usually find some help with that on #inkscape via irc.freenode.net. If you're running configure with --enable-inkboard and not getting a confirmation that it is enabled in the summary, you'll have to look through the configure output for something like a "looking for ... No" telling you that a related prereq is missing.
--Eric
Can you give some more detail on the problems you've been experiencing? (I have to admit that I haven't really been keeping up with the bug tracker; I'll go check that now...)
I just built and installed Loudmouth 1.0.1 and latest Inkscape SVN, and I was able to use Inkboard via the gristle.org Jabber server in a user-to-user session.
- David
On Tuesday 07 February 2006 01:24 pm, Aaron Spike wrote:
On Tue, 7 Feb 2006, Dale Harvey wrote:
This an interesting topic. I'd be interested in your paper. One thing that I think is the most difficult (and probably could be a full year in itself) is the issue of undo/redo. In Inkboard currently we're leaving undo/redo to the current user's edits. This is probably the simplest solution that makes sense, but I'm not sure it is the best. Probably what is best involves something to do with the user's loci of focus. If someone else changes the object they're working on, they want to be able to undo that easily. But, if they hit undo, they don't want someone else's edit that they can't see to change.
On the technical side, I would recommend using SVK. That way you can keep a local branch, and SVK will keep you up to date with the Inkscape main line. We've had divergence before with Inkboard, I'd hate to have that again.
Also, in general it is easier to review small patches. If you could send small features as you finish them, that would be much better than a thousand page patch when you are all done.
Welcome!
--Ted
Thanks for the replies
windows support is pretty high priority in my project, I would really appreciate an update to where this is at and whats needed to get it working
You may want to join the whiteboarding list http://mail.jabber.org/mailman/listinfo/whiteboarding
joined, thanks
I try to shoot helpful comments his way every now and then, but I haven't been all that successful with inkboard lately either
acspike has been really helpful trying to get this working cheers
Can you give some more detail on the problems you've been experiencing?
the configure goes through fine with inkboard enabled, ive built it from the current stable, and a package provided by acspike, (the latest svn gives me a syntax error with configure, but thats for another thread) which both install fine with inkboard enable, and they both have the same problems with the respective loudmouth install, I am going to try a quick reformat today and try again, to see if I have mucked up my loudmouth libs with multiple installs, the actual problem is
loudmouth .17 -> when I click connect to server, enter my details (I use my gristle.org account) when I click connect, the status bar changes to establishing connection, but then inkscape crashes, the dialogue does go away, when i move it the canvas behind stays black, eventually everything dissapears, after pressing ctr+c the following shows ( I ented Dale3@...896... in the dialogue, I assumed thats the right format) ** (inkscape:6265): WARNING **: Null recipient JID specified; not sending message.
loudmouth 1.0.1 -> I connect fine, when i choose invite user to share, inkscape crashes, with a generic "inkscape has encountered an internal problem and will close now" QPixmap: Invalid pixmap parameters QPainter::begin: Cannot paint null pixmap QPainter::setPen: Will be reset by begin() QPainter::setBrush: Will be reset by begin() QPainter::setBrush: Will be reset by begin() QPainter::setPen: Will be reset by begin()
Emergency save activated! Emergency save completed. Inkscape will close now. If you can reproduce this crash, please file a bug at www.inkscape.org with a detailed description of the steps leading to the crash, so we can fix it. Segmentation fault
is printed to shell
loudmouth 1.0 -> no crashes !, I click invite to user, enter the user, it says its sending it, but the message is discarded in the message_handler, i get 3 messages, "message recieved in invalid context, discarding message"
the consistency with the errors in different loudmouth installs leads me to think its a problem with loudmouth (or my install) and not with inkboard itself, although it should really be recovering
I am going to do a quick format later today, and try acspikes package again, then I will try some quick test with loudmouth without inkboard to see if thats working fine, (these are built on suse 9.2)
One thing that I think is the most difficult (and probably could be a full
year in
itself) is the issue of undo/redo
the prototype i developed took quite a different approach, I used a lock mechanism that each user had to gain a lock on an object that they needed to edit before being allowed to edit / add objects, this way all edits were atomic and would solve the issue with undo, I planned a structure simliar to illustrators nested layers, to allow a user to gain a lock on a parent layer, so and edits to children wouldnt go through the time consuming procedure of gaining a lock. I still believe this way is possible using <svg:g and presence stanzas, I need to look further into the inkboard architecture for this though. I do believe somone in glasgow university is doing a paper on undo / redo in a conflict resolution envoiroment though
Thanks
Dale Harvey
Hi,
I've just uploaded an updated fr.po file. Only a few strings (for Fret Find) are not yet translated : i will update them as soon as I can find someone able to provide me the necessary explanations for this vocabulary.
Just a few remarks : - i would suggest that Licenses should be translatable - it may also be a good idea to embed directly in inkscape some documentation about the effects (in a tab linked to each effect dialog?)
Regards,
Matiphas
On Wed, 8 Feb 2006 matiphas@...8... wrote:
Yeah, that's in my short list of things to do. Basically I'd like to put some help text in for the different extensions. I will probably create a lot more to translate though :)
--Ted
On Wed, 8 Feb 2006, Dale Harvey wrote:
windows support is pretty high priority in my project, I would really appreciate an update to where this is at and whats needed to get it working
I'm not sure if you've already done this, but there is an unofficial patch to loudmouth on Windows. My understanding is that it won't work at all without that patch, and that patch doesn't work all the time :) Hence the switching to a new jabber library.
Well, I don't think locking really helps the situation. You still can only undo/redo your local changes. And you introduce many more problems. What happens if someone's computer crashes who has a lock on a section of the document? How do users communicate that they would like the lock? What if a slow user is the one doing the locking, does everyone suffer? What if one client doesn't get, or like the lock, does everyone reject the changes by that client?
I would be interested to see the paper from Glasgow U.
Also, Inkscape already provides the basic functionality, in that you can lock layers. But, there is no way to assign locks to a particular user, or a communication mechanism in Inkboard to support that.
--Ted
Quoting ted@...11...:
Right. Reserved checkouts is precisely the wrong model for this.
Ultimately the design is going to have to look something like a distributed RCS (e.g. git, monotone, etc...) instead.
Also, Inkscape already provides the basic functionality, in that you can lock layers.
Those "locks" are something different; they just prevent selection with the mouse (sodipodi:sensitive) but otherwise don't prevent modification.
-mental
I meant to say gtk2-engines or so, probably gtk2-engines-qt. But smooth is definitely broken and should be removed on any system.
I just removed the qt-gtk/2-engines and the error is gone, cheers
Argh, this may be my fault. :P Now I wish I wrote better error
messages...
I was wondering if the jabber connection is dying pretty quickly, I get the status saying establishing connection, and then connected to jabber server Server as User, but that status goes away after a few seconds, Looking closely I just noticed it says connected, for around 10 seconds, then the status says it is again trying to establish a connection(this status is shown momentarily,it basically flashes too quick to be noticed) then the status reverts to normal(no objects selected). so thats probably what my problem is
is the error I get
** (inkscape:10938): WARNING **: Received message in incorrect context (currentis not a subset of required); discarding message.
** (inkscape:10938): WARNING **: current context=000001010 required context=000000010 (msgtype CONNECT_REQUEST_USER)
** (inkscape:10938): WARNING **: Default message handler received message in invalid receive context; discarding message.
I'd like to try Inkboard out with you sometime -- it seems to be the
easiest
way to troubleshoot this. What times would be best for you?
I try to sit in #inkscape most of the time I am working, i should be on till around 7GMT today, most of tommorow 11 - 5GMT, and I will be able to make time over the weekend as well, its probably easier to say when is easier for you, and thanks
I had previously planned over a tcp connection, so it would be notified when the connection was dropped, It was also in a more server / client model, similiar to online games, where the computer that started the session would be the host, it would store a basic object / lock table for quick lookups, the actual lock request would be be by simply selecting the object, which has the obvious effect on slowing down the interface on selecting an object, which is what the nested lock was designed to help.
after running a few test with loudmouth without inkboard i couldnt find much wrong,
I did a clean format, installed the autopackage provided by acspike, and get this verbose
http://debrowse.com/1.txt http://debrowse.com/2.txt
where 1.txt is the output from a user logging in as Dale2
2.txt is a user logging in as Dale3, then attermpting to sent an invitation to Dale2
This is from a completely clean install of Suse9.2 and the autopackage, any suggestion on where the problem could be would be appreciated
thanks
Dale
On Wednesday 08 February 2006 08:22 am, Dale Harvey wrote:
Ahh...The connection dialog may be misleading: you don't need to enter your full JID for your username, as Inkboard constructs it from the server and username fields. All you need there is the name you registered with, i.e. Dale3. (This strategy does falls apart for some services, like Google Talk, where the server specified in the JID isn't the server you actually connect to; it'll probably need to be changed.)
Interesting. I'm not sure what the Qt errors are doing there, though -- as far as I know, none of Inkscape's components use Qt, and I don't think anything in Loudmouth, or its dependencies, use Qt either...though I could be wrong about that. Maybe they're entirely unrelated to Inkscape, and are being thrown by some other process.
Can you replicate this behavior with a debug build and provide a backtrace? I'm using Loudmouth 1.0.1 myself, and have not experienced this crash situation.
Argh, this may be my fault. :P Now I wish I wrote better error messages...
That error message means that Inkboard received a message that it was not expecting to receive in its current state. (There's a number of client states: disconnected, ready to receive or send whiteboard invitations, receiving invitation, in whiteboard, etc.)
I'd like to try Inkboard out with you sometime -- it seems to be the easiest way to troubleshoot this. What times would be best for you?
I do believe somone in glasgow university is doing a paper on undo / redo in a conflict resolution envoiroment though
I'd be interested to see that paper, as well.
Thanks
Dale Harvey
- David
participants (7)
-
unknown@example.com
-
Aaron Spike
-
Alexandre Prokoudine
-
Dale Harvey
-
David Yip
-
Eric Wilhelm
-
Ralf Stephan