Re: [fonc] Final STEP progress report abandoned?

2013-09-09 Thread Chris Warburton
Alan Kay alan.n...@yahoo.com writes:

 When I said even scientists go against their training I was also
 pointing out really deep problems in humanity's attempts at thinking
 (we are quite terrible thinkers!).

I think a quite modest improvement would be more powerful
calculators. For example, we already augment our arithmetic when we go
shopping, why don't we augment our statistical ability when making
judgements? We can be bad at estimating probabilities, but we're far
worse at combining them correctly; for example the common error of not
taking into account population bias when interpreting test results[1].

If we carried around a statistical calculator app with a simple UI
(eg. graphs, tiles and sliders; not RPN) then we can enter numbers
individually and have the device carry out the tricky combinations for
us. When we don't need to estimate the numbers, eg. if they're given in
a paper, report, magazine, etc. then a machine-readable representation
like a barcode could be given alongside. This would allow us to intuit
the values graphically, rather than slipping up on our parsing of the
representation.

[1] http://yudkowsky.net/rational/bayes/

Cheers,
Chris
___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


[fonc] Open source tools for sensemaking and augmenting human thinking

2013-09-09 Thread Paul D. Fernhout

Alan-

Thomas Watson of IBM said:
http://www-03.ibm.com/ibm/history/multimedia/think_trans.html
And we must study through reading, listening, discussing, observing and 
thinking. We must not neglect any one of those ways of study. The 
trouble with most of us is that we fall down on the latter -- thinking 
-- because it's hard work for people to think, And, as Dr. Nicholas 
Murray Butler said recently, 'all of the problems of the world could be 
settled easily if men were only willing to think.' 


Whether that last statement is true, the idea of better tools to think 
with has been a dream of many since Memex and Augment. I've long wanted 
some sort of tool that would run on top of Google search results to try 
to tease out, say, some sort of concept map to understand the landscape 
of ideas related to a search, and then further, to integrate and score 
and organize search results as I work my way through them. You could 
perhaps do something like that by hand with something like Evernote and 
a web clipping utility, but that would just be a shadow of what I'm 
imagining as full support for sensemaking about web content. I agree 
such tools for improving human reasoning are important -- especially for 
my general goal of helping people to see how it would be better to use 
technologies of abundance like computers from an abundance-oriented 
mindset rather than a scarcity-based mindset. Below are some general 
thoughts on that, including links about stuff I've worked towards for 
that end.


--Paul Fernhout

 Rambling thoughts on sensemaking and augmenting human thinking

If you look around, you will find versions of such tools have already 
been developed as proprietary works at the costs of billions of dollars 
of tax-payer dollars over the past decade or two. That work was done 
mostly by the Defense/Intelligence community and the industries that 
surround it, but also some by other groups who have specific needs in 
business, education, and so on.


My wife and I have worked towards such thinking tools, mostly from a 
narrative perspective intended so get decision makers to look at issues 
from multiple points of view, although I would like to expand that out 
to include some other things like structured arguments. Some previous 
systems we contributed core parts to an the Cognitive Edge Sensemaker 
Suite and Singapore's RAHS (Risk Assessment and Horizon Scanning system):

http://www.sensemaker-suite.com/smsite/index.gsp
http://app.rahs.gov.sg/public/www/home.aspx

We tried to get Cognitive Edge to open source those tools, but not much 
luck. However, they are pretty much all based on ideas my wife found 
looking through the literature in areas like decision support.


Whatever one might think of Singapore (it's been called Disneyland with 
the death penalty) and potential use of RAHS, here are some discussion 
of the general issue including some pitfalls (we worked with David 
Snowden on this, and my wife was director of research of Cognitive Edge 
for a time, and this is his statement on the project, which was funded 
by defense/intelligence funds):

http://web.archive.org/web/20071010013005/http://www.cognitive-edge.com/2007/03/unwired.php
However Wired manages to wander off the rails to fantasy land with its 
reporting of the RAHS project. I realised when they contacted me that 
there was a danger of them choosing to sensationalize the project by 
linking it to the Total Information Awareness (TIA) project in DARPA and 
the name of John Poindexter. So right up front I explained the 
difference. There had been two DARPA projects, working off two very 
different philosophies. One (TIA) sought to obtain and search all 
possible data to detect the possibility of terrorist events. That raised 
civil liberties concerns and much controversy in the USA leading to 
resignations and programme closure. A parallel program Genoa II took a 
very different philosophy, based on understanding nuanced narrative 
supporting the cognitive processes of decision makers and increasing the 
number of cultural and political perspectives available to policy 
makers. I was a part of that program, and proud to be so. It also forms 
the basis of our work for RAHS and contains neither the approach, not 
the philosophy of TIA.


