タグ

Erlangに関するsomemoのブックマーク (52)

  • ニコニコ生放送の配信基盤改善

    ニコニコ生放送では配信系のシステムにErlangの採用が増えてきています。あまり聞きなれない(と思う)Erlangという言語、この言語のどこにニコニコ生放送で採用されるだけの良さがあるのか、また、Erlangにすることで何が変わるのか、そして、どうやってErlangという言語を採用し、既存のサービスを置き換えているのか、ドワンゴの文化的な背景も交えてお話しさせていただきます。 2015年2月19日 Developers Summit 2015 発表資料です http://event.shoeisha.jp/devsumi/20150219/session/639/

    ニコニコ生放送の配信基盤改善
  • Erlang/OTP並行プログラミングシステムに見る情報システム技術の課題 - 第62回SEA関西プロセス分科会

    A Japanese presentation on Erlang/OTP about how the language/system is used, and what Erlang/OTP proposes to the programming communities with the strict semantics avoiding sharing among the data structures.

    Erlang/OTP並行プログラミングシステムに見る情報システム技術の課題 - 第62回SEA関西プロセス分科会
  • Kabukiza Erlang Lightning Talk - Euler with Erlang

    Kabukiza Erlang Lightning Talk - Euler with Erlang http://kbkz.connpass.com/event/8926/ http://live.nicovideo.jp/gate/lv197716856Read less

    Kabukiza Erlang Lightning Talk - Euler with Erlang
  • Error handling in Erlang and Scala

    Math Discourse colloquium with Dr. Lucianna de Oliveira and Ms. Judith O'Loug...Dr. Kate Mastruserio Reynolds

    Error handling in Erlang and Scala
  • 「プログラミングErlang」のRing Benchmark をAkkaでやってみた - Milestones to EVERPEACE 〜alius via〜

    「プログラミングErlang」のRing Benchmarkをやってみた の続編です。今度は、Akkaでやってみました。 github.com/everpeace/ring-benchmark-in-akka ErlangでプロセスといっていたのがAkkaではアクターになります。 ちょっとだけ違うのは、Erlangのプロセスは Pid = spawn(somefunction) ってやると、somefunctionが実行されると終わっちゃうけれど、Akkaのアクターは class Hoge extends Actor{ def receive ={ case 'msg => println('msg) } } とやっても終わらずにメッセージを待ち続けるところ。あるメッセージを受け取ったときに終了したいなら、こんな風に自分にPoisonPillを飲ませてやればOK. class Hoge e

    「プログラミングErlang」のRing Benchmark をAkkaでやってみた - Milestones to EVERPEACE 〜alius via〜
  • ドワンゴでのホットデプロイ事例

    A framework for easily creating beautiful presentations using HTML

  • なぜErlangにしたのか

    A framework for easily creating beautiful presentations using HTML

    somemo
    somemo 2014/11/02
    ニコ生
  • Erlangを学んでみてる - はこべにっき ♨

    Herokuがログ収集ツールの実装に使い始めたり(参考: Logging on Heroku)、RiakやCouchDBの実装に使われてたりというので興味を持って、プログラミングErlangを読んで見てる。2008年くらいの。 まだ半分くらいまでしか読んでないけど、アクターモデルの話とかはひと通り終わって、これから複数のノードでErlang上のプロセス連携させる話題に入る。処理系を起動させるだけで計算ノードになっていたりして、分散プログラミングに対するおもてなし度が高い。 並行プログラミングについて教えてくれる8章に練習問題がついていて、解けたらインターネットに公開しよう!って書いてあったので問題の引用と共に公開してみる。 リングのベンチマークを書いてみよう。N個のプロセスからなるリングを作り、1つのメッセージがリングをM回るようにして、 合計でN*Mのメッセージが送信されるようにする。

    Erlangを学んでみてる - はこべにっき ♨
  • Erlang + ranchでTCPサーバー - ごろねこ日記

    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

    Erlang + ranchでTCPサーバー - ごろねこ日記
  • 書籍検索|Ohmsha

    ※弊社発行書籍の正誤情報、ダウンロードデータは、該当書籍の詳細ページに掲載しています。該当する書籍を検索いただき、ご確認ください。

    書籍検索|Ohmsha
  • 1. 概要 — Erlang User's Guide v5.8.1 documentation

    1. 概要¶ OTPデザイン原則集は、プロセス、モジュール、ディレクトリといった用語セットを使って、実用的なErlangコードを組み立てるための原則集です。 1.1. 監視ツリー¶ Erlang/OTPの基的なコンセプトが、 監視ツリー (supervision tree)です。これは、 ワーカー 、 スーパバイザ といったアイディアを元にした、プロセスの構造化モデルです。 ワーカーは、計算を行うプロセスです。これは、その名のとおり実際に働きます。 スーパバイザはワーカーの振る舞いをモニターするプロセスです。スーパバイザは何か問題があった場合に、ワーカーを再起動することがあります。 は、スーパバイザとワーカーが階層状に配置されたコードで、フォールトトレラントなソフトウェアの設計とプログラム開発を行えるようにします。 監視ツリー 上記の図は、四角い箱がスーパーバイザーを、円がワーカーを示し

  • Erlangで分散ハッシュテーブルを実装してみた - NO!と言えるようになりたい

    並行言語であるErlangでPeer-to-Peer Network技術の一つである分散ハッシュテーブルを実装してみたところ,わずか1000行程度で実現できました.ノードが頻繁に出たり入ったりする,いわゆるchurn下でもそれなりの性能が出せたので,SourceForge.netで公開してみます.興味のある方はどうぞ. http://sourceforge.net/projects/ermdia/ 内部アルゴリズムはKademliaと呼ばれるものを利用しています.BitTorrent等でおなじみのアルゴリズムですが,データのput/getなどの通常のメッセージの交換時にルーティングテーブルをアップデートするため,ルーティングテーブルの維持コストがChord等に比べて低いという特徴があります.実装もそれなりに簡単で,過去にSymphonyと呼ばれる分散ハッシュテーブルを実装したのですが,それ

    Erlangで分散ハッシュテーブルを実装してみた - NO!と言えるようになりたい
  • なぜErlang/OTPなのか - kuenishi's blog

    このテーマ自体はさんざん語り尽くされていることである。たとえば山口君によるWhy Erlang? というブログ記事の翻訳や、戦闘機Programming Erlang: Software for a Concurrent World (Pragmatic Programmers))を読めば世間でいわれていることはよく分かる。もしくは、同僚が最近書いたソフトウェアデザインの記事を読んでもらってもよいだろう。 Software Design (ソフトウェア デザイン) 2014年 02月号 [雑誌] 出版社/メーカー: 技術評論社発売日: 2014/01/18メディア: 雑誌この商品を含むブログ (3件) を見る 私自身もErlangに出会ってから5,6年が経とうとしているが、当初はそのよさがよくわかっていなかったように思う。しかし、仕事で高可用性が要求される複雑な分散システムに携わるよう

    なぜErlang/OTPなのか - kuenishi's blog
  • riakのhandoffについて調べたこと — そこはかとなく書くよん。 ドキュメント

    riakのhandoffについて調べたこと¶ source code readingに向けて、riakのhandoffについて詳細を調べることとし ました。 というか、処理の流れをだいたい把握するために、自分のためにまとめたもの ですので、たぶん他の人には役に立たないと思います。 handoffについて¶ ring_updateが呼び出され、ringが更新されるとnodeの再配置が起こりますので、 各vnodeが担当しているringの範囲も変わってくるわけです。それに伴い、各 vnodeが持っている実際のデータを新しい担当vnodeに対して送る必要がありま す。これをhandoffと言います。 処理の流れ¶ riak_core_vnode_manager:schedule_management_timer/0 send_afterでタイマーがセットされ、management_tickごとに

  • Riak 2.0のPlumtreeを読む — そこはかとなく書くよん。 ドキュメント

    Riak 2.0のPlumtreeを読む¶ 昨年のRiakアドベントカレンダーでしのはらさんが、 Riak 2.0 : クラスタ全体のデータ共有を効率 という記事を書かれています。 これによると、Riak 2.0ではgossip protocolに加えて Plumtreeという論文 をもとに実装されるツリー状の経路を通って通信するプロトコルが追加される とのことです。 紹介されている スライド を読んでいて興味が湧いてきたのでriak_coreを読んで みることにします。 ちなみにlogを見ると、2013年8月1日にこれらの変更が最初に入ったようです。 tl; dr;¶ Riak 2.0からgossipプロトコルが効率良くなるよ 10台以上から有効化されるよ 01/23追記: 間違いでした!常にplumtreeが使われていて、gossipを使うのは最初のtreeを作るところだけでした。 用

  • なぜErlangなのか - YAMAGUCHI::weblog

    はじめに In-A-Gist — Why Erlang? 最近はErlang関連のWeb書籍の翻訳をしてまして*1、Erlang関連のニュースなどを収集して読んでいます。そこでたまたま見つけた面白そうなエントリがあって、翻訳しようかなと思っていたら@voluntasの兄貴ご推薦ということなので、日常生活を取り戻すべく翻訳してみました。 このエントリはinagistというサービスの公式ブログで、ErlangでWebサービスを作ることの利点を説明したエントリです。多少補足や外部リンクが必要な部分は僕がリンクを貼ったりしているので、わからない場合はご参照ください。あと翻訳が怪しいところがあるのでツッコミ歓迎。 なぜErlangなのか よく私がinagistはErlangで書かれていると言うとおかしな目で見られることがあります。なので、ここでErlangが適している重要な点をいくつかあげようと思い

    なぜErlangなのか - YAMAGUCHI::weblog
  • EUnit – Erlang, Testing and TDD

    Now and then, people ask me EUnit questions, and sometimes the problems consist of less obvious nuts and bolts.  So, let’s explore some special and yet common errors. For the purpose of this post, I will be using my previously seen numberserver (reposted here for your convenience). %%% @author Gianfranco <zenon@zen.home> %%% @copyright (C) 2010, Gianfranco %%% Created : 4 Oct 2010 by Gianfranco <z

    EUnit – Erlang, Testing and TDD
  • 「すごいErlangゆかいに学ぼう!」3章のラストと復習 - 虎塚

    「すごいErlangゆかいに学ぼう!」の読書メモ。 今日は3章全体を読み返して復習しつつ、3章ラストの「3.5 どれがいいの?」についてです。 (復習)関数宣言、関数節、関数のヘッド 前回よく分からないと書いたけど、脚注を読んだら書いてあった。飛ばしてすいません。 こういうことね。 (復習&疑問)case式を使って書かれたコードの書き替え 文p.42に、次のようなサンプルコードがある。 insert(X,[]) -> [X]; insert(X,Set) -> case lists:member(X,Set) of true -> Set; false -> [X|Set] end. その後、p.43に次の記述がある。 ちょっと前に書いたinsert/2関数は、ほぼ間違いなくcase式を使うほうが、関数呼び出しをしてtrueまたはfalseの節を持たせるよりすっきりします。 (上のサンプ

    「すごいErlangゆかいに学ぼう!」3章のラストと復習 - 虎塚
  • Scala と Erlang でリングベンチマーク:Rainy Day Codings:So-net blog

    [1] http://haskell.g.hatena.ne.jp/jmk/20070509/1178703858 [2] http://d.hatena.ne.jp/sumim/20070513/p1 リングベンチマークというのを Erlang と他の言語で作って比べてみると Erlang の軽量プロセスのすごさがわかるよという話。Scala で書いてみた。Scala のアクターを使ってみるのは初めて。 import scala.actors._ import scala.actors.Actor._ import Console._ import scala.actors.Exit object Ring { def main(args: Array[String]) = { val begin = System.nanoTime() start(args(0).toInt, args

  • 「プログラミングErlang」のRing Benchmarkをやってみた - Milestones to EVERPEACE 〜alius via〜

    最近「プログラミングErlang」を読んでいます。 プログラミングErlang 作者: Joe Armstrong,榊原一矢出版社/メーカー: オーム社発売日: 2008/02/23メディア: 単行(ソフトカバー)購入: 8人 クリック: 284回この商品を含むブログ (97件) を見る 今後、並行、分散プログラミングが主流になるにつれて、Erlangという言語のもつパワーやその背後に横たわっている並行、分散プログラミングについての考え方がとても重要だと思うからです。最近Scala界隈で良く耳にするAkkaフレームワークもこのErlangから影響を受けているようです。 で、このの中にこんな問題があったのでやってみました。 リングのベンチマークを書いてみよう。N個のプロセスからなるリングを作り、1つのメッセージがリングをM回るようにして、合計でN*Mのメッセージが送信されるようにする。さ

    「プログラミングErlang」のRing Benchmarkをやってみた - Milestones to EVERPEACE 〜alius via〜