<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>