We typically avoid only wrapping Erlang functions because in the long term
we will just end-up duplicating all the efforts already done in the Erlang
community. For example, even for a simple case such as Kernel.seed, we need
to document the tuple format, the meaning of exsplus, etc. And unless we
wrap all the functionality in rand, at some point you will still need to
use rand directly.

So I would like to propose other initiatives:

* We should continue to focus on better documenting those entry points,
which we already do in places such as the Getting Started guides
<http://elixir-lang.org/getting-started/erlang-libraries.html>. In fact,
your article is a great exploration of the rand module and, if you send a
pull request to the guides linking to your article in the rand section, we
would love to merge it!

* Send a pull request to Erlang/OTP that improves their documentation. For
example, including an example of using the crypto module for a
cryptographically secure example would probably be very welcome.

* Send a pull request to Erlang/OTP that adds the functionality you would
like to see Elixir wrapping.

If you or anyone else need help in contributing to Erlang, please ping me
any time, either on IRC or by e-mail and I would love to provide guidance.
Improving Erlang is our responsibility too! :D


*José Valim*
www.plataformatec.com.br
Skype: jv.ptec
Founder and Director of R&D

On Wed, Sep 21, 2016 at 8:47 PM, Dorian Karter <dkar...@gmail.com> wrote:

> I recently wrote a blog post about my explorations into random number
> generation from Elixir and Erlang. You can find it here:
> https://hashrocket.com/blog/posts/the-adventures-of-
> generating-random-numbers-in-erlang-and-elixir
>
> This led me to question why `:rand.seed` is not exposed from Elixir
> without hitting Erlang directly. I think every time we send a user to learn
> something about the intricacies of Erlang we are introducing a mental
> overhead.
>
> I would be happy to submit a pull request that will attempt to wrap
> `:rand.seed` but figured I'd check with the core team first. My questions:
>
> 1. Why is `:rand.seed` not exposed from Elixir? is that by design?
> 2. If it should be exposed by Elixir where do you imagine it living?
> `Kernel.seed`? or should we create a new `Random` module.
> 3. Would it make sense to provide a method that will just securly seed
> rand like so
>
> << i1 :: unsigned-integer-32, i2 :: unsigned-integer-32, i3 :: 
> unsigned-integer-32>> = :crypto.strong_rand_bytes(12):rand.seed(:exsplus, 
> {i1, i2, i3})
>
> 4. Anything else I should consider if I submit a pull request other than
> obvious testing and documentation
>
>
> Thanks so much for your attention and feedback!
>
> Dorian
>
> --
> You received this message because you are subscribed to the Google Groups
> "elixir-lang-core" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to elixir-lang-core+unsubscr...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/
> msgid/elixir-lang-core/577910ae-2a52-49f4-9e77-
> 670639106a3c%40googlegroups.com
> <https://groups.google.com/d/msgid/elixir-lang-core/577910ae-2a52-49f4-9e77-670639106a3c%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"elixir-lang-core" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to elixir-lang-core+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4JU2GHLO8c5vt_zKb5EgtYVxXoyTEskgaO2kRDPwKLBzQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to