<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div>Hello,</div><div><br></div><div>I would not mix documentation and binaries as a single PDF package. You need documentation while discovering packages, developing agains it's API. At different stages, you need different documentation such package bio, API, operation manual etc. Git Page is an interesting concept to expose documentation and code within same repository... <br><br>Stand alone package is handy for production deployment but I'd like to have ability to inspect source code while developing.</div><div><br></div><div><br></div><div>Best Regards,<div>Dmitry</div><div>>-|-|-(*></div></div><div><br>On 18 Feb 2014, at 14:13, Joe Armstrong <<a href="mailto:erlang@gmail.com">erlang@gmail.com</a>> wrote:<br><br></div><blockquote type="cite"><div><div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Feb 18, 2014 at 9:45 AM, Dmitry Kolesnikov <span dir="ltr"><<a href="mailto:dmitry@shopadvisor.com" target="_blank">dmitry@shopadvisor.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div style="word-wrap:break-word">Hello,<div class=""><div>
<br></div><div><blockquote type="cite"><div dir="ltr">1) A decent standardized Manifest.</div></blockquote></div></div><div>The app file by itself is a good place to be manifest. </div><div>the env section might be expanded with following keys:</div>
<div><font face="monospace" size="3"> * url      </font></div><div><font face="monospace" size="3"> * signature</font></div><div><font face="monospace" size="3"> * ...  </font></div><div class=""><div><br></div><div><blockquote type="cite">
<div dir="ltr">2) Packages should NOT be unpacked on the destination machine.</div></blockquote></div><div><br></div></div><div>What is wrong with erlang archive files?</div></div></blockquote><div><br></div><div>I already said this, 27 lines after the point 2) heading.</div>
<div><br></div><div>I'll repeat this: </div><div><br></div><div>            Q: Why should the top level package be a PDF file?</div><blockquote type="cite" style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:12.800000190734863px">
<div dir="ltr"><div>A: Because the *first* thing I want to do is read the documentation.</div><div>   I won't even look at a program that has no documentation - it's a waste of time.</div></div></blockquote><div><div dir="ltr">
<div><br></div><div><br></div><div><br></div><div>/Joe</div><div><br></div></div></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div style="word-wrap:break-word"><span class=""><font color="#888888"><div><br></div><div><br></div><div>- Dmitry</div></font></span><div><div class="h5"><div><br><div><div>On 18 Feb 2014, at 10:34, Joe Armstrong <<a href="mailto:erlang@gmail.com" target="_blank">erlang@gmail.com</a>> wrote:</div>
<br><blockquote type="cite"><div dir="ltr">Thank you Gordon,The absence of a decent package manager as disturbed me for a long time.<div><br></div><div>I'd like to add a few thoughts I have on the matter.</div><div><br>
</div><div>Excuse the rant - I feel rather strongly about this. This is written great haste.</div>
<div>I have to give a lecture in 20 minutes.</div><div><br></div><div>Here are some things I'd like to see:</div><div><br></div><div>1) A decent standardized Manifest.</div><div><br></div><div>A manifest is just a list of files and a short description.  It also</div>

<div>has copyright and licensing information, and possible authentication</div><div>checksums and proof signatures.</div><div><br></div><div>Nothing fancy - but it needs a standard.</div><div><br></div><div>I don't feel strong about the format or the content. but it MUST have</div>

<div>a version number :-)</div><div><br></div><div><rant_mode_on banging_keyboard="true"></div><div><br></div><div>2) Packages should NOT be unpacked on the destination machine.</div><div><br></div><div>Unpacking a package BREAKS an abstraction boundary. I feel VERY</div>

<div>STRONGLY about this.  I hate unpacking things and finding that they</div><div>scatter thousands of files all over my disk.</div><div><br></div><div>Here's a radical proposal. The top level package should be a PDF file.</div>

<div><br></div><div>In 2001 ago I wrote this</div><div><br></div><div><a href="http://www.sics.se/~joe/erlpdf.pdf" target="_blank">http://www.sics.se/~joe/erlpdf.pdf</a> - Read it, download it, try it, think about it.</div>
<div><br></div>
<div>This a simple program that packs a file inside a PDF container. It still works.</div><div>It seems like the one line description on my sics web page did not cause a stir of</div><div>interest in the program (which I thought was a fun idea) so I'll now publicize the idea a bit more.</div>

