Re: [fonc] Unsolved problem in computer science? Fixing shortcuts.

2014-10-09 Thread John Carlson
We may want a program which unfortunately has a path to a shortcut to still
work if the files they point to are moved.
On Oct 9, 2014 7:56 PM, Pascal J. Bourguignon p...@informatimago.com
wrote:

 Daniel W Gelder daniel.w.gel...@gmail.com writes:

  The original question seems to be how to maintain links when the file
  is moved or renamed. Perhaps the file could have a unique ID in the
  file system, and the link would try the given pathname, but if it's
  not there, try the unique ID. Would that work?

 That's about what is done by MacOS and MacOSX (at least on HFS, I don't
 know if they do the same on UFS).

 This let aliases to keep working when you move the target files.  So
 aliases, which in a way are more like symbol links (if you delete the
 target file and recreate it in the same path, then the alias will refer
 the new file), actually behave more like symbolic links in that you can
 move the target file, and the alias will still refer it.

 Now the question, is what happens if you move away the original target,
 and recreat a new one in the old path?

 As a MacOS and then MacOSX user, I DO NOT KNOW!

 I would have to try it.

 The point is that the semantics of symbolic links and of hard links are
 clear and easy to understand, and manipulate.

 The semantics of MacOS and MacOSX aliases are not.

 And I don't know anything about links in MS-Windows (I'd expect they'd
 work as broken Mac aliases).


 There's some level of DWIM in that.


 The question should be whether we want a system that DWIM, or whether we
 want a system that implement simple and composable operations that can
 easily be understood and used?


 --
 __Pascal Bourguignon__ http://www.informatimago.com/
 “The factory of the future will have only two employees, a man and a
 dog. The man will be there to feed the dog. The dog will be there to
 keep the man from touching the equipment.” -- Carl Bass CEO Autodesk
 ___
 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] Unsolved problem in computer science? Fixing shortcuts.

2014-10-05 Thread John Carlson
To put the problem in entirely file system terminology, What happens to a
folder with shortcuts into it when you move the folder?   How does one
automatically repoint the shortcuts?  Has this problem been solved in
computer science?   On linux, the shortcuts would be symbolic links.

I had a dream about smallstar when I was thinking about this.  The author
was essentially asking me how to fix it.  He was showing me a hierarchy,
then he moved part of the hierarchy into a subfolder and asked me how to
automate it--especially the links to the original hierarchy.

In language terms, this would be equivalent of refactoring a class which
gets dropped down into an inner class.  This might be solved.  I'm not sure.

This would be a great problem to solve on the web as well...does Xanadu do
this?

I think the solution is to maintain non-persistent nodes which are computed
at access time, but I'm not entirely clear.

I have no idea why I am posting this to cap-talk.   There may be some
capability issues that I haven't thought of yet.  Or perhaps the capability
folks have already solved this.

For your consideration,

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


Re: [fonc] Unsolved problem in computer science? Fixing shortcuts.

2014-10-05 Thread John Carlson
Not obvious to me.  Are you saying a folder of shortcuts?   A shortcut to a
folder?   A shortcut to a shortcut to a folder?  Instead of using indirect
addressing, can you put it in terms of folders and shortcuts, or do we need
a third type of object?  And how does this apply to a general graph
problem?   Are you speaking of URNs?  A directory of hard links?  That
seems to make the most sense to me, and would bring in the third type of
object.  Can you really make a hard link to a directory, and expect it to
work?  I'm not thinking of something with two levels, I am thinking of a
multilevel problem, where the shortcuts go really deep, like from a desktop
to somewhere into program files.  If I rename a program files folder, what
happens to my shortcuts?  If you like I can put this into Linux/BSD terms
which I am more comfortable with.  I am trying to address it to a larger
audience than that though.

On Sun, Oct 5, 2014 at 8:49 AM, Miles Fidelman mfidel...@meetinghouse.net
wrote:

 Isn't the obvious answer to use indirect addressing via a directory?

 John Carlson wrote:

 To put the problem in entirely file system terminology, What happens to a
 folder with shortcuts into it when you move the folder?   How does one
 automatically repoint the shortcuts?  Has this problem been solved in
 computer science?   On linux, the shortcuts would be symbolic links.

 I had a dream about smallstar when I was thinking about this.  The author
 was essentially asking me how to fix it.  He was showing me a hierarchy,
 then he moved part of the hierarchy into a subfolder and asked me how to
 automate it--especially the links to the original hierarchy.

 In language terms, this would be equivalent of refactoring a class which
 gets dropped down into an inner class.  This might be solved.  I'm not sure.

 This would be a great problem to solve on the web as well...does Xanadu
 do this?

 I think the solution is to maintain non-persistent nodes which are
 computed at access time, but I'm not entirely clear.

 I have no idea why I am posting this to cap-talk.   There may be some
 capability issues that I haven't thought of yet. Or perhaps the capability
 folks have already solved this.

 For your consideration,

 John Carlson


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



 --
 In theory, there is no difference between theory and practice.
 In practice, there is.    Yogi Berra

 ___
 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] Unsolved problem in computer science? Fixing shortcuts.

2014-10-05 Thread John Carlson
That sounds like a good idea.  I like it because it operates on more than
one dataset.  However, we'll need to track paths as well as just
references.  This is already done for circular references in garbage
collectors, so it might be just the ticket.

What I am wondering is if this sort of thing could be handled by a possibly
modified Journaling file system.  If the journal maintains the important
stuff, couldn't it be looked at for any folder moves which affect shortcuts?
On Oct 5, 2014 2:21 PM, Tristan Slominski tristan.slomin...@gmail.com
wrote:

 One thing that comes to mind are copying garbage collectors which need to
 keep track of references while moving objects around. Probably looking into
 how that is solved will provide some insight.

 On Sun, Oct 5, 2014 at 12:35 PM, John Carlson yottz...@gmail.com wrote:

 Not obvious to me.  Are you saying a folder of shortcuts?   A shortcut to
 a folder?   A shortcut to a shortcut to a folder?  Instead of using
 indirect addressing, can you put it in terms of folders and shortcuts, or
 do we need a third type of object?  And how does this apply to a general
 graph problem?   Are you speaking of URNs?  A directory of hard links?
 That seems to make the most sense to me, and would bring in the third type
 of object.  Can you really make a hard link to a directory, and expect it
 to work?  I'm not thinking of something with two levels, I am thinking of a
 multilevel problem, where the shortcuts go really deep, like from a desktop
 to somewhere into program files.  If I rename a program files folder, what
 happens to my shortcuts?  If you like I can put this into Linux/BSD terms
 which I am more comfortable with.  I am trying to address it to a larger
 audience than that though.

 On Sun, Oct 5, 2014 at 8:49 AM, Miles Fidelman 
 mfidel...@meetinghouse.net wrote:

 Isn't the obvious answer to use indirect addressing via a directory?

 John Carlson wrote:

 To put the problem in entirely file system terminology, What happens to
 a folder with shortcuts into it when you move the folder?   How does one
 automatically repoint the shortcuts?  Has this problem been solved in
 computer science?   On linux, the shortcuts would be symbolic links.

 I had a dream about smallstar when I was thinking about this.  The
 author was essentially asking me how to fix it.  He was showing me a
 hierarchy, then he moved part of the hierarchy into a subfolder and asked
 me how to automate it--especially the links to the original hierarchy.

 In language terms, this would be equivalent of refactoring a class
 which gets dropped down into an inner class.  This might be solved.  I'm
 not sure.

 This would be a great problem to solve on the web as well...does Xanadu
 do this?

 I think the solution is to maintain non-persistent nodes which are
 computed at access time, but I'm not entirely clear.

 I have no idea why I am posting this to cap-talk.   There may be some
 capability issues that I haven't thought of yet. Or perhaps the capability
 folks have already solved this.

 For your consideration,

 John Carlson


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



 --
 In theory, there is no difference between theory and practice.
 In practice, there is.    Yogi Berra

 ___
 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 mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


[fonc] Unsolved problem solved in mac os x

2014-10-05 Thread John Carlson
This Mac OSX feature sounds exactly what I am looking for.   Thanks!
-- Forwarded message --
From: JD Paley geo...@jdpaley.com
Date: Oct 5, 2014 10:05 AM
Subject: A response (post rejected by autom. list mgr)
To: John Carlson yottz...@gmail.com
Cc:

Subject: Re: [fonc] Unsolved problem in computer science? Fixing shortcuts.

Thought this was solved with two-way binding - bidirectional links so that
a pointer gets updated whenever the linked element moves.  Or as in OS X
Finder's Aliases (vs Sym/Hard Links) keeping in the link file file both the
higher- and lower-level addresses (the resource name and its inode number).
When a followed Alias mismatches its target name, a search for the univocal
inode gets triggered.

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


Re: [fonc] Unsolved problem solved in mac os x

2014-10-05 Thread John Carlson
Next:  what if the file system operation is a copy paste cut - old
operation?   Sounds like we may be back to copying garbage collectors.
On Oct 5, 2014 6:00 PM, John Carlson yottz...@gmail.com wrote:

 This Mac OSX feature sounds exactly what I am looking for.   Thanks!
 -- Forwarded message --
 From: JD Paley geo...@jdpaley.com
 Date: Oct 5, 2014 10:05 AM
 Subject: A response (post rejected by autom. list mgr)
 To: John Carlson yottz...@gmail.com
 Cc:

 Subject: Re: [fonc] Unsolved problem in computer science? Fixing shortcuts.

 Thought this was solved with two-way binding - bidirectional links so that
 a pointer gets updated whenever the linked element moves.  Or as in OS X
 Finder's Aliases (vs Sym/Hard Links) keeping in the link file file both the
 higher- and lower-level addresses (the resource name and its inode number).
 When a followed Alias mismatches its target name, a search for the univocal
 inode gets triggered.

 JD Paley


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


[fonc] I'd like to add you to my professional network on LinkedIn

2014-09-25 Thread John Carlson
Hi Fundamentals,

I#39;d like to add you to my professional network on LinkedIn.

- John

Accept: 
http://www.linkedin.com/blink?simpleRedirect=3wQdzkVcj4VdjkSejsTe30OejkZh4BKrSBQonhFtCVF9AwTcjBEqnh9fnBBiShBsC5EsOpQsSlRpRZBt6BSrCAZqSkConhzbmlQqnpKqiRQsSlRpORIrmkZpSVFqSdxsDgCpnhFtCV9pSlipn9Mfm4Cqj8Ju3cRp39Fc6AJqzBzt7xIbjRBfP9SbSkLrmZzbCVFp6lHrCBIbDtTtOYLeDdMt7hEmsgID=I7975422282_1markAsRead=


You received an invitation to connect. LinkedIn will use your email address to 
make suggestions to our members in features like People You May Know. 
Unsubscribe here: 
http://www.linkedin.com/blink?simpleRedirect=1DsCZ5cylFsD1Sc3gBoSVLpzRIqm5JpipEqSZLon1Mr71ysn1GoPgZp6Bx9z4Sc30OfmhF9z4JfmhFripFcyRUcPlAcCAMqiRGemdQu6MJfmhFpipQsSlRpRZBt6BSrCAZqSkCkjoPp4l7q5p6sCR6kk4ZrClHrRhAqmQCsSVRfngCqj8Ju3cRp39Fc6AJqzBzt7xIbjRBfP9SbSkLrmZzbCVFp6lHrCBIbDtTtOYLeDdMt7hEamp;msgID=I7975422282_1amp;markAsRead=This
 email was intended for Fundamentals Computing. Learn why we included this at 
the following link: 
http://www.linkedin.com/blink?simpleRedirect=e3wTd3RAimlIoSBQsC4Ct7dBtmtvpnhFtCVFfmJB9CNOlmlzqnpOpldOpmRLt7dRoPRx9CAObnwPdmgOqj1FbmEVoThUr2QZpjYOtyZBbSRLoOVKqmhBqSVFr2VTtTsLbPFMt7hEmsgID=I7975422282_1markAsRead=
copy; 2014, LinkedIn Corporation. 2029 Stierlin Ct. Mountain View, CA 94043, 
USA___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


Re: [fonc] I'd like to add you to my professional network on LinkedIn

2014-09-25 Thread John Carlson
Oops.  Too many check boxes to uncheck.  Sorry.

On Thu, Sep 25, 2014 at 7:15 AM, John Carlson yottz...@gmail.com wrote:



[image: LinkedIn]
 http://www.linkedin.com/blink?simpleRedirect=1QsSlRpRZBt6BSrCAZqSkCrStLr2RBt6BSrCAJt7dBtmsJr6RBfmtKqmJzon9Q9D1JrzRQ9CAObnwPdmgOqj1FbmEVoThUr2QZpjYOtyZBbSRLoOVKqmhBqSVFr2VTtTsLbPFMt7hEmsgID=I7975422282_1markAsRead=






John Carlson  yottz...@gmail.com  Sioux City, Iowa Area


  Hi Fundamentals,

I'd like to add you to my professional network on LinkedIn.

- John


   Confirm that you know John
 http://www.linkedin.com/blink?simpleRedirect=3wQdzkVcj4VdjkSejsTe30OejkZh4BKrSBQonhFtCVF9AwTcjBEqnh9fnBBiShBsC5EsOpQsSlRpRZBt6BSrCAZqSkConhzbmlQqnpKqiRQsSlRpORIrmkZpSVFqSdxsDgCpnhFtCV9pSlipn9Mfm4Cqj8Ju3cRp39Fc6AJqzBzt7xIbjRBfP9SbSkLrmZzbCVFp6lHrCBIbDtTtOYLeDdMt7hEmsgID=I7975422282_1markAsRead=







Other people you may know on LinkedIn


[image: Colin Putney]
 http://www.linkedin.com/blink?simpleRedirect=t7dBtmtvpnhFtCVFfmJB9CZQrSxMbmJJun0JpnhFtCVFbnhPpnlDbmNJpjRDrCBHoS5Ot2pBsDlzpncJpmNFpCZOs70Js7lKpSBPbmhIrScJpSlOfm4Cqj8Ju3cRp39Fc6AJqzBzt7xIbjRBfP9SbSkLrmZzbCVFp6lHrCBIbDtTtOYLeDdMt7hEmsgID=I7975422282_1markAsRead=

 Colin Putney
 http://www.linkedin.com/blink?simpleRedirect=7hPpnlDnSlQqnpKqjRHpipBrm5KbmJJun0JpnhFtCVFbnhPpnlDbmNJpjRDrCBHoS5Ot2pBsDlzpncJpmNFpCZOs70Js7lKpSBPbmhIrScJpSlOfm4Cqj8Ju3cRp39Fc6AJqzBzt7xIbjRBfP9SbSkLrmZzbCVFp6lHrCBIbDtTtOYLeDdMt7hEmsgID=I7975422282_1markAsRead=
   CTO
 at BetterCompany

[image: Francisco Garau]
 http://www.linkedin.com/blink?simpleRedirect=t7dBtmtvpnhFtCVFfmJB9CZQrSxMbmJJun0JpnhFtCVFbnhPpnlDbmNJpjRDrCBHoS5Ot2pBsDlzpncJpmNFpCZOs70Js7lKpSBPbmhIrScJpSlOfm4Cqj8Ju3cRp39Fc6AJqzBzt7xIbjRBfP9SbSkLrmZzbCVFp6lHrCBIbDtTtOYLeDdMt7hEmsgID=I7975422282_1markAsRead=

 Francisco Garau
 http://www.linkedin.com/blink?simpleRedirect=7hPpnlDnSlQqnpKqjRHpipBrm5KbmJJun0JpnhFtCVFbnhPpnlDbmNJpjRDrCBHoS5Ot2pBsDlzpncJpmNFpCZOs70Js7lKpSBPbmhIrScJpSlOfm4Cqj8Ju3cRp39Fc6AJqzBzt7xIbjRBfP9SbSkLrmZzbCVFp6lHrCBIbDtTtOYLeDdMt7hEmsgID=I7975422282_1markAsRead=
   Software
 Developer at JP Morgan

[image: Alessandro Warth]
 http://www.linkedin.com/blink?simpleRedirect=t7dBtmtvpnhFtCVFfmJB9CZQrSxMbmJJun0JpnhFtCVFbnhPpnlDbmNJpjRDrCBHoS5Ot2pBsDlzpncJpmNFpCZOs70Js7lKpSBPbmhIrScJpSlOfm4Cqj8Ju3cRp39Fc6AJqzBzt7xIbjRBfP9SbSkLrmZzbCVFp6lHrCBIbDtTtOYLeDdMt7hEmsgID=I7975422282_1markAsRead=

 Alessandro Warth
 http://www.linkedin.com/blink?simpleRedirect=7hPpnlDnSlQqnpKqjRHpipBrm5KbmJJun0JpnhFtCVFbnhPpnlDbmNJpjRDrCBHoS5Ot2pBsDlzpncJpmNFpCZOs70Js7lKpSBPbmhIrScJpSlOfm4Cqj8Ju3cRp39Fc6AJqzBzt7xIbjRBfP9SbSkLrmZzbCVFp6lHrCBIbDtTtOYLeDdMt7hEmsgID=I7975422282_1markAsRead=
   Principal
 Investigator, Communications Design Group



  You received an invitation to connect. LinkedIn will use your email
 address to make suggestions to our members in features like People You May
 Know. Unsubscribe
 http://www.linkedin.com/blink?simpleRedirect=1DsCZ5cylFsD1Sc3gBoSVLpzRIqm5JpipEqSZLon1Mr71ysn1GoPgZp6Bx9z4Sc30OfmhF9z4JfmhFripFcyRUcPlAcCAMqiRGemdQu6MJfmhFpipQsSlRpRZBt6BSrCAZqSkCkjoPp4l7q5p6sCR6kk4ZrClHrRhAqmQCsSVRfngCqj8Ju3cRp39Fc6AJqzBzt7xIbjRBfP9SbSkLrmZzbCVFp6lHrCBIbDtTtOYLeDdMt7hEmsgID=I7975422282_1markAsRead=
   This
 email was intended for Fundamentals Computing. Learn why we included this.
 http://www.linkedin.com/blink?simpleRedirect=e3wTd3RAimlIoSBQsC4Ct7dBtmtvpnhFtCVFfmJB9CNOlmlzqnpOpldOpmRLt7dRoPRx9CAObnwPdmgOqj1FbmEVoThUr2QZpjYOtyZBbSRLoOVKqmhBqSVFr2VTtTsLbPFMt7hEmsgID=I7975422282_1markAsRead=
   If
 you need assistance or have questions, please contact LinkedIn Customer
 Service
 http://www.linkedin.com/blink?simpleRedirect=t7dBtmtvpnhFtCVFfmJB9CNOlmlzqnpOpldOpmRLt7dRoPRx9CAObnwPdmgOqj1FbmEVoThUr2QZpjYOtyZBbSRLoOVKqmhBqSVFr2VTtTsLbPFMt7hEmsgID=I7975422282_1markAsRead=
 .

© 2014, LinkedIn Corporation. 2029 Stierlin Ct. Mountain View, CA
 94043, USA


 ___
 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] Avaz freespeech

2014-03-11 Thread John Carlson
Maybe you've seen the TED talk on http://avazapp.com/freespeech/  it
appears to be something like intentional software for natural language.
You design what you are trying to communicate using icons and answering
questions to relate the icons.  Once the meaning is captured, the English
is generated using an engine.  The same meaning can be used to generate
other languages.
___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


Re: [fonc] Xml to git: the interesting bit

2014-03-07 Thread John Carlson
From what I've read, git uses a DAG.  I'm not quite sure what makes it
better than XML except people love to hate XML.  I think people who embrace
c, c++, java have tended to jump on the xml bandwagon because those
languages suck at doing things like xml, unless you enjoy using arrays of
object arrays.  I've actually written SAX parsers to go from XML to Java
and back again.  Exercise left to reader.
On Mar 7, 2014 7:05 PM, Loup Vaillant-David l...@loup-vaillant.fr wrote:

 On Fri, Mar 07, 2014 at 11:31:08PM +0600, Attila Lendvai wrote:
  https://plus.google.com/+LinusTorvalds/posts/X2XVf9Q7MfV
 
  nothing interesting if you ask me. a few dozen more shell scripts to
  glue it together and git will work just fine for just about
  anything... :)

 Which by itself sounds most interesting.  Why Git is so widely
 applicable in the first place?  Surely there's power to be drawn from
 that knowledge.

 Loup.
 ___
 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] Xml to git

2014-03-06 Thread John Carlson
See Linus Torvalds post on making git a replacement for xml on the
subsurface project.
___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


Re: [fonc] Evolutionary Debugging :.

2014-01-16 Thread John Carlson
What I was thinking was evolving space travel.  If it is a physics engine,
could it evolve warp drive?  Rockets?
On Jan 16, 2014 4:27 AM, Chris Warburton chriswa...@googlemail.com
wrote:

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

  I'm not sure why evolving explosions is a bug.  You just want to make
 sure
  you survive afterwards.

 It's a great evolutionary strategy. There's no need to survive either;
 the situation is basically you will be killed in a few seconds, but the
 quicker you move in that time, the greater the chance that I'll clone
 you. Exploding doesn't affect their reproduction.

 The bug(s) is in the physics engine. It looks like it's naively
 approximating Newtonian mechanics by integrating with a finite, constant
 dt (rather than infinitesimal dt). This causes large errors in the
 position of the creatures legs if they're moved fast enough, allowing
 them to self-intersect.

 The collision-handling code is then moving these intersecting body parts
 apart, which is effectively applying a huge force to them. These forces
 are unbalanced, breaking Newton's third law, so there is a net force on
 the creatures, which lets them levitate.

 If the collision-handler pushes apart one intersection but causes
 another, the forces will build up. This rebounding allows the
 collision-handler's hack to dominate the simulation and cause the
 creatures to explode.

 Cheers,
 Chris
 ___
 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] Evolutionary Debugging :.

2014-01-15 Thread John Carlson
I'm not sure why evolving explosions is a bug.  You just want to make sure
you survive afterwards.
On Jan 9, 2014 9:29 AM, Chris Warburton chriswa...@googlemail.com wrote:

 Pavel Bažant pbaz...@gmail.com writes:

  I am developing an evolutionary simulation called Evoversum. An
 interesting
  thing I noticed on multiple occasions while developing the program was
 the
  fact that it tends to debug itself. The simulated organisms, as a
  consequence of the Darwinian evolution taking place, are very quick to
  trigger all sorts of bugs, sometimes to their advantage, sometimes
  triggering undefined behavior, destroying their own world. So it seems
  likely that this effect is applicable in other software domains, too.

 Reminds me of a video I saw on YouTube (can't find it at the moment)
 where a genetic algorithm evolved creatures (collections of sticks,
 joints and motors) in a physics simulation. The goal was to move the
 furthest distance, in the hope that they'd walk/crawl/etc. In fact, one
 of them triggers a bug in the simulation which causes it to explode,
 sending its body parts flying in all directions. This immediately
 dominates the population, so all the creatures start exploding.

 I suppose the morals are:

 1) Evolutionary methods are good at finding bugs
 2) Your fitness function is not selecting for what you think it is ;)

 Cheers,
 Chris
 ___
 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] POL/DSL for security

2014-01-06 Thread John Carlson
Is anyone interested in a POL/DSL for security?   What's out there now?  I
am thinking of a language which describes attacks, defenses, and
vunerabilities (and perhaps superpowers), as well as faux-attacks,
faux-defenses, and faux-vunerabilities (and perhaps faux-superpowers).

A Granovetter diagram would be a very high level statement in such a
language.

Thanks,

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


Re: [fonc] Task management in a world without apps.

2013-10-31 Thread John Carlson
Essentially a problem oriented window is what you want.  In something like
Lively Kernel, this becomes a problem oriented widget.
On Oct 31, 2013 10:30 AM, Casey Ransberger casey.obrie...@gmail.com
wrote:

 A fun, but maybe idealistic idea: an application of a computer should
 just be what one decides to do with it at the time.

 I've been wondering how I might best switch between tasks (or really
 things that aren't tasks too, like toys and documentaries and symphonies)
 in a world that does away with most of the application level modality that
 we got with the first Mac.

 The dominant way of doing this with apps usually looks like either the OS
 X dock or the Windows 95 taskbar. But if I wanted less shrink wrap and more
 interoperability between the virtual things I'm interacting with on a
 computer, without forcing me to multitask (read: do more than one thing
 at once very badly,) what's my best possible interaction language look like?

 I would love to know if these tools came from some interesting research
 once upon a time. I'd be grateful for any references that can be shared.
 I'm also interested in hearing any wild ideas that folks might have, or
 great ideas that fell by the wayside way back when.

 Out of curiosity, how does one change one's mood when interacting with
 Frank?

 Casey
 ___
 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] Compiling COLA on x86_64

