<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Mar 24, 2017 at 4:26 AM, Lionel Laské <span dir="ltr"><<a href="mailto:lionel.laske@gmail.com" target="_blank">lionel.laske@gmail.com</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"><br><div>You will not lost anything in your TurtleJS repo with copy/replace, it's just that all TurtleJS contributions will be diluted once in Sugarizer repo. </div><div>But you're right, credits are important it's why I give specific credits in my announcements to all contributors when a new version is released.</div><div><br></div><div>Regarding submodules, here some issues I'm seeing:</div><div>- Some of my contributors never integrate my PR in their own activity so it means that this activity will not work correctly if directly pointed as submodule.</div></div></blockquote><div><br></div><div>This is perhaps counterbalanced by the fact that you never sent PRs upstream for some of your local changes.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>- Some of my contributors didn't create a specific repository for their activities repository. They directly work on Sugarizer forks and put their activities inside. So of course submodules will not work for these contributions.</div></div></blockquote><div><br></div><div>In that case, there is no issue since Sugarizer is master.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>- Not everyone is familiar with git. Some of my contributors just get full source to test Sugarizer and start contribution. I don't want to force people to enter in git complexity (believe my or not I know people that never heard of git ;-) to let them play or contribute to Sugarizer.</div></div></blockquote><div><br></div><div>I am not sure that submodules add a lot of complexity from the contributor POV. They just need to know where the source repo lives. Perhaps you can add that information. </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><br></div><div>In theory, submodules could solve things if fully understand and well use by everyone. But in theory I should have sent you PR to integrate changes needs in TurtleJS for Sugarizer integration. So in theory we should not have this discussion today :-)</div></div></blockquote><div><br></div><div>I am not sure that your having sent me PRs solves all of the problems we have uncovered. I still don't know how to send you a PR for updating Turtle w/o losing all of the history, which in addition to not giving credit to the many contributors, makes maintenance more difficult. If one were to try to debug Turtle from the Sugarizer fork, you would not be able to chase down the changes that perhaps led to a bug.</div><div><br></div><div>You are the maintainer. I defer to you. But I am at a loss as to how to proceed.</div><div><br></div><div>regards.</div><div><br></div><div>-walter </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><span class="HOEnZb"><font color="#888888"><div><br></div><div>          Lionel.</div><div><br></div><div><br></div><div><br></div></font></span></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">2017-03-23 23:35 GMT+01:00 Walter Bender <span dir="ltr"><<a href="mailto:walter.bender@gmail.com" target="_blank">walter.bender@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote"><span>On Thu, Mar 23, 2017 at 4:40 PM, Lionel Laské <span dir="ltr"><<a href="mailto:lionel.laske@gmail.com" target="_blank">lionel.laske@gmail.com</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">Ah okay :-)<div><br></div><div>I don't think the merge between those repositories is possible using git.</div><div>Personally, I just copy/replace all files in the activity repository.</div><div>git gives updated files so it's easy to see changes or to do a PR.</div></div></blockquote><div><br></div></span><div>As someone who is trying to cultivate contributions to my projects, I think that your copy and replace method of managing updates is problematic since the history is lost.  </div><span><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><br></div><div>Regarding git submodules, why not but it has drawbacks too.</div></div></blockquote><div><br></div></span><div>Would be good to know what issues submodules present.</div><div><div class="m_-3962762637257654985h5"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>I will think about it.</div><span class="m_-3962762637257654985m_8951888003935931877HOEnZb"><font color="#888888"><div><br></div><div>                 Lionel.</div><div><br></div></font></span></div><div class="m_-3962762637257654985m_8951888003935931877HOEnZb"><div class="m_-3962762637257654985m_8951888003935931877h5"><div class="gmail_extra"><br><div class="gmail_quote">2017-03-23 18:53 GMT+01:00 Walter Bender <span dir="ltr"><<a href="mailto:walter.bender@gmail.com" target="_blank">walter.bender@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Opps. I meant:<div><br></div><div><a href="https://github.com/walterbender/turtleblocksjs" target="_blank">https://github.com/walterbende<wbr>r/turtleblocksjs</a><span class="m_-3962762637257654985m_8951888003935931877m_-1823533503500680208HOEnZb"><font color="#888888"><br></font></span></div><span class="m_-3962762637257654985m_8951888003935931877m_-1823533503500680208HOEnZb"><font color="#888888"><div><br></div><div>-walter</div></font></span></div><div class="m_-3962762637257654985m_8951888003935931877m_-1823533503500680208HOEnZb"><div class="m_-3962762637257654985m_8951888003935931877m_-1823533503500680208h5"><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Mar 23, 2017 at 1:50 PM, Lionel Laské <span dir="ltr"><<a href="mailto:lionel.laske@gmail.com" target="_blank">lionel.laske@gmail.com</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">So Musicblocks [1] is the same thing than TurtleBlockJS [2] ?<div>And you want to replace the second by the first ?</div><div>Where did you apply missing commits ? in Musicblocks ? in TurtleBlockJS ?<br><div><div><br></div><div><br></div><div>[1] <a href="https://github.com/walterbender/musicblocks" style="font-size:12.8px" target="_blank">https://github.com/walterb<wbr>ender/musicblocks</a></div><div>[2] <a href="https://github.com/walterbender/turtleblocksjs" target="_blank">https://github.com/walterb<wbr>ender/turtleblocksjs</a> </div></div></div></div><div class="m_-3962762637257654985m_8951888003935931877m_-1823533503500680208m_6796917934027498919HOEnZb"><div class="m_-3962762637257654985m_8951888003935931877m_-1823533503500680208m_6796917934027498919h5"><div class="gmail_extra"><br><div class="gmail_quote">2017-03-23 18:38 GMT+01:00 Walter Bender <span dir="ltr"><<a href="mailto:walter.bender@gmail.com" target="_blank">walter.bender@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">The current master [1] should be what you need. I created a fork of Sugarizer [2] but I don't know how to properly merge changes in [1] into [3] so that I can create a PR for you.<div><br></div><div>-walter<br><div><br></div><div><br></div><div>[1] <a href="https://github.com/walterbender/musicblocks" target="_blank">https://github.com/walterbende<wbr>r/musicblocks</a></div><div>[2] <a href="https://github.com/walterbender/sugarizer" target="_blank">https://github.com/walterbende<wbr>r/sugarizer</a></div><div>[3] <a href="https://github.com/walterbender/sugarizer/tree/master/activities/TurtleBlocksJS.activity" target="_blank">https://github.com/walterb<wbr>ender/sugarizer/tree/master/ac<wbr>tivities/TurtleBlocksJS.activi<wbr>ty</a></div></div></div><div class="m_-3962762637257654985m_8951888003935931877m_-1823533503500680208m_6796917934027498919m_-4602102213006928930HOEnZb"><div class="m_-3962762637257654985m_8951888003935931877m_-1823533503500680208m_6796917934027498919m_-4602102213006928930h5"><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Mar 23, 2017 at 1:31 PM, Lionel Laské <span dir="ltr"><<a href="mailto:lionel.laske@gmail.com" target="_blank">lionel.laske@gmail.com</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">Good news. <div>Sorry I'm not a git expert. Not even sure to understand your question :-)</div><div>But if you point me the branch that I need to get in TurtleJS, I will do the integration of the new version in Sugarizer.</div><span class="m_-3962762637257654985m_8951888003935931877m_-1823533503500680208m_6796917934027498919m_-4602102213006928930m_-1701446793668881428HOEnZb"><font color="#888888"><div><br></div><div>        Lionel.</div><div><br></div></font></span></div><div class="m_-3962762637257654985m_8951888003935931877m_-1823533503500680208m_6796917934027498919m_-4602102213006928930m_-1701446793668881428HOEnZb"><div class="m_-3962762637257654985m_8951888003935931877m_-1823533503500680208m_6796917934027498919m_-4602102213006928930m_-1701446793668881428h5"><div class="gmail_extra"><br><div class="gmail_quote">2017-03-23 0:58 GMT+01:00 Walter Bender <span dir="ltr"><<a href="mailto:walter.bender@gmail.com" target="_blank">walter.bender@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">OK. I have managed to find all your changes (5-6 commits scattered throughout the code) and apply them to my current master. Git question: How do apply all of my commits on my master back to my fork of your fork so I can make the pull request?<span class="m_-3962762637257654985m_8951888003935931877m_-1823533503500680208m_6796917934027498919m_-4602102213006928930m_-1701446793668881428m_6550674549463936583HOEnZb"><font color="#888888"><div><br></div></font></span><div><span class="m_-3962762637257654985m_8951888003935931877m_-1823533503500680208m_6796917934027498919m_-4602102213006928930m_-1701446793668881428m_6550674549463936583HOEnZb"><font color="#888888">-walter</font></span><div><div class="m_-3962762637257654985m_8951888003935931877m_-1823533503500680208m_6796917934027498919m_-4602102213006928930m_-1701446793668881428m_6550674549463936583h5"><br><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Mar 22, 2017 at 5:48 PM, Lionel Laské <span dir="ltr"><<a href="mailto:lionel.laske@gmail.com" target="_blank">lionel.laske@gmail.com</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"><br><div>I don't remember that I've done change in TurtleJS recently.</div><div>In my mind the last thing changed was the integration done by Michaël two years ago (specifically the Stop button).</div><div>If you've got it and if TurtleJS works on Chrome, Firefox, Safari and EDGE, I'm confident that it will work on Sugarizer.</div><span class="m_-3962762637257654985m_8951888003935931877m_-1823533503500680208m_6796917934027498919m_-4602102213006928930m_-1701446793668881428m_6550674549463936583m_7125385958645469336m_1238554532713120860HOEnZb"><font color="#888888"><div><br></div><div>         Lionel.</div><div><br></div></font></span></div><div class="m_-3962762637257654985m_8951888003935931877m_-1823533503500680208m_6796917934027498919m_-4602102213006928930m_-1701446793668881428m_6550674549463936583m_7125385958645469336m_1238554532713120860HOEnZb"><div class="m_-3962762637257654985m_8951888003935931877m_-1823533503500680208m_6796917934027498919m_-4602102213006928930m_-1701446793668881428m_6550674549463936583m_7125385958645469336m_1238554532713120860h5"><div class="gmail_extra"><br><div class="gmail_quote">2017-03-22 22:35 GMT+01:00 Walter Bender <span dir="ltr"><<a href="mailto:walter.bender@gmail.com" target="_blank">walter.bender@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote"><span>On Wed, Mar 22, 2017 at 4:56 PM, Lionel Laské <span dir="ltr"><<a href="mailto:lionel.laske@gmail.com" target="_blank">lionel.laske@gmail.com</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><br></div><div>You're right Sugarizer include a set of activities because my top priority is to simplify deployment and testing. So put activities outside of the Sugarizer repository would be too complex.</div><div><br></div><div>BTW each activity author should maintain its own repository for this activity. For example, the Abacus activity is maintain be Eon here [1].</div><div>In Sugarizer, each activity is store in its own subdirectory under the Sugarizer "activities" directory. This subdirectory is just a copy of the activity repository content. If an activity change, the author has just to recopy all files in its own Sugarizer subdirectory then send to me a pull request (to the dev branch).</div><div>Conversely, if for compatibility reason I need to change something in an activity, I sent myself a PR to the  author repository. For example, I've slightly adapted Abacus for Android/iOS so I sent a PR to Eon here </div></div></blockquote><div><br></div></span><div>Good in theory, but it appears that there are commits to Turtle that you never pushed back to me, so I am stuck. That is what triggered my question about process.</div><span class="m_-3962762637257654985m_8951888003935931877m_-1823533503500680208m_6796917934027498919m_-4602102213006928930m_-1701446793668881428m_6550674549463936583m_7125385958645469336m_1238554532713120860m_-4834474159648690347HOEnZb"><font color="#888888"><div><br></div><div>-walter</div><div> </div></font></span><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="m_-3962762637257654985m_8951888003935931877m_-1823533503500680208m_6796917934027498919m_-4602102213006928930m_-1701446793668881428m_6550674549463936583m_7125385958645469336m_1238554532713120860m_-4834474159648690347h5"><div dir="ltr"><div>[2]. So at end both repositories are synced.</div><div><br></div><div>I will write this rules in the README so it will be clear.</div><div><br></div><div>         Lionel.</div><div><br></div><div><br></div><div>[1] <a href="https://github.com/eohomegrownapps/abacus-activity" target="_blank">https://github.com/eohomeg<wbr>rownapps/abacus-activity</a></div><div>[2] <a href="https://github.com/eohomegrownapps/abacus-activity/pull/1#event-1008961890" target="_blank">https://github.com/eohomeg<wbr>rownapps/abacus-activity/pull/<wbr>1#event-1008961890</a></div><div><br></div><div><div class="gmail_extra"><br><div class="gmail_quote">2017-03-21 23:23 GMT+01:00  <span dir="ltr"><<a href="mailto:sugar-devel-request@lists.sugarlabs.org" target="_blank">sugar-devel-request@lists.sug<wbr>arlabs.org</a>></span>:<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Date: Tue, 21 Mar 2017 18:16:13 -0400<br>
From: Walter Bender <<a href="mailto:walter.bender@gmail.com" target="_blank">walter.bender@gmail.com</a>><br>
To: Lionel Laské <<a href="mailto:lionel@olpc-france.org" target="_blank">lionel@olpc-france.org</a>><br>
Cc: Sugar-dev Devel <<a href="mailto:sugar-devel@lists.sugarlabs.org" target="_blank">sugar-devel@lists.sugarlabs.o<wbr>rg</a>>,  "Community<br>
        Support Volunteers -- who help respond to help AT <a href="http://laptop.org" rel="noreferrer" target="_blank">laptop.org</a>"<br>
        <<a href="mailto:support-gang@lists.laptop.org" target="_blank">support-gang@lists.laptop.org</a><wbr>>, iaep <<a href="mailto:iaep@lists.sugarlabs.org" target="_blank">iaep@lists.sugarlabs.org</a>><br>