Here is an example of my wanting to apply such tools to democratic 
decision making, which links to tools at SRI and elsewhere:

http://barcamp.org/w/page/47222818/Tools%20for%20Collective%20Sensemaking%20and%20Civic%20Engagement

Key links from there from SRI as systems which help promote coming up 
with counter-examples:
SEAS - Structured Evidential Argumentation System (Proprietary, used for 
structured arguments by intelligence analysts)

http://www.ai.sri.com/~seas/
Angler (Proprietary, used to overcome bias by intelligence analysts)
http://www.ai.sri.com/~angler/
Angler is a tool that helps intelligence/policy professionals Explore, 
understand, and overcome cognitive biases, and 

[fonc] People and evidence

2013-09-09 Thread Alan Kay
Kenneth Clarke once remarked that People in the Middle Ages were as 
passionately interested in truth as we are, but their sense of evidence was 
very different.

Marshall McLuhan said I can't see it until I believe it

Neil Postman once remarked that People today have to accept twice as much on 
faith: *both* religion and science!

In a letter to Kepler of August 1610, Galileo complained that some of the 
philosophers who opposed his discoveries had refused even to look through a 
telescope:
My dear Kepler, I wish that we might laugh at the remarkable stupidity of the 
common herd. What do you have to say about the principal philosophers of this 
academy who are filled with the stubbornness of an asp and do not want to look 
at either the planets, the moon or the telescope, even though I have freely and 
deliberately offered them the opportunity a thousand times? Truly, just as the 
asp stops its ears, so do these philosophers shut their eyes to the light of 
truth.
Many of the commenters on this list have missed that evidence and data 
requires a fruitful context -- even to consider them! -- and that better tools 
and data will only tend to help those who are already set up epistemologically 
to use them wisely. (And don't forget the scientists I mentioned who have been 
shown to be deeply influenced by the context of their own employers.)


The fault is not in our stars ...

Cheers,

Alan___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


Re: [fonc] People and evidence

2013-09-09 Thread Chris Warburton
Alan Kay alan.n...@yahoo.com writes:

 Many of the commenters on this list have missed that evidence and
 data requires a fruitful context -- even to consider them! -- and
 that better tools and data will only tend to help those who are
 already set up epistemologically to use them wisely. (And don't forget
 the scientists I mentioned who have been shown to be deeply influenced
 by the context of their own employers.)


 The fault is not in our stars ...

This is certainly true; giving large numbers of people (eg. via
schooling) the *inclination* to question their reasoning processes would
be a revolutionary change. Unfortunately I wouldn't know where to begin
to bring such a change about.

What I do know, from my computer science/software engineering background
and my own experience in trying to justify my everyday decisions, is
that there is still a lot of potential for incremental hill-climbing for
those few of us who already have this inclination (see lesswrong.com for
a growing community).

At the moment I usually conclude that it's not worth the investment to
sanity-check my day-to-day decisions in depth, but this balance can be
tipped by technological support, allowing me to do it out of habit.

Another example of an incremental improvement, again for those who
recognise the need, could be to have (electronic) lab books prompt the
user for justifications when they spot certain cues in their input. For
example:

User: Events were modelled as a markov chain...
Tooltip: Model spotted. Why is markov chain a realistic model?
User: Established by http://my-journal.com/it-really-is-markov.pdf
System: Thanks.

The point of such a system wouldn't be to verify what we tell it, but
simply to make us think twice about what we're doing.

Even though these incremental improvements will hopefully be thrown away
by some revolutionary change, they make it easier for us to come up with
that change. This is my method of tackling unsolvable problems. For
example, if I were stuck in a sub-optimal language and couldn't envisage
what a better language might look like, I would spend my time improving
the infrastructure (compiler, IDE, etc.) so that when anyone does come
up with an idea, it's easy for them to build and try it.

Cheers,
Chris
___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


Re: [fonc] People and evidence

2013-09-09 Thread Tom Lieber
On Mon, Sep 9, 2013 at 11:54 AM, Chris Warburton
chriswa...@googlemail.comwrote:

 Alan Kay alan.n...@yahoo.com writes:
  Many of the commenters on this list have missed that evidence and
  data requires a fruitful context -- even to consider them! -- and
  that better tools and data will only tend to help those who are
  already set up epistemologically to use them wisely. (And don't forget
  the scientists I mentioned who have been shown to be deeply influenced
  by the context of their own employers.)
 
 
  The fault is not in our stars ...

 This is certainly true; giving large numbers of people (eg. via
 schooling) the *inclination* to question their reasoning processes would
 be a revolutionary change. Unfortunately I wouldn't know where to begin
 to bring such a change about.