2013-10-10 Thread John Carlson
Symlink might help
On Oct 10, 2013 8:15 PM, Simon Forman sfor...@hushmail.com wrote:

 I checked out COLA from http://piumarta.com/svn2/idst/trunk and tried
 compiling but I encountered an error.

 cp -p CodeGenerator-x86_64.st CodeGenerator-local.st
 cp: cannot stat `CodeGenerator-x86_64.st': No such file or directory

 There are CodeGenerator-*.st files for arm, i386, and ppc.

 Perhaps this is due to compiling on a 64-bit system (Ubuntu linux)?  Is
 there something simple I can do to the makefile to get it to work?  A
 define maybe?

 Warm regards,
 ~Simon


 --

 The history of mankind for the last four centuries is rather like that of
 an imprisoned sleeper, stirring clumsily and uneasily while the prison that
 restrains and shelters him catches fire, not waking but incorporating the
 crackling and warmth of the fire with ancient and incongruous dreams, than
 like that of a man consciously awake to danger and opportunity.
 --H. P. Wells, A Short History of the World

 ___
 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] Compiling COLA on x86_64

2013-10-10 Thread John Carlson
Or just copy the i386 file to name it's expecting.
On Oct 10, 2013 8:18 PM, John Carlson yottz...@gmail.com wrote:

 Symlink might help
 On Oct 10, 2013 8:15 PM, Simon Forman sfor...@hushmail.com wrote:

 I checked out COLA from http://piumarta.com/svn2/idst/trunk and tried
 compiling but I encountered an error.

 cp -p CodeGenerator-x86_64.st CodeGenerator-local.st
 cp: cannot stat `CodeGenerator-x86_64.st': No such file or directory

 There are CodeGenerator-*.st files for arm, i386, and ppc.

 Perhaps this is due to compiling on a 64-bit system (Ubuntu linux)?  Is
 there something simple I can do to the makefile to get it to work?  A
 define maybe?

 Warm regards,
 ~Simon


 --

 The history of mankind for the last four centuries is rather like that of
 an imprisoned sleeper, stirring clumsily and uneasily while the prison
 that
 restrains and shelters him catches fire, not waking but incorporating the
 crackling and warmth of the fire with ancient and incongruous dreams, than
 like that of a man consciously awake to danger and opportunity.
 --H. P. Wells, A Short History of the World

 ___
 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] Personal Programming Environment as Extension of Self

2013-09-24 Thread John Carlson
We developed an s-expression-like client-server based UI protocol.  We used
class ids and object ids.  It was very difficult to debug.  So much so that
I developed a non distributed version (well it used X11).  Note that we
used string length for our strings.  It was more of an issue of numbers
everywhere that caused the confusion.  When HTML came out, we abandoned our
protocol.  Learn from the past.  HTML also knocked out other distributed
options like NeWS and Display PostScript.  These were lower level than HTML
for a long time.  I encourage you to leverage HTML and JavaScript to the
extent you need to, but beware of more understandable protocols happening
at the same level or above.  Sometimes giving up expressive power can be
better in the short run to gain market share.  That is, the best product
doesn't always win.

John
On Sep 24, 2013 10:54 AM, David Barbour dmbarb...@gmail.com wrote:

 Even Lisp isn't parentheses balanced by definition, because you can do
 this:

 '())

 In that same sense my bytecode is block balanced, except in text.

   [ [ [] [] ] [] ]

  { ] }

 The idea of using number of chars is possible, something like:

   {42|forty two characters here.

 But that would also be very difficult to use in a streaming bytecode. It's
 also difficult to read. I've always felt that bytecode should at least be
 slightly legible, so I can easily get a sense of what's happening just by
 looking at the raw streams, even though I don't expect people to program in
 bytecode directly (nor read it that way often).

 On Tue, Sep 24, 2013 at 12:49 AM, Pavel Bažant pbaz...@gmail.com wrote:

 I don't know the details of your language, but I see two possibilities:
 1) If the textual representation of your language is parenthesis-balanced
 by definition, just do what Lisp does.
 2) If not, format quoted text like quote number_of_chars char char char
 
 Yes I know 2) is fragile, but so is escaping.


 On Tue, Sep 24, 2013 at 7:24 AM, David Barbour dmbarb...@gmail.comwrote:

 Oh, I see. As I mentioned in the first message, I plan on UTF-8 text
 being one of the three basic types in ABC. There is text, rational numbers,
 and blocks. Even if I'm not using names, I think text is very useful for
 tagged values and such.

   {Hello, World!}

 Text is also one of the problems I've been banging my head against since
 Friday. Thing is, I really hate escapes. They have this nasty geometric
 progression when dealing with deeply quoted code:

  {} - {{\}} - {{{\\\}\}} - \\\}\\\}\}} -
 {\\\}\\\}\\\}\}}

 I feel escapes are too easy to handle incorrectly, and too difficult to
 inspect for correctness. I'm currently contemplating a potential solution:
 require all literal text to use balanced `{` and `}` characters, and use
 post-processing in ABC to introduce any imbalance. This could be performed
 in a streaming manner. Inductively, all quoted code would be balanced.

 Best,

 Dave





 On Mon, Sep 23, 2013 at 9:28 PM, John Carlson yottz...@gmail.comwrote:

 I don't really have a big concern.  If you just support numbers, people
 will find clever, but potentially incompatible ways of doing strings.  I
 recall in the pre-STL days supporting 6 different string classes.  I
 understand that a name is different than a string, but I come from a perl
 background.  People don't reinvent strings in perl to my knowledge.
  On Sep 23, 2013 11:15 PM, David Barbour dmbarb...@gmail.com wrote:

 I think it's fine if people model names, text, documents, association
 lists, wikis, etc. -- and processing thereof.

 And I do envision use of graphics as a common artifact structure, and
 just as easily leveraged for any explanation as text (though I imagine 
 most
 such graphics will also have text associated).

 Can you explain your concern?
  On Sep 23, 2013 8:16 PM, John Carlson yottz...@gmail.com wrote:

 Don't forget that words can be images, vector graphics or 3D
 graphics.  If you have an open system, then people will incorporate
 names/symbols.  I'm not sure you want to avoid symbolic processing, but
 that's your choice.

 I'm reminded of the omgcraft ad for cachefly.
 John
 On Sep 23, 2013 8:11 PM, David Barbour dmbarb...@gmail.com wrote:

 Okay, so if I understand correctly you want everyone to see the same
 thing, and just deal with the collisions when they occur.

 You also plan to mitigate this by using some visual indicators when
 that word doesn't mean what you think it means.  This would require
 search before rendering, but perhaps it could be a search of the user's
 personal dictionary - i.e. ambiguity only within a learned set. I 
 wonder if
 we could use colors or icons to help disambiguate.

 A concern I have about this design is when words have meanings that
 are subtly but significantly different. Selecting among these 
 distinctions
 takes extra labor compared to using different words or parameterizing 
 the
 distinctions. But perhaps this also

Re: [fonc] Personal Programming Environment as Extension of Self

2013-09-23 Thread John Carlson
Don't forget that words can be images, vector graphics or 3D graphics.  If
you have an open system, then people will incorporate names/symbols.  I'm
not sure you want to avoid symbolic processing, but that's your choice.

I'm reminded of the omgcraft ad for cachefly.
John
On Sep 23, 2013 8:11 PM, David Barbour dmbarb...@gmail.com wrote:

 Okay, so if I understand correctly you want everyone to see the same
 thing, and just deal with the collisions when they occur.

 You also plan to mitigate this by using some visual indicators when that
 word doesn't mean what you think it means.  This would require search
 before rendering, but perhaps it could be a search of the user's personal
 dictionary - i.e. ambiguity only within a learned set. I wonder if we could
 use colors or icons to help disambiguate.

 A concern I have about this design is when words have meanings that are
 subtly but significantly different. Selecting among these distinctions
 takes extra labor compared to using different words or parameterizing the
 distinctions. But perhaps this also could be mitigated, through automatic
 refactoring of the personal dictionary (such that future exposure to a
 given word will automatically translate it).

 I titled this Personal Programming Environment as Extension of Self
 because I think it should reflect our own metaphors, our own thoughts,
 while still being formally precise when we share values. Allowing me to use
 your words, your meanings, your macros is one thing - a learning
 experience. Asking me to stick with it, when I have different subtle
 distinctions I favor, is something else.

 Personally, I think making the community see the same things is less
 important so long as they can share and discover by *meaning* of content
 rather than by the words used to describe it. Translator packages could be
 partially automated and further maintained implicitly with permission from
 the people who explore different projects and small communities.

 Can we create systems that enable people to use the same words and
 metaphors with subtly different meanings, but still interact efficiently,
 precisely, and unambiguously?

 Best,

 Dave


 On Mon, Sep 23, 2013 at 5:26 PM, Sean McDirmid smcd...@microsoft.comwrote:

  The names are for people, and should favor readability over uniqueness
 in the namespace; like ambiguous English words context should go a long way
 in helping the reader understand on their own (if not, they can do some
 mouse over). We can even do fancy things with the names when they are being
 rendered, like, if they are ambiguous, underlay them with a dis-ambiguating
 qualifier. The world is wide open once you’ve mastered how to build a code
 editor! Other possibilities include custom names, or multi-lingual names,
 but I’m worried about different developers “seeing” different things…we’d
 like to develop a community that sees the same things.

 ** **

 The trick is mastering search and coming up with an interface so that it
 becomes as natural as identifier input. 

 ** **

 *From:* augmented-programm...@googlegroups.com [mailto:
 augmented-programm...@googlegroups.com] *On Behalf Of *David Barbour
 *Sent:* Tuesday, September 24, 2013 5:10 AM
 *To:* augmented-programm...@googlegroups.com

 *Subject:* Re: Personal Programming Environment as Extension of Self

 ** **

 It isn't clear to me what you're suggesting. That module names be subject
 to... edit-time lookups? Hyperlinks within the Wiki are effectively full
 URLs? That could work pretty well, I think, though it definitely favors the
 editor over the reader. 

 ** **

 Maybe what we need is a way for each user to have a personal set of
 PetNames.

 ** **

http://www.skyhunter.com/marcs/petnames/IntroPetNames.html

 ** **

 This way the reader sees xrefs in terms of her personal petname list, and
 the writer writes xrefs in terms of his.

 ** **

 I was actually contemplating this design at a more content-based layer:**
 **

 ** **

 * a sequence of bytecode may be given a 'pet-name' by a user, i.e. as a
 consequence of documenting or explaining their actions. 

 * when an equivalent sequence of bytecode is seen, we name it by the
 user's pet-name.

 *rewriting can help search for equivalencies.

 * unknown bytecode can be classifed by ML, animated, etc. to help
 highlight how it is different.  

 * we can potentially search in terms of code that 'does' X, Y, and Z at
 various locations. 

 * similarly, we can potentially search in terms of code that 'affords'
 operations X, Y, and Z.

 ** **

 I think both ideas could work pretty well together, especially since
 '{xref goes here}{lookup}$' itself could given a pet name.

 ** **

 ** **

 On Mon, Sep 23, 2013 at 1:41 PM, Sean McDirmid smcd...@microsoft.com
 wrote:

  Maybe think of it as a module rather than a namespace. I'm still quite
 against namespaces or name based resolution in the language semantics;
 names are 

Re: [fonc] Personal Programming Environment as Extension of Self

2013-09-23 Thread John Carlson
I don't really have a big concern.  If you just support numbers, people
will find clever, but potentially incompatible ways of doing strings.  I
recall in the pre-STL days supporting 6 different string classes.  I
understand that a name is different than a string, but I come from a perl
background.  People don't reinvent strings in perl to my knowledge.
On Sep 23, 2013 11:15 PM, David Barbour dmbarb...@gmail.com wrote:

 I think it's fine if people model names, text, documents, association
 lists, wikis, etc. -- and processing thereof.

 And I do envision use of graphics as a common artifact structure, and just
 as easily leveraged for any explanation as text (though I imagine most such
 graphics will also have text associated).

 Can you explain your concern?
  On Sep 23, 2013 8:16 PM, John Carlson yottz...@gmail.com wrote:

 Don't forget that words can be images, vector graphics or 3D graphics.
 If you have an open system, then people will incorporate names/symbols.
 I'm not sure you want to avoid symbolic processing, but that's your choice.

 I'm reminded of the omgcraft ad for cachefly.
 John
 On Sep 23, 2013 8:11 PM, David Barbour dmbarb...@gmail.com wrote:

 Okay, so if I understand correctly you want everyone to see the same
 thing, and just deal with the collisions when they occur.

 You also plan to mitigate this by using some visual indicators when
 that word doesn't mean what you think it means.  This would require
 search before rendering, but perhaps it could be a search of the user's
 personal dictionary - i.e. ambiguity only within a learned set. I wonder if
 we could use colors or icons to help disambiguate.

 A concern I have about this design is when words have meanings that are
 subtly but significantly different. Selecting among these distinctions
 takes extra labor compared to using different words or parameterizing the
 distinctions. But perhaps this also could be mitigated, through automatic
 refactoring of the personal dictionary (such that future exposure to a
 given word will automatically translate it).

 I titled this Personal Programming Environment as Extension of Self
 because I think it should reflect our own metaphors, our own thoughts,
 while still being formally precise when we share values. Allowing me to use
 your words, your meanings, your macros is one thing - a learning
 experience. Asking me to stick with it, when I have different subtle
 distinctions I favor, is something else.

 Personally, I think making the community see the same things is less
 important so long as they can share and discover by *meaning* of content
 rather than by the words used to describe it. Translator packages could be
 partially automated and further maintained implicitly with permission from
 the people who explore different projects and small communities.

 Can we create systems that enable people to use the same words and
 metaphors with subtly different meanings, but still interact efficiently,
 precisely, and unambiguously?

 Best,

 Dave


 On Mon, Sep 23, 2013 at 5:26 PM, Sean McDirmid smcd...@microsoft.comwrote:

  The names are for people, and should favor readability over
 uniqueness in the namespace; like ambiguous English words context should go
 a long way in helping the reader understand on their own (if not, they can
 do some mouse over). We can even do fancy things with the names when they
 are being rendered, like, if they are ambiguous, underlay them with a
 dis-ambiguating qualifier. The world is wide open once you’ve mastered how
 to build a code editor! Other possibilities include custom names, or
 multi-lingual names, but I’m worried about different developers “seeing”
 different things…we’d like to develop a community that sees the same 
 things.
 

 ** **

 The trick is mastering search and coming up with an interface so that
 it becomes as natural as identifier input. 

 ** **

 *From:* augmented-programm...@googlegroups.com [mailto:
 augmented-programm...@googlegroups.com] *On Behalf Of *David Barbour
 *Sent:* Tuesday, September 24, 2013 5:10 AM
 *To:* augmented-programm...@googlegroups.com

 *Subject:* Re: Personal Programming Environment as Extension of Self***
 *

 ** **

 It isn't clear to me what you're suggesting. That module names be
 subject to... edit-time lookups? Hyperlinks within the Wiki are effectively
 full URLs? That could work pretty well, I think, though it definitely
 favors the editor over the reader. 

 ** **

 Maybe what we need is a way for each user to have a personal set of
 PetNames.

 ** **

http://www.skyhunter.com/marcs/petnames/IntroPetNames.html

 ** **

 This way the reader sees xrefs in terms of her personal petname list,
 and the writer writes xrefs in terms of his.

 ** **

 I was actually contemplating this design at a more content-based layer:
 

 ** **

 * a sequence of bytecode may be given a 'pet-name' by a user, i.e. as a
 consequence of documenting or explaining their actions

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

2013-09-10 Thread John Carlson
Here's a short description, if you don't want to haul through the entire
thesis:



On Mon, Sep 9, 2013 at 7:54 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



 ___
 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-10 Thread John Carlson
mail got sent too fast...from Watch What I Do:

http://acypher.com/wwid/Chapters/05SmallStar.html


On Tue, Sep 10, 2013 at 11:36 AM, John Carlson yottz...@gmail.com wrote:

 Here's a short description, if you don't want to haul through the entire
 thesis:



 On Mon, Sep 9, 2013 at 7:54 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



 ___
 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-10 Thread John Carlson
It may be helpful to view everything as an editor.  Something like SUIT
(the Simple User Interface Toolkit):
http://research.microsoft.com/en-us/um/people/rdeline/publications/uist-91.pdf
I'm thinking the web is finally getting to a point where everything is
editable again.


On Tue, Sep 10, 2013 at 12:54 PM, John Carlson yottz...@gmail.com wrote:

 To unify PL and UI:

 values: Date Calculator, String Calculator, Numeric Calculator,
 Zipper/Document Visualizer
 behavior, code:  Recorder (the container), Script,
 Branch/Table/Conditional/Recursion/Procedure/Function/Method (Unified
 Control Structure)
   Also, Exceptions (has anyone seen a UI for this?)
 signals:  Mouse, along with x,y coordinates
   Keyboard and Keystrokes
   Audio: waveform and controls
   Webcam:  video and controls
   Networking:  the extend/receive I/O operation
   System interface:  pipes, command prompt



 On Tue, Sep 10, 2013 at 12:25 PM, David Barbour dmbarb...@gmail.comwrote:

 I think we cannot rely on 'inspection' - ability to view source and so on
 - except in a very shallow way - e.g. to find capabilities directly
 underlying a form. Relying on deep inspection seems to have several
 problems:

 1) First it would take a lot more study and knowledge to figure out the
 intention of code, to distinguish the significant behavior from the
 insignificant. Intentions could be easily obfuscated.

 2) Since it would be difficult to embed this 'study and knowledge' into
 our programs, it would become very difficult to automate composition,
 transclusion, view-transforms, and programmatic manipulation of UIs. We
 would rely on too much problem-specific knowledge.

 3) When so much logic is embedded in the surface of the UI, it becomes
 easy for widgets to become entangled with the ambient logic and state. This
 makes it infeasible to extract, at a fine granularity, a few specific
 signals and capabilities from one form for use in another.

 4) Relying on deep inspection can violate encapsulation and security
 properties. It would be difficult to move beyond a closed system into the
 wider world - cross-application mashups, agents that integrate independent
 services, and so on.

 If I'm to unify PL with UI, I cannot assume that I have access to the
 code underlying the UI. Instead, I must ensure that the UI is a good PL at
 the surface layer. We can understand UIs to be programming languages, but
 often they are not very good languages with respect to composition,
 modularity, appropriate level of abstraction. That's the problem to solve -
 at the surface layer, not (just) under-the-hood.

 In such a system, copy-and-paste code could be *exactly the same* as
 copy-and-paste UI, though there may be different types of values
 involved. We could have blocks of code that can be composed or directly
 applied to UI elements - programmatically transforming or operating on
 them. The moment users are forced to 'look under the hood' and extract
 specification, the ideal fails. UI and PL are separated. There are now two
 distinct surface syntaxes, two distinct meanings and semantics, and a gap
 between them bridged with arcane logic.

 To unify PL and UI, widgets must *be* values, behaviors, signals, code.

 And any looking under the hood must be formally represented as
 reflection or introspection, just as it would be in a PL.

 On Mon, Sep 9, 2013 at 3:47 PM, John Carlson yottz...@gmail.com wrote:

 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

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

2013-09-10 Thread John Carlson
To unify PL and UI:

values: Date Calculator, String Calculator, Numeric Calculator,
Zipper/Document Visualizer
behavior, code:  Recorder (the container), Script,
Branch/Table/Conditional/Recursion/Procedure/Function/Method (Unified
Control Structure)
  Also, Exceptions (has anyone seen a UI for this?)
signals:  Mouse, along with x,y coordinates
  Keyboard and Keystrokes
  Audio: waveform and controls
  Webcam:  video and controls
  Networking:  the extend/receive I/O operation
  System interface:  pipes, command prompt



On Tue, Sep 10, 2013 at 12:25 PM, David Barbour dmbarb...@gmail.com wrote:

 I think we cannot rely on 'inspection' - ability to view source and so on
 - except in a very shallow way - e.g. to find capabilities directly
 underlying a form. Relying on deep inspection seems to have several
 problems:

 1) First it would take a lot more study and knowledge to figure out the
 intention of code, to distinguish the significant behavior from the
 insignificant. Intentions could be easily obfuscated.

 2) Since it would be difficult to embed this 'study and knowledge' into
 our programs, it would become very difficult to automate composition,
 transclusion, view-transforms, and programmatic manipulation of UIs. We
 would rely on too much problem-specific knowledge.

 3) When so much logic is embedded in the surface of the UI, it becomes
 easy for widgets to become entangled with the ambient logic and state. This
 makes it infeasible to extract, at a fine granularity, a few specific
 signals and capabilities from one form for use in another.

 4) Relying on deep inspection can violate encapsulation and security
 properties. It would be difficult to move beyond a closed system into the
 wider world - cross-application mashups, agents that integrate independent
 services, and so on.

 If I'm to unify PL with UI, I cannot assume that I have access to the code
 underlying the UI. Instead, I must ensure that the UI is a good PL at the
 surface layer. We can understand UIs to be programming languages, but often
 they are not very good languages with respect to composition, modularity,
 appropriate level of abstraction. That's the problem to solve - at the
 surface layer, not (just) under-the-hood.

 In such a system, copy-and-paste code could be *exactly the same* as
 copy-and-paste UI, though there may be different types of values
 involved. We could have blocks of code that can be composed or directly
 applied to UI elements - programmatically transforming or operating on
 them. The moment users are forced to 'look under the hood' and extract
 specification, the ideal fails. UI and PL are separated. There are now two
 distinct surface syntaxes, two distinct meanings and semantics, and a gap
 between them bridged with arcane logic.

 To unify PL and UI, widgets must *be* values, behaviors, signals, code.

 And any looking under the hood must be formally represented as
 reflection or introspection, just as it would be in a PL.

 On Mon, Sep 9, 2013 at 3:47 PM, John Carlson yottz...@gmail.com wrote:

 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

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

2013-09-10 Thread John Carlson
Does Minecraft have a way to compile a world (particularly redstone) to
machine code?  Is it still a challenge to go from a 3D representation to a
machine language or machine representation?  We have at several levels with
Minecraft: the machine, the JVM, Minecraft byte code, Minecraft source
code, the minecraft world, and activity within the world.  Can we reduce
this to the machine, the world, and activity?  I believe this is a STEP
goal, even blurring the lines between the world and the machine through
FPGAs, so we get down to just the machine and activity.  How much circuitry
would a Minecraft world take up?  Has anyone done calculations?  Could it
fit on a raspberry pi like machine?  This may be relevant:
http://pi.minecraft.net/ :(requires X11 apparently)

John


On Tue, Sep 10, 2013 at 12:54 PM, John Carlson yottz...@gmail.com wrote:

 To unify PL and UI:

 values: Date Calculator, String Calculator, Numeric Calculator,
 Zipper/Document Visualizer
 behavior, code:  Recorder (the container), Script,
 Branch/Table/Conditional/Recursion/Procedure/Function/Method (Unified
 Control Structure)
   Also, Exceptions (has anyone seen a UI for this?)
 signals:  Mouse, along with x,y coordinates
   Keyboard and Keystrokes
   Audio: waveform and controls
   Webcam:  video and controls
   Networking:  the extend/receive I/O operation
   System interface:  pipes, command prompt



 On Tue, Sep 10, 2013 at 12:25 PM, David Barbour dmbarb...@gmail.comwrote:

 I think we cannot rely on 'inspection' - ability to view source and so on
 - except in a very shallow way - e.g. to find capabilities directly
 underlying a form. Relying on deep inspection seems to have several
 problems:

 1) First it would take a lot more study and knowledge to figure out the
 intention of code, to distinguish the significant behavior from the
 insignificant. Intentions could be easily obfuscated.

 2) Since it would be difficult to embed this 'study and knowledge' into
 our programs, it would become very difficult to automate composition,
 transclusion, view-transforms, and programmatic manipulation of UIs. We
 would rely on too much problem-specific knowledge.

 3) When so much logic is embedded in the surface of the UI, it becomes
 easy for widgets to become entangled with the ambient logic and state. This
 makes it infeasible to extract, at a fine granularity, a few specific
 signals and capabilities from one form for use in another.

 4) Relying on deep inspection can violate encapsulation and security
 properties. It would be difficult to move beyond a closed system into the
 wider world - cross-application mashups, agents that integrate independent
 services, and so on.

 If I'm to unify PL with UI, I cannot assume that I have access to the
 code underlying the UI. Instead, I must ensure that the UI is a good PL at
 the surface layer. We can understand UIs to be programming languages, but
 often they are not very good languages with respect to composition,
 modularity, appropriate level of abstraction. That's the problem to solve -
 at the surface layer, not (just) under-the-hood.

 In such a system, copy-and-paste code could be *exactly the same* as
 copy-and-paste UI, though there may be different types of values
 involved. We could have blocks of code that can be composed or directly
 applied to UI elements - programmatically transforming or operating on
 them. The moment users are forced to 'look under the hood' and extract
 specification, the ideal fails. UI and PL are separated. There are now two
 distinct surface syntaxes, two distinct meanings and semantics, and a gap
 between them bridged with arcane logic.

 To unify PL and UI, widgets must *be* values, behaviors, signals, code.

 And any looking under the hood must be formally represented as
 reflection or introspection, just as it would be in a PL.

 On Mon, Sep 9, 2013 at 3:47 PM, John Carlson yottz...@gmail.com wrote:

 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

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

