<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    Hi, Sam<br>
    <br>
    Thanks. That sounds like enough to get me going. Sadly, this also
    means porting to gtk3 but it will need to be done anyway.<br>
    <br>
    Yours,<br>
    <br>
    Tony<br>
    <br>
    <div class="moz-cite-prefix">On 12/26/2015 11:57 AM, Sam P. wrote:<br>
    </div>
    <blockquote
cite="mid:CACVKbrX+2SNLFmx35VpWAP=gnXB2BLjLQq9uBgMWgHTqF+4Nqw@mail.gmail.com"
      type="cite">
      <div dir="ltr">Hi Tony,
        <div><br>
        </div>
        <div>Sorry that I was a bit vague in the previous email.  The
          collab wrapper is not yet merged into sugar-toolkit-gtk3,
          however can be used by activities by copying a script and
          including it in their activity.</div>
        <div><br>
        </div>
        <div>The collabwrapper script is available here:  <a
            moz-do-not-send="true"
            href="https://github.com/samdroid-apps/collabwrapper"><a class="moz-txt-link-freetext" href="https://github.com/samdroid-apps/collabwrapper">https://github.com/samdroid-apps/collabwrapper</a></a></div>
        <div><br>
        </div>
        <div>The readme details how to import it using a try/catch
          statment, so that the backwards compatible.  It also links to
          the documentation, which included usage examples.</div>
        <div><br>
        </div>
        <div>The collabwrapper uses only telepathy features used already
          in sugar - namely the text channels (used by chat and other
          activities) and the file transfer channels (used in journal
          for file transfers).  This means that if collabwrapper.py (the
          standalone script) is included in your activity, it should run
          in any Gtk3 sugar.</div>
        <div><br>
        </div>
        <div>Collab wrapper does not yet work in gtk2 sugar, as it uses
          GObject syntactic sugar that is only available in newer
          versions.  It also depends on Gio for file transfers, and I
          will need to investigate how sugar gtk2 shell does the file
          transfers.</div>
        <div><br>
        </div>
        <div>Thanks,</div>
        <div>Sam</div>
      </div>
      <div class="gmail_extra"><br>
        <div class="gmail_quote">On Sat, Dec 26, 2015 at 5:44 PM, Tony
          Anderson <span dir="ltr"><<a moz-do-not-send="true"
              href="mailto:tony_anderson@usa.net" target="_blank">tony_anderson@usa.net</a>></span>
          wrote:<br>
          <blockquote class="gmail_quote" style="margin:0 0 0
            .8ex;border-left:1px #ccc solid;padding-left:1ex">
            <div text="#000000" bgcolor="#FFFFFF"> Hi Sam,<br>
              <br>
              I am still not clear on the status. I have a long-dormant
              activity 'bingo' which depends on the caller sending
              'bingo cards', receiving a 'bingo call', and being able to
              check the card via collaboration. In developing those
              features, should I use the collab wrapper? Is it available
              for 0.106? Where can I find the version of <br>
              chat that uses it as an example to follow? The version
              installed on 0.106 (13.2.5) does not seem to use it.<span
                class="HOEnZb"><font color="#888888"><br>
                  <br>
                  Tony</font></span>
              <div>
                <div class="h5"><br>
                  <br>
                  <div>On 12/26/2015 01:55 AM, Gonzalo Odiard wrote:<br>
                  </div>
                </div>
              </div>
              <blockquote type="cite">
                <div>
                  <div class="h5">
                    <div dir="ltr">Hi Martin,
                      <div>I like your proposal of use the wrapper in
                        the activities by at least one cycle, before
                        include it in the toolkit.</div>
                      <div>In our experience, once the code is included
                        in the toolkit, is difficult make changes
                        without breaking activities in</div>
                      <div>unexpected ways.</div>
                      <div>I didn't have time to make tests with the
                        wrapper, and is really difficult do tests for
                        collaboration. We have seen</div>
                      <div>bugs that appear only when you have many
                        computers, or using jabber but not when using
                        the mesh, etc.</div>
                      <div>I think the wrapper is a very, very good
                        start (Thanks Sam and Walter) and even they
                        provided patches for some activities.</div>
                      <div>Sadly, some of the activities are on my
                        hands, but I didn't have time the last months to
                        do the proper testing</div>
                      <div>and integration of the patches.</div>
                      <div>About the wrapper API, just looking at the
                        code, I think would be better add a callback
                        parameter to the setup() method</div>
                      <div>because the initialization is async and then
                        is the only way to execute your activity code
                        when the initialization</div>
                      <div>has finished. Issues like this are difficult
                        to get right at the first time.</div>
                      <div>I know I am not doing almost any work in
                        sugar these months, don't take these comments as
                        a critic,</div>
                      <div>just as a way to try to help, and avoid
                        problems in the future.</div>
                      <div>Regards,</div>
                      <div><br>
                      </div>
                      <div>Gonzalo</div>
                      <div>   </div>
                      <div><br>
                      </div>
                    </div>
                    <div class="gmail_extra"><br>
                      <div class="gmail_quote">On Wed, Dec 23, 2015 at
                        4:52 PM, Martin Abente <span dir="ltr"><<a
                            moz-do-not-send="true"
                            href="mailto:martin.abente.lahaye@gmail.com"
                            target="_blank"><a class="moz-txt-link-abbreviated" href="mailto:martin.abente.lahaye@gmail.com">martin.abente.lahaye@gmail.com</a></a>></span>
                        wrote:<br>
                        <blockquote class="gmail_quote" style="margin:0
                          0 0 .8ex;border-left:1px #ccc
                          solid;padding-left:1ex">
                          <div dir="ltr">
                            <div>Hello everyone,</div>
                            <div><br>
                            </div>
                            <div>I have been reviewing the current state
                              of the collaboration proposals and I am
                              afraid it is still too early for merging
                              it. We need to explore more use cases, and
                              this will only happens when we start
                              porting more Activities that actually use
                              TUBES. Therefore, i want to share some
                              thoughts on this.</div>
                            <div><br>
                            </div>
                            <div><b>Opinions:</b></div>
                            <div>
                              <ol>
                                <li>There haven't been enough changes in
                                  the Activities regarding Tubes
                                  deprecation.<br>
                                </li>
                                <li>Dropping the Tubes support from
                                  Sugar without changing all the
                                  activities that depend on Tubes means
                                  that we will break collaboration for
                                  those activities anyway, and there
                                  wont be much gain by just doing that.<br>
                                </li>
                                <li>Making changes in the Sugar API
                                  without proper testing with more
                                  activities (and scenarios) is simply
                                  not a good idea.<br>
                                </li>
                                <li>But, making changes in the
                                  Activities can be easily handled since
                                  they are self contained.<br>
                                </li>
                                <li>Most of our users still use Fedora
                                  18 through OLPC deployments, where
                                  Tubes is available.</li>
                              </ol>
                            </div>
                            <div><b>Suggestions:</b></div>
                            <div>
                              <ol>
                                <li>Lets make Sugar handle the Tubes
                                  deprecation better so it doesn't
                                  break, but lets not remove the support
                                  for TUBES yet.<br>
                                </li>
                                <li>Instead, we can start changing the
                                  activities using the Wrapper that
                                  Walter and Sam prepared, but using it
                                  locally on each Activity for now.<br>
                                </li>
                                <li>Once and if, we have most of our
                                  activities ported to the new telepathy
                                  API (which will be based on the
                                  Wrapper), then we can include the
                                  Wrapper into sugar-toolkit-gtk3, in a
                                  next release and remove it from
                                  Activities.</li>
                              </ol>
                            </div>
                            <div><b>Pros:</b></div>
                            <div>
                              <ol>
                                <li>We avoid breaking collaboration for
                                  <b>(a)</b> Activities that use TUBES
                                  and run on older systems where TUBES
                                  is available, and <b>(b)</b>
                                  Activities that does not use TUBES on
                                  newer systems where TUBES is no longer
                                  available. This _is_ an improvement
                                  versus the current situation where is
                                  completely broken on newer systems.</li>
                                <li>We do this whole re-work
                                  incrementally, without having to
                                  change the API (sort of) blindly.<br>
                                </li>
                                <li>There will be more flexibility to
                                  explore ideas in Activities land.</li>
                              </ol>
                            </div>
                            <div><b>Cons:</b></div>
                            <div>
                              <ol>
                                <li>There will be repeated code in
                                  Activities, but that can be changed
                                  easily later.<br>
                                </li>
                              </ol>
                            </div>
                            <div><br>
                            </div>
                            <div><b>What would be needed:</b></div>
                            <div>
                              <ol>
                                <li>To detect if there is TUBES support,
                                  as Sam mentioned in his first PR [1].
                                  <b>Can someone look into this?</b><br>
                                </li>
                                <li>Do not create TUBES channel when
                                  there is not support. This [2] is just
                                  a hack and the logic works fine, but
                                  it depends on whether or not we can
                                  detect support.</li>
                                <li>Cleanup the Wrapper and make sure
                                  that it is possible to use it locally
                                  in activities.</li>
                              </ol>
                            </div>
                            <div><b>Other improvements that we could
                                land now:</b></div>
                            <div>
                              <ol>
                                <li>Give more flexibility to activities
                                  to use file transfer channels without
                                  having the shell messing with them.
                                  [3]</li>
                              </ol>
                            </div>
                            <div><b>Conclusions:</b></div>
                            <div><br>
                            </div>
                            <div>If we don't do something about this,
                              next Sugar releases will still be broken
                              for collaboration, for more scenarios than
                              necessary.</div>
                            <div><br>
                            </div>
                            <div><br>
                            </div>
                            <div>Let me know what you guys think,<br>
                            </div>
                            <div>Martin.</div>
                            <div><br>
                            </div>
                            <div><b>Refs:</b></div>
                            <div>[1] <a moz-do-not-send="true"
                                href="https://github.com/sugarlabs/sugar-toolkit-gtk3/pull/270"
                                target="_blank">https://github.com/sugarlabs/sugar-toolkit-gtk3/pull/270</a></div>
                            <div>[2] <a moz-do-not-send="true"
