Use inkscape + dbus + pidgin to implement an whiteboard application.
Hi,
Inspired by jabber_whiteboard's idea and work, I woundered that whether there is a way to integrated inkscape with pidgin, so that we can share the common part of IM, like:
http://inkboardng.googlecode.com/svn/images/intro01.png
Then I setup a program to try it, here:
http://code.google.com/p/inkboardng/
The program structure idea is illustrated as:
http://inkboardng.googlecode.com/svn/images/intro02.png
After months of works, now, it has working demos:
http://people.debian.org.tw/~mat/inkboard/r100.htm
The program is under developing, also encounter some problems that not easy to solve myself. ( I would like to describe in another letter, include the progress I made and the problem it has ) However, I would like to share the program here first, to see whether there is someone also like it, and to see whether it's possible to contribute this work to inkscape project in the future?
If you are interested in the program, and willing to build it by yourself, I suggest to start from DeveloperManual here:
http://code.google.com/p/inkboardng/wiki/DeveloperManual
Any question or suggestion? I'm looking forward... :-)
sincerely, Mat.
Hi Mat,
I really love your work. (thinking that is only a prof of concept) I think is very important to use the UNIX philosophy and let other software to do what it do better, and we don't need to create another XMPP client. We only must to do the things talk together.
The possibility to chat (and other things) using the Pidign in the same processes is obvious and also cool. :-)
Questions/Proposals: - How dificult will be to start the shared drawing from Inkscape? The Pidgin plugin can read the command line arguments (like --inkboard-pid=XYZ) and make things happen on the start with less interaction? - The Pidgin plugin may abstract the protocol and enable shared drawing with the popular MSN or the Classic ICQ? - It must support a "chat room" to allow drawing with more then 2 persons.
Best wishes, Aurium
Thank you aurium, I really appreciate your suggestion :-)
On Thu, Jul 16, 2009 at 12:46 AM, Aurélio A. Heckert <aurium@...400...>wrote:
Hi Mat,
I really love your work. (thinking that is only a prof of concept) I think is very important to use the UNIX philosophy and let other software to do what it do better, and we don't need to create another XMPP client. We only must to do the things talk together.
The possibility to chat (and other things) using the Pidign in the same processes is obvious and also cool. :-)
Questions/Proposals:
- How dificult will be to start the shared drawing from Inkscape?
The Pidgin plugin can read the command line arguments (like --inkboard-pid=XYZ) and make things happen on the start with less interaction?
Do you means that to trigger the shared drawing from inkscape instead pidgin?
It's possible to implement D-Bus serverice in the plugin for pidgin, to make it a bi-directional connector. Then, we will need another dialog for inkscape to select which exiting conversion of pidgin to transfer the inkscape changesets.
I don't know how hard it exactly is, but I am willing to try it. I think the first step I can probe is to try to implement a simple D-Bus service in the plugin for pidgin, and let it can list existing conversations and to select it. And then let the inkscape could invorke this functionality and to use it as transporter.
How is your opinion about this?
- The Pidgin plugin may abstract the protocol and enable
shared drawing with the popular MSN or the Classic ICQ?
I think it is quite possible. We just need to find how to filter the transaction packets of inkboard and parsing. ( at least, we can encode/decode via base64 and transfered in text ) This is also one of the the great pros. to using the pidgin as transporter.
- It must support a "chat room" to allow drawing with more
then 2 persons.
It seems still a period of time to arrive at this goal, and need more helps. I just think about to probe it using IRC first. Do you have any idea or referenced resource about this?
Best wishes, Aurium
-- Aurélio A. Heckert http://colivre.coop.br/Aurium GNU/Linux http://colivre.coop.br/Aurium%0AGNU/Linux User #312507 http://counter.li.org - - - - - - - - - - - - - - - - - - - - - - - - - Ilustração Vetorial Livre: http://InkscapeBrasil.org Coop. de Tecnologias Livres: http://Colivre.coop.br - - - - - - - - - - - - - - - - - - - - - - - - - "Eu temo pela minha espécie quando penso que Deus é justo." Thomas Jefferson
Antes de imprimir esta mensagem reflita sobre a sua responsabilidade com a preservação do Meio Ambiente.
On Thu, Jul 16, 2009 at 12:28 AM, Mat<matlinuxer2@...400...> wrote:
Thanks Mat! I think, your idea will make shared drawing finally possible!
Questions/Proposals: - How dificult will be to start the shared drawing from Inkscape? The Pidgin plugin can read the command line arguments (like --inkboard-pid=XYZ) and make things happen on the start with less interaction?
Do you means that to trigger the shared drawing from inkscape instead pidgin?
Yes! I think this is more obvious and may be easier for the user. ( but do not trow out your initial idea! )
It's possible to implement D-Bus serverice in the plugin for pidgin, to make it a bi-directional connector.
May be useful to use D-Bus to use an opened Pidign, but may be better to ignore an existing pidgin instance (may be). May you must to start pidgin by this way: pidgin --multiple --inkboard-pid=XYZ ( --multiple exists. it allow you to open a new pidgin instance ) I don't know if the inkboard-pid is the better information, but the Pidgin must know that is being opened to work with inkboard and it must know were is the information. So, the Pidgin will automatize some things = less work for the user.
...or all of this idea is creepy and you must to use D-Bus. :-) I'm only trying to help to find the most simple user interaction.
Then, we will need another dialog for inkscape to select which exiting conversion of pidgin to transfer the inkscape changesets.
Yes, if use D-Bus. Opening a new pidgin process we may only need a new menu item.
I don't know how hard it exactly is, but I am willing to try it. I think the first step I can probe is to try to implement a simple D-Bus service in the plugin for pidgin, and let it can list existing conversations and to select it. And then let the inkscape could invorke this functionality and to use it as transporter.
How is your opinion about this?
Will be a good start!
But i see some problems to we talk about: --+ The D-Bus way: ----+ Must be simplified. ----+ We must consider the Pidgin may be not running when the user try to start a shared drawing, ----+ We must consider too the conversation may not be started when the user try to start a shared drawing, ----+ Two users may want to work in more then one shared drawing and it will not be possible in the same Pidgin process or the encapsulated drawing information must inform the parent drawing.
--+ The dedicated pidgin instance way: ----+ The plugin can control the interface? Because the user may start other conversations in the dedicated pidgin and it may be not good... Can it let the user select one friend to chat and close and block the friend list? ----+ The plugin can change the notification icon to let the user know that is the Pidgin working for Inkscape and not the normal Pidgin?
- The Pidgin plugin may abstract the protocol and enable shared drawing with the popular MSN or the Classic ICQ?
I think it is quite possible. We just need to find how to filter the transaction packets of inkboard and parsing. ( at least, we can encode/decode via base64 and transfered in text ) This is also one of the the great pros. to using the pidgin as transporter.
I think it will be possible in the more used protocols because the users can play board games by the IM client without noise the conversation. :-)
- It must support a "chat room" to allow drawing with more then 2 persons.
It seems still a period of time to arrive at this goal, and need more helps.
Yes there is a lot of things to think before, but may be good to have that in mind to allow this feature in the near future. :-)
I just think about to probe it using IRC first.
We can crate chat rooms through XMPP (i think is the same protocol) in conference.jabber.org using the Pidgin.
Do you have any idea or referenced resource about this?
Nothing more by now... but i'm listening...
Aurium
Hello,
Very nice effort! I want advise to you to connect with russian team of developers of the 'RISOVASKA' programm. That programm available yet for Win,Mac & Linux OS. Support SVG and actively developing (absolutely working at the moment). That guys prepare to put their code into OpenSource (the programm is absolutely free)
That programm aimed for similar function - collaboration drawing, so I think it will be interesting for you.
Unfortunately, atm website of project is on russian only [1]. But I think today with Google it is not a problem ;) Also feel free to join their Google Group [2].
Hope that infos will be usefull!
[1] http://risovaska.ru [2] http://groups.google.com/group/risovaska2
Best wishes, Oleg
2009/7/15 Mat <matlinuxer2@...400...>
Hi,
Inspired by jabber_whiteboard's idea and work, I woundered that whether there is a way to integrated inkscape with pidgin, so that we can share the common part of IM, like:
http://inkboardng.googlecode.com/svn/images/intro01.png
Then I setup a program to try it, here:
http://code.google.com/p/inkboardng/
The program structure idea is illustrated as:
http://inkboardng.googlecode.com/svn/images/intro02.png
After months of works, now, it has working demos:
http://people.debian.org.tw/~mat/inkboard/r100.htmhttp://people.debian.org.tw/%7Emat/inkboard/r100.htm
The program is under developing, also encounter some problems that not easy to solve myself. ( I would like to describe in another letter, include the progress I made and the problem it has ) However, I would like to share the program here first, to see whether there is someone also like it, and to see whether it's possible to contribute this work to inkscape project in the future?
If you are interested in the program, and willing to build it by yourself, I suggest to start from DeveloperManual here:
http://code.google.com/p/inkboardng/wiki/DeveloperManual
Any question or suggestion? I'm looking forward... :-)
sincerely, Mat.
Enter the BlackBerry Developer Challenge This is your chance to win up to $100,000 in prizes! For a limited time, vendors submitting new applications to BlackBerry App World(TM) will have the opportunity to enter the BlackBerry Developer Challenge. See full prize details at: http://p.sf.net/sfu/Challenge _______________________________________________ Inkscape-devel mailing list Inkscape-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/inkscape-devel
On Wed, 2009-07-15 at 17:42 +0800, Mat wrote:
Inspired by jabber_whiteboard's idea and work, I woundered that whether there is a way to integrated inkscape with pidgin, so that we can share the common part of IM, like:
Mat, I think that's really interesting what you did. But, I'm kinda curious if you'd looked at Telepathy for implementing this. It would probably fix a few of the problems that you're having as the API was designed for doing this, while the Pidgin DBus API is more or less just a dump of the libpurple API, which is more about building clients.
One of the advantages of using Telepathy is that we can pick up libempathy-gtk which provides many of the GTK widgets for things like user lists that make things a little bit easier :)
--Ted
Thank you all!
I just read over all letters and try to put things together and make a short notes as:
=== TOC === 1. usage flow a. invitor, a try to start the flow from the inkscape b. invitor, start from pidgin ( current way ) c. accepter, trigger from pidgin or from inkscape?
2. multiple user chat: a. try "conference.jabber.org" b. try IRC
3. transporter of network: a. dedicated pidgin b. telepathy c. pidgin plugin with D-Bus implementation ( current way )
4. the program launching a. use D-Bus mechanism, ( by install .service ? ) b. use popen to call shell command ( current way )
5. reference program a. http://risovaska.ru
===========
about 1a: Thanks for Aurium's and Soren's suggestion about the usage flow. I just made a simple illustration here[1], to help us to confirm the right scenario which we imagine and talk about. Please tell me if I got something missing. Let's make it more clear and concrete :-)
about 1c: When the user want to invite shared drawing, as previously suggestted, we assume that they may want to start from the inkscape. Will this also applies on the other side who accept invitation?I wonder whether the user who accept invitation would like to be triggered from pidgin and launch inkscape after or trigger from inkscape first?
about 2a: Thanks Aurium, conference.jabber.org is quite close to what pinkboard need.
From current status, I think it just need to adjust the packet filter of xmpp,
than, and avoid the self-recursive message, than could get the collaborative inkscape packets. I will keep trying :-)
about 3a,3b: Thank really Aurium and Ted's suggestion about the transportor implementation. Do you have any links about sample codes or some program for reference? Although I could not have enough energy to change my implementation method at present,I would like to keep these in mind and to evaluate each time the program grow up.
about 4a: Thank Soren's suggestion. I think this is really convenient for responding programs' detection and launching. BTW, is this method also apply for D-Bus on windows platform? ( Just ask, I know that windows port is a hard issue, so ignore this if it bothers... )
about 5a: Thanks for Oleg's sharing. I just subscribed the mailing-list group. I'm looking forward for the future discussions :-)
BTW. Soren, I see your works about D-Bus script API, it's really great job!
sincerely, Mat.
[1]. attach://usage_flowsvg.jpg
On 7/19/09, Ted Gould <ted@...11...> wrote:
On Wed, 2009-07-15 at 17:42 +0800, Mat wrote:
Inspired by jabber_whiteboard's idea and work, I woundered that whether there is a way to integrated inkscape with pidgin, so that we can share the common part of IM, like:
Mat, I think that's really interesting what you did. But, I'm kinda curious if you'd looked at Telepathy for implementing this. It would probably fix a few of the problems that you're having as the API was designed for doing this, while the Pidgin DBus API is more or less just a dump of the libpurple API, which is more about building clients.
One of the advantages of using Telepathy is that we can pick up libempathy-gtk which provides many of the GTK widgets for things like user lists that make things a little bit easier :)
--Ted
On Tue, 2009-07-21 at 01:54 +0800, Mat wrote:
Thank really Aurium and Ted's suggestion about the transportor implementation. Do you have any links about sample codes or some program for reference? Although I could not have enough energy to change my implementation method at present,I would like to keep these in mind and to evaluate each time the program grow up.
Telepathy is a framework, it's webpage is:
http://telepathy.freedesktop.org
It is planned to be shipped by default instead of Pidgin in the next release of Ubuntu.
--Ted
participants (4)
-
Aurélio A. Heckert
-
Mat
-
Oleg Koptev
-
Ted Gould