2013-09-10 Thread John Carlson
If your sum/product is or/and, I tend to agree there is difficulty.  We
chose to use a normalized representation:  the same number of factors for
each term, true used liberally as a factor.  In many cases, there were
only two branches to take.  I spent a great deal of time coming up with a
table which handled repetition, mandatory, optional and floating components
in the product, but it got so difficult to be implemented and tested
especially, that I gave up and implemented 997 acknowledgements in C++.  I
think our translation analyst may have been unique among EDI/X12 analysts
for not using components designed specifically for X12 beyond the 997
acknowledge code.  Instead we used something like tab-separated values to
parse the X12...which was much less flexible...we couldn't read the
separators from X12 file--they had to be constants in the code.  However,
it might be possible that he used my fancy table, but I never heard of any
bug reports, so I doubt it.  That's where I learn the rule don't make
anything so complex you can't debug it, or automate tests for it.  This is
likely why we see much more XML than X12 these days.  If you don't know
what X12 is,  think of a mixture between s-expressions and comma separated
values.
On Sep 10, 2013 7:13 PM, David Barbour dmbarb...@gmail.com wrote:

 This is a good list of concept components.

 I think branching should be open - I.e. modeled as a collection where only
 one item is 'active' at a time. There is a clear duality between sums and
 products, and interestingly a lot of the same UIs apply (i.e.
 prisms/lenses, zippers for sum types). (But there can be some awkwardness
 distributing sums over products.)

 Recursion is an interesting case. One can model it as a closed value, or
 as a fixpoint combinator. But to keep the UI/PL extensible, it might be
 better to avoid closed loops (especially if they maintain state). Open loop
 recursion happens easily and naturally enough if we have any shared state
 resources, such as a database or tuple space... or the world itself (via
 sensors and actuators).

 Exceptions: in general, exceptions are not difficult to model as
 choices/branches (a path of a sum type). I've usually considered this a
 better way to model them. This can be combined with searching the
 environment for some advice on how to handle the condition - I.e. in terms
 of a dynamic scoped 'special' variable, or (in a concatenative language)
 literally searching a stack or other environment model.

 Keyboard/video/mouse/audio would be a good start for signals on the UI
 side. I've been wondering how to get a lot of useful control signals
 quickly... Maybe integrate with ROS from WillowGarage?
 On Sep 10, 2013 10:54 AM, John Carlson yottz...@gmail.com wrote:

 To unify PL and UI:

 values: Date Calculator, String Calculator, Numeric Calculator,
 Zipper/Document Visualizer
 behavior, code:  Recorder (the container), Script,
 Branch/Table/Conditional/Recursion/Procedure/Function/Method (Unified
 Control Structure)
   Also, Exceptions (has anyone seen a UI for this?)
 signals:  Mouse, along with x,y coordinates
   Keyboard and Keystrokes
   Audio: waveform and controls
   Webcam:  video and controls
   Networking:  the extend/receive I/O operation
   System interface:  pipes, command prompt



 On Tue, Sep 10, 2013 at 12:25 PM, David Barbour dmbarb...@gmail.comwrote:

 I think we cannot rely on 'inspection' - ability to view source and so
 on - except in a very shallow way - e.g. to find capabilities directly
 underlying a form. Relying on deep inspection seems to have several
 problems:

 1) First it would take a lot more study and knowledge to figure out the
 intention of code, to distinguish the significant behavior from the
 insignificant. Intentions could be easily obfuscated.

 2) Since it would be difficult to embed this 'study and knowledge' into
 our programs, it would become very difficult to automate composition,
 transclusion, view-transforms, and programmatic manipulation of UIs. We
 would rely on too much problem-specific knowledge.

 3) When so much logic is embedded in the surface of the UI, it becomes
 easy for widgets to become entangled with the ambient logic and state. This
 makes it infeasible to extract, at a fine granularity, a few specific
 signals and capabilities from one form for use in another.

 4) Relying on deep inspection can violate encapsulation and security
 properties. It would be difficult to move beyond a closed system into the
 wider world - cross-application mashups, agents that integrate independent
 services, and so on.

 If I'm to unify PL with UI, I cannot assume that I have access to the
 code underlying the UI. Instead, I must ensure that the UI is a good PL at
 the surface layer. We can understand UIs to be programming languages, but
 often they are not very good languages with respect to composition,
 modularity, appropriate level

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


[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

Re: [fonc] Final STEP progress report abandoned?

2013-09-05 Thread John Carlson
On Sep 5, 2013 11:18 AM, David Barbour dmbarb...@gmail.com wrote:

 But it's easy to forget that life had millions or billions of years to
get where it's at, and that it has burned through materials, that it fails
to recognize the awesomeness of many of the really cool 'programs' it has
created (like Wolfgang Amadeus Mozart ;).

We recognize mozart and copy him, and innovate on top of him like EMI and
Emily did or could.  I believe our culture lives in a bit of paranoia about
accepting others programs, and that's where we fail.  We also think that
government research should not compete with commercial interests--at least
when research is being done by a nonprofit.

Has anyone done research on improving programs?  I know of some where you
try to find bugs in programs.  What about actually detecting and replacing
or improving algorithms?
___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


Re: [fonc] Final STEP progress report abandoned?

2013-09-05 Thread John Carlson
On Sep 5, 2013 11:57 AM, David Barbour dmbarb...@gmail.com wrote:


 On Thu, Sep 5, 2013 at 9:41 AM, John Carlson yottz...@gmail.com wrote:

 Has anyone done research on improving programs?  I know of some where
you try to find bugs in programs.  What about actually detecting and
replacing or improving algorithms?

 Juergen's work on the Goedel machine seems related.

I had stumbled upon Juergen's page a few years ago.  Thanks for the
reminder.  I'm still trying to figure out how to apply it.
___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


Re: [fonc] Final STEP progress report abandoned?

2013-09-05 Thread John Carlson
So I guess I would apply a goedel machine by looking at http request and
response or sql*net request and response.  Is there a goedel machine that
work on 2 inputs and 2 outputs, or do you just label them, reducing the
number of inputs and outputs?
On Sep 5, 2013 12:22 PM, John Carlson yottz...@gmail.com wrote:


 On Sep 5, 2013 11:57 AM, David Barbour dmbarb...@gmail.com wrote:
 
 
  On Thu, Sep 5, 2013 at 9:41 AM, John Carlson yottz...@gmail.com wrote:
 
  Has anyone done research on improving programs?  I know of some where
 you try to find bugs in programs.  What about actually detecting and
 replacing or improving algorithms?
 
  Juergen's work on the Goedel machine seems related.

 I had stumbled upon Juergen's page a few years ago.  Thanks for the
 reminder.  I'm still trying to figure out how to apply it.

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


Re: [fonc] Final STEP progress report abandoned?

2013-09-05 Thread John Carlson
What is an impact map model?  Is it something like a use case?
On Sep 5, 2013 12:33 PM, John Nilsson j...@milsson.nu wrote:

 Even if the different domains are different it should still be possible to
 generalize the basic framework and strategy used.
 I imagine layers of models each constrained by the upper metamodel and a
 fitness function feeding a generator to create the next layer down until
 you reach the bottom executable layer.
 In a sense this is what humans do no? Begin with the impact map model ,
 derive from that an activity model, derive from that a high level activity
 support model, derive from that acceptance criteria, derive from that
 acceptance test examples, derive from that a low level interaction state
 machine an so on...

 In the human case I belive the approach modelled by the kanban katas seems
 appropriate. Nested stacks of hypotheses to try in a disciplined PDCA
 cycle.

 BR
 John

 ___
 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] Final STEP progress report abandoned?

2013-09-04 Thread John Carlson
On Sep 3, 2013 8:25 PM, Casey Ransberger casey.obrie...@gmail.com wrote:

 It yields a kind of syntaxlessness that's interesting.

Our TWB/TE language was mostly syntaxless.  Instead, you performed
operations on desktop objects that were recorded (like AppleScript, but
with an iconic language).  You could even record while the program was
running.  We had a tiny bit of syntax in our predicates, stuff like range
and set notation.

Can anyone describe Minecraft's syntax and semantics?
___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


Re: [fonc] Final STEP progress report abandoned?

2013-09-04 Thread John Carlson
I meant to say you could perform and record operations while the program
was running.

I think people have missed machine language as syntaxless.
On Sep 4, 2013 4:17 PM, John Carlson yottz...@gmail.com wrote:


 On Sep 3, 2013 8:25 PM, Casey Ransberger casey.obrie...@gmail.com
 wrote:

  It yields a kind of syntaxlessness that's interesting.

 Our TWB/TE language was mostly syntaxless.  Instead, you performed
 operations on desktop objects that were recorded (like AppleScript, but
 with an iconic language).  You could even record while the program was
 running.  We had a tiny bit of syntax in our predicates, stuff like range
 and set notation.

 Can anyone describe Minecraft's syntax and semantics?

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


Re: [fonc] Fwd: Programmer Models integrating Program and IDE

2013-08-29 Thread John Carlson
Multiple cursors...like having one cursor at the beginning of a line and
moving that cursor to the next line etc.   Then if the doc was a flat file,
have two cursors which are at columns 5 and 9 relative to the first cursor
and row 0 relative to the first cursor--this defines a selection which can
be copied.  Then write a loop that processes every row, essentially moving
the selection down the column of text.  You could have multiple selected
text regions in the document.
On Aug 29, 2013 5:47 PM, David Barbour dmbarb...@gmail.com wrote:

 [fwd to fonc]

 Use of tree zippers to model multi-media documents in the type system is
 an interesting possibility. It seems obvious in hindsight, but I had been
 focusing on other problem spaces.

 Hmm. I wonder if it might be intuitive to place the doc as an object on
 the stack, then use the stack for the up/down (inclusion/extrusion) zipper
 ops, allowing ops on sub-docs, as opposed to always keeping the full tree
 as the top stack item. OTOH, either approach would be limited to one
 cursor.

 What are you envisioning when you say multiple cursors? I can't think
 how to do that without picking the doc apart and essentially modeling
 hyperlinks (I.e. putting different divs on different named stacks so I can
 have a different cursor in each div, then using a logical href to docs on
 other stacks). This might or might not fit what you're imagining.

 (I can easily model full multi-stack environments as first-class types.
 This might also be a favorable approach to representing docs.)

 Model transform by example sounds like something this design could be very
 good for. Actually, I was imagining some of Bret Victor's drawing examples
 (where it builds a procedure) would also be a good fit.

 My language has a name: Awelon.  But thanks for offering the name of your
 old project. :)


 On Aug 29, 2013 2:11 PM, John Carlson yottz...@gmail.com wrote:

 I was suggesting MOOSE as a working name for your project.

 I used to keep a list of features for MOOSE that I wanted to develop.
 MOOSE (future) was the next step beyond TWB/TE (now) that never got
 funded.  TWB was single threaded for the most part.  I have done some work
 on creating multiple recorder desktop objects. MOOSE would have had a way
 to create new desktop objects as types, instead of creating them in C++.
 There would have been way to create aggregate desktop objects, either as
 lists or maps.  I would have provided better navigation for Forms, which
 are essentially used for XML  and EDI/X12.  One thing I recall wanting to
 add was some kind of parser for desktop objects in addition to text file
 parsers and C++ persistent object parsers.

 RPN was only for the calculator.  The other stack that we had was the
 undo stack for reversible debugging.

 I believe an extension to VIPR was to add object visualization to the
 pipeline.  The reason I pointed you at VIPR is that the programmer model is
 similar to ours.

 I found that document was the best implementation I had of of tree
 zipper.  You could focus the activity anywhere in the document.  I tried to
 do form as a tree zipper, but limited movement made it difficult to use.  I
 ruined a demo by focusing on the form too much.  At one point, I could kind
 of drag the icon on the form to the document and produce a text document
 from the form (and vica versa).  I think I also worked on dragging the
 recorder icon to the document.   This would have converted the iconic
 representation to the C++ representation.

 All the MOOSE extensions after TWB/TE left production were rather
 experimental in nature.

 I suggest you might use a multimedia document as the visualization of
 your tree zipper.  Then have multiple cursors which might rely on each
 other to manipulate the tree.

 Check out end-user programming and model transformation by demonstration
 for more recent ideas.
  On Aug 29, 2013 2:37 AM, David Barbour dmbarb...@gmail.com wrote:


 On Wed, Aug 28, 2013 at 5:57 PM, John Carlson yottz...@gmail.comwrote:

 Multi-threaded Object-Oriented Stack Environment ... MOOSE for short.


 Would you mind pointing me to some documentation? I found your document
 on A Visual Language for Data Mapping but it doesn't discuss MOOSE. From
 the intro thread, my best guess is that you added objects to and arrays to
 your RPN language? But I'm not sure how the multi-threading is involved.


 Also check out VIPR from Wayne Citrin and friends at UC Boulder. Also
 check out AgentSheets, AgentCubes and XMLisp while you are at it.  Not far
 from SimCity and friends. Also looking at videos from unreal kismet may be
 helpful if you haven't already seen them.


 I've now checked these out.  I am curious what led you to recommend
 them.

 To clarify, my interest in visual programming is about finding a way to
 unify HCI with programming and vice versa. To make the 'programmer-model' a
 formal part of the 'program' is, I now believe, the most promising step in
 that direction after

Re: [fonc] Programmer Models integrating Program and IDE

2013-08-28 Thread John Carlson
Multi-threaded Object-Oriented Stack Environment ... MOOSE for short.

Also check out VIPR from Wayne Citrin and friends at UC Boulder.  Also
check out AgentSheets, AgentCubes and XMLisp while you are at it.  Not far
from SimCity and friends.  Also looking at videos from unreal kismet may be
helpful if you haven't already seen them.

I think we're moving towards automated game design though, which will
become the next platform.

Good luck!
On Aug 28, 2013 5:36 PM, David Barbour dmbarb...@gmail.com wrote:

 I understand 'user modeling' [1] to broadly address long-term details
 (e.g. user preferences and settings), mid-term details (goals, tasks,
 workflow), and short-term details (focus, attention, clipboards and
 cursors, conversational context, history). The unifying principle is that
 we have more context to make smart decisions, to make systems behave in
 ways their users expect. This is a form of context sensitivity, where the
 user is explicitly part of the context.

 Programming can be understood as a form of user interface. But,
 historically, user modeling (in this case 'programmer modeling') has been
 kept carefully separate from the program itself; instead, it is instead
 part of an Integrated Development Environment (IDE)

 *Hypothesis:* the separation of user-model from program has hindered both
 programmers and the art of programming. There are several reasons for this:

 1) Our IDEs are not sufficiently smart. The context IDEs keep is
 heuristic, fragile, and can be trusted with only the simplest of tasks.
 2) Poor integration with the IDE and visual environments: it is difficult
 to assign formal meaning to gestures and programmer actions.
 3) Programmer-layer goals, tasks, and workflows are generally opaque to
 the IDE, the programs and the type system.
 4) Our code must be explicit and verbose about many interactions that
 could be implicit if we tracked user context.
 5) Programmers cannot easily adjust their environment or language to know
 what they mean, and act as they expect.

 I believe we can do much better. I'll next provide a little background
 about how this belief came to be, then what I'm envisioning.

 *Background*

 Recently, I started developing a tacit representation for an arrowized
 reactive programming model. Arrows provide a relatively rigid 'structure'
 to the program. In the tacit representation, this structure was represented
 as a stack consisting of a mix of compile-time values (text, numbers,
 blocks) and runtime signals (e.g. mouse position). Essentially, I can give
 the stack a 'static type', but I still used FORTH-like idioms to roll and
 pick items from the stack as though it were a dynamic structure. With
 just a little static introspection, I could even model `7 pick` as copying
 the seventh element of the stack to the top of the stack.

 But I didn't like this single stack environment. It felt cramped.

 Often, I desire to decompose a problem into multiple concurrent tasks or
 workflows. And when I do so, I must occasionally integrate intermediate
 results, which can involve some complex scattering and gathering
 operations. On a single stack, this integration is terribly painful: it
 involves rolling or copying intermediate signals and values upwards or
 downwards, with relative positions that are difficult to remember.
 Conclusion: a single stack is good only for a single, sequential task - a
 single pipeline, in a dataflow model.

 But then I realized: I'm not limited to modeling a stack. A stack is just
 one possible way of organizing and conceptualizing the 'type' of the arrow.
 I can model any environment I please! (I'm being serious. With the same
 level of introspection needed for `7 pick`, I could model a MUD, MOO, or
 interactive fiction in the type system.) After experimenting with tree
 zippers [2] or a list of anonymous stacks [3], I'm kind of (hopefully)
 settling on an easy-to-use environment [4] that consists of:

 * current stack
 * hand
 * current stack name
 * list of named stacks

 The current stack serves the traditional role. The 'hand' enables
 developers to 'take' and 'put' objects (and juggle a few of them, like
 'roll' except for the hand) - it's really convenient even for operating on
 a single stack, and also helps carry items between stacks (implicit data
 plumbing). The list of named stacks is achieved using compile-time
 introspection (~type matching for different stack names) and is very
 flexible:

 * different stacks for different tasks; ability to navigate to a different
 stack (goto)
 * programmers can 'load' and 'store' from a stack remotely (treat it like
 a variable or register)
 * programmers can use named stacks to record preferences and configuration
 options
 * programmers can use named stacks to store dynamic libraries of code (as
 blocks)

 As I developed this rich environment, it occurred to me that I had
 essentially integrated a user-model with the program itself. Actually, my
 first thought was closer to 

Re: [fonc] Programmer Models integrating Program and IDE

2013-08-28 Thread John Carlson
I think you should replace stack with collection, but perhaps that's too
javaesque.
On Aug 28, 2013 5:36 PM, David Barbour dmbarb...@gmail.com wrote:

 I understand 'user modeling' [1] to broadly address long-term details
 (e.g. user preferences and settings), mid-term details (goals, tasks,
 workflow), and short-term details (focus, attention, clipboards and
 cursors, conversational context, history). The unifying principle is that
 we have more context to make smart decisions, to make systems behave in
 ways their users expect. This is a form of context sensitivity, where the
 user is explicitly part of the context.

 Programming can be understood as a form of user interface. But,
 historically, user modeling (in this case 'programmer modeling') has been
 kept carefully separate from the program itself; instead, it is instead
 part of an Integrated Development Environment (IDE)

 *Hypothesis:* the separation of user-model from program has hindered both
 programmers and the art of programming. There are several reasons for this:

 1) Our IDEs are not sufficiently smart. The context IDEs keep is
 heuristic, fragile, and can be trusted with only the simplest of tasks.
 2) Poor integration with the IDE and visual environments: it is difficult
 to assign formal meaning to gestures and programmer actions.
 3) Programmer-layer goals, tasks, and workflows are generally opaque to
 the IDE, the programs and the type system.
 4) Our code must be explicit and verbose about many interactions that
 could be implicit if we tracked user context.
 5) Programmers cannot easily adjust their environment or language to know
 what they mean, and act as they expect.

 I believe we can do much better. I'll next provide a little background
 about how this belief came to be, then what I'm envisioning.

 *Background*

 Recently, I started developing a tacit representation for an arrowized
 reactive programming model. Arrows provide a relatively rigid 'structure'
 to the program. In the tacit representation, this structure was represented
 as a stack consisting of a mix of compile-time values (text, numbers,
 blocks) and runtime signals (e.g. mouse position). Essentially, I can give
 the stack a 'static type', but I still used FORTH-like idioms to roll and
 pick items from the stack as though it were a dynamic structure. With
 just a little static introspection, I could even model `7 pick` as copying
 the seventh element of the stack to the top of the stack.

 But I didn't like this single stack environment. It felt cramped.

 Often, I desire to decompose a problem into multiple concurrent tasks or
 workflows. And when I do so, I must occasionally integrate intermediate
 results, which can involve some complex scattering and gathering
 operations. On a single stack, this integration is terribly painful: it
 involves rolling or copying intermediate signals and values upwards or
 downwards, with relative positions that are difficult to remember.
 Conclusion: a single stack is good only for a single, sequential task - a
 single pipeline, in a dataflow model.

 But then I realized: I'm not limited to modeling a stack. A stack is just
 one possible way of organizing and conceptualizing the 'type' of the arrow.
 I can model any environment I please! (I'm being serious. With the same
 level of introspection needed for `7 pick`, I could model a MUD, MOO, or
 interactive fiction in the type system.) After experimenting with tree
 zippers [2] or a list of anonymous stacks [3], I'm kind of (hopefully)
 settling on an easy-to-use environment [4] that consists of:

 * current stack
 * hand
 * current stack name
 * list of named stacks

 The current stack serves the traditional role. The 'hand' enables
 developers to 'take' and 'put' objects (and juggle a few of them, like
 'roll' except for the hand) - it's really convenient even for operating on
 a single stack, and also helps carry items between stacks (implicit data
 plumbing). The list of named stacks is achieved using compile-time
 introspection (~type matching for different stack names) and is very
 flexible:

 * different stacks for different tasks; ability to navigate to a different
 stack (goto)
 * programmers can 'load' and 'store' from a stack remotely (treat it like
 a variable or register)
 * programmers can use named stacks to record preferences and configuration
 options
 * programmers can use named stacks to store dynamic libraries of code (as
 blocks)

 As I developed this rich environment, it occurred to me that I had
 essentially integrated a user-model with the program itself. Actually, my
 first thought was closer to hey, I'm modeling a character in a game! Go go
 Data Plumber! The programmer is manipulating an avatar, navigating from
 task to task and stack to stack. The programmer has items in hand, plus a
 potential inventory (e.g. an inventory stack). To push metaphors a bit: I
 can model keyrings full of sealer/unsealer pairs, locked rooms with sealed
 values, unique 

Re: [fonc] Programmer Models integrating Program and IDE

2013-08-28 Thread John Carlson
Have you considered controlling stacks, program counters and iterators from
the same basic metaphor?  We used recorder buttons.  Forward, Reverse,
Stop, Fast Forward, and Fast Reverse.  Then undo (delete previous
operation) and delete next operation.
On Aug 28, 2013 5:36 PM, David Barbour dmbarb...@gmail.com wrote:

 I understand 'user modeling' [1] to broadly address long-term details
 (e.g. user preferences and settings), mid-term details (goals, tasks,
 workflow), and short-term details (focus, attention, clipboards and
 cursors, conversational context, history). The unifying principle is that
 we have more context to make smart decisions, to make systems behave in
 ways their users expect. This is a form of context sensitivity, where the
 user is explicitly part of the context.

 Programming can be understood as a form of user interface. But,
 historically, user modeling (in this case 'programmer modeling') has been
 kept carefully separate from the program itself; instead, it is instead
 part of an Integrated Development Environment (IDE)

 *Hypothesis:* the separation of user-model from program has hindered both
 programmers and the art of programming. There are several reasons for this:

 1) Our IDEs are not sufficiently smart. The context IDEs keep is
 heuristic, fragile, and can be trusted with only the simplest of tasks.
 2) Poor integration with the IDE and visual environments: it is difficult
 to assign formal meaning to gestures and programmer actions.
 3) Programmer-layer goals, tasks, and workflows are generally opaque to
 the IDE, the programs and the type system.
 4) Our code must be explicit and verbose about many interactions that
 could be implicit if we tracked user context.
 5) Programmers cannot easily adjust their environment or language to know
 what they mean, and act as they expect.

 I believe we can do much better. I'll next provide a little background
 about how this belief came to be, then what I'm envisioning.

 *Background*

 Recently, I started developing a tacit representation for an arrowized
 reactive programming model. Arrows provide a relatively rigid 'structure'
 to the program. In the tacit representation, this structure was represented
 as a stack consisting of a mix of compile-time values (text, numbers,
 blocks) and runtime signals (e.g. mouse position). Essentially, I can give
 the stack a 'static type', but I still used FORTH-like idioms to roll and
 pick items from the stack as though it were a dynamic structure. With
 just a little static introspection, I could even model `7 pick` as copying
 the seventh element of the stack to the top of the stack.

 But I didn't like this single stack environment. It felt cramped.

 Often, I desire to decompose a problem into multiple concurrent tasks or
 workflows. And when I do so, I must occasionally integrate intermediate
 results, which can involve some complex scattering and gathering
 operations. On a single stack, this integration is terribly painful: it
 involves rolling or copying intermediate signals and values upwards or
 downwards, with relative positions that are difficult to remember.
 Conclusion: a single stack is good only for a single, sequential task - a
 single pipeline, in a dataflow model.

 But then I realized: I'm not limited to modeling a stack. A stack is just
 one possible way of organizing and conceptualizing the 'type' of the arrow.
 I can model any environment I please! (I'm being serious. With the same
 level of introspection needed for `7 pick`, I could model a MUD, MOO, or
 interactive fiction in the type system.) After experimenting with tree
 zippers [2] or a list of anonymous stacks [3], I'm kind of (hopefully)
 settling on an easy-to-use environment [4] that consists of:

 * current stack
 * hand
 * current stack name
 * list of named stacks

 The current stack serves the traditional role. The 'hand' enables
 developers to 'take' and 'put' objects (and juggle a few of them, like
 'roll' except for the hand) - it's really convenient even for operating on
 a single stack, and also helps carry items between stacks (implicit data
 plumbing). The list of named stacks is achieved using compile-time
 introspection (~type matching for different stack names) and is very
 flexible:

 * different stacks for different tasks; ability to navigate to a different
 stack (goto)
 * programmers can 'load' and 'store' from a stack remotely (treat it like
 a variable or register)
 * programmers can use named stacks to record preferences and configuration
 options
 * programmers can use named stacks to store dynamic libraries of code (as
 blocks)

 As I developed this rich environment, it occurred to me that I had
 essentially integrated a user-model with the program itself. Actually, my
 first thought was closer to hey, I'm modeling a character in a game! Go go
 Data Plumber! The programmer is manipulating an avatar, navigating from
 task to task and stack to stack. The programmer has items in hand, plus a
 

