Do you have a process for getting comments and reviews as the book is written, besides emails like this?<div><br></div><div>I really thought the way the Real World Haskell authors did their's was amazing: <a href="http://book.realworldhaskell.org/read/">http://book.realworldhaskell.org/read/</a></div>
<div><br></div><div>You can comment on, and see all comments for each section in a chapter and get an RSS feed of changes for chapters.</div><div><br></div><div>I could have sworn I found a repo that they host the entire site's code for all that but I can't find it once again...</div>
<div><br></div><div>Tristan</div><div><br><div class="gmail_quote">On Wed, Oct 19, 2011 at 3:14 PM, Michael Uvarov <span dir="ltr"><<a href="mailto:freeakk@gmail.com">freeakk@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
When we say "Unicode string", we do not provide full information about<br>
this string. There are many forms of Unicode.<br>
<br>
Q: Which way did Erlang developers chose?<br>
A: The Erlang way is simple. It is to represent a string as a list of<br>
code points. It helps to solve one problem: there are no encodings<br>
(UTF-8, UTF-16, UTF-32) in this form. There are no UTF-16BE or<br>
UTF-16LE (endianess on different architectures is a problem of network<br>
systems). But this way does not solve the normalization problem.<br>
<br>
Q: But how to get my strings back to UTF-8? I want to pass it to an<br>
other application.<br>
A: There is other representation of Unicode text: as a binary. This<br>
form is used for storing text and working with external programs.<br>
<br>
Q: Is it easy to work with a list of code points?<br>
A: Both yes and no.<br>
Advantages:<br>
I you have an algorithm, which is based on code-paint processing, then<br>
it will be easy to implement. If you only pass text from point A to<br>
point B, I suggest keep a string as a binary. Also you can use both<br>
UTF-8 binaries and lists together to create an iolist from them.<br>
<br>
Disadvantages:<br>
A code-paint is not a character. It is an abstract representation of<br>
graphemes or their parts. If you run `string:len(Str)', you get the<br>
count of these code-paints (not graphemes) in Str.  The problem of<br>
Erlang is poor string-processing mechanisms (in string module). This<br>
problem is rare in the telecom field, but it is hot problem for Web<br>
applications.<br>
<br>
Q: What do poor string-processing mechanisms mean?<br>
A: There are Unicode standards<br>
(<a href="http://unicode.org/standard/standard.html" target="_blank">http://unicode.org/standard/standard.html</a>) which declares algorithms<br>
for many operations with strings. These operations can be also<br>
locale-dependable. The most popular realization of this operations is<br>
ICU. There are few interfaces for this library. For example, I am<br>
developing  the NIF interface for icu4c.<br>
The work under this library is only in the beginning, But you can see<br>
the API. The library will be ready after R15 (because some actions<br>
with this library can freeze the schedule of the VM).<br>
<br>
<a href="https://github.com/freeakk/i18n" target="_blank">https://github.com/freeakk/i18n</a><br>
<br>
<br>
I think we need describe what 'character'  means.<br>
<br>
Fix.<br>
  Either a) [49,48,8364]           (ie its a list of three integers.<br>
Each integer is an unicode code-paint)<br>
  Or     b) [49,48,226,130,172]    (ie its a list of bytes (also<br>
integers, or chars from C/C++) of the UTF-8 encoding string)<br>
<font color="#888888"><br>
--<br>
Best regards,<br>
Uvarov Michael<br>
</font><div><div></div><div class="h5">_______________________________________________<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>
</div></div></blockquote></div><br></div>