Hi,
This coevolution between communities and digital artifacts is the theme
of my PhD research and I really like this line of thought and recent
experiments about curses Text User Interface (even "theoretical" ones).
This idea of enactive knowledge binds doing and knowing, process and
knowledge. Is a reflexive practice, as is pointed eloquently in Sennet's
Artisan. I think that the realm of software is a good place for artisan
practices and enactive knowledge (Sennet has wrote about this also) and
places like this community are a strong evidence of this reflexive
practices.
I remember the prologue of "Squeak: Learning programming with Robots",
where Alan Kay said that Algol60 was important particularly in its
successors and other where he invited to make Smalltalk obsolete. This
is an invitation about evolution, (Kay is a molecular biologist) that
remind us about how ideas can live long in their variations and
descendants. Grafoscopio owes to Jupyter, Smalltalk and Leo a lot, and
is focusing on a different angle/problem while keeping alive and mixing
ideas of all them (and hopefully some original ones).
Enacting the learning practices to bootstrap evolution (reciprocal
modification) process is another point. We do that locally in our Data
Week hackathon+workshop. This list and the upcoming face to face meeting
are needed explorations of that. I think that we're just starting.
Thanks,
Offray
On 19/04/17 05:58, Edward K. Ream wrote:
I've said many times that you don't have to remember much in order to
work on Leo. That's true, but it in some ways its backward and negative.
Yesterday I realized that there is a simpler, more direct, and more
positive way to express what I have been trying to say to devs for so
many years: *Focus on programming process, not knowledge.*
Let's look at two examples.
*Fixing bugs
*
1. Find the code involved using searches, especially cff.
2. Discover what the code does, in detail, using g.trace or g.pdb.
3. Change the offending code.
4. (Optional) Create a new unit test.
5. Run all unit tests.
As with all things, some practice will be required. That /experience
/will give you all the knowledge you need.
*Porting to curses*
1. Create one or more new files from leo/plugins/qt_*.py. These new
files will contain all the gui code called by Leo's core except for an
event loop. See below. Note: plugins/curses.py already exists. Use
as you see fit.
2. Disable all the code, replacing it by g.trace or by "assert False,
g.callers()".
3. Create a new gui in leoApp.py that inits an event loop.
4. Implement the event loop in one of the new files.
5. Run Leo until it starts up without crashing and everything works. Heh.
6. *Very important*: make sure that LeoTree.select handles node
switching properly. Failures can cause loss of data. This is the only
"extra" thing you have to know.
7. Run all unit tests until they all pass.
You could say that this is a high-level view of the port. But I think
the better way to understand it is as a process.
In particular, point 2 requires /no/ knowledge of how Leo's core will
call the new code. You will find that out soon enough as you examine
the crashes :-) There is no need for documentation, protocols, API's
or standards.
*Conclusion*
Processes are incredibly powerful. A single process, evolution,
created (and still creates) all aspects of the biological world,
including humans. A co-evolutionary process molded (and still molds)
humans and their societies. Likewise, simple programming processes
will allow anyone with enough time on their hands to maintain or
extend Leo.
I will leave this world without having finished all that I would like
to do with Leo. As my mother pointed out, that is a blessing. Now,
today, for the first time, I have some confidence that others will be
able to continue the work of improving and extending Leo. Following
the simple programming practices and processes sketched above will
suffice. Any python programmer can start practicing these practices now.
This Aha carries over to any skill or profession. Yes, there can be a
lot of knowledge involved. But more important are the processes of
acquiring, evaluating and using that knowledge. Imo, that's likely the
reason so many children follow in their parent's footsteps. They learn
what their parents do, and in the process learn what they need to know.
Edward
--
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
<mailto:leo-editor+unsubscr...@googlegroups.com>.
To post to this group, send email to leo-editor@googlegroups.com
<mailto: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.
--
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.