技術メモ

プログラミングとか電子工作とか

プログラミング

Phoenix入門 (第9章 Templates)

どうも、靖宗です。 今回はTemplatesということでテンプレートに関して深掘りしていきます。 大体Viewsで知りたいことは知った感もあるのですが、念のためにチェックしておきます。 Templates Examples hello_phoenix_web.ex Displaying Lists Render templa…

Elixirで外部コマンドの実行

どうも、靖宗です。 いつもはシリーズ物ばかり書いてますがたまには単発記事も書きたいです。 技術”メモ”なので、好きに書けばええやんって言われそうですが(笑) Systemモジュール find_executable("コマンド") cmd("コマンド", 引数, オプション) プログ…

Phoenix入門 (第8章 Views その2)

どうも、靖宗です。 前回のViewsの続きです。 The ErrorView Rendering JSON The ErrorView PhoenixにはErrorViewというビューが生成されています。Controllersの2つめの記事で保留にしたやつです。 ファイルはlib/hello_phoenix_web/views/error_view.exが…

Phoenix入門 (第8章 Views その1)

どうも、靖宗です。 今回はViewsということで、実際にレンダリング処理など一番クライアント側に近い処理の話でしょうか。 とりあえず進めて行きます。 Rendering Templates More About Views A Word About Layouts PhoenixのViewの役割はなんと言ってもレン…

Phoenix入門 (第7章 Controllers その3)

どうも、靖宗です。 Controllersの続きです。今回で終われるかな? Redirection Action Fallback Halting the Plug Pipeline Redirection Phoenix上でのリダイレクトの方法のようです。 アイテムを作成した後に表示画面にリダイレクトしたいときなんかに使え…

Phoenix入門 (第7章 Controllers その2)

どうも、靖宗です。 Controllersの続きです。また記事3個になりそうです。 Rendering テキスト JSON HTML(テンプレートファイル無し) render/3関数 Sending responses directly Assigning Layouts Overriding Rendering Formats Setting the Content Type …

Phoenix入門 (第7章 Controllers その1)

どうも、靖宗です。 今回はControllersということで、コントローラの話です。 ルーティングのところで一通りは把握している所ですが、少々深掘りしていきましょう。 Actions Gathering Data Flash Messages 今のところ、Phoenixの作業は mix phx.new project…

Phoenix入門 (第6章 Endpoint)

どうも、靖宗です。 今回はEndpointということでPlugのところでもちょっとやったところです。 全てのリクエストはまずEndpointに渡されて、その後にルーティング処理に入ります。 Endpoint Contents Using SSL SSL in Development Force SSL HSTS そもそもPh…

Phoenix入門 (第5章 Plug)

どうも、靖宗です。 お次はPlug。というかPhoenixの説明でPlugPlug言われてたので先にこの章からやれば良かった。 今まで結構でてきてるところから分かるとおり、PlugはPhoenixのコアな部分です。PhoenixのHTTPレイヤーなどを担当しているっぽいのでもうちょ…

Phoenix入門 (第4章 Routing その3)

どうも、靖宗です。 Plugの説明の記事を挟みましたが、引きつづぎRoutingの章を進めて行きます。 Pipelines The Endpoint Plugs The :browser and :api Pipelines 例 scope無しのパイプライン 複数のパイプライン Creating New Pipelines Channel Routes Pip…

Phoenix入門 (番外 Plug)

どうも、靖宗です。 あまりにもPlugPlug言われるのでPlugのドキュメントを一通り読んでおきます。 hexdocs.pm Plugとは Hello world The Plug.Conn struct Plug.Router Supervised handlers Testing plugs Plugとは Webアプリケーション間の構成可能なモジュ…

Phoenix入門 (第4章 Routing その2)

どうも、靖宗です。 前回途中で終わってるので、Routingの続きです。 まずはPath Helpers。 Path Helpers More on Path Helpers Nested Resources Scoped Routes scopeのネスト 同じパスのscope Path Helpers Path Helpersとはコントローラーを作成したら勝…

Phoenix入門 (第4章 Routing その1)

どうも、靖宗です。 前回ざっくりとしかやらなかったルーティング。ちょっとページが長いので数回に分けて記事にしたいと思います。 router.exを見てみる Examining Routes Resources Forward router.exを見てみる 前回も触れていますが、ルーティングはlib/…

Phoenix入門 (第3章 Adding Pages)

どうも、靖宗です。 今回は「Adding Pages」ということで、単純に訳してページを追加していく感じでしょう。 という事で基礎的なルーティング(どんなURLで何を表示するか)もおそらくこの章で触れることになるでしょう。 概要 動的ファイル 静的ファイル We…

Phoenix入門 (第2章 Up and Running)

どうも、靖宗です。 今回はPhoenixの起動など?いわゆるHello worldという認識です。 この章はPhoenixのインストールまでが終わっている想定です。 早速進めて行きましょう。 Up and Running Up and Running なにやらPhoenixのプロジェクトを開始するにはmix…

Phoenix入門 (第1章 概要、環境構築)

