In my experience, something that Erlang is really great at but doesn't receive much attention for these days
is managing and interacting with hardware. In any physics experiment of even modest sizes, you wind up
having to keep track of the state of various pieces of equipment, often modify that state, and constantly
interrogate particular values. For example, we might want to change the current in a magnetic trap, turn
that trap off altogether, or simply read back the voltage drop across our superconducting magnet.
So far, I have deployed Erlang in this zone for two separate experiments (SNO+, a large particle physics
experiment in Canada) and Project 8 (a small nuclear physics experiment here in Seattle). Both times have
been great successes, and I have found the reception of Erlang in this market to be great. In general, what
I have done is wrap a hardware management layer with some kind of outside world interface. For SNO+, we
used Webmachine and RESTful control, and for Project 8 we actually conduct all communication
by using CouchDB as a message passing interface.
Physicists are suspicious creatures, but once you demonstrate the feature set that you get for practically
free with OTP, they see the advantage pretty quickly. On top of that, the development cycle for sophisticated
applications can be greatly reduced - more than once it made my group float to the top in terms of meeting
goals.
In short, as far as I am concerned, Erlang has found a new niche in the world of Physics, and I intend to
spread the word as much as I can!
Jared Kofron
_______________________________________________
erlang-questions mailing list
erlang-q...@erlang.org
http://erlang.org/mailman/listinfo/erlang-questions
Just for the record Erlang programmers numbers 1 and 2 (ie myself and
Robert Virding)
are both ex physicists.
When I lecture I often point out the similarity between causality and
message reception.
You don't know that something has happened until you get a message
telling that it has happened.
(In physics it's a ray of light, or a photon, or something -
forgetting entanglement for the moment)
In computing it's the reception of a message.
As a ex physicist I know that we can't say anything about simultaneous
events occurring
at different places in space-time - turn this into computer science
and the same arguments
apply to things like making sure replicated data is consistent on
remote sites - well you can't
- at least if you want to change it - Brewer's CAP theorem applies -
which for a physicist makes
perfect sense.
Also as an ex physicist I realize that things do actually happen in
parallel in the real world,
so modelling them in a sequential programming language (if I wanted to do that)
is big time crazy - just describe the parallel stuff in a concurrent
language and the program
writes itself. Wait a few years till we have million core computers
and the parallel problems
can be solved 1:1 on parallel computers - and programming simulations
and so on will be
really easy - but don't even think about doing it in a sequential language...
Cheers
/Joe
I absolutely agree with you re: concurrency in erlang. I find handling the concurrent aspect
of my programs to be essentially trivial in erlang, especially once you leverage the power of
supervision trees.
JK
> Hi Joe-
> What a surprise! I had no idea that you and Robert V were both recovered physicists.
My master's degree was in Underwater Acoustics... There must be lots of us about.
(Can that be why I think Joe is right so often? Nah, surely not...)
Can you explain how the device module translate to the GPIB command "OPCW"?
Is it pure erlang?
Maybe you can share some code?
Thanks
________________________________
From: Jared Kofron <jared...@gmail.com>
To: Erlang Questions <erlang-q...@erlang.org>
Sent: Wednesday, March 14, 2012 1:43 AM
Hi,
Firstly, I am glad to see physicists getting interest in Erlang.
I see Erlang best usage in physics in few fields from Astrophysics/Astroparticle Physics/Elementary Particle Physics:
1. GRID;
2. integrated in the readout of an array of detectors for atmospheric showers,
If you'd like to take a look at the code it's at http://github.com/kofron/dripline. It's very very alpha, although deployed
in limited production it works quite well.
Unfortunately my first project, called hmhj, is closed source due to concerns from the SNO+ collaboration.
JK
https://github.com/kofron/dripline/blob/master/src/hp8340b.erl#L100
Thanks
Hi All,
_______________________________________________
erlang-questions mailing list
erlang-q...@erlang.org
http://erlang.org/mailman/listinfo/erlang-questions