From: Ken Tilton
Subject: Just can't hear enough about Cells?
Date: 
Message-ID: <1gGeg.29$XB5.10@fe09.lga>
Track the PyCells Python Software Foundation SoC project here:

    http://pyworks.org/mailman/listinfo/pycells

Gee, are Pythonistas smarter than Lispniks?!:

   http://www.eby-sarna.com/pipermail/peak/2006-May/002545.html

:)

kenny

-- 
Cells: http://common-lisp.net/project/cells/

"Have you ever been in a relationship?"
    Attorney for Mary Winkler, confessed killer of her
    minister husband, when asked if the couple had
    marital problems.

From: Frank Buss
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <1gma8ula4p38b.1vhlmcv5s8uos.dlg@40tude.net>
Ken Tilton wrote:

> Gee, are Pythonistas smarter than Lispniks?!:
> 
>    http://www.eby-sarna.com/pipermail/peak/2006-May/002545.html

This sounds interesting. Maybe more people would be interested in Lisp
Cells, too, if some ideas of this text would be added to the Cells
documentation. Looks like currently there is not much documentation or
papers about the concepts at all.

An interesting idea is to avoid thread deadlocks by using Cells. This
reminds me a bit to a workflow management system, which was implemented
using Petri nets and for which I helped to maintain the GUI some time ago.

-- 
Frank Buss, ··@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de
From: Ken Tilton
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <%XLeg.57$XB5.54@fe09.lga>
Frank Buss wrote:
> Ken Tilton wrote:
> 
> 
>>Gee, are Pythonistas smarter than Lispniks?!:
>>
>>   http://www.eby-sarna.com/pipermail/peak/2006-May/002545.html
> 
> 
> This sounds interesting. Maybe more people would be interested in Lisp
> Cells, too, if some ideas of this text would be added to the Cells
> documentation. Looks like currently there is not much documentation or
> papers about the concepts at all.

Oh, yes, it's all my fault. PWUAHAHAHAHAAH! Which sections of which 
docs, examples, and Usenet articles were confusing to you? Or should I 
just guess at that from the profound silence of the CL commuity and 
rewrite all of that every week until someone says something?

I made a different guess, apparently accurate: what I have done is fine, 
you smug lisp weenies just are not that smart. Turns out /Lisp/ is 
smart... Ron found that out when he went to Google, btw.

The Yobbos of #lisp famously pronounced years ago that Cells were a 
figment of my imagination. Adobe has now embarrassed them into silence 
by open-sourcing Adam, a Cells work-alike which Adobe clearly got from 
me. Why did they give it away? Because they realized it was too profound 
an advance to keep to themselves.

[Kidding about them getting Cells from me. The only thing more common 
than Lisp newbies working on their own lisp implementation is prior and 
concurrent art for Cells. Most proximately, Garnet's KR.]

> 
> An interesting idea is to avoid thread deadlocks by using Cells. 

No, that is backwards. cells /needs/ the SoC cl-stm project even to 
survive in a threaded environment. But then Cells will leverage STM 
nicely by providing for free minimal update paths which STM can then 
keep straight.

 > Petri nets

See! Even you have done Cells before.

:)

kt

-- 
Cells: http://common-lisp.net/project/cells/

"Have you ever been in a relationship?"
    Attorney for Mary Winkler, confessed killer of her
    minister husband, when asked if the couple had
    marital problems.
From: Frank Buss
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <w1witdgtsvtk.o18elu1ic8wm.dlg@40tude.net>
Ken Tilton wrote:

> Which sections of which 
> docs, examples, and Usenet articles were confusing to you?

I didn't read anything in detail, because it looked not very structured,
even a simple list which macros are available is missing (see
http://www.weitz.de/tbnl/ for an example how a good documentation looks
like). And the first link on http://common-lisp.net/project/cells/ says
something about "the old Cells homepage". This makes me think that there
will be a new homepage, but I didn't found anything.

Ok, lets try it. A good idea would be to install it first, to test how it
works. The README says "Documentation is unfortunately quite lacking; the
cells-devel list is still your best source of information.". I know things
like this from other open source projects, so I'm still not deterred to try
it. The ASDF package loads in LispWorks (I ignore all warnings). I start
testing the "Cell Basics", which looks interesting. I copied the beginning
of the example and got the following error:

Error: Syntactic error in form ((SELF STONE) NEW OLD OLD-BOUND-P):
   Illegal function name (SELF STONE).
  1 (abort) Return to level 0.
  2 Return to top loop level 0.

Type :b for backtrace, :c <option number> to proceed,  or :? for other
options

I just wanted to test some Cell code, but it doesn't work. I'm a beginner,
so I don't see a chance for fixing this without studying the source code,
which would be more time consuming than I want to spent, but I'm still not
deterred, I'll try "Bill's Most Excellent Cells Intro". Same error. Ok, now
I'm deterred :-)

-- 
Frank Buss, ··@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de
From: Ken Tilton
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <X53fg.3$1y1.0@fe11.lga>
Frank Buss wrote:
> Ken Tilton wrote:
> 
> 
>>Which sections of which 
>>docs, examples, and Usenet articles were confusing to you?
> 
> 
> I didn't read anything in detail, because it looked not very structured,
> even a simple list which macros are available is missing (see
> http://www.weitz.de/tbnl/ for an example how a good documentation looks
> like). And the first link on http://common-lisp.net/project/cells/ says
> something about "the old Cells homepage". This makes me think that there
> will be a new homepage, but I didn't found anything.
> 
> Ok, lets try it.

Thanks for the brave effort, but the issue was Phillip's documentation 
vs. my documentation. btw, no argument: Phillip is a fine writer. 
meanwhile...

As you say, you "didn't read anything in detail", nor have you now 
commented on the readability of the very long excerpt I posted from 
01-cell-basics.lisp.

Instead, the topic gets shifted to the quality of the installation 
instructions. I could look at those, but this is easier:

You win! I give up!

:)

kenneth
From: bradb
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <1149027174.325417.110400@j73g2000cwa.googlegroups.com>
Ken Tilton wrote:
> Frank Buss wrote:
> > Ken Tilton wrote:
> >
> >
> >>Which sections of which
> >>docs, examples, and Usenet articles were confusing to you?
> >

>
> :)
>
> kenneth

Come on Ken, you really can't just blow off Frank's experience like
that can you?  I read somewhere (I think related to Lisp, can't find
the linky now) where the author basically said "If a programmer can't
get a library doing some basic stuff in 10 minutes, they'll give up".
In my personal experience this is very true, unless I really need
something I'll give up after about 10 minutes of effort.  Last time I
looked at Cells I spent significantly more than 10 minutes to get a
demo working, and had a long back and forth with you here.  We got it
working in the end and you acknowledged the docs needed updating and
said you checked the updates into CVS.

So three months later Frank has a go at getting Cells to work and has
no luck.  Yes, I'm sure that people have done interesting things with
Cells.  Yes, I'm sure it is very cool - you seem like a smart guy and
you bang on about it at every possible opportunity.  But right now
Cells is in the too hard bin because it takes more that 10 minutes to
get results from it.

If you want to get more users, make getting Cells more user friendly
 - Update the website
 - Release a stable tarball in a prominent place so the fast
development of Cells won't cause documentation/code breakage.
 - Make it work for newcomers in under 10 minutes

Cells has a good advocate in you, but it doesn't have any way to hook
somebody into using it because feeling it out is too bloody hard.
So make it easier for us peasants who just want things to work easily.
Or you can not fix the 10 minute experiance and just keep promoting
Cells and nobody will bother using it because it doesn't work right
away.  Whichever is easier for you.

Cheers
Brad
From: Ken Tilton
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <xZ4fg.21$PP5.15@fe08.lga>
bradb wrote:
> Ken Tilton wrote:
> 
>>Frank Buss wrote:
>>
>>>Ken Tilton wrote:
>>>
>>>
>>>
>>>>Which sections of which
>>>>docs, examples, and Usenet articles were confusing to you?
>>>
> 
>>:)
>>
>>kenneth
> 
> 
> Come on Ken, you really can't just blow off Frank's experience like
> that can you?  I read somewhere (I think related to Lisp, can't find
> the linky now) where the author basically said "If a programmer can't
> get a library doing...

We were talking about the doc, right?

:)

kenny

-- 
Cells: http://common-lisp.net/project/cells/

"Have you ever been in a relationship?"
    Attorney for Mary Winkler, confessed killer of her
    minister husband, when asked if the couple had
    marital problems.
From: bradb
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <1149033906.195772.86550@i40g2000cwc.googlegroups.com>
Ken Tilton wrote:
> bradb wrote:
> > Ken Tilton wrote:
> >
> >>Frank Buss wrote:
> >>
> >>>Ken Tilton wrote:
> >>>
> >>>
> >>>
> >>>>Which sections of which
> >>>>docs, examples, and Usenet articles were confusing to you?
> >>>
> >
> >>:)
> >>
> >>kenneth
> >
> >
> > Come on Ken, you really can't just blow off Frank's experience like
> > that can you?  I read somewhere (I think related to Lisp, can't find
> > the linky now) where the author basically said "If a programmer can't
> > get a library doing...
>
> We were talking about the doc, right?
>
Sigh.  I thought we were talking about how difficult Cells is to use,
but at this stage I don't really know or care.  I'm pointing out why I
think Cells isn't being picked up by the Lisp community in the way
you'd like it to be.  Personally, I really want to use Cells in a
future project - which is why I looked at it 3 months ago.  I didn't
get hooked, it was too hard to get traction.
When I start my future project I'll probably look at Cells again, if I
am feeling particularly manly I might even spend more than ten minutes
trying to get it to work.  But probably not, and from your willingness
to change the learning curve of Cells I suspect I will give it a miss
next time I try it.  I'd love to see you prove me wrong :)

Brad
From: Ken Tilton
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <Xo6fg.28$PP5.16@fe08.lga>
bradb wrote:
> Ken Tilton wrote:
> 
>>bradb wrote:
>>
>>>Ken Tilton wrote:
>>>
>>>
>>>>Frank Buss wrote:
>>>>
>>>>
>>>>>Ken Tilton wrote:
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>>Which sections of which
>>>>>>docs, examples, and Usenet articles were confusing to you?
>>>>>
>>>>:)
>>>>
>>>>kenneth
>>>
>>>
>>>Come on Ken, you really can't just blow off Frank's experience like
>>>that can you?  I read somewhere (I think related to Lisp, can't find
>>>the linky now) where the author basically said "If a programmer can't
>>>get a library doing...
>>
>>We were talking about the doc, right?
>>
> 
> Sigh.  I thought we were talking about how difficult Cells is to use,

Not at all. Read the thread. What is confusing you is repeated attempts 
to change the subject to installation. Which also confuses me because 
mr. burdick made cells asdf-installable quite a while ago.

<sigh> :)

kenny

-- 
Cells: http://common-lisp.net/project/cells/

"Have you ever been in a relationship?"
    Attorney for Mary Winkler, confessed killer of her
    minister husband, when asked if the couple had
    marital problems.
From: bradb
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <1149040501.515827.283770@g10g2000cwb.googlegroups.com>
Ken Tilton wrote:
<SNIP>
> >
> > Sigh.  I thought we were talking about how difficult Cells is to use,
>
> Not at all. Read the thread. What is confusing you is repeated attempts
> to change the subject to installation. Which also confuses me because
> mr. burdick made cells asdf-installable quite a while ago.
>
> <sigh> :)

I guess I make no points that are valid enough to sway you into
thinking that getting started with Cells might give most people
trouble.  That's fine by me.  To me it looks like some people have
trouble getting started with Cells and you never get a second chance to
make a good first impression.  Bottom line is that Cells might have a
heart of gold, but it's dressed like a homeless person.

Cheers
Brad
From: Ken Tilton
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <1G7fg.35$1y1.14@fe11.lga>
bradb wrote:
>  ...  gold, but it's dressed like a homeless person.

Cells, the Howard Hughes of software?

I like it!

kenny

-- 
Cells: http://common-lisp.net/project/cells/

"Have you ever been in a relationship?"
    Attorney for Mary Winkler, confessed killer of her
    minister husband, when asked if the couple had
    marital problems.
From: Novus
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <2006053019195016807-novus@ngoqdeorg>
On 2006-05-30 17:49:57 -0400, Ken Tilton <·········@gmail.com> said:

> Thanks for the brave effort, but the issue was Phillip's documentation 
> vs. my documentation. btw, no argument: Phillip is a fine writer. 
> meanwhile...
> 
> As you say, you "didn't read anything in detail", nor have you now 
> commented on the readability of the very long excerpt I posted from 
> 01-cell-basics.lisp.
> 
> Instead, the topic gets shifted to the quality of the installation 
> instructions. I could look at those, but this is easier:
> 
> You win! I give up!

