Submission Guidelines

PUBcrawl Submissions


All submissions and questions should be directed to andrew-johnson@home.com

Articles should be written using the noweb literate programming syntax, a brief explanation of which can be found right here.

The easiest way to get a feel for things is to download a typeset version of the newsletter along with the literate sources for that issue.

Your article will be plain text with the appropriate markup syntax to begin and end code and documentation chunks (as specified in the above link). The article will be passed through noweave's LaTeX backend and then typeset using LaTeX. Documentation chunks are passed through as is, leaving you free to use LaTeX markup within your documentation.

If you know LaTeX, all I ask is that you do not use any extra macro packages in your article. If you need a certain capability not offered by vanilla LaTeX, discuss it with me and we can make sure we have compatible macro packages (and that they don't conflict with the noweb package's .sty).

If you don't know LaTeX don't worry, you don't need to. You can just write your documentation paragraphs in plain text and indicate any special formatting concerns in ALL CAPS in parentheses (so I can easily find them). Alternatively, you may use HTML tags to indicate formatting and I'll try to substitute the appropriate LaTeX markup (but I retain discretionary power to change things to conform to a consistent style among articles).

You may include graphics, either using LaTeX' picture environment, or as encapsulated postscript (.eps). In the latter case, you send the figure as a separate file and put the following (with appropriate changes) in your article document where you want the figure to appear:

\begin{figure}
\epsfbox{filename.eps}
\caption{Blah blah blah.}
\end{figure}

Here are a few basic guidelines for structuring your article:

  • Please try to keep lines of source code to a maximum length of 54 characters (otherwise the two column format will be broken). In most cases, long lines can be reasonably broken across two lines without hurting readability (this is Perl remember).
  • Try to keep code chunks to a reasonable length---if your code chunk is more than a handful of lines (say about 12 lines), please consider breaking it into two or more chunks. This helps with overall formatting and code chunks are presented in easy to swallow capsules.
  • Try to begin with a reasonable top-level design in the root chunk. The root chunk (aside from some possible initialization code) should mostly read like a table of contents of the major components of the program. Lower level chunks may do the same if they are still too long or complex to present in a handful of lines.
  • In code: Do not start and/or end blocks in different chunks! Think about it and it should be obvious why not---it breaks up the logical structure of the code. For example, this is a bad example:
    
    <<chunk>>=
    <<somechunk>>
    <<nutherchunk>>
    @
    
    <<somechunk>>=
    for my $blah (@blahs){
        blah blah;
        blah blah;
    @
    
    <<nutherchunk>>=
        blah blah;
        blah blah;
    }
    @
    
    
    Far better to use two chunks (if necessary) within a block:
    
    <<chunk>>=
    for my $blah (@blahs){
        <<somechunk>>
        <<nutherchunk>>
    }
    @
    
    <<somechunk>>=
    blah blah;
    blah blah;
    @
    
    <<nutherchunk>>=
    blah blah;
    blah blah;
    @
    
    
  • Don't be afraid to talk (or write as it were). Obviously we don't need a paragraph of text that merely gives an English version of the code chunk that follows, but we do need explanations of algorithms, why you made certain design decisions, why such and such is a workaround or dirty hack (I'd really like to do X here, but we can't do that directly here so I'm using Y and Z to achieve X...).


Home | Hacks & Code | Mailing List
How to Join | Meeting Information | Links | Members