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.

Reply via email to