

Real World OCaml - epsylon
http://www.realworldocaml.org/

======
marshray
The login url contains the string

    
    
        redirect_uri%3Dhttp%253A%252F%252Fwww.realworldocaml.org
    

Looks to me like whatever Github authorizing is being sent back to an insecure
non-https site. If a passive observer were to see this in transit, I think
they could probably steal the authorization token a la Firesheep.

The FAQ says "you temporarily grant us access to your public repositories", so
I'm thinking this probably means your Github repos become writable to an
attacker.

------
amirmc
Some more info from the author on the OCaml mailing list [1].

New readers might want to check out the FAQ before diving in [2].

[1] [https://sympa.inria.fr/sympa/arc/caml-
list/2013-06/msg00101....](https://sympa.inria.fr/sympa/arc/caml-
list/2013-06/msg00101.html)

[2] [http://www.realworldocaml.org/#faq](http://www.realworldocaml.org/#faq)

EDIT: Some more info from the email.

 _" Release notes for beta1:

\- The first-class modules chapter is incomplete, pending some portability
improvements to the ocaml-plugins Core library.

\- The binary serialization chapter is also incomplete, but has just enough to
teach you about the Async RPC library.

\- The installation chapter will be revised in anticipation of the OCaml 4.1
release, and is currently quite source-based.

\- The packaging and build systems chapter hasn't been started yet. We're
still deciding whether or not to make this an online pointer rather than a
print chapter, since it's likely to change quite fast.

\- We are preparing exercises per chapter that are not included in this
particular beta release, but will be available online as soon as possible.

\- The code examples will all be clonable as a separate repository in beta2."_

------
epsylon
If you are surprised about the access requests when authenticating on GitHub.
It seems like they couldn't ask for less than "all your public repos". (as
amirmc mentioned, check out the FAQ :
[http://www.realworldocaml.org/#faq](http://www.realworldocaml.org/#faq))

~~~
qu4z-2
Let me guess... they're using OAuth as an authentication protocol, and it's
working weirdly 'cause it's an authorization protocol?

~~~
amirmc
You don't need to guess. It is explained in the FAQ.

 _" We just want the ability to create issues in one specific public
repository, but the minimum privileges we can request from Github are the ones
you see when you login."_

[http://www.realworldocaml.org/#faq](http://www.realworldocaml.org/#faq)

~~~
qu4z-2
Ah, that's quite reasonable actually. Forgive my bitterness.

------
jongraehl
I've loved using OCaml on some toy problems. OCaml (and so probably F#) feel
suitable for anything you'd use Golang for (performance is similar; code can
be terser due to typing-saving language features), except if you must have
threads for concurrency.

~~~
mjt0229
Are other forms of concurrency still available? This has always seemed like a
strange limitation. Most of the code that I write doesn't require me to spin
up tons of threads (at least, not in my code), but sometimes it's really
helpful to have them.

~~~
edwintorok
Yes:

* multiple processes (there are a few libraries that can help make it easier)

* I/O concurrency with cooperative threads library: Equeue, Lwt or Async

* you could also use the built-in Thread module for I/O concurrency but the overhead will likely be higher

* you can execute C code in multiple threads in parallel, only OCaml code is limited to a single thread (due to the global lock)

~~~
emmelaich
What are those libraries for multiple processes under Ocaml?

I could google but I'm fishing for your recommendations as well.

~~~
edwintorok
Functory, OCamlMPI and Netmulticore (part of OCamlNet). I haven't actually
used any of them though, I'm quite happy with Lwt for now.

------
abbot2
" Authorize Real World OCaml Commenting?

The app Real World OCaml Commenting will be able to:

    
    
        Read your public information.
        Update your public repositories (Commits, Issues, etc).

"

WAT?

~~~
amirmc
Please read the FAQ

[http://www.realworldocaml.org/#faq](http://www.realworldocaml.org/#faq)

~~~
abbot2
I read it as something like this: "We really promise not to mess up your
account. Really-really. Oh wait, our server has been hacked".

~~~
danielsamuels
You still haven't read the FAQ:

    
    
      However, we never store your authorization tokens in our server, and instead just directly pass your authorization token into a client-side cookie.

~~~
abbot2
Never store != never see

------
_pmf_
How I wish Scala would be more like OCaml instead of a disgusting mess of
useless sigils and buzzwords.

~~~
pjmlp
Yeah, I also prefer the ML syntax.

~~~
owyn
There is Yeti, an ML style language for the JVM:

[http://mth.github.io/yeti/](http://mth.github.io/yeti/)

(edit to address questions/comments)

I haven't actually used it so I have no idea if it's ready for "real" use
(whatever that means! everyone has a different definition) However, it's under
active development which is more than you can say for ML. I only found it when
I saw the above comment and thought "I wonder if there is an ML for the JVM"
but I have put it on my own todo list to check it out.

And I know the pain of which you speak pjmlp, I have to use PHP for my day
job...

~~~
pjmlp
Thanks for pointing it out, but on my line of work I will jump of joy the day
I will ever manage to use anything besides Java on the JVM.

Fortune 500 enterprise development, offshoring and modern programming
languages are hard to combine.

------
a-nikolaev
Documentation for the Jane Street's Core Library looks incomplete or damaged
(E.g. Core.Core_list module [https://ocaml.janestreet.com/ocaml-
core/latest/doc/core/Core...](https://ocaml.janestreet.com/ocaml-
core/latest/doc/core/Core_list.html)). I think, this is very unfortunate,
because the labrary is probably great. I have not tried it yet (I'm pretty
happy using just the standard one most of the time), but I whould like to have
Async, Sexplib and other new things from Jane Street. Is there a better
documentation for this lib?

~~~
yminsky
The documentation generation tools are a bit of a mess at the moment. We're
working actively with OCaml Labs to improve the tools here, and we expect to
have the documentation in a much cleaner and easier to use state (and
prettier) by publication time.

~~~
a-nikolaev
Thank you Yaron! The book looks great.

------
marshray
No I am not entering my Github credentials just to look at your book's
website.

~~~
yminsky
When we're out of beta, we'll open the book up for people to read without any
kind of login. For now, though, we're putting this out there largely to get
feedback before publication. Unfortunately, github has fairly coarse-grained
permissions, so we need to ask for rather a lot.

------
toolslive
It's a good effort as "Developing applications with Objective Caml"
[http://caml.inria.fr/pub/docs/oreilly-
book/](http://caml.inria.fr/pub/docs/oreilly-book/)

has become rather dated.

But you will still need the reference manual and some other sources as it
seems rather sketchy in some aspects (syntax extensions, C bindings)

(I've made lots of small comments in the book, hoping it may help)

------
bsg75
Not much traffic on OCaml here lately, compared to the "new stuff" and what
appears to be a resurgent interest in Erlang. So this is an interesting
project

In this era of Scala, Clojure, F#, (and Erlang), what use cases of OCaml would
interest developers to dive into it?

~~~
bsg75
Its also interesting there are two new OCaml books of recent: [http://ocaml-
book.com/](http://ocaml-book.com/)

------
thelarry
Does anyone have some good reading material to start getting into functional
languages?

~~~
amirmc
This book is one route in. It's intended for those who've programmed before
but not necessarily with functional languages. I suspect intros to any of the
functional languages would be fine (e.g Haskell, Scala, F#). There's even a
Coursera course on Scala.