どうも、靖宗です。 前回まではElixir入門ということでやっていましたが、今回からはElixirで書かれているPhoenixを学習していきたいと思います。 まだ触ってないのでなんとも言えませんが、基本的にはElixirがざっくりと分かっている想定で記事を書いていき…

Elixir入門(Meta-programming編 第3章 Domain-specific languages)

どうも、靖宗です。 Meta-programming編は少ないもので3章構成です。 ただし、各々のテーマが裏に闇を感じます。本気で相手したら時間が無限に吸い取られて行く気がします・・・ 今回はDomain-specific languages。1章で終わるんでしょうか? Foreword Build…

Elixir入門(Meta-programming編 第2章 Macros)

どうも、靖宗です。 今回はMacrosということで、超時空要塞ではなくちょいちょいでてたifとかquoteとかの奴です。 Foreword Our first macro Macros hygiene The environment Private macros Write macros responsibly Foreword 大いなる力には大いなる責任…

Elixir入門(Meta-programming編 第1章 Quote and unquote)

どうも、靖宗です。 Mix and OTP編も終わりましたので、今回からはMeta-programming編となります。 おそらく詳細な内部実装などの話になってくるので、今まで謎だった挙動とかが明らかになると信じて進めて行きます。 (マクロなどもこの分野だそうです) こ…

Elixir入門(Mix and OTP編 第10章 Distributed tasks and configuration)

どうも、靖宗です。 Mix and OTP編もこれで終了? チュートリアルが終わっただけでまだなーんにもやってないんですが、基礎的な所は一通り目を通せた感じです。 まだMeta-programming編が残ってるので入門が終わりって訳じゃ無いんですが、とりあえず進めて…

Elixir入門(Mix and OTP編 第9章 Doctests, patterns and with)

どうも、靖宗です。 くどいようですが、今回も前回の引き続きです。 今回はDoctests, patterns and withということで、Doctestsはドキュメント関連かな?とは思いますが他はしりません。 早速進めて行きます。 Doctests with Running commands このチャプタ…

Elixir入門(Mix and OTP編 第8章 Task and gen_tcp)

どうも、靖宗です。 今回も前回の引き続きとなります。 今回は前回用意したKVServerを作って行くところでしょう。なかなか楽しそう・・・ Echo server Tasks Task supervisor Echo server まずは基本のエコーだけの機能のTCPサーバーを作成します。なんかリ…

Elixir入門(Mix and OTP編 第7章 Dependencies and umbrella projects)

どうも、靖宗です。 この章も引き続きMix and OTP編なので、通読が必要かもしれません。 Elixir入門は一度再編集したほうが分かりやすいし自分の為にもなるかもしれないなぁ。 External dependencies Internal dependencies Umbrella projects Dependencies …

Elixir入門(Mix and OTP編 第6章 ETS)

どうも、靖宗です。 今回はETS(Erlang Term Storage)。この章も前回からの引き続きとなります。 ETSというキーワードはちょいちょい出てきてたんですが実際なんなのかまだ分からないところ。Bucketの実装方法としてプロセスとETSの二種類があるよって事で…

Elixir入門(Mix and OTP編 第5章 Dynamic supervisors)

どうも、靖宗です。 お次のタイトルは「Dynamic supervisors」。 今回も前回からの引き続きです。 The bucket supervisor Supervision trees Shared state in tests Observer 忘れかけてましたが、第3章の最後に {:ok, pid} = KV.Bucket.start_link([]) # リ…

Elixir入門(Mix and OTP編 第4章 Supervisor and Application)

どうも、靖宗です。 前回に引き続き第4章。リンクとモニターどっちかで、今回はモニター使うんだからリンクしないようにしよう!みたいな流れになる気がします。 Our first supervisor Naming processes Understanding applications Starting applications T…

Elixir入門(Mix and OTP編 第3章 GenServer)

どうも、靖宗です。 今回はGenServerということですが、Mix and OTP編はおそらく通読する必要があると思います。 もし有り難いことにこのブログをご覧になってる方がいらっしゃったらMix and OTP編の最初から見ていただけると幸いです。 Our first GenServer…

Elixir入門(Mix and OTP編 第2章 Agent)

どうも、靖宗です。 地味に第n章の箇所を漢数字からアラビア数字に変更しました。いちいち変換するのめんどくさい・・・ The trouble with state Agents Test setup with ExUnit callbacks Other agent actions Client/Server in agents お次はAgent。たぶん…

Elixir入門(Mix and OTP編 第1章 Introduction to Mix)

どうも、靖宗です。 ようやくGETTING STARTEDが終わりましたが氷山の一角すら体感できてない感じです。 ささっとウェブのチュートリアルを終わらせてfukuoka.exの強い人の記事なんかを追いたいところです。 浮気心を押さえてMix and OTP編を進めて行きます。…

Elixir入門(おまけ Intelij IDEでElixirのプロジェクトを扱う Windows10編)

どうも、靖宗です。 Mix and OTP編に突入と言うことでIDEを導入していきたいと思います。 といってもVSCodeがデフォルト?てシンタックスに対応してたりするんでそれでもいい気がしますが、JetBrain教に入信してしまったので一応使える様にしておきたいので…