Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? José Valim1さんの2016年5月25日付のブログ記事**Beyond Functional Programming with Elixir and Erlang**の翻訳です。 Joséさんのスタンスにとても共感できたので翻訳しました。 Erlang VMでの関数型プログラミングに少しばかり違った視点を付け足したいと思います:Erlang VMにおいては関数型プログラミングはゴールではありません。単なる手段に過ぎないのです。 Erlang言語及びErlang VMを設計する際、Joe2,Mike3そしてRobert4は関数型プ
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? Markus Krogemannさん2016年4月6日付けのブログ記事、Elixir - Where is your state? 1の翻訳です。 関数型言語はよく「状態を持たないのでプログラムの見通しがよくなる」と言われますが、サンプルアプリ以上のことをしようとすると何らかの方法で状態を保持しておかないといけなくなります。Haskellだとこういうときモナドを使うんでしたっけ?ではElixirではどうするか?という件について説明しています。 この投稿では、アクターベースの関数型プログラミング環境で状態を管理する方法として提供されている
1. やりたいこと Elixirで無限ループってどうやって書くのかなー、と、GenServerを利用しているライブラリをGitHubで漁りながら眺めていたのですが、なかなかないなー、と。 そんな時に、José Valimさんがstackoverflowで、同じような質問をしている人に快く回答しているのを見かけました。 http://stackoverflow.com/questions/30568806/which-otp-behavior-should-i-use-for-an-endless-repetition-of-tasks 2. 実装して動かしてみた 2-1. 自分でも写経ベースで試してみた S3に保存したテストデータをランダムに加工しながら、kinesisに等間隔秒に流し込むモジュールを作りたかったので、下記のように実装してみました。 defmodule GenerateTe
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 関数型プログラミングを業務開発で活用するために HaskellやScala、Erlang/Elixir、Clojureなどの関数型プログラミング言語に興味がある人は多いと思いますが、自分らが日常行なっている業務での開発では到底それらの関数型言語を採用できないのが現実、という場合があるかもしれません。 なので、当面はJavaやGroovy、JS,Ruby,Pythonなどの非関数型プログラミング言語の上で関数型プログラミングスタイルや考え方をなるべく使っていくことでFPの考え方や技法に馴染み広めていき、利点を享受しつつ、将来は大手を振って
defmodule SupervisorTest do use Application require Logger def start(_type, _args) do import Supervisor.Spec, warn: false # ここは:one_for_oneだと,しかもStashが死ぬと,エラーになる opts = [strategy: :one_for_all, name: SupervisorTest.Supervisor] children = [ # Stashの中からworker supervisorを起動したいので、ここのchildrenの中にworker supervisorを入れない worker(SupervisorTest.Stash, []) ] {:ok, sup}=Supervisor.start_link(children, opts) Lo
TL;DR Jupyter Notebookがアツい! RubyとかElixirも動かしてみたい! Dockerコンテナで動かせば楽! Docker ToolboxだけでOK! Pythonの知識なくても環境構築できる RubyやElixirの知識がなくてもJupyter Notebook上でそれらの言語が扱える Jupyter Notebookについて Jupyter Notebookがキテる!という話は色々なところでなされているため本稿では省略する: Jupyterがすごい勢いでやってくるからお前ら備えとけ(IPython Notebook + R) - Qiita Railsエンジニアに役立つJupyter NotebookとiRuby - クックパッド開発者ブログ 現代のエンジニアのための強力なメモ帳 Jupyter notebookのすゝめ - クックパッド開発者ブログ このJu
備考 ecto_migrate ridgepoleと同様に、マイグレーションファイルを生成する必要がないのでその点は便利です。(自動的にALTER文を生成してくれる) フィールドの型(string等)を変更しないと、フィールドのサイズ変更が行えないようです。(ここがかなり不便) iexから実行する場合(EctoItを使用する場合)、MySQLではrootユーザのパスワードを空にしておく必要があります。 現時点の最新バージョン(0.6.3)がectoのバージョン1.0.xに依存しています(ectoの最新バージョンは1.1.3なので古いectoを使用する必要があります。ここもちょっと問題) 結論として、現時点ではectoの通常のmigrate機能を使用しておいた方が良いと思われます。 (2016/02/23追記) ectoの通常のmigrate機能を使う場合、スキーマ変更時にマイグレーションフ
Elixir言語の解説サイトLEARNING ELIXIRから、Joseph Kainさんの2016年1月20日付けの記事Use, import, require, what do they mean in Elixir?の翻訳です。 モジュールを参照する宣言文は他の言語にもいろいろあります。どの言語でも「どう使い分けていいのか」結構迷いますね。ではElixirでは? この記事はその疑問に答えるものです。タイトルに入ってないけどaliasもありますよ。 Elixirにはいくつか他のモジュールを参照するためのスペシャルフォームがあります。それには以下のものが含まれます: use import require alias それぞれ独自の意味を持っているのですが慣れるまではどれを使えばいいのかなかなかわかりませんよね。 各スペシャルフォームの実演をするために新しいテスト用のプロジェクトを作りまし
Phoenix の開発者である Chris McCord さんが 2015/11/18 に書いた記事「Phoenix is not Rails」の翻訳です。 僕は Rails 未経験の状態で Phoenix を始めたクチなのですが、最近 Rails もやるようになり、両者を比較して考えることが多くなってきたので、いい機会だと思い翻訳してみました。 誤訳があれば編集リクエストを頂けると幸いです。 まえがき 昨年12月、ブライアン1は年次総括で 開発を Elixir と Phoenix に移行する計画を公表しました。それから1年、実際に Rails から Phoenix へ移行してみて分かったのは、この作業はそれほど大変ではないということです。というのも、Phoenix は Rails と非常によく似た作りをしているからです。もちろん、フレームワークのきちんとした理解にはそれなりの学習が必要で
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? Elixir から Rust の関数を呼ぶことで、円周率 $\pi$ の近似値を求める計算を高速化する。Erlang VM の NIF(Native Implemented Functions)という仕組みで実現するので、同じ方法で Erlang から Rust の関数を呼ぶこともできる。 Qiita では同じようなタイトルの記事が 各言語でシリーズ化(?) されているので、それに便乗させてもらった。ただそれらでは、重い処理として再帰型のフィボナッチ数列関数が使われているのだが、それだとマルチコアプロセッサで並行計算(parallel
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で、表題の通り5000万プロセスぐらい作ってみた。 Elixirで20万プロセスを作ったその後 Elixirはerlang VMをベースとした関数型の言語だ。Rubyっぽい文法も使えて便利である。erlangの特徴である、軽量のプロセスが使えるのが一つの売りである。 少し前に、Elixirでプロセス20万位作ってみた という投稿を行った。その時は、デフォルトのprocess_limitのサイズ約26万を超えて、プロセスを指定する方法がわからなかった。親切な方から、26万を超えるprocess_limitの指定方法を教えてもらったので、それならどれくらいまで行けるかと思い、5000万までプロセスを作ってみた。プロセスの単位がインフレしすぎて、実際何の単位なのかわからなくなった。 erlangのプロセス この場合のプロセスは、erlangで使われる軽量プロセスのことだ。プロセスはe
ゴール エディタ内でテスト実行、結果表示を完結(画像右側)。 失敗ケースの宣言行にマーク(画像左側)。 マウスオーバーによるメッセージの表示。 できていないこと アサーションに失敗した行番号の情報取得、紐付け。 不具合? たまにテスト実行が行われず、マークだけ消えることがある。 Outputを見れば一目瞭然なので気付くことはできる。 想定 Visual Studio CodeとExUnitの基本的な使い方を知っており、セットアップ済み。 エディタ内で完結する形で、ExUnitとの連携を試してみたい人向け。 所要時間3~5分。 書いた人の環境 Windows 10 Visual Studio Code 0.10.6 Elixir 1.1.0 Web Installerでセットアップ。 前提 プロジェクトのルートディレクトリで $ mix test が正しく実行できる。 $ mix new で
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く