結局理解できたのは、アレのおかげでした
またもや、更新間隔があきました。
rebar3の続きの備忘録書こうとしたんですが、ちょっと寄り道します。
- 作者: Fred Hebert,山口能迪
- 出版社/メーカー: オーム社
- 発売日: 2014/07/04
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (10件) を見る
http://erlangworld.web.fc2.com/otp/gen_server.html
を仕事中によんだら、簡単に理解できました。
迷書なので、「おまえの理解力がない」といわれると、「はぁそうですね(棒)」と言うほかないんですが、私のように理解力にない人間には、超難解本ですわ。
さて、前回の続きですが、ちょっと以下の点で、変更をしました。
PostgreSQLのコネクションプールですが、沢山のOTPがあって、いろいろ試して見ました。
Erlang Postgres Connection Pool with Episcina
devinus/poolboy
epgsql/pgapp
くるしんで、全部ためしたのですが、その内の一つの備忘録を次回に。
Erlangとrebar3と読み込まれないsys.config
昨日は、夕方からの飲み、Erlangの学習が、ちっとも進まない_| ̄|○
というか、兎に角、情報がない。
いや、正確にいうと、書いて有る事をやっても動かない。
もっと正確にいうと、なにか知識が足りない_| ̄|○
堂々巡りを数日繰り返し、絶望と希望を行ったり来たり、はや、前回更新から一ヶ月、遠回りにも程がある。
愚痴を含めて書きたいけど、ここは、備忘録のみ。
rebar3
Erlang チーム開発 rebar3でOTPアプリの雛型を作る
ありがとう、当に救いの主でございました。
$ rebar3 new release name=アプリケーション名 author_name="作者"
releaseがミソ、何がミソって、config/sys.config、config/vm.args が出来る。
releaseを付けないと、出来ない。前者のconfig/sys.configが、出来ないのが、ずーーーと謎だった。
実行
学習したのは、2つの方法。
releaseを動かす
$ rebar3 compile $ rebar3 release $ cd _build/default/rel/アプリケーション名 $ ./bin/アプリケーション名 start $ ./bin/アプリケーション名 stop
但し、自分の環境では、上手くいきませんでした。多分この辺は、
rebar3で環境毎の変数設定を適用する
が、関係しそうな感じ。後ほど、気力がもどったら、検証しますわ。
erlから動かす
$ erl -pa ebin _build/default/lib/*/ebin -s アプリケーション名 -noshell %% config/sys.configを読む必要があるなら↓ $ erl -pa ebin _build/default/lib/*/ebin -s アプリケーション名 -noshell -config config/sys.config
この二段目が、全然かららんかった。
どこかのページにあったのに、失念(つд⊂)エーン
なぜ、sys.configに拘るかというと、lagerやpostgresqlのコネクションプールのモジュール設定を書かないといけないからでした。そう、以下のモジュールのせいです。
Erlang Postgres Connection Pool with Episcina
次回は、一ヶ月、苦しめ続けた、↑のモジュールについて、怒りの備忘録。
Erlang rebar3とcowboyと学ばない私
土日があっちゅうまにすぎっちまいました。
やった事纏め
rebar3のインストール
https://www.rebar3.org/docs/getting-started
このまんま。
但し、PATHは、
$ ./rebar3 local install
に出てくる、所にちゃんと通すこと。これ忘れると、動きませぬ。
Cowboyを動かす
rebar3のページには、cowboyの組み込み方だけ、書いてあって、動かすサンプルは、無い模様。
ここで、数時間消費。
以下のページをはっケーン
http://qiita.com/yu-sa/items/c33e9c155177a7e01f48#rebar3%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6
まず、先のrebar3のサンプルの延長で作成すると、何をどうやっても動かない。
- cowboyのバージョンが違うのはけーん
rebar.configを修正。これでも、うごかない。
- Erlangのバージョンがサンプルと違うのはけーん
といっても、使っているは、19.1、普通大丈夫だろ、と思いつつも、先のHPのバージョン17.5をインストール。
動かぬ。しかも、mapが云々という。
どうも、バージョンは、18以降でないと駄目らしい。
18.3をインストールする。
それでも、動かぬ。(;^ν^)ぐぬぬ…
先のページのサンプルがGithubにあるというので、クローンして実行してみる。
動く、こいつ動くぞ。
真似して、書き換えても動かぬ。以下のようなエラーになる。
=ERROR REPORT==== 12-Feb-2017::17:33:10 === Ranch listener http had connection process started with cowboy_protocol:start_link/4 at <0.159.0> exit with reason: {[{reason,undef},{mfa,{myapp_handler,init,3}},.....
もう、17:33とか_| ̄|○
飯喰ってくる。
WRC見る。トヨタおめでとう!!イェ━━━━━ヽ( ゚Д゚)人(゚Д゚ )ノ━━━━━━イ!!
ほろ酔いで、再度、rebar3で、新しいプロジェクトを作成する。
動いた。
すごいErlangゆかいに学ぼう! 読了
アーなんつーかそのー
わし、頭悪いんで、これ読んで、なんか作れる人、尊敬します。
まぁ、海外本というか、外人が書いた本って、文字だらけで、表や図にまとめる意識を、なはから放棄してるので、頭の悪いワシには、超難解です。
なんせ、数十ページ前の定義の一文が、なんの説明もなく使われるもんで(simple_one_for_oneやら他多数)、輪を掛けて難解にさせます。
いやぁ、頭の良い人っつーのは、こういうのが入門本なんですなぁ、尊敬します。
「もっと大事な事おしえろ!!」(Y.O)
私の感想でございました。
とはいえ、Erlangでの、開発方法や、どんな書き方があるのかは、わかりますた。
ネットでサンプル漁って、いよいよ、何か作ってみようかと。
HTTP系だと、Cowboyっていうのが有るみたいですね。それとrebar3っていうツールも必須みたいですし。
これから、Erlangの備忘録だらけになる悪寒。
Erlang ちっとも進まない件について
前の記事から三ヶ月。
以下の本を購入
- 作者: Fred Hebert,山口能迪
- 出版社/メーカー: オーム社
- 発売日: 2014/07/04
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (10件) を見る
- 作者: Joe Armstrong,榊原一矢
- 出版社/メーカー: オーム社
- 発売日: 2008/02/23
- メディア: 単行本(ソフトカバー)
- 購入: 8人 クリック: 284回
- この商品を含むブログ (97件) を見る
手強い(´ヘ`;)ウーム… 本が!
EmacsとErlangの備忘録
スペシャルサンクス!!
http://qiita.com/Satoshi_Hara/items/8071a6dbf708373a2253
環境は、
http://qiita.com/tatsuya6502/items/f15da8ea6e793c5038a2
http://www.lambdacat.com/post-modern-emacs-setup-for-erlang/
環境構築時は、バージョンを 18.x にすべし。19.x は、エラーになる。
やっとこさ、命令の補完とか出来るようになった。
それにしても、やっぱ、日本でもErlangガッツリやってる人沢山いますね。
凄いっす。
Rubyとかのお手軽感ゼロ、goのような割り切り感ゼロ、JAVAのような何でもかんでも取込まっせ感もなし。
なんもかも、新鮮で難解でございます。
頑張ります。
Erlang インストール
訳あってErlangを弄らねばならなくなった。
なので、インストール備忘録。
以下のページを参考にした。
OSX 10.10 に kerl で Erlang 17.5 をインストールし, crypto:start/0 を成功させる
基本的に、↑のページの内容で大丈夫。
gccとopensslを必ず新しいものを入れていないと、マジでコンパイルがこけます。
それと、コンパイルが、めちゃめちゃ長い。
何回も失敗すると、それだけで1時間ぐらい簡単に吹っ飛びます。
一カ所だけ気をつけるのは、
$ kerl kerl install 17.5 /path/to/erlang/17.5 ↓ $ kerl install 17.5 /path/to/erlang/17.5
とkerlを一つ減らす事。
あとは、derenvと連動させる。
ETOOMANYERLANGS: Kerl vs Erln8
この下半分を参考にすること。
上半分を信じると、半日潰されるぞ!!(体験者)
どうも、~/.kerlrcで設定すると、コンパイラのコンフィグが、上手く設定できないらしい_| ̄|○
と言うことで、erlで起動確認できました。
MacOS Sierra に、GVM で go1.7.2 入れたった
久々の更新でございます。
仕事に忙殺されています。簡単な仕事っていったじゃん(つд⊂)エーン
むくむくと、開発意欲湧いてます。
最近は、慣れないSwiftで、通信とかぶっこくプログラム書いたり、Expressで、ソケットしたり、エッジなんだけど、どうもノリが悪いっす。
まず、Swiftは、日が浅いので、手に付かない_| ̄|○ 調べる時間が八割。
Expressは、書いてて面白くないっす。非同期って節操なさすぎる(`ヘ´) プンプン。コーディング量が増えるばっか。
やっぱ、Revelだよなぁ!!ってSocketでやられた事、棚に上げて、再び蒸し返そうとしております。
それで、半年ぐらいほっておいたら、goのバージョン、鬼上がりしてました。
go1.6だったのに、go1.7.2まで来てるではありませんか。
と言うことで、GVMからインスコこいてみたら、入らん工エエェェ(´д`)ェェエエ工
ッテナンデヤネン┌(`Д´)ノ)゚∀゚)
ググると、
GO言語の1.6.3より前のバージョンを使っている人は MacOS Sierraにアップグレードしないほうがいい話
なにそれ、どうしてそうなった。
今のままじゃどうにもならんちゅうことかいな。
んで、いろいろ試行錯誤して以下の方法でインスコできたますた。
$ gvm install go1.7.1 -B
$ gvm use 1.7.1
Now using version go1.7.1
$ gvm install go1.7.2
サクッと書いてますが、実際は、試行錯誤して、試行錯誤して、GVM消したりしてもう、環境クリーンになりすぎました。
- Bのスイッチで、バイナリのインストールとの事です。
疲れた(´Д`)ハァ…