[erlang-questions] Erlang as a tool for human communication -- was GUI development

Thu Dec 28 20:03:19 CET 2017

Hi Joe,

I think I have the layout issue worked out. Need to clean up code before I can share, but will do.

I'll send you my PDF think-piece off list. And, if you wish, code as it develops. Love to get your critique and advice.

In general, I'm thinking of the problem from the point of view of the content creator and graphic designer. And I fully support your goal of one creator entering content one time for dissemination across multiple media in multiple formats.

With regard to layout, I'm experimenting with data structures for optimal accessibility and performance, but the idea is:

project    -> meta data, [documents]
document  -> meta data, [pages]
page      -> documentID, page number, page grid
page-grid -> ID, name, [panels]
panel     -> page number, name, [boxes] ;
box       -> map of placement, size, border, background color, etc.

layout    -> [panels]

Four data structures get passed into a paste-up component which generates final output:


I'm thinking separate tools for managing copy, styling, layout, and paste-up so that each can be optimize without disrupting the rest of the system and re-purposed for other media.

For now I'm experimenting with embedded functions for input. But browser-based WYSIWYG tools would be nice. Erlang Nitrogen suggests a way to keep browser-based tools in the Erlang domain.

Copy could be MarkDown (looks fine for my uses) or XML 
   Patrice Bruno has suggested cmark, an open source MarkDown interpreter for
   conversion of MarkDown to XML 

Styling deals with font specifications, CSS, or some such. Patrice Bruno has also been working on extending fonts to OTF and TTF; has a prototype solution.

Format deals with the conventional options for content composition, e.g. letter, report, book, etc. We could learn from LaTex here.

Layout involves placing copy on pages in panels. Think articles in a magazine or chapters in a book. 

I have a crude set of rules for dealing with column/page jumps. These would be executed in the paste-up phase. This required factoring your copyfitting routines.

My personal interest is in production of books, ebooks, and marketing collateral But I do think that this project could be a way forward toward improved Erlang documentation and tutorials.

At a more visionary level, I'm imagining a suite of well-crafted libraries and applications that are complementary to OTP. We might call them Erlang OMP for Open Media Platform. 

Joe, thanks again for the hard work you've done in implementing the font handling and copy fitting functions in erlguten. They make everything else possible.

All the best,


-----Original Message-----
From: "Joe Armstrong" <erlang@REDACTED>
Sent: Thursday, December 28, 2017 1:19pm
To: "Lloyd R. Prentice" <lloyd@REDACTED>
Cc: talmage@REDACTED, "Erlang" <erlang-questions@REDACTED>
Subject: Re: [erlang-questions] Erlang as a tool for human communication -- was GUI development

On Thu, Dec 28, 2017 at 6:11 PM,  <lloyd@REDACTED> wrote:
> Hi David,
> ARC is an excellent example of the kind of human-facing application I've been striving toward.
> Content creators provide input; output is disseminated in many formats and through many media channels.
> But I'm imagining a Tinker Toy-like suite of Erlang libraries and applications that can be mixed and matched to build any number of purpose-built human-facing applications.
> And, I believe we have much in Erlang to work with toward that goal.
> I've been factoring, revising, and extending erlguten, for instance, into four components:
> 1. Copy input and management
> 2. Type specification
> 3. Page design and layout
> 4. Paste-up
> Each of these areas could have print and digital analogs. With careful thought to interfaces, they could abstracted into templates in the spirit of OTP.

Sounds great - Do you have any ideas on layout?

Layout seems to be badly addressed in LaTeX and HTML.

The idea of grid layout is central to typography. LaTeX happly breaks
grid layout
and just says 'overfill box' etc. HTML reflows the text if you change
the page size.

What I'd like is to flow a simple marked up text (a la markdown) into
a grid box.
This should fail if the text does not fit the grid or overflow the grid.

What should the output be? - I guess postscript or PDF, now about SVG?
this would be good for layout etc. but font support seems a bit problematic.

It's an interesting problem.


> All the best,
> Lloyd
> -----Original Message-----
> From: "David Talmage" <talmage@REDACTED>
> Sent: Thursday, December 28, 2017 10:48am
> To: erlang-questions@REDACTED
> Cc: "Joe Armstrong" <erlang@REDACTED>, "Lloyd R. Prentice" <lloyd@REDACTED>
> Subject: Re: [erlang-questions] Erlang as a tool for human communication -- was GUI development
> On Friday, December 22, 2017 7:33:30 AM EST Joe Armstrong wrote:
>> ...
>> The model of documentation I would like to see is:
>>    - One author many eyes
>> ...
>>    - Beautiful output
>> ...
>>   - Easy to organise the input
>> ...
>>   - Low barrier for entry to comments
>> ...
>>   - Parseable document tree
>> ...
>>  - Extensible
>> ...
>> The stages involved were
>>     - authoring
>>     - editing (this was chapter by chapter with an editor providing
>> feedback) - beta release (publish a PDF - this is the many eyes bit)
>>     - final chapters and more editing
>>     - proof reading
>>     - final edit
>>     - indexing
>>     - layout
>> ...
>> I'd actually love to know how a newspaper solves this - a decent newspaper
>> turns out tens of thousands of words per day - news articles are
>> written, proof read and edited in hours - commissioned articles are
>> integrated with the news and there must be hundreds to thousands of
>> contributing sources.
>> ...
> The Washington Post uses ARC (https://www.arcpublishing.com/), a home-grown,
> web-based publishing system.  It has an article editor (Ellipsis); CMSes for
> photos (Anglerfish) and video (Goldfish); a page layout editor (PageBuilder);
> and tools for analytics, personalization, user experience testing, and a lot
> more. They all work together seamlessly.
> Virtually everything in ARC has a web front end in HTML, Javascript, and CSS.
> The back ends are written in Java or another language that runs on the JVM.
> WaPo uses ARC and it sells ARC as a service to other newspapers.  As I recall,
> The Globe and Mail in Toronto and Willamette Week are customers.  Some other
> customers are named in an article on businessinsider.com: http://
> www.businessinsider.com/the-washington-post-is-growing-its-arc-publishing-
> business-2016-6

More information about the erlang-questions mailing list