タグ

erlangに関するmsyktのブックマーク (58)

  • Erlang Style

    msykt
    msykt 2016/11/27
    akkaでErlangのselective receiveを対応する件。うーん
  • A Ramble Through Erlang IO Lists

    programming in the twenty-first centuryIt's not about technology for its own sake. It's about being able to implement your ideas. The IO List is a handy data type in Erlang, but not one that's often discussed in tutorials. It's any binary. Or any list containing integers between 0 and 255. Or any arbitrarily nested list containing either of those two things. Like this: [10, 20, "hello", <<"hello",

    msykt
    msykt 2014/07/28
    “The key to IO lists is that you never flatten them. They get passed directly into low-level runtime functions (such as file:write_file), and the flattening happens without eating up any space in your Erlang process.”
  • Erlang's iolist

    Look Mom, no object I don't remember who sold me object orientation, but he was a great liar. — José Valim In Erlang, there are no objects. It's a purist and functional language. Everything is made of primitives types; three differents kind of lists (list, tuple, binary), no decent string representation. It's one of the weird things when you discover Erlang. Weirdness and integrism are the beauty

    msykt
    msykt 2014/07/28
  • 「すごい Erlang ゆかいに学ぼう!」という本が7月に出ます - kuenishi's blog

    すごいErlangゆかいに学ぼう! 作者: Fred Hebert,山口能迪出版社/メーカー: オーム社発売日: 2014/07/26メディア: 単行(ソフトカバー)この商品を含むブログを見る いままでいろんな観点からErlang/OTPに関するが出てきたが、このはそのErlangの技術の集大成といっていいだ。コレ一冊読んでおけば間違いない。他のは忘れてもいい。あえていうなら、これを読んだ後にもっと詳しい作者自身の哲学を知りたい場合だけ、戦闘機を読めばよい。だが他のは別にいらない。内容が古かったりツールを網羅していなかったりするためだ。 原著は Herokuエンジニア Fred Hebert のWeb記事をもとにしただ。 Learn You Some Erlang for Great Good!: A Beginner's Guide 作者: Fred Hebert出版

    「すごい Erlang ゆかいに学ぼう!」という本が7月に出ます - kuenishi's blog
    msykt
    msykt 2014/06/26
    “いままでいろんな観点からErlang/OTPに関する本が出てきたが、この本はそのErlangの技術の集大成といっていい本だ。コレ一冊読んでおけば間違いない。他の本は忘れてもいい。”
  • Shibu's Diary: 未来のないJavaScriptと非同期とErlang

    渋日記@shibu.jp 渋川よしきの日記です。ソフトウェア開発とか、ライフハックを中心に記事を書いていきます。 JavaScriptはもう好き嫌いを超えて、最低限の読み書きはもはや教養レベルといっても言い過ぎではないと思います。ブラウザ限定だったら他の言語もありますが、ブラウザで標準で使える言語はJavaScript以外には選択肢はありません。3DCG系のツールのマクロ言語は未だにPythonがトップシェアだと思いますが、Flash, Photoshop, Illustratorの仕事を効率化するマクロ言語はJavaScriptですよね。先日AppleのOS Xの次期バージョンの自動化ツールが独自言語に加えてJavaScriptをサポートすることを発表しました。サーバサイドで使われるnode.jsは、コンパイル言語を除けばトップクラスの性能です。QtもQMLとしてJavaScriptを中

    msykt
    msykt 2014/06/26
    “この本は「関数型ってよく聞くけど、よくわからないな」という人にも良いと思います。”
  • CouchDB Source Code Reading part4

    couch_db_updater:refresh_validate_doc_funs/1 今回はcouch_db_updater:init/1から呼び出している関数の中でまだ見ていないrefresh_validate_doc_funs/1を読んで行きます。 couch_db_updater.erl: 1refresh_validate_doc_funs(Db0) -> 2 Db = Db0#db{user_ctx = #user_ctx{roles=[<<"_admin">>]}}, 3 DesignDocs = couch_db:get_design_docs(Db), 4 ProcessDocFuns = lists:flatmap( 5 fun(DesignDocInfo) -> 6 {ok, DesignDoc} = couch_db:open_doc_int( 7 Db, Des

    msykt
    msykt 2014/06/16
    ブログ書いた
  • CouchDB Source Code Reading part3

    couch_db_updater:init_db/6の以下の部分を掘り下げてみたいと思います。 couch_db_updater.erl: 1 {ok, IdBtree} = couch_btree:open(Header#db_header.fulldocinfo_by_id_btree_state, Fd, 2 [{split, fun(X) -> btree_by_id_split(X) end}, 3 {join, fun(X,Y) -> btree_by_id_join(X,Y) end}, 4 {reduce, fun(X,Y) -> btree_by_id_reduce(X,Y) end}, 5 {compression, Compression}]), 6 {ok, SeqBtree} = couch_btree:open(Header#db_header.docinfo_

    msykt
    msykt 2014/06/08
    ブログ書いた。『CouchDB ソースコードリーディング その3』
  • CouchDB Source Code Reading part2

    couch_db_updater:init/1 前回はヘッダ部を読み込むコードを読んだので、今回はDBの読み込み準備?のところを読んでみます。couch_db_updater:init/1からinit_db/6を呼び出す手前のところから。 couch_db_updater.erl: 1init({MainPid, DbName, Filepath, Fd, Options}) -> 2(..sinp...) 3 ReaderFd = open_reader_fd(Filepath, Options), 4 Db = init_db(DbName, Filepath, Fd, ReaderFd, Header, Options), 5 Db2 = refresh_validate_doc_funs(Db), 6 {ok, Db2#db{main_pid = MainPid}}. ヘッダ読み込

    msykt
    msykt 2014/05/26
    ブログ書いた。『CouchDB ソースコードリーディング その2』
  • 分散DBMS「Mnesia」の並列処理 - インターネットコム

    はじめに Mnesiaは、Erlangという言語をベースとした並列プログラミング用のオープンソース開発環境であるErlang OTPに付属している高機能のデータベース管理システム(DBMS)です。Mnesiaは真の分散DBMSなので、世界中の何千ものノード間でデータを分散し、複製し、断片化することも朝飯前です。ユーザーがしなければならないのは、Mnesiaデータベースの分散先となるさまざまなErlangノードを実行することだけです。 Mnesiaという名前になった経緯は、少々眉唾ではありますが、もともとは「Amnesia(健忘症)」という名前だったものを、エリクソンの重役が「データベースに『物忘れ』を連想させる名前を付けるのはいかがなものか」と発言したことから、エンジニアが「A」の文字を取って「Mnesia」とし、「すべてを記憶するもの」の意味を持たせたと言われています。Mnesiaは、

    msykt
    msykt 2014/05/25
    Mnesiaもコード読んでみたい
  • CouchDB Source Code Reading part1

    Why CouchDB? 数年前にCouchDBのデータフォーマットについて解説しているページを読みました。CouchDBの内部ではデータをB+treeで保持しており、且つデータはappend onlyでMVCCである、という部分が面白くて、その時からCouchDBに興味がありました。しかしコードがErlangで書かれており、当時の私にはCouchDBのコードを読むことができませんでした。 1年ほど前からErlangのコードにちょっとずつ触れるようになり、CouchDBのコードも時間をかければ読めるような気がするので、気が向いた時にちょっとずつ読んでいこうと思います。 当はある程度読んでまとめてからアウトプットしようと思っていたのですが、正直言ってかなり苦戦していて、まとめられる気がしなくなったので、読んだところからダラダラと書いていくことにしました。ですので、続かないかも。 Sourc

    msykt
    msykt 2014/05/25
    ブログ書いた。『CouchDB ソースコードリーディング その1』
  • 歌舞伎座.tech#3「Real World Erlang/OTP」 (2014/03/07 18:30〜)

    新機能 バウチャーによるイベント管理機能をリリースしました。協賛企業の社員や関係者のイベント参加を円滑にすることに活用いただけます。詳しくはヘルプページをご覧ください。 新機能 connpass APIに新しく、所属グループを取得できるAPIやユーザーの参加イベントAPIを追加しました。各APIの詳細な仕様や利用方法につきましては、 APIリファレンス をご確認ください。またAPI利用希望の方は connpassのAPI利用について をご覧ください。 お知らせ 2024年9月1日より、connpassではスクレイピングを禁止し、利用規約に明記しました。以降の情報取得にはconnpass APIをご利用ください。APIご利用についてはヘルプページをご確認ください。

    歌舞伎座.tech#3「Real World Erlang/OTP」 (2014/03/07 18:30〜)
    msykt
    msykt 2014/02/24
    楽しみ!
  • LinkedIn Login, Sign in | LinkedIn

    msykt
    msykt 2014/02/12
    ちょっと気になるので後で読む
  • HanoiDB - and Other Riak Hacks

    Keynote presentation by Kresten Krab Thorup from Erlang Workshop 2012, at ICFP Copenhagen. Code at http://github.com/krestenkrab/hanoidb

    HanoiDB - and Other Riak Hacks
    msykt
    msykt 2014/02/11
  • tkyk.name - このウェブサイトは販売用です! - tkyk リソースおよび情報

    このウェブサイトは販売用です! tkyk.name は、あなたがお探しの情報の全ての最新かつ最適なソースです。一般トピックからここから検索できる内容は、tkyk.nameが全てとなります。あなたがお探しの内容が見つかることを願っています!

  • Erlangリリースパッケージ生成ツール用設定ファイルのサンプル

    reltool.config �� V ��� V {sys, [ {lib_dirs, ["../deps"]}, %% depsを追加 {erts, [{mod_cond, derived}, {app_file, strip}]}, {app_file, strip}, {rel, "hogeapplication", "0.1", [ %% 標準で使うライブラリも全て追加 kernel, stdlib, sasl, compiler, crypto, ssl, public_key, inets, syntax_tools, %% 自分で組み込んだライブラリも、直接依存しないものも含めて全て追加 poolboy, epgsql, postgres_pool, hogeapplication ]}, {rel, "start_clean", "", [ kernel, stdli

    Erlangリリースパッケージ生成ツール用設定ファイルのサンプル
  • Erlang: WhatsAppを支える技術 (その1) - ワザノバ | wazanova.jp

    [Video] http://vimeo.com/44312354#at=0 [Slide] http://www.erlang-factory.com/upload/presentations/558/efsf2012-whatsapp-scaling.pdf WhatsAppは日でいうところのLineにあたるサービスでしょうか。このニュースによると、WhatsApp: 月間UU3億、WeChat: 月間UU2.3億、Skype: 月間UU2.8億、Line: 登録2億 (UUは発表しないんですね。。) ということですから、相当でかいですね。 昨年になりますが、Rick Reed (WhatsApp <- Yahoo! <- SGI)が、同サービスを支える、数百万ユーザの同時接続システムについて、SanFranciscoのErlangのカンファレンスで語ってます。 メッセージのトラフィ

    msykt
    msykt 2013/10/11
  • QuickCheck 勉強してみよう 最初の一歩の前段階 - いたわさににほんしゅ

    プログラムを書く際には、ユニットテストも書くでしょう。まぁどっちを先に書くか、という話は置いといて。テストの自動化は品質面でもコスト面でもプラスになるため、できるだけ網羅的にやりたい。しかし網羅は無理なので適当なところで切り上げます。 そこで、前から名前だけは知ってて気になっていた QuickCheck を調べてみようという気になりました。なんと ja.Wikipedia に項目がない、en でもなんかさっぱり短い説明です。Further Reading と External Links が有用そう。まぁ読んでませんが。 QuickCheck - Wikipedia, the free encyclopedia ざっとまとめるとこんなかんじ。 テストケースを「生成」する。 テスト対象の関数が持つ「論理的性質」を確認する。 Haskell が家。GHC と HUGS で動く。 その他、いろ

    QuickCheck 勉強してみよう 最初の一歩の前段階 - いたわさににほんしゅ
  • モダンErlang/OTP開発環境 2013 - kuenishi's blog

    とりあえずモダン○○といっとけばいいかなと思ったが、モダニズムとか言ってた頃からモダンという言葉には「最近の」「ナウい」とかその程度の意味しかないのでそんなにありがたい話ではないことにご注意いただきたい。大正とか昭和初期のオバちゃんが「いや〜モダンやわぁ〜」とか言ってたのと同じだ。今ではもうばあちゃんだな。 エディタ 世間にはエディタを巡って宗教対立が発生し、場合によっては宗教戦争になるそうだがErlang/OTPの世界においてはそれは起き得ない。なぜならEmacsがデフォルトの開発環境として推奨されており、メジャーモードが処理系のディストリビューションに含まれているからだ。さまざまな便利ショートカットが用意されているので M-x tempo- と入れて補完されるものを眺めるとよいだろう。 パスを通して (require 'erlang-start) (require 'erlang-fl

    モダンErlang/OTP開発環境 2013 - kuenishi's blog
    msykt
    msykt 2013/09/18
    モダンemacs環境きた!
  • 型チェックライブラリ「Sheriff」を試してみる | Erlearng+

    msykt
    msykt 2013/09/17
  • Profiling — Erlang System Documentation v27.0.1

    View Source Profiling Never Guess About Performance Bottlenecks Even experienced software developers often guess wrong about where the performance bottlenecks are in their programs. Therefore, profile your program to see where the performance bottlenecks are and concentrate on optimizing them. Erlang/OTP contains several tools to help finding bottlenecks: tprof is a tracing profiler that can measu

    msykt
    msykt 2013/09/03