<div><br></div><div><aside></div><div><br></div><div>  I guess one line of publicity in 2001 on my web site did not cause the world to beat</div><div>   a path to my door. So not after 13 years I'll post a reminder</div>

<div><br></div><div>  (was that right Garrett? - banging the old publicity drum hard now :-)</div><div><br></div><div>   Note: it would be *easy* to change the code loader to LOAD CODE FROM THE PDF FILE.</div><div></aside></div>

<div><br></div><div><br></div><div>Q: Why should the top level package be a PDF file?</div><div>A: Because the *first* thing I want to do is read the documentation.</div><div>   I won't even look at a program that has no documentation - it's a waste of time.</div>

<div><br></div><div>Q: Why should the top level package not be unpacked?</div><div>A: Because it breaks an abstraction boundary, make it difficult to delete things etc.</div><div><br></div><div>I don't have to unpack a jar file to execute the program in it. I</div>

<div>don't have to unpack a .exe file to execute it so WHY IN THE NAME OF</div><div>THE GREAT SLIMY THING THAT LIVES UNDER STONES should I have to unpack</div><div>an Erlang package to execute the code in it?</div><div>

<br></div><div>When I want to use say (cowboy) I just want to execute the code - I</div><div>don't want to see all the details of what going on inside the program -</div><div>I don't want to know that it is made of loads of modules - I want to</div>

<div>hide the details - this is called ABSTRACTION.</div><div><br></div><div>They tell me that they teach OO programming these days - I thought the idea of an object</div><div>was to HIDE THE DETAILS OF THE OBJECT INSIDE THE OBJECT - so why do</div>

<div>people who have been brought up on OO programming insist on writing</div><div>programs that scatter files all over my disk? Hide your mess in a</div><div>single container. Pleeeeeese.</div><div><br></div><div>Q: How do I install a program?</div>

<div>A: Put the PDF in the directory ${HOME}/.erlang_programs/</div><div><br></div><div>Q: How do I delete the program?</div><div>A: Remove a single file from ${HOME}/.erlang_programs/</div><div><br></div><div>Q: How do I develop the program?</div>

<div>A: Unpack the PDF file *somewhere else*</div><div><br></div><div><br></div><div>3) How should we distribute programs?</div><div><br></div><div>Why not just use Bit Torrent? - we can self-seed our code, and seed</div>

<div>code we approve of That way popular code will be multiply seeded and</div><div>unpopular code with wither and die.</div><div><br></div><div>We could use Jespers Bit torrent client and adapt it a bit so it knows</div>

<div>about Erlang packages.</div><div><br></div><div>To do this we need</div><div><br></div><div>    a) Trackers (easy)</div><div>    b) an Index (needs a publishing protocol)</div><div>    c) clients</div><div><br></div>

<div>Erlang solutions etc. can trackers.</div><div><br></div><div>The code can be ANYWHERE YOU FEEL LIKE and not on github.</div><div><br></div><div>Putting stuff on github is for collaboration purposes, not for distributing code.</div>

<div>Use BitTorrent for this.</div><div><br></div><div></rant_mode_off></div><div><br></div><div>Cheers</div><div><br></div><div>/Joe</div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">

On Mon, Feb 17, 2014 at 11:33 PM, Gordon Guthrie <span dir="ltr"><<a href="mailto:gordon@vixo.com" target="_blank">gordon@vixo.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

<div dir="ltr">This is what I sent to Francesco<div><br></div><div>****************************************************************************************</div><div><br></div><div><p style="margin-bottom:0cm"><font face="Verdana, sans-serif"><font size="5"><b>Building
The Erlang Community</b></font></font></p><p style="margin-bottom:0cm"><b style="font-size:large;font-family:Verdana,sans-serif">Background</b></p><p style="margin-bottom:0cm"><font face="Georgia, serif">Erlang
has long lacked a solid community core to act as a place where users
can discover existing modules and include them in their projects.</font></p><p style="margin-bottom:0cm"><font face="Courier New, monospace"><b>rebar
</b></font><font face="Georgia, serif">now provides the standard
mechanism to include external dependencies - this proposal is about
making erldocs the standard place to discover community
contributions.</font></p><p style="margin-bottom:0cm"><font face="Verdana, sans-serif"><font size="4"><b>Proposal
1</b></font></font></p><p style="margin-bottom:0cm"><font face="Georgia, serif">The
proposal is that people who publish open source Erlang modules on
GitHub be able to have them listed on erldocs.</font></p><p style="margin-bottom:0cm"><font face="Georgia, serif">The
process would be two part:</font></p>
<ul>
        <li><p style="margin-bottom:0cm"><font face="Georgia, serif">commit
        a page called </font><font face="Courier New, monospace"><b>ERLDOCS.terms</b></font><font face="Georgia, serif">
        to github in the root next to </font><font face="Courier New, monospace"><b>README.md</b></font></p>
        </li><li><p style="margin-bottom:0cm"><font face="Georgia, serif">submit
        the URL to a page on erldocs</font></p>
        </li><li><p style="margin-bottom:0cm"><font face="Georgia, serif">erldocs
        would sook the github page into a community section</font></p>