Re: [fonc] Programmer Models integrating Program and IDE

2013-08-28 Thread John Carlson
Along with the recorder metaphor we added breakpoints which worked
travelling in either direction in the code.
On Aug 28, 2013 8:39 PM, John Carlson yottz...@gmail.com wrote:

 You'd probably want to add copy and paste as well.
 On Aug 28, 2013 8:29 PM, John Carlson yottz...@gmail.com wrote:

 Have you considered controlling stacks, program counters and iterators
 from the same basic metaphor?  We used recorder buttons.  Forward, Reverse,
 Stop, Fast Forward, and Fast Reverse.  Then undo (delete previous
 operation) and delete next operation.
 On Aug 28, 2013 5:36 PM, David Barbour dmbarb...@gmail.com wrote:

 I understand 'user modeling' [1] to broadly address long-term details
 (e.g. user preferences and settings), mid-term details (goals, tasks,
 workflow), and short-term details (focus, attention, clipboards and
 cursors, conversational context, history). The unifying principle is that
 we have more context to make smart decisions, to make systems behave in
 ways their users expect. This is a form of context sensitivity, where the
 user is explicitly part of the context.

 Programming can be understood as a form of user interface. But,
 historically, user modeling (in this case 'programmer modeling') has been
 kept carefully separate from the program itself; instead, it is instead
 part of an Integrated Development Environment (IDE)

 *Hypothesis:* the separation of user-model from program has hindered
 both programmers and the art of programming. There are several reasons for
 this:

 1) Our IDEs are not sufficiently smart. The context IDEs keep is
 heuristic, fragile, and can be trusted with only the simplest of tasks.
 2) Poor integration with the IDE and visual environments: it is
 difficult to assign formal meaning to gestures and programmer actions.
 3) Programmer-layer goals, tasks, and workflows are generally opaque to
 the IDE, the programs and the type system.
 4) Our code must be explicit and verbose about many interactions that
 could be implicit if we tracked user context.
 5) Programmers cannot easily adjust their environment or language to
 know what they mean, and act as they expect.

 I believe we can do much better. I'll next provide a little background
 about how this belief came to be, then what I'm envisioning.

 *Background*

 Recently, I started developing a tacit representation for an arrowized
 reactive programming model. Arrows provide a relatively rigid 'structure'
 to the program. In the tacit representation, this structure was represented
 as a stack consisting of a mix of compile-time values (text, numbers,
 blocks) and runtime signals (e.g. mouse position). Essentially, I can give
 the stack a 'static type', but I still used FORTH-like idioms to roll and
 pick items from the stack as though it were a dynamic structure. With
 just a little static introspection, I could even model `7 pick` as copying
 the seventh element of the stack to the top of the stack.

 But I didn't like this single stack environment. It felt cramped.

 Often, I desire to decompose a problem into multiple concurrent tasks or
 workflows. And when I do so, I must occasionally integrate intermediate
 results, which can involve some complex scattering and gathering
 operations. On a single stack, this integration is terribly painful: it
 involves rolling or copying intermediate signals and values upwards or
 downwards, with relative positions that are difficult to remember.
 Conclusion: a single stack is good only for a single, sequential task - a
 single pipeline, in a dataflow model.

 But then I realized: I'm not limited to modeling a stack. A stack is
 just one possible way of organizing and conceptualizing the 'type' of the
 arrow. I can model any environment I please! (I'm being serious. With the
 same level of introspection needed for `7 pick`, I could model a MUD, MOO,
 or interactive fiction in the type system.) After experimenting with tree
 zippers [2] or a list of anonymous stacks [3], I'm kind of (hopefully)
 settling on an easy-to-use environment [4] that consists of:

 * current stack
 * hand
 * current stack name
 * list of named stacks

 The current stack serves the traditional role. The 'hand' enables
 developers to 'take' and 'put' objects (and juggle a few of them, like
 'roll' except for the hand) - it's really convenient even for operating on
 a single stack, and also helps carry items between stacks (implicit data
 plumbing). The list of named stacks is achieved using compile-time
 introspection (~type matching for different stack names) and is very
 flexible:

 * different stacks for different tasks; ability to navigate to a
 different stack (goto)
 * programmers can 'load' and 'store' from a stack remotely (treat it
 like a variable or register)
 * programmers can use named stacks to record preferences and
 configuration options
 * programmers can use named stacks to store dynamic libraries of code
 (as blocks)

 As I developed this rich environment, it occurred to me that I had

Re: [fonc] Programmer Models integrating Program and IDE

2013-08-28 Thread John Carlson
We used static breakpoints and relative cursors.  Making the breakpoints
more dynamic would be an interesting research project.   We were able to
make cursors in text dependent on each other.
On Aug 28, 2013 8:58 PM, John Carlson yottz...@gmail.com wrote:

 Along with the recorder metaphor we added breakpoints which worked
 travelling in either direction in the code.
 On Aug 28, 2013 8:39 PM, John Carlson yottz...@gmail.com wrote:

 You'd probably want to add copy and paste as well.
 On Aug 28, 2013 8:29 PM, John Carlson yottz...@gmail.com wrote:

 Have you considered controlling stacks, program counters and iterators
 from the same basic metaphor?  We used recorder buttons.  Forward, Reverse,
 Stop, Fast Forward, and Fast Reverse.  Then undo (delete previous
 operation) and delete next operation.
 On Aug 28, 2013 5:36 PM, David Barbour dmbarb...@gmail.com wrote:

 I understand 'user modeling' [1] to broadly address long-term details
 (e.g. user preferences and settings), mid-term details (goals, tasks,
 workflow), and short-term details (focus, attention, clipboards and
 cursors, conversational context, history). The unifying principle is that
 we have more context to make smart decisions, to make systems behave in
 ways their users expect. This is a form of context sensitivity, where the
 user is explicitly part of the context.

 Programming can be understood as a form of user interface. But,
 historically, user modeling (in this case 'programmer modeling') has been
 kept carefully separate from the program itself; instead, it is instead
 part of an Integrated Development Environment (IDE)

 *Hypothesis:* the separation of user-model from program has hindered
 both programmers and the art of programming. There are several reasons for
 this:

 1) Our IDEs are not sufficiently smart. The context IDEs keep is
 heuristic, fragile, and can be trusted with only the simplest of tasks.
 2) Poor integration with the IDE and visual environments: it is
 difficult to assign formal meaning to gestures and programmer actions.
 3) Programmer-layer goals, tasks, and workflows are generally opaque to
 the IDE, the programs and the type system.
 4) Our code must be explicit and verbose about many interactions that
 could be implicit if we tracked user context.
 5) Programmers cannot easily adjust their environment or language to
 know what they mean, and act as they expect.

 I believe we can do much better. I'll next provide a little background
 about how this belief came to be, then what I'm envisioning.

 *Background*

 Recently, I started developing a tacit representation for an arrowized
 reactive programming model. Arrows provide a relatively rigid 'structure'
 to the program. In the tacit representation, this structure was represented
 as a stack consisting of a mix of compile-time values (text, numbers,
 blocks) and runtime signals (e.g. mouse position). Essentially, I can give
 the stack a 'static type', but I still used FORTH-like idioms to roll and
 pick items from the stack as though it were a dynamic structure. With
 just a little static introspection, I could even model `7 pick` as copying
 the seventh element of the stack to the top of the stack.

 But I didn't like this single stack environment. It felt cramped.

 Often, I desire to decompose a problem into multiple concurrent tasks
 or workflows. And when I do so, I must occasionally integrate intermediate
 results, which can involve some complex scattering and gathering
 operations. On a single stack, this integration is terribly painful: it
 involves rolling or copying intermediate signals and values upwards or
 downwards, with relative positions that are difficult to remember.
 Conclusion: a single stack is good only for a single, sequential task - a
 single pipeline, in a dataflow model.

 But then I realized: I'm not limited to modeling a stack. A stack is
 just one possible way of organizing and conceptualizing the 'type' of the
 arrow. I can model any environment I please! (I'm being serious. With the
 same level of introspection needed for `7 pick`, I could model a MUD, MOO,
 or interactive fiction in the type system.) After experimenting with tree
 zippers [2] or a list of anonymous stacks [3], I'm kind of (hopefully)
 settling on an easy-to-use environment [4] that consists of:

 * current stack
 * hand
 * current stack name
 * list of named stacks

 The current stack serves the traditional role. The 'hand' enables
 developers to 'take' and 'put' objects (and juggle a few of them, like
 'roll' except for the hand) - it's really convenient even for operating on
 a single stack, and also helps carry items between stacks (implicit data
 plumbing). The list of named stacks is achieved using compile-time
 introspection (~type matching for different stack names) and is very
 flexible:

 * different stacks for different tasks; ability to navigate to a
 different stack (goto)
 * programmers can 'load' and 'store' from a stack remotely (treat it
 like

Re: [fonc] Programmer Models integrating Program and IDE

2013-08-28 Thread John Carlson
We also had the concepts of text region definition, which was persistent,
and text region, which was computed at runtime.  Same with text location
definition and text location.  That way, we could adapt to different
inputs.
On Aug 28, 2013 5:36 PM, David Barbour dmbarb...@gmail.com wrote:

 I understand 'user modeling' [1] to broadly address long-term details
 (e.g. user preferences and settings), mid-term details (goals, tasks,
 workflow), and short-term details (focus, attention, clipboards and
 cursors, conversational context, history). The unifying principle is that
 we have more context to make smart decisions, to make systems behave in
 ways their users expect. This is a form of context sensitivity, where the
 user is explicitly part of the context.

 Programming can be understood as a form of user interface. But,
 historically, user modeling (in this case 'programmer modeling') has been
 kept carefully separate from the program itself; instead, it is instead
 part of an Integrated Development Environment (IDE)

 *Hypothesis:* the separation of user-model from program has hindered both
 programmers and the art of programming. There are several reasons for this:

 1) Our IDEs are not sufficiently smart. The context IDEs keep is
 heuristic, fragile, and can be trusted with only the simplest of tasks.
 2) Poor integration with the IDE and visual environments: it is difficult
 to assign formal meaning to gestures and programmer actions.
 3) Programmer-layer goals, tasks, and workflows are generally opaque to
 the IDE, the programs and the type system.
 4) Our code must be explicit and verbose about many interactions that
 could be implicit if we tracked user context.
 5) Programmers cannot easily adjust their environment or language to know
 what they mean, and act as they expect.

 I believe we can do much better. I'll next provide a little background
 about how this belief came to be, then what I'm envisioning.

 *Background*

 Recently, I started developing a tacit representation for an arrowized
 reactive programming model. Arrows provide a relatively rigid 'structure'
 to the program. In the tacit representation, this structure was represented
 as a stack consisting of a mix of compile-time values (text, numbers,
 blocks) and runtime signals (e.g. mouse position). Essentially, I can give
 the stack a 'static type', but I still used FORTH-like idioms to roll and
 pick items from the stack as though it were a dynamic structure. With
 just a little static introspection, I could even model `7 pick` as copying
 the seventh element of the stack to the top of the stack.

 But I didn't like this single stack environment. It felt cramped.

 Often, I desire to decompose a problem into multiple concurrent tasks or
 workflows. And when I do so, I must occasionally integrate intermediate
 results, which can involve some complex scattering and gathering
 operations. On a single stack, this integration is terribly painful: it
 involves rolling or copying intermediate signals and values upwards or
 downwards, with relative positions that are difficult to remember.
 Conclusion: a single stack is good only for a single, sequential task - a
 single pipeline, in a dataflow model.

 But then I realized: I'm not limited to modeling a stack. A stack is just
 one possible way of organizing and conceptualizing the 'type' of the arrow.
 I can model any environment I please! (I'm being serious. With the same
 level of introspection needed for `7 pick`, I could model a MUD, MOO, or
 interactive fiction in the type system.) After experimenting with tree
 zippers [2] or a list of anonymous stacks [3], I'm kind of (hopefully)
 settling on an easy-to-use environment [4] that consists of:

 * current stack
 * hand
 * current stack name
 * list of named stacks

 The current stack serves the traditional role. The 'hand' enables
 developers to 'take' and 'put' objects (and juggle a few of them, like
 'roll' except for the hand) - it's really convenient even for operating on
 a single stack, and also helps carry items between stacks (implicit data
 plumbing). The list of named stacks is achieved using compile-time
 introspection (~type matching for different stack names) and is very
 flexible:

 * different stacks for different tasks; ability to navigate to a different
 stack (goto)
 * programmers can 'load' and 'store' from a stack remotely (treat it like
 a variable or register)
 * programmers can use named stacks to record preferences and configuration
 options
 * programmers can use named stacks to store dynamic libraries of code (as
 blocks)

 As I developed this rich environment, it occurred to me that I had
 essentially integrated a user-model with the program itself. Actually, my
 first thought was closer to hey, I'm modeling a character in a game! Go go
 Data Plumber! The programmer is manipulating an avatar, navigating from
 task to task and stack to stack. The programmer has items in hand, plus a
 potential inventory (e.g. 

Re: [fonc] Programmer Models integrating Program and IDE

2013-08-28 Thread John Carlson
These may be your details.
On Aug 28, 2013 9:25 PM, John Carlson yottz...@gmail.com wrote:

 We also had the concepts of text region definition, which was persistent,
 and text region, which was computed at runtime.  Same with text location
 definition and text location.  That way, we could adapt to different
 inputs.
 On Aug 28, 2013 5:36 PM, David Barbour dmbarb...@gmail.com wrote:

 I understand 'user modeling' [1] to broadly address long-term details
 (e.g. user preferences and settings), mid-term details (goals, tasks,
 workflow), and short-term details (focus, attention, clipboards and
 cursors, conversational context, history). The unifying principle is that
 we have more context to make smart decisions, to make systems behave in
 ways their users expect. This is a form of context sensitivity, where the
 user is explicitly part of the context.

 Programming can be understood as a form of user interface. But,
 historically, user modeling (in this case 'programmer modeling') has been
 kept carefully separate from the program itself; instead, it is instead
 part of an Integrated Development Environment (IDE)

 *Hypothesis:* the separation of user-model from program has hindered
 both programmers and the art of programming. There are several reasons for
 this:

 1) Our IDEs are not sufficiently smart. The context IDEs keep is
 heuristic, fragile, and can be trusted with only the simplest of tasks.
 2) Poor integration with the IDE and visual environments: it is difficult
 to assign formal meaning to gestures and programmer actions.
 3) Programmer-layer goals, tasks, and workflows are generally opaque to
 the IDE, the programs and the type system.
 4) Our code must be explicit and verbose about many interactions that
 could be implicit if we tracked user context.
 5) Programmers cannot easily adjust their environment or language to know
 what they mean, and act as they expect.

 I believe we can do much better. I'll next provide a little background
 about how this belief came to be, then what I'm envisioning.

 *Background*

 Recently, I started developing a tacit representation for an arrowized
 reactive programming model. Arrows provide a relatively rigid 'structure'
 to the program. In the tacit representation, this structure was represented
 as a stack consisting of a mix of compile-time values (text, numbers,
 blocks) and runtime signals (e.g. mouse position). Essentially, I can give
 the stack a 'static type', but I still used FORTH-like idioms to roll and
 pick items from the stack as though it were a dynamic structure. With
 just a little static introspection, I could even model `7 pick` as copying
 the seventh element of the stack to the top of the stack.

 But I didn't like this single stack environment. It felt cramped.

 Often, I desire to decompose a problem into multiple concurrent tasks or
 workflows. And when I do so, I must occasionally integrate intermediate
 results, which can involve some complex scattering and gathering
 operations. On a single stack, this integration is terribly painful: it
 involves rolling or copying intermediate signals and values upwards or
 downwards, with relative positions that are difficult to remember.
 Conclusion: a single stack is good only for a single, sequential task - a
 single pipeline, in a dataflow model.

 But then I realized: I'm not limited to modeling a stack. A stack is just
 one possible way of organizing and conceptualizing the 'type' of the arrow.
 I can model any environment I please! (I'm being serious. With the same
 level of introspection needed for `7 pick`, I could model a MUD, MOO, or
 interactive fiction in the type system.) After experimenting with tree
 zippers [2] or a list of anonymous stacks [3], I'm kind of (hopefully)
 settling on an easy-to-use environment [4] that consists of:

 * current stack
 * hand
 * current stack name
 * list of named stacks

 The current stack serves the traditional role. The 'hand' enables
 developers to 'take' and 'put' objects (and juggle a few of them, like
 'roll' except for the hand) - it's really convenient even for operating on
 a single stack, and also helps carry items between stacks (implicit data
 plumbing). The list of named stacks is achieved using compile-time
 introspection (~type matching for different stack names) and is very
 flexible:

 * different stacks for different tasks; ability to navigate to a
 different stack (goto)
 * programmers can 'load' and 'store' from a stack remotely (treat it like
 a variable or register)
 * programmers can use named stacks to record preferences and
 configuration options
 * programmers can use named stacks to store dynamic libraries of code (as
 blocks)

 As I developed this rich environment, it occurred to me that I had
 essentially integrated a user-model with the program itself. Actually, my
 first thought was closer to hey, I'm modeling a character in a game! Go go
 Data Plumber! The programmer is manipulating an avatar, navigating from

Re: [fonc] Programmer Models integrating Program and IDE

2013-08-28 Thread John Carlson
How does one make a recipe maker in Minecraft?  I know you can make a
recipe maker with a recipe,  but who decides what a recipe makes?  Can you
make more than one type of thing at the same time?  Can a human make more
than one type of thing at the same time?  Or a robot?
On Aug 28, 2013 5:36 PM, David Barbour dmbarb...@gmail.com wrote:

 I understand 'user modeling' [1] to broadly address long-term details
 (e.g. user preferences and settings), mid-term details (goals, tasks,
 workflow), and short-term details (focus, attention, clipboards and
 cursors, conversational context, history). The unifying principle is that
 we have more context to make smart decisions, to make systems behave in
 ways their users expect. This is a form of context sensitivity, where the
 user is explicitly part of the context.

 Programming can be understood as a form of user interface. But,
 historically, user modeling (in this case 'programmer modeling') has been
 kept carefully separate from the program itself; instead, it is instead
 part of an Integrated Development Environment (IDE)

 *Hypothesis:* the separation of user-model from program has hindered both
 programmers and the art of programming. There are several reasons for this:

 1) Our IDEs are not sufficiently smart. The context IDEs keep is
 heuristic, fragile, and can be trusted with only the simplest of tasks.
 2) Poor integration with the IDE and visual environments: it is difficult
 to assign formal meaning to gestures and programmer actions.
 3) Programmer-layer goals, tasks, and workflows are generally opaque to
 the IDE, the programs and the type system.
 4) Our code must be explicit and verbose about many interactions that
 could be implicit if we tracked user context.
 5) Programmers cannot easily adjust their environment or language to know
 what they mean, and act as they expect.

 I believe we can do much better. I'll next provide a little background
 about how this belief came to be, then what I'm envisioning.

 *Background*

 Recently, I started developing a tacit representation for an arrowized
 reactive programming model. Arrows provide a relatively rigid 'structure'
 to the program. In the tacit representation, this structure was represented
 as a stack consisting of a mix of compile-time values (text, numbers,
 blocks) and runtime signals (e.g. mouse position). Essentially, I can give
 the stack a 'static type', but I still used FORTH-like idioms to roll and
 pick items from the stack as though it were a dynamic structure. With
 just a little static introspection, I could even model `7 pick` as copying
 the seventh element of the stack to the top of the stack.

 But I didn't like this single stack environment. It felt cramped.

 Often, I desire to decompose a problem into multiple concurrent tasks or
 workflows. And when I do so, I must occasionally integrate intermediate
 results, which can involve some complex scattering and gathering
 operations. On a single stack, this integration is terribly painful: it
 involves rolling or copying intermediate signals and values upwards or
 downwards, with relative positions that are difficult to remember.
 Conclusion: a single stack is good only for a single, sequential task - a
 single pipeline, in a dataflow model.

 But then I realized: I'm not limited to modeling a stack. A stack is just
 one possible way of organizing and conceptualizing the 'type' of the arrow.
 I can model any environment I please! (I'm being serious. With the same
 level of introspection needed for `7 pick`, I could model a MUD, MOO, or
 interactive fiction in the type system.) After experimenting with tree
 zippers [2] or a list of anonymous stacks [3], I'm kind of (hopefully)
 settling on an easy-to-use environment [4] that consists of:

 * current stack
 * hand
 * current stack name
 * list of named stacks

 The current stack serves the traditional role. The 'hand' enables
 developers to 'take' and 'put' objects (and juggle a few of them, like
 'roll' except for the hand) - it's really convenient even for operating on
 a single stack, and also helps carry items between stacks (implicit data
 plumbing). The list of named stacks is achieved using compile-time
 introspection (~type matching for different stack names) and is very
 flexible:

 * different stacks for different tasks; ability to navigate to a different
 stack (goto)
 * programmers can 'load' and 'store' from a stack remotely (treat it like
 a variable or register)
 * programmers can use named stacks to record preferences and configuration
 options
 * programmers can use named stacks to store dynamic libraries of code (as
 blocks)

 As I developed this rich environment, it occurred to me that I had
 essentially integrated a user-model with the program itself. Actually, my
 first thought was closer to hey, I'm modeling a character in a game! Go go
 Data Plumber! The programmer is manipulating an avatar, navigating from
 task to task and stack to stack. The programmer has 

Re: [fonc] 2D sexpressions for GIS, Frank/Nile