Look at Kay and others' projects to introduce children to programming. They
don't just make programming interfaces that are easy to manipulate. They
also consider the education that's required to use them well, and how to
motivate children to go through the effort.

-- 
Tom Lieber
http://AllTom.com/
http://infinite-sketchpad.com/
___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


Re: [fonc] Software Crisis (was Re: Final STEP progress report abandoned?)

2013-09-09 Thread Tom Novelli
Good point, Casey - it's not just software.  I see shabby service and
workmanship all around, an Industrial Crisis brought on by a preoccupation
with short-term gain... although that in itself is amplified by modern
software/communication technology.  Hopefully that will all balance out and
correct itself somewhat.

I see computers diverging into shrinkwrapped consumer devices (probably a
dead end just like old mass media) and industrial/DIY gear for serious
programming.  I'd tend to write good clean code for the latter.  That's
possible when you're writing for programmers, gamers, anyone willing to
learn something in order to use your software effectively (provided, of
course, that you're not in a fragmented landscape of rapidly iterating APIs
or hardware).

That's my optimistic scenario.  In my pessimistic scenario I do see the
kids getting dumber, because they're *only* using the internet for videos,
games, chit-chat.  They think the technology is pretty cool, but compared
to previous generations they seem less interested in understanding it.
 What if this revolution lasts long enough to destroy most of the books,
libraries, old-school factories, etc... and then collapses?  It could set
us back centuries.  (I wonder how many sci-fi stories have already used
that set-up... a couple hundred? :)

Also, let's not forget that we're still in the middle of a major economic
depression, so it's pretty difficult to predict anything based on current
trends.


On Mon, Sep 9, 2013 at 12:12 AM, Casey Ransberger
casey.obrie...@gmail.comwrote:

 I don't think cut and paste has been the source of the problems with the
 systems I've worked on (could be a symptom of one or more of the problems.)
 What I see is long-term systems built around short-term, usually
 competitive goals, by people who are competing both with one another (for
 jobs, promotions, raises, social capital, etc,) and also cooperating with
 one another to compete with other businesses at the same time. Most
 people's programming habits seem to change dramatically, for example, when
 they expect to throw something away. Most programmers dump the company
 every 2-5 years for another (higher-paying) job, so it's *all* disposable
 code in effect. It's not just the programmers either, it's the decision
 makers at C-level too, who are quite often building the company to sell
 the company.

 Maybe the kids are getting dumber, but what I see when I look around is
 smart kids being pushed to ship before the bits are ready, and not being
 *allowed* to fix low-value bugs which gradually accumulate until a system
 is deep-sixed for being painful to work on. In other words, I don't believe
 there's a software crisis or any real shortage of programming talent (I
 know plenty of great programmers who regularly go without work, often
 because they're unimpressed with the offers they're seeing.) I think it's
 not a software crisis, I think it's a *management* crisis.

 I do think new tools to make
 managers/customers/investors/partners/users/programmers less stressed out
 could make the overall experience better for all involved, and with that I
 guess I'm talking about the continuing emergence of an engineering
 discipline in software.

 But that's in-house code. OTOH, FreeBSD has usually been pretty stable for
 me; I don't have to put out its fires very much.

 Why might this be? Let's try some fun game theory!

 http://www.nature.com/ncomms/2013/130801/ncomms3193/pdf/ncomms3193.pdf


___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


Re: [fonc] Final STEP progress report abandoned?

2013-09-09 Thread David Barbour
On Fri, Sep 6, 2013 at 1:19 AM, Chris Warburton
chriswa...@googlemail.comwrote:

 David Barbour dmbarb...@gmail.com writes:

  But favoring a simpler programming model - e.g. one with only
  integers, and where the only operation is to add or compare them
  -might also help.

 If the problem domain is X then I agree a minimal X-specific DSL is a
 good idea, although purely numeric problems are often amenable to more
 direct solutions; eg. dynamic programming, gradient-based methods, etc.


A rather nice property: given any general purpose concatenative language,
we can create a DSL for genetic programming by developing a set of
high-level words... then using those as the primitives for the GP.

The main issue, I think, is a more flexible environment model. The stack
doesn't offer very flexible interactions. A document (zipper) or graph
could be modeled as an object on the stack, though.

Best,

Dave
___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


Re: [fonc] Final STEP progress report abandoned?

