<br><br><div class="gmail_quote">On Tue, May 24, 2011 at 8:36 PM, Tim Watson <span dir="ltr"><<a href="mailto:watson.timothy@gmail.com">watson.timothy@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
I'd like to propose a "step in the right direction", which won't go<br>
the whole hog in terms of what Joe is proposing, but would certainly<br>
move us in (what IMHO is) a good direction and potentially towards<br>
Joe's vision if he wants to go that far. I know it isn't the whole<br>
hog, but maybe it's a useful increment towards where we'd like to be.<br></blockquote><div><br> Why don't we start by building a search engine for finding Erlang<br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

"stuff" such as OTP applications/libraries, modules and functions.<br>
<br></blockquote><div><br>YES - I've made a start on this - the first program is<br>a segmenter that attempts to destruct a module.<br><br>I've just bough a synology DS411 slim with 3TB of RAID 5 storage<br>so am (finally) writing a backup program, this has first priority<br>
in the hobby dept. Then I have to attack my legacy collection of 40K<br>erlang modules :-) <br><br>Unfortunately information about individual functions is<br>scattered all over the place. I want the source, the type signature,<br>
the documentation. These are available in a variety of different<br>formats in different places. Documentation is in untagged comments<br>in @tagged edoc format or in XML in a completely different file.<br><br>I'd like this in one place with defined abstract types for everything<br>
<br>Volunteers ....<br><br>Silly design question: if multiple people can edit (say) a wiki<br>of functions what formatting standards should be enforced?<br><br>   - the last person who edited the text<br>   - some "moderator" (who)<br>
   - by a pretty printer<br>    (is there a *really good* pp? - with color syntax marking)<br><br> </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

I would propose that we allow users to search for things by<br>
<br>
- kind (e.g., process/gen_thing, modules, functions, whole applications)<br>
- category (set of arbitrary tags?)<br>
- type signature (i.e., spec)<br>
<br>
I'm guessing this will require patching the compiler to preserve the<br>
type specs in the beam code. That is something I would need help with,<br>
but may be trivial for others.<br></blockquote><div><br>Easy - it is there already (I think) poke around in beam_lib.erl<br>this analyses the .beam files.<br> </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

<br>
The other things I think you might want are (in no particular order):<br>
<br>
1. binary (code) artefact repository (presumably with a REST/web interface?)<br>
2. an means of uploading artefacts (tarballs? .ez archives?) to the repository<br>
3. library code for introspecting module metadata (e.g., pulling type<br>
specs from beam code)<br>
4. some means of annotating packages/modules/functions with metadata<br>
outside of the beam code<br>
5. search (indexing, etc) capabilities<br>
6. a way to obtain the *things* that you've identified as being useful to you<br>
<br>
Not everything will need to be built from scratch. Binary (code)<br>
artefact repositories already exist (to some extent) in the form of<br>
CEAN (which has version 2.0 coming out soon IIRC) and the Erlware<br>
repository. Those tools may not be immediately fit for re-use as they<br>
come with baggage, but they may be a good base upon which to build<br>
something for starters.<br>
<br>
Other things/ideas might be:<br>
<br>
- Integration with build tools (such as rebar) would be useful.<br>
- Integration with existing search/package-mgmt tools such as agner<br>
<br>
You could easily write a plugin that uses epm/agner/sutro to search<br>
github for something that isn't in the repo, pulls it, builds it and<br>
adds it. So many possibilities.<br>
<br>
I do have other projects on the go, and a job, a family and even a<br>
social life! Nonetheless, I would be happy to contribute to an<br>
initiative such as this (or something similarly incremental).<br>
<div><div></div><div class="h5"><br></div></div></blockquote><div> </div><div>Great <br></div><div><br>I'll be back ...<br><br>/Joe<br><br> </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div><div class="h5">
On 24 May 2011 19:16, Joe Armstrong <<a href="mailto:erlang@gmail.com">erlang@gmail.com</a>> wrote:<br>
><br>
><br>
> On Tue, May 24, 2011 at 6:54 PM, Tom Murphy <<a href="mailto:amindfv@gmail.com">amindfv@gmail.com</a>> wrote:<br>
>><br>
>> On 5/24/11, Parnell Springmeyer <<a href="mailto:ixmatus@gmail.com">ixmatus@gmail.com</a>> wrote:<br>
>> > In practice though, I would really hate maintaining the metadata for<br>
>> > every function I've wrote! I much rather group common functions into a<br>
>> > module and then annotate the module with metadata.<br>
>><br>
>> Ideally, it wouldn't just be just you maintaining the metadata - if<br>
>> the functions were in the centralized DB, others could suggest or make<br>
>> changes, wikipedia-style.<br>
><br>
> This did occur to me - the wikipedia allows large numbers of people<br>
> to make small contributions. Think of what I want as a wiki where each<br>
> entry is a single erlang function.<br>
><br>
><br>
><br>
>><br>
>> Tom<br>
>> _______________________________________________<br>
>> erlang-questions mailing list<br>
>> <a href="mailto:erlang-questions@erlang.org">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>
><br>
> _______________________________________________<br>
> erlang-questions mailing list<br>
> <a href="mailto:erlang-questions@erlang.org">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>
><br>
</div></div></blockquote></div><br>