<html>
<head>
<meta content="text/html; charset=windows-1252"
http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#FFFFFF">
Hi, Sam<br>
<br>
What is our contextual help system? Do you mean right-click popups?
<br>
<br>
Your proposal mentions the need for a simple trigger. The help
button (or a sub-option) should invoke the class specifying a
particular onboard 'tutorial'. <br>
For Python that seems very straightforward.<br>
<br>
Yes, there is the initial 'onboarding' prerequisite that enables
the user to use your onboarding: opening the laptop, powering up,
hitting keyboard keys with the end of the fingers (knuckles bent),
knowing where the trackpad and mouse keys are, knowing that moving
one's finger on the trackpad moves a cursor, what is a cursor and so
on). I have seen XOs in schools where the participants have never
even seen a light-switch. So yes, they would also need to know how
to click on a help button to start an 'onboarding' tutorial.
However, once that is understood, it becomes easy to build tutorials
using the same underlying software so that deployments and community
members can help. <br>
<br>
Onboarding for an editor involves knowing how to open a new document
or restore an existing one. Once some text is available for editing,
knowing how to set the focus by moving the cursor, knowing how to
insert and delete text. Many beginners have trouble knowing that the
computer performs editing actions untile the enter key is pressed. <br>
<br>
If you provide a python implementation with methods, then json or
some other technique could be used to invoke those methods. It might
be useful to look <br>
at your scenarios and how they might be described as data:<br>
<br>
{'hotspot':'Record.activity','popup':'recordpopup.png','click':'Record.activity',
'expect':'recordmainpage.png'}<br>
<br>
Whether you use json is immaterial. However, an approach going
through your scenarios in some pseudocode (imaginig you are
developing an interpreter) can help you imagine what methods will be
needed, what will need to be shown on popups, and how you will be
able to test for completion.<br>
<br>
Tony<br>
<br>
<div class="moz-cite-prefix">On 12/30/2015 12:42 PM, Sam P. wrote:<br>
</div>
<blockquote
cite="mid:CACVKbrUYqos5EiXgRM4iMgc4oVRVB4OB7rZCp2e8QxVkCk=4qQ@mail.gmail.com"
type="cite">
<div dir="ltr">Hi Tony,
<div><br>
</div>
<div>Thank you for the comments on the proposal.</div>
<div><br>
</div>
<div>(For context, by onboarding I refer to the users first run
experience. Similar to [1]. Specifically something that
helps them understand the basics of sugar)<br>
<div><br>
</div>
<div>From an implementation perspective it is important as you
note to bind to widgets rather than hard coded positions and
recognise when the user completes the task. I think from
that perspective, it would be very complex to use a JSON
file. I would much prefer to have a singleton class
"Onboarder" (or whatever) which would have 2 main methods.
"add_hotspot_over(hotspot, widget)" and simmilar for other
places that hotspots are placed over and
"signal_hotspot_completed(hotspot)" which signals that a
hotspot has been completed. There would then be a separate
list of hotspots and their content. Having more of the
implementation in python in will give this flexability.</div>
</div>
<div><br>
</div>
<div>I feel that adding lots of different tutorial in different
places almost conflicts with our contextual help system (the
help window that pops up). I think that adding a small
initial explanation/tutorial is a different issue and targets
a different need. Does this need to be added to the
onboarding though (how to open the help)?</div>
<div><br>
</div>
<div>Supporting the F6 frame activation could be added, I will
mock something up tomorrow.</div>
<div><br>
</div>
<div>Earlier you mentioned that design should use more icons
than text. I think that I could show screen shots of the
expected result. However, sometimes I personally find icons
can be more vauge than text for explaining ideas, and I
believe that some users may feel a similar way. Therefore I
believe that the supplementary copy could be helpful for many
users. However, I you point out the issue of translation
loads. Should the copy be hidden if text is not available in
the same language?</div>
<div><br>
</div>
<div>Thanks,</div>
<div>Sam</div>
<div><br>
</div>
<div>[1] <a moz-do-not-send="true"
href="https://useronboard.com" target="_blank">https://useronboard.com</a></div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Wed, Dec 30, 2015 at 6:24 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">Some
thoughts:<br>
<br>
Trigger this with the help button (see TurtleBlocks). If
there is already a help, make the help button show options:<br>
help<br>
tutorial: how to launch an activity<br>
<br>
where tutorial is the Onboarding implementation. It should
be possible to have more than one tutorial with some
description of the purpose.<br>
<br>
Add a help button to the left of the home view button on the
home view and the list view (list view help gives tutorial
on list view.<br>
Add a help button to the right upper corner of the frame.<br>
Add a help button on the bottom bar of the Journal view
(away from the mount icons but not in the far corner to
avoid conflict with the frame)<br>
Add a help button on the top bar of the neighborhood and
group views (to the right, away from the corner)<br>
<br>
Implement the system so that activity author/maintainers can
create their own help button tutorials.<br>
<br>
Use a list of jsons to define the steps in the tutorial:<br>
[{'hotspot':'x,y,w,h','click':test for completion,....}<br>
<br>
On the home view, at the deployments I support, pressing the
alt key makes 'always start new' the default. This makes it
easier to separate a<br>
deliberate attempt to resume a task (from the Journal) from
a new task (from the Home view). With the above approach,
the home view tutorial can be<br>
easily modified.<br>
<br>
For the frame, the corners are disabled so that the frame is
only available from the frame key. This is essential for the
original XO-1 keyboard since moving the cursor to stop an
activity almost invariably covers the button with the frame.
It would be nice if the tutorial implementation had a way to
show a keyboard hotspot (e.g. a on-screen keyboard) to show
how to access various views from the keyboard.<br>
<br>
In the context of the proposal:<br>
<br>
Onboarding goals should be supported by the
implementation but not limited.<br>
<br>
User flow: user clicks on help button and clicks on
tutorial (if more than one option).<br>
home view tutorial shows how to launch
an activity - but an activity has it's own help button and
tutorial<br>
<br>
When a user completes an onboarding task, the window should
flash through a huge tick, then fade away.<br>
a new hotspot appears to set up the next
task.<br>
<br>
The image in the popup could be a screen shot showing the
expected result of the previous task.<br>
<br>
So, in general, the tutorial definition should be separated
from the tutorial mechanism.<br>
<br>
I suspect the 'hotspot' implementation to be relatively easy
but the tricky code will be to determine whether the task
was executed correctly.<br>
<br>
The hotspot mechanism must be able to handle changes.
Suppose that a home view tutorial sets a task to launch
'Record' by placing a hotspot around the Record icon. The
mechanism needs to find where the Record icon is on the home
view, not just position it where Record shows in a<br>
freshly-installed Home View. The user (or deployment) could
have added or removed activities from favorites.<span
class="HOEnZb"><font color="#888888"><br>
<br>
Tony</font></span><span class="im HOEnZb"><br>
<br>
On 12/29/2015 03:55 AM, Tony Anderson wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
The important thing is Sam's proposal and its
implementation.<br>
<br>
Two considerations:<br>
<br>
1) Make the implementation scriptable as much as
possible so that new help scenarios can be easily
implemented in the wild.<br>
2) Minimize text - emphasize icons. For example, a
standard 'click' icon. This reduces the stress of making
translations.<br>
<br>
Tony <br>
</blockquote>
<br>
</span>
<div class="HOEnZb">
<div class="h5">
_______________________________________________<br>
Sugar-devel mailing list<br>
<a moz-do-not-send="true"
href="mailto:Sugar-devel@lists.sugarlabs.org"
target="_blank">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>
</div>
</div>
</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>