<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel rdf:about="http://permalink.gmane.org/gmane.lisp.cells.devel">
    <title>gmane.lisp.cells.devel</title>
    <link>http://permalink.gmane.org/gmane.lisp.cells.devel</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.lisp.cells.devel/745"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.lisp.cells.devel/744"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.lisp.cells.devel/743"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.lisp.cells.devel/742"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.lisp.cells.devel/741"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.lisp.cells.devel/740"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.lisp.cells.devel/739"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.lisp.cells.devel/738"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.lisp.cells.devel/737"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.lisp.cells.devel/736"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.lisp.cells.devel/735"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.lisp.cells.devel/734"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.lisp.cells.devel/733"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.lisp.cells.devel/732"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.lisp.cells.devel/731"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.lisp.cells.devel/730"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.lisp.cells.devel/729"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.lisp.cells.devel/728"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.lisp.cells.devel/727"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.lisp.cells.devel/726"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://permalink.gmane.org/gmane.lisp.cells.devel/745">
    <title>Patches for ECL</title>
    <link>http://permalink.gmane.org/gmane.lisp.cells.devel/745</link>
    <description>&lt;pre&gt;G'day,

Please find attached two patches that allow cells to work on ECL.

Thanks
Mark

&lt;/pre&gt;</description>
    <dc:creator>Mark Cox</dc:creator>
    <dc:date>2012-10-25T10:56:19</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.lisp.cells.devel/744">
    <title>Re: Connecting two models</title>
    <link>http://permalink.gmane.org/gmane.lisp.cells.devel/744</link>
    <description>&lt;pre&gt;Sorry, Google decided to send that. Trying again:
 If the above is really what you want to do you can just:

 (defun test ()
    (let* ((model (make-model :model))
             (view  (make-instance 'view
                         :item-index (c? (item-index model))) ;; model
is captured in a closure via lexical scoping
        (setf (item-index model) 2)
        (item-index view)))

When you want to build things other ways, you just always need to be
able to navigate around your application model to find the entities on
which you want another entity to depend, and the solution will vary
based on how your model changes shape over time (so ask again when you
get to something more elaborate than the above).

hth, kt

ps. Hi, Frank!

&lt;/pre&gt;</description>
    <dc:creator>Ken Tilton</dc:creator>
    <dc:date>2012-10-10T13:34:51</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.lisp.cells.devel/743">
    <title>Re: Connecting two models</title>
    <link>http://permalink.gmane.org/gmane.lisp.cells.devel/743</link>
    <description>&lt;pre&gt;Sorry, gents. I should have scrolled down! More below:

On Wed, Oct 3, 2012 at 6:06 PM, Mark Cox &amp;lt;markcox80&amp;lt; at &amp;gt;gmail.com&amp;gt; wrote:



If the above is really what you want to do you can just:

 (defun test ()
))

&lt;/pre&gt;</description>
    <dc:creator>Ken Tilton</dc:creator>
    <dc:date>2012-10-10T13:30:15</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.lisp.cells.devel/742">
    <title>Re: Connecting two models</title>
    <link>http://permalink.gmane.org/gmane.lisp.cells.devel/742</link>
    <description>&lt;pre&gt;
Correct, that is not how Cells works (though it could be made to work
if necessary).

Instead, the view would be instantiated after the model -- or with the
model in one "datapulse" -- with model either supplied as an initarg
or located by the view rule during model initialization:

Either:

    (make-instance 'view
          :model &amp;lt;some-model-instance already extant&amp;gt;
          :item-index (c? (item-index (model self)))

Or (the way my models work)

    (make-instance 'view
          :item-index (c? (item-index
&amp;lt;navigate-app-model-finding-desired-specific-model&amp;gt;)))

The key then is having model objects organized in a way that one can
find other entities dynamically as the larger model formed by all the
model objects comes to life.

The family class and its supporting utilities are how I generally
manage the Cells modelspace of an application.

hth, kt


&lt;/pre&gt;</description>
    <dc:creator>Ken Tilton</dc:creator>
    <dc:date>2012-10-10T13:24:34</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.lisp.cells.devel/741">
    <title>Re: Connecting two models</title>
    <link>http://permalink.gmane.org/gmane.lisp.cells.devel/741</link>
    <description>&lt;pre&gt;Hi Frank,

Thanks for your example. My apologies for requiring you to repeat your answer from last month. I found your post not long after I posted.

From your example, and other examples that use the FAMILY class, the KIDS are instantiated at the same time as the FAMILY instance. In my case, the KIDS are instantiated at different times and then "connected" in the future. I have an attempt at the end of the email which is based off your example. It does not work, and I am not sure why.

I noticed in your examples that you use macros. Is there something significant about that?

Thanks
Mark

(defpackage "MODEL"
  (:use "COMMON-LISP"
"CELLS"))
(in-package "MODEL")

;; model

(defmodel my-model (model)
  ((item-index
    :initarg :item-index
    :accessor item-index))
  (:default-initargs
   :item-index (c-in 0)))

(defun make-model (id)
  (make-instance 'my-model :md-name id))

;; view

(defmodel my-view (model)
  ((item-index
    :initarg :item-index
    :accessor item-index))
  (:default-initargs
   :item-in&lt;/pre&gt;</description>
    <dc:creator>Mark Cox</dc:creator>
    <dc:date>2012-10-03T22:06:22</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.lisp.cells.devel/740">
    <title>Re: Connecting two models</title>
    <link>http://permalink.gmane.org/gmane.lisp.cells.devel/740</link>
    <description>&lt;pre&gt;Hi Mark,

Am 04.10.2012 um 00:06 schrieb Mark Cox:

 
From looking at your code there are a couple of points to be noted:

1. Use of macro c?

This is a macro. As such it is evaluated at macro-expansion time. Using it as a value to be bound to a slot value (as you do in #'make-controller) is not of any meaning - it will return a cell slot that is then assigned as a value to slot item-index in the view instance.

So: You cannot use c? at runtime as a value-returning form. 

2. Assigning / creating cells or cell rules via c? and the likes

There are two points in time where these can be used: At macro expansion time and at instance creation time (when initargs are being evaluated). This is based on how Cells acts on slot definitions. The macros (!) defmodel and defmd (which is just a short version of defmodel) are examining the class definition when the reader seas the defmodel / defmd form. 

If you look at the output of the observer then it is clear that the value of the slot item-index is not a "normal" val&lt;/pre&gt;</description>
    <dc:creator>Frank Goenninger</dc:creator>
    <dc:date>2012-10-04T13:54:09</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.lisp.cells.devel/739">
    <title>Re: Connecting two models</title>
    <link>http://permalink.gmane.org/gmane.lisp.cells.devel/739</link>
    <description>&lt;pre&gt;Hi Mark,

how about:


;;; ------------------------
;;; ***  Model MY-MODEL  ***
;;; ------------------------
  
(defmd my-model ()
  item-index
  :item-index (c-in 0))

(defobserver item-index ((self my-model))
  (when new-value
    (format *debug-io* "~%~S: New value for slot item-index =&amp;gt; ~S."
      self (item-index self))))

(defmacro mk-model (id)
  `(make-instance 'my-model
     :fm-parent *parent*
     :md-name ,id))

;;; -----------------------
;;; ***  Model MY-VIEW  ***
;;; -----------------------

(defmd my-view ()
  item-index)
  
(defmacro mk-view (id model-id)
  `(make-instance 'my-view
     :fm-parent *parent*
     :item-index (c? (let ((model (fm^ ,model-id)))   ;; -&amp;gt; fm^ searches for model in the current family
           (item-index model)))
     :md-name ,id))

(defobserver item-index ((self my-view))
  (when new-value
    (format *debug-io* "~%~S: New value for slot item-index =&amp;gt; ~S."
      self (item-index self))))

;;; ---------------------------
;;; ***  Family CONTROLLER  ***
;;; ----&lt;/pre&gt;</description>
    <dc:creator>Frank Goenninger</dc:creator>
    <dc:date>2012-10-03T08:59:59</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.lisp.cells.devel/738">
    <title>Connecting two models</title>
    <link>http://permalink.gmane.org/gmane.lisp.cells.devel/738</link>
    <description>&lt;pre&gt;G'day,

I think my mental model of Cells is wrong. Perhaps someone can help.

I have two model classes:

(defmodel model ()
  ((item-index
    :initarg :item-index
    :accessor item-index))
  (:default-initargs
   :item-index (c-in 0)))

(defmodel view ()
  ((item-index
    :initarg :item-index
    :accessor item-index))
  (:default-initargs
   :item-index (c-in 0)))

What I would like to do is to connect the item-index slot of an
instance of MODEL to the item-index in an instance of VIEW. i.e.

(defun connect-model-and-view (model view)
  (setf (item-index view) (c? (item-index model))))

which does not appear to be possible.

I have navigated around the issue by introducing a third model class,
CONTROLLER, that has an item-index slot initialised with (c?
(item-index (^model))) and an observer that updates the view. However, I
am wondering if this is the correct way as I seem to require inserting
WITH-INTEGRITY in the observer.

Thanks
Mark

&lt;/pre&gt;</description>
    <dc:creator>Mark Cox</dc:creator>
    <dc:date>2012-10-03T01:47:49</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.lisp.cells.devel/737">
    <title>Cells-test status</title>
    <link>http://permalink.gmane.org/gmane.lisp.cells.devel/737</link>
    <description>&lt;pre&gt;G'day,

I am interested in using the cells-test system to guide my efforts on getting cells to work with ECL. Are the tests current as they fail on SBCL and CLISP?

Thanks
Mark

The error I get is:

&amp;lt;SOME PARTS OMITTED&amp;gt; 

"----------UTILSRESET----------------------------------" 
0&amp;gt; : output thought #&amp;lt;cells::person #x1a1383e5&amp;gt; "speedy"
0&amp;gt; : i am thinking "speedy"
you can call me (speedy chill)
(CELLS::ATTEMPTING (NULL (CELLS::MD-SLOT-CELL CELLS::P 'CELLS::SPEECH))) 
(CELLS::ATTEMPTING (ASSOC 'CELLS::SPEECH (CELLS::CELLS-FLUSHED CELLS::P))) 
(CELLS::ATTEMPTING
(CELLS::C-OPTIMIZED-AWAY-P
 (CDR (ASSOC 'CELLS::SPEECH (CELLS::CELLS-FLUSHED CELLS::P))))) 

SYSTEM::%STRUCTURE-REF: 1 is not a structure of type CELLS:CELL
  [Condition of type SIMPLE-TYPE-ERROR]



&lt;/pre&gt;</description>
    <dc:creator>Mark Cox</dc:creator>
    <dc:date>2012-10-01T11:53:59</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.lisp.cells.devel/736">
    <title>Re: How to get started?</title>
    <link>http://permalink.gmane.org/gmane.lisp.cells.devel/736</link>
    <description>&lt;pre&gt;Hey, thx everyone for pitching in. I spend most of my time as ktilton
&amp;lt; at &amp;gt; mcna dot net (and the google "easy account switching" kinda did not
work so well when I tried it, tho it seems they are working on it).

I agree with all said and would add only that the regression test
suite has good examples.

-kt

On Tue, Apr 17, 2012 at 6:42 PM, Peter Hildebrandt
&amp;lt;peter.hildebrandt&amp;lt; at &amp;gt;gmail.com&amp;gt; wrote:



&lt;/pre&gt;</description>
    <dc:creator>Ken Tilton</dc:creator>
    <dc:date>2012-04-18T18:28:36</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.lisp.cells.devel/735">
    <title>Re: can one make dependencies between models?</title>
    <link>http://permalink.gmane.org/gmane.lisp.cells.devel/735</link>
    <description>&lt;pre&gt;Am 18.04.2012 um 05:29 schrieb Mirko Vukovic:


How exactly did you do the setf ?


What does the inspection of your model and the cells slot reveal ?


Recalculation is simply forced by "reading" / accessing a cells slot... As soon as you say (c? (some-slot model)) or even just do a (format ..."~s" (some-slot model)) this triggers a recompute cycle in cells - the slot needs to be current to be correct so Cells triggers all dependencies...


Frank




&lt;/pre&gt;</description>
    <dc:creator>Frank Goenninger</dc:creator>
    <dc:date>2012-04-18T08:39:35</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.lisp.cells.devel/734">
    <title>Re: can one make dependencies between models?</title>
    <link>http://permalink.gmane.org/gmane.lisp.cells.devel/734</link>
    <description>&lt;pre&gt;Thanks Peter.

That activity is still in the future.  But from my own historical
perspective, the very reason I switched to lisp several years ago was the
desire for such self-GUI-fying models.  I had a blast lisping, but never
got to this original goal :-)

On Tue, Apr 17, 2012 at 6:57 PM, Peter Hildebrandt &amp;lt;
peter.hildebrandt&amp;lt; at &amp;gt;gmail.com&amp;gt; wrote:

&lt;/pre&gt;</description>
    <dc:creator>Mirko Vukovic</dc:creator>
    <dc:date>2012-04-18T03:32:02</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.lisp.cells.devel/733">
    <title>Re: can one make dependencies between models?</title>
    <link>http://permalink.gmane.org/gmane.lisp.cells.devel/733</link>
    <description>&lt;pre&gt;Thank you very much Frank, I think I got it.

A follow-up question.  With this technique, I have several models, and the
data is flowing from one model to the next.  Nice.

But is there a suggested procedure to temporarily isolate the model, so
that it can be tested by itself?  In other words, can one explicitly set
values to cells whose initform defines them in terms of other model's slots.

I tried setf on a cell that was linked to another model.  It seems to work.

But, is its initform (c? (let ((m (fm^ :other-model))) (blah (slot m)
...))) still active?
How can I test that?  By forcing that model to recompute itself.  How do I
do that?  I did not find an obvious candidate in the exported symbols.

Thanks again,

Mirko

On Tue, Apr 17, 2012 at 5:13 PM, Frank Goenninger &amp;lt;frgo&amp;lt; at &amp;gt;me.com&amp;gt; wrote:

&lt;/pre&gt;</description>
    <dc:creator>Mirko Vukovic</dc:creator>
    <dc:date>2012-04-18T03:29:58</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.lisp.cells.devel/732">
    <title>Re: can one make dependencies between models?</title>
    <link>http://permalink.gmane.org/gmane.lisp.cells.devel/732</link>
    <description>&lt;pre&gt;
I used cells-gtk3 for exactly this purpose, i.e. linking the
position/text/color of graphic elements to the state of cells models.

Depending on your objectives, some of the more complex widgets might
be very helpful:
- a treeview that reflects a hierarchical object structure (supporting
drag and drop if I recall correctly)
- a listview (grid) that shows slots of models in a list (can even be editable)
- a canvas (based on cairo) that can be populated by visual primitives
(boxes, circles, lines, text fields) that mirror cells models (e.g.
start point of a line can be linked to the position of a box, and if
the user drags/drops the box, the line follows like a connector)

Let me know if you have further questions.  I wrote a fairly complex
application using cells/cells-gtk (including a simple physics
simulator using cells-ode and opengl), and I'm happy to dig up sample
code if needed.

Peter



_______________________________________________
cells-devel site list
cells-devel&amp;lt; at &amp;gt;common-lisp.net
http://common-lis&lt;/pre&gt;</description>
    <dc:creator>Peter Hildebrandt</dc:creator>
    <dc:date>2012-04-17T22:57:55</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.lisp.cells.devel/731">
    <title>Re: How to get started?</title>
    <link>http://permalink.gmane.org/gmane.lisp.cells.devel/731</link>
    <description>&lt;pre&gt;Hi Jim,

cells-gtk and celtk are probably the best choices for desktop GUI
toolkits.  You probably want to look at both to decide which you
prefer.  (full disclaimer, I did a bit of work on cells-gtk).
Cells-gtk has the advantage of looking native on Ubuntu/Gnome (and is
somewhat portable to windows).  Celtk is more cross-platform and has a
lower threshold if you are familiar with Tk.

you can download the latest fork of cells-gtk3 here:
https://github.com/Ramarren/cells-gtk3

Let me know if you have questions.
Peter


On Tue, Apr 17, 2012 at 11:12 AM, Frank Goenninger &amp;lt;frgo&amp;lt; at &amp;gt;me.com&amp;gt; wrote:

_______________________________________________
cells-devel site list
cells-devel&amp;lt; at &amp;gt;common-lisp.net
http://common-lisp.net/mailman/listinfo/cells-devel&lt;/pre&gt;</description>
    <dc:creator>Peter Hildebrandt</dc:creator>
    <dc:date>2012-04-17T22:42:03</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.lisp.cells.devel/730">
    <title>Re: can one make dependencies between models?</title>
    <link>http://permalink.gmane.org/gmane.lisp.cells.devel/730</link>
    <description>&lt;pre&gt;... Output of the short demo below:

(m-test)

M1: New value for slot a =&amp;gt; 1.
M1: New value for slot b =&amp;gt; 1.
M2: New value for slot c =&amp;gt; 1.

STEP 1

M1: New value for slot a =&amp;gt; 2.
M2: New value for slot c =&amp;gt; 2.

STEP 2 

M1: New value for slot b =&amp;gt; 3.
M2: New value for slot c =&amp;gt; 6.

... cute, ha ?

;-)))

Frank

Am 17.04.2012 um 23:08 schrieb Frank Goenninger:



&lt;/pre&gt;</description>
    <dc:creator>Frank Goenninger</dc:creator>
    <dc:date>2012-04-17T21:13:51</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.lisp.cells.devel/729">
    <title>Re: can one make dependencies between models?</title>
    <link>http://permalink.gmane.org/gmane.lisp.cells.devel/729</link>
    <description>&lt;pre&gt;Hi Mirko,

Am 17.04.2012 um 20:17 schrieb Mirko Vukovic:


Sure:

(in-package #:cells)

;;; ------------------
;;; ***  Model M1  ***
;;; ------------------
  
(defmd m1 ()
  a
  b
  :a (c-in 1)
  :b (c-in 1))

(defobserver a ((self m1))
  (when new-value
    (format *debug-io* "~%~S: New value for slot a =&amp;gt; ~S."
      self (a self))))

(defobserver b ((self m1))
  (when new-value
    (format *debug-io* "~%~S: New value for slot b =&amp;gt; ~S."
      self (b self))))

(defmacro mk-m1 (id)
  `(make-instance 'm1
     :fm-parent *parent*
     :md-name ,id))

;;; ------------------
;;; ***  Model M2  ***
;;; ------------------

(defmd m2 ()
  (c (c? (let ((m1 (fm^ :m1)))   ;; -&amp;gt; fm^ searches for :m1 in the current family
           (* (a m1) (b m1))))))

(defmacro mk-m2 (id)
  `(make-instance 'm2
     :fm-parent *parent*
     :md-name ,id))

(defobserver c ((self m2))
  (when new-value
    (format *debug-io* "~%~S: New value for slot c =&amp;gt; ~S."
      self (c self))))

;;; ------------------
;;; ***  Family M  ***
;;; -&lt;/pre&gt;</description>
    <dc:creator>Frank Goenninger</dc:creator>
    <dc:date>2012-04-17T21:08:14</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.lisp.cells.devel/728">
    <title>can one make dependencies between models?</title>
    <link>http://permalink.gmane.org/gmane.lisp.cells.devel/728</link>
    <description>&lt;pre&gt;Hello,

I am doing very basic cell-stuff, much like the ones in the doc folder:
Not liking excel and its cousins, I am implementing spread-sheet like
calculations in cells.

My question:

1) Can I build two models (model1, model2) and specify that a slot in
model2 depends on changes in some other slot in model1?
2) Related: can I change a slot specification in a model.  For example from
`c-in' to `c?'.  I assume that I can, but I would have to re-initialize the
model somehow.  Correct?

I am also very interested in the question posted just a few minutes ago.  I
would like to build an automated way of generating a GUI front end my cell
models.

Thanks,

Mirko
&lt;/pre&gt;</description>
    <dc:creator>Mirko Vukovic</dc:creator>
    <dc:date>2012-04-17T18:17:22</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.lisp.cells.devel/727">
    <title>Re: How to get started?</title>
    <link>http://permalink.gmane.org/gmane.lisp.cells.devel/727</link>
    <description>&lt;pre&gt;Hi Jim,

Am 17.04.2012 um 19:18 schrieb Jim Prewett:


Celtk is running fine here, also Cells-Gtk is still in use AFAIK.


https://github.com/kennytilton/cells/wiki


defmodel is like defclass - with just a few more slot options to declare a cell.
defmd is a convenience macro that helps in writing less boilerplate code:

With defmodel a cellsified class might look like this:

(DEFMODEL CAT (MODEL)
                 ((NAME :INITFORM NIL :INITARG :NAME)
                  (FUR-COLOR :INITFORM NIL :INITARG :FUR-COLOR)
                  (TITLE :INITARG :TITLE :INITFORM
                         (C? (UTILS-KT::CONC$ (^NAME) " with " (^FUR-COLOR) " fur."))))
                 (:DEFAULT-INITARGS 
                       :NAME (C-IN "") 
                       :FUR-COLOR (C-IN "black")))

the same could be written as:

(defmd cat ()
              name
              fur-color
              (title (c? (utils-kt::conc$ (^name) " with " (^fur-color) " fur.")))
              :name (c-in "")
              :fur-color (c-in "bla&lt;/pre&gt;</description>
    <dc:creator>Frank Goenninger</dc:creator>
    <dc:date>2012-04-17T18:12:56</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.lisp.cells.devel/726">
    <title>How to get started?</title>
    <link>http://permalink.gmane.org/gmane.lisp.cells.devel/726</link>
    <description>&lt;pre&gt;
Hello,

I've recently stumbled across Cells and it sounds pretty interesting.  I'm 
wondering how to get started learning about how to use Cells.  In general, 
I've got several Lisp projects that could use a GUI and the various 
Cells-based GUI projects look interesting to me.  I think I should 
probably learn how to use Cells (at some basic level) before trying to 
dive into one of the GUI packages.  Is there a Cells-based GUI package 
that is currently preferred?

In general, I learn best by first following a simple example, then 
modifying it to do my bidding.  Can someone show me how to get started?

I'm also wondering if someone can explain the difference between DEFMODEL 
and DEFMD to me.

Thanks so much!,
Jim

James E. Prewett                    Jim&amp;lt; at &amp;gt;Prewett.org download&amp;lt; at &amp;gt;hpc.unm.edu 
Systems Team Leader           LoGS: http://www.hpc.unm.edu/~download/LoGS/ 
Designated Security Officer         OpenPGP key: pub 1024D/31816D93    
HPC Systems Engineer III   UNM HPC  505.277.8210

&lt;/pre&gt;</description>
    <dc:creator>Jim Prewett</dc:creator>
    <dc:date>2012-04-17T17:18:07</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.lisp.cells.devel/725">
    <title>Re: TripleCells: A new twist to the unbound variable CACHE challenge ...</title>
    <link>http://permalink.gmane.org/gmane.lisp.cells.devel/725</link>
    <description>&lt;pre&gt;
cache needs the explicit package as well:

(cond ((string-equal h \"arrive\") \"home\")
             ((string-equal h \"leave\") \"away\")
             (triple-cells::cache? triple-cells::cache) ;;&amp;lt;-- need package on both
             (t \"away\")))))"


HTH, ken

&lt;/pre&gt;</description>
    <dc:creator>Kenneth Tilton</dc:creator>
    <dc:date>2012-03-22T17:20:50</dc:date>
  </item>
  <textinput rdf:about="http://search.gmane.org/?group=$group=gmane.lisp.cells.devel">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.lisp.cells.devel</link>
  </textinput>
</rdf:RDF>