I tried to learn cells once but had a similar experience as the person you
are now flaming. So I'll just go ahead and say it:

Kenny, your documentation sucks and you are less than fucking helpful.

Have a nice day.

Novus
From: Ken Tilton
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <XD6fg.54$y47.40@fe10.lga>
Novus wrote:
> On 2006-05-30 17:49:57 -0400, Ken Tilton <·········@gmail.com> said:
> 
>> Thanks for the brave effort, but the issue was Phillip's documentation 
>> vs. my documentation. btw, no argument: Phillip is a fine writer. 
>> meanwhile...
>>
>> As you say, you "didn't read anything in detail", nor have you now 
>> commented on the readability of the very long excerpt I posted from 
>> 01-cell-basics.lisp.
>>
>> Instead, the topic gets shifted to the quality of the installation 
>> instructions. I could look at those, but this is easier:
>>
>> You win! I give up!
> 
> 
> I tried to learn cells once but had a similar experience as the person you
> are now flaming. So I'll just go ahead and say it:
> 
> Kenny, your documentation sucks ...

Well the theme I am trying to develop here is that (a) no, it is fine 
and (b) this is a two-way street. I posted some very reasonable doc, and 
no one has said a word against it. Including you, Mr. Helpful. :)

> ...and you are less than fucking helpful.

Meet me halfway, dude. I have developed bindings and lispification for 
OpenGL, Freeglut, ImageMagick, OpenAL, FTGL, and now with FG 
Tcl/Tk/Togl. I have developed two portable CL GUIs atop those libraries, 
and am this week merging them so the fuller GUI will also be natively 
portable to where Tk is portable.

I have also shared this code, which takes three times the effort of just 
developing it. (Or is it nine? yes, I think it is nine.)

Some people have helped, others did fine without help.

Ask not your Open Source Fairy can do for you, Novus. Ask what you can 
do for your Fairy.

> 
> Have a nice day.

Porting Cello from Freeglut to Celtk? I don't think so. :)

kenny

-- 
Cells: http://common-lisp.net/project/cells/

"Have you ever been in a relationship?"
    Attorney for Mary Winkler, confessed killer of her
    minister husband, when asked if the couple had
    marital problems.
From: Eric Hanchrow
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <87odxeeux8.fsf@offby1.atm01.sea.blarg.net>
I've been following this, and I won't take sides, but I'll point out
that _both_ sides have hit some rhetorical high notes:

    Bottom line is that Cells might have a heart of gold, but it's
    dressed like a homeless person.

and

    Ask not your Open Source Fairy can do for you, Novus. Ask what you
    can do for your Fairy.

Ignore the heat of the discussion, and you've got to admit those are
pretty good.
-- 
Asking the Iraqi people to assume Saddam's debts
is rather like telling a man who has been shot in the head
that he has to pay for the bullet.
        -- James Surowiecki
From: Frank Buss
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <1fuqmvggfxqcj$.1jqxyv0ocbcyg.dlg@40tude.net>
Ken Tilton wrote:

> As you say, you "didn't read anything in detail", nor have you now 
> commented on the readability of the very long excerpt I posted from 
> 01-cell-basics.lisp.

This was good, but a bit too long. Better saying something about the
general concept and then starting with an example, but this is a matter of
taste.

> Instead, the topic gets shifted to the quality of the installation 
> instructions. 

The installation instruction was fine. The problem was, that the example
didn't worked, which was the reason why I gave up.

-- 
Frank Buss, ··@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de
From: Ken Tilton
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <GY4fg.20$PP5.16@fe08.lga>
Frank Buss wrote:
> Ken Tilton wrote:
> 
> 
>>As you say, you "didn't read anything in detail", nor have you now 
>>commented on the readability of the very long excerpt I posted from 
>>01-cell-basics.lisp.
> 
> 
> This was good, but a bit too long. 

Now you really win!

> Better saying something about the
> general concept and then starting with an example,

I thought I did! See that white flag? I surrender!!!

> The installation instruction was fine. The problem was, that the example
> didn't worked, which was the reason why I gave up.
> 

Thx for trying. :)

kenny

-- 
Cells: http://common-lisp.net/project/cells/

"Have you ever been in a relationship?"
    Attorney for Mary Winkler, confessed killer of her
    minister husband, when asked if the couple had
    marital problems.
From: Frank Buss
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <1eppjdeaxeunx.idiffwl3tcym.dlg@40tude.net>
Ken Tilton wrote:

>> The installation instruction was fine. The problem was, that the example
>> didn't worked, which was the reason why I gave up.
>> 
> 
> Thx for trying. :)

And that's the end of it? Maybe you should add to your signature the
warning, that the Cell introduction doesn't work and that you don't give
any help :-)

-- 
Frank Buss, ··@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de
From: John Thingstad
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <op.tagy09wepqzri1@pandora.upc.no>
On Wed, 31 May 2006 19:22:00 +0200, Frank Buss <··@frank-buss.de> wrote:

> Ken Tilton wrote:
>
>>> The installation instruction was fine. The problem was, that the  
>>> example
>>> didn't worked, which was the reason why I gave up.
>>>
>>
>> Thx for trying. :)
>
> And that's the end of it? Maybe you should add to your signature the
> warning, that the Cell introduction doesn't work and that you don't give
> any help :-)
>

Honestly. Bad documentation and poor cross portability is
the main reason for the lack of Cello's success.
The Cello foundation structurally/logically is sound.
You can listen or trivialize it. But the fact remains.

John

-- 
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
From: Ken Tilton
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <VECfg.12$xb6.11@fe08.lga>
John Thingstad wrote:
> On Wed, 31 May 2006 19:22:00 +0200, Frank Buss <··@frank-buss.de> wrote:
> 
>> Ken Tilton wrote:
>>
>>>> The installation instruction was fine. The problem was, that the  
>>>> example
>>>> didn't worked, which was the reason why I gave up.
>>>>
>>>
>>> Thx for trying. :)
>>
>>
>> And that's the end of it? Maybe you should add to your signature the
>> warning, that the Cell introduction doesn't work and that you don't give
>> any help :-)
>>
> 
> Honestly. Bad documentation and poor cross portability is
> the main reason for the lack of Cello's success.

We're talking about Cells. Cells is insanely portable and, this thread 
has demonstrated, beautifully documented. :)

(Cello never got released, but soon it will be.)

Now let's see if we can get the geniuses to stop worrying about 
internals when, by their own admission, they still have not looked at 
Cells and do not know its functionality:

"Data integrity: when the overall Cells data model gets perturbed by 
imperative code -- typically an event loop -- executing a SETF of some 
datapoint X, we want these requirements met:
    - recompute all and (for efficiency) only state computed off X 
(directly or indirectly through some intermediate datapoint);
    - recomputations, when they read other datapoints, must see only 
values current with the new value of X;
    - similarly, client observers ("on change" callbacks) must see only 
values current with the new value of X; and
    - a corollary: should a client observer SETF a datapoint Y, all the 
above must happen with values current with not just X, but also with the 
value of Y /prior to the change to Y.

"To achieve the above, Cells2 and now Cells3 have taken to using FIFO 
"unfinished business" queues to defer things until The Right Time. Which 
brings us back to Tk. Inspect the source of tk-user-queue-handler and 
search the Celtk source for "with-integrity (:client" to see how Celtk 
manages to talk to Tk in the order Tk likes. And hack the function 
tk-format-now to have Celtk dump the TCL/Tk code being sent to wish 
during initialization, and notice how un-random it looks. You can then 
comment out the above specification of a Tk-savvy handler to see (a) the 
order that would have happened before Cells3 and (b) the demo collapse 
in a broken heap.

"But in short, with Cells3  we just add this requirement:
   - Deferred "client" code must see only values current with X and not 
any values current with some subsequent change to Y queued by an observer".

> The Cello foundation structurally/logically is sound.
> You can listen or trivialize it. 

I'll do the latter. The Pythonistas seem able to focus a lot better. 
Y'all can sign up for the PyCells mailing list to see how.

kt

-- 
Cells: http://common-lisp.net/project/cells/

"Have you ever been in a relationship?"
    Attorney for Mary Winkler, confessed killer of her
    minister husband, when asked if the couple had
    marital problems.
From: Novus
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <2006060123492616807-novus@ngoqdeorg>
On 2006-06-01 10:17:02 -0400, Ken Tilton <·········@gmail.com> said:

> We're talking about Cells. Cells is insanely portable and, this thread 
> has demonstrated, beautifully documented. :)

It's good you added a smiley after that line.

> (Cello never got released, but soon it will be.)

I seem to recall some files being available even if there was no
official release. Now every trace of cello source on the net seems
to be gone. When exactly is it going to be released?

> I'll do the latter. The Pythonistas seem able to focus a lot better. 
> Y'all can sign up for the PyCells mailing list to see how.

If that ensures you'll stop posting crap on this newsgroup about how
powerful your code is and how stupid everyone else is then I'll sign up
twice.

Novus
From: Ken Tilton
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <4tXfg.142$xb6.135@fe08.lga>
Novus wrote:
> On 2006-06-01 10:17:02 -0400, Ken Tilton <·········@gmail.com> said:
> 
>> (Cello never got released, but soon it will be.)
> 
> 
> I seem to recall some files being available even if there was no
> official release. Now every trace of cello source on the net seems
> to be gone.

I just checked, it is right where it is supposed to be. Where on earth 
did you look? MSDN?

> When exactly is it going to be released?

Almost got a clean compile. Another few days? But that will not do you 
any good, it is over your head. Try Celtk (still over your head, just 
not as far).

> 
>> I'll do the latter. The Pythonistas seem able to focus a lot better. 
>> Y'all can sign up for the PyCells mailing list to see how.
> 
> 
> If that ensures you'll stop posting crap on this newsgroup about how
> powerful your code is...

This is not about me. But if you make this about me, then you do not 
have to learn anything, right? Perhaps you missed the oft-repeated point 
about prior art? A lot of that is discussed here:

     http://www.lispnyc.org/wiki.clp?page=PyCells

If you need the security blanket of an endorsement from a famous name, I 
guess the biggest most currentest would be a little shop called Adobe:

"I am convinced that writing correct, high performance, and feature rich 
systems can be orders of magnitude simpler than it currently is. By my 
estimate, 70% of Adobe's current code base could be better represented 
declaratively....Realizing even a fraction of this potential would open 
up a world of opportunities."

You want to write to Sean Parent, btw, and ask him to stop posting crap 
about how powerful is Adam. Guy Steele, too, CLP. Oh, and Mark Guliano 
(sp?) over on the COSI project.

It occurred to me to Google "Adobe Adam", had a deja vu moment:

    http://weblogs.macromedia.com/jd/archives/2005/03/adobes_adam_and.cfm

"Adobe's Adam and Eve: I missed this last week while travelling, but it 
seems quite interesting... There are also writeups at CNET and Slashdot. 
I don't have any takeaway on this yet -- seems like it would have had 
more permanence in online conversation than what I've seen"

PWUAAHAHAHA! yeah, you'd think, right? "Orders of magnitude" -- that's 
good, right? JD continued... " -- anyone else have some context on what 
this might mean...?" No comments so far.

So over goes I to Slashdot to see how the conversation died there:

      http://slashdot.org/articles/05/03/02/1449240.shtml?tid=152

312 comments, including 309 Novus-style "if I make this joke i do not 
have to investigate Adam" comments. One interesting link:

     http://www.laszlosystems.com/developers/
     http://www.laszlosystems.com/lps-3.3/docs/guide/constraints.html

Cells for XML and Javascript. Gotta add that to the "prior/concuurent 
art" section of the doc.

>... and how stupid everyone else is then I'll sign up
> twice.

We'll leave a light on.

kt

-- 
Cells: http://common-lisp.net/project/cells/

"Have you ever been in a relationship?"
    Attorney for Mary Winkler, confessed killer of her
    minister husband, when asked if the couple had
    marital problems.
From: Novus
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <2006060215112816807-novus@ngoqdeorg>
On 2006-06-02 09:59:23 -0400, Ken Tilton <·········@gmail.com> said:

>> If that ensures you'll stop posting crap on this newsgroup about how
>> powerful your code is and how stupid everyone else is then I'll sign up
>> twice.
> 
> We'll leave a light on.

So you agree then? Cool. I look forward to you not posting here anymore then.
Thanks.

Novus
From: Ken Tilton
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <lL1gg.3634$n91.983@fe09.lga>
Novus wrote:
> On 2006-06-02 09:59:23 -0400, Ken Tilton <·········@gmail.com> said:
> 
>>> If that ensures you'll stop posting crap on this newsgroup about how
>>> powerful your code is and how stupid everyone else is then I'll sign up
>>> twice.
>>
>>
>> We'll leave a light on.
> 
> 
> So you agree then? Cool. I look forward to you not posting here anymore 
> then.
> Thanks.