2013-08-09 Thread John Carlson
This actually reminds me of EGGG, the extensible graphical game generator
by jon orwant, and similar tools.  Maybe I should hook up kinect to
ometajs.  I could lay out a grid on my floor to program games.  Anyone know
of a good chess by demonstration program?  Can we use kinect to create
games in addition to playing them?   Yes, I recall the kinect WoW demo.
On Aug 9, 2013 4:07 PM, Casey Ransberger casey.obrie...@gmail.com wrote:

 SHRDLU was related to Planner right? There's a Prologue-alike you might
 start with in the OMetaJS distro... here:

 http://tinlizzie.org/ometa-js/#Toylog


 On Fri, Aug 9, 2013 at 12:43 AM, John Carlson yottz...@gmail.com wrote:

 Has anyone considered GIS sexpressions for Frank/Nile/Open
 Croquet/Cobalt?  First one would be given a map with capabilities, one
 could place sexpressions on a map on points in areas,  like (deposit (sell
 (bottle (ferment (harvest #grapes #harvest-location-capability))
 #wente-riesling)) #bank-of-america-account-capability).  Perhaps I am
 thinking of simfarm but with sexpressions for learning programming and
 commerce.  Perhaps I'll do some googling if no one has anything.  Perhaps
 this is a kind of 2D SHRDLU.

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




 --
 Casey Ransberger

 ___
 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] The end of technology has arrived

2013-07-24 Thread John Carlson
Leap motion just came out.  And Kinect before it.  These open up a
dimension, but probably not too different than other 3D devices.  Let's
what happens...
On Jul 24, 2013 9:26 PM, John Pratt jpra...@gmail.com wrote:


 If you introduced the Dynabook today, would people use it?  That's
 now the problem.  They would have used it, probably, several years ago,
 but now they won't.

 The landscape itself is now reduced to a patch of grass.  There is now
 a single way to do a certain thing and that thing is fixed.  There is one
 way
 to do everything.  So in a way, it isn't just that the technology won't
 advance
 further, but that the cognitive environment has narrowed to a pinpoint.


 On Jul 24, 2013, at 4:28 PM, Igor Stasenko wrote:

  Why so pessimistic?
  Your message reminds me numerous articles from the past,
  that tech hit the wall, and now humanity has to stop and think what to
 do next.
 
  The universe is full of yet undiscovered, and who knows how many
 days/years
  separates us from another great discovery. Yes it may be not in the
  field related
  to electronics or computing, nor related to the fate of Apple and
  today's flagships of technology.
  Who knows, maybe after a hundred years our descendants will consider
  our today's level of
  technology in computing as something ridiculously slow, ineffective,
  and resource-hungry.
 
  On 25 July 2013 00:18, John Pratt jpra...@gmail.com wrote:
 
  In the first place, Steve was very conservative when it came
  to hardware and advances; relatively few things pushed the edge
  technologically, in terms of achieving some kind of science future.
  Three-dimensional displays exist, but no one ever explored that option.
 
  From 1999 onwards, the focus of Apple was to produce commerce,
  not advance the state of products overall.  Most everything
  he did from 1997 to 2011 simply leveraged the work that had been
  done previously and repackaged it.  Bitter failures at NeXT and
  massive success at Pixar led to the candy coating of Apple products,
  in which all progress underneath the covers ceased abruptly.
 
  But now Apple is unaware of this and they are still riding forward into
  a wall.  They don't know that they are riding into a wall because they
  are just rehashing and rehashing things written in the 1980's and
 1990's,
  which weren't, in the first place, as advanced as people envisioned them
  to be able to be in the 1950's even.
 
  Since Microsoft follows Apple in large part and SGI is basically
  gone, no one leads the world except Apple.  So if Apple does not
 incorporate
  a technology, it will never become mainstream.  No major competing
 operating
  systems exist anymore and no one is even thinking like that.  And since
 Google is
  only splitting itself when it gets into hardware and not staying on
 track with web,
  it cannot really overcome this, either.
 
  This is really the end game, for all of technology.
  If Apple never improves itself in this regard, never thinks at a
 fundamental
  level, if it never examines the faults that Steve borrowed from PARC
 without
  examining the conceptual underpinnings, Apple will just decline, as is
  the case right now.
 
  Everything that was aspired in the 1990's is now a narrowly-defined
 reality:
  video exists in all formats and is available in any way possible.
  Audio and
  music are consumable in all ways.  All information is basically
 transmittable
  as quickly as one really wants it given technology.  Speed the
 computers up by
  10x and it won't make much difference anymore.
 
  Stock analysts and news journalists can't see that the underpinnings of
  technology have now hit a wall.  Go ahead and make a watch or whatever.
  Real observers know that technology is over; it is just in its last
 throes.
 
  Once you define a tablet in the form of an iPad, no one can do anything
 else.
  Now that a mobile phone is synonymous with a touch pad, no one can think
  of anything else.  Mankind has boxed itself in and it is all over.
 
 
 
 
  ___
  fonc mailing list
  fonc@vpri.org
  http://vpri.org/mailman/listinfo/fonc
 
 
 
  --
  Best regards,
  Igor Stasenko.
  ___
  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


Re: [fonc] Macros, JSON

2013-07-22 Thread John Carlson
I was introduced to freebase by James Burke's (of Connections fame--highly
recommended TV series) k-web project and played with it some.  I am more
interested in transforming JSON with macro-JSON, with the possibility of
macro-JSON transforming itself.

However if freebase has implemented some kind of historical gazetteer
(including temporal information), that would interest me a lot.  I imagine
showing a globe collapsing as the speed of communication between points is
reduced.

What I mean by persistent below is things that remain constant between runs
of a macro program.  For example,  in comparing a value to null, the null
is made persistent in the macro, but not necessarily in the thing the macro
is processing.  Another thing that might be considered constant is the
number of predicates in a conditional branch.  My hope with
macro-macro-JSON is to make those things more flexible.  Perhaps even
bordering on genetic algorithms.

I am hoping to find a multiuser JSON editor with an excellent API.  If EDN
already has such an editor, I will consider using it.  Pointers anyone?
On Jul 22, 2013 6:14 PM, Chris Gahan ch...@ill-logic.com wrote:

 Hey John,

 If you don't mind me asking, what's the higher level goal of this tool
 you're making? Are you interested in transforming JSON? Querying JSON?

 If you're interested in queries, Freebase has a very nice graph query
 system (called MQL) where the user gives it a JSON structure as a query
 template, and the database does some graph traversal and returns a
 collection of JSON structures that match the template.

 I think it's a really nice system; you can see some examples here:
 http://www.freebase.com/query

 The basic idea is that your JSON query template has some key/values for it
 to match (eg: artist: The Police), and whatever values are left blank
 (eg: album: []) gets populated with results. It has the littany of
 standard database query features as well, like ordering and limits and
 ranges and whatnot: http://mql.freebaseapps.com

 Hope this helps!
 -- Chris


 On Sun, Jul 21, 2013 at 4:45 PM, John Carlson yottz...@gmail.com wrote:

 Or numbers for pointers...
 On Jul 21, 2013 3:43 PM, John Carlson yottz...@gmail.com wrote:

 I think what would be more difficult would be identifying what is
 persistent and what is runtime values.  Also, JSON doesn't contain
 pointers, so one would have to use strings for pointers.
 On Jul 21, 2013 3:22 PM, James McCartney asy...@gmail.com wrote:


 I thought about this briefly. One issue is how to distinguish literal
 strings from identifiers.

 On Sun, Jul 21, 2013 at 10:28 AM, John Carlson yottz...@gmail.comwrote:

 Hmm.  I've been thinking about creating a macro language written in
 JSON that operates on JSON structures.  Has someone done similar work?
 Should I just create a JavaScript AST in JSON? Or should I create an AST
 specifically for JSON manipulation?

 Thanks,

 John

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




 --
 --- james mccartney
 ___
 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 mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


Re: [fonc] Macros, JSON

2013-07-22 Thread John Carlson
Well, I also think querying is a good idea.  I think I will need the
equivalent of XPath or perhaps XQuery for indexing stuff in JSON.  I think
I'm targetting my stuff to replace XSLT, if that is possible.  I'd like it
to be done with end-user programming inside and between editors.  Something
more concrete than XSLT.
On Jul 22, 2013 6:14 PM, Chris Gahan ch...@ill-logic.com wrote:

 Hey John,

 If you don't mind me asking, what's the higher level goal of this tool
 you're making? Are you interested in transforming JSON? Querying JSON?

 If you're interested in queries, Freebase has a very nice graph query
 system (called MQL) where the user gives it a JSON structure as a query
 template, and the database does some graph traversal and returns a
 collection of JSON structures that match the template.

 I think it's a really nice system; you can see some examples here:
 http://www.freebase.com/query

 The basic idea is that your JSON query template has some key/values for it
 to match (eg: artist: The Police), and whatever values are left blank
 (eg: album: []) gets populated with results. It has the littany of
 standard database query features as well, like ordering and limits and
 ranges and whatnot: http://mql.freebaseapps.com

 Hope this helps!
 -- Chris


 On Sun, Jul 21, 2013 at 4:45 PM, John Carlson yottz...@gmail.com wrote:

 Or numbers for pointers...
 On Jul 21, 2013 3:43 PM, John Carlson yottz...@gmail.com wrote:

 I think what would be more difficult would be identifying what is
 persistent and what is runtime values.  Also, JSON doesn't contain
 pointers, so one would have to use strings for pointers.
 On Jul 21, 2013 3:22 PM, James McCartney asy...@gmail.com wrote:


 I thought about this briefly. One issue is how to distinguish literal
 strings from identifiers.

 On Sun, Jul 21, 2013 at 10:28 AM, John Carlson yottz...@gmail.comwrote:

 Hmm.  I've been thinking about creating a macro language written in
 JSON that operates on JSON structures.  Has someone done similar work?
 Should I just create a JavaScript AST in JSON? Or should I create an AST
 specifically for JSON manipulation?

 Thanks,

 John

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




 --
 --- james mccartney
 ___
 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 mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


Re: [fonc] Flat text and 1D syntax considered harmful

2013-07-21 Thread John Carlson
The structures you need when programming behavior are lists of operations,
something like lisp's cond with parameters, and the ability to refer to a
cond from anywhere in the program (recursion, procedure call).  Everything
else is icing on the cake.
___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


Re: [fonc] Macros, JSON

2013-07-21 Thread John Carlson
You would have to create a JSON object which would have key (identifier),
value pairs.
On Jul 21, 2013 3:22 PM, James McCartney asy...@gmail.com wrote:


 I thought about this briefly. One issue is how to distinguish literal
 strings from identifiers.

 On Sun, Jul 21, 2013 at 10:28 AM, John Carlson yottz...@gmail.com wrote:

 Hmm.  I've been thinking about creating a macro language written in JSON
 that operates on JSON structures.  Has someone done similar work?  Should I
 just create a JavaScript AST in JSON? Or should I create an AST
 specifically for JSON manipulation?

 Thanks,

 John

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




 --
 --- james mccartney
 ___
 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] Macros, JSON

2013-07-21 Thread John Carlson
I think what would be more difficult would be identifying what is
persistent and what is runtime values.  Also, JSON doesn't contain
pointers, so one would have to use strings for pointers.
On Jul 21, 2013 3:22 PM, James McCartney asy...@gmail.com wrote:


 I thought about this briefly. One issue is how to distinguish literal
 strings from identifiers.

 On Sun, Jul 21, 2013 at 10:28 AM, John Carlson yottz...@gmail.com wrote:

 Hmm.  I've been thinking about creating a macro language written in JSON
 that operates on JSON structures.  Has someone done similar work?  Should I
 just create a JavaScript AST in JSON? Or should I create an AST
 specifically for JSON manipulation?

 Thanks,

 John

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




 --
 --- james mccartney
 ___
 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] Macros, JSON

2013-07-21 Thread John Carlson
Or numbers for pointers...
On Jul 21, 2013 3:43 PM, John Carlson yottz...@gmail.com wrote:

 I think what would be more difficult would be identifying what is
 persistent and what is runtime values.  Also, JSON doesn't contain
 pointers, so one would have to use strings for pointers.
 On Jul 21, 2013 3:22 PM, James McCartney asy...@gmail.com wrote:


 I thought about this briefly. One issue is how to distinguish literal
 strings from identifiers.

 On Sun, Jul 21, 2013 at 10:28 AM, John Carlson yottz...@gmail.comwrote:

 Hmm.  I've been thinking about creating a macro language written in JSON
 that operates on JSON structures.  Has someone done similar work?  Should I
 just create a JavaScript AST in JSON? Or should I create an AST
 specifically for JSON manipulation?

 Thanks,

 John

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




 --
 --- james mccartney
 ___
 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] Macros, JSON

2013-07-21 Thread John Carlson
What makes this important is whether your running in stateless or stateful
mode.  If you only run the macro once no big deal.  If you try to run on a
server, you may find that you need to reset items like cursors to their
original values.
On Jul 21, 2013 3:43 PM, John Carlson yottz...@gmail.com wrote:

 I think what would be more difficult would be identifying what is
 persistent and what is runtime values.  Also, JSON doesn't contain
 pointers, so one would have to use strings for pointers.
 On Jul 21, 2013 3:22 PM, James McCartney asy...@gmail.com wrote:


 I thought about this briefly. One issue is how to distinguish literal
 strings from identifiers.

 On Sun, Jul 21, 2013 at 10:28 AM, John Carlson yottz...@gmail.comwrote:

 Hmm.  I've been thinking about creating a macro language written in JSON
 that operates on JSON structures.  Has someone done similar work?  Should I
 just create a JavaScript AST in JSON? Or should I create an AST
 specifically for JSON manipulation?

 Thanks,

 John

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




 --
 --- james mccartney
 ___
 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] Macros, JSON

2013-07-21 Thread John Carlson
Hmm.  Seems like someone has already done XMLisp.  I thought s-expressions
were the lowest common denominator.
JSON is all well and good as far as lowest common denominators go. However,
you might want to consider EDN:

https://github.com/edn-format/edn

On the other hand, if you are doing that then you might as well go *all*
the way and re-invent half of Common Lisp :-)

http://en.wikipedia.org/wiki/Greenspun%27s_tenth_rule

Alan Moore


On Sun, Jul 21, 2013 at 10:28 AM, John Carlson yottz...@gmail.com wrote:

 Hmm.  I've been thinking about creating a macro language written in JSON
 that operates on JSON structures.  Has someone done similar work?  Should I
 just create a JavaScript AST in JSON? Or should I create an AST
 specifically for JSON manipulation?

 Thanks,

 John

 ___
 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


Re: [fonc] Flat text and 1D syntax considered harmful

2013-07-20 Thread John Carlson
One such test automation system is Sikuli, which uses images and image
recognition as key components.  To implement the image as 1D text seems
rather foolhardy.
On Jul 20, 2013 4:09 PM, John Carlson yottz...@gmail.com wrote:

 I think one thing that has succeeded is macro editors.  You can make macro
 languages which work on selectors or add conditionals/recursion to such a
 macro editor to achieve a fairly complete programming language.  You could
 also treat exceptions similar to conditionals.  I believe the area this
 works best for is test automation.
 On Jul 20, 2013 11:22 AM, frank fr...@frankhirsch.net wrote:


 On 07/20/2013 04:21 PM, Pascal J. Bourguignon wrote:
  3) Get rid of established but unnatural ways of manipulating data.
  Most importantly, get rid of flat text and find neat graphical
  representations for the most common structures.
 
  Bouhahaha!

 This!

 There have been so many attempts - by people who were by no means
 stupid - to replace text as the primary representation of code!
 And ALL of them have failed, miserably!
 The best anyone has ever achieved was to enthuse a few managers,
 much to the detriment of the engineers who eventually had to use
 the shit on a daily basis!

 Also:
 1D representations are established exactly BECAUSE they are NATURAL!

 The logical part of your mind (the neocortex, some people used to call
 it the left half of the brain, but this has firmly been established
 to be a somewhat shitty simplification) works serially in time:

   state(t+1) = f( state(t) , input(t) )

 It works in 1D! An it likes representations in... 1D!

 Cheers, Frank



 ___
 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] Flat text and 1D syntax considered harmful

2013-07-20 Thread John Carlson
Another program which has worked well in dual text/graphic mode has been
dreamweaver.  Yes I understand it may not do all the behavior you want.
However it doesn't stop you from adding that behavior.
On Jul 20, 2013 4:13 PM, John Carlson yottz...@gmail.com wrote:

 One such test automation system is Sikuli, which uses images and image
 recognition as key components.  To implement the image as 1D text seems
 rather foolhardy.
 On Jul 20, 2013 4:09 PM, John Carlson yottz...@gmail.com wrote:

 I think one thing that has succeeded is macro editors.  You can make
 macro languages which work on selectors or add conditionals/recursion to
 such a macro editor to achieve a fairly complete programming language.  You
 could also treat exceptions similar to conditionals.  I believe the area
 this works best for is test automation.
 On Jul 20, 2013 11:22 AM, frank fr...@frankhirsch.net wrote:


 On 07/20/2013 04:21 PM, Pascal J. Bourguignon wrote:
  3) Get rid of established but unnatural ways of manipulating data.
  Most importantly, get rid of flat text and find neat graphical
  representations for the most common structures.
 
  Bouhahaha!

 This!

 There have been so many attempts - by people who were by no means
 stupid - to replace text as the primary representation of code!
 And ALL of them have failed, miserably!
 The best anyone has ever achieved was to enthuse a few managers,
 much to the detriment of the engineers who eventually had to use
 the shit on a daily basis!

 Also:
 1D representations are established exactly BECAUSE they are NATURAL!

 The logical part of your mind (the neocortex, some people used to call
 it the left half of the brain, but this has firmly been established
 to be a somewhat shitty simplification) works serially in time:

   state(t+1) = f( state(t) , input(t) )

 It works in 1D! An it likes representations in... 1D!

 Cheers, Frank



 ___
 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] Flat text and 1D syntax considered harmful

2013-07-20 Thread John Carlson
Now that I think of it, this is the old argument of immediate mode versus
retained mode graphics.  A hybrid system I believe is best.  Postscript/pdf
has 3 types of graphics.  Images, text, and curves.  Many systems these
days only deal with images and text.   I'd like to remind people that
curves are important too.  I realize that curves are decomposed into
triangles and later textures, but if we manage them as curves, there's a
chance for a better user experience.  However some like bumpy user
experiences and some like smooth user experiences.  That's why we provide
dual/hybrid modes.
On Jul 20, 2013 4:20 PM, John Carlson yottz...@gmail.com wrote:

 Another program which has worked well in dual text/graphic mode has been
 dreamweaver.  Yes I understand it may not do all the behavior you want.
 However it doesn't stop you from adding that behavior.
 On Jul 20, 2013 4:13 PM, John Carlson yottz...@gmail.com wrote:

 One such test automation system is Sikuli, which uses images and image
 recognition as key components.  To implement the image as 1D text seems
 rather foolhardy.
 On Jul 20, 2013 4:09 PM, John Carlson yottz...@gmail.com wrote:

 I think one thing that has succeeded is macro editors.  You can make
 macro languages which work on selectors or add conditionals/recursion to
 such a macro editor to achieve a fairly complete programming language.  You
 could also treat exceptions similar to conditionals.  I believe the area
 this works best for is test automation.
 On Jul 20, 2013 11:22 AM, frank fr...@frankhirsch.net wrote:


 On 07/20/2013 04:21 PM, Pascal J. Bourguignon wrote:
  3) Get rid of established but unnatural ways of manipulating data.
  Most importantly, get rid of flat text and find neat graphical
  representations for the most common structures.
 
  Bouhahaha!

 This!

 There have been so many attempts - by people who were by no means
 stupid - to replace text as the primary representation of code!
 And ALL of them have failed, miserably!
 The best anyone has ever achieved was to enthuse a few managers,
 much to the detriment of the engineers who eventually had to use
 the shit on a daily basis!

 Also:
 1D representations are established exactly BECAUSE they are NATURAL!

 The logical part of your mind (the neocortex, some people used to call
 it the left half of the brain, but this has firmly been established
 to be a somewhat shitty simplification) works serially in time:

   state(t+1) = f( state(t) , input(t) )

 It works in 1D! An it likes representations in... 1D!

 Cheers, Frank



 ___
 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] Flat text and 1D syntax considered harmful

2013-07-20 Thread John Carlson
Don't forget to engage the right side of your brain and the corpus callosum.
On Jul 20, 2013 11:22 AM, frank fr...@frankhirsch.net wrote:


 On 07/20/2013 04:21 PM, Pascal J. Bourguignon wrote:
  3) Get rid of established but unnatural ways of manipulating data.
  Most importantly, get rid of flat text and find neat graphical
  representations for the most common structures.
 
  Bouhahaha!

 This!

 There have been so many attempts - by people who were by no means
 stupid - to replace text as the primary representation of code!
 And ALL of them have failed, miserably!
 The best anyone has ever achieved was to enthuse a few managers,
 much to the detriment of the engineers who eventually had to use
 the shit on a daily basis!

 Also:
 1D representations are established exactly BECAUSE they are NATURAL!

 The logical part of your mind (the neocortex, some people used to call
 it the left half of the brain, but this has firmly been established
 to be a somewhat shitty simplification) works serially in time:

   state(t+1) = f( state(t) , input(t) )

 It works in 1D! An it likes representations in... 1D!

 Cheers, Frank



 ___
 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] Universal language and system programming

2013-04-22 Thread John Carlson
I have this idea that impredicative systems create little universes that
exist separate from the larger universe, including recursive universes,
impenetrable universes et al.  But then that leads me to self-enveloping
universes.

This moment contains all moments -- CS Lewis
On Apr 22, 2013 4:33 AM, Chris Warburton chriswa...@googlemail.com
wrote:

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

  If there truly is a universal language, is it a systems language?  A
 logic
  language can describe hardware.  What about things like pointers?  Have
  they come up with self-referential logic?
  On Apr 20, 2013 11:18 PM, John Carlson yottz...@gmail.com wrote:

 Self-referential logics are known as impredicative[1], but surely any
 Universal programming language is a Universal language?

 Having a Universal language only guarantees that we can represent every
 (computable) thing; it tells us nothing about how difficult it is to
 construct them[1].

 Plus we can only ever construct models of things; no system can describe
 pointers completely (for example), since we can write Goedel sentences
 which involve pointers; a trivial example would be the halting problem
 for pointer-manipulating programs.

 [1] http://en.wikipedia.org/wiki/Impredicativity
 [2] http://en.wikipedia.org/wiki/Turing_tarpit

 Regards,
 Chris
 ___
 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] Use case for graphical problem oriented widgets (POW, DSW)

2013-04-21 Thread John Carlson
Excel is indeed interesting.  Can google docs/libreoffice/OpenOffice do
something similar?
On Apr 21, 2013 2:52 AM, John Nilsson j...@milsson.nu wrote:

 I think Excel is interesting in this regard. The common idiom in excel is
 to employ user triggered code generation by fill formula to adapt the ui to
 dynamically resized collections.
 Not exactly automatic, but is it sufficiently trivial to group with or
 trivial ui operations such as scroll or resize window that might also be
 needed to not interfere with the display of the dynamic collection?
 BR
 John
 Den 21 apr 2013 07:59 skrev John Carlson yottz...@gmail.com:

 If you want a more complex use case,  create a loop 10 times around the
 collection add loop to insert a calculator into the collection.
 On Apr 21, 2013 12:48 AM, John Carlson yottz...@gmail.com wrote:

 Here's a semipractical use case: add 1 to the display in each of a
 dynamic collection of calculators (math domain widgets).  What can do this
 as end-user programming?  It's fairly obvious that a textual language can
 do this.  Can any graphical ones?  Can something like lively kernel do this
 by demonstration?  How about excel?  With a dynamic collection?  What will
 work on android jelly bean?  I'm away from my desktop right now.
 On Apr 21, 2013 12:22 AM, John Carlson yottz...@gmail.com wrote:

 Looking for systems like this I found app-inventor activity starter on
 my phone.  Has anyone tried this?
 On Apr 21, 2013 12:14 AM, John Carlson yottz...@gmail.com wrote:

 I believe the key to this is to create domain widgets.  I am not sure
 if this needs to be something like etoys, maybe a combination between forth
 and etoys.  I believe collections can make for interesting domain widgets.
 I have only programmed systems with collections of text.  What systems work
 on collections of domain widgets?
 On Apr 21, 2013 12:02 AM, John Carlson yottz...@gmail.com wrote:

 Yeah, you're right.  The theory is coming up with a syntax free
 language.  Can you?
 On Apr 21, 2013 12:00 AM, David Barbour dmbarb...@gmail.com wrote:

 How is that a theory? Sounds like a design principle.


 On Sat, Apr 20, 2013 at 9:42 PM, John Carlson yottz...@gmail.comwrote:

 Here's my theory: reduce arguing with the compiler to minimum.  This
 means reducing programmers' syntax errors.  Only add syntax to reduce
 errors (the famous FORTRAN do loop error).  The syntax that creates 
 errors
 should be removed.
 On Apr 20, 2013 11:18 PM, John Carlson yottz...@gmail.com wrote:

 I think it's better to work from examples, ala JUnit and end-user
 programming than come up with a theory that solves nothing.  One can
 compare EGGG to GDL in scope and expressiveness.  One interesting part 
 of
 gaming is arguing about rules.  What computer systems do that?
 On Apr 20, 2013 11:09 PM, John Carlson yottz...@gmail.com
 wrote:

 Practice or practical?  Maybe there's space for practical theory,
 instead of relying on things that don't exist.  Why do we distinguish
 practice from theory?  Seems like a fallacy there.
 On Apr 20, 2013 10:51 PM, David Barbour dmbarb...@gmail.com
 wrote:

 only in practice


 On Sat, Apr 20, 2013 at 8:23 PM, John Carlson yottz...@gmail.com
  wrote:

 Take my word for it, theory comes down to Monday Night Football
 on ESPN.
 On Apr 20, 2013 10:13 PM, John Carlson yottz...@gmail.com
 wrote:

 I think that concepts in some sense transcend the universe.
 Are there more digits in pi than there are atoms  in the universe? 
  I guess
 we are asking if there are transcendental volumes which are bigger 
 or more
 complex than the universe.  If the universe contains the 
 transcendental as
 symbols then how many transcendental symbols are there?  I think 
 you still
 run into Russell's Paradox.
 On Apr 20, 2013 9:15 PM, Simon Forman forman.si...@gmail.com
 wrote:

 On 4/20/13, John Carlson yottz...@gmail.com wrote:
  Do you need one symbol for the number infinity and another
 for denoting
  that a set is inifinite?  Or do you just reason about the
 size of the set?
  Is there a difference between a set that is countably
 infinite and one that
  isn't countable?  I barely know Russell's paradox... you're
 ahead of me.

 Well, for what it's worth, quoting from Meguire's 2007
 Boundary
 Algebra: A Simple Notation for Boolean Algebra and the Truth
 Functors:

 Let U be the universal set, a,b∈U, and ∅ be the null set.
 Then the
 columns headed by “Sets” show how the algebra of sets and the
 pa are
 equivalent.

 Table 4-2. The 10 Nontrivial Binary Connectives (Functors).

 NameLogic  Sets BA

 Alternation  a∨b   a∪b  ab
 Conditional  a→b   a⊆b  (a)b
 Converse a←b   a⊇b  a(b)
 Conjunction  a∧b   a∩b  ((a)(b))
___
 NOR  a↓b   a∪b   (ab)
___
 Sheffer stroke   a|b   a∩b  (a)(b)

 Biconditionala↔b   a⊆b⊆a  (((a)b)(a(b))) -or- ((a)(b))(ab)

 (Apologies if the Unicode characters got mangled!)

 Check out http://www.markability.net

Re: [fonc] 90% glue code [universal language]

