​​
On Thu, Feb 9, 2017 at 10:55 AM, Edward K. Ream <edream...@gmail.com> wrote:

​> ​
The feeling is that good docs may be akin to small chunks of code
​...​
> I'm pretty sure there is a breakthrough nearby.

Yesterday I started work on "real" slides. In the process, I completed
debugging of demo.py, as explained here
<https://groups.google.com/d/msg/leo-editor/GJLejpPnSGk/CGOCMrMhCAAJ>.

Hmm. The rest of this post is pretty much thinking out loud.  You could
call it an Engineering Notebook post. Ignore it if you like, but if you
read on you will be in on the *exact moment* at which an important new Aha
appeared.

Note: I wrote this next paragraph *before* the Aha appeared.

Imo, breakthroughs aren't real unless you can describe *exactly the instant*
the Aha occurred. No, you don't have to remember the time at date at which
it happened, but you have to be able to clearly describe the moment.
Understand?

At some point in the last day or so, the phrase *executable docs* popped
into my head. Is that phrase itself is a breakthrough?  I'm not sure. [No
it's not, but it's close].

What *is* clear is that I've never before had so much energy writing docs,
or really, writing anything. Clearly, the "less said the better" principle
is a key ingredient. And so is intermixing words with example code. It's
kinda like using FAQ style for *everything*.

Another thing that is clear to me now.  Composing script lists from a tree
of nodes, each node of which can contain multiple demo scripts, is a *huge*
breakthrough.  And it's one of the strengths of org-mode.

Clearly, the phrase "executable documentation" perfectly describes the
script tree that drives a demonstration.  There is so much energy involved:

1. It's now dead easy to create and edit nodes.
2. Each node naturally describes one slide, or one thought.
3. Setup and teardown methods eliminate repetitious code from nodes.
4. Testing is instantaneous. Just run the demo.

As I write this, I see that it might be useful to associate names with
slides.  That way, we could tell demo.start to start with the slide of a
given name.

*The big question*

Debugging demo.py has been great fun. And the ideas keep coming, as just
mentioned.

But the big question is the following: *will demo.py help me to create
better tutorials?*

I think the answer is yes, for several reasons.

1. It's *much* easier to create callouts with demo.py than with Camtasia.
As a result, I can create hundreds or thousands of experimental slides to
see what works. Now, I can focus on *what* I want to say, without
production overhead.

2. The new demo.py plugin does not interfere with the rest Leo in *any*
way. This means that demo scripts can automate *all* aspects of Leo's
operation. In this regard, it's unlikely that any subtle bugs exists in the
Demo class. The reason is simple: all the code is dead simple.

3 As a result, I can attempt things in demos that would have been out of
the question previously.  Demos can show how I really work, in real time,
or in "slow motion". I can revise them endlessly until they *work* just
exactly as I want.* And that's the Aha I have been looking for!*

The Aha is this: writing demos is about getting Leo to *work* (as
controlled by the demo script) in a way that *shows* something properly.
The magic word is "works".

In other words, demos don't *tell *about Leo, they *show *how Leo *works*.
There is a debugging process involved, both mental and operational. As a
result demos have exactly the same energy level as writing a program,
because I *am* writing a program.

Ok, now that I see the Aha, there is one more point to make:

4. Improving a video with even a good tool like Camtasia Studio is a
soul-draining endeavor.  It's just way too much work to futz with
post-production details.  In contrast, creating demos with demo.py involves
only *pre-production* work. To revise a video, just revise the demo script,
and re-record.  That's *all*. Notice, there is no real temptation to record
a video at all until everything "just works".

My task is now clear.  Create demos that* show Leo in action*!

Edward

P.S. Last night another thought appeared. It may have had something to do
with the Aha just described.

The thought is that we don't need (or want) fancy arrows in a demo.
Instead, the demo should *itself *be an animation that highlights what we
want to explain. It's close to the Aha, but isn't it.

EKR

-- 
You received this message because you are subscribed to the Google Groups 
"leo-editor" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to leo-editor+unsubscr...@googlegroups.com.
To post to this group, send email to leo-editor@googlegroups.com.
Visit this group at https://groups.google.com/group/leo-editor.
For more options, visit https://groups.google.com/d/optout.

Reply via email to