Lessee, you accuse me of false claims of power, I take a solid amount of 
time to collect independent confirmation of my claims in the context of 
similar state management libraries, and all you do is sink deeper into 
schoolboy taunting?

The flames are fun if you can throw in some content, otherwise not so much.

Try this: you grok automatic memory management, right? It offers two 
huge wins: no more MM bugs, and no more MM work. They sound the same, 
but they are not. A ref counting scheme offers the first but not the 
second. Likewise something like the GoF observer pattern (I think it was 
"observer") offers a small amount of automation one can apply to keeping 
interdependent state in synch, but requires explicit coding to maintain 
both subscriptions and notifications. We get some measure of how evil it 
is to keep application state in synch when such an unwieldy mechanism 
can be viewed as a win.

And it can be, though obviously certain of this audience do not see 
that. Which is why I cited Adobe's Adam. The tech world is full of 
nutjobs like me running around hawking their pet libraries. I think they 
all wrote to Brooks after the "No Silver Bullet" piece. But when the 
nutjob can point to COSI and Adam and KR and Steele, well, who is crazy, 
the nutjob or the one not listening?

See you on the mailing lists. (Cells and Cello.)

kenzo

-- 
Cells: http://common-lisp.net/project/cells/

"Have you ever been in a relationship?"
    Attorney for Mary Winkler, confessed killer of her
    minister husband, when asked if the couple had
    marital problems.
From: Pisin Bootvong
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <1149326387.585862.186720@i39g2000cwa.googlegroups.com>
Ken Tilton wrote:
> Novus wrote:
> > On 2006-06-02 09:59:23 -0400, Ken Tilton <·········@gmail.com> said:
> >
> >>> If that ensures you'll stop posting crap on this newsgroup about how
> >>> powerful your code is and how stupid everyone else is then I'll sign up
> >>> twice.
> >>
> >>
> >> We'll leave a light on.
> >
> >
> > So you agree then? Cool. I look forward to you not posting here anymore
> > then.
> > Thanks.
>
> Lessee, you accuse me of false claims of power, I take a solid amount of
> time to collect independent confirmation of my claims in the context of
> similar state management libraries, and all you do is sink deeper into
> schoolboy taunting?
>

If two library aims to solving same problem, can one of them be good
and another crap?

> The flames are fun if you can throw in some content, otherwise not so much.
>
> Try this: you grok automatic memory management, right? It offers two
> huge wins: no more MM bugs, and no more MM work. They sound the same,
> but they are not. A ref counting scheme offers the first but not the
> second. Likewise something like the GoF observer pattern (I think it was
> "observer") offers a small amount of automation one can apply to keeping
> interdependent state in synch, but requires explicit coding to maintain
> both subscriptions and notifications. We get some measure of how evil it
> is to keep application state in synch when such an unwieldy mechanism
> can be viewed as a win.

The fact that I grok usefulness of garbage collection and dynamic
typing doesn't excuse me for going into comp.lang.cpp and post topic
like "Just can't hear enough about Lisp?"; It would be trolling in
every sense.

Just keep it to your cells mailing list. If it is good enough people
will talk about and/or use it. I haven't seen Rubyist posting Ruby on
Rails topic here yet people here seems to acknowledge it. If cells is
good, people will run like crazy to your cells web.

... But I expect most of them will come back anyway because Ruby on
Rails doesn't have that "document is all in code and if you don't
understand this cool library then its' your own fault." motto like
Cells author behavior seems to suggest.

>
> And it can be, though obviously certain of this audience do not see
> that. Which is why I cited Adobe's Adam. The tech world is full of
> nutjobs like me running around hawking their pet libraries. I think they
> all wrote to Brooks after the "No Silver Bullet" piece. But when the
> nutjob can point to COSI and Adam and KR and Steele, well, who is crazy,
> the nutjob or the one not listening?
>
> See you on the mailing lists. (Cells and Cello.)
>
> kenzo
>
> --
> Cells: http://common-lisp.net/project/cells/
>
> "Have you ever been in a relationship?"
>     Attorney for Mary Winkler, confessed killer of her
>     minister husband, when asked if the couple had
>     marital problems.
From: Ken Tilton
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <95egg.3688$n91.189@fe09.lga>
Pisin Bootvong wrote:

> If two library aims to solving same problem, can one of them be good
> and another crap?

Please, I never said the other libraries were crap.

COSI is fine, but rules are defined at the class level only, which 
misses one of the accidental benefits of Cells: object reuse deriving 
from instances being more authorable when they can have different rules 
for the same slot. No sign that it is available, either.

KR offers /more/ room for fun and games than Cells, but does not work 
with CLOS. I guess Amulet, the Great Leap Into C++ Oblivion by KR must 
have used the standard C++ OO system, but methinks that sleeps with the 
fish.