2013-04-20 Thread John Carlson
I think that concepts in some sense transcend the universe.  Are there more
digits in pi than there are atoms  in the universe?  I guess we are asking
if there are transcendental volumes which are bigger or more complex than
the universe.  If the universe contains the transcendental as symbols then
how many transcendental symbols are there?  I think you still run into
Russell's Paradox.
On Apr 20, 2013 9:15 PM, Simon Forman forman.si...@gmail.com wrote:

 On 4/20/13, John Carlson yottz...@gmail.com wrote:
  Do you need one symbol for the number infinity and another for denoting
  that a set is inifinite?  Or do you just reason about the size of the
 set?
  Is there a difference between a set that is countably infinite and one
 that
  isn't countable?  I barely know Russell's paradox... you're ahead of me.

 Well, for what it's worth, quoting from Meguire's 2007 Boundary
 Algebra: A Simple Notation for Boolean Algebra and the Truth
 Functors:

 Let U be the universal set, a,b∈U, and ∅ be the null set. Then the
 columns headed by “Sets” show how the algebra of sets and the pa are
 equivalent.

 Table 4-2. The 10 Nontrivial Binary Connectives (Functors).

 NameLogic  Sets BA

 Alternation  a∨b   a∪b  ab
 Conditional  a→b   a⊆b  (a)b
 Converse a←b   a⊇b  a(b)
 Conjunction  a∧b   a∩b  ((a)(b))
___
 NOR  a↓b   a∪b   (ab)
___
 Sheffer stroke   a|b   a∩b  (a)(b)

 Biconditionala↔b   a⊆b⊆a  (((a)b)(a(b))) -or- ((a)(b))(ab)

 (Apologies if the Unicode characters got mangled!)

 Check out http://www.markability.net/sets.htm also.


 I don't know much about set theory but I think the Universal set
 stands for the set of everything, no?

 Cheers,
 ~Simon





 The history of mankind for the last four centuries is rather like that of
 an imprisoned sleeper, stirring clumsily and uneasily while the prison that
 restrains and shelters him catches fire, not waking but incorporating the
 crackling and warmth of the fire with ancient and incongruous dreams, than
 like that of a man consciously awake to danger and opportunity.
 --H. P. Wells, A Short History of the World
 ___
 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] 90% glue code [universal language]

2013-04-20 Thread John Carlson
Take my word for it, theory comes down to Monday Night Football on ESPN.
On Apr 20, 2013 10:13 PM, John Carlson yottz...@gmail.com wrote:

 I think that concepts in some sense transcend the universe.  Are there
 more digits in pi than there are atoms  in the universe?  I guess we are
 asking if there are transcendental volumes which are bigger or more complex
 than the universe.  If the universe contains the transcendental as symbols
 then how many transcendental symbols are there?  I think you still run into
 Russell's Paradox.
 On Apr 20, 2013 9:15 PM, Simon Forman forman.si...@gmail.com wrote:

 On 4/20/13, John Carlson yottz...@gmail.com wrote:
  Do you need one symbol for the number infinity and another for denoting
  that a set is inifinite?  Or do you just reason about the size of the
 set?
  Is there a difference between a set that is countably infinite and one
 that
  isn't countable?  I barely know Russell's paradox... you're ahead of me.

 Well, for what it's worth, quoting from Meguire's 2007 Boundary
 Algebra: A Simple Notation for Boolean Algebra and the Truth
 Functors:

 Let U be the universal set, a,b∈U, and ∅ be the null set. Then the
 columns headed by “Sets” show how the algebra of sets and the pa are
 equivalent.

 Table 4-2. The 10 Nontrivial Binary Connectives (Functors).

 NameLogic  Sets BA

 Alternation  a∨b   a∪b  ab
 Conditional  a→b   a⊆b  (a)b
 Converse a←b   a⊇b  a(b)
 Conjunction  a∧b   a∩b  ((a)(b))
___
 NOR  a↓b   a∪b   (ab)
___
 Sheffer stroke   a|b   a∩b  (a)(b)

 Biconditionala↔b   a⊆b⊆a  (((a)b)(a(b))) -or- ((a)(b))(ab)

 (Apologies if the Unicode characters got mangled!)

 Check out http://www.markability.net/sets.htm also.


 I don't know much about set theory but I think the Universal set
 stands for the set of everything, no?

 Cheers,
 ~Simon





 The history of mankind for the last four centuries is rather like that of
 an imprisoned sleeper, stirring clumsily and uneasily while the prison
 that
 restrains and shelters him catches fire, not waking but incorporating the
 crackling and warmth of the fire with ancient and incongruous dreams, than
 like that of a man consciously awake to danger and opportunity.
 --H. P. Wells, A Short History of the World
 ___
 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] Theory vs practice [syntax]

2013-04-20 Thread John Carlson
Here's my theory: reduce arguing with the compiler to minimum.  This means
reducing programmers' syntax errors.  Only add syntax to reduce errors (the
famous FORTRAN do loop error).  The syntax that creates errors should be
removed.
On Apr 20, 2013 11:18 PM, John Carlson yottz...@gmail.com wrote:

 I think it's better to work from examples, ala JUnit and end-user
 programming than come up with a theory that solves nothing.  One can
 compare EGGG to GDL in scope and expressiveness.  One interesting part of
 gaming is arguing about rules.  What computer systems do that?
 On Apr 20, 2013 11:09 PM, John Carlson yottz...@gmail.com wrote:

 Practice or practical?  Maybe there's space for practical theory, instead
 of relying on things that don't exist.  Why do we distinguish practice from
 theory?  Seems like a fallacy there.
 On Apr 20, 2013 10:51 PM, David Barbour dmbarb...@gmail.com wrote:

 only in practice


 On Sat, Apr 20, 2013 at 8:23 PM, John Carlson yottz...@gmail.comwrote:

 Take my word for it, theory comes down to Monday Night Football on ESPN.
 On Apr 20, 2013 10:13 PM, John Carlson yottz...@gmail.com wrote:

 I think that concepts in some sense transcend the universe.  Are there
 more digits in pi than there are atoms  in the universe?  I guess we are
 asking if there are transcendental volumes which are bigger or more 
 complex
 than the universe.  If the universe contains the transcendental as symbols
 then how many transcendental symbols are there?  I think you still run 
 into
 Russell's Paradox.
 On Apr 20, 2013 9:15 PM, Simon Forman forman.si...@gmail.com
 wrote:

 On 4/20/13, John Carlson yottz...@gmail.com wrote:
  Do you need one symbol for the number infinity and another for
 denoting
  that a set is inifinite?  Or do you just reason about the size of
 the set?
  Is there a difference between a set that is countably infinite and
 one that
  isn't countable?  I barely know Russell's paradox... you're ahead
 of me.

 Well, for what it's worth, quoting from Meguire's 2007 Boundary
 Algebra: A Simple Notation for Boolean Algebra and the Truth
 Functors:

 Let U be the universal set, a,b∈U, and ∅ be the null set. Then the
 columns headed by “Sets” show how the algebra of sets and the pa are
 equivalent.

 Table 4-2. The 10 Nontrivial Binary Connectives (Functors).

 NameLogic  Sets BA

 Alternation  a∨b   a∪b  ab
 Conditional  a→b   a⊆b  (a)b
 Converse a←b   a⊇b  a(b)
 Conjunction  a∧b   a∩b  ((a)(b))
___
 NOR  a↓b   a∪b   (ab)
___
 Sheffer stroke   a|b   a∩b  (a)(b)

 Biconditionala↔b   a⊆b⊆a  (((a)b)(a(b))) -or- ((a)(b))(ab)

 (Apologies if the Unicode characters got mangled!)

 Check out http://www.markability.net/sets.htm also.


 I don't know much about set theory but I think the Universal set
 stands for the set of everything, no?

 Cheers,
 ~Simon





 The history of mankind for the last four centuries is rather like
 that of
 an imprisoned sleeper, stirring clumsily and uneasily while the
 prison that
 restrains and shelters him catches fire, not waking but incorporating
 the
 crackling and warmth of the fire with ancient and incongruous dreams,
 than
 like that of a man consciously awake to danger and opportunity.
 --H. P. Wells, A Short History of the World
 ___
 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 mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


[fonc] Universal language and system programming

2013-04-20 Thread John Carlson
If there truly is a universal language, is it a systems language?  A logic
language can describe hardware.  What about things like pointers?  Have
they come up with self-referential logic?
On Apr 20, 2013 11:18 PM, John Carlson yottz...@gmail.com wrote:

 I think it's better to work from examples, ala JUnit and end-user
 programming than come up with a theory that solves nothing.  One can
 compare EGGG to GDL in scope and expressiveness.  One interesting part of
 gaming is arguing about rules.  What computer systems do that?
 On Apr 20, 2013 11:09 PM, John Carlson yottz...@gmail.com wrote:

 Practice or practical?  Maybe there's space for practical theory, instead
 of relying on things that don't exist.  Why do we distinguish practice from
 theory?  Seems like a fallacy there.
 On Apr 20, 2013 10:51 PM, David Barbour dmbarb...@gmail.com wrote:

 only in practice


 On Sat, Apr 20, 2013 at 8:23 PM, John Carlson yottz...@gmail.comwrote:

 Take my word for it, theory comes down to Monday Night Football on ESPN.
 On Apr 20, 2013 10:13 PM, John Carlson yottz...@gmail.com wrote:

 I think that concepts in some sense transcend the universe.  Are there
 more digits in pi than there are atoms  in the universe?  I guess we are
 asking if there are transcendental volumes which are bigger or more 
 complex
 than the universe.  If the universe contains the transcendental as symbols
 then how many transcendental symbols are there?  I think you still run 
 into
 Russell's Paradox.
 On Apr 20, 2013 9:15 PM, Simon Forman forman.si...@gmail.com
 wrote:

 On 4/20/13, John Carlson yottz...@gmail.com wrote:
  Do you need one symbol for the number infinity and another for
 denoting
  that a set is inifinite?  Or do you just reason about the size of
 the set?
  Is there a difference between a set that is countably infinite and
 one that
  isn't countable?  I barely know Russell's paradox... you're ahead
 of me.

 Well, for what it's worth, quoting from Meguire's 2007 Boundary
 Algebra: A Simple Notation for Boolean Algebra and the Truth
 Functors:

 Let U be the universal set, a,b∈U, and ∅ be the null set. Then the
 columns headed by “Sets” show how the algebra of sets and the pa are
 equivalent.

 Table 4-2. The 10 Nontrivial Binary Connectives (Functors).

 NameLogic  Sets BA

 Alternation  a∨b   a∪b  ab
 Conditional  a→b   a⊆b  (a)b
 Converse a←b   a⊇b  a(b)
 Conjunction  a∧b   a∩b  ((a)(b))
___
 NOR  a↓b   a∪b   (ab)
___
 Sheffer stroke   a|b   a∩b  (a)(b)

 Biconditionala↔b   a⊆b⊆a  (((a)b)(a(b))) -or- ((a)(b))(ab)

 (Apologies if the Unicode characters got mangled!)

 Check out http://www.markability.net/sets.htm also.


 I don't know much about set theory but I think the Universal set
 stands for the set of everything, no?

 Cheers,
 ~Simon





 The history of mankind for the last four centuries is rather like
 that of
 an imprisoned sleeper, stirring clumsily and uneasily while the
 prison that
 restrains and shelters him catches fire, not waking but incorporating
 the
 crackling and warmth of the fire with ancient and incongruous dreams,
 than
 like that of a man consciously awake to danger and opportunity.
 --H. P. Wells, A Short History of the World
 ___
 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 mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


Re: [fonc] Theory vs practice [syntax]

2013-04-20 Thread John Carlson
I believe the key to this is to create domain widgets.  I am not sure if
this needs to be something like etoys, maybe a combination between forth
and etoys.  I believe collections can make for interesting domain widgets.
I have only programmed systems with collections of text.  What systems work
on collections of domain widgets?
On Apr 21, 2013 12:02 AM, John Carlson yottz...@gmail.com wrote:

 Yeah, you're right.  The theory is coming up with a syntax free language.
 Can you?
 On Apr 21, 2013 12:00 AM, David Barbour dmbarb...@gmail.com wrote:

 How is that a theory? Sounds like a design principle.


 On Sat, Apr 20, 2013 at 9:42 PM, John Carlson yottz...@gmail.com wrote:

 Here's my theory: reduce arguing with the compiler to minimum.  This
 means reducing programmers' syntax errors.  Only add syntax to reduce
 errors (the famous FORTRAN do loop error).  The syntax that creates errors
 should be removed.
 On Apr 20, 2013 11:18 PM, John Carlson yottz...@gmail.com wrote:

 I think it's better to work from examples, ala JUnit and end-user
 programming than come up with a theory that solves nothing.  One can
 compare EGGG to GDL in scope and expressiveness.  One interesting part of
 gaming is arguing about rules.  What computer systems do that?
 On Apr 20, 2013 11:09 PM, John Carlson yottz...@gmail.com wrote:

 Practice or practical?  Maybe there's space for practical theory,
 instead of relying on things that don't exist.  Why do we distinguish
 practice from theory?  Seems like a fallacy there.
 On Apr 20, 2013 10:51 PM, David Barbour dmbarb...@gmail.com wrote:

 only in practice


 On Sat, Apr 20, 2013 at 8:23 PM, John Carlson yottz...@gmail.comwrote:

 Take my word for it, theory comes down to Monday Night Football on
 ESPN.
 On Apr 20, 2013 10:13 PM, John Carlson yottz...@gmail.com wrote:

 I think that concepts in some sense transcend the universe.  Are
 there more digits in pi than there are atoms  in the universe?  I 
 guess we
 are asking if there are transcendental volumes which are bigger or more
 complex than the universe.  If the universe contains the 
 transcendental as
 symbols then how many transcendental symbols are there?  I think you 
 still
 run into Russell's Paradox.
 On Apr 20, 2013 9:15 PM, Simon Forman forman.si...@gmail.com
 wrote:

 On 4/20/13, John Carlson yottz...@gmail.com wrote:
  Do you need one symbol for the number infinity and another for
 denoting
  that a set is inifinite?  Or do you just reason about the size
 of the set?
  Is there a difference between a set that is countably infinite
 and one that
  isn't countable?  I barely know Russell's paradox... you're
 ahead of me.

 Well, for what it's worth, quoting from Meguire's 2007 Boundary
 Algebra: A Simple Notation for Boolean Algebra and the Truth
 Functors:

 Let U be the universal set, a,b∈U, and ∅ be the null set. Then the
 columns headed by “Sets” show how the algebra of sets and the pa
 are
 equivalent.

 Table 4-2. The 10 Nontrivial Binary Connectives (Functors).

 NameLogic  Sets BA

 Alternation  a∨b   a∪b  ab
 Conditional  a→b   a⊆b  (a)b
 Converse a←b   a⊇b  a(b)
 Conjunction  a∧b   a∩b  ((a)(b))
___
 NOR  a↓b   a∪b   (ab)
___
 Sheffer stroke   a|b   a∩b  (a)(b)

 Biconditionala↔b   a⊆b⊆a  (((a)b)(a(b))) -or- ((a)(b))(ab)

 (Apologies if the Unicode characters got mangled!)

 Check out http://www.markability.net/sets.htm also.


 I don't know much about set theory but I think the Universal set
 stands for the set of everything, no?

 Cheers,
 ~Simon





 The history of mankind for the last four centuries is rather like
 that of
 an imprisoned sleeper, stirring clumsily and uneasily while the
 prison that
 restrains and shelters him catches fire, not waking but
 incorporating the
 crackling and warmth of the fire with ancient and incongruous
 dreams, than
 like that of a man consciously awake to danger and opportunity.
 --H. P. Wells, A Short History of the World
 ___
 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 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


Re: [fonc] Theory vs practice [syntax]

2013-04-20 Thread John Carlson
Looking for systems like this I found app-inventor activity starter on my
phone.  Has anyone tried this?
On Apr 21, 2013 12:14 AM, John Carlson yottz...@gmail.com wrote:

 I believe the key to this is to create domain widgets.  I am not sure if
 this needs to be something like etoys, maybe a combination between forth
 and etoys.  I believe collections can make for interesting domain widgets.
 I have only programmed systems with collections of text.  What systems work
 on collections of domain widgets?
 On Apr 21, 2013 12:02 AM, John Carlson yottz...@gmail.com wrote:

 Yeah, you're right.  The theory is coming up with a syntax free
 language.  Can you?
 On Apr 21, 2013 12:00 AM, David Barbour dmbarb...@gmail.com wrote:

 How is that a theory? Sounds like a design principle.


 On Sat, Apr 20, 2013 at 9:42 PM, John Carlson yottz...@gmail.comwrote:

 Here's my theory: reduce arguing with the compiler to minimum.  This
 means reducing programmers' syntax errors.  Only add syntax to reduce
 errors (the famous FORTRAN do loop error).  The syntax that creates errors
 should be removed.
 On Apr 20, 2013 11:18 PM, John Carlson yottz...@gmail.com wrote:

 I think it's better to work from examples, ala JUnit and end-user
 programming than come up with a theory that solves nothing.  One can
 compare EGGG to GDL in scope and expressiveness.  One interesting part of
 gaming is arguing about rules.  What computer systems do that?
 On Apr 20, 2013 11:09 PM, John Carlson yottz...@gmail.com wrote:

 Practice or practical?  Maybe there's space for practical theory,
 instead of relying on things that don't exist.  Why do we distinguish
 practice from theory?  Seems like a fallacy there.
 On Apr 20, 2013 10:51 PM, David Barbour dmbarb...@gmail.com
 wrote:

 only in practice


 On Sat, Apr 20, 2013 at 8:23 PM, John Carlson yottz...@gmail.comwrote:

 Take my word for it, theory comes down to Monday Night Football on
 ESPN.
 On Apr 20, 2013 10:13 PM, John Carlson yottz...@gmail.com
 wrote:

 I think that concepts in some sense transcend the universe.  Are
 there more digits in pi than there are atoms  in the universe?  I 
 guess we
 are asking if there are transcendental volumes which are bigger or 
 more
 complex than the universe.  If the universe contains the 
 transcendental as
 symbols then how many transcendental symbols are there?  I think you 
 still
 run into Russell's Paradox.
 On Apr 20, 2013 9:15 PM, Simon Forman forman.si...@gmail.com
 wrote:

 On 4/20/13, John Carlson yottz...@gmail.com wrote:
  Do you need one symbol for the number infinity and another for
 denoting
  that a set is inifinite?  Or do you just reason about the size
 of the set?
  Is there a difference between a set that is countably infinite
 and one that
  isn't countable?  I barely know Russell's paradox... you're
 ahead of me.

 Well, for what it's worth, quoting from Meguire's 2007 Boundary
 Algebra: A Simple Notation for Boolean Algebra and the Truth
 Functors:

 Let U be the universal set, a,b∈U, and ∅ be the null set. Then
 the
 columns headed by “Sets” show how the algebra of sets and the pa
 are
 equivalent.

 Table 4-2. The 10 Nontrivial Binary Connectives (Functors).

 NameLogic  Sets BA

 Alternation  a∨b   a∪b  ab
 Conditional  a→b   a⊆b  (a)b
 Converse a←b   a⊇b  a(b)
 Conjunction  a∧b   a∩b  ((a)(b))
___
 NOR  a↓b   a∪b   (ab)
___
 Sheffer stroke   a|b   a∩b  (a)(b)

 Biconditionala↔b   a⊆b⊆a  (((a)b)(a(b))) -or- ((a)(b))(ab)

 (Apologies if the Unicode characters got mangled!)

 Check out http://www.markability.net/sets.htm also.


 I don't know much about set theory but I think the Universal set
 stands for the set of everything, no?

 Cheers,
 ~Simon





 The history of mankind for the last four centuries is rather
 like that of
 an imprisoned sleeper, stirring clumsily and uneasily while the
 prison that
 restrains and shelters him catches fire, not waking but
 incorporating the
 crackling and warmth of the fire with ancient and incongruous
 dreams, than
 like that of a man consciously awake to danger and opportunity.
 --H. P. Wells, A Short History of the World
 ___
 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 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] Use case for graphical problem oriented widgets (POW, DSW)

2013-04-20 Thread John Carlson
Here's a semipractical use case: add 1 to the display in each of a dynamic
collection of calculators (math domain widgets).  What can do this as
end-user programming?  It's fairly obvious that a textual language can do
this.  Can any graphical ones?  Can something like lively kernel do this by
demonstration?  How about excel?  With a dynamic collection?  What will
work on android jelly bean?  I'm away from my desktop right now.
On Apr 21, 2013 12:22 AM, John Carlson yottz...@gmail.com wrote:

Looking for systems like this I found app-inventor activity starter on my
phone.  Has anyone tried this?
On Apr 21, 2013 12:14 AM, John Carlson yottz...@gmail.com wrote:

 I believe the key to this is to create domain widgets.  I am not sure if
 this needs to be something like etoys, maybe a combination between forth
 and etoys.  I believe collections can make for interesting domain widgets.
 I have only programmed systems with collections of text.  What systems work
 on collections of domain widgets?
 On Apr 21, 2013 12:02 AM, John Carlson yottz...@gmail.com wrote:

 Yeah, you're right.  The theory is coming up with a syntax free
 language.  Can you?
 On Apr 21, 2013 12:00 AM, David Barbour dmbarb...@gmail.com wrote:

 How is that a theory? Sounds like a design principle.


 On Sat, Apr 20, 2013 at 9:42 PM, John Carlson yottz...@gmail.comwrote:

 Here's my theory: reduce arguing with the compiler to minimum.  This
 means reducing programmers' syntax errors.  Only add syntax to reduce
 errors (the famous FORTRAN do loop error).  The syntax that creates errors
 should be removed.
 On Apr 20, 2013 11:18 PM, John Carlson yottz...@gmail.com wrote:

 I think it's better to work from examples, ala JUnit and end-user
 programming than come up with a theory that solves nothing.  One can
 compare EGGG to GDL in scope and expressiveness.  One interesting part of
 gaming is arguing about rules.  What computer systems do that?
 On Apr 20, 2013 11:09 PM, John Carlson yottz...@gmail.com wrote:

 Practice or practical?  Maybe there's space for practical theory,
 instead of relying on things that don't exist.  Why do we distinguish
 practice from theory?  Seems like a fallacy there.
 On Apr 20, 2013 10:51 PM, David Barbour dmbarb...@gmail.com
 wrote:

 only in practice


 On Sat, Apr 20, 2013 at 8:23 PM, John Carlson yottz...@gmail.comwrote:

 Take my word for it, theory comes down to Monday Night Football on
 ESPN.
 On Apr 20, 2013 10:13 PM, John Carlson yottz...@gmail.com
 wrote:

 I think that concepts in some sense transcend the universe.  Are
 there more digits in pi than there are atoms  in the universe?  I 
 guess we
 are asking if there are transcendental volumes which are bigger or 
 more
 complex than the universe.  If the universe contains the 
 transcendental as
 symbols then how many transcendental symbols are there?  I think you 
 still
 run into Russell's Paradox.
 On Apr 20, 2013 9:15 PM, Simon Forman forman.si...@gmail.com
 wrote:

 On 4/20/13, John Carlson yottz...@gmail.com wrote:
  Do you need one symbol for the number infinity and another for
 denoting
  that a set is inifinite?  Or do you just reason about the size
 of the set?
  Is there a difference between a set that is countably infinite
 and one that
  isn't countable?  I barely know Russell's paradox... you're
 ahead of me.

 Well, for what it's worth, quoting from Meguire's 2007 Boundary
 Algebra: A Simple Notation for Boolean Algebra and the Truth
 Functors:

 Let U be the universal set, a,b∈U, and ∅ be the null set. Then
 the
 columns headed by “Sets” show how the algebra of sets and the pa
 are
 equivalent.

 Table 4-2. The 10 Nontrivial Binary Connectives (Functors).

 NameLogic  Sets BA

 Alternation  a∨b   a∪b  ab
 Conditional  a→b   a⊆b  (a)b
 Converse a←b   a⊇b  a(b)
 Conjunction  a∧b   a∩b  ((a)(b))
___
 NOR  a↓b   a∪b   (ab)
___
 Sheffer stroke   a|b   a∩b  (a)(b)

 Biconditionala↔b   a⊆b⊆a  (((a)b)(a(b))) -or- ((a)(b))(ab)

 (Apologies if the Unicode characters got mangled!)

 Check out http://www.markability.net/sets.htm also.


 I don't know much about set theory but I think the Universal set
 stands for the set of everything, no?

 Cheers,
 ~Simon





 The history of mankind for the last four centuries is rather
 like that of
 an imprisoned sleeper, stirring clumsily and uneasily while the
 prison that
 restrains and shelters him catches fire, not waking but
 incorporating the
 crackling and warmth of the fire with ancient and incongruous
 dreams, than
 like that of a man consciously awake to danger and opportunity.
 --H. P. Wells, A Short History of the World
 ___
 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] Quick off topic question

2013-04-18 Thread John Carlson
Does anyone have a fast API for getting/putting the nth line of a file?
This would replace a relational way of storing strings, caching is
acceptable. C++ is preferred.
___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


[fonc] holy grail of FONC?

