9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: roger peppe <rogpeppe@gmail.com>
To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net>
Subject: Re: [9fans] dataflow programming from shell interpreter
Date: Thu, 21 Jan 2010 08:00:05 +0000	[thread overview]
Message-ID: <df49a7371001210000i715d8804ua0b149220c7537b@mail.gmail.com> (raw)
In-Reply-To: <105369E7-027D-4253-93A2-8364084923CA@gmail.com>

i had some ideas along these sorts of lines which i
put into a tool in inferno that i called "alphabet".
it works (with a few rough edges).
http://www.vitanuova.com/inferno/man/1/sh-alphabet.html

for an example of something it can do that's not possible
with a conventional shell pipeline, see
http://www.vitanuova.com/inferno/man/1/alphabet-fs.html

one of these days i intend to dust it off and take
it to the next level - i've had a few ideas in the meantime.
don't hold your breath though.

2010/1/20 Patrick Kelly <kameo76890@gmail.com>:
>
>
> On Jan 20, 2010, at 4:13 PM, Eris Discordia <eris.discordia@gmail.com>
> wrote:
>
>> Aren't DirectShow filter graphs and programs like GraphStudio/GraphEdit
>> one possible answer to the video processing question? Filter graphs can be
>> generated by any program, GUI or CLI, and fed to DirectShow provided one
>> learns the in and out of generating them.
>>
>> The OP's question, too, finds one answer in MS PowerShell where instead of
>> byte streams .NET objects are passed between various tools and a C#-like
>> shell language is used for manipulating them. .NET objects can at any point
>> be serialized/deserialized to/from XML using stock classes and routines in
>> System.Xml.Serialization namespace.
>
> Why XML? Surely there are better options.
>>
>> Just a note that at least some implementations of both ideas exist in
>> production settings.
>>
>>
>> --On Tuesday, January 19, 2010 15:40 +0000 Steve Simon
>> <steve@quintile.net> wrote:
>>
>>>> The PBM utilities (now net pbm) did something similar for bitmaps.
>>>> I think V10 also had some pipeline utils for manipulating images.
>>>
>>> Indeed, however I make a firsm distinction between image proccessing (2d)
>>> and video processing (3d).
>>>
>>> In Video processing the image sequences can be of arbitary length, the
>>> processing is often across several fields, and, because we want our
>>> results ASAP tools should present the minimum delay possible (e.g. a
>>> gain control only needs a one pixel buffer).
>>>
>>> Aditionally image processing pipelines often have nasty things like
>>> feedback loops and mixing different paths with differing delays which all
>>> need special care.
>>>
>>> We have a package of good old unix tools developed jointly by us and the
>>> BBC which works as you might expect
>>>
>>>   cat video-stream | interpolate -x 0.7 -y 0.3 | rpnc - 0.5 '*' | display
>>>
>>> however this can get quite ugly when the algorithm gets complex.
>>>
>>> We need to cache intermediate results - processing HD (let alone 2k 3d)
>>> can get time consuming so we want an environment which tee's off
>>> intermediate results automagicially and uses them if possible - sort of
>>> mk(1) combined with rc(1).
>>>
>>> It is also a pain that its not easy to work at different scales i.e.
>>> writing expressions to operate at the pixel level and using large blocks
>>> like interpolate, the rpnc is an attempt to do this but its interpreted
>>> (slow).
>>>
>>> a restricted rc(1)-like language which supports pipelines,
>>> and scalar (configuration) variables combined with a JIT compiler
>>> (in the vein of popi) looks like a solution but I have never go further
>>> than wishful thinking.
>>>
>>> -Steve
>>>
>>
>>
>>
>>
>>
>
>



  reply	other threads:[~2010-01-21  8:00 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-01-18 10:58 Tim Climber
2010-01-18 12:19 ` Steve Simon
2010-01-18 20:04   ` Tim Newsham
2010-01-19  9:59   ` Aharon Robbins
2010-01-19 15:40     ` Steve Simon
2010-01-20 21:13       ` Eris Discordia
2010-01-20 21:41         ` Patrick Kelly
2010-01-21  8:00           ` roger peppe [this message]
2010-01-21 12:45         ` maht
2010-01-21 21:36         ` Skip Tavakkolian
2010-01-22  9:44           ` Eris Discordia
2010-01-19 22:13   ` Andy Spencer
2010-01-18 16:23 ` Eric Van Hensbergen
2010-01-18 19:23 ` Aharon Robbins
2010-01-19 22:33 ` Andy Spencer
2010-01-27 10:44 ` Sam Watkins
     [not found] <c563b2f7-92ac-463a-864c-267721ddb30a@k35g2000yqb.googlegroups.co>
2010-01-18 11:15 ` erik quanstrom
     [not found] <58d8d6b4960925aab27312e0968a3e26@quintile.net>
2010-01-18 19:39 ` Eric Van Hensbergen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=df49a7371001210000i715d8804ua0b149220c7537b@mail.gmail.com \
    --to=rogpeppe@gmail.com \
    --cc=9fans@9fans.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).