Adam (http://opensource.adobe.com/group__adam__reference.html) -- well, 
I am not much one for reading doc and there is not much I could find 
(what is wrong with some people?) but Adam seems to require programmers 
to compose state management code in a brand new language. ewwwwww. They 
do use datatypes called cells and sheets (spreadsheets, get it?) so I 
guess the metaphor is frickin ineluctable. It also looks as if 
programmers have responsibility for dependency management. Ick.

What library were you thinking of? Possibly the classic constraints 
packages that support partial and multi-way constraints? Like Screamer+?

> The fact that I grok usefulness of garbage collection and dynamic
> typing doesn't excuse me for going into comp.lang.cpp...

I didn't. Cells is a Lisp library. You, however, have "gone into" this 
thread apparently without having anything at all to say about automatic 
state management. Or how crappy the Cells doc is or is not.

Did you want to say something relevant? Do you know of a dataflow 
library that makes Cells look like crap? Have you downloaded Cells and 
played with it? Do you have any experience with any dataflow library?

Anyway, thx, I had not tracked down the Adam doc before, never got past 
Sean Parent's "crap" about how powerful it is. Other than that, you are 
just making my point, a typical Lispnik complaining, "Quiet! We're 
sleeping!".

kenny

-- 
Cells: http://common-lisp.net/project/cells/

"Have you ever been in a relationship?"
    Attorney for Mary Winkler, confessed killer of her
    minister husband, when asked if the couple had
    marital problems.
From: Takehiko Abe
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <keke-0306062018050001@192.168.1.2>
> Just keep it to your cells mailing list. 

Ah, please. I'd like to hear about it on here. Cells runs on
lisp. And it is much more interesting than reading the same
argument over and over and over and over again.
From: Alan Crowe
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <86ejya858i.fsf@cawtech.freeserve.co.uk>
Ken Tilton <·········@gmail.com> writes:
> Frank Buss wrote:
> > Ken Tilton wrote:
> > 
> > 
> >>Gee, are Pythonistas smarter than Lispniks?!:
> >>
> >>   http://www.eby-sarna.com/pipermail/peak/2006-May/002545.html
> > 
> > 
> > This sounds interesting. Maybe more people would be interested in Lisp
> > Cells, too, if some ideas of this text would be added to the Cells
> > documentation. Looks like currently there is not much documentation or
> > papers about the concepts at all.
> 
> Oh, yes, it's all my fault. PWUAHAHAHAHAAH! Which sections of which 
> docs, examples, and Usenet articles were confusing to you? Or should I 
> just guess at that from the profound silence of the CL commuity and 
> rewrite all of that every week until someone says something?

I must confess that until I read the pipermail article I
hadn't grasped why Cells was interesting. If we are having a
competition for a very short but intriguing Cells intro here
is my entry:

    `Cells' tracks and manages dependencies for you. For example
    if X and Y are exogenous variables, A and B endogenous
    variables and F and G functions, with

    A = (F X Y) and B = (G A X)

    when you update Y, Cells will update A and also propagate
    the change, updating B as well.

    Why use Cells? Why not just roll your own as needed?
    Well, there is more to this than meets the eye. Consider
    updating X. A naive dependency tracker may update B (because
    X changed) then update A before finally updating B again
    because A changed. Worse, it might not do this, depending on
    the order in which A and B are declared.

    Cells does the right thing, queuing the updates in the
    efficient order, with B being updated exactly once, after A.
    Choosing to use the Cells framework lets you design out
    a whole class of subtle dependency bugs.

Marks out of 10 please Ken?

Alan Crowe
Edinburgh
Scotland
From: Steven E. Harris
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <q94mzcy9i78.fsf@chlorine.gnostech.com>
Alan Crowe <····@cawtech.freeserve.co.uk> writes:

>     Cells does the right thing, queuing the updates in the
>     efficient order, with B being updated exactly once, after A.

Using a similar style, can you give some hint how this works? How does
Cells detect these conflicts? How does the queue processing work?

> Marks out of 10 please Ken?

I'm not Ken, but I give it an 8. The style is just right, but there's
more to be said.

-- 
Steven E. Harris
From: Alan Crowe
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <86bqtd9aay.fsf@cawtech.freeserve.co.uk>
"Steven E. Harris" <···@panix.com> writes:

> Alan Crowe <····@cawtech.freeserve.co.uk> writes:
> 
> >     Cells does the right thing, queuing the updates in the
> >     efficient order, with B being updated exactly once, after A.
> 
> Using a similar style, can you give some hint how this works? How does
> Cells detect these conflicts? How does the queue processing work?
> 

Further confession: I'm bluffing. I've grasped that Cells is
interesting, but I haven't downloaded it yet, and I haven't
checked out how it works or what /exactly/ it does

Alan Crowe
Edinburgh
Scotland
From: Alan Crowe
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <868xoh9343.fsf@cawtech.freeserve.co.uk>
I've downloaded Cells and copied the example in the
documentation

(defmodel stone ()
  ((accel :cell t :initarg :accel :initform 0 :accessor accel)
   (time-elapsed :cell t :initarg :time-elapsed
     :initform (c-in 0)
     :accessor time-elapsed)
   (distance :cell t :initarg :distance :initform 0 :accessor distance))
  (:default-initargs
      :distance (c? (/ (* (accel self)
                         (expt (time-elapsed self) 2))
                      2))))

I've tried making a cell of my own:

CELLS> (defun f (x y) (+ x y))
F

CELLS> (defmodel example ()
         ((x :cell t
             :initform (c-in 5)
             :accessor x)
          (y :cell t
             :initform (c-in 7)
             :accessor y)
          (a :cell t
             :initarg :a
             :initform (c-in 0)
             :accessor a))
         (:default-initargs
             :a (c? (f (x self)
                       (y self)))))
#<STANDARD-CLASS EXAMPLE>

CELLS> (defparameter *1* (make-instance 'example))
*1*

CELLS> (mapcar (lambda(f)(funcall f *1*)) '(x y a))
(5 7 12)

CELLS> (setf (x *1*) 2 (y *1*) 3)
3

CELLS> (mapcar (lambda(f)(funcall f *1*)) '(x y a))
(2 3 5)

So it is working, I change x and y, and a changes too.

Actually I feel confused by the simultaneous presence of an
initarg, an initform and a default-initarg. The initform can
never run because of the presence of a default-initarg. The
initarg only seems to be there because a default-initarg
does not declare a symbol to be a valid initialization
argument. Couldn't the defmodel macro type it in for me? Why
use default-initargs at all? Why call it that? Couldn't it
have a name appropriate to the role it plays in
defmodel. Why is the plumbing for the cell split off from
the slot definition? 

I'm not getting the c-in stuff either. The documentation
says

       time-elapsed ... :initform (c-in 0)...

    (c-in <value>) allows the cellular slot (or "cell", for short) 
    to be setf'ed. these are inputs to the dataflow,

Why not 

       time-elapsed ... :initform 0 :setf t

I expect an initform to be executed once, at object
creation. I don't want other stuff encoded within it.
The reason I don't want other stuff encoded there is that if
initform is not an abbreviation for "initialisation form"
then I don't know what it is - it becomes a meaningless
jumble of letters, hklekeft or vlprrt!t, and I flounder.

Alan Crowe 
Edinburgh
Scotland
From: Ken Tilton
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <L6wfg.92$0f6.89@fe09.lga>
Alan Crowe wrote:
> I've downloaded Cells and copied the example in the
> documentation
> 
> (defmodel stone ()
>   ((accel :cell t :initarg :accel :initform 0 :accessor accel)
>    (time-elapsed :cell t :initarg :time-elapsed
>      :initform (c-in 0)
>      :accessor time-elapsed)
>    (distance :cell t :initarg :distance :initform 0 :accessor distance))
>   (:default-initargs
>       :distance (c? (/ (* (accel self)
>                          (expt (time-elapsed self) 2))
>                       2))))
> 
> I've tried making a cell of my own:
> 
> CELLS> (defun f (x y) (+ x y))
> F
> 
> CELLS> (defmodel example ()
>          ((x :cell t
>              :initform (c-in 5)
>              :accessor x)
>           (y :cell t
>              :initform (c-in 7)
>              :accessor y)
>           (a :cell t
>              :initarg :a
>              :initform (c-in 0)
>              :accessor a))
>          (:default-initargs
>              :a (c? (f (x self)
>                        (y self)))))
> #<STANDARD-CLASS EXAMPLE>
> 
> CELLS> (defparameter *1* (make-instance 'example))
> *1*
> 
> CELLS> (mapcar (lambda(f)(funcall f *1*)) '(x y a))
> (5 7 12)
> 
> CELLS> (setf (x *1*) 2 (y *1*) 3)
> 3
> 
> CELLS> (mapcar (lambda(f)(funcall f *1*)) '(x y a))
> (2 3 5)
> 
> So it is working, I change x and y, and a changes too.
> 
> Actually I feel confused by the simultaneous presence of an
> initarg, an initform and a default-initarg. The initform can
> never run because of the presence of a default-initarg. The
> initarg only seems to be there because a default-initarg
> does not declare a symbol to be a valid initialization
> argument. Couldn't the defmodel macro type it in for me? Why
> use default-initargs at all? Why call it that? Couldn't it
> have a name appropriate to the role it plays in
> defmodel. Why is the plumbing for the cell split off from
> the slot definition? 
> 
> I'm not getting the c-in stuff either. The documentation
> says
> 
>        time-elapsed ... :initform (c-in 0)...
> 
>     (c-in <value>) allows the cellular slot (or "cell", for short) 
>     to be setf'ed. these are inputs to the dataflow,
> 
> Why not 
> 
>        time-elapsed ... :initform 0 :setf t
> 
> I expect an initform to be executed once, at object
> creation. I don't want other stuff encoded within it.
> The reason I don't want other stuff encoded there is that if
> initform is not an abbreviation for "initialisation form"
> then I don't know what it is - it becomes a meaningless
> jumble of letters, hklekeft or vlprrt!t, and I flounder.

We've been scouting about for a good forest where we could relocate a 
pack of endangered wolves. I was out there the other day and was looking 
at one of the trees, spotted a bit of bark that looked like a woodpecker 
might have been having at it. I asked myself, why a woodpecker? Why not 
a hummingbird or some carpenter ants, even?

Still working on that.

hth, kenny

-- 
Cells: http://common-lisp.net/project/cells/

"Have you ever been in a relationship?"
    Attorney for Mary Winkler, confessed killer of her
    minister husband, when asked if the couple had
    marital problems.
From: Ken Tilton
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <ZJIfg.59$xb6.14@fe08.lga>
Alan Crowe wrote:
> I've downloaded Cells and copied the example in the
> documentation
> 
> (defmodel stone ()
>   ((accel :cell t :initarg :accel :initform 0 :accessor accel)
>    (time-elapsed :cell t :initarg :time-elapsed
>      :initform (c-in 0)
>      :accessor time-elapsed)
>    (distance :cell t :initarg :distance :initform 0 :accessor distance))
>   (:default-initargs
>       :distance (c? (/ (* (accel self)
>                          (expt (time-elapsed self) 2))
>                       2))))
> 
> I've tried making a cell of my own:
> 
> CELLS> (defun f (x y) (+ x y))
> F
> 
> CELLS> (defmodel example ()
>          ((x :cell t
>              :initform (c-in 5)
>              :accessor x)
>           (y :cell t
>              :initform (c-in 7)
>              :accessor y)
>           (a :cell t
>              :initarg :a
>              :initform (c-in 0)
>              :accessor a))
>          (:default-initargs
>              :a (c? (f (x self)
>                        (y self)))))
> #<STANDARD-CLASS EXAMPLE>
> 
> CELLS> (defparameter *1* (make-instance 'example))
> *1*
> 
> CELLS> (mapcar (lambda(f)(funcall f *1*)) '(x y a))
> (5 7 12)
> 
> CELLS> (setf (x *1*) 2 (y *1*) 3)
> 3
> 
> CELLS> (mapcar (lambda(f)(funcall f *1*)) '(x y a))
> (2 3 5)
> 
> So it is working, I change x and y, and a changes too.
> 
> Actually I feel confused by the simultaneous presence of an
> initarg, an initform and a default-initarg. The initform can
> never run because of the presence of a default-initarg.

Forest. trees. The class name is example, the slots a, x, and y. This is 
not Real Code.

I might have been demonstrating that This Is Still CLOS, not some new OO 
model that will be incompatible with existing frameworks. I do that a 
lot, doing one thing by initform, one by definitarg, one using the 
initarg at make-instance time.

the overarching point being, make new datatypes, not new languages.

> The
> initarg only seems to be there because a default-initarg
> does not declare a symbol to be a valid initialization
> argument. Couldn't the defmodel macro type it in for me?

lessee, writeup score was zero, ability to concentrate score is zero...

btw, I /am/ considering having defmodel generate by default initargs and 
accessors from slot names since my personal habit is to keep those 
consistent.

> Why
> use default-initargs at all? Why call it that? Couldn't it
> have a name appropriate to the role it plays in
> defmodel. Why is the plumbing for the cell split off from
> the slot definition? 

It seems you also are bluffing about knowing CLOS (wherein lies the 
answer to your question -- well, you also have to grok that I absolutely 
do not want to make Cells users learn a new OO system).

> 
> I'm not getting the c-in stuff either. The documentation
> says
> 
>        time-elapsed ... :initform (c-in 0)...
> 
>     (c-in <value>) allows the cellular slot (or "cell", for short) 
>     to be setf'ed. these are inputs to the dataflow,
> 
> Why not 
> 
>        time-elapsed ... :initform 0 :setf t
> 

That would be slot-specific. Different instances can have different 
cells -- input, ruled, or none (a const promise) -- for the same slot.

> I expect an initform to be executed once, at object
> creation. I don't want other stuff encoded within it.
> The reason I don't want other stuff encoded there is that if
> initform is not an abbreviation for "initialisation form"
> then I don't know what it is - it becomes a meaningless
> jumble of letters, hklekeft or vlprrt!t, and I flounder.

You need no help floundering. The initforms /are/ initializng forms, the 
slot time-elapsed, unless the above initform is overridden, will be 
initialised to the value 0 and (this is the extension) be mediated by an 
input cell.

If one instead makes an instance specifying:

    :time-elapsed (c? (- (system-time-now *sys*) (^start-time)))

that slot of that instance will be initialized to the value returned by 
an inaugural invocation of that rule and mediated thereafter by a ruled 
cell.

You want a new slot definition initarg, initcell? (a) You will not be 
the first to make that suggestion (b) Use Cells for a year and maybe I 
will care what you think.

I think something that announces loudly enough that it is /extending/ X 
is justified in adding extension-related semantics to operators of X. So 
I made the call that the behavior I just described is so close to 
initform that less damage is done by overloading it than by introducing 
new jargon.

It is perhaps only apparently irrelevant that in early versions of Cells 
the input cell itself actually occupied the slot value and accessors hid 
them. that made the inspector a little hard to use, and they were out of 
the slot into an internals dictionary by the time they had to be, viz., 
when I used Cells with AllegroStore (which does brilliant things with 
actual slot values if you store the functional slot value there).

ken

-- 
Cells: http://common-lisp.net/project/cells/

"Have you ever been in a relationship?"
    Attorney for Mary Winkler, confessed killer of her
    minister husband, when asked if the couple had
    marital problems.
From: Ken Tilton
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <lIvfg.775$PP5.62@fe08.lga>
Alan Crowe wrote:
> "Steven E. Harris" <···@panix.com> writes:
> 
> 
>>Alan Crowe <····@cawtech.freeserve.co.uk> writes:
>>
>>
>>>    Cells does the right thing, queuing the updates in the
>>>    efficient order, with B being updated exactly once, after A.
>>
>>Using a similar style, can you give some hint how this works? How does
>>Cells detect these conflicts? How does the queue processing work?
>>
> 
> 
> Further confession: I'm bluffing. I've grasped that Cells is
> interesting, but I haven't downloaded it yet, and I haven't
> checked out how it works or what /exactly/ it does

So you are the engineer who accepts a basket of parts not knowing they 
are meant to constitute an anti-lock brake (or anything else) but 
gleefully dashes off an engineering analysis focusing on battery life? 
When the basket included a document describing how anti-lock brakes 
could slow down a car? And you want a grade? And you think it is cute 
that you were bluffing?

Well, your bluff worked, you got a zero from me. If I had known what a 
waste of time you are...

kenny

-- 
Cells: http://common-lisp.net/project/cells/

"Have you ever been in a relationship?"
    Attorney for Mary Winkler, confessed killer of her
    minister husband, when asked if the couple had
    marital problems.
From: Ken Tilton
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <Vlvfg.773$PP5.711@fe08.lga>
Steven E. Harris wrote:
> Alan Crowe <····@cawtech.freeserve.co.uk> writes:
> 
> 
>>    Cells does the right thing, queuing the updates in the
>>    efficient order, with B being updated exactly once, after A.
> 
> 
> Using a similar style, can you give some hint how this works? How does
> Cells detect these conflicts? How does the queue processing work?

As I told Alan, this obsession with internals is disappointing. And 
youse guys think you are the marketers?!

Oh, look anti-lock brakes. How do the sensors communicate with the CPU? 
Look at that voltage? Wow, twenty pulses/second. Time for a Super Bowl ad!

No queue. A simple "change" counter. Computed values record the current 
change ID as well as a value. No uncurrent value gets returned. Values 
become current by recomputing or traversing their dependency graph to 
ensure no node is more current.

kt

-- 
Cells: http://common-lisp.net/project/cells/

"Have you ever been in a relationship?"
    Attorney for Mary Winkler, confessed killer of her
    minister husband, when asked if the couple had
    marital problems.
From: Steven E. Harris
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <q94odxc5vm1.fsf@chlorine.gnostech.com>
Ken Tilton <·········@gmail.com> writes:

> As I told Alan, this obsession with internals is disappointing.

I think you should take it as a compliment. The result is sufficiently
fantastic that we'd like to know what makes it tick. Of course you're
trying to recruit /users/, not implementers, but knowing how it works
is a prerequisite to getting over the NIH anxiety.

So indulge me.

> No queue. A simple "change" counter.

Is this counter global, or are there several counters for different,
um, "scopes"?

> Computed values record the current change ID as well as a value. No
> uncurrent value gets returned. Values become current by recomputing
> or traversing their dependency graph to ensure no node is more
> current.

Do they have to run this graph search each time they're asked for
their value, or is the "currency" decidable with an O(1) comparison?

What's an example situation where a value is being asked for, but it
depends upon some other value that's been updated more recently?
Shouldn't the automatic dependency management have already updated
this dependent value to keep up with the other value's change?

Oh, maybe this:

     +-->B--+
     |      |
  |--+      +-->|
 A|------------>|C


That is, B depends on C. A depends on B and C.

C changes, and maybe A gets notified first. A attempts to fetch B's
value, but B is stale. Does the change counter help detect this
staleness? B depends on C which is "more current".

-- 
Steven E. Harris
From: Ken Tilton
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <jWKfg.227$xz4.213@fe09.lga>
Steven E. Harris wrote:
> Ken Tilton <·········@gmail.com> writes:

>>No queue. A simple "change" counter.
> 
> 
> Is this counter global, or are there several counters for different,
> um, "scopes"?

Global. I look forward with trepidation to MTCells. Hopefully the cl-stm 
project will go well and provide support.

The other way out is to ignore the consequences where they do not break 
things, which based on my experience before closing certain loopholes 
will be the vast majority of applications. Yes, things get out of synch 
in one datapulse, but no harm is done -- often at worst no more than a 
wasted computation -- and then things fall back into synch on the next 
datapulse. Life is like that.

Other than that, I think whatever one normally does in tricky threaded 
situations will obviously work for Cells. Some folks think Cells is the 
answer to MT. No, except...maybe by naturally decomposing an application 
mass into so many precise update paths, cells will allow one to get more 
leverage out of STM or ad hoc approaches to thread management.

> 
> 
>>Computed values record the current change ID as well as a value. No
>>uncurrent value gets returned. Values become current by recomputing
>>or traversing their dependency graph to ensure no node is more
>>current.
> 
> 
> Do they have to run this graph search each time they're asked for
> their value,

No. What happens is that an out of date celled rule asks any of its 
dependents if they are both current /and/ changed in value reaching 
their currency. If not, the celled rule marks itself as current and 
unchanged. While this currency check is recursive where a dependency 
itself turns out to be behind the times, what happens is that affected 
areas of the dependency graph make this determination only once, after 
which they all reach currency, with only those who need to recalculate 
recalulating. And the recursion is just following known pointers to 
actual dependencies, which I have to think must be very fast.

The important trick is making a node current even if it turns out not to 
need recalculating, so the engine is not forever searching down 
dependency graphs redundantly looking for reasons to recalculate once it 
knows it does not need to recalculate some node.

> or is the "currency" decidable with an O(1) comparison?

I am just a simple application prgrammer, never grokked this O(n) stuff. 
Every and only those nodes potentially affected by actual change get 
looked at only once. Whassat O-wise?

> 
> What's an example situation where a value is being asked for, but it
> depends upon some other value that's been updated more recently?
> Shouldn't the automatic dependency management have already updated
> this dependent value to keep up with the other value's change?
> 
> Oh, maybe this:
> 
>      +-->B--+
>      |      |
>   |--+      +-->|
>  A|------------>|C
> 
> 
> That is, B depends on C. A depends on B and C.
> 
> C changes, and maybe A gets notified first. A attempts to fetch B's
> value, but B is stale. Does the change counter help detect this
> staleness? B depends on C which is "more current".
> 

Oh, you /have/ been reading the doc. :)

A worse case scenario is one in which one could not examine the existing 
dependency graph and spot what I call "dataflow interference": a pulse 
of change running down different dependency paths and running into 
itself later on. the worst case would be a rule: (if (^a)(^b)(^c)) that 
has taken one branch and depends now on B, but when A changes it will 
depend on C, which also depends on A.

The only solution is a JIT currency validation/ensurance.

kt

-- 
Cells: http://common-lisp.net/project/cells/

"Have you ever been in a relationship?"
    Attorney for Mary Winkler, confessed killer of her
    minister husband, when asked if the couple had
    marital problems.
From: Ken Tilton
Subject: In conclusion, Mr. Harris... [was Re: Just can't hear enough about Cells?]
Date: 
Message-ID: <L0Dgg.198$ej3.152@fe10.lga>
Steven E. Harris wrote:
> Ken Tilton <·········@gmail.com> writes:
> 
> 
>>As I told Alan, this obsession with internals is disappointing.
> 
> 
> I think you should take it as a compliment. The result is sufficiently
> fantastic that we'd like to know what makes it tick. Of course you're
> trying to recruit /users/, not implementers, but knowing how it works
> is a prerequisite to getting over the NIH anxiety.
> 
> So indulge me.

And after being duly indulged with copious <hic> tickery doc, mr. harris 
and the c.l.l community respond with....wait for it....no, silence.

Proving I was right the first time and should have saved my breath: the 
smug Lisp community is coasting on the greatness of John McCarthy, just 
so many groupies whose only accomplishment is having chosen the right 
language around which to group. Sad, very sad.

Hmmm, maybe Cells will be the bridge that connects living developers to 
a living language. Y'all may want to polish up your headstones, we may 
have company soon.

kenzo

-- 
Cells: http://common-lisp.net/project/cells/

"Have you ever been in a relationship?"
    Attorney for Mary Winkler, confessed killer of her
    minister husband, when asked if the couple had
    marital problems.
From: Steven E. Harris
Subject: Re: In conclusion, Mr. Harris...
Date: 
Message-ID: <83k67wfox6.fsf@torus.sehlabs.com>
Ken Tilton <·········@gmail.com> writes:

> And after being duly indulged with copious <hic> tickery doc,
> mr. harris and the c.l.l community respond with....wait for
> it....no, silence.

I read your article twice, "ticked" it in Gnus so it sits there
screaming at me in bold red at the top of the message list, and have
been thinking about what else to inquire about. I did at first
consider writing to thank you for your message, but that might have
closed the conversation, and I didn't think we were done.

I don't do much reading (and especially writing) of Usenet on the
weekends. Today is Sunday. I peeked at c.l.l and saw my name in your
subject line, so here I am.

> Proving I was right the first time and should have saved my breath:

How does this conclusion follow? I asked about some Cells mechanical
details, you answered my questions with nice explanations, and I took
off for the weekend.

I'm enjoying the sun, leaving the office in a good mood, because,
well, we may finally be embarking on an all-Lisp project in the coming
weeks. I've been spending my days prototyping with LispWorks (our
pending implementation of choice) and gently introducing my coworkers
to CL. We may even be able to incorporate Cells in some fashion.

Lisp is not dead, at least not here, and nor is my interest in your
work. Can we change the subject line now?

-- 
Steven E. Harris
From: Steven E. Harris
Subject: Re: In conclusion, Mr. Harris...
Date: 
Message-ID: <837j3wfo1k.fsf@torus.sehlabs.com>
"Steven E. Harris" <···@panix.com> writes:

> we may finally be embarking on an all-Lisp project in the coming
> weeks.

Incidentally, if Ron Garret is reading along, I have kept this post of
yours� in mind for almost three years now. Despite a couple of failed
attempts in the mean time, I'm happy to report that "step[ping] up to
the plate" this time may finally yield the desired outcome.


Footnotes: 
� http://groups.google.com/group/comp.lang.lisp/msg/751e6aa96cc07fc9
  (starting from "I think that's a cop-out.")

-- 
Steven E. Harris
From: Ken Tilton
Subject: Actually, I Was Joking... [was Re: In conclusion, Mr. Harris...}
Date: 
Message-ID: <wYKgg.73$0_3.72@fe08.lga>
Sorry, I thought the hickery dickery dock bit would give away my mock 
outrage. Actually, we have you down as an honored member of the Cells 
Old-Timers Club, so you enjoy an exemption from True Demonic Flamery.

Steven E. Harris wrote:
> Ken Tilton <·········@gmail.com> writes:
> 
> 
>>And after being duly indulged with copious <hic> tickery doc,
>>mr. harris and the c.l.l community respond with....wait for
>>it....no, silence.
> 
> 
> I read your article twice, "ticked" it in Gnus so it sits there
> screaming at me in bold red at the top of the message list, and have
> been thinking about what else to inquire about. I did at first
> consider writing to thank you for your message, but that might have
> closed the conversation, and I didn't think we were done.
> 
> I don't do much reading (and especially writing) of Usenet on the
> weekends. Today is Sunday. I peeked at c.l.l and saw my name in your
> subject line, so here I am.

It worked!

> 
> 
>>Proving I was right the first time and should have saved my breath:
> 
> 
> How does this conclusion follow? I asked about some Cells mechanical
> details, you answered my questions with nice explanations, and I took
> off for the weekend.

Typical Americans with your three-day weekends! (or is that the French?)

> 
> I'm enjoying the sun, leaving the office in a good mood, ...

Well there is the problem, we have had three days of rain here on the 
Jersey shore which is good for getting work done but bad for the mood 
and distorting in re assessments of inter-article gap durations.

because,
> well, we may finally be embarking on an all-Lisp project in the coming
> weeks. I've been spending my days prototyping with LispWorks (our
> pending implementation of choice) and gently introducing my coworkers
> to CL. We may even be able to incorporate Cells in some fashion.
> 
> Lisp is not dead, at least not here, and nor is my interest in your
> work. Can we change the subject line now?
> 

To be honest, I think it is fine and understandable that only a dozen 
Lispniks grok Cells at all. Not that many people are working on big 
applications in Lisp, and those that are were at it long before Cells 
came along. They may be a silver bullet, but that is only because they 
constitute a paradigm shift, and who likes making a paradigm shift. You 
try it! No, you try it! Not me. Hey, Mikey!

I just wanted to have a clear conscience when Python steals back its 
thunder from Ruby on Rails with <gasp> Cells.

kzo

-- 
Cells: http://common-lisp.net/project/cells/

"Have you ever been in a relationship?"
    Attorney for Mary Winkler, confessed killer of her
    minister husband, when asked if the couple had
    marital problems.
From: Bob Felts
Subject: Re: Actually, I Was Joking... [was Re: In conclusion, Mr. Harris...}
Date: 
Message-ID: <1hgfetr.c2cjjd1jle4m2N%wrf3@stablecross.com>
Ken Tilton <·········@gmail.com> wrote:

[...]

> 
> To be honest, I think it is fine and understandable that only a dozen
> Lispniks grok Cells at all.

Are things really that bleak?  I looked at Cells and went, "wow, I wish
I'd had that 7 or 8 years ago".  It would have been perfect for a
commercial product I had developed.  Although I would have had to figure
out how to embed Lisp in a Photoshop plug-in.  I hear it's been done
(http://www.medialab.com/sitegrinder/), but I don't yet have the Lisp
chops to do that, myself.
From: Ken Tilton
Subject: Re: Actually, I Was Joking... [was Re: In conclusion, Mr. Harris...}
Date: 
Message-ID: <iTOgg.33$Pp3.7@fe11.lga>
Bob Felts wrote:
> Ken Tilton <·········@gmail.com> wrote:
> 
> [...]
> 
> 
>>To be honest, I think it is fine and understandable that only a dozen
>>Lispniks grok Cells at all.
> 
> 
> Are things really that bleak?  

A dozen is a lot! :)

> I looked at Cells and went, "wow, I wish
> I'd had that 7 or 8 years ago"  It would have been perfect for a
> commercial product I had developed.  

There's the problem. I (and a dozen others) are the only Lispniks 
writing serious applications with Lisp.

> Although I would have had to figure
> out how to embed Lisp in a Photoshop plug-in.

How hard could a port to C++ be?

:)

kt

-- 
Cells: http://common-lisp.net/project/cells/

"Have you ever been in a relationship?"
    Attorney for Mary Winkler, confessed killer of her
    minister husband, when asked if the couple had
    marital problems.
From: Novus
Subject: Re: Actually, I Was Joking... [was Re: In conclusion, Mr. Harris...}
Date: 
Message-ID: <2006060502352016807-novus@ngoqdeorg>
On 2006-06-05 00:59:21 -0400, Ken Tilton <·········@gmail.com> said:

> There's the problem. I (and a dozen others) are the only Lispniks 
> writing serious applications with Lisp.

I always knew you were full of yourself but you've taken it to levels
even I didn't know existed.

Congrats.

Novus
From: Pisin Bootvong
Subject: Re: Actually, I Was Joking... [was Re: In conclusion, Mr. Harris...}
Date: 
Message-ID: <1149500875.707433.130200@j55g2000cwa.googlegroups.com>
Ken Tilton wrote:
> Bob Felts wrote:
> > Ken Tilton <·········@gmail.com> wrote:
> >
> > [...]
> >
> >
> >>To be honest, I think it is fine and understandable that only a dozen
> >>Lispniks grok Cells at all.
> >
> >
> > Are things really that bleak?
>
> A dozen is a lot! :)
>
> > I looked at Cells and went, "wow, I wish
> > I'd had that 7 or 8 years ago"  It would have been perfect for a
> > commercial product I had developed.
>
> There's the problem. I (and a dozen others) are the only Lispniks
> writing serious applications with Lisp.
>

Cool, how do half a dozen commercial Common Lisp implementation make a
living out of these users? A couple users for each implementation? :-P

> > Although I would have had to figure
> > out how to embed Lisp in a Photoshop plug-in.
>
> How hard could a port to C++ be?
>
> :)
>
> kt
>
> --
> Cells: http://common-lisp.net/project/cells/
>
> "Have you ever been in a relationship?"
>     Attorney for Mary Winkler, confessed killer of her
>     minister husband, when asked if the couple had
>     marital problems.
From: Ken Tilton
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <HQufg.125$Cp3.80@fe11.lga>
Alan Crowe wrote:
> Ken Tilton <·········@gmail.com> writes:
> 
>>Frank Buss wrote:
>>
>>>Ken Tilton wrote:
>>>
>>>
>>>
>>>>Gee, are Pythonistas smarter than Lispniks?!:
>>>>
>>>>  http://www.eby-sarna.com/pipermail/peak/2006-May/002545.html
>>>
>>>
>>>This sounds interesting. Maybe more people would be interested in Lisp
>>>Cells, too, if some ideas of this text would be added to the Cells
>>>documentation. Looks like currently there is not much documentation or
>>>papers about the concepts at all.
>>
>>Oh, yes, it's all my fault. PWUAHAHAHAHAAH! Which sections of which 
>>docs, examples, and Usenet articles were confusing to you? Or should I 
>>just guess at that from the profound silence of the CL commuity and 
>>rewrite all of that every week until someone says something?
> 
> 
> I must confess that until I read the pipermail article I
> hadn't grasped why Cells was interesting. If we are having a
> competition for a very short but intriguing Cells intro here
> is my entry:
> 
>     `Cells' tracks and manages dependencies for you. For example
>     if X and Y are exogenous variables, A and B endogenous
>     variables and F and G functions, with
> 
>     A = (F X Y) and B = (G A X)
> 
>     when you update Y, Cells will update A and also propagate
>     the change, updating B as well.
> 
>     Why use Cells? Why not just roll your own as needed?
>     Well, there is more to this than meets the eye. Consider
>     updating X. A naive dependency tracker may update B (because
>     X changed) then update A before finally updating B again
>     because A changed. Worse, it might not do this, depending on
>     the order in which A and B are declared.
> 
>     Cells does the right thing, queuing the updates in the
>     efficient order, with B being updated exactly once, after A.
>     Choosing to use the Cells framework lets you design out
>     a whole class of subtle dependency bugs.
> 
> Marks out of 10 please Ken?

Zero? For one, it is wrong, nothing gets queued. But that is a 
relatively minor objection -- well, I /am/ concerned overall about the 
discussion of internals mechanics. Kiddies, this is realworld stuff, 
nothing abstruse. Fish do not know that they swim, application 
developers do not know that they are managing state. Cells provides 
automatic state change management.

Anyway, another objection is that your emphasis is simply wrong: Cells 
were insanely powerful and productive for years in a wide range of 
intense applications before I closed the loophole you describe as their 
raison d'etre. I knew the loophole was there long before i closed it -- 
it just never caused application error. That in itself was pretty 
interesting. Then it finally broke something so I fixed it. But it 
certainly then is not what is important about Cells, it is just an 
interesting technical issue for implementors.

kt

-- 
Cells: http://common-lisp.net/project/cells/

"Have you ever been in a relationship?"
    Attorney for Mary Winkler, confessed killer of her
    minister husband, when asked if the couple had
    marital problems.
From: Burton Samograd
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <871wu8vkan.fsf@gmail.com>
Ken Tilton <·········@gmail.com> writes:

> Zero? For one, it is wrong, nothing gets queued. But that is a
> relatively minor objection -- well, I /am/ concerned overall about the
> discussion of internals mechanics. Kiddies, this is realworld stuff,
> nothing abstruse. Fish do not know that they swim, application
> developers do not know that they are managing state. Cells provides
> automatic state change management.

Cells look like triggers in SQL, not that I'm a database expert, just
a guy that likes to RTFM a lot.  I always thought those were an
amazing detail that never really made it into other programming
languages.  It switches program design to a more functional/data
modeling approach, with your concerns moving to data dependancy
tracking, updating and state managment, which is cool, but different
from the normal imperative model.

Sorry if this is obvious to everyone, but I thought I would point that
out.

-- 
burton samograd						 kruhft .at. gmail
'programmed piano ep' now available : http://kruhft.boldlygoingnowhere.org
From: Ken Tilton
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <eGGfg.142$es4.138@fe10.lga>
Burton Samograd wrote:
> Ken Tilton <·········@gmail.com> writes:
> 
> 
>>Zero? For one, it is wrong, nothing gets queued. But that is a
>>relatively minor objection -- well, I /am/ concerned overall about the
>>discussion of internals mechanics. Kiddies, this is realworld stuff,
>>nothing abstruse. Fish do not know that they swim, application
>>developers do not know that they are managing state. Cells provides
>>automatic state change management.
> 
> 
> Cells look like triggers in SQL, not that I'm a database expert, just
> a guy that likes to RTFM a lot.  I always thought those were an
> amazing detail that never really made it into other programming
> languages.  It switches program design to a more functional/data
> modeling approach, with your concerns moving to data dependancy
> tracking, updating and state managment, which is cool, but different
> from the normal imperative model.

I would argue that the functional data model is always there in the 
abstract as the deliverable of any programming project. With Cells or 
any automatic change propagation mechanism one is now writing, yes, 
different kinds of code (declarative) that looks like the intended data 
model, whereas with imperative programming one is laboring to achieve 
the appearance of an active data model. That is a lot of work and leaves 
a lot of room for bugs. With Cells, everything about state change that 
can be automated is.

Even where automation is not immediately possible, such as when I used 
Cells to bring an AllegroStore database to life, one just needs a few 
hooks and a week of glue coding to get the alien system into the dataflow.

For example, right now I am just finishing up ripping out the wiring 
from Freeglut into Cello and replacing it with feeds from Tcl/Tk. That 
is very easy because Tcl/Tk has obviously been pushed for a long time to 
(a) support not just scripting but intense desktop application 
development and (perhaps a corrollary) (b) be more accessible from C. So 
all the pieces are there.

meanwhile, I just checked the readme.txt in the Cells source tree to 
find out what certain people have been whining about. I am left 
wondering what on earth those people were whining about. Perhaps 
"readme" was asking too much?

:)