2013-09-09 Thread David Barbour
On Mon, Sep 9, 2013 at 2:11 AM, Chris Warburton
chriswa...@googlemail.comwrote:

 I think a quite modest improvement would be more powerful
 calculators.


Smart phones? :)

(But seriously.)

Honestly, one of the things I would really want in a more powerful
calculator is a powerful array of sensors that can turn parts of my
environment into usable numbers. What is the distance between these two
trees? What is the GPS coordinate? What chemicals are detected in the area?

Even better if this happened all the time, so I can ask questions about
recent events. Unfortunately, we lack the energy technologies for it.
(Storage is much less an issue; we have lots of storage, and useful
exponential decay and compression models to remove the boring stuff.)
___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


Re: [fonc] Software Crisis (was Re: Final STEP progress report abandoned?)

2013-09-09 Thread David Barbour
I like Paul's idea here - form a pit of success even for people who tend
to copy-paste.

I'm very interested in unifying PL with HCI/UI such that actions like
copy-paste actually have formal meaning. If you copy a time-varying field
from a UI form, maybe you can paste it as a signal into a software agent.
Similarly with buttons becoming capabilities. (Really, if we can use a
form, it should be easy to program something to use it for us. And vice
versa.) All UI actions can be 'acts of programming', if we find the right
way to formalize it. I think the trick, then, is to turn the UI into a good
PL.

To make copy-and-paste code more robust, what can we do?

Can we make our code more adaptive? Able to introspect its environment?

Can we reduce the number of environmental dependencies? Control namespace
entanglement? Could we make it easier to grab all the dependencies for code
when we copy it?

Can we make it more provable?

And conversely, can we provide IDEs that can help the kids understand the
code they take - visualize and graph its behavior, see how it integrates
with its environment, etc? I think there's a lot we can do. Most of my
thoughts center on language design and IDE design, but there may also be
social avenues - perhaps wiki-based IDEs, or Gist-like repositories that
also make it easy to interactively explore and understand code before using
it.


On Sun, Sep 8, 2013 at 10:33 AM, Paul Homer paul_ho...@yahoo.ca wrote:


 These days, the kids do a quick google, then just copypaste the results
 into the code base, mostly unaware of what the underlying 'magic'
 instructions actually do. So example code is possibly a bad thing?

 But even if that's true, we've let the genie out of the bottle and he is't
 going back in. To fix the quality of software, for example, we can't just
 ban all cutpaste-able web pages.

 The alternate route out of the problem is to exploit these types of human
 deficiencies. If some programmers just want to cutpaste, then perhaps all
 we can do is too just make sure that what they are using is high enough
 quality. If someday they want more depth, then it should be available in
 easily digestible forms, even if few will ever travel that route.

 If most people really don't want to think deeply about about their
 problems, then I think that the best we can do is ensure that their hasty
 decisions are based on as accurate knowledge as possible. It's far better
 than them just flipping a coin. In a sense it moves up our decision making
 to a higher level of abstraction. Some people lose the 'why' of the
 decision, but their underlying choice ultimately is superior, and the 'why'
 can still be found by doing digging into the data. In a way, isn't that
 what we've already done with micro-code, chips and assembler? Or machinery?
 Gradually we move up towards broader problems...



___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


Re: [fonc] Software Crisis (was Re: Final STEP progress report abandoned?)