</li></ul><p style="margin-bottom:0cm"><br>
</p><p style="margin-bottom:0cm"><font face="Georgia, serif">The
structure of the </font><font face="Courier New, monospace"><b>ERLDOCS.terms</b></font><font face="Georgia, serif">
file is simple tagged tuples, something like:</font></p><p style="margin-bottom:0cm"><font face="Courier New, monospace"><b>{name,
"Starling"}.</b></font></p><p style="margin-bottom:0cm"><font face="Courier New, monospace"><b>{license,
"EPL"}.</b></font></p><p style="margin-bottom:0cm"><font face="Courier New, monospace"><b>{description,
"Unicode support for Erlang"}.</b></font></p><p style="margin-bottom:0cm"><font face="Courier New, monospace"><b>{details,
"A C-Port wrapped around the ICU library for unicode"}.</b></font></p><p style="margin-bottom:0cm"><font face="Courier New, monospace"><b>{status,
"production"}. % alpha | beta | production</b></font></p><p style="margin-bottom:0cm"><font face="Courier New, monospace"><b>{rebar,
{version, "1"}, {starling, {git,
"git://</b></font><font color="#000080"><span lang="zxx"><u><a href="http://github.com/hypernumbers/starling.git" target="_blank"><font face="Courier New, monospace"><b>github.com/hypernumbers/starling.git</b></font></a></u></span></font><font face="Courier New, monospace"><b>","master"}}}.</b></font></p>
<p style="margin-bottom:0cm"><font face="Verdana, sans-serif"><font size="4"><b>Proposal
2</b></font></font></p><p style="margin-bottom:0cm"><font face="Georgia, serif">Dale
Harvey originally intended that erldocs should include the ability
for members of the community to annotate the official documents with
examples, links to tutorials etc, etc.</font></p><p style="margin-bottom:0cm"><font face="Georgia, serif">erldocs
be so extended (by use of Disqus or other standard commenting
systems)</font></p><p style="margin-bottom:0cm"><font face="Verdana, sans-serif"><font size="4"><b>Requirements
For Success</b></font></font></p><p style="margin-bottom:0cm"><font face="Georgia, serif">Erldocs
'failed' last time out because the OTP team changed the way documents
were generated, and Dale Harvey moved on from an Erlang shop to
Mozilla.</font></p><p style="margin-bottom:0cm"><font face="Georgia, serif">In
order for this to work Erlang Solutions has to commit to:</font></p>
<ul>
        <li><p style="margin-bottom:0cm"><font face="Georgia, serif">erldocs
        being the official community repository for Erlang documentation -
        linked to directly from </font><font color="#000080"><span lang="zxx"><u><a href="http://erlang.org/" target="_blank"><font face="Georgia, serif">erlang.org</font></a></u></span></font></p>
        </li><li><p style="margin-bottom:0cm"><font face="Georgia, serif">production
        of these documents needs to be integrated into the OTP Team's
        release schedule</font></p></li></ul><p style="margin-bottom:0cm"><font face="Verdana, sans-serif"><font size="4"><b>Modalities</b></font></font></p><p style="margin-bottom:0cm"><font face="Georgia, serif">If
Erlang Solutions so agree the next stage would be to approach a
number of suppliers of top-notch Erlang open source and sign them up
for launch. My working list would be:</font></p>
<ul>
        <li><p style="margin-bottom:0cm"><font face="Georgia, serif">Erlang
        Solutions</font></p>
        </li><li><p style="margin-bottom:0cm"><font face="Georgia, serif">Basho</font></p>
        </li><li><p style="margin-bottom:0cm"><font face="Georgia, serif">Erlware</font></p>
        </li><li><p style="margin-bottom:0cm"><font face="Georgia, serif">Mats
        Cronquist</font></p>
        </li><li><p style="margin-bottom:0cm"><font face="Georgia, serif">Richard
        Carlsson</font></p>
        </li><li><p style="margin-bottom:0cm"><font face="Georgia, serif">Yaws</font></p>
        </li><li><p style="margin-bottom:0cm"><font face="Georgia, serif">Mochiweb</font></p>
        </li><li><p style="margin-bottom:0cm"><font face="Georgia, serif">Nitrogen</font></p>
        </li><li><p style="margin-bottom:0cm"><font face="Georgia, serif">Cowboy</font></p>
        </li><li><p style="margin-bottom:0cm"><font face="Georgia, serif">Web
        Machine</font></p>
        </li><li><p style="margin-bottom:0cm"><font face="Georgia, serif">Hypernumbers</font></p>
</li></ul><p style="margin-bottom:0cm"><br>
</p><p style="margin-bottom:0cm"><font face="Georgia, serif">There
would need to be consultation with the launch group regarding the
structure and elements of the term file.</font></p><p style="margin-bottom:0cm"><font face="Georgia, serif">Once
they were onboard and the production cycle had been tested - an open
launch on the mailing list.</font></p></div><div><br></div><div>****************************************************************************************</div><div><br></div><div>The key point is that a community is only a real community if you choose to join it. I was 'joined' to the Agner community (and there have been other attempts, Erlware, CEAN, etc) but they don't stick.</div>


<div><br></div><div>Gordon</div></div><div class="gmail_extra"><div><br><br><div class="gmail_quote">On 17 February 2014 22:28, Mark Allen <span dir="ltr"><<a href="mailto:mallen@alertlogic.com" target="_blank">mallen@alertlogic.com</a>></span> wrote:<br>


<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div>On 2/17/14 4:21 PM, "Garrett Smith" <<a href="mailto:g@rre.tt" target="_blank">g@rre.tt</a>> wrote:<br>


>> On 2/17/14 1:51 PM, "Vixo" <<a href="mailto:gordon@hypernumbers.com" target="_blank">gordon@hypernumbers.com</a>> wrote:<br>
>>>My suggestion would be a manifest file of Erlang terms at the root level<br>
>>>of a GitHub page (they will *all* be on GitHub) that can be polled and<br>
>>>turned into a static site. The logical thing to do would be combine thus<br>
>>>with the revived erldocs site IMHO (as I have said to Francesco)<br>
<br>
</div><div>>Does this require that all of github be crawled?<br>
<br>
</div>No. I'm pretty sure we can segment the crawl to only projects with some X<br>
threshold of Erlang. (I'll have a slice without so much rat in it. [0])<br>
<div><br>
>Would a github based index make sense? Complete with a liberal pull<br>
>request policy?<br>
<br>
</div>Most likely, yes, using github pages with a nice custom domain would be a<br>
Good Thing for this type of project.  The code to do the crawl and build<br>
the index should be open source too, imo.<br>
<br>
Mark<br>
<br>
[0]:<br>
<a href="http://en.wikiquote.org/wiki/Monty_Python's_Flying_Circus#The_Money_Program" target="_blank">http://en.wikiquote.org/wiki/Monty_Python's_Flying_Circus#The_Money_Program</a><br>
me_.5B3.03.5D<br>
<br>
</blockquote></div><br><br clear="all"><div><br></div></div><span><font color="#888888">-- <br>---<br>Gordon Guthrie<br>CEO <a href="http://vixo.com/" target="_blank">vixo.com</a><br>@gordonguthrie<br><a href="tel:%2B44%20%280%29%207776%20251669" value="+447776251669" target="_blank">+44 (0) 7776 251669</a> (in Bonnie Scotland!)<br>

<br>vixo is made in Scotland from electrons
</font></span></div>
<br>_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
<br></blockquote></div><br></div>
_______________________________________________<br>erlang-questions mailing list<br><a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a><br><a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
</blockquote></div><br></div></div></div></div></blockquote></div><br></div></div>
</div></blockquote><blockquote type="cite"><div><span>_______________________________________________</span><br><span>erlang-questions mailing list</span><br><span><a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a></span><br><span><a href="http://erlang.org/mailman/listinfo/erlang-questions">http://erlang.org/mailman/listinfo/erlang-questions</a></span><br></div></blockquote></body></html>