kt

-- 
Cells: http://common-lisp.net/project/cells/

"Have you ever been in a relationship?"
    Attorney for Mary Winkler, confessed killer of her
    minister husband, when asked if the couple had
    marital problems.
From: Ken Tilton
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <7nIfg.57$xb6.46@fe08.lga>
Burton Samograd wrote:
> Ken Tilton <·········@gmail.com> writes:
> 
> 
>>Zero? For one, it is wrong, nothing gets queued. But that is a
>>relatively minor objection -- well, I /am/ concerned overall about the
>>discussion of internals mechanics. Kiddies, this is realworld stuff,
>>nothing abstruse. Fish do not know that they swim, application
>>developers do not know that they are managing state. Cells provides
>>automatic state change management.
> 
> 
> Cells look like triggers in SQL,..

btw, yes, when listing prior art I like to talk about things like that 
(I do not do SQL, so I missed SQL triggers, but they should be in the 
list) because they all address that most fundamental challenge to 
programmers: correctly managing state change, in any model implemented 
by multiple long-lived interdependent datapoints.

Mr. Crowe positively bragged that he had offered an anaylysis of Cells 
without knowing what Cells do. That is pretty hard not to know, unless 
one does not understand how much effort programmers put into state 
change management. I think the Adobe champion estimated 70% of their 
code could go away. But this is why I use the analogy of fish not 
knowing they swim: most programmers think SETF is normal.

