[PD] Idiomatic Pd

Luke Iannini lukexipd at gmail.com
Sun Aug 3 11:03:08 CEST 2008

Sorry all for my silence!! I've been deadly busy this week and it
looks like it will continue for another few days.  But, rest assured,
my obsession cannot be squashed and we'll need plenty of criticism to
make a useful guide, so fire away :).

Everyone's suggestions are wonderful so far.  I'm so glad to have you
all contributing.  I'm going to start by organizing this thread by
categories (as soon as I get the wikipage issue figured out, below),
and then it should be pretty clear which are most chaotic (in a good
way) and which need more input.

On Tue, Jul 29, 2008 at 10:35 AM, Hans-Christoph Steiner <hans at eds.org> wrote:
> Can I suggest using the MoinMoin wiki syntax?  IMHO the python wikis
> all have weak syntax compared to MediaWiki, but MoinMoin is the
> closest to MediaWiki, which is a widely used and relatively easy to
> use syntax.  It is also what is used in most of the rest of the
> 'docs' section. To use MoinMoin, the page has to be a "wiki page".  A
> regular Plone "page" doesn't allow it for some reason.
Hey, I am getting:
Site error
This site encountered an error trying to fulfill your request. The errors were:

Error Type
Error Value
The id "outline" is reserved.
Request made at
2008/08/03 10:45:39.063 GMT+2

when I try to add a wiki page to the Style Guide folder.  Could you or
IOhannes try, maybe?


> Also, to make an index page for that folder, create a page called
> "FrontPage" or "index_html" IIRC.  I think that would be a good place
> to lay out all of the things that are relevant to the style guide,
> like a survey of programming elements.  Then people can make their
> own style pages for things that are a matter of opinion.  And
> hopefully at the end, we can come up with something unified.
> .hc
> On Jul 29, 2008, at 2:30 AM, Luke Iannini wrote:
>> Okay, here it is:
>> http://puredata.info/docs/style-guide
>> On Mon, Jul 28, 2008 at 1:39 PM, Hans-Christoph Steiner
>> <hans at eds.org> wrote:
>>> I think a style guide is a great idea.  There have been some
>>> discussions along these lines in the past.  I'd say just start a
>>> "wiki folder" on puredata.info in the /docs/ section and edit it up.
>>> Something like /docs/style-guide/ I think that the main page could
>>> lay out all of the possible realms of style, like dollar arguments,
>>> abstractions, subpatches, inlets/outlets, trigger, etc.  Then the
>>> next step people can create sub-pages that outline all of their
>>> styles.  Then ultimately, things would be organized into a single
>>> style-guide.
>>> .hc
>>> On Jul 27, 2008, at 9:34 PM, Luke Iannini wrote:
>>>> There are some amazing sets of abstractions being released recently,
>>>> which has served to highlight the many extant styles of patching.  I
>>>> was wondering if there was interest in establishing a set of
>>>> guidelines for patching in the vein of PEP 8 for Python; I've found
>>>> that document to be very relaxing as it is a standardized
>>>> approach to
>>>> OCD.  More seriously, it greatly helps when reading other people's
>>>> code or collaborating.
>>>> http://www.python.org/dev/peps/pep-0008/
>>>> The only one I have seen so far for Pd covers best practices for
>>>> layout.  I'd want to include that, but also codify naming,
>>>> arguments,
>>>> common idioms, and so on.
>>>> I've begun to collect some of my practices to start things off.
>>>> I was
>>>> hoping we could all lazy-vote the document together in this
>>>> thread and
>>>> I'll then compile it into a PdPedia/Pd.info document.  So, feel free
>>>> to object to or replace my propositions.
>>>> Style:
>>>> * If giving $0 as an argument to an abstraction, it is always
>>>> first in
>>>> the argument list [1]
>>>> * * When possible, pass parent arguments in numeric order, like
>>>> [child
>>>> $0 $1 $2 other1 other2] etc.
>>>> * Sends and Receives are written in camelCase, with "R" appended to
>>>> complementary receives (e.g. in GUIs, $0mySlider for the send and
>>>> $0mySliderR for the receive)
>>>> * When prepending $0 to a symbol, only add a "-" to separate it from
>>>> another number, like [r $0-1stSend].  Otherwise the symbol should
>>>> immediately follow, like [r $0mySend].
>>>> * When working with stereo, Left and Right pairs are written with Le
>>>> and Ri appended (to distinguish them from an R denoting "receive",
>>>> above)
>>>> Programming recommendations
>>>> * To invert a toggle, use [== 0]
>>>> * Use the loadbang of the parent of both abstractions to initialize
>>>> two or more interdependent abstractions
>>>> [1] I think of this like emulating the "self" convention in Python
>>>> And so on...
>>>> Cheers
>>>> Luke
>>>> _______________________________________________
>>>> Pd-list at iem.at mailing list
>>>> UNSUBSCRIBE and account-management -> http://lists.puredata.info/
>>>> listinfo/pd-list
>>> ---------------------------------------------------------------------
>>> ---
>>> ----
>>> Terrorism is not an enemy.  It cannot be defeated.  It's a tactic.
>>> It's about as sensible to say we declare war on night attacks and
>>> expect we're going to win that war.  We're not going to win the war
>>> on terrorism.        - retired U.S. Army general, William Odom
>>> _______________________________________________
>>> Pd-list at iem.at mailing list
>>> UNSUBSCRIBE and account-management -> http://lists.puredata.info/
>>> listinfo/pd-list
>> _______________________________________________
>> Pd-list at iem.at mailing list
>> UNSUBSCRIBE and account-management -> http://lists.puredata.info/
>> listinfo/pd-list
> ------------------------------------------------------------------------
> ----
> Looking at things from a more basic level, you can come up with a
> more direct solution... It may sound small in theory, but it in
> practice, it can change entire economies.     - Amy Smith
> _______________________________________________
> Pd-list at iem.at mailing list
> UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list

More information about the Pd-list mailing list