タグ

erlangに関するakishin999のブックマーク (39)

  • 【メモ】私が愛する Elixir/Erlang の楽しさと辛さ - Taku’s Teckブログ

    元資料が素晴らしいためまとめる必要など全くないのですが、自己の整理のため、箇条書きにて書き起こししているものです Elixirのメリット なぜ流行らないのか? 伝えたいこと 難しいのであれば学ぶことを取捨選択して学習コストを下げる EVMの並行処理について 巷の良い話 巷の悪い話 EVM=OSと似たプロセスの仕組みを持つ プロセスとは どういうことか メリット ネットワーク上の一意な住所を持つとは? 速さはおまけ Elixirの関数型について 巷の良い話 巷の悪い話 Elixirは純粋な関数型ではない 純粋だと言われる条件 オススメの学習方法 プログラミングElixirを読む前に 活用の鍵 Elixirのリスト ※糖衣構文:プログラミング言語において、読み書きのしやすさのために導入される書き方であり、複雑でわかりにくい書き方と全く同じ意味になるものを、よりシンプルでわかりやすい書き方で書く

    【メモ】私が愛する Elixir/Erlang の楽しさと辛さ - Taku’s Teckブログ
  • Erlangを半年ほど使った感想+α - Qiita

    Erlangを半年ほど使った感想を書いていきます。 チョロい つまり言語機能がとても少ないと感じました。 例えば私が読んだErlangのはすごいEだけなのですが、全部で30章ある内の9章までで言語機能が大体出揃ってます。 実際、プロジェクトでコードを書き始めましたが、言語機能で困ったことはほぼありませんでした。 私は、言語機能は一番検索し難しい機能だと思っていて、少なくとも言語機能に関しては検索するのではなく、一通り何らかのドキュメントを読んでおかないと始まらないと思っています。 例えば Python で def f(a, b, *c, **d): と書いてあって「* と ** って何だ?」と疑問に思った時、[python * **][検索] とかしても多分まともな結果は出ないでしょう。 なので、最初にドキュメントを読む量が減るという点で、言語機能が少ないというのはとても良いと思ってい

    Erlangを半年ほど使った感想+α - Qiita
  • [Elixir][Jupyter]Play IElixir on Jupyter

    最近、Jupyterを知りました。 Python/Rubyで学んだのですが、Elixirでもあるか探してみたらありました。(なかったら作ってみようとしてた) 使い方は簡単で、Readmeに書いている通りにするだけです。 Jupyter https://jupyter-notebook.readthedocs.org/en/stable/index.html https://github.com/jupyter IElixir https://github.com/pprzetacznik/IElixir IErlang https://github.com/robbielynch/ierlang そのほか、利用可能なKernelは以下 https://github.com/ipython/ipython/wiki/IPython%20kernels%20for%20other%20lang

    [Elixir][Jupyter]Play IElixir on Jupyter
  • Erlang で仕事する一つの方法

    これは 2007 年頃の話です Erlang/OTP って何?という時期に Erlang/OTP で製品を作って利益を上げた日人はあまりいないとおもう。 せっかくなので振り返りついでに、自分の昔話を書くことにする。 Erlang/OTP の導入まで仕事でネットワークサーバを触ることになったのだが、当時の製品はシングルスレッドだった。当時はもうマルチコアだという話がでており、ではマルチコアを有効に使えるネットワークサーバを書くにはどうしたらいいのだろうか?というところから入った。 Erlang/OTP をやる前は Python で Django というところに興味があったくらい普通のウェブアプリスキーだった。 そのため何を血迷ったか Python でとりあえずネットワークサーバーを書いてみることにした。 stackless python 使ったり Twisted 使ったり multipro

  • ElixirからErlangVMにオプションを引き渡す - ハードリカーエンジニア

    Qiitaにて、shibacowさんのElixirでプロセス20万くらい作ってみたという素晴らしいElixirの記事があり、そちらの記事にて最大プロセス数の変更はどのように行えば良いのか自分自身でも気になったため調べたところElixirからErlangVMで生成できるプロセス数を(たぶん)変更できる方法を発見したので記事にしたいと思います。 # 実行環境 OS:OS X Yosemite Erlang:Eshell V6.5, OTP-Version 18 Elixir:v1.0.4 # まずはErlangでプロセス数の変更を確認 Qittaの記事にも記載されておりますが、 erl(1)のドキュメントには OTP-R18より +P オプションにてプロセス数の上限の設定は無効化されていると記載されています。ドキュメントはこちら ただし、実行してみると、どうも動いているようにも見えました。 $

    ElixirからErlangVMにオプションを引き渡す - ハードリカーエンジニア
  • Elixirでプロセス20万くらい作ってみた - Qiita

    Elixirでプロセス20万位作ってみた Elixirの下のErlang VMは軽量プロセスという仕組みを使って、並列プログラミングをサポートしている。ErlangのプロセスはOSのプロセスとは異なり、VM内でプロセスを切り替えている。 erlangやElixirではプロセスの使用を勧められる。 実際、どのくらいのプロセスが生成出来るか調べてみた。 process limitの引き上げ 20万プロセスまで生成出来た。それ以上はデフォルトのprocess limit に引っかかって起動出来なかった。erl +P 1000000 でprocess limit をあげられるそうだが、erlang r18からそのオプションは無効化されたそうで、何を指定すれば、process limitの上限をあげられるかわからなかった。 追記: erlang r18で+P オプションは無効化されてないそうです。

    Elixirでプロセス20万くらい作ってみた - Qiita
  • ElixirですごいE本 5章 - undefined

    5章 すごいErlangゆかいに学ぼう! 作者: Fred Hebert出版社/メーカー: オーム社発売日: 2014/08/11メディア: Kindle版この商品を含むブログ (1件) を見る 5.1 再帰の動き リストの長さ リストの長さを求める defmodule Recursion do def len([]), do: 0 def len([_|t]), do: 1 + len t end IO.puts Recursion.len [1,2,3,4] http://play.elixirbyexample.com/s/f148dc1a06 末尾再帰の長さ 末尾再帰に変更 defmodule Recursion do def tail_len(l), do: tail_len(l,0) def tail_len([], acc), do: acc def tail_len([_|

    ElixirですごいE本 5章 - undefined
  • Erlangユーザーズガイド — Erlang User's Guide v5.8.1 documentation

    システム原則¶ Erlangのシステムを作って、インストールして、稼働させるまでの流れが書かれています。 なお、後半は systools を使って targetsystem というリリースツールを作るという話になっていますが、現在のErlangの方向性としては、 systools の代替として、 reltools を開発している(ただし、まだ万全ではない)という流れになっているとのこと(V談)。そのため、リリースの流れを知る、という意味あいで読むのが良いと思います。詳しくは reltools のドキュメントを参照してください。

  • ErlangとWeb - ハードリカーエンジニア

    Webは並行である あなたがウェブサイトにアクセスする場合には同時平行性が発生します。 いくつかの接続が開かれ、リクエストは開かれた接続を通って送信されます。 そしてウェブサイトが画面に表示されます。 使用しているブラウザの設定に応じて、サーバーと4つか8つの接続を確立します。そしてこれは多すぎるわけではありません。 しかし接続について考えてみてください。 あなたはサーバーへアクセスしているただ一人の人ではありません。 何百、何千とまではいきませんが、同時に同じサーバーへ何百万もの接続を行うことができます。 今日でさえ、製造に使用されるシステムの多くはC10K問題(1万同時接続)を解決していません。 次のステップに到達するためにC100K問題を解決しようとしていますが、まだまだ解決にはほど遠い状態です。 一方、Erlangは数百万の接続を扱うことには問題はありません。 執筆時点では予備のメ

    ErlangとWeb - ハードリカーエンジニア
  • [翻訳] ElixirにおけるOTPの紹介 - Qiita

    前回に引き続き、Michael Kohlさんの2015年2月13日付のブログ記事An intro to OTP in Elixirの翻訳です。 OTPとは何か? ドキュメントによればOTP-Open Telecom Platform-は「並行プログラミングのために完備された開発環境」で、Erlangコンパイラとインタプリタ、データベースサーバー(Mnesia)、解析ツール(Dyalizer)それに多数のライブラリを含んでいます。人々がOTPについて話をするときに引き合いに出すのはこの後半の部分です。 ビヘイビア(ふるまい) Erlang/OTPのデザイン原則の中心的なもののひとつはアプリケーションのパターン、OTP用語でいうところの「ビヘイビア」です。ビヘイビアは共通的なタスクに対する汎用的な実装を定義します。その一例として汎用サーバー(gen_server)モジュールがあります。アプリケ

    [翻訳] ElixirにおけるOTPの紹介 - Qiita
  • 副作用から考える並行処理とアクターモデル - えちょ記

    相変わらずいきなり仕事が忙しくなっているので、また関数言語の話。 「関数言語は副作用が無いから並行処理に向いている」とよく言われます。ですが、そもそも副作用ってなんなんだ?という質的なところで理解できないことが多いんじゃないかなーと。そもそも私もその辺分かっているのか疑問なので、ちょっと考察してみる試みを。 副作用とは プログラミングにおける副作用(ふくさよう)とは、ある機能がコンピュータの(論理的な)状態を変化させ、それ以降で得られる結果に影響を与えることをいう。(Wikipediaより) これは多分逆に考えたほうが分かりやすい。「副作用が無い」というのは、同じ仕事をさせたら、いつも同じ成果を出すクールなやつということ。私のようにそのときの気分でやることが変わるのでは駄目なのです。 厳密には、以下の二つの条件、 「同じ条件を与えれば必ず同じ結果が得られる」 「他のいかなる機能の結果にも

    副作用から考える並行処理とアクターモデル - えちょ記
  • anyenv で erlang(elixir), go の環境を作った - HsbtDiary(2015-07-05)

    ■ anyenv で erlang(elixir), go の環境を作った これまで、特にバージョンについては気にしてもいなかったので homebrew から入れていたけど、新しいバージョンのキャッチアップなどをやりたくなったので anyenv 経由の erlenv, exenv, goenv で環境を作ることにした $ anyenv install erlenv $ anyenv install exenv $ anyenv install goenv exenv と goenv は単純に install コマンドでインストール出来る。 $ exenv install 1.0.5 $ goenv install 1.4.2 後はいつも通り global, rehash などで使うバージョンを設定。erlenv はインストールパス配下の releases というフォルダにマニュアルインスト

    anyenv で erlang(elixir), go の環境を作った - HsbtDiary(2015-07-05)
  • Linuxでkerlを使用して複数バーションのErlang/OTPを導入する - Qiita

    GNU/LinuxでのErlang/OTPの導入手段はいくつかあるが、ここでは kerl を使う方法を採用する。以下のような利点がある。 簡単に導入できる ( build と install コマンドを実行するだけ) 最新版のErlang/OTPが使える (erlang.orgで配布されているソースコードからビルドするのでリリース直後から使える) 複数バージョンのErlang/OTPを導入・管理できる 特に3はErlangで複数のシステムを開発・保守する際に重宝する。Erlangの異なるバージョンだけでなく、同じバージョンでビルドオプションを変えたもの(HiPEのあり/なし、最小構成のアプリケーションのみなど)をいくつでも導入して、切り替えながら使える。 準備 Erlangのビルドに必要なパッケージを導入する。 Fedora、RHEL、CentOSの場合 $ sudo yum instal

    Linuxでkerlを使用して複数バーションのErlang/OTPを導入する - Qiita
  • GitHub - zkessin/testing-erlang-book: A public book on testing Erlang

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - zkessin/testing-erlang-book: A public book on testing Erlang
  • ニコニコ生放送の配信基盤改善

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

    ニコニコ生放送の配信基盤改善
  • Elixir/cowboyとRailsのサーバーベンチマーク比較 - Qiita

    業務でAPIサーバーを作る事になり、何で実装しようか検討したという話です。 候補としてRails(定番)が上がっていたものの、 大量のリクエストを捌く必要があるので大変そう ビジネスの成長に合わせてスケールさせ辛い(スゴい勢いで成長する) そこまで複雑な処理はしない(別のサブシスでごりごりやる、こっちはRails製) という事で他の選択を検討しました。 選択しとして Erlang ( + cowboy ) Elixir ( + cowboy ) Scala ( + akka ) Go があがったので、RailsとElixir/cowboyでAPIサーバーのプロトタイプを作ってベンチマーク比較をしてみました。 ※ ElixirはErlangと同水準のBeamを吐くのでErlangは除外しています (実際に計測した結果、同程度の性能でした、こちらは別途結果をまとめて公開します) ※ Go/Sc

    Elixir/cowboyとRailsのサーバーベンチマーク比較 - Qiita
  • 【参考】初めてErlangをする人用 #Erlang - Qiita

    概要 チームの新人等、初めてErlangを学習する人のために、参考になる書籍とWebサイトURLをまとめた。 Webサイト 公式ドキュメント http://www.erlang.org/doc/index.html 関数の仕様を確かめる ために使う 英語で書かれている 英語力がない筆者でも読めるレベル とりあえずここを見ておけば問題がない learn you some Erlang for great good! http://www.ymotongpoo.com/works/lyse-ja/ 参考書がわり に使う 元々英語のページを訳したもの 以降で取り上げる 書籍よりも内容が濃い 書籍化される(2014/7/4発売) http://www.amazon.co.jp/%E3%81%99%E3%81%94%E3%81%84Erlang%E3%82%86%E3%81%8B%E3%81%84%

    【参考】初めてErlangをする人用 #Erlang - Qiita
  • Riak Core の紹介 - kuenishi's blog

    Erlang アドベントカレンダー 2014の23日目の記事です。 Erlang/OTPでアプリケーションを書いていると、システムを冗長化するために複数ノードでうまく協調動作するようにさせるために、Distributed Erlangの上に構築されたFailoverやTakeoverを使う場面がいずれ出てくる。しかし、これらの仕組みは、Riakのようにシステムをスケールアウトさせたい場合には不十分だ。スケールアウトするシステムの質は アクセスしたいモノの物理的な位置を隠蔽して論理的な位置でアクセスできるようにする 物理的な位置が故障やスケールアウトのために変化しても常に追跡できて同じ論理的な位置でアクセスする アクセスしたいモノが偏らず、ほぼ均等に分散されている の3点がサポートされていることだ。これだけだといろんなものが該当するが、 Riak風に翻訳すると アクセスしたいデータがどのノ

    Riak Core の紹介 - kuenishi's blog
  • ErlangとGolangを比較してみる

    よくこの2つの言語を比較する人がいるように感じる。 両方ともサーバープログラム用途で用いられる言語なので、分からなくもないのだが、この2つの言語は似て非なる物だ。 プロセス周りに重点を置いて違いについて自分なりに纏めてみた。 両方とも触れてから1年と経っていないので、間違いがあれば指摘をもらえると嬉しい。 主な違い Erlang Golang

    ErlangとGolangを比較してみる
  • 2014年のElixir1.0初心者

    この投稿はElixir Advent Calendar 2014の1日目の記事です。 今年後半になってようやくElixirを触り始めました。初心者の踏んだ罠や、良さを感じたところなどを紹介したいと思います。Elixir v1.0になってから触った日人初心者というのもあまり多くはないはずなので、これから誰かに勧めたい人・あるいはこれから始めたい人の参考になれば。 モチベーション 何故Elixirを触りたくなったかというと、特に突飛な理由はなく… Erlang VMを使いたい OTPを使いたい この2点です。メモリ回収がプロセス単位GC+参照カウントバイナリなErlang VM、圧倒的な稼働実績を誇るOTP、どちらも代替になるものがないので。普通にErlang書けよと言われればまあそうなのですが、どうせなら変わったものを使ってみようという好奇心ですね。 ◎良かった点 文字列の扱いが楽 文字列