After programming for a month with Cells, I would out of habit when 
starting a new bunch of functionality usually fall into an imperative 
approach. The good news is that, after a few hours, i would get a 
free-lfloating boy-this-sucks feeling and then realize I was back in the 
dark ages of imperative state change management. Then I through out all 
that code and started again with Cells.

kt

-- 
Cells: http://common-lisp.net/project/cells/

"Have you ever been in a relationship?"
    Attorney for Mary Winkler, confessed killer of her
    minister husband, when asked if the couple had
    marital problems.
From: Michael Livshin
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <87zmh0hbz3.fsf@colinux.pc-mlivshin-ibm.cadence.com.cmm>
Ken Tilton <·········@gmail.com> writes:

>   http://www.eby-sarna.com/pipermail/peak/2006-May/002545.html

is the Cells description therein accurate?  because if it is, then I
have to say I've found it vastly more understandable than anything
I've tried to read up on Cells so far (no offence!)...

cheers,
--m

-- 
I am not a Church numeral!
I am a free variable!
From: Ken Tilton
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <cKLeg.56$XB5.55@fe09.lga>
Michael Livshin wrote:
> Ken Tilton <·········@gmail.com> writes:
> 
> 
>>  http://www.eby-sarna.com/pipermail/peak/2006-May/002545.html
> 
> 
> is the Cells description therein accurate?  because if it is, then I
> have to say I've found it vastly more understandable than anything
> I've tried to read up on Cells so far (no offence!)...

Ok, but he got it from reading my doc, examples, Usenet articles, so...?

No one (including you, no offence <g>) has requested clarification of my 
doc[1], so it was not clear how to, or even that I had to, refine it.

That's my story and I am sticking to it. :)

kt

[1] Some people went out and built entire GUI frameworks based on my 
doc, but again, they did so without asking any questions. So...? k

-- 
Cells: http://common-lisp.net/project/cells/

"Have you ever been in a relationship?"
    Attorney for Mary Winkler, confessed killer of her
    minister husband, when asked if the couple had
    marital problems.
From: Jacques Chester
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <447c21a1@dnews.tpgi.com.au>
Ken Tilton wrote:

> Ok, but he got it from reading my doc, examples, Usenet articles, so...?


Sure, but I still got more out of that presentation than
the stuff I've looked at.

I think where your own stuff falls down (on the website
at least) is in giving it a nice context. The Pythonista's
exposition on the possible uses of cells made for
illuminating reading.

I think you have the classic problem: as creator, it is
hard for you to understand what idea or insight others
are missing.

Cheers,

JC.
From: Ken Tilton
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <nRYeg.68$S86.23@fe11.lga>
Jacques Chester wrote:
> Ken Tilton wrote:
> 
>> Ok, but he got it from reading my doc, examples, Usenet articles, so...?
> 
> 
> 
> Sure, but I still got more out of that presentation than
> the stuff I've looked at.
> 
> I think where your own stuff falls down (on the website
> at least) is in giving it a nice context. The Pythonista's
> exposition on the possible uses of cells made for
> illuminating reading.
> 
> I think you have the classic problem: as creator, it is
> hard for you to understand what idea or insight others
> are missing.

Thx for the feedback. I still need folks to be more specific, because as 
far as I can tell this does all the above:

