Gedit - The Goo's Editor
Gedit with the help of the word completion plugin does what I'm looking for.
Sticking together the ideas behind "The Goo".
After every 500 points of karma++ you now receive a medal!
So I'm modelling conscious thoughts with 'perceptrons' and lower level thoughts with 'sensations' - which are fired automatically by 'receptors'. But at what point do sensations fire a perceptron?
I've decided I need to model "sensations" as well as "perceptrons" but the problem now is what picks up a sensation? Here again psychology offers some helpful terminology: receptor. Just like the receptors in the back of your retina - some sensors fire automatically in response to a stimulus. These low level sensors are important for classifying low level sensations (e.g., ___ ).
I recently painted myself into a corner with the design rule "everything must be a perceptron". The problem is that just like with human perception, events need to bubble up from their source until they reach a threshold and "fire". A perceptron is a perceptual event that has fired - but how do I model the preconditions for a perceptron to fire? I need something smaller than a perceptron.Sensation is the first stage in the biochemical and neurologic events that begins with the impinging upon the receptor cells of a sensory organ, which then leads to a perception.Sensational!
The todo subsystem is at the heart of The Goo. One of our ex-employees recently wrote:"The job is great however I thought being involved in such a large organization there would be better procedures/communication in place! I miss the goo - esp the tutorials. You guys are certainly on the right track there."But there's more to come! After my YAPC::EU presentation, Farley Balasuriya gave me some great feedback and said he'd recently seen similar ideas in 'Getting Things Done' by David Allen. I've since read the book and Allen makes some important suggestions - if the task takes less than 2 minutes Do It now - otherwise Delegate it to someone else or Defer it.
It's a great feeling being in a state of flow. Sometimes you can get into a state of flow with a group of people, a kind of 'group flow'. This is where the team is working well and everyone is excitedly making progress while the technology is supporting their communication and ability to stay productive. I've been watching developments in the Perl6 Pugs project and the IRC log shows moments when the group hit productivity gold and achieved group flow.
I'm reading Marvin Minsky's, "The Emotion Machine" and he makes a strong case for the role of "censors" in expert cognition.
I'm having fun designing how to make the ToDo part of The Goo flow.
Game designers know implicitly that "flow" is the mental state they want their players to be in: happy, productive and engrossed in their game.
A goal of The Goo is to help stick Things together and for a long time I've been wanting to add all my shell commands into The Goo. Thanks to some quick help from London.pm I can now capture all my bash shell history with the following ~/.bashrc setting:
In the last month over 70,000 perceptrons have flowed into The Goo.

The next phase is to capture the context I'm in by taking a snapshot of the perceptrons and actitrons in my buffer. See the thin green lines on top of the stick figure above. The perceptrons that get through will be appended to the "tail" of the trail as time goes on.
I've been wrestling with the problem of defining the file locations where The Goo will look to stick things together. I first implemented a monolithic config file, but although this gives fine-grained control over where The Goo should look I often find myself stopping and adding new locations as I move into new areas of the filesystem - where possible I want to avoid this feeling of going backwards.
Likelihood of event happening:
Never Likely Certain
1 2 3 4 5 6 7
Importance/Impact of event
Not Important Somewhat Important Very Important
1 2 3 4 5 6 7
http://goo.localhost/r?arg1=tn7rc
shell> goo r tn7rc
shell> goo resolve tn7rc
shell> goo p HelloWorld.pm
http://goo.localhost/profile?arg1=HelloWorld.pm
# imaging you're editing some code
use Hello::World; <~t # you want to jump to the tests for this module
use Template::Simple; <~p # you want to profile this module
# use Uri Guttman's sublime Template::Simple
Template::Simple->new->render("complicated.tpl", $tokens); <~p # jump to the profile of complicated.tpl
My::Logger::write("/tmp/look.log", $message); <~t # jump to the tail of look.log
To: nigel@turbo10.com
CC: goo@somedomain.com
Subject: resolve~> tn5rc


We need to log future events into The Goo "When is that conference coming up? When does registration close?"
This means I need a separate form for updating the locations of Things in the file system:
Cool. Now I don't have to bother about remembering where something is located - no more tiresome directory traversals - up, down, up, up, down. The Goo automatically looks in these locations when it sticks Things together.
set protocol.user.goo.unix = "/home/search/dev/goo %u"I now have Goo URLs! This means if I want to edit a given method I can use a URL like this:
set protocol.user.goo.unix-xwin = "/home/search/dev/goo %u"
goo://?method=someMethodDeepInTheModule&filename=/tmp/MyModule.pmClicking on this URL launches an external text editor (e.g., nano, vi, emacs etc), starting at the appropriate line and means I can edit the file in place and jump back out again - quick!
#!/bin/bashThis means the Goo can be fully integrated with a graphical browser (Firefox) and a console based browser (Elinks) too.
# launch the editor in a new window
/usr/bin/konsole -e /home/search/dev/goo "$1"

The motivations for this are: