Re: [fonc] Unsolved problem in computer science? Fixing shortcuts.
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.
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.
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.
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
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
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
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
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
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
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
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 :.
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 :.
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
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.
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
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
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
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
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
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?)
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?)
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?)
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?)
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?)
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?)
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?)
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?)
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?)
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?)
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?))
-- 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?
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?
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?
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?
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?
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?
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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)
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]
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]
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]
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
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]
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]
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)
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
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?
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?
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!
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.
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.
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
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!
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!
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
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
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)
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)
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
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
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
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
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
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
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
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
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
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?
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.
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.
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
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
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
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
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
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
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