> Here is a minimal primer on Cells, just enough for you to
> keep up with the next tutorial. That will be a substantial project
> in which we develop a CLOS object inspector.
> 
> The Inspector project will give you a feel for what it is like to 
> program with Cells and Cello /after/ you are fluent in the
> technology. The intent is not to teach you Cello, rather to
> motivate your learning it.
> 
> So why the primer on Cells? If things like C? and CV and DEF-C-ECHO 
> do not mean anything to you, the Hunh? Factor will be overwhelming.
> 
> 
> Cells
> -----
> Think of a CLOS slot as a cell in a paper spreadsheet, a financial
> modeling tool popular enough to make VisiCalc the first business
> killer app for microcomputers.
> 
> As a child I watched my father toil at home for hours over paper 
> spreadsheets with pencil and slide rule. After he changed one value, 
> he had to propagate that change to other cells by first remembering 
> which other ones included the changed cell in their computation. 
> Then he had to do the calculations for those, erase, enter...
> and then repeating that process to propagate those changes in a 
> cascade across the paper.
> 
> VisiCalc let my father take the formula he had in mind and 
> put it in (declare it to) the electronic spreadsheet. Then VisiCalc 
> could do the tedious work: recalculating, knowing what to recalculate, 
> and knowing in what order to recalculate.
> 
> Cells do for programmers what electronic spreadsheets did for my father.
> Without Cells, CLOS slots are like cells of a paper spreadsheet. 
> A single key-down event can cause a cascade of change throughout an 
> application. The programmer has to arrange for it all to happen,
> all in the right order: delete any selected text, insert 
> the new character, re-wrap the text, update the undo mechanism, revisit
> the menu statuses ("Cut" is no longer enabled), update the scroll bars,
> possibly scroll the window, flag the file as unsaved...
> 
> With Cells, the programmer looks at program state differently. One
> asks, "How could I compute, at any point of runtime, a value for 
> a given slot of an arbitrary instance, based only on other runtime state 
> (other slots of other instances)." Great fun, by the way, as well as
> enforcing good programming practices like encapsulation.
> 
> An example will help. Consider indeed the state of the "Cut" menu item. 
> In some applications, programmers have a dozen places in their code
> where they tend to the status of the Cut menu item. One might be:
> 
> (defun do-clear (edit-structure)
>   (when (selected-range edit-structure)
>     <set up undo>
>     <toss selected text>
>     <etc><etc>
>     (menu-item-enable *edit-cut* nil)
>     (menu-item-enable *edit-copy* nil)
>     (menu-item-enable *edit-clear* nil)))
> 
> Other programmers wait until the user clicks on the Edit menu, 
> then decide just-in-time from program state whether the Cut item 
> should be enabled:
> 
> (defmethod prep-for-display ((m edit-menu))
>   <lotsa other stuff>
>   (when (typep (focus *app*) 'text-edit-widget)
>     (menu-item-enable (find :cut (items m) :key #'item-name)
>       (not (null (selected-range (focus *app*)))))))
> 
> This latter programmer is ready for Cells, because they
> have already shifted from imperative to declarative thinking;
> they have learned to write code that works based not on what 
> has happened lately, but instead only on the current program 
> state (however it got that way). 
> 
> The Cell programmer writes:
> 
> (make-instance 'menu-item
>   :name :cut
>   :label "Cut"
>   :cmd-key +control-x+
>   :actor #'do-cut
>   :enabled (c? (when (typep (focus *app*) 'text-edit-widget)
>                  (not (null (selected-range (focus *app*)))))))
> 
> ...and now they can forget the menu item exists as they work
> on the rest of the application. The menu-item enabled status
> will stay current (correct) as the selected-range changes
> and as the focus itself changes as the user moves from field
> to field.
> 
> That covers the spirit of Cells. Now let's look at the syntax
> and mechanics,....


Yes? No?

kenny

-- 
Cells: http://common-lisp.net/project/cells/

"Have you ever been in a relationship?"
    Attorney for Mary Winkler, confessed killer of her
    minister husband, when asked if the couple had
    marital problems.
From: Vagif Verdi
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <1149014903.892617.36580@u72g2000cwu.googlegroups.com>
Here's a practical example that would be appreciated by newcomers:
data-aware widgets.
1. Retrieve recordset from database.
2. attach recordset fields to edit boxes on screen.
3. On moving through recordset (buttons "Next", "Prior","Last",
"First") edit boxes change their content.
4. On editing text in edit boxes, data is saved back to db.

For sake of simplicity you can use just a list of records instead of
retrieving it from db.
From: Jacques Chester
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <447d84ef$1@dnews.tpgi.com.au>
Ken Tilton wrote:
> 
> 
> Jacques Chester wrote:
>> Ken Tilton wrote:
>>
>>> Ok, but he got it from reading my doc, examples, Usenet articles, so...?
>>
>>
>>
>> Sure, but I still got more out of that presentation than
>> the stuff I've looked at.
[...]
> Yes? No?
> 
> kenny

That was good, but it doesn't come it first thing on
the website. Perhaps you could start with the story of
your dad's spreadsheet - the bald "it's like spreadsheet
cells" confused me. Did it mean:

* I was going to refer to each cell using fairly easy to
mix up row-and-column references?
* What a given cell could do was pretty limited?
* That I'd need to use another paradigm anyway, given
the limitations of spreadsheets? (see also: zillions of
Excel files doing - poorly - the work best given to a
proper RBMS)

I think it may be helpful to look for or develop more
examples, and possibly to intersperse some concept-level
pseudocode with the Lisp examples. Some examples might
include:

* Ye olde transactions example of the debit/credit between
two accounts
* Modelling complicated physical systems where several
things are happening simultaneously
* A thermostat - both "big bang" and gradient; I understand
this is the canonical engineering example.


Now in fairness to you, I am YACLI, Yet Another Common
Lisp Ignoramus, though I'm currently ploughing through
Peter Seibel's book.

Which raises the question: is that I misunderstood? Or
that I just suck a grepping unfamiliar Lisp code?

Cheers,

JC.
From: Ken Tilton
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <Umgfg.75$D71.13@fe09.lga>
Jacques Chester wrote:
> Ken Tilton wrote:
> 
>>
>>
>> Jacques Chester wrote:
>>
>>> Ken Tilton wrote:
>>>
>>>> Ok, but he got it from reading my doc, examples, Usenet articles, 
>>>> so...?
>>>
>>>
>>>
>>>
>>> Sure, but I still got more out of that presentation than
>>> the stuff I've looked at.
> 
> [...]
> 
>> Yes? No?
>>
>> kenny
> 
> 
> That was good, but it doesn't come it first thing on
> the website. 

Yeah, and look at the right margin! One inch? Hello! That should be an 
inch-and-a-quarter!!! It's all my fault. :)

> Perhaps you could start with the story of
> your dad's spreadsheet - the bald "it's like spreadsheet
> cells" confused me. Did it mean:
> 
> * I was going to refer to each cell using fairly easy to
> mix up row-and-column references?
> * What a given cell could do was pretty limited?
> * That I'd need to use another paradigm anyway, given
> the limitations of spreadsheets? (see also: zillions of
> Excel files doing - poorly - the work best given to a
> proper RBMS)

The read I took on the situation was that, while the doc and marketing 
(and margin settings) could be better, no, that is not why so few got on 
the bandwagon. Another /huge/ Lisp open source contributor told me "Get 
used to it."

So I decided code (a Cells-based GUI, to be specific) would be more 
effective  (and necessary, actually) to spread the word. That led to 
Cello, which was a distraction in itself because OpenGL is so perty.

Meanwhile, a Thomas here, a Vasily there -- that is all one can expect. 
Peter D, Frank G, and now Ryan and the Pythonistas. And at the same time 
we see all the parallel developments: COSI, Adobe Adam.

Just a matter of time. I am just laughing because the Pythonistas have 
caught on so much more readily than the smug Lisp weenies. (Btw, talk 
about smug, I think the Pythonistas have us beat at that, too.)

And a year from now when people are calling me an asshole for sitting on 
the idea for ten years, we are all going to have a very good laugh. 
Meanwhile, observe that no Lispnik has actually signed up to the Cells 
list since this thread started, but many are happily blaming me for not 
telling them /in the right way/.

:)

kt

-- 
Cells: http://common-lisp.net/project/cells/

"Have you ever been in a relationship?"
    Attorney for Mary Winkler, confessed killer of her
    minister husband, when asked if the couple had
    marital problems.
From: Jacques Chester
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <44803ece$1@dnews.tpgi.com.au>
Ken Tilton wrote:

> Yeah, and look at the right margin! One inch? Hello! That should be an 
> inch-and-a-quarter!!! It's all my fault. :)

Don't know about that - Pythonistas might prefer
a wider left margin. You ought to check.

[...]
> Just a matter of time. I am just laughing because the Pythonistas have 
> caught on so much more readily than the smug Lisp weenies. (Btw, talk 
> about smug, I think the Pythonistas have us beat at that, too.)

I have to admit I read about smug Lisp weenies,
but I didn't believe it until I subscribed to c.l.l.
Taking yourself for an example: I can't tell if you're
the cheerful cheeky type or just a common- or
garden-variety wanker. I lean hopefully toward the
former.

And don't tell me about smug! I'm a recovering law
student and ex student politico.

As for the Cells list - well, let me learn Lisp first,
but I look forward on toying with Cells. Looking back
my days as a CS student (dimly forgotten) I can see
one project where Cells was exactly what I was groping
for.

Cheers,

JC.
From: Ken Tilton
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <Zv_fg.2$n91.1@fe09.lga>
Jacques Chester wrote:

> As for the Cells list - well, let me learn Lisp first,
> but I look forward on toying with Cells. Looking back
> my days as a CS student (dimly forgotten) I can see
> one project where Cells was exactly what I was groping
> for.

Groping as in "started on your own constraints framework"? Happens a 
lot. Should we form a club? KR, Cells, Adam, COSI, C4... we could have a 
journal, an annual conference, t-shirts.

Need a better name than constraints -- talk about a marketing disaster.

kt

-- 
Cells: http://common-lisp.net/project/cells/

"Have you ever been in a relationship?"
    Attorney for Mary Winkler, confessed killer of her
    minister husband, when asked if the couple had
    marital problems.
From: Jacques Chester
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <447d8668$1@dnews.tpgi.com.au>
> Which raises the question: is that I misunderstood? Or
> that I just suck a grepping unfamiliar Lisp code?

Or is the question rather that, given the appalling
number of grammos in my reply, should I turn in
my Pedantic Puckerlips card?

Cheers,

JC.
From: Takehiko Abe
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <keke-3105062253070001@192.168.1.2>
> > Here is a minimal primer on Cells, just enough for you to
> > keep up with the next tutorial. That will be a substantial project
> > in which we develop a CLOS object inspector.
> > 
> > The Inspector project will give you a feel for what it is like to 
> > program with Cells and Cello /after/ you are fluent in the
> > technology. The intent is not to teach you Cello, rather to
> > motivate your learning it.

Is the motivation available?


[...]
> > The Cell programmer writes:
> > 
> > (make-instance 'menu-item
> >   :name :cut
> >   :label "Cut"
> >   :cmd-key +control-x+
> >   :actor #'do-cut
> >   :enabled (c? (when (typep (focus *app*) 'text-edit-widget)
> >                  (not (null (selected-range (focus *app*)))))))

looks familiar.

(make-instance 'menu-item
  :menu-item-title "Cut"
  :command-key '(:control #\x)
  :menu-item-action #'do-cut
  :update-function
  #'(lambda (item)
      (let ((w (front-window)))
        (if (and w
                 (multiple-value-bind (b e)
                                      (selection-range w)
                   (neq b e)))
          (menu-item-enable item)
          (menu-item-disable item)))))

This schemeworks well because menu-items are hidden most of
the time.

> > 
> > ...and now they can forget the menu item exists as they work
> > on the rest of the application. The menu-item enabled status
> > will stay current (correct) as the selected-range changes
> > and as the focus itself changes as the user moves from field
> > to field.

And we don't need to care --- questions like: Who starts the
update? And how often it is triggered? -- with cells?

Anyways I downloaded cells_2.0 and tried it with MCL5.1.
It loaded fine with a very simple mod.

But I am not sure if it is working.
(test-cells) finished without an error. Does this mean
it is working?
From: Ken Tilton
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <1Zjfg.15$0f6.13@fe09.lga>
Takehiko Abe wrote:
>>>Here is a minimal primer on Cells, just enough for you to
>>>keep up with the next tutorial. That will be a substantial project
>>>in which we develop a CLOS object inspector.
>>>
>>>The Inspector project will give you a feel for what it is like to 
>>>program with Cells and Cello /after/ you are fluent in the
>>>technology. The intent is not to teach you Cello, rather to
>>>motivate your learning it.
> 
> 
> Is the motivation available?

You mean the actual source for the Cell-based Inspector, Cloucells? 
Somewhere. If you like I could send it along (or it might be in the 
Cello repository on c-l.net). Caveat: won't run. Goes back to Cells 1.0. 
And it ran under Cello, which I am resurrecting this week. Not sure why 
I thought it would make a good tutorial. Might be better to replicate 
the ACL "apropos" dialog, which I will miss when I move to Lispworks.

But boy did Cloucells turn out be (a) amazing and (b) hairy. (b) because 
a Cell itself could be the value mediated by a Cell! (a) because, thanks 
to (b), well, I could start Cloucells, inspect the Cloucells window, 
navigate to the slot holding the current mouse position, and watch the 
mouse position change as, well, the mouse position changed. Without 
coding to make it happen. Sick.

> 
> 
> [...]
> 
>>>The Cell programmer writes:
>>>
>>>(make-instance 'menu-item
>>>  :name :cut
>>>  :label "Cut"
>>>  :cmd-key +control-x+
>>>  :actor #'do-cut
>>>  :enabled (c? (when (typep (focus *app*) 'text-edit-widget)
>>>                 (not (null (selected-range (focus *app*)))))))
> 
> 
> looks familiar.

Sure. Most GUI libraries consist of hundreds of hamsters running around 
behind the scenes providing GUI developers with some small amount of 
automatic dataflow.  Cells solves that problem in general.

> 
> (make-instance 'menu-item
>   :menu-item-title "Cut"
>   :command-key '(:control #\x)
>   :menu-item-action #'do-cut
>   :update-function
>   #'(lambda (item)
>       (let ((w (front-window)))
>         (if (and w
>                  (multiple-value-bind (b e)
>                                       (selection-range w)
>                    (neq b e)))
>           (menu-item-enable item)
>           (menu-item-disable item)))))
> 
> This schemeworks well because menu-items are hidden most of
> the time.
> 
> 
>>>...and now they can forget the menu item exists as they work
>>>on the rest of the application. The menu-item enabled status
>>>will stay current (correct) as the selected-range changes
>>>and as the focus itself changes as the user moves from field
>>>to field.
> 
> 
> And we don't need to care --- questions like: Who starts the
> update? And how often it is triggered? -- with cells?

No need to worry. If you have a heavy hitter causing (a) a lot of 
updating and (b) your understanding of the semantics tells you some of 
that can be skipped, you have options such as laziness or filters on a 
dependency to avoid unnecessary computation.

> 
> Anyways I downloaded cells_2.0 and tried it with MCL5.1.
> It loaded fine with a very simple mod.
> 
> But I am not sure if it is working.
> (test-cells) finished without an error. Does this mean
> it is working?

Yes. It goes kersplat if there is a problem. I should print "Cells is 
working fine." at the end, eh? I will try to remember to do that later 
on, gotta run now.

kt

-- 
Cells: http://common-lisp.net/project/cells/

"Have you ever been in a relationship?"
    Attorney for Mary Winkler, confessed killer of her
    minister husband, when asked if the couple had
    marital problems.
From: Steven E. Harris
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <q94r72a9ifd.fsf@chlorine.gnostech.com>
Ken Tilton <·········@gmail.com> writes:

> Might be better to replicate the ACL "apropos" dialog, which I will
> miss when I move to Lispworks.

Edi Weitz's LW-ADD-ONS package provides a similar Apropos dialog.�


Footnotes: 
� http://weitz.de/lw-add-ons/#apropos
  http://weitz.de/lw-add-ons/#apropos-pic

-- 
Steven E. Harris
From: Fred Gilham
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <u7wtc1x3ue.fsf@snapdragon.csl.sri.com>
Ken,

----------------------------------------
Journal entry for May 31, 2006 (inspired by a certain radio ad about
warehouse stores)

Day 21.  Decided to try cells again today.  Got Cells 2. Compiled OK.
Tests ran OK.

Followed link to tilton-technology.com which led me to Bill
Clementson's example.  Found it didn't work.  Found the thing ****at
the very bottom**** that says it doesn't work.  Tried the updated
example that it pointed to.  Found that it too doesn't work---pukes on
"defobserver".  Realized syntax has changed...again.  Wondered what
"to-be" and "not-to-be" did and where they went.
----------------------------------------

Seriously, cells seems to work just fine, but from this above
experience it *gives the impression* of being a moving target.
Usually when I see that my first reaction is to let the dust settle a
little more.

A road-map would be nice.  But the problem is that there are already
road maps out there, but the territory has changed.  It's easy to get
confused.

-- 
Fred Gilham                                  ······@csl.sri.com
...if I were the president and the CIA said it was morning, I'd walk
over to a window facing east and see for myself.  -- Charlie Reese
From: Ken Tilton
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <xWvfg.91$0f6.18@fe09.lga>
Fred Gilham wrote:
> Ken,
> 
> ----------------------------------------
> Journal entry for May 31, 2006 (inspired by a certain radio ad about
> warehouse stores)
> 
> Day 21.  Decided to try cells again today.  Got Cells 2. Compiled OK.
> Tests ran OK.
> 
> Followed link to tilton-technology.com which led me to Bill
> Clementson's example.  Found it didn't work.  Found the thing ****at
> the very bottom**** that says it doesn't work.  Tried the updated
> example that it pointed to.  Found that it too doesn't work---pukes on
> "defobserver".  Realized syntax has changed...again.  Wondered what
> "to-be" and "not-to-be" did and where they went.
> ----------------------------------------
> 
> Seriously, cells seems to work just fine, but from this above
> experience it *gives the impression* of being a moving target.
> Usually when I see that my first reaction is to let the dust settle a
> little more.

I am the same way. Anti-lock brakes, fuel injection, independent 
suspension -- how unstable can you get? When automobile technology grows 
up I'll be the first to jump in, but right now -- well, have you seen 
the Lexus? I hear they plan to make more changes every year, as far out 
as you can imagine. No Thanks!!

:)

kzo


-- 
Cells: http://common-lisp.net/project/cells/

"Have you ever been in a relationship?"
    Attorney for Mary Winkler, confessed killer of her
    minister husband, when asked if the couple had
    marital problems.
From: Takehiko Abe
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <keke-0106061451180001@192.168.1.2>
In article <···············@fe09.lga>, Ken Tilton wrote:

> >>>The Inspector project will give you a feel for what it is like to 
> >>>program with Cells and Cello /after/ you are fluent in the
> >>>technology. The intent is not to teach you Cello, rather to
> >>>motivate your learning it.
> > 
> > 
> > Is the motivation available?
> 
> You mean the actual source for the Cell-based Inspector, Cloucells? 
> Somewhere. If you like I could send it along (or it might be in the 
> Cello repository on c-l.net). Caveat: won't run. Goes back to Cells 1.0. 
> And it ran under Cello, 

I guess it requires that i am already 'fluent in the technology'
and highly motivated.
From: Ken Tilton
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <PBvfg.774$PP5.733@fe08.lga>
Takehiko Abe wrote:
> In article <···············@fe09.lga>, Ken Tilton wrote:
> 
> 
>>>>>The Inspector project will give you a feel for what it is like to 
>>>>>program with Cells and Cello /after/ you are fluent in the
>>>>>technology. The intent is not to teach you Cello, rather to
>>>>>motivate your learning it.
>>>
>>>
>>>Is the motivation available?
>>
>>You mean the actual source for the Cell-based Inspector, Cloucells? 
>>Somewhere. If you like I could send it along (or it might be in the 
>>Cello repository on c-l.net). Caveat: won't run. Goes back to Cells 1.0. 
>>And it ran under Cello, 
> 
> 
> I guess it requires that i am already 'fluent in the technology'
> and highly motivated.

Right, it was more post-doctoral than Cells 101.

In support of PyCells I am producing a series of examples ordered as I 
would attempt to get things working if I were porting Cells to another 
language. But these are contrived in their semantics, so I am not sure 
how motivating that will be.

kt

-- 
Cells: http://common-lisp.net/project/cells/

"Have you ever been in a relationship?"
    Attorney for Mary Winkler, confessed killer of her
    minister husband, when asked if the couple had
    marital problems.
From: ·······@gmail.com
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <1149050116.096068.76930@h76g2000cwa.googlegroups.com>
Ken Tilton wrote:
> Track the PyCells Python Software Foundation SoC project here:
>
>     http://pyworks.org/mailman/listinfo/pycells
>
> Gee, are Pythonistas smarter than Lispniks?!:
>
>    http://www.eby-sarna.com/pipermail/peak/2006-May/002545.html
>
> :)