2013-09-09 Thread John Carlson
One thing you can do is create a bunch of named widgets that work together
with copy and paste.  As long as you can do type safety, and can
appropriately deal with variable explosion/collapsing.  You'll probably
want to create very small functions, which can also be stored in widgets
(lambdas).  Widgets will show up when their scope is entered, or you could
have an inspect mode.
On Sep 9, 2013 5:11 PM, David Barbour dmbarb...@gmail.com wrote:

 I like Paul's idea here - form a pit of success even for people who tend
 to copy-paste.

 I'm very interested in unifying PL with HCI/UI such that actions like
 copy-paste actually have formal meaning. If you copy a time-varying field
 from a UI form, maybe you can paste it as a signal into a software agent.
 Similarly with buttons becoming capabilities. (Really, if we can use a
 form, it should be easy to program something to use it for us. And vice
 versa.) All UI actions can be 'acts of programming', if we find the right
 way to formalize it. I think the trick, then, is to turn the UI into a good
 PL.

 To make copy-and-paste code more robust, what can we do?

 Can we make our code more adaptive? Able to introspect its environment?

 Can we reduce the number of environmental dependencies? Control namespace
 entanglement? Could we make it easier to grab all the dependencies for code
 when we copy it?

 Can we make it more provable?

 And conversely, can we provide IDEs that can help the kids understand
 the code they take - visualize and graph its behavior, see how it
 integrates with its environment, etc? I think there's a lot we can do. Most
 of my thoughts center on language design and IDE design, but there may also
 be social avenues - perhaps wiki-based IDEs, or Gist-like repositories that
 also make it easy to interactively explore and understand code before using
 it.


 On Sun, Sep 8, 2013 at 10:33 AM, Paul Homer paul_ho...@yahoo.ca wrote:


 These days, the kids do a quick google, then just copypaste the
 results into the code base, mostly unaware of what the underlying 'magic'
 instructions actually do. So example code is possibly a bad thing?

 But even if that's true, we've let the genie out of the bottle and he
 is't going back in. To fix the quality of software, for example, we can't
 just ban all cutpaste-able web pages.

 The alternate route out of the problem is to exploit these types of human
 deficiencies. If some programmers just want to cutpaste, then perhaps all
 we can do is too just make sure that what they are using is high enough
 quality. If someday they want more depth, then it should be available in
 easily digestible forms, even if few will ever travel that route.

 If most people really don't want to think deeply about about their
 problems, then I think that the best we can do is ensure that their hasty
 decisions are based on as accurate knowledge as possible. It's far better
 than them just flipping a coin. In a sense it moves up our decision making
 to a higher level of abstraction. Some people lose the 'why' of the
 decision, but their underlying choice ultimately is superior, and the 'why'
 can still be found by doing digging into the data. In a way, isn't that
 what we've already done with micro-code, chips and assembler? Or machinery?
 Gradually we move up towards broader problems...



 ___
 fonc mailing list
 fonc@vpri.org
 http://vpri.org/mailman/listinfo/fonc


___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


Re: [fonc] Software Crisis (was Re: Final STEP progress report abandoned?)

2013-09-09 Thread John Carlson
I'd recommend looking into quartz composer on mac os x.
On Sep 9, 2013 5:11 PM, David Barbour dmbarb...@gmail.com wrote:

 I like Paul's idea here - form a pit of success even for people who tend
 to copy-paste.

 I'm very interested in unifying PL with HCI/UI such that actions like
 copy-paste actually have formal meaning. If you copy a time-varying field
 from a UI form, maybe you can paste it as a signal into a software agent.
 Similarly with buttons becoming capabilities. (Really, if we can use a
 form, it should be easy to program something to use it for us. And vice
 versa.) All UI actions can be 'acts of programming', if we find the right
 way to formalize it. I think the trick, then, is to turn the UI into a good
 PL.

 To make copy-and-paste code more robust, what can we do?

 Can we make our code more adaptive? Able to introspect its environment?

 Can we reduce the number of environmental dependencies? Control namespace
 entanglement? Could we make it easier to grab all the dependencies for code
 when we copy it?

 Can we make it more provable?

 And conversely, can we provide IDEs that can help the kids understand
 the code they take - visualize and graph its behavior, see how it
 integrates with its environment, etc? I think there's a lot we can do. Most
 of my thoughts center on language design and IDE design, but there may also
 be social avenues - perhaps wiki-based IDEs, or Gist-like repositories that
 also make it easy to interactively explore and understand code before using
 it.


 On Sun, Sep 8, 2013 at 10:33 AM, Paul Homer paul_ho...@yahoo.ca wrote:


 These days, the kids do a quick google, then just copypaste the
 results into the code base, mostly unaware of what the underlying 'magic'
 instructions actually do. So example code is possibly a bad thing?

 But even if that's true, we've let the genie out of the bottle and he
 is't going back in. To fix the quality of software, for example, we can't
 just ban all cutpaste-able web pages.

 The alternate route out of the problem is to exploit these types of human
 deficiencies. If some programmers just want to cutpaste, then perhaps all
 we can do is too just make sure that what they are using is high enough
 quality. If someday they want more depth, then it should be available in
 easily digestible forms, even if few will ever travel that route.

 If most people really don't want to think deeply about about their
 problems, then I think that the best we can do is ensure that their hasty
 decisions are based on as accurate knowledge as possible. It's far better
 than them just flipping a coin. In a sense it moves up our decision making
 to a higher level of abstraction. Some people lose the 'why' of the
 decision, but their underlying choice ultimately is superior, and the 'why'
 can still be found by doing digging into the data. In a way, isn't that
 what we've already done with micro-code, chips and assembler? Or machinery?
 Gradually we move up towards broader problems...



 ___
 fonc mailing list
 fonc@vpri.org
 http://vpri.org/mailman/listinfo/fonc


___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


Re: [fonc] Software Crisis (was Re: Final STEP progress report abandoned?)

