[erlang-questions] How to return all records in dets

Garrett Smith g@REDACTED
Sun Jun 1 20:00:01 CEST 2014


Given the effort of installing a commenting facility, not to mention
the gamble that anyone will find this useful, why not submit a pull
request for the applicable doc page?

I haven't done this, so maybe installing a commenting facility *is* easier.

But it seems like one could write a sentence or two to clarify how a
module might be used. And add an example or two on how a function
might be used. This strike me as being a pretty direct solution to the
problem you're raising.

Ease of making these changes and then getting them integrated is of
course the big question. If it's a substantial barrier, lowering that
friction is something probably worth investing in.

As to moderation, if the docs were under a separate commit policy
(separate repo?) members of the community could pitch in directly,
saving the OTP time some hassle.

On Sun, Jun 1, 2014 at 12:18 PM,  <lloyd@REDACTED> wrote:
> Hi Loïc,
>
> Seems to me that there are four issues here:
>
> - Who are the Erlang docs (man pages and/other authoritative guides) intended to serve?
>
> As a not-so-noobie-but-still-vastly-ignorant Erlang aspirant, I can say that current man pages, while helpful to a degree, leave much to be desired.
>
> - How can Erlang docs provide greater clarity to intended audiences?
>
> From my point-of-view they could provide more examples, say three or four across a range of simplest possible application of the function to a golly-gee-wiz-this-function-can-do-this example
>
> Don't forget to note why and where this module/function is useful.
>
> Great gains would be come, in my view, by backing up man pages with authoritative noobie-friendly tutorials. By authoritative I mean dated, 100% functional, expressing best practices
>
> Loïc, ask me, you have been doing a great job in this regard with Cowboy.
>
> - From a technical point-of-view, how can Erlang docs be maintained most conveniently
>
> I can't speak to this other than harness the power of the language. I do think there needs to be three tracks: a template or policy statement for consistent, quality docs, man pages, and tutorials
>
> - From a community point of view, who does all this?
>
> This is the 64-dollar-question that every volunteer organization faces.
>
> Part of the problem of mobilizing a volunteer community is cultivating community spirit. That comes down to determining how everyone stands to gain by participating. I think we all know this. But it may require frequent reminders.
>
> It's also very important to serve the noobies well. I saw the vibrant forth community die out, in part, because it failed in this.
>
> I see Erlang as a humongous toolkit that includes a vast range including use-everyday tools to use-once-in-a-career exotic. So a good place to start is setting priorities and putting out calls of what needs to be done next. Keep the focus small and keep the pressure on. I have no doubt that the committed brilliant folks in the community will respond if they have a clear sense of direction. Who sets the direction? Whoever will step up.
>
> My two cents for what it's worth.
>
> Thanks to all,
>
> Lloyd
>
> -----Original Message-----
> From: "Loïc Hoguin" <essen@REDACTED>
> Sent: Sunday, June 1, 2014 10:04am
> To: "Mark Nijhof" <mark.nijhof@REDACTED>, "Joe Armstrong" <erlang@REDACTED>
> Cc: "Erlang Users' List" <erlang-questions@REDACTED>
> Subject: Re: [erlang-questions] How to return all records in dets
>
> I'm all for comments, but I don't see how it would be at all usable
> using disqus. Take this page for example:
> http://www.erlang.org/doc/man/erlang.html
>
> Where do you put the comments? They're going to be unnoticed, and
> they're going to cover a wealth of different topics so much that they'll
> become entirely useless.
>
> Make one comment zone per function? Disqus is already painfully slow to
> load when there's one, so imagine 50 or 100.
>
> Joe's solution is nice and tidy on the other hand. But there's one
> problem though, who's going to moderate?
>
> There's no real quick way to that kind of stuff. At least not with this
> amount of content.
>
> On 06/01/2014 11:38 AM, Mark Nijhof wrote:
>> Just a thought on commenting, but adding a disqus comment section to
>> each page might be a real quick way to enable that. Just add it to the
>> templates you use for generating the html. Later it should also be
>> rather easy to migrate them somewhere else if needed.
>>
>> -Mark
>>
>> On Jun 1, 2014 11:09 AM, "Joe Armstrong" <erlang@REDACTED
>> <mailto:erlang@REDACTED>> wrote:
>>
>>
>>
>>
>>     On Sat, May 31, 2014 at 8:44 PM, <lloyd@REDACTED
>>     <mailto:lloyd@REDACTED>> wrote:
>>
>>         Hi Joe,
>>
>>         I've resorted to approach 0 many times and much appreciate the
>>         generous help I've received from the community. Indeed, response
>>         from the author of my Erlang bible is particularly awesome. I
>>         hope one day to be competent enough to play it forward.
>>
>>         I also spend a great deal of time in the Erlang man pages.
>>         Problem is that I'm one of those soft-headed liberal arts types.
>>         So, I often find the man pages near incomprehensible (and not
>>         only Erlang). Yes, I perhaps should have taken more math classes
>>         to grasp the elegant concision. But my mind doesn't seem to be
>>         wired that way.
>>
>>         I can't tell you how many times I've looked at the foldl/n docs
>>         and tried to understand what the hell is going on. I get the
>>         general drift, but can't bring it down to useful code. There's
>>         just too much inside-baseball.
>>
>>         As a self-taught-from-books-and-web Erlang aspirant, I find
>>         concrete examples and well-written tutorials most helpful. This
>>         gives me leverage to apply your approach 3. In general, the
>>         concepts of Erlang are simple enough once I grasp them. In fact,
>>         I marvel at the pragmatic elegance. Your books provide
>>         particularly lucid explications. But the man pages? My how I
>>         wish I had the time and chops to write a parallel set for noobies.
>>
>>         Indeed, would it be helpful if I walked through and commented on
>>         the man doc items that give me headaches?
>>
>>
>>     Absolutely - There is a problem here - which I think should be
>>     addressed as soon as
>>     possible - "It is not easy to common and ask question about man pages" -
>>     I'd really like to see commenting in the style of the real world
>>     Haskell book.
>>
>>     If you're interested take a look at
>>     http://book.realworldhaskell.org/read/types-and-functions.html - in
>>     particular look at how comments are added to the text.
>>
>>     The erlang man pages are generated from XML so a commenting system
>>     should be
>>     easy to make.
>>
>>     I'd like to see questions about the man pages discussed "inside the
>>     man pages"
>>     if you see what I mean - not "outside the man pages" (ie here)
>>     ...
>>
>>     Folds are very common there are the "iterators with an accumulator"
>>
>>     In an imperative language you might say
>>          state = state0
>>          for(i in x){
>>              state = update(state, f(i))
>>          }
>>
>>     In erlang this is a fold
>>
>>          fold(F, State0, X)
>>
>>     F is a function of I and State which returns a new state, and I iterates
>>     over the values in X
>>
>>     so
>>
>>         fold(fun(I, S) -> I + S end, 0, L)
>>
>>     is the same as
>>
>>          S = 0;
>>          for(I in L){
>>             S = S + I
>>         }
>>
>>     This is a very common programming pattern
>>
>>     Cheers
>>
>>     /Joe
>>
>>
>>
>>         Many thanks again for your kind help,
>>
>>         Lloyd
>>
>>         -----Original Message-----
>>         From: "Joe Armstrong" <erlang@REDACTED <mailto:erlang@REDACTED>>
>>         Sent: Saturday, May 31, 2014 1:53pm
>>         To: "Lloyd Prentice" <lloyd@REDACTED
>>         <mailto:lloyd@REDACTED>>
>>         Cc: "Erlang-Questions Questions" <erlang-questions@REDACTED
>>         <mailto:erlang-questions@REDACTED>>
>>         Subject: Re: [erlang-questions] How to return all records in dets
>>
>>         The thing to Google for is "dets man erlang" - which should get
>>         you the man
>>         page
>>         (even better is to store the man pages locally and do "erl -man
>>         dets")
>>
>>         You want to "list" all records (I'm not sure what list means
>>         here - it
>>         might mean
>>         "print" or "make a list of").
>>
>>         To make a list of all records you could say:
>>
>>             dets:foldl(fun(X, L) -> [X|L] end, [], Name)
>>
>>         (Most collections - ie dets, ets, dict, etc. offer some kind of fold
>>         operation that
>>         traverses all objects in the collection)
>>
>>         To print all records
>>
>>            dets:traverse(Name, fun(X) ->
>>                                     io:format("~p~n",[X]),
>>                                     continue
>>                                end)
>>
>>         No need to worry about match specifications.
>>
>>         The best place to start is usually by reading the man pages.
>>
>>         Now that Erlang is is becoming popular you'll find a lot of
>>         incorrect
>>         solutions to problems posted on stackoverlow.
>>
>>         Best approach is
>>
>>              0) ask an expert
>>              1) read the man pages for the module, in question
>>              2) experiment with the functions in the man pages in the shell
>>              3) ask/tell this list if the manual pages are ambiguous or
>>         incomprehensible
>>              4) search Google/stackoverflow
>>
>>         Cheers
>>
>>         /Joe
>>
>>
>>
>>         On Fri, May 30, 2014 at 9:56 PM, <lloyd@REDACTED
>>         <mailto:lloyd@REDACTED>> wrote:
>>
>>          > Hello,
>>          >
>>          > I'm cross-eyed from looking at match specifications. All I
>>         want to do is
>>          > list all records in my small dets table. I once ran across a
>>         very neat
>>          > query to accomplish that, but for the life can't Google it up.
>>          >
>>          > Can some kind soul give me a query that works?
>>          >
>>          > Many thanks,
>>          >
>>          > LRP
>>          >
>>          >
>>          >
>>          > _______________________________________________
>>          > erlang-questions mailing list
>>          > erlang-questions@REDACTED <mailto:erlang-questions@REDACTED>
>>          > http://erlang.org/mailman/listinfo/erlang-questions
>>          >
>>
>>
>>
>>
>>     _______________________________________________
>>     erlang-questions mailing list
>>     erlang-questions@REDACTED <mailto:erlang-questions@REDACTED>
>>     http://erlang.org/mailman/listinfo/erlang-questions
>>
>>
>>
>> _______________________________________________
>> erlang-questions mailing list
>> erlang-questions@REDACTED
>> http://erlang.org/mailman/listinfo/erlang-questions
>>
>
> --
> Loïc Hoguin
> http://ninenines.eu
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions
>
>
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions



More information about the erlang-questions mailing list