2013-04-13 Thread John Carlson
Is the holy grail of FONC to create an environment where you can use command 
line, text editor, IDE, and end-user programming to program the same program?  
Are there any other ways to program?  Circuit boards?  I believe FONC includes 
this.  Speech and gestures?  Does FONC provide a way to use speech and gestures 
to program?  Is this a bit like Intentional Software?  This reminds me a bit of 
Tcl/Tk as well, where programming command line, program and GUI were 
integrated.  What else out there is trying to encompass all kinds of 
programming in a cross media way?

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


Re: [fonc] holy grail of FONC?

2013-04-13 Thread John Carlson
 One initiative which is interesting is Worlds which could function as a
kind of exploratory programmer's undo. This has been covered in various
papers on the VPRI writings page, and touched upon IIRC in some of the NSF
updates. It's actually IMHO one of the unsung heroes of what these people
have been up to.

My coworker actually delivered a system with programmer's undo; it was
called a reversible debugger in 1993--before IDEs were popular.  We had a
virtual machine.  There wasn't a lot of syntax present.  We used icons
instead of just text to represent the program.  We could delete operations
before and after the program counter.  We weren't given enough time to
develop it into a full OO system...we kind of got in trouble for competing
with industry at the time. Here's a link to the paper.  If you have any
questions, ask.  All primitives were strings, but we did have a simple
desktop calculator.

http://w3.isis.vanderbilt.edu/OOPSLA2K1/Papers/Carlson.pdf

In essence my understanding of how it worked was for every action stepped
through an a undo record was created and kept on a stack.  I am not sure
how undos were handled inside loops, but I suspect there was undo until you
find a record for the action present in the program.  It was a fine piece
of work by Jeffrey Allen.  So I'm singing for Jeffrey.

The project gave me respect for what you can do with a few desktop gadgets
integrated with a flowchart.  Programs were exportable and importable
to/from C++ global variables--yes, i did the housepainting.  We were
storing the programs in flat files as well...one per class. If we could
combine windows 8 with a reversible debugger, Wow!

So now I'm essentially retired and reliving glory days.  Remember this is
before the web for the initial development.
___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


Re: [fonc] When natural language fails!

2013-04-12 Thread John Carlson
Base 13 folks.
On Apr 12, 2013 3:41 AM, GrrrWaaa grrrw...@gmail.com wrote:

 It doesn't reply forty-two?

 http://answers.yahoo.com/question/index?qid=20081019212355AAHkApl

 On Apr 9, 2013, at 5:48 PM, Casey Ransberger wrote:

  It's tragic that Siri can't tell me what you get when you multiply six
 by nine.

 ___
 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] CodeSpells. Learn how to program Java by writing spells for a 3D environment.

2013-04-12 Thread John Carlson
http://www.jacobsschool.ucsd.edu/news/news_releases/release.sfe?id=1347
___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


Re: [fonc] CodeSpells. Learn how to program Java by writing spells for a 3D environment.

2013-04-12 Thread John Carlson
Btw, is this the same Griswold of Snobol and Icon (programming languages)
fame?
On Apr 12, 2013 3:20 PM, shaun gilchrist shaunxc...@gmail.com wrote:

 One of the fundamentals we are all still grasping at is how to teach
 programming. These are links to people attempting to contribute something
 meaningful in that direction rather than posting derisive comments and
 blatant cult related wing nuttery which, in fact, have nothing to do with
 computing. Good day sir!


 On Fri, Apr 12, 2013 at 2:12 PM, John Pratt jpra...@gmail.com wrote:

 Fine, but what does that have to do with
 setting the fundamentals of new computing?

 Is this just a mailing list for computer scientist to jerk off?


 On Apr 12, 2013, at 1:00 PM, Josh Grams wrote:

  On 2013-04-12 11:11AM, David Barbour wrote:
  I've occasionally contemplated developing such a game: program the
 behavior
  of your team of goblins (who may have different strengths,
 capabilities,
  and some behavioral habits/quirks) to get through a series of puzzles,
 with
  players building/managing a library as they go.
 
  Forth Warrior? :)
 
  https://github.com/JohnEarnest/Mako/tree/master/games/Warrior2
 
  --Josh
  ___
  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 mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


Re: [fonc] Layering, Thinking and Computing

2013-04-09 Thread John Carlson
So it's message recognition and not actor recognition?  Can actors
collaborate to recognize a message?  I'm trying to put this in terms of
subjective/objective.  In a subjective world there are only messages
(waves).  In an objective world there are computers and routers and
networks (actors, locations, particles).
On Apr 8, 2013 4:52 PM, Tristan Slominski tristan.slomin...@gmail.com
wrote:

 Therefore, with respect to this property, you cannot (in general) reason
 about or treat groups of two actors as though they were a single actor.


 This is incorrect, well, it's based on a false premise.. this part is
 incorrect/invalid? (an appropriate word escapes me):

 But two actors can easily (by passing messages in circles) send out an
 infinite number of messages to other actors upon receiving a single message.


 I see it as the equivalent of saying: I can write an infinite loop,
 therefore, I cannot reason about functions

 As you note, actors are not unique in their non-termination. But that
 misses the point. The issue was our ability to reason about actors
 compositionally, not whether termination is a good property.


 The above statement, in my mind, sort of misunderstands reasoning about
 actors. What does it mean for an actor to terminate. The _only_ way you
 will know, is if the actor sends you a message that it's done. Any
 reasoning about actors and their compositionality must be done in terms of
 messages sent and received. Reasoning in other ways does not make sense in
 the actor model (as far as I understand). This is how I model it in my
 head:

 It's sort of the analog of asking what happened before the Big Bang.
 Well, there was no time before the Big Bang, so asking about before
 doesn't make sense. In a similar way, reasoning about actor systems with
 anything except messages, doesn't make sense. To use another physics
 analogy, there is no privileged frame of reference in actors, you only get
 messages. It's actually a really well abstracted system that requires no
 other abstractions. Actors and actor configurations (groupings of actors)
 become indistinguishable, because they are logically equivalent for
 reasoning purposes. The only way to interact with either is to send it a
 message and to receive a message. Whether it's millions of actors or just
 one doesn't matter, because *you can't tell the difference* (remember,
 there's no privileged frame of reference). To instrument an actor
 configuration, you need to put actors in front of it. But to the user of
 such instrumented configuration, they won't be able to tell the difference.
 And so on and so forth, It's Actors All The Way Down.

 ...

 I think we found common ground/understanding on other things.


 On Sun, Apr 7, 2013 at 6:40 PM, David Barbour dmbarb...@gmail.com wrote:

 On Sun, Apr 7, 2013 at 2:56 PM, Tristan Slominski 
 tristan.slomin...@gmail.com wrote:

 stability is not necessarily the goal. Perhaps I'm more in the
 biomimetic camp than I think.


 Just keep in mind that the real world has quintillions of bugs. In
 software, humans are probably still under a trillion.  :)


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



 On Sun, Apr 7, 2013 at 6:40 PM, David Barbour dmbarb...@gmail.com wrote:

 On Sun, Apr 7, 2013 at 2:56 PM, Tristan Slominski 
 tristan.slomin...@gmail.com wrote:

 stability is not necessarily the goal. Perhaps I'm more in the
 biomimetic camp than I think.


 Just keep in mind that the real world has quintillions of bugs. In
 software, humans are probably still under a trillion.  :)


 ___
 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


Re: [fonc] When natural language fails!

2013-04-09 Thread John Carlson
Sometimes I think that something like http://leapmotion.com will use
something like Ameslan to revolutionize programming.  Maybe programming
will become less sedentary and more like dance dance revolution.
___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


Re: [fonc] When natural language fails!

2013-04-09 Thread John Carlson
I thought the desktop metaphor was programming.
On Apr 9, 2013 12:08 PM, David Barbour dmbarb...@gmail.com wrote:

 On Tue, Apr 9, 2013 at 9:19 AM, Chris Warburton chriswa...@googlemail.com
  wrote:


 There is a distinction between programming a mobile phone and
 programming when mobile.


 True enough! And there's also a distinction between programming WITH a
 mobile phone and programming while mobile. As hard as it would be to use
 bash with an on-screen keyboard while sitting in a noisy restaurant, it
 would be a lot harder to program while jogging or skiing. (And HCI is very
 closely related to programming...)

 Regards,

 Dave


 ___
 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] Natural Language Wins

2013-04-07 Thread John Carlson
On further review the person in question admitted being human...one of
God's bots he says.  I'm trying to convince him that God wants more than
bots.

I just realized the religious discussion was likely created by a bot.
Sorry.  John
___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


Re: [fonc] Natural Language Wins

2013-04-07 Thread John Carlson
Why math/logic loses, munchhausen trilemma:
http://en.m.wikipedia.org/wiki/M%C3%BCnchhausen_trilemma
On Apr 7, 2013 8:20 PM, John Carlson yottz...@gmail.com wrote:

 On further review the person in question admitted being human...one of
 God's bots he says.  I'm trying to convince him that God wants more than
 bots.

 I just realized the religious discussion was likely created by a bot.
 Sorry.  John

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


Re: [fonc] Natural Language Wins (Lt and other DSLs)

2013-04-07 Thread John Carlson
I looked at Lt. Reminds me of John Orwant's Extensible Graphical Game
Generator.  If you like s-expressions, there are other DSLs for games from
stanford and australia.  Are you envisioning a DSL for NLP?
On Apr 7, 2013 9:27 PM, John Carlson yottz...@gmail.com wrote:

 What is the Peano of NLP?  Humanity?  I'll check previous messages.
 On Apr 7, 2013 8:25 PM, John Carlson yottz...@gmail.com wrote:

 Why math/logic loses, munchhausen trilemma:
 http://en.m.wikipedia.org/wiki/M%C3%BCnchhausen_trilemma
 On Apr 7, 2013 8:20 PM, John Carlson yottz...@gmail.com wrote:

 On further review the person in question admitted being human...one of
 God's bots he says.  I'm trying to convince him that God wants more than
 bots.

 I just realized the religious discussion was likely created by a bot.
 Sorry.  John


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


Re: [fonc] Natural Language Wins (Lt and other DSLs)

2013-04-07 Thread John Carlson
It would seem like NLP should be based on phonemes, not written language.
One cannot say what the name of God is, because written Hebrew lacks
vowels.  We should go with phonemes, I believe.
On Apr 7, 2013 9:36 PM, John Carlson yottz...@gmail.com wrote:

 I looked at Lt. Reminds me of John Orwant's Extensible Graphical Game
 Generator.  If you like s-expressions, there are other DSLs for games from
 stanford and australia.  Are you envisioning a DSL for NLP?
 On Apr 7, 2013 9:27 PM, John Carlson yottz...@gmail.com wrote:

 What is the Peano of NLP?  Humanity?  I'll check previous messages.
 On Apr 7, 2013 8:25 PM, John Carlson yottz...@gmail.com wrote:

 Why math/logic loses, munchhausen trilemma:
 http://en.m.wikipedia.org/wiki/M%C3%BCnchhausen_trilemma
 On Apr 7, 2013 8:20 PM, John Carlson yottz...@gmail.com wrote:

 On further review the person in question admitted being human...one of
 God's bots he says.  I'm trying to convince him that God wants more than
 bots.

 I just realized the religious discussion was likely created by a bot.
 Sorry.  John


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


Re: [fonc] Natural Language Wins

2013-04-06 Thread John Carlson
I once hear it said that Jesus didn't tell us to be perfect, instead he
told us to mature and bear good fruit.  Have you?
On Apr 6, 2013 5:32 AM, Kirk Fraser overcomer@gmail.com wrote:

 Most likely your personal skills at natural language are insufficient to
 understand Revelation in the Bible, like mine were until I spent lots of
 time learning.  Now I can predict the current Pope Francis will eventually
 help create the 7 nation Islamic Caliphate with 3 extra-national military
 powers like Hamas in Rev. 13, 17:3.  You must understand natural language
 well if you want to program it well.  Many grad students hack out an NLP
 project that works at an uninspiring level.  To go beyond the state of the
 art, you must learn to understand beyond state of the art.

 Claims that the world has progressed beyond some past century are true for
 technology but not in human behavior.  People still have wars large and
 small.  Some of the worst human behavior can be seen in courts during wars
 between family members, and some of that behavior comes from lawyers.
  Human behavior can only be improved by everyone pursuing the absolute
 perfection of God and his human form Jesus Christ, the Creator.  We must go
 beyond the state of the art churches, to learn from the true church which
 Jesus practiced with His students, before He left and they quit doing much
 of what He did and taught.

 Because his first graduates ignored His teaching of equal status under Him
  instead pursuing positions over others and their money, today we have
 inherited that culture instead of Jesus' life where it is possible to be
 fed directly by God's miracles without need of money.  So I propose a
 return from today's advanced culture to Jesus' absolute perfection.
 www.freetom.info.truechurch

 In view of the human spiritual awakening possible that way, computers are
 only a temporary support until we get there.  Watch videos archived at
 www.sidroth.org some of which are lame but others are impressive showing
 what is happening now giving the idea the perfect culture of Jesus' church
 is possible.

 Love Absolute Truth,
 Kirk W. Fraser


 On Fri, Apr 5, 2013 at 10:23 PM, Steve Taylor s...@ozemail.com.au wrote:

 Charlie Derr wrote:

  Nevertheless I'm finding some of this conversation truly fascinating
 (though I'm having a little trouble figuring out
 what is truth and what isn't).


 I'm just waiting for Kirk to mention Atlantis or the Rosicrucians. It
 feels like it could be any moment...



 Steve

 __**_
 fonc mailing list
 fonc@vpri.org
 http://vpri.org/mailman/**listinfo/fonchttp://vpri.org/mailman/listinfo/fonc




 --
 Kirk W. Fraser
 http://freetom.info/TrueChurch - Replace the fraud churches with the true
 church.
 http://congressionalbiblestudy.org - Fix America by first fixing its
 Christian foundation.
 http://freetom.info - Example of False Justice common in America

 ___
 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] Natural Language Wins

2013-04-06 Thread John Carlson
Sorry.  I meant heard.  Obviously I am imperfect.  I have read Foucault's
Pendulum, however.  Maybe we should start quoting it instead of the Bible.
On Apr 6, 2013 9:36 AM, John Carlson yottz...@gmail.com wrote:

 I once hear it said that Jesus didn't tell us to be perfect, instead he
 told us to mature and bear good fruit.  Have you?
 On Apr 6, 2013 5:32 AM, Kirk Fraser overcomer@gmail.com wrote:

 Most likely your personal skills at natural language are insufficient to
 understand Revelation in the Bible, like mine were until I spent lots of
 time learning.  Now I can predict the current Pope Francis will eventually
 help create the 7 nation Islamic Caliphate with 3 extra-national military
 powers like Hamas in Rev. 13, 17:3.  You must understand natural language
 well if you want to program it well.  Many grad students hack out an NLP
 project that works at an uninspiring level.  To go beyond the state of the
 art, you must learn to understand beyond state of the art.

 Claims that the world has progressed beyond some past century are true
 for technology but not in human behavior.  People still have wars large and
 small.  Some of the worst human behavior can be seen in courts during wars
 between family members, and some of that behavior comes from lawyers.
  Human behavior can only be improved by everyone pursuing the absolute
 perfection of God and his human form Jesus Christ, the Creator.  We must go
 beyond the state of the art churches, to learn from the true church which
 Jesus practiced with His students, before He left and they quit doing much
 of what He did and taught.

 Because his first graduates ignored His teaching of equal status under
 Him  instead pursuing positions over others and their money, today we have
 inherited that culture instead of Jesus' life where it is possible to be
 fed directly by God's miracles without need of money.  So I propose a
 return from today's advanced culture to Jesus' absolute perfection.
 www.freetom.info.truechurch

 In view of the human spiritual awakening possible that way, computers are
 only a temporary support until we get there.  Watch videos archived at
 www.sidroth.org some of which are lame but others are impressive showing
 what is happening now giving the idea the perfect culture of Jesus' church
 is possible.

 Love Absolute Truth,
 Kirk W. Fraser


 On Fri, Apr 5, 2013 at 10:23 PM, Steve Taylor s...@ozemail.com.auwrote:

 Charlie Derr wrote:

  Nevertheless I'm finding some of this conversation truly fascinating
 (though I'm having a little trouble figuring out
 what is truth and what isn't).


 I'm just waiting for Kirk to mention Atlantis or the Rosicrucians. It
 feels like it could be any moment...



 Steve

 __**_
 fonc mailing list
 fonc@vpri.org
 http://vpri.org/mailman/**listinfo/fonchttp://vpri.org/mailman/listinfo/fonc




 --
 Kirk W. Fraser
 http://freetom.info/TrueChurch - Replace the fraud churches with the
 true church.
 http://congressionalbiblestudy.org - Fix America by first fixing its
 Christian foundation.
 http://freetom.info - Example of False Justice common in America

 ___
 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] Natural Language Wins

2013-04-06 Thread John Carlson
My favorite Umberto Eco quote from Foucault's Pendulum is vous etes fou
(sorry english keyboard).▲
On Apr 6, 2013 9:53 AM, John Carlson yottz...@gmail.com wrote:

 Sorry.  I meant heard.  Obviously I am imperfect.  I have read Foucault's
 Pendulum, however.  Maybe we should start quoting it instead of the Bible.
 On Apr 6, 2013 9:36 AM, John Carlson yottz...@gmail.com wrote:

 I once hear it said that Jesus didn't tell us to be perfect, instead he
 told us to mature and bear good fruit.  Have you?
 On Apr 6, 2013 5:32 AM, Kirk Fraser overcomer@gmail.com wrote:

 Most likely your personal skills at natural language are insufficient to
 understand Revelation in the Bible, like mine were until I spent lots of
 time learning.  Now I can predict the current Pope Francis will eventually
 help create the 7 nation Islamic Caliphate with 3 extra-national military
 powers like Hamas in Rev. 13, 17:3.  You must understand natural language
 well if you want to program it well.  Many grad students hack out an NLP
 project that works at an uninspiring level.  To go beyond the state of the
 art, you must learn to understand beyond state of the art.

 Claims that the world has progressed beyond some past century are true
 for technology but not in human behavior.  People still have wars large and
 small.  Some of the worst human behavior can be seen in courts during wars
 between family members, and some of that behavior comes from lawyers.
  Human behavior can only be improved by everyone pursuing the absolute
 perfection of God and his human form Jesus Christ, the Creator.  We must go
 beyond the state of the art churches, to learn from the true church which
 Jesus practiced with His students, before He left and they quit doing much
 of what He did and taught.

 Because his first graduates ignored His teaching of equal status under
 Him  instead pursuing positions over others and their money, today we have
 inherited that culture instead of Jesus' life where it is possible to be
 fed directly by God's miracles without need of money.  So I propose a
 return from today's advanced culture to Jesus' absolute perfection.
 www.freetom.info.truechurch

 In view of the human spiritual awakening possible that way, computers
 are only a temporary support until we get there.  Watch videos archived at
 www.sidroth.org some of which are lame but others are impressive
 showing what is happening now giving the idea the perfect culture of Jesus'
 church is possible.

 Love Absolute Truth,
 Kirk W. Fraser


 On Fri, Apr 5, 2013 at 10:23 PM, Steve Taylor s...@ozemail.com.auwrote:

 Charlie Derr wrote:

  Nevertheless I'm finding some of this conversation truly fascinating
 (though I'm having a little trouble figuring out
 what is truth and what isn't).


 I'm just waiting for Kirk to mention Atlantis or the Rosicrucians. It
 feels like it could be any moment...



 Steve

 __**_
 fonc mailing list
 fonc@vpri.org
 http://vpri.org/mailman/**listinfo/fonchttp://vpri.org/mailman/listinfo/fonc




 --
 Kirk W. Fraser
 http://freetom.info/TrueChurch - Replace the fraud churches with the
 true church.
 http://congressionalbiblestudy.org - Fix America by first fixing its
 Christian foundation.
 http://freetom.info - Example of False Justice common in America

 ___
 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] Natural Language Wins

2013-04-06 Thread John Carlson
When I was studying Revelation in the 1980s.  We thought this same
scripture referred to the European Union.  We also thought that Jesus had
to return by 1988, because that was one generation past when the Jews
returned to Israel in 1948.  It seems that god has a way of overturning
predictions.

Some answered questions: http://reference.bahai.org/en/t/ab/SAQ/

On Apr 6, 2013 5:32 AM, Kirk Fraser overcomer@gmail.com wrote:

 Most likely your personal skills at natural language are insufficient to
understand Revelation in the Bible, like mine were until I spent lots of
time learning.  Now I can predict the current Pope Francis will eventually
help create the 7 nation Islamic Caliphate with 3 extra-national military
powers like Hamas in Rev. 13, 17:3.  You must understand natural language
well if you want to program it well.  Many grad students hack out an NLP
project that works at an uninspiring level.  To go beyond the state of the
art, you must learn to understand beyond state of the art.

 Claims that the world has progressed beyond some past century are true
for technology but not in human behavior.  People still have wars large and
small.  Some of the worst human behavior can be seen in courts during wars
between family members, and some of that behavior comes from lawyers.
 Human behavior can only be improved by everyone pursuing the absolute
perfection of God and his human form Jesus Christ, the Creator.  We must go
beyond the state of the art churches, to learn from the true church which
Jesus practiced with His students, before He left and they quit doing much
of what He did and taught.

 Because his first graduates ignored His teaching of equal status under
Him  instead pursuing positions over others and their money, today we have
inherited that culture instead of Jesus' life where it is possible to be
fed directly by God's miracles without need of money.  So I propose a
return from today's advanced culture to Jesus' absolute perfection.
www.freetom.info.truechurch

 In view of the human spiritual awakening possible that way, computers are
only a temporary support until we get there.  Watch videos archived at
www.sidroth.org some of which are lame but others are impressive showing
what is happening now giving the idea the perfect culture of Jesus' church
is possible.

 Love Absolute Truth,
 Kirk W. Fraser


 On Fri, Apr 5, 2013 at 10:23 PM, Steve Taylor s...@ozemail.com.au wrote:

 Charlie Derr wrote:

 Nevertheless I'm finding some of this conversation truly fascinating
(though I'm having a little trouble figuring out
 what is truth and what isn't).


 I'm just waiting for Kirk to mention Atlantis or the Rosicrucians. It
feels like it could be any moment...



 Steve

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




 --
 Kirk W. Fraser
 http://freetom.info/TrueChurch - Replace the fraud churches with the true
church.
 http://congressionalbiblestudy.org - Fix America by first fixing its
Christian foundation.
 http://freetom.info - Example of False Justice common in America

 ___
 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] Natural Language Wins

2013-04-06 Thread John Carlson
The Lord will return like a thief in the night:
http://bible.cc/1_thessalonians/5-2.htm
Is this predictable?  Is there more than one return?  Jews believe in one
Messiah.  Christians believe in 2 Messiahs (Jesus and his return).  Anyone
for 3 or 4 or more?