It seems to me (maybe nobody else sees it this way) that
the following analogy holds:

    Lisp programmers : Cells  ::  non-Lisp programmers : Lisp

-- 
Jack Unrue
From: Ken Tilton
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <YIafg.49$1y1.13@fe11.lga>
·······@gmail.com wrote:
> Ken Tilton wrote:
> 
>>Track the PyCells Python Software Foundation SoC project here:
>>
>>    http://pyworks.org/mailman/listinfo/pycells
>>
>>Gee, are Pythonistas smarter than Lispniks?!:
>>
>>   http://www.eby-sarna.com/pipermail/peak/2006-May/002545.html
>>
>>:)
> 
> 
> It seems to me (maybe nobody else sees it this way) that
> the following analogy holds:
> 
>     Lisp programmers : Cells  ::  non-Lisp programmers : Lisp
> 

Nonsense. Steel's PhD thesis, Garnet KR, AutoCAD, COSI... Lispniks are 
all over the dataflow paradigm.

As for Pythonistas and Lisp -- are you not aware that Python is getting 
GF's in 3.0? They love Lisp! They even have "decorators" (guess), a MOP, 
and Norvig.

Jack, try to keep up, will ya?

:)

kenny


-- 
Cells: http://common-lisp.net/project/cells/

"Have you ever been in a relationship?"
    Attorney for Mary Winkler, confessed killer of her
    minister husband, when asked if the couple had
    marital problems.
From: Jack Unrue
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <17eq72pnt94uidmbn54ip73lopfa8qlr73@4ax.com>
On Wed, 31 May 2006 02:29:26 -0400, Ken Tilton <·········@gmail.com> wrote:
>
> ·······@gmail.com wrote:
> > 
> > It seems to me (maybe nobody else sees it this way) that
> > the following analogy holds:
> > 
> >     Lisp programmers : Cells  ::  non-Lisp programmers : Lisp
>
> Nonsense. Steel's PhD thesis, Garnet KR, AutoCAD, COSI... Lispniks are 
> all over the dataflow paradigm.

Nope, I still think the analogy holds. Cells has got example code
and commentary (I personally have taken advantage of it so I know
that's true), so I don't really agree with folks who criticize your
work on that front. I just think the concept is more of a challenge
than you realize.

I have witnessed this same phenomenon before, you know: some smart
dude comes up with a very powerful design and proceeds to get very
frustrated because no one around him/her seems to get it, despite
being very talented themselves. I'm not referring to myself, btw,
it was somebody I was working with and I was one of the folks driving
that person up a wall.

> As for Pythonistas and Lisp -- are you not aware that Python is getting 
> GF's in 3.0? They love Lisp! They even have "decorators" (guess), a MOP, 
> and Norvig.
>
> Jack, try to keep up, will ya?
>
> :)

I haven't really been following Python developments, so I
guess I deserved that :-)  Good for them!

-- 
Jack Unrue
From: Ken Tilton
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <U2gfg.209$y47.162@fe10.lga>
Jack Unrue wrote:
> On Wed, 31 May 2006 02:29:26 -0400, Ken Tilton <·········@gmail.com> wrote:
> 
>>·······@gmail.com wrote:
>>
>>>It seems to me (maybe nobody else sees it this way) that
>>>the following analogy holds:
>>>
>>>    Lisp programmers : Cells  ::  non-Lisp programmers : Lisp
>>
>>Nonsense. Steel's PhD thesis, Garnet KR, AutoCAD, COSI... Lispniks are 
>>all over the dataflow paradigm.
> 
> 
> Nope, I still think the analogy holds. Cells has got example code
> and commentary (I personally have taken advantage of it so I know
> that's true), so I don't really agree with folks who criticize your
> work on that front. I just think the concept is more of a challenge
> than you realize.
> 
> I have witnessed this same phenomenon before, you know: some smart
> dude comes up with a very powerful design and proceeds to get very
> frustrated because no one around him/her seems to get it,...

ohhhh, thaaaaaaaat.

Nope. I anticipated the "neat hack only its mother could love" 
phenomenon and have put as much energy into simplicity and transparency 
as I have into power and efficiency (the other two biggies). Folks who 
do not get it do not get it because they have not tried.

Mind you, the Cells paradigm /is/ different, but as Philip wrote, the 
only problem is getting used to programming in "pull" instead of in 
"push". Just because a coachman has never driven a car does not make a 
horse and buggy easier to operate.

I have worked with body shop programmers who could not be bothered to 
write structured code. Are the concepts of structured programming too 
hard? Nah, those people just "refused to be bothered" (a direct quote), 
meaning they were too inured to the pain of spaghetti coding to realize 
how much "bother" structured programming could save them. They thought 
spaghetti code was /easier/ because, hey, how hard does one have to 
think to add another GOTO? It breaks somewhere else? Add another GOTO! 
C'mon, this is easy! Breaks somewhere else...read my lips: GOTO!

>>As for Pythonistas and Lisp -- are you not aware that Python is getting 
>>GF's in 3.0? They love Lisp! They even have "decorators" (guess), a MOP, 
>>and Norvig.
>>
>>Jack, try to keep up, will ya?
>>
>>:)
> 
> 
> I haven't really been following Python developments, so I
> guess I deserved that :-)  
> 

nah, I found out about an hour before I posted that, when Philip 
mentioned it. :)

kenny

-- 
Cells: http://common-lisp.net/project/cells/

"Have you ever been in a relationship?"
    Attorney for Mary Winkler, confessed killer of her
    minister husband, when asked if the couple had
    marital problems.
From: Lars Rune Nøstdal
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <1149295720.066153.234170@f6g2000cwb.googlegroups.com>
Hi,
I've been following this thread and I do not think the docs and
examples in the sources are all _that_ bad. I'm actually able to use
and understand Cells for very simple things now.

The thing I do miss the most is a reference so one can get a quick
overview of the API or exported symbols. _Maybe_ I'll write something
down later if/when I feel I understand this thing a bit better, and if
it'd be interesting (?).

It does seem promising and very cool. Somehow reminding me a bit of the
data-driven approach taken in PAIP but more at the "action-level" ..
orsomethinglikethat ..

Well, don't give up the Lispers, Ken ...  :)

-- 
mvh,
Lars Rune Nøstdal
http://lars.nostdal.org/
From: Ken Tilton
Subject: Re: Just can't hear enough about Cells?
Date: 
Message-ID: <Gt5gg.42$U_7.37@fe12.lga>
Lars Rune N�stdal wrote:
> Hi,
> I've been following this thread and I do not think the docs and
> examples in the sources are all _that_ bad. I'm actually able to use
> and understand Cells for very simple things now.
> 
> The thing I do miss the most is a reference so one can get a quick
> overview of the API or exported symbols. _Maybe_ I'll write something
> down later if/when I feel I understand this thing a bit better, and if
> it'd be interesting (?).

Get on line. :) You join an august list of Cells students who have 
mulled writing the doc.

Or you can just wait for Pycells this summer. One of the deliverables is 
documentation. I am encouraging the Pythonistas to stick to Cells as 
much as possible at least until they get it ported and live with it for 
a while. If that works out, mebbe the Py doc will serve as CL doc.

Good doc is a pain (unless i guess one happens to love writing doc). I 
might have written some if anyone asked. As it is, folks either never 
need to ask -- they just let me know after the fact that they have 
executed some big project -- or send me a small failed attempt which i 
turn into a working use case. That seems to get them going.

meanwhile, there are lots of examples, most of them documented. But I 
know what you mean about the API reference.

My part in PyCells is to assemble a sequence of examples sort of in the 
order in which I myself have worked in the past when doing partial ports 
to C++, Java, and Python. Will that also be sound pedagogical order? I 
think so, but no, it is still not an API.

> 
> It does seem promising and very cool. Somehow reminding me a bit of the
> data-driven approach taken in PAIP but more at the "action-level" ..
> orsomethinglikethat ..
> 
> Well, don't give up the Lispers, Ken ...  :)
> 

Never. :)

kzo

-- 
Cells: http://common-lisp.net/project/cells/

"Have you ever been in a relationship?"
    Attorney for Mary Winkler, confessed killer of her
    minister husband, when asked if the couple had
    marital problems.