<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><blockquote type="cite" class=""><div class="">On Sep 30, 2017, at 7:34 , Tobias Pape <<a href="mailto:Das.Linux@gmx.de" class="">Das.Linux@gmx.de</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><br class="">No, thats Marcel Weiher. He did a quite a lot Squeak/Postscript Stuff.<br class="">I CC'ed him.<br class=""><br class="">Marcel, can you comment on the Encoder Hierarchie?<br class="">(Full thread here)<br class=""></div></blockquote><div class=""><br class=""></div><div class="">Hi Tobias et al,</div><div class=""><br class=""></div><div class="">thanks for tagging me.  :-)</div><div class=""><br class=""></div><div class="">The “Encoder” classes are a Squeak version of an “object oriented pipes and filters” system I implemented in Objective-C in the late 90s:  <a href="https://github.com/mpw/MPWFoundation/tree/master/Streams.subproj" class="">https://github.com/mpw/MPWFoundation/tree/master/Streams.subproj</a></div><div class=""><br class=""></div><div class="">Why?  Well, because the Postscript generation code was based on my Objective-C Postscript processing code (<a href="http://www.metaobject.com/Technology/#EGOS" class="">http://www.metaobject.com/Technology/#EGOS</a>), which is heavily based on these filters.</div><div class=""><br class=""></div><div class="">I have found the filters to be incredibly useful over the last 20 years, partly because they compose so well:  just like Unix pipes and filters, they are symmetric so that their input protocol ( #writeObject: ) is the same as their output protocol ( #writeObject:).  The filterSelector is there to allow filter-specific processing using double dispatch, but once the processing is done the result is once again normalized to a #writeObject:  You can therefore combine these filters any way you want.  </div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""></div></body></html>