タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

Elixirに関するdeepblue_willのブックマーク (38)

  • naoya@githubさんの記事を試すには - Qiita

    naoya@githubさんが最近「カッとなって」Elixir関連の記事を投稿されていますが、さらにカッとなってWEB+DB PRESSに記事を書かれています。 でも、あのソースを見てもそのままでは実際に動かせなかった人も多いのでは。次号以降に補足が出るにしても隔月刊ですしね… ということで復習も兼ねて動かし方を書いてみます。 ソース ソースはこんな感じでした(写経)。一つ目の「あまりElixirらしくない」ものを対象にしました。 defmodule WeatherClient do def fetch_json(url) do HTTPoison.start res = HTTPoison.get!(url) Poison.decode!(res.body) end def get do %{"weather" => weather} = fetch_json( "http://api.

    naoya@githubさんの記事を試すには - Qiita
  • Rails Tutorialを Phoenixで移植してみた

    *      * *     +  うそです n ∧_∧ n + (ヨ(* ´∀`)E) Y     Y    *

    Rails Tutorialを Phoenixで移植してみた
  • #tqrk09 で Elixir について話した && 読書について - nekovaの日記

    Tokyu Ruby Kaigiは僕が初めて参加したプログラマーのイベントなので個人的な思い入れがあります. 2回目の参加の時は飛び入りでLTをさせてもらいました. 今回は事前にLTの登録をして, Elixir/Erlangについての話をしてきました! (LTのトリでした) Elixirについての話をした 言いたかったのは, Elixirのスゴイところとして紹介されていることの多くはErlangVM(BEAM)のおかげ “The Power of Erlang, the Joy of Ruby” - Dave Thomas Voyage GroupさんでErlangを書いてらっしゃる方から話を聞くことが出来たのが一番うれしかった. Erlangを使ってる人達の話をもっともっと聞きたいので, そういう会があったら教えてください.お願いします 学習においてはProgramming Elixir

    #tqrk09 で Elixir について話した && 読書について - nekovaの日記
  • ElixirのGETTING STARTED(12. IO and the file system)をやってみた - Qiita

    この章は、IO, File, Path のようなモジュールに関連するinput/outputのメカニズムのとファイルシステムに関する処理の導入。 The IO module IOモジュールは標準入出力(:stdio)、標準エラー(:stderr)、ファイルや他のIOデバイスへの読み書きするためのメインメカニズムを提供する。 モジュールの使い方は非常に簡単。

    ElixirのGETTING STARTED(12. IO and the file system)をやってみた - Qiita
  • cowboy2とectoでRESTサーバ - Qiita

    cowboyとectoでシンプルなRESTサーバを実装してみます。 (素直にPhoenixを使えとの神の声が聞こえてきそうですが、勉学目的で地道に行ってみます) 以下の通り動作するサーバを実装します: $ curl localhost:3000/hello-school-live/characters ["丈槍 由紀","佐倉 慈","若狭 悠里","恵飛須沢 胡桃","直樹 美紀"] このサンプルでは最新のcowboy 2系を利用しています(@ColdFreak さん、ご指摘ありがとうございます)。cowboy 2系ではErlang 18以上が必要となります。また、1系のサンプルについてはソースのみですがこちらにあります。 事始め まずmixでアプリケーションを作成します: $ mix new --sup hello_school_live * creating README.md *

    cowboy2とectoでRESTサーバ - Qiita
  • 無限リストによるエラトステネスのふるい - Qiita

    Elixir では Stream モジュールを使って、遅延評価と無限リストを扱うことができるがそれによりエラトステネスのふるいを、Haskell と同じように無限リストを使った記述ができるか・・・というのが今回の試み。結果としては、カッとなれば、できる。 以下、Stream の解説も交えてお届けする。 Enumerable プロトコルと Enum および Stream Elixir の Enum モジュールには map/2 や filter/2 や zip/2 など、コレクション操作に必要な関数が多数実装されている。以下はそのドキュメントの例である。Functions のところに Enum の関数が列挙されているのが分かる。 ちなみにこのドキュメント閲覧は Dash の画面。自分は主に iOS 開発のドキュメント閲覧によく使っているが、見ての通り Elixir のドキュメント参照にも便利。

    無限リストによるエラトステネスのふるい - Qiita
  • CowboyとElixirで静的ページを表示する - ハードリカーエンジニア

    ElixirとCowboyを使って、Webページを表示するための記事です。 解説が間違っていた場合には、コメントか@hayabusa333にご連絡くださると嬉しいです。 # Cowboy is 何? CowboyはErlangで書かれた小さくて高速なモジュラー形式のHTTPサーバです。 今回はElixirでCowboyを使い静的ページを表示したいと思います。 # 実行環境 OS:OS X Yosemite Erlang:Eshell V6.5, OTP-Version 18 Elixir:v1.0.4 # Cowboyで静的なページを表示するための新規プロジェクトの作成 $ mix new static_hello_world --sup $ cd my_ecto# HexにてCowboyをインストールするために設定ファイルの記載を行う $ vim mix.exsmix.exsの内容は下記

    CowboyとElixirで静的ページを表示する - ハードリカーエンジニア
  • Elixir のパターンマッチを攻略しよう - Qiita

    Elixir にあって RubyJavaScript のような言語にない特徴といえば 軽量プロセス (+ OTP周り) パターンマッチ の2点が大きく、その他の部分というのはだいたい「あの言語のこれだな」という風に対応させて理解できる(パターンマッチを実装した他の関数型言語になれてる人にとっては別かもしれないが)。 特に後者のパターンマッチの方は Elixir の文法の多くの部分の基礎になっている。従って、主観的にはパターンマッチさえ理解できれば Elixir の半分以上は理解できたと思っていいんじゃないかと思っていたりする。 というわけでカッとなってパターンマッチについて書いてみる。 パターンマッチとは パターンマッチの例で、いきなり {x, y} = {1, 5} とかいう例を見せられても「変数扱うのに便利な記法か何かですかね? (ES6 の Destructuring assi

    Elixir のパターンマッチを攻略しよう - Qiita
  • Elixir の OTP (GenServer 編) - Qiita

    [翻訳] ElixirにおけるOTPの紹介 という記事が上がってた (いつも翻訳ありがとうございます) のでそれに触発されて勢いで書いてみる。 ちなみに今後発売される Web+DB PRESS Vol.88, 89 の連載では2回続けて Elixir の記事を書いているよ。 もとい Elixir 状態を扱うにはどうするのが定番か 軽量プロセスを使ったクライアント/サーバーのありがちな実装 それを GenServer を使うとどう書けるのか GenServer 使うとどんないいことがあるのか あたりを解説してみる。 Elixir のプロセスで状態を扱う Elixir で状態を扱いたい場合は軽量プロセスの仕組みを使って、プロセスの中に状態を閉じ込めて、そのプロセスとのメッセージパッシングで状態への操作を行うのが定石である。 その例として、例えば key + value を保存できるプロセスを作

    Elixir の OTP (GenServer 編) - Qiita
  • [翻訳] 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
  • 週刊Elixirライブラリ2015-6 - ハードリカーエンジニア

    Elixirのライブラリの解説を週ごとにお届けする記事です。 解説が間違っていた場合には、コメントか@hayabusa333にご連絡くださると嬉しいです。 今週はPoisonについて # Poison is 何? Poisonは高速性に焦点をあてたElixirのJSONライブラリです。 ElixirのJSONライブラリとして高速であるためにネイティヴコンパイル、hand-rolled パーサーやそのほかにも色々と裏で行っているようです。 # 実行環境 OS:OS X Yosemite Erlang:Eshell V6.5, OTP-Version 18 Elixir:v1.0.4 # Poisonの実行を行うための新規プロジェクトの作成 $ mix new my_poison $ cd my_poison# HexにてPoisonをインストールするために設定ファイルの記載を行う $ vim

    週刊Elixirライブラリ2015-6 - ハードリカーエンジニア
  • 『Programming Elixir』より "Think Different(ly)" - Qiita

    あの Dave Thomas が書いた『Programming Elixir』を買ったのでぼちぼち読んでいる。 Chapter 1. に Elixir の特徴を巧みに表現した文章があってカッとなったので、引用しておきたい。 Object orientation is not the only way to design code Functional Programming need not be complex or mathematical. The foundations of programming are not assignments, if statements, and loops. Concurrency does not need locks,semaphores, monitors, and the like. Processes are not necessaril

    『Programming Elixir』より "Think Different(ly)" - Qiita
  • Elixir 文法 メモ - Qiita

    ※この記事はとても古くなっています。注意してください。 個人的なメモです。 Get Started を読みながらまとめました。 流し読みすれば雰囲気くらいはつかめるかもしれません。 匿名関数 add = fn a, b -> a + b end is_function add, 1 # false add.(1, 2) # 3 bool Elixirではfalseとnilだけがfalseとして扱われます.他の全てはtrueと評価されます. リスト と タプル リスト [1, true, 2] タプル {false, 1, "abc"} どんな型も入れられる。 リスト [ ] [1, 2, true, "abc"] ・連結したノードで、要素の一つ一つが次の要素のアドレスを指してる つまり list = [1|[2|[3|[]]]] → [1, 2, 3] ※ノードというよりコンスと呼ぶらしい

    Elixir 文法 メモ - Qiita
  • Elixirのデータ構造的なやつまとめ - Qiita

    個人的にまとめてみました。 全体像 ・ リスト [1, true, 2] ・ タプル {false, 1, "abc"} ・ キーワードリスト(上記の組み合わせ) [{:a, 1}, {:b, 2}] = [a: 1, b: 2] ・ マップ %{:a => 1, "abc" => :dog}, %{a: 1, b: 2} ・ 構造体(フィールドの存在を保証したマップ) すべてにおいて、どんな型も入れられる。 リスト [ ] [1, 2, true, "abc"] 要素の一つ一つが次の要素のアドレスを指してる 特定の要素アクセスやサイズ取得は遅い(順番にアクセスする必要があるため) 先頭に追加するのは速い [0] ++ list タプル { } {1, 2, true, "abc"} 連続したメモリに保存 特定の要素アクセスやサイズ取得が速い 要素の追加や変更は遅い(その度に新しいタプルを

    Elixirのデータ構造的なやつまとめ - Qiita
  • [翻訳] Ectoを使った組み立て可能なクエリ - Qiita

    Drew Olsonさんの2015年1月23日付のブログ記事Composable Queries with Ectoの翻訳です。 EctoはRuby and RailsだとActive Recordに相当するのでしょうか、データベースの抽象化機構です。 Phoenixにも欠かせない機能なんですがあまり紹介記事がなさそうなので訳してみました。 そういえばectoっていうのは「外の…」という意味の接頭語で(ex-なんかと同じ)~魂?が口から「外に出る」エクトプラズム(ectoplasm)なんてのがありましたね(笑)~データベースに直接タッチせず外から触るからついた名前かもしれません。 (どうでもいい追記) ゴーストバスターズの「作業車」の名前がEcto-1でした。 以前の投稿で(ある種ホンモノの)WebアプリをElixirで作成して1今までに私が習ってきたレッスンのいくつかについて簡潔に述べま

    [翻訳] Ectoを使った組み立て可能なクエリ - Qiita
  • Elixir Phoenixのデータベース操作モジュールEcto入門2 - Qiita

    前回の続き。 今回はEcto.Repoの解説。 データベース操作の抽象レイヤー EctoのRepoはデータベースとのやりとりを抽象化している。 データベースがMySQLでも、PostgreSQLだろうとどんな形式で保存されていようと、Repoモジュールを通して操作することができる。 データベース設定 データベースの設定はconfig/prod.exs、config/dev.exsやconfig/test.exsに記述する。それぞれ、番、開発、テスト環境の設定。 デフォルトではPostgreSQLだが、他のデータベースを利用したい場合は、mix.exsの以下の部分のアダプターを変更して設定ファイルを変更すればいい。 config :my_app, Repo, adapter: Ecto.Adapters.Postgres, database: "ecto_simple", username

    Elixir Phoenixのデータベース操作モジュールEcto入門2 - Qiita
  • Elixir のバイナリデータに対するパターンマッチで AIFF を解析する - Qiita

    バイナリに対するパターンマッチでバイナリを分解 Elixir のパターンマッチはバイナリデータに対して利用することが可能で、実際、なかなか実用的である。 例えば 4バイトずつ整数と文字列が連続して埋まっているバイナリがあったとすると <<size::unsigned-integer-size(32), id::bitstring-size(32)>> = some_data というパターンマッチを書くと、size と id という変数にそれぞれの値が束縛される。Ruby だと unpack を使ってその辺のバイナリを弄ったりするが、それよりもずっと簡潔且つ宣言的に記述できるのが良い。 AIFF のバイナリを Elixir でいじる とはいえ、なかなかバイナリをいじる機会はないのでこの折角の機能を試す機会がなかったのだが、つい先日たまたま RubyAIFFファイルをいじるスクリプト書いた

    Elixir のバイナリデータに対するパターンマッチで AIFF を解析する - Qiita
  • Elixir のプロセスを使ってフェイルセーフなアプリケーションを作る ─ 失敗は恐れず泥水にダイブ - Qiita

    [翻訳] Elixirのプロセスアーキテクチャ または私は如何にして心配するのを止めてクラッシュを愛するようになったか にもあるように Elixir においては例外処理は、それを頑張ってなんとかしようとするのではなく、軽量プロセスのコンテキストでむしろすすんでクラッシュさせてしまえ、というのが良い作法である。 クイズ番組で ○ か × か答えを選んで壁に突っ込んだ先に、正解ならクッションが、不正解なら泥水があるという企画があるが、それに喩えるなら 泥水だろうが何だろうが躊躇せずダイブしろ! というのが Elixir 流 (俺調べ) である。 もとい、クラッシュさせてどうするのかというと Supevisor を使って、別プロセスから該当プロセスを監視しておいて、クラッシュしてもアプリケーション全体としては間違いなく動いている状態を保証するのが正しい。 カッとなってちょっとそのための例を書いて

    Elixir のプロセスを使ってフェイルセーフなアプリケーションを作る ─ 失敗は恐れず泥水にダイブ - Qiita