[erlang-questions] Looking for slides of a lightning talk

Ian <>
Thu Jul 12 00:30:43 CEST 2012


On 11/07/2012 11:47, Thomas Lindgren wrote:
> 1. Too few dedicated erlang web programmers, so still a lot of DIY. This may be a bootstrapping/community issue. Which is nontrivial, by the way.
>
> 2. Packages: Let me gripe a bit. At work, we've had endless trouble with Ruby gems, some hair tearing with CPAN, and have spent a couple of man years on packaging for RH and Debian. The whole process is still pretty clunky and hacky. So not a solved problem in the rest of the world either IMO and the erlang way has some advantages. But I agree that more love is needed to catch up, especially on usability.
Things need A LOT more love. I want to use cowboy to write some web 
software. Looks easy enough. There are Erlang drivers for the database I 
need to use, so all looks OK to proceed.  I have just started with 
Erlang so not too familiar with things yet. This is my experience.

1) Found cowboy needs rebar - and rebar documentation is 
thin/non-existent/hiding.

2) Find rebar is not available on windows.  OK. I'll upgrade a VM I have 
to Unbuntu 12:04. (which takes 3 hours, fails and needs nursing back to 
health.  After removing and re-installing some packages things are now 
OK, apart from the occasional crash.  Aside - virtual box provides a 
rather standard environment, so should not be a problem. And I though 
Linux was supposed not to crash like Windows. Not my experience.  Oh 
well - press on.

3) I discover that the install of rebar into an apt-get install of 
Erlang will cause all sort of problems.

In my book that means that at least one of those installs is not simple 
minded, or had inadequate checking.
It is simply wrong. Maybe both. No matter, decide to install from source.

4) Screw up courage and download and compile Erlang 15B - all goes 
well.  Woo-Hoo on a roll here!

5) Download, and compile rebar from source. That appears to work and it 
tells me to put it on the path.

6) Eh? Type "path" - gets "not installed" error message. Back to Google. 
Eventually find the command I need is env.  See path is a whole slew of 
directories.

Which should I use? Will the next upgrade to Ubuntu wipe some of them? 
Don't know. Don't know how to find out. Look in each one and decide that 
/usr/local/bin is probably a fair choice, because it contains erl. Copy 
rebar in.

7) Now I can start the instructions at 
http://blog.pqsdk.org/from-zero-to-deployment-with-cowboy-in-5-minu

Note the title includes the sales pitch "In 5 minutes".  I have already 
spent many hours getting the the start position. (At least I hope its 
the start position).

8) Issue first command and find hg is not an installed command. Apt-get 
install hg can't find the package.

It wasn't the start position!  Google turns up that hg is actually 
called mercurial and gives me the magic incantation to install it.

9) hg installs and I get to clone woody from bitbucket.  Step 1 complete.

10) Next command is ./app.sh cowgirl .   I think that create the app (or 
at least its framework). It reports no errors.

11) Then ./build-compile.sh  - OK, build and compile.  NO errors. Great.

12) Next comes  ./build-release.sh

This fails saying files exist and were not generated. It adds that I 
need force=1 on the command line to force it. Why? If forcing is a good 
idea, the software should just do it. Heck, its only to learn. I can 
delete and start over if necessary - just press on. Add force=1 to the 
command line.

13) When I do I get this.

:~/projects/cowgirl$ ./build-release.sh force=1
==> rel (create-node)
ERROR: One or more files already exist on disk and were not generated:
     * "reltool.config"
     * "files/erl"
     * "files/nodetool"
     * "files/cowgirl"
     * "files/app.config"
     * "files/vm.args"
To force overwriting, specify force=1 on the command line.
==> rel (generate)
ERROR: generate failed while processing /home/ian/projects/cowgirl/rel: 
{'EXIT',{{badmatch,{error,"Release \"cowgirl\" uses non existing 
application cowgirl"}},
          [{rebar_reltool,generate,2,[]},
           {rebar_core,run_modules,4,[]},
           {rebar_core,execute,4,[]},
           {rebar_core,process_dir,4,[]},
           {rebar_core,process_each,5,[]},
           {rebar_core,process_dir,4,[]},
           {rebar_core,process_commands,1,[]},
           {rebar,main,1,[]}]}}
:~/projects/cowgirl$

This is copy/pasted from the log, so I can see I did indeed spell force 
correctly.

Where now? Is the pre-existence of those files a problem? I have no 
idea, and no idea how to find out. However experience tells me to make a 
real effort to fix the first error, even if later ones can be ignored. 
Should I delete them all and try again?

What does the error in the generate mean? It can't mean the application 
cowgirl does not exist because hg/mercurial  brought it down without 
errors and app.sh created it without errors.

The talk is right. Erlang is just too damn difficult to do the easy stuff.

It may have been humorously presented (I wasn't there), but the 
take-away it so true.

Early difficulties are putting off many would-be adopters.

(And I'm stuck!  Help appreciated! )

Regards

Ian




More information about the erlang-questions mailing list