Subject: Re: [Sugar-devel] Sugarizer dev platform is now open<br>
Message-ID:<br>
        <CADf7C8uEUd6nMs_-fShGXZaqpwCu<wbr>mKUpMP37x96U=<a href="mailto:N5kMO9gnA@mail.gmail.com" target="_blank">N5kMO9gnA@mail.gm<wbr>ail.com</a>><br>
Content-Type: text/plain; charset="utf-8"<div><div class="m_-3962762637257654985m_8951888003935931877m_-1823533503500680208m_6796917934027498919m_-4602102213006928930m_-1701446793668881428m_6550674549463936583m_7125385958645469336m_1238554532713120860m_-4834474159648690347m_-6831462549573076311h5"><br>
<br>
I don't understand what is your model for maintaining activities. It seems<br>
everything is on one big repo and that you have scattershot changes in<br>
various activities, which are not sent to the upstream masters. How can<br>
make a PR to give you the latest Turtle Blocks bits without having to sort<br>
through your commit history to find all of your changes? Seems to put an<br>
extra burden on activity authors. What am I not understanding? Is there any<br>
documentation as to how you want activity authors to keep in sync with<br>
Sugarizer changes?<br>
<br>
-walter<br>
<br>
On Mon, Mar 20, 2017 at 5:48 PM, Lionel Laské <<a href="mailto:lionel.laske@gmail.com" target="_blank">lionel.laske@gmail.com</a>><br>
wrote:<br>
<br>
><br>
> Hi all,<br>
><br>
><br>
><br>
> Currently, Sugarizer is released about one time by year.<br>
><br>
> I know that it's slow but it take us lot of time to test and package new<br>
> features and activities on all supported platforms.<br>
><br>
><br>
><br>
> To give you  a faster view of change in Sugarizer, I've decided to open a<br>
> new server dedicated to the development branch.<br>
><br>
><br>
><br>
> So, the branch "master" [1] is now the stable and ready-to-production<br>
> version and could be tested on <a href="http://try.sugarizer.org" rel="noreferrer" target="_blank">http://try.sugarizer.org</a><br>
><br>
> And the branch "dev" [2] is now the development version (*) - and<br>
> potentially unstable - and could be tested on the new<br>
> <a href="http://dev.sugarizer.org" rel="noreferrer" target="_blank">http://dev.sugarizer.org</a><br>
><br>
><br>
><br>
> If you're curious you could discover today on the dev branch: the great<br>
> ColorMyWorld activity from Charles Cossé and the nice port of XOEditor,<br>
> Reflection and Abacus activities by the GCI student Euan Ong.<br>
><br>
><br>
><br>
> Sugarizer is growing every day: stay in touch !<br>
><br>
><br>
><br>
> Best regards from France.<br>
><br>
><br>
><br>
>           Lionel.<br>
><br>
><br>
><br>
> [1] <a href="https://github.com/llaske/sugarizer/tree/master" rel="noreferrer" target="_blank">https://github.com/llaske/suga<wbr>rizer/tree/master</a><br>
><br>
> [2] <a href="https://github.com/llaske/sugarizer/tree/dev" rel="noreferrer" target="_blank">https://github.com/llaske/suga<wbr>rizer/tree/dev</a><br>
><br>
> (*) So if you're a developer and want to contribute to Sugarizer, send<br>
> your PR to the dev branch<br>
><br></div></div></blockquote></div></div></div></div>
<br></div></div><span>______________________________<wbr>_________________<br>
Sugar-devel mailing list<br>
<a href="mailto:Sugar-devel@lists.sugarlabs.org" target="_blank">Sugar-devel@lists.sugarlabs.or<wbr>g</a><br>
<a href="http://lists.sugarlabs.org/listinfo/sugar-devel" rel="noreferrer" target="_blank">http://lists.sugarlabs.org/lis<wbr>tinfo/sugar-devel</a><br>
<br></span></blockquote></div><span><br><br clear="all"><div><br></div>-- <br><div class="m_-3962762637257654985m_8951888003935931877m_-1823533503500680208m_6796917934027498919m_-4602102213006928930m_-1701446793668881428m_6550674549463936583m_7125385958645469336m_1238554532713120860m_-4834474159648690347m_-6831462549573076311gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><font><font>Walter Bender</font></font><br><font><font>Sugar Labs</font></font></div><div><font><a href="http://www.sugarlabs.org" target="_blank"><font>http://www.sugarlabs.org</font></a></font><br><a href="http://www.sugarlabs.org" target="_blank"><font></font></a><br></div></div></div>
</span></div></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="m_-3962762637257654985m_8951888003935931877m_-1823533503500680208m_6796917934027498919m_-4602102213006928930m_-1701446793668881428m_6550674549463936583m_7125385958645469336m_1238554532713120860gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><font><font>Walter Bender</font></font><br><font><font>Sugar Labs</font></font></div><div><font><a href="http://www.sugarlabs.org" target="_blank"><font>http://www.sugarlabs.org</font></a></font><br><a href="http://www.sugarlabs.org" target="_blank"><font></font></a><br></div></div></div>
</div></div></div></div></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="m_-3962762637257654985m_8951888003935931877m_-1823533503500680208m_6796917934027498919m_-4602102213006928930m_-1701446793668881428gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><font><font>Walter Bender</font></font><br><font><font>Sugar Labs</font></font></div><div><font><a href="http://www.sugarlabs.org" target="_blank"><font>http://www.sugarlabs.org</font></a></font><br><a href="http://www.sugarlabs.org" target="_blank"><font></font></a><br></div></div></div>
</div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="m_-3962762637257654985m_8951888003935931877m_-1823533503500680208m_6796917934027498919gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><font><font>Walter Bender</font></font><br><font><font>Sugar Labs</font></font></div><div><font><a href="http://www.sugarlabs.org" target="_blank"><font>http://www.sugarlabs.org</font></a></font><br><a href="http://www.sugarlabs.org" target="_blank"><font></font></a><br></div></div></div>
</div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div></div></div><div><div class="m_-3962762637257654985h5"><br><br clear="all"><div><br></div>-- <br><div class="m_-3962762637257654985m_8951888003935931877gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><font><font>Walter Bender</font></font><br><font><font>Sugar Labs</font></font></div><div><font><a href="http://www.sugarlabs.org" target="_blank"><font>http://www.sugarlabs.org</font></a></font><br><a href="http://www.sugarlabs.org" target="_blank"><font></font></a><br></div></div></div>
</div></div></div></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><font><font>Walter Bender</font></font><br><font><font>Sugar Labs</font></font></div><div><font><a href="http://www.sugarlabs.org" target="_blank"><font>http://www.sugarlabs.org</font></a></font><br><a href="http://www.sugarlabs.org" target="_blank"><font></font></a><br></div></div></div>
</div></div>