問題タブ [erlang]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
unit-testing - 同時Erlangコードをユニットテストするための最良の方法は何ですか?
私はErlangで少し時間を過ごしており、書いているコードにTDDを適用したいと思っています。
標準ライブラリのEUnitは、通常のスタイルのコードをテストするための優れた従来の単体テストフレームワークを提供しますが、ErlangでLOTで使用される並行コードのテストに特に役立つものはないようです。
ここでErlangについて話していることに注意してください。これは、並行プロセス間の通信に(共有状態ではなく)メッセージパッシングを使用するため、共有状態言語で並行コードを単体テストする手法は適用できない場合があります。
Erlangで並行コードをテストする良い方法を見つけた人はいますか?
erlang - 学習目的で Erlang で解決する興味深いプロジェクトは何ですか?
私は最近 Erlang を発見し、現在いくつかのチュートリアルに取り組んでいます。今では、趣味のプロジェクトとして実際に何かを実装することを楽しみにしています。私は別のチャット サーバーにはあまり興味がありません。もっと面白いものをコーディングしたいと思います (はい、これはかなりあいまいな用語であることは承知しています)。
助言がありますか?
編集: プロジェクトは、できれば Erlang の強み (同時実行性、分散) を強調する必要があります。
binary - バイナリ形式、ビットごとの操作はありますか? 例えば。<<16#7F、16#FF>> bsl 1
erlang には、整数を操作するためのビット演算があります。たとえば、次のようになります。
整数を一連のバイトにパックする機能もあります
可能ですか、またはバイナリパックされたデータに対してビット単位の演算 (AND、OR、XOR、SHL、SHR など) を実行できる演算子または BIF はありますか?
例 (bsl がバイナリ パッケージで動作した場合、動作しません):
haskell - サーバー用の Haskell?
ゲームサーバーの作成に関しては、スケーラビリティと同時実行機能を備えた「この種のことのために構築された」言語として、Erlang が常に登場するようです。私は Haskell も Erlang も経験していませんが、表面上は同じように見えます。Haskell のドキュメントを見ると、マルチプロセッサのスケーラビリティと同時実行性がサポートされているようで、Haskell はより堅実な言語であり、目に見えて優れたコミュニティを持っていると言われています。私の質問は、Haskell は Erlang と同じくらい優れたサーバー構築ソリューションであると考えられているのでしょうか?
database - Mnesia との関係の整合性を維持する
私は最近Erlangに飛び込んでいます.Mnesiaを使用してデータベースの作業を行うことにしました.Mnesiaはあらゆる種類のErlangデータ構造を問題なく格納でき、簡単にスケーリングでき、リスト内包表記で使用できるなど.
標準の SQL データベースの場合、ほとんどの行は主キー (通常は自動インクリメント整数) で識別できます。デフォルトでは、Mnesia は行の最初のフィールドをキーと見なします。また、私の知る限り、自動インクリメント整数キーを持つ方法もありません。
テーブルを表すこれらの架空のレコードがあるとします。
エントリのタイトルのように、リソースを識別するために、ユーザー名を使用するだけで十分な場合もありますが、完全性を維持するにはどうすればよいでしょうか?
ユーザーが名前を変更したり、編集後にエントリのタイトルが変更されたりするとします。データが正しく関連付けられていることを確認するにはどうすればよいですか? ユーザー名が変更されたときにそれを使用してすべてのテーブルを更新することは、どのように配置されていてもひどい考えのように思えます。
Mnesia である種の主キーシステムを実装する最良の方法は何でしょうか?
また、最初のフィールドが通常キーである場合、「user_entry」のような中間テーブルはどのようになりますか? そうでなければ、Mnesia で多対多の関係を表現するより良い方法は何でしょうか?
erlang - mnesiaの起動時間を短縮する方法
mnesia/dets を使用した Erlang は、クラッシュ後の起動時間が遅いことで有名です。基本的に、古いファイルシステムの fsck と同じ問題です。
しかし、通常のシャットダウン後の起動時間も遅くなります。頑丈なマシンで 250 MB のディスク上のデータの場合、約 8 分です。
「q()」と入力する以外に、シャットダウン時に何か特別なことをしなければならないのでしょうか? 起動時間を短縮する方法はありますか?
xml - erlangでxslt変換を実行するライブラリはありますか?
私は本当にerlangに不慣れで、xmlを操作する方法を考えています。
erlsomを見つけましたが、xmlで簡単な変換を行う必要があります。
xslt(1.0でも)ライブラリを探していますが、何も見つからず、DOMで手動で作業するか、erlangでxml-treeを表す構造体と呼べるものなら何でも変換を行うようになりました。結果は、一連の行のxsltで達成できる結果を取得するために使用する、不法なコードの混乱であると言う必要はありません。
私を正しい方向に導くことができるコードライブラリ、例、またはドキュメントを知っていますか?
erlang - 名前付きパラメーターの印刷
Archaelusはこの投稿で、名前付きパラメーターを処理するための新しいフォーマットルーチンを作成することは良い学習演習になる可能性があることを示唆しました。そこで、言語を学ぶという精神で、名前付きパラメーターを処理するフォーマットルーチンを作成しました。
例:
ベンチマーク:
このオーバーヘッドの多くはループによるものだと思いますが、1つのループで関数を呼び出すと、1us未満の応答が得られます。
erlangでベンチマークを行うためのより良い方法があれば、私に知らせてください。
コード:(
ダグの提案に従って改訂されました)
これは学習演習だったので、erlangの経験が豊富な人が、コードを改善するためのヒントを教えてくれることを期待していました。
乾杯、マイク
actionscript-3 - Erlangサーバーとのフラッシュ通信
これはアーランの問題だと思われます。Actionscript 3で記述された、データを送信するクライアントをテストするためのこのコードがあります。
それから私はErlangで書かれたこの小さなサーバーを持っています:
今、私がクライアントから何を送っても、私は常に[<<0,0,0,4,0,0,0,32>>]
応答として受け取ります。intsの代わりに直接ソケットにバイトを書き込んでみることができますが、同じことがわかります。私は多かれ少なかれデータを書くことができます、同じ結果。UTF文字列は同じ結果になります。パケットヘッダーの長さとして「4」を指定した場合でも、代わりに同じ一貫した結果が得られ[<<0,0,0,32>>]
ます。ここで何が間違っているのかわかりません。
erlang - Erlangでノードに名前を付ける
5.4ドキュメントの分散プログラミングチュートリアルで遊んでいますが、ノード名に問題があります。
私のMacBookのデフォルト名(jamess-macbook
)は、ダッシュのためにErlangのノード命名スキームではうまく機能しません:
Erlangを実行したいすべてのマシンの名前を変更する以外に、これを回避する簡単な方法があると確信していますが、ドキュメントには表示されません。
助言がありますか?