[dorkbotpdx-blabber] Codosome-2
Ward Cunningham
ward at c2.com
Tue May 19 21:19:24 EDT 2009
Here is a quick peek at the Codosome-2 source tree. Code represents
sequences of instructions. I define one subclass of code for each
instruction and one more subclass, Seq, for representing sequences of
instructions. Reg represents registers and State represents the rest
of the machine state. Label lets me reference between instruction
sequences and Stream has something to do with code generation, I
forget what. CodeTest is the jUnit tests that make sure Codosome-2
works.
TinyTv is the only application I've ever written in Codosome-2. It is
a clone of my bar-chart video generator which many of you have seen.
It is different in that it draws moving concentric circles instead of
bars. I tested the application using my own testing framework called
Fit. Here is a writeup about this experience:
http://fit.c2.com/wiki.cgi?TinyTv -- experience report with charts
and pictures
I've imagined Codosome-3 as a drag-and-drop interface that assembles
boxes within boxes since that would be easy to do with jQuery. I
imagine boxes as having a front and back. Users select parameters on
the front. Hard core developers describe the generation process on the
back. For example, a time delay box might have a field on the front
for entering the amount of time to delay while the back would show how
the delay is realized from other blocks, instructions or other
hardware resources.
I have to run to an election party. More soon. -- Ward
__________________
Ward Cunningham
503-432-5682
On May 19, 2009, at 11:38 AM, Hans Lindauer wrote:
> I'm not necessarily looking for high-level programming ability here,
> just a more visual approach. I actually became pretty comfortable
> with assembly during my brief time with it in Mechatronics class in
> college, although I wasn't doing anything too complex.
>
> Correct me if I'm wrong here, but any instruction is essentially a
> function with inputs and outputs, the same thing like a MAX or pd
> object. Instructions can be combined ("abstracted" in MAX) to
> perform more complex functions, but remain, essentially, a little
> black (or white) box with inputs and outputs.
>
> As a visual thinker, in order to keep track of all of those inputs
> and outputs, I need to draw a picture. After some experience with
> using MAX, my pictures tend to look more and more like MAX patches.
>
> So I ask myself, why can't I just chain instructions together like I
> can in MAX to create, specifically, a program for the AVR; but more
> generally, any computer program? It's a different paradigm than
> what's currently used by programmers, but I'm not seeing a real
> functional difference - maybe that stems from my own ignorance, more
> than anything?
>
>
> M. Edward (Ed) Borasky wrote:
>>
>> On Tue, May 19, 2009 at 9:02 AM, Thomas Lockney
>> <thomas at lockney.net> wrote:
>>
>>> On Tue, May 19, 2009 at 7:14 AM, Ward Cunningham <ward at c2.com>
>>> wrote:
>>>
>>>> I am thinking about what Codosome-3 should be. I would like to
>>>> make it a
>>>> server based tool (probably in rails, but maybe scala) that uses
>>>> advanced
>>>> web programming (probably in jQuery) to configure library
>>>> components/generators in an edit/download cycle of only a few
>>>> seconds. I'm
>>>> attracted to a web implementation because it simplifies sharing
>>>> (inspired by
>>>> wiki).
>>>> I would be interested in collaborating with folks on such a
>>>> project,
>>>> especially if they are more interested in exploring a new space
>>>> than getting
>>>> done quickly.
>>>>
>>> This sounds very interesting. If you take the Scala route, I might
>>> be
>>> interested in collaborating both for the rationale of making a
>>> tool like
>>> this work and to give me a solid project to really let Scala sink
>>> in a bit
>>> deeper.
>>>
>>
>> How low-level a UI are you all willing to put up with here? I got the
>> impression that Hans was looking for a "visual programming toolset"
>> to
>> chain blocks together. There are plenty of low-level tools, like
>> Forth
>> and C, for this sort of thing. You can even do things like Zed Shaw's
>> "Project EaRing".
>> (http://www.zedshaw.com/repository/rubyenrails2008/build/rubyenrails_2008.pdf
>> )
>>
>
> _______________________________________________
> dorkbotpdx-blabber mailing list
> dorkbotpdx-blabber at dorkbot.org
> http://music.columbia.edu/mailman/listinfo/dorkbotpdx-blabber
-------------- next part --------------
Skipped content of type multipart/related
More information about the dorkbotpdx-blabber
mailing list