2013-09-09 Thread John Carlson
Also, you could have an input zipper, a flippable conversion area, an
output zipper, and a history of conversion stack.
On Sep 9, 2013 5:11 PM, David Barbour dmbarb...@gmail.com wrote:

 I like Paul's idea here - form a pit of success even for people who tend
 to copy-paste.

 I'm very interested in unifying PL with HCI/UI such that actions like
 copy-paste actually have formal meaning. If you copy a time-varying field
 from a UI form, maybe you can paste it as a signal into a software agent.
 Similarly with buttons becoming capabilities. (Really, if we can use a
 form, it should be easy to program something to use it for us. And vice
 versa.) All UI actions can be 'acts of programming', if we find the right
 way to formalize it. I think the trick, then, is to turn the UI into a good
 PL.

 To make copy-and-paste code more robust, what can we do?

 Can we make our code more adaptive? Able to introspect its environment?

 Can we reduce the number of environmental dependencies? Control namespace
 entanglement? Could we make it easier to grab all the dependencies for code
 when we copy it?

 Can we make it more provable?

 And conversely, can we provide IDEs that can help the kids understand
 the code they take - visualize and graph its behavior, see how it
 integrates with its environment, etc? I think there's a lot we can do. Most
 of my thoughts center on language design and IDE design, but there may also
 be social avenues - perhaps wiki-based IDEs, or Gist-like repositories that
 also make it easy to interactively explore and understand code before using
 it.


 On Sun, Sep 8, 2013 at 10:33 AM, Paul Homer paul_ho...@yahoo.ca wrote:


 These days, the kids do a quick google, then just copypaste the
 results into the code base, mostly unaware of what the underlying 'magic'
 instructions actually do. So example code is possibly a bad thing?

 But even if that's true, we've let the genie out of the bottle and he
 is't going back in. To fix the quality of software, for example, we can't
 just ban all cutpaste-able web pages.

 The alternate route out of the problem is to exploit these types of human
 deficiencies. If some programmers just want to cutpaste, then perhaps all
 we can do is too just make sure that what they are using is high enough
 quality. If someday they want more depth, then it should be available in
 easily digestible forms, even if few will ever travel that route.

 If most people really don't want to think deeply about about their
 problems, then I think that the best we can do is ensure that their hasty
 decisions are based on as accurate knowledge as possible. It's far better
 than them just flipping a coin. In a sense it moves up our decision making
 to a higher level of abstraction. Some people lose the 'why' of the
 decision, but their underlying choice ultimately is superior, and the 'why'
 can still be found by doing digging into the data. In a way, isn't that
 what we've already done with micro-code, chips and assembler? Or machinery?
 Gradually we move up towards broader problems...



 ___
 fonc mailing list
 fonc@vpri.org
 http://vpri.org/mailman/listinfo/fonc


___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


Re: [fonc] Software Crisis (was Re: Final STEP progress report abandoned?)

2013-09-09 Thread John Carlson
The trick here is to make the zippers at the meta or schema level.

John
On Sep 9, 2013 6:03 PM, John Carlson yottz...@gmail.com wrote:

 Also, you could have an input zipper, a flippable conversion area, an
 output zipper, and a history of conversion stack.
 On Sep 9, 2013 5:11 PM, David Barbour dmbarb...@gmail.com wrote:

 I like Paul's idea here - form a pit of success even for people who
 tend to copy-paste.

 I'm very interested in unifying PL with HCI/UI such that actions like
 copy-paste actually have formal meaning. If you copy a time-varying field
 from a UI form, maybe you can paste it as a signal into a software agent.
 Similarly with buttons becoming capabilities. (Really, if we can use a
 form, it should be easy to program something to use it for us. And vice
 versa.) All UI actions can be 'acts of programming', if we find the right
 way to formalize it. I think the trick, then, is to turn the UI into a good
 PL.

 To make copy-and-paste code more robust, what can we do?

 Can we make our code more adaptive? Able to introspect its environment?

 Can we reduce the number of environmental dependencies? Control namespace
 entanglement? Could we make it easier to grab all the dependencies for code
 when we copy it?

 Can we make it more provable?

 And conversely, can we provide IDEs that can help the kids understand
 the code they take - visualize and graph its behavior, see how it
 integrates with its environment, etc? I think there's a lot we can do. Most
 of my thoughts center on language design and IDE design, but there may also
 be social avenues - perhaps wiki-based IDEs, or Gist-like repositories that
 also make it easy to interactively explore and understand code before using
 it.


 On Sun, Sep 8, 2013 at 10:33 AM, Paul Homer paul_ho...@yahoo.ca wrote:


 These days, the kids do a quick google, then just copypaste the
 results into the code base, mostly unaware of what the underlying 'magic'
 instructions actually do. So example code is possibly a bad thing?

 But even if that's true, we've let the genie out of the bottle and he
 is't going back in. To fix the quality of software, for example, we can't
 just ban all cutpaste-able web pages.

 The alternate route out of the problem is to exploit these types of
 human deficiencies. If some programmers just want to cutpaste, then
 perhaps all we can do is too just make sure that what they are using is
 high enough quality. If someday they want more depth, then it should be
 available in easily digestible forms, even if few will ever travel that
 route.

 If most people really don't want to think deeply about about their
 problems, then I think that the best we can do is ensure that their hasty
 decisions are based on as accurate knowledge as possible. It's far better
 than them just flipping a coin. In a sense it moves up our decision making
 to a higher level of abstraction. Some people lose the 'why' of the
 decision, but their underlying choice ultimately is superior, and the 'why'
 can still be found by doing digging into the data. In a way, isn't that
 what we've already done with micro-code, chips and assembler? Or machinery?
 Gradually we move up towards broader problems...



 ___
 fonc mailing list
 fonc@vpri.org
 http://vpri.org/mailman/listinfo/fonc