On Sat, Apr 6, 2013 at 11:12 AM, BGB cr88...@gmail.com wrote:

  On 4/6/2013 10:59 AM, John Carlson wrote:

 When I was studying Revelation in the 1980s.  We thought this same
 scripture referred to the European Union.  We also thought that Jesus had
 to return by 1988, because that was one generation past when the Jews
 returned to Israel in 1948.  It seems that god has a way of overturning
 predictions.


 read something recently that asserted that the prediction still held, only
 that the generation was 80 years rather than 40, thus putting the end-event
 somewhere around 2028 (with the rebuilding of the temple and tribulation
 and so on happening before this).

 it still remains to be seen how things will turn out.



  Some answered questions: http://reference.bahai.org/en/t/ab/SAQ/

 On Apr 6, 2013 5:32 AM, Kirk Fraser overcomer@gmail.com wrote:
 
  Most likely your personal skills at natural language are insufficient to
 understand Revelation in the Bible, like mine were until I spent lots of
 time learning.  Now I can predict the current Pope Francis will eventually
 help create the 7 nation Islamic Caliphate with 3 extra-national military
 powers like Hamas in Rev. 13, 17:3.  You must understand natural language
 well if you want to program it well.  Many grad students hack out an NLP
 project that works at an uninspiring level.  To go beyond the state of the
 art, you must learn to understand beyond state of the art.
 
  Claims that the world has progressed beyond some past century are true
 for technology but not in human behavior.  People still have wars large and
 small.  Some of the worst human behavior can be seen in courts during wars
 between family members, and some of that behavior comes from lawyers.
  Human behavior can only be improved by everyone pursuing the absolute
 perfection of God and his human form Jesus Christ, the Creator.  We must go
 beyond the state of the art churches, to learn from the true church which
 Jesus practiced with His students, before He left and they quit doing much
 of what He did and taught.
 
  Because his first graduates ignored His teaching of equal status under
 Him  instead pursuing positions over others and their money, today we have
 inherited that culture instead of Jesus' life where it is possible to be
 fed directly by God's miracles without need of money.  So I propose a
 return from today's advanced culture to Jesus' absolute perfection.
 www.freetom.info.truechurch
 
  In view of the human spiritual awakening possible that way, computers
 are only a temporary support until we get there.  Watch videos archived at
 www.sidroth.org some of which are lame but others are impressive showing
 what is happening now giving the idea the perfect culture of Jesus' church
 is possible.
 
  Love Absolute Truth,
  Kirk W. Fraser
 
 
  On Fri, Apr 5, 2013 at 10:23 PM, Steve Taylor s...@ozemail.com.au
 wrote:
 
  Charlie Derr wrote:
 
  Nevertheless I'm finding some of this conversation truly fascinating
 (though I'm having a little trouble figuring out
  what is truth and what isn't).
 
 
  I'm just waiting for Kirk to mention Atlantis or the Rosicrucians. It
 feels like it could be any moment...
 
 
 
  Steve
 
  ___
  fonc mailing list
  fonc@vpri.org
  http://vpri.org/mailman/listinfo/fonc
 
 
 
 
  --
  Kirk W. Fraser
  http://freetom.info/TrueChurch - Replace the fraud churches with the
 true church.
  http://congressionalbiblestudy.org - Fix America by first fixing its
 Christian foundation.
  http://freetom.info - Example of False Justice common in America
 
  ___
  fonc mailing list
  fonc@vpri.org
  http://vpri.org/mailman/listinfo/fonc
 


 ___
 fonc mailing listfonc@vpri.orghttp://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


Re: [fonc] Natural Language Wins

2013-04-06 Thread John Carlson
And by 2028, we will be living 120 years or more, which will extend the
end-event even more.


On Sat, Apr 6, 2013 at 11:12 AM, BGB cr88...@gmail.com wrote:

  On 4/6/2013 10:59 AM, John Carlson wrote:

 When I was studying Revelation in the 1980s.  We thought this same
 scripture referred to the European Union.  We also thought that Jesus had
 to return by 1988, because that was one generation past when the Jews
 returned to Israel in 1948.  It seems that god has a way of overturning
 predictions.


 read something recently that asserted that the prediction still held, only
 that the generation was 80 years rather than 40, thus putting the end-event
 somewhere around 2028 (with the rebuilding of the temple and tribulation
 and so on happening before this).

 it still remains to be seen how things will turn out.



  Some answered questions: http://reference.bahai.org/en/t/ab/SAQ/

 On Apr 6, 2013 5:32 AM, Kirk Fraser overcomer@gmail.com wrote:
 
  Most likely your personal skills at natural language are insufficient to
 understand Revelation in the Bible, like mine were until I spent lots of
 time learning.  Now I can predict the current Pope Francis will eventually
 help create the 7 nation Islamic Caliphate with 3 extra-national military
 powers like Hamas in Rev. 13, 17:3.  You must understand natural language
 well if you want to program it well.  Many grad students hack out an NLP
 project that works at an uninspiring level.  To go beyond the state of the
 art, you must learn to understand beyond state of the art.
 
  Claims that the world has progressed beyond some past century are true
 for technology but not in human behavior.  People still have wars large and
 small.  Some of the worst human behavior can be seen in courts during wars
 between family members, and some of that behavior comes from lawyers.
  Human behavior can only be improved by everyone pursuing the absolute
 perfection of God and his human form Jesus Christ, the Creator.  We must go
 beyond the state of the art churches, to learn from the true church which
 Jesus practiced with His students, before He left and they quit doing much
 of what He did and taught.
 
  Because his first graduates ignored His teaching of equal status under
 Him  instead pursuing positions over others and their money, today we have
 inherited that culture instead of Jesus' life where it is possible to be
 fed directly by God's miracles without need of money.  So I propose a
 return from today's advanced culture to Jesus' absolute perfection.
 www.freetom.info.truechurch
 
  In view of the human spiritual awakening possible that way, computers
 are only a temporary support until we get there.  Watch videos archived at
 www.sidroth.org some of which are lame but others are impressive showing
 what is happening now giving the idea the perfect culture of Jesus' church
 is possible.
 
  Love Absolute Truth,
  Kirk W. Fraser
 
 
  On Fri, Apr 5, 2013 at 10:23 PM, Steve Taylor s...@ozemail.com.au
 wrote:
 
  Charlie Derr wrote:
 
  Nevertheless I'm finding some of this conversation truly fascinating
 (though I'm having a little trouble figuring out
  what is truth and what isn't).
 
 
  I'm just waiting for Kirk to mention Atlantis or the Rosicrucians. It
 feels like it could be any moment...
 
 
 
  Steve
 
  ___
  fonc mailing list
  fonc@vpri.org
  http://vpri.org/mailman/listinfo/fonc
 
 
 
 
  --
  Kirk W. Fraser
  http://freetom.info/TrueChurch - Replace the fraud churches with the
 true church.
  http://congressionalbiblestudy.org - Fix America by first fixing its
 Christian foundation.
  http://freetom.info - Example of False Justice common in America
 
  ___
  fonc mailing list
  fonc@vpri.org
  http://vpri.org/mailman/listinfo/fonc
 


 ___
 fonc mailing listfonc@vpri.orghttp://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


Re: [fonc] Natural Language Wins

2013-04-04 Thread John Carlson
I didn't see lojban mentioned.  http://en.m.wikipedia.org/wiki/Lojban
On Apr 4, 2013 3:19 PM, Kirk Fraser overcomer@gmail.com wrote:

 The main source of invention is not math wins as described on
 http://www.vpri.org/html/work/ifnct.htm since the world would be speaking
 math if it were really the source of inspiring more inventions that improve
 the world's standard of living.  Math helps add precision to tasks that
 involve counting.  Attempting to move from counting to logic such as in
 statistics sometimes leads to false conclusions, especially if logic is not
 given priority over the tools of math.  For human value, readability is
 required, so computer language improvements must focus on natural language.

 Human language itself has problems seen in large projects such as Ubuntu
 where contributors from around the world write in their own language and
 tag their code with favorite names which mean nothing to the average reader
 instead of words which best explain the application.  Thus a major
 improvement for world computing would be careful adherence to a world wide
 natural language.  We know cobbling together a variety of languages as in
 Esperanto fails.  While English is the world standard language for
 business, Hebrew might be more inspiring.  In any case the use of whole
 words with common sense is more readable than acronyms.

 The first math language Fortran was soon displaced in business by more
 readable code afforded by Cobol's longer variable names.  In Smalltalk one
 can write unreadable math as easily as readable code but Smalltalk may have
 a few legacy bugs which nobody has yet fixed, possibly due to having
 metaphor or polymorphism design errors, where the code looks good to
 multiple programmers but fails to perform as truly desired in all
 circumstances.  Further reluctance to use commonsense whole words on some
 objects such as BltBlk present a barrier to learning directly from the
 code.

 One way to reduce these errors is to develop a set of executable rules
 that produce Smalltalk, including checking method reuse implications.  Then
 one could make changes to a few rules and the rules would totally
 reengineer Smalltalk accordingly, without forgetting or overlooking
 anything that the programmer hasn't overlooked in the rules.  There is also
 room for a more efficient and more natural language.  Smalltalk is
 supposed to be 3 times faster to code than C and Expert systems are
 supposed to be 10 times faster to code in than C.  So a better language
 needs development in two directions, easy to understand Expert rules using
 common sense whole words and a built in library which enables Star Trek's
 Computer or Iron Man's Computer level of hands free or at least keyboard
 free function.

 There are three basic statements in any computer language: assignment, If
 then else, and loop.  Beyond that a computer language should provide rapid
 access to all common peripherals.  Expert systems tend to have a built in
 loop which executes everything until there are no more changes.  Some
 industrial process controllers put a strict time limit on the loop.
  Examining published rules of simple expert systems, it appears that random
 rule order makes them easier to create while brainstorming, it is possible
 to organize rules in a sequential order which eliminates the repeat until
 no changes loop.  Rule ordering can be automated to retain freedom of human
 input order.

 Several years ago I worked with a Standford student to develop a language
 we call Lt which introduces a concept of Object Strings which can make
 rules a little easier.  Unfortunately the project was written in VBasic
 instead of Smalltalk so I've had insufficient ability to work on it since
 the project ended.  Soon I'll be working on converting it to Smalltalk then
 reengineering it since it has a few design errors and needs a few more
 development cycles educated by co-developing an NLP application.

 Here's a simple Lt method which is very similar to Smalltalk

 game
 example Lt code
 | bird player rock noise |
  'objects
 rock exists.  player clumsy.
   'facts
 player trips : [player {clumsy unlucky}, rock exists].
 'a if x w or x y and z
 noise exists; is loud : (player trips, player noisy).
  'a and b if x or y
 bird frightened : noise is loud.
 'a if x
 (bird ~player has : bird frightened.
   'case:  if b then not a else a.
 bird player has.).

 ^
'answer rock exists, player clumsy,
 player trips, noise exists, noise is loud

 'bird frightened

 Now to complete the project without corporate resources, it is necessary
 to select an NLP application which is both more powerful and physically
 smaller than IBM's Watson which won against Jeopardy's best players.  The
 most powerful NLP text in history is the Bible which is only 4 Mb instead
 of Watson's 4 Tb.  Bible analysis can be very 

Re: [fonc] Natural Language Wins

2013-04-04 Thread John Carlson
Esperanto was intended to be a human understandable language.  Lojban is
intended to be a computer and human understandable language...huge
difference.
On Apr 4, 2013 3:39 PM, Kirk Fraser overcomer@gmail.com wrote:

 On Thu, Apr 4, 2013 at 1:26 PM, John Carlson yottz...@gmail.com wrote:

 I didn't see lojban mentioned.  http://en.m.wikipedia.org/wiki/Lojban

 Consider it equal to Esperanto in context of my argument.

 ___
 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] Natural Language Wins

2013-04-04 Thread John Carlson
Natural languages include tenses.  What computer systems have a wide
variety of tenses?
___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


Re: [fonc] The world's biggest exporter of crazy talk? Meme engineering?

2013-04-03 Thread John Carlson
What's a plant and what is an animal?
http://en.m.wikipedia.org/wiki/Elysia_chlorotica

Fwiw,

John
On Apr 3, 2013 3:41 PM, John Carlson yottz...@gmail.com wrote:

 For me, classification, taxonomy, categorization, schema and ontology are
 contentious ideas.

 Fwiw,

 Johb
 On Apr 3, 2013 2:56 PM, Gath-Gealaich gath.na.geala...@gmail.com
 wrote:

 Our language, much like everything these days, has been *hacked*.
 *Fuzzy, contentious, and complex ideas* have been stripped of their
 subversive connotations and replaced by cleaner, shinier, and emptier
 alternatives

 Emphasis mine. Am I the only one feeling that these two sentences are
 deliciously ironic when put next to each other?

 - Gath


 On Wed, Apr 3, 2013 at 3:37 PM, Ryan Mitchley ryan.mitch...@gmail.comwrote:

 http://thebaffler.com/past/**the_meme_hustlerhttp://thebaffler.com/past/the_meme_hustler

 I have to admit that I had not previously encountered such focused
 criticism of O'Reilly.

 With passing mentions of Engelbart and Postman, the essay may be of some
 interest to the list.



 __**_
 fonc mailing list
 fonc@vpri.org
 http://vpri.org/mailman/**listinfo/fonchttp://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] Behavior reuse through copy and paste between applications.

2013-03-29 Thread John Carlson
I'm not sure if this is on subject or not. I recently considered not only
copying data between applications, but also copying behavior.  I know the
typical response would be to tell the user to go find the behavior in the
source code or library.  What if some simple keystrokes could copy and
paste behavior?  Which systems have done this?  Thanks in advance.
___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


Re: [fonc] Behavior reuse through copy and paste between applications.

2013-03-29 Thread John Carlson
I'm thinking more about copying behavior between different address spaces.
On Mar 29, 2013 11:27 PM, Yoshiki Ohshima yoshiki.ohsh...@acm.org wrote:

 On Fri, Mar 29, 2013 at 9:19 PM, John Carlson yottz...@gmail.com wrote:
  I'm not sure if this is on subject or not. I recently considered not only
  copying data between applications, but also copying behavior.  I know the
  typical response would be to tell the user to go find the behavior in the
  source code or library.  What if some simple keystrokes could copy and
 paste
  behavior?  Which systems have done this?  Thanks in advance.

 This may be a tangential answer but Scratch lets you drop a stack of
 block from one sprite to another.

 --
 -- Yoshiki
 ___
 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] Binary Lambda Calculus

2013-03-25 Thread John Carlson
So is anyone looking at binary parser generators?  It would seem like
something like this would have been done ages ago.
On Mar 25, 2013 12:07 PM, Andre van Delft andre.vande...@gmail.com
wrote:


 Op 25 mrt. 2013, om 17:35 heeft John Tromp john.tr...@gmail.com het
 volgende geschreven:

  PGA is very different from BLC of course, but both are a simple linear
  notations. PGA starts with jump instructions, and it has step by step
  extensions for variables, control structures, semaphores etc. It has
 been
  used as a projection of Ruby's OO constructs.
  So I hope PGA could give you some ideas.
 
  PGA looks like a notation for control flow as a basis for an imperative
  language. BLC is a self-contained pure functional language aimed at
  minimal programs. This seems a case of comparing apples and oranges:-)

 Apples and oranges look far more similar than PGA and BLC. I would say it
 is more a case of apples and apple trees. Very different in appearance, but
 deep inside they share DNA, and the one form gives birth to the other form.
 ___
 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] Pre post conditionals dependency graphs for PEGs or Ometa

2013-03-14 Thread John Carlson
Sounds like a fancy shell program.  I have considered temporal state
machines which recognize temporal state machines?  I talked with one person
who had researched them in europe.  I think they may be handled in
augmented transition machines.

You may want to look at promises as well.  I think this is handled in
languages like e and maybe erlang.  Promises are in the grammar of e, which
I think is what you are suggesting.  Other languages implement promises as
a library--this may not be as clean.

I've also seen people add differential equations to state transition
machines.

You're probably looking for links, and I just provided keywords.
On Mar 14, 2013 8:55 PM, David Goehrig d...@nexttolast.com wrote:

 I was wondering if anyone on the list is aware of research of adding
 temporal conditionals (pre/post) to PEGs to generate context sentiments
 grammars capable of modeling transitions of a state machine.  Has anyone
 explored using a set of preconditional or postconditional predicates to
 modify a given pattern?  Also, has any looked at using multiple matches to
 mimic concurrency or parallelism?

 I was thinking of it in terms of a washing machine example, say a washing
 machine operation grammar defined a language as:

 Precondition - Predicate. # defines a match only when the left hand
 side has been matched, - is  read precedes

 wash - fill with water.
 wash - release soap.
 wash - agitate drum.

 Insert quarter {18} - wash.  # need $4.50 in quarters to start
 machine {18} repeats
 Select cycle - wash.
 Lock door - wash.

 wash 20 minutes - spin. # can not enter spin till we see wash 20
 minutes on input stream

 If you think of a program as a sequence of messages passing by the PEG
 producing matches over time, you could see how nicely this can map to
 certain classes of difficult distributed programming problems.   Some tasks
 which can happen in parallel like filling the drum with water, releasing
 the soap, and spinning the drum, are naturally parallel if no order is
 imposed by the rule engine.  Preconditions provide a way to ensure
 dependencies are met prior to a match being found.  I would love to see if
 anyone did any research into this sort of application.

 Dave


 --
 -=-=-=-=-=-=-=-=-=-=- http://blog.dloh.org/

 ___
 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] Design of web, POLs for rules. Fuzz testing nile

2013-02-15 Thread John Carlson
If you have to start a new relational database transaction for each http
post when submitting hundreds of posts,  that's going to create a lot of
overhead,  if you choose to use session ids and leave the tranaction open,
then you risk not committing something.  If you use database pools, you are
protected both ways I believe.

Still,  that's a lot of open connections.
On Feb 15, 2013 2:58 AM, J. Andrew Rogers and...@jarbox.org wrote:


 On Feb 15, 2013, at 12:10 AM, John Carlson yottz...@gmail.com wrote:
 
  I can't say anything about REST in general being slow.  I would like to
 see better support for adding multiple objects to a collection in HTTP
 REST, perhap by using MIME.


 REST is not a highly efficient protocol by any means but most of the
 slowness people attribute to REST has more to do with what people transport
 inside a REST operation than REST itself. REST is often below the
 performance noise floor if it is well-used despite its inefficiencies.

 REST is commonly used to transport XML or JSON or similar. Parsing JSON or
 XML encoding structures is quite slow because they are intrinsically
 inefficient as wire encoding formats. Compared to common efficient
 encodings, the difference in cost exceeds an order of magnitude in
 practice. For example, I currently have a system that parses, processes,
 and indexes complex geodetic polygons at sustained rates of many gigabytes
 per second (for real-time petabyte-scale sensing models of the Earth). The
 largest total consumer of CPU time by far is not computational geometry,
 network processing, or anything like that but parsing JSON source formats
 -- and we've invested a lot of time in highly optimizing JSON parsing. The
 internal binary format used by the same system disappears below the noise
 floor.

 As a practical matter, most people that use REST use JSON or XML and most
 people that don't use JSON and XML also don't use REST for related reasons.
 But it is not fair to blame REST for what is primarily an issue with JSON
 and XML even though they are often seen together. REST is not efficient but
 it usually pretty low on the long list of things that are slowing down an
 application.
 ___
 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] Design of web, POLs for rules. Fuzz testing nile

2013-02-15 Thread John Carlson
The most important paragraph is at the bottom.

It depends on the implementation of PUT.  If it's implemented as a delete
followed by an insert, then it's likely you've lost data like created
date,  unless you write some clever triggers.

If it's implemented as an update then there's also a chance that you've
lost your created date,  because a different date could come in from the
cliented.  Sometimes people really depend on created date and this means
hiding it from the client, which means writing one off rest services for
all your database tables that have created date.

You can also write PUT as a falied insert followed by an update.  This
often involves writing a special database procedure.

You can also do a select before doing all of this, but whoever is coming
after you maintaining the code is going to say WTF.

Yes I know that some of this can be handled by ORM,  then you lose your
ability to cache if the data is accesed outside the ORM,  perhaps in some
reporting framework.

I believe the best thing to do is use POST to create objects and quit
trying to fool people with your smartness.  You're only asking for trouble
if you do otherwise.  The important thing is to make sure your operations
are idempotent when they should be...that means with failures as well.  I
think if you're using POSTs not according to the REST HTTP spec you're
asking for all kinds of trouble.  As far as I can tell, they should only be
used to add items to collections.
On Feb 15, 2013 3:13 AM, David Barbour dmbarb...@gmail.com wrote:


 On Fri, Feb 15, 2013 at 12:10 AM, John Carlson yottz...@gmail.com wrote:

 The way I read rest over http post (wikipedia) is that you either create
 a new entry in a collection uri, or you create a new entry in the element
 uri, which becomes a collection.

 There are other options. For example, if you have a URI that represents a
 particular subset of records in a table (i.e. perhaps the URI itself
 contains a WHERE clause) then you could GET or PUT (or DELETE) just that
 subset of records in a sensible and RESTful manner.

 (Alternatively, you can PUT a resource that defines a view, then PUT some
 values into the view's results. But this requires code distribution, which
 is unpopular for a lot of security reasons.)

 For REST in general, the resource identifier schema can be a lot more
 flexible or structured than HTTP's URIs (and aren't necessarily limited to
 a few kilobytes). But even HTTP's URIs can be applied creatively.

 I read in rfc2616 quoted on stackoverflow that clients should not pipeline
 non-idempotent methods or non-idempotent sequences of methods.  So
 basically that tosses pipelining of posts.  Face it, REST over HTTP is slow

 PUTs are idempotent and can safely be pipelined. It isn't clear to me why
 you're using POST as the measure for REST performance.

 (POST is not very RESTful. The content of POST does not represent the
 state of any existing resource. It takes discipline to consistently use
 POST in a RESTful manner. POST is effectively HTTP's version of RPC, with
 all the attendant problems. GET and PUT are both much more closely aligned
 with REST.)


 ___
 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] Design of web, POLs for rules. Fuzz testing nile

2013-02-15 Thread John Carlson
The last they should be POSTs.

Forgive my typos.  For some unknown reason I am using my phone
On Feb 15, 2013 3:52 AM, John Carlson yottz...@gmail.com wrote:

 The most important paragraph is at the bottom.

 It depends on the implementation of PUT.  If it's implemented as a delete
 followed by an insert, then it's likely you've lost data like created
 date,  unless you write some clever triggers.

 If it's implemented as an update then there's also a chance that you've
 lost your created date,  because a different date could come in from the
 cliented.  Sometimes people really depend on created date and this means
 hiding it from the client, which means writing one off rest services for
 all your database tables that have created date.

 You can also write PUT as a falied insert followed by an update.  This
 often involves writing a special database procedure.

 You can also do a select before doing all of this, but whoever is coming
 after you maintaining the code is going to say WTF.

 Yes I know that some of this can be handled by ORM,  then you lose your
 ability to cache if the data is accesed outside the ORM,  perhaps in some
 reporting framework.

 I believe the best thing to do is use POST to create objects and quit
 trying to fool people with your smartness.  You're only asking for trouble
 if you do otherwise.  The important thing is to make sure your operations
 are idempotent when they should be...that means with failures as well.  I
 think if you're using POSTs not according to the REST HTTP spec you're
 asking for all kinds of trouble.  As far as I can tell, they should only be
 used to add items to collections.
 On Feb 15, 2013 3:13 AM, David Barbour dmbarb...@gmail.com wrote:


 On Fri, Feb 15, 2013 at 12:10 AM, John Carlson yottz...@gmail.comwrote:

 The way I read rest over http post (wikipedia) is that you either create
 a new entry in a collection uri, or you create a new entry in the element
 uri, which becomes a collection.

 There are other options. For example, if you have a URI that represents a
 particular subset of records in a table (i.e. perhaps the URI itself
 contains a WHERE clause) then you could GET or PUT (or DELETE) just that
 subset of records in a sensible and RESTful manner.

 (Alternatively, you can PUT a resource that defines a view, then PUT some
 values into the view's results. But this requires code distribution, which
 is unpopular for a lot of security reasons.)

 For REST in general, the resource identifier schema can be a lot more
 flexible or structured than HTTP's URIs (and aren't necessarily limited to
 a few kilobytes). But even HTTP's URIs can be applied creatively.

 I read in rfc2616 quoted on stackoverflow that clients should not
 pipeline non-idempotent methods or non-idempotent sequences of methods.  So
 basically that tosses pipelining of posts.  Face it, REST over HTTP is slow

 PUTs are idempotent and can safely be pipelined. It isn't clear to me why
 you're using POST as the measure for REST performance.

 (POST is not very RESTful. The content of POST does not represent the
 state of any existing resource. It takes discipline to consistently use
 POST in a RESTful manner. POST is effectively HTTP's version of RPC, with
 all the attendant problems. GET and PUT are both much more closely aligned
 with REST.)


 ___
 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] Design of web, POLs for rules. Fuzz testing nile

2013-02-15 Thread John Carlson
The most valuable part of the POST is the database generated ID.  I realize
there are other ways to do this--batching the creation of IDs for example.
One needs IDs before doing PUTs and GETs.  Yes I understand the value of
obfuscating IDs for security reasons.  I don't really agree with showing
any IDs to the user.

I will take your words of advice and try to avoid non-idempotent
operations.  Seems like a good thing.  The rpc operations you list below
seem like good reasons for using post.

Don't assume people read your documentation.  And don't blame them if they
don't.  Some people have reading disabilities.  You should feel lucky if
you have your full capabilities.

If you expose your created date as a key,  then people might be apt to put
collections with their own created dates.  You need to test for realism.
On Feb 15, 2013 4:29 AM, David Barbour dmbarb...@gmail.com wrote:

 On Fri, Feb 15, 2013 at 1:52 AM, John Carlson yottz...@gmail.com wrote:

 I believe the best thing to do is use POST to create objects and quit
 trying to fool people with your smartness. You're only asking for trouble
 if you do otherwise.

 Ah, the people are too dumb to understand anything but tradition
 argument.

 I think the concept of 'creation' is not a very good one, not least
 because it isn't idempotent. I have patterns and idioms to make do without
 it.


 means writing one off rest services for all your database tables that
 have created date.


 If you do such a thing for three or more tables, you should start
 developing a reusable abstraction! If I needed to preserve created date or
 other metadata, I'd consider modeling it as part of the key.

 As far as I can tell, [POSTS] should only be used to add items to
 collections.

 Sure, but that can mean anything at all. Adding procedure activation
 records to a stack, or print requests to a queue, are examples of adding
 items to collections. POST is equivalent to RPC, even if you phrase it as
 adding items to collections.


 The important thing is to make sure your operations are idempotent when
 they should be...that means with failures as well.


 There are many other important things, such as clearly documenting for
 your clients and intermediate services which of your operations are safe,
 idempotent, cacheable, etc.. The reason REST does well in-the-large
 (extensibility, integration, disruption, scalability, etc.) is because of
 the clear, end-to-end understandings about the properties of operations. If
 you use POST, even in an idempotent manner, you lose a lot of value
 in-the-large.

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


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


  1   2   >