href="https://github.com/tchx84/sugar-toolkit-gtk3/commit/bed0ac5f4259ff1669323db26acb27f5d9c8ed1f"
                                target="_blank">https://github.com/tchx84/sugar-toolkit-gtk3/commit/bed0ac5f4259ff1669323db26acb27f5d9c8ed1f</a></div>
                            <div>[3] <a moz-do-not-send="true"
                                href="https://github.com/sugarlabs/sugar/pull/621"
                                target="_blank">https://github.com/sugarlabs/sugar/pull/621</a></div>
                          </div>
                        </blockquote>
                      </div>
                      <br>
                      <br clear="all">
                      <div><br>
                      </div>
                      -- <br>
                      <div>
                        <div dir="ltr">
                          <div>
                            <div dir="ltr">Gonzalo Odiard<br>
                              <br>
                              <div>SugarLabs - Software [for | by]
                                children learning <br>
                              </div>
                            </div>
                          </div>
                        </div>
                      </div>
                    </div>
                    <br>
                    <fieldset></fieldset>
                    <br>
                  </div>
                </div>
                <span class="">
                  <pre>_______________________________________________
Sugar-devel mailing list
<a moz-do-not-send="true" href="mailto:Sugar-devel@lists.sugarlabs.org" target="_blank">Sugar-devel@lists.sugarlabs.org</a>
<a moz-do-not-send="true" href="http://lists.sugarlabs.org/listinfo/sugar-devel" target="_blank">http://lists.sugarlabs.org/listinfo/sugar-devel</a>
</pre>
                </span></blockquote>
              <br>
            </div>
            <br>
            _______________________________________________<br>
            Sugar-devel mailing list<br>
            <a moz-do-not-send="true"
              href="mailto:Sugar-devel@lists.sugarlabs.org">Sugar-devel@lists.sugarlabs.org</a><br>
            <a moz-do-not-send="true"
              href="http://lists.sugarlabs.org/listinfo/sugar-devel"
              rel="noreferrer" target="_blank">http://lists.sugarlabs.org/listinfo/sugar-devel</a><br>
            <br>
          </blockquote>
        </div>
        <br>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
Sugar-devel mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Sugar-devel@lists.sugarlabs.org">Sugar-devel@lists.sugarlabs.org</a>
<a class="moz-txt-link-freetext" href="http://lists.sugarlabs.org/listinfo/sugar-devel">http://lists.sugarlabs.org/listinfo/sugar-devel</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>