___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


Re: [fonc] Software Crisis (was Re: Final STEP progress report abandoned?)

2013-09-09 Thread Alan Kay
Check out Smallstar by Dan Halbert at Xerox PARC (written up in a PARC 
bluebook)

Cheers,

Alan



 From: John Carlson yottz...@gmail.com
To: Fundamentals of New Computing fonc@vpri.org 
Sent: Monday, September 9, 2013 3:47 PM
Subject: Re: [fonc] Software Crisis (was Re: Final STEP progress report 
abandoned?)
 


One thing you can do is create a bunch of named widgets that work together with 
copy and paste.  As long as you can do type safety, and can appropriately deal 
with variable explosion/collapsing.  You'll probably want to create very small 
functions, which can also be stored in widgets (lambdas).  Widgets will show up 
when their scope is entered, or you could have an inspect mode.
On Sep 9, 2013 5:11 PM, David Barbour dmbarb...@gmail.com wrote:

I like Paul's idea here - form a pit of success even for people who tend to 
copy-paste.


I'm very interested in unifying PL with HCI/UI such that actions like 
copy-paste actually have formal meaning. If you copy a time-varying field from 
a UI form, maybe you can paste it as a signal into a software agent. Similarly 
with buttons becoming capabilities. (Really, if we can use a form, it should 
be easy to program something to use it for us. And vice versa.) All UI actions 
can be 'acts of programming', if we find the right way to formalize it. I 
think the trick, then, is to turn the UI into a good PL.


To make copy-and-paste code more robust, what can we do?


Can we make our code more adaptive? Able to introspect its environment?


Can we reduce the number of environmental dependencies? Control namespace 
entanglement? Could we make it easier to grab all the dependencies for code 
when we copy it? 

Can we make it more provable?


And conversely, can we provide IDEs that can help the kids understand the 
code they take - visualize and graph its behavior, see how it integrates with 
its environment, etc? I think there's a lot we can do. Most of my thoughts 
center on language design and IDE design, but there may also be social avenues 
- perhaps wiki-based IDEs, or Gist-like repositories that also make it easy to 
interactively explore and understand code before using it.



On Sun, Sep 8, 2013 at 10:33 AM, Paul Homer paul_ho...@yahoo.ca wrote:


These days, the kids do a quick google, then just copypaste the results 
into the code base, mostly unaware of what the underlying 'magic' 
instructions actually do. So example code is possibly a bad thing?

But even if that's true, we've let the genie out of the bottle and he is't 
going back in. To fix the quality of software, for example, we can't just ban 
all cutpaste-able web pages.

The alternate route out of the problem is to exploit these types of human 
deficiencies. If some programmers just want to cutpaste, then perhaps all we 
can do is too just make sure that what they are using is high enough quality. 
If someday they want more depth, then it should be available in easily 
digestible forms, even if few will ever travel that route.

If most people really don't want to think deeply about about their problems, 
then I think that the best we can do is ensure that their hasty decisions are 
based on as accurate knowledge as possible. It's far better than them just 
flipping a coin. In a sense it moves up our decision making to a higher level 
of abstraction. Some people lose the 'why' of the decision, but their 
underlying choice ultimately is superior, and the 'why' can still be found by 
doing digging into the data. In a way, isn't that what we've already done 
with micro-code, chips and assembler? Or machinery? Gradually we move up 
towards broader problems...



___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


