任天堂 ネットワークシステム部 わたなべ たいよう 渡邉 大洋 私たちは、家庭用ゲーム機 Nintendo Switch (TM) 向けに、プッシュ通知のシステム「Nintendo Push Notification Service (NPNS)」を開発・運用しています。 NPNS には常…
Erlang製サーバーcowboyから汎用サーバー部分を分離したranchを使ってTCPサーバー実装する方法のメモ アプリケーション作成 rebarを落としてranch_sampleて名前のアプリケーションを作る すでにあるアプリケーションに組み込む場合は不要ですが。 $ mkdir ranch_sample $ cd ranch_sample $ wget https://github.com/rebar/rebar/wiki/rebar $ chmod 755 rebar $ ./rebar create-app appid=ranch_samplerebar.configを作成してdepsにranchを追加。こんな感じで %% -*- mode: erlang;erlang-indent-level: 4;indent-tabs-mode: nil -*- %% ex: ts=4 s
ejabberd XMPP Server is a Rock Solid, Massively Scalable, Infinitely Extensible Realtime Platform Modern Multi-protocol support: XMPP server, MQTT broker and SIP service Backend integration with REST API and ejabberdctl command-line tool Mobile libraries for iOS: XMPPFramework Mobile libraries for Android: Smack, Retrofit Web library with WebSocket support and fallback to BOSH support: Strophe Ope
What is YXA? YXA is SIP software written in Erlang (Erlang is a programming language written by Ericsson). YXA is both a transaction stateful SIP stack, and a set of SIP server applications. YXA is Open Source, and released under a three clause BSD license. Main features RFC3261 compliant SIP-server, capable of everything a generic domain needs : Registrar that keeps track of your users Handles in
最初はこのモジュール簡単に使えるんじゃないかなーとか思ってたんだけどそげぶされた。。。 リファレンス読んでこんなふうにリモートにつなごうとしたんだけど標準入力がブロッキングされて詰んだ 1>application:start(crypto). ok 2>application:start(ssh). ok 3>{ok, Ref} = ssh:connect("example.com", 22, [{user, "user"}, {password, "passwd"}]). New host example.com accept [y/n]? あわわわ。Erlang Question ML探してこんなのみつけた http://erlang.2086793.n4.nabble.com/SSH-client-example-td2106867.html あとこのコードも参考にした https:
Python Hackathon #3で、今手元で作っているモノのバックエンドに使えないかなぁと思ってRiakを調べてみたのでメモ。Riakは、bashoが作っているDynamoクローンにHTTP/JSONなインターフェースを出して、MapReduceもできるようにしたというキワモノ。でもConsistent HashingとMapReduceって激しく相性悪いと思うんだけどどうなっているんだろうという辺りが疑問点。 とりあえずインターフェースはJSON/HTTPだけど、Erlang APIもある。 Riak's primary programming interface is JSON over (RESTful) HTTP, which is as close as you can come these days to a universal language and protocol
Creating massive multiplayer game servers with fault-tolerance, load balancing and unlimited scalability all built-in Introduction This article describes an alternative approach to building massively scalable online multiplayer systems using my OpenPoker project as an example. OpenPoker is a massively multiplayer poker server with fault-tolerance, load balancing and unlimited scalability built-in
1. Erlang 入門 括弧が要らない! Windowsでも楽ちん! 並行プログラミングもOK! 英語OKなら何気に資料も多いぞ! ・・・そんな関数型言語 Erlang にIT土方系PHPerが果敢にも挑戦している最中です。 id:msakamoto-sf 坂本 昌彦 [email_address] 3. Erlangって? Ericsson社(スウェーデン, ストックホルムにある電話通信会社)が開発した言語 1982-1986年くらいまで、いろんな言語(Lisp, Prolog, Parlogなど)を研究して、並行・耐障害性・適度に抽象的な言語を探求したが・・・ 1987年、結局Erlangという言語を開発。 オープンソースになったのは1998年になってから。 実際はErlangという言語仕様+OTP(Open Telecom Platform)というSDKがセットで、Erlang/O
memsup メモリ周りなら id:voluntas さんに Rabbit MQ 見てみると良いとアドバイスを受け発見。 Erlang のメモリ使用量を監視して notify してくれる仕組み(supervisor)。 ユーザーが指定した上限か、物理メモリ上限に近づいたらデータを消していく仕組みに使えそう。 erlang:memory 前回の続きから。insert_op を走らせただけで 11KB プロセスサイズが増えるのはなぜか。 erlang:memory を実行してみて 2 つのことが分かった。 process_used のトータルは -92KB と減っている。 (全くの別件だが) erl のオプションで +P 134217727 と最大値を設定しているせいで初回におおきくメモリ領域が予約されてしまう模様。 Total (- 1080364952 1080438392) -73KB
Erlangってば、変な構文だし/なんか古くせーし …… だけどね、並列分散アプリケーションがこんなに簡単に作れる環境って他にないと思いますね(あったら教えて) -- そこがなんつっても魅力だわ。 分散アプリケーションといえば、ErlangではCORBAサポートが随分と充実しているようです。でも残念! 僕、CORBAよく知らん。それにCORBAってオオゲサなんじゃないの(よく知らんから雰囲気で言ってるだけだが)。CORBAよりお手軽にクライアント・サーバー型分散アプリケーションを作れるフレームワークとして、gen_server(Generic Server Behaviour)ってのが用意されています。その使い方を紹介しましょう。 IDLコンパイラが骨組みは作ってくれる gen_serverを利用して分散(分散じゃなくてもいいのだけど)アプリケーションを作るとき、CORBAツールであるID
RESTfulな形でオンラインゲームサーバーを構築しようと考えていて、検索したら出てきたのがこの記事。 ErlangとYawsを使ったRESTfulなサービス@InfoQ これを読みながら「ほうほう、yawsにはout/1以外にもout/3なんていうつなぎ方があるのか。それなら勝ったも同然だな」と思ったのですが、記事にある関数宣言に従ったモジュールをyawsにくわせても、ちーっとも動かない。 で。しばらく考えて気がついた。 InfoQさんの記事は「out/3を自分で作るとRESTfulが作りやすくなるぜ」という意味だったのです。。。。 というわけで、とりあえずout/3を書いてみました。ちょろっと書くだけでmod_rewriteでごりごりやるようなRESTfulな処理が動くのはすごい便利。Yawsはぜひ使いこなしたいですね。 -module(sample_for_restful). -in
随時加筆してます 追記 2011-06-18 rebar.config の erl_opts から fail_on_warning から warnings_as_errors へ変更した rebar.config の xref に fail_on_warning を追加した インストールする Erlang を R14B03 へ変更した ライブラリ紹介に webmachine 、folsom 、ibrowse 、Emysql 、 statebox を追加した 2011-04-02 rebar.config の erl_opts から debug_info を消した rebar.config の実際に使っているベースを公開 Makefile に make edoc を追加した configure の例を hipe を使わないようにしているので native-lib を外した EUnit につい
Twitter は Ruby on Rails で構築されたそのインフラを徐々に Scala に置き換えているそうだ (Technology Review の記事, 本家 /. 記事) 。 Twitter ではフロントエンド、バックエンド共に Ruby on Rails が使われていたが、最近では大量のメッセージを処理できず「Fail Whale」出現の原因となったりしていた。このため Twitter の開発チームは代替言語として Scala を採用、少しずつバックエンドやインフラを Scala に置き換えているそうだ。スイス連邦工科大学ローザンヌ校の Martin Odersky 氏によって開発された比較的新しいプログラミング言語である Scala は並列プロセスの処理に長けている点が Twitter に向いており、また言語としてのフレキシビリティも開発にとっては魅力とのこと。短所として
TwitterさんはたくさんAPIを公開しており, 開発者からしたら頭が下がる想いですが, その中でもちょっと特殊なStreaming API. Twitter API Wiki / Streaming API Documentation Public Timeline上を流れるつぶやきを次々と受け取るAPIですね. 種類があるのでとりあえず書いておきます. メソッドの種類 sampleメソッド Public Timeline上のつぶやきをランダムにピックアップし, 応答として返してくれるメソッドです. 「とりあえずどんな感じなのか知りたいんだけど」って人にもってこいです. URL http://stream.twitter.com/1/statuses/sample.format リクエストメソッド GET firehoseメソッド Public Timeline上の全つぶやきを応答とし
ついぞ最近node.jsなんてのがでて、繁華街のあちこちでチヤホヤされてる。そんなときに、モヒカン族Erlang村(erlang-questions)に「node.jsってどうなの?」的燃料が投下されたわけですよ。これは炎上しそうだ…と追いかけてたら、ネタどころか案外真面目なハナシばっかりだったのですが。まずは真面目に問いかけをする純朴な成年(想像)。 「Erlang好きだし使ってるんだけど、Erlangとnode.jsてそれぞれどういうジャンルがすごいの?RabbitMQとかejabberdみたいなのつくろうとしたらどうなるの?簡単なチャットサーバーつくるくらうならnode.jsのが断然簡単だよね?分散システムで使うなら断然違うとか? Ulf Wigerによると、ブロックする関数の問題を簡単に解決してくれるとか書いてあるみたいだけど (link)」 おっお。素直な質問。これはみんな釣られ
先日、こちらの Erlang の世界ではmemcachedとか要らない を興味深く読ませて頂きました。 たしかにクライアント側も Erlang で書かれている場合、例えばキャッシュサー バーにアクセスを行う WEB アプリケーションも Erlang で書かれていれば Erlang のプロセス間通信を使用することで簡単にキャッシュサーバを実装する ことが出来そうです。しかし、WEB アプリケーションなど、全てのシステムを Erlang で書くにはまだ私にとって勇気が要る事なので TCP/IP で memcache プ ロトコルを喋る Erlang 版 memcached を作ってみました。 その名も ememcached です。 % ememcached.erl -module(ememcached). -export([start/0, ememcached/1, process_comm
Navigation index Erlang User's Guide v5.8.1 documentation » This Page Show Source Quick search Enter search terms or a module, class or function name. Erlang Efficiencyガイド¶ 1. イントロダクション 1.1. 目的 1.2. 条件 2. Erlangのパフォーマンスに関する8つの都市伝説 2.1. 都市伝説: funは遅い 2.2. 都市伝説: リスト内包表記は遅い 2.3. 都市伝説: 末尾再帰関数は、再帰関数と比べて「べらぼう」に高速である 2.4. 都市伝説: ‘++’ は使用しないほうがいい 2.5. 都市伝説: 文字列は遅い 2.6. 都市伝説: Detsファイルの修復はとても時間がかかる 2.7. 都市伝説:
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く