
"Jake Voytko" <jakevoytko@gmail.com> wrote in news:16c2caba0705091011k7203bc43uf4b71f27dbd196a7@mail.gmail.com:
Short answer: Accept, so long as issues with the create() function are worked out.
< snip >
- What is your evaluation of the documentation? I felt that for such a minimal library, I had to dig too much for the first usable code example, which is generally the first thing I look for when using a new library.
I will create an intro section that shows common uses.
- What is your evaluation of the potential usefulness of the library? In environments where only a single machine generates the IDs, it is extremely useful. However, as others have mentioned, in guid::create(), seeding the random number generator with time(0) certainly negates the primary reason to use GUIDs at all, as in a multiple machine environment it's no longer possible to guarantee that the IDs are unique. I feel that this contradicts the entire reason I would look for an outside library to generate GUIDs rather than do the legwork towards implementing one myself. The documentation for the library touts concurrency-heavy applications in its rationale section, but it seems concurrency issues would be introduced by time(0)
See other posts. This will be fixed by passing a random number generator to the create function.
I liked the suggestion of MAC address + time generation, but I don't know how feasible this would be to accomplish in multiple operating systems with the same implementation. Even simpler, the user could have the option of giving the random number generator their own seed. Simply skipping it could stick with time(0), but if they know they could run into concurrency issues, they could provide their own solution.
< snip > Andy.