[fonc] Fwd: Re: Programming by Demonstration (was Software Crisis (was Re: Final STEP progress report abandoned?))

2013-09-09 Thread John Carlson
-- Forwarded message --
From: John Carlson yottz...@gmail.com
Date: Sep 9, 2013 8:58 PM
Subject: Re: [fonc] Programming by Demonstration (was Software Crisis (was
Re: Final STEP progress report abandoned?))
To: Alan Kay alan.n...@yahoo.com
Cc:

Thanks, Alan, for this reference.  It looks like the difference between
SmallStar and TWB/TE are mostly domain and how control structures were
constructed.  Our domain was formatting and mapping between EDI/X12 and
proprietary files.  SmallStar's domain was the desktop.  TWB had a current
add position (PC) for control structures...we used the lookup operation on
a table containing rows of anded predicates and a procedure.  These domain
specific *visual* languages have lost out to domain specific modelling.
More recently there has been model transformation by demonstration (MTBD)
and learning by demonstration  (I believe these have lost conditionals in
favor of selectors) as well as Lively Kernel and Bret Victor's work.

On Sep 9, 2013 7:55 PM, Alan Kay alan.n...@yahoo.com wrote:

 Check out Smallstar by Dan Halbert at Xerox PARC (written up in a PARC
bluebook)

 Cheers,

 Alan

 
 From: John Carlson yottz...@gmail.com

 To: Fundamentals of New Computing fonc@vpri.org
 Sent: Monday, September 9, 2013 3:47 PM
 Subject: Re: [fonc] Software Crisis (was Re: Final STEP progress report
abandoned?)

 One thing you can do is create a bunch of named widgets that work
together with copy and paste.  As long as you can do type safety, and can
appropriately deal with variable explosion/collapsing.  You'll probably
want to create very small functions, which can also be stored in widgets
(lambdas).  Widgets will show up when their scope is entered, or you could
have an inspect mode.
 On Sep 9, 2013 5:11 PM, David Barbour dmbarb...@gmail.com wrote:

 I like Paul's idea here - form a pit of success even for people who
tend to copy-paste.

 I'm very interested in unifying PL with HCI/UI such that actions like
copy-paste actually have formal meaning. If you copy a time-varying field
from a UI form, maybe you can paste it as a signal into a software agent.
Similarly with buttons becoming capabilities. (Really, if we can use a
form, it should be easy to program something to use it for us. And vice
versa.) All UI actions can be 'acts of programming', if we find the right
way to formalize it. I think the trick, then, is to turn the UI into a good
PL.

 To make copy-and-paste code more robust, what can we do?

 Can we make our code more adaptive? Able to introspect its environment?

 Can we reduce the number of environmental dependencies? Control
namespace entanglement? Could we make it easier to grab all the
dependencies for code when we copy it?

 Can we make it more provable?

 And conversely, can we provide IDEs that can help the kids understand
the code they take - visualize and graph its behavior, see how it
integrates with its environment, etc? I think there's a lot we can do. Most
of my thoughts center on language design and IDE design, but there may also
be social avenues - perhaps wiki-based IDEs, or Gist-like repositories that
also make it easy to interactively explore and understand code before using
it.


 On Sun, Sep 8, 2013 at 10:33 AM, Paul Homer paul_ho...@yahoo.ca wrote:


 These days, the kids do a quick google, then just copypaste the
results into the code base, mostly unaware of what the underlying 'magic'
instructions actually do. So example code is possibly a bad thing?

 But even if that's true, we've let the genie out of the bottle and he
is't going back in. To fix the quality of software, for example, we can't
just ban all cutpaste-able web pages.

 The alternate route out of the problem is to exploit these types of
human deficiencies. If some programmers just want to cutpaste, then
perhaps all we can do is too just make sure that what they are using is
high enough quality. If someday they want more depth, then it should be
available in easily digestible forms, even if few will ever travel that
route.

 If most people really don't want to think deeply about about their
problems, then I think that the best we can do is ensure that their hasty
decisions are based on as accurate knowledge as possible. It's far better
than them just flipping a coin. In a sense it moves up our decision making
to a higher level of abstraction. Some people lose the 'why' of the
decision, but their underlying choice ultimately is superior, and the 'why'
can still be found by doing digging into the data. In a way, isn't that
what we've already done with micro-code, chips and assembler? Or machinery?
Gradually we move up towards broader problems...



 ___
 fonc mailing list
 fonc@vpri.org
 http://vpri.org/mailman/listinfo/fonc


 ___
 fonc mailing list
 fonc@vpri.org
 http://vpri.org/mailman/listinfo/fonc



 ___