タグ

erlangに関するsleepy_yoshiのブックマーク (20)

  • Erlang で memcached を作ってみました。 : DSAS開発者の部屋

    先日、こちらの 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

    Erlang で memcached を作ってみました。 : DSAS開発者の部屋
  • Erlang の if 文のガード(条件節)に記述可能な関数 - 木曜不足

    何にでも手を出すのが信条、今巷で流行っているという噂の Erlang に手を出さずにおくべきか! というわけでは必ずしもないんだけど、ちょっと Erlang かじってます。 実は関数型言語を触るのは事実上初めてなので ( XSLT も一応関数型に分類されているけど、ちょっと違うしなあ)、ずいぶん戸惑いつつ、Programming Erlang あたりをせっせと読む今日この頃。 で、戸惑ったことは結構いろいろあるわけだが、「 illegal guard expression 」と頻繁に怒られてしまうことに一番参った。 これは例えば以下のように書くと出る。 X = 9. if math:sqrt(X) == 3 -> ok end. guard というのは if や when に使う条件節のことで、この場合は math:sqrt(X) == 3 のこと。 でも何が illegal なのかわから

    Erlang の if 文のガード(条件節)に記述可能な関数 - 木曜不足
  • MessagePack-RPC Erlang(α版くらい) - kuenishi's blog

    実は、このブログの下書きは一年ほど前の第一回Hackathonの時点でできていたのですが、日(2011/4/3)めでたく第三回が開催され、いい機会なのでここで公開することにしました。 シリアライザ・デシリアライザ Pure Erlangで書きました。大昔に書きなぐったものを掘り起こして復活させました。既にCの実装があるのだからNIFなり何なりで高速化すればいいじゃないというのも少し考えましたが、ポータビリティとメンテナンス性を考えるとベタ書きの方がトータルとしては楽かなぁと思ってこうしています。何よりbinary matchingが素晴らしすぎる(性能計ってみたいんだけど、どーせ遅いのは分かっているんだけど、それはErlangの処理系がそもそも遅いのであってserialization/deserializationが速いかどうか判断できないと思うんだよね。NIFの実装とbinary ma

    MessagePack-RPC Erlang(α版くらい) - kuenishi's blog
  • Erlang に興味を持った人へ - Twisted Mind

    随時加筆してます 追記 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 につい

    Erlang に興味を持った人へ - Twisted Mind
  • 侵略!イカ娘!がErlangにもやってきました - kuenishi's blog

    ついに!非常事態です!! まずは何が起きているのか確かめましょう! -module(spam). -compile(export_all). -include("geso.hrl"). ham()-> egg, hage. hoge()-> huga. hello()-> io:format("hello!~n", []). eecho(E)-> io:format("~p~n", [E]). 実際にこれを対話的インターフェースで実行してみます。 shuna:~ kuenishi$ erl Erlang R14A (erts-5.8) [source] [64-bit] [smp:2:2] [rq:2] [async-threads:0] [hipe] [kernel-poll:false] Eshell V5.8 (abort with ^G) 1> c(spam). {ok,spam}

    侵略!イカ娘!がErlangにもやってきました - kuenishi's blog
  • azito.com

    This domain may be for sale!

  • Erlang実験室:分かりにくいと評判のErlangエラーのまとめ - 檜山正幸のキマイラ飼育記 (はてなBlog)

    Erlangのエラーメッセージは暗号のようだ(Cryptic error messages)とか言われたりします。確かに分かりにくいです。http://bluebones.net/2006/12/erlang-error-messages/ に良いまとめがあった*1ので、これを敷衍<ふえん>する形で説明します。 内容: 例外の一般論 ランタイムエラーとスタックトレース reasonタームの一覧 ●例外の一般論 Erlangの例外(exceptions)は次の3種に分類されます。 throw例外 : ユーザー(プログラマ)が任意の時点で生成する例外 exit例外 : プロセス*2の終了に伴って生成される例外 error例外 :主にシステムが生成するランタイムエラー それぞれの例外を、次の関数で引き起こす(raiseする)ことができます。 throw(Term) exit(Term) erla

    Erlang実験室:分かりにくいと評判のErlangエラーのまとめ - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • Erlang Performance - KLablabWiki

    概要 並列処理に適したプログラミング言語 Erlang は、マルチプロセッサの環境で 効率よくパフォーマンスが向上すると言われています。そこで実際のマルチプ ロセッサ環境で様々な Erlang プログラムを走らせる検証を行ってみました。 行った検証の内容は以下の通りです 並列ソート N-Queen 問題 検証環境 ハードウェア Sun Fire T1000 CPU UltraSPARC T1 メモリ 16G OS  Solaris 10 8/07 Erlang 実行環境 OTP 12B-0(hipe 有効) 今回使用した UltraSPARC T1 プロセッサ は 8つのコア×4スレッド(CoolThreads)という構成 で合計 32個の並列処理が可能となっています。なお、検証に使用した Sun Fire T1000 はサン・マイクロシステムズ(株)様よりごお貸し頂きました。 ソース

  • 人気AV女優エロ動画集erlang-users.jp - 人気AV女優エロ動画集erlang-users.jp

    お問い合わせフォーム 当サイトは「児童ポルノコンテンツ」および「無修正コンテンツ」は一切掲載しておりません。もし万が一、当サイトで掲載が確認された場合は、即削除対応いたします。該当するコンテンツが御座いましたら、お手数では御座いますが問い合わせフォームご連絡いただけましたら幸いです。 ※当サイトコンテンツは他サイトRSSから自動収集しております

    人気AV女優エロ動画集erlang-users.jp - 人気AV女優エロ動画集erlang-users.jp
  • Erlang で Consistent Hashing 実装 - higepon blog

    自作 memcached-client に必要だったので、ConsistentHashing - コンシステント・ハッシュ法 の解説を参考に Erlang で Consisten Hashing を実装した。 環状の配置は ETS の orderd_set を利用している。 レプリカを挿入しているところと get_node で next, first を使っているあたりが肝。 -module(chash). %% API -export([new/1, delete/1, add_node/3, remove_node/2, get_node/2]). -define(NUMBER_OF_REPLICAS, 100). %%==================================================================== %% API %%======

    Erlang で Consistent Hashing 実装 - higepon blog
  • はてなブログ | 無料ブログを作成しよう

    うめぇヨーグルトソースでもいかがですか。個人差にもよりますが。もしよろしければ。 お久しぶりです。 最近うんめぇ〜と思ってるヨーグルトソースがあるので、書いていこうと思います。 ヨーグルトとハーブ類をもりもり使うので、そういうのがべられない方にはうんめぇソースではないです。ごめんなさい…。もしよろしければお茶だけも…旦~ 【用意する…

    はてなブログ | 無料ブログを作成しよう
  • erlang — erts v15.0.1

    View Source erlang (erts v15.0.1) The Erlang BIFs and predefined types. By convention, most Built-In Functions (BIFs) and all predefined types are included in this module. Some of the BIFs and all of the predefined types are viewed more or less as part of the Erlang programming language and are auto-imported. Thus, it is not necessary to specify the module name. For example, the calls atom_to_list

    sleepy_yoshi
    sleepy_yoshi 2009/12/30
    BIF function list
  • Index - Erlang/OTP

    fact(0) -> 1; %% Pattern matching for control-flow fact(N) -> N * fact(N-1). %% Recursion to create loops > example:fact(10). %% Interactive shell for fast iterations 3628800 > [{I, example:fact(I)} || I <- lists:seq(1,10)]. [{1, 1}, {2, 2}, {3, 6}, {4, 24}, {5, 120}, {6, 720}, {7, 5040}, {8, 40320}, {9, 362880}, {10, 3628800}] > Fruits = ["banana","monkey","jungle"]. %% Immutable variables ["bana

    Index - Erlang/OTP
  • go言語でリングノードベンチマーク - 数あるブログの一つ(タイトル未定)

    go言語でリングノードベンチマークを書いてみました。 リングノードベンチマークとは、もともとプログラミングErlangというに出てくる練習問題です。 プログラミングErlang 作者: Joe Armstrong,榊原一矢出版社/メーカー: オーム社発売日: 2008/02/23メディア: 単行(ソフトカバー)購入: 8人 クリック: 284回この商品を含むブログ (97件) を見る以下引用: 2. リングのベンチマークを書いてみよう。N個のプロセスからなるリングを作り、1つのメッセージがリングをM回まわるようにして、合計でN*M個のメッセージが送信されるようにする。さまざまなNとMの値について所要時間を測ってみよう。 自分が得意なほかのプログラミング言語で同様のプログラムを書いて結果を比べてみよう。ブログを書いて結果をインターネットに公開しよう! ということなので、ブログを書いて公開

    go言語でリングノードベンチマーク - 数あるブログの一つ(タイトル未定)
  • Process Dictionary、dict、ets、gb_trees の速度比較 - cooldaemonの備忘録

    それぞれの用途が異なるので、速度比較に意味があるのか疑問だけれど・・・単純なキー・値のペアを保持する場合の速度比較を行なってみた。 何度か試した結果、保存・取得共に process dictionary、ets、dict、gb_trees の順に早い。 gb_trees 比べて dict の速度が優秀で意外だった。 検証コードは下記の通り。 -module(benchmark). -author('cooldaemon@gmail.com'). -export([run/1]). run(Count) -> Keys = lists:seq(1, Count), lists:foreach( fun ({F, TargetName}) -> {[SetRunTime, SetWallClock], [GetRunTime, GetWallClock]} = F(Keys), io:fwri

    Process Dictionary、dict、ets、gb_trees の速度比較 - cooldaemonの備忘録
  • たけまる / ets で bag と set のどちらを使うべきか

    _ ets で bag と set のどちらを使うべきか [erlang] Erlang には ets というハッシュテーブルがあります.これはプロセス間 で状態を共有するときなどに利用します. 一般のハッシュテーブルは,キーに対応する値をひとつしか持てませんが, ets では複数の値を持たせることができます.そのためには,初期化する ときに bag という種類のテーブルを指定します. bag では一つのキーが複数の値を持つことができます.

  • 「実践 Erlang」講義用資料 まとめ - Twisted Mind

    たけまるさんにご推薦いただき、とあるところで Erlang の講師をやることになったので資料を作るメモ 講義について # 明日にでもまとめます 以下での補助事業の一部で「実践 Erlang」の講師を担当させていただくことになりました。 コミュニティから広島に Erlang を広めたいという話を伺い、 少しでもお役に立てればと言うことで快諾させていただきました。 平成21年度「地域経済情報化基盤整備補助事業」 ビジネスベースひろしま−3ESC−コンソーシアム(中国) http://www.meti.go.jp/information/data/c90810dj.html 地域製造業に求められる「エレクトロニクス 化」を促進するために、高機能や新しいサービス を実現するソフトウェア開発を担う地域の中小 IT ベンダおよび係わる人材を育成する。また、 高度化・高付加価値のソフトウェアを提供する体

    「実践 Erlang」講義用資料 まとめ - Twisted Mind
  • Erlang Tips

    Erlang に関する情報を,自分用メモを兼ねて作成しました. 間違い等見つけた方はブログのエントリまで連絡いただけるとうれしいです. 最終更新:2007/07/04 23:56 目次 Erlangの特性 Erlangは以下のような特徴があります. 簡単に言うと,ネットワークサーバを書くのに向いています. 得意なこと ・大量の並列処理 ・複数サーバでの分散処理(ただしEthernet経由で通信するので専用インターコネクトほどは速くないと思います) 苦手なこと ・純粋な計算処理(C言語の10倍程度遅いようです) ・GUIアプリケーション(WingsというErlangでかかれたGUIアプリはあるが,GUI周りの情報は少ないです) ありそうな勘違い ・マルチコア・SMP環境にすれば,コア数に比例して性能が向上する. →もちろん条件によるので,必ず比例するわけではありません. SMPサポートは条件

  • Erlang クエックブック

    文字列 文字列を数値に変換する list_to_integer("123"). % 123 list_to_integer("-10"). % -10 n進数の文字列を数値に変換する u は指定した基数で変換、# は文字列が表現している基数で変換します。 io_lib:fread("~16u", "100"). % {ok,[256],[]} io_lib:fread("~2u", "100abc"). % {ok,[4],[abc]} io_lib:fread("~36u", "100%%%"). % {ok,[1296],"%%%"} io_lib:fread("~#", "16#100"). % {ok,[256],[]} io_lib:fread("~#", "2#100abc"). % {ok,[4],[abc]} io_lib:fread("~#", "36#100%%%").

  • Erlangの世界ではmemcachedとか要らない - みかログ

    Erlangを始めてから感じたことは,今までPerlでやっていた時に比べて,いろいろなやり方が出来るようになる,ということ. Webアプリに限らず,いろいろなアプリケーションで,より柔軟な設計が出来るようになると思う. Perl(や同種のスクリプト言語では)基的に1プロセス1スレッドの範囲内に縛られていて,コストを考えるとコードの一部の処理だけ並列処理することは出来なかったし,複数のプロセスでデータを共有しようと思うと基的にはDBに入れるしかなかった. たとえば,Perlで作られている大規模なサイトでは,DBの負荷を軽減するためにmemcachedが使われていることが多い. もしErlangでサイトを作っていれば,memcachedなどをわざわざ使うまでもなく,同様のことが簡単に書けてしまう. 単にmemcachedと同じ事をするだけであれば大きなメリットは無いけれども,自前で書いた場

    Erlangの世界ではmemcachedとか要らない - みかログ
  • 1