mmag

ハマったことメモなど

v-modelを受け付けるカスタムコンポーネントの書き方の好み

Vue

Vue.js 2系を対象とします。 何がしたいかというと、 <my-great-text-input v-model="text" /> ということがしたい。 とりあえずドキュメントを見ると、以下のような方法が書いてある。 https://jp.vuejs.org/v2/guide/components.html#カスタムイベントを使用したフォーム入力コンポーネント <template> <input type="text" :value="value" @input="updateText"> </template> <script> e</my-great-text-input>…

OpenAPIの3.0.0が出てた

1週間くらい前にリリースされていた模様。semverになってる。 github.com 気になるとこ レスポンス深い https://github.com/OAI/OpenAPI-Specification/tree/master/examples/v3.0 などの例をちらっと見た程度だけど、以下のようにレスポンスの書き方がやや…

カッコの周りの空白について

function foo() { ... } ていうコードを書いたらlintに怒られた。space-before-function-parenだそうで、 function foo () { .. } なら許してくださるらしい。 ギュってなってて読みづらいとかいう理由から生まれたんじゃないかと思うのだけど、エディタのフ…

AngularのHttpを使うサービスの単体テスト

4系の話。Httpを使ってAPIアクセスするようなサービス(ここではPostService)のテスト。もう一度同じものを書けと言われても無理だなと思ったので書いておく。 import { TestBed, inject, async } from '@angular/core/testing'; import { MockBackend, Moc…

ReDocに食わせるOpenAPIにはoperationIdを書こう

最近ReDocを触っていてヤヤハマリに遭遇することがあるので書いておきます。 github.com operationIdってなにさというと、OpenAPIのOperation Objectの一項目で、操作を識別するための一意な文字列のことです。ReDocに食わせるOpenAPIには、と書きましたが、…

minikubeを触った

ふとkubernetesを触ってみようと思い、ローカルで試すにはminikubeがよいということで試してみた。一通りチュートリアルをやってわかった気になったので、ちょっとした構成をつくってみたのがこちら。 github.com docker hubに上げてないイメージを使うため…

asdf-nodejsでgpgのエラー

最近macをセットアップする機会があったので、各言語のバージョン管理にasdfというやつを使い始めました。以前も一度試したのですが、なんだったか途中でコケてよくわからんから、まぁanyenvでいいか、となっていたので再挑戦。今度はそれなりにサクッと行き…

Phoenix v1.3からのディレクトリ構成をもう一度調べる

はいこんにちは。 Phoenix v1.3.0-rc.0がリリースされました。前リリースからの大きな変更として、Phoenixプロジェクトのディレクトリ構成がガラッと変わります。新たな構成に対応したジェネレータは、phoenix.*ではなくphx.*というタスクになっています。つ…

ニポポタマスを支える技術

こんにちは。 わたくし、勤め先の有志と社内向けの日報投稿Webサービス、ニポポタマス(通称ニポタマ)をやっています。元々は会社の開発合宿でつくりはじめたものですが、会社のみんなが日々の出来事、書きたいことを書ける場として、また僕ら開発者がやり…

あっちこっちでpreload問題

こんばんは。 Ectoでは関連を明示的にpreloadすることがよくあります。例えばUserがPostを複数持っていて、それをUserControllerのshowアクションでこんなjsonで返したいとき、 { "user": { "name": "joe_noh", "posts": [ {"title": "...", body: "..."}, {…

知らなかった、と言ったな。あれは嘘だ。

はい。 先日、Ecto.Changeset.change/2 知らなかった - mmagというエントリを書いたのですが、前に自分が書いたコードでchange/2使ってました。はい、知ってました。 例えば、UserとOrganizationがmany_to_manyな関係にあるとします。あるユーザを、ある団体…

Ecto.Changeset.change/2 知らなかった

Ectoのmany_to_manyのドキュメントを読んでいたら、使用例の中でEcto.Changeset.change/2という関数が使われていました。 構造体からchangesetをつくってくれる関数なようです。知らなかった。struct入れてもchangeset入れてもいいみたい。キャストやバリデ…

postcssで書いたものをwebpackで1つのまとめる

こういうやつ、いつもハマって時間使うので書いておきます。 postcssが〜とかではなく、extract-text-webpack-pluginがどんなやつなのか分かってなかったのが問題でした。これを使うと各loaderでコネコネした結果を指定したファイルに吐き出してくれます。こ…

リバースプロキシ(Nginx)がToo Many Redirects

おはようございます。 SSLの終端はNginxで、その後ろにWebアプリがいる、みたいなよくある構成をやっていたら、「リダイレクトが多すぎます」というようなエラーが出ました。前にも同じような構成をつくったことがあったので、こんなところでハマるとは、と…

PhoenixでモデルのSchemaに無い属性をレスポンスのJSONに含める

はいっこんばんは。 PhoenixでJSON APIを書いてて迷ったことがあったので書きます。見落としている簡単なやり方があるんじゃないかと。 前提 UserモデルとPostモデルがあり、UserはPostをlikeできるとします。postsテーブルのカラムはidとtitleとbodyがあり…

はやくElixirConf 2016の録画が観たいという気持ち

もう時間は深夜1時を回っていて寝なきゃいけないのに、こんなツイートを見てウォーッ!!となってしまった。 Watch this space for #ElixirConf videos. All should be out by Sep 26.https://t.co/I2OsL8TQFW— ElixirConf (@ElixirConf) 2016年9月8日 でもまだ1本…

erlenv&exenv から evm&kiex にしてみた

exenvがGitHubからバージョンリストを引っ張ってくるときに、APIのrate limitに引っかかってelixirがインストールできないことがあったり、メンテされてなかったりで、なんかなーという感じだったので乗り換えてみた。あと、intellijを使ってみようとしたら…

Phoenix v1.3からディレクトリ構成が変わるっぽい

※ 多分に推測が含まれています。あとでちゃんと調べないと ※ 今まさに海の向こうではElixir & Phoenix Conf 2016が行われているのですが、インタネッツを通してこんなツイートが流れてきました。 Coming in Phoenix 1.3 #elixirconf @elixirphoenix #myelixi…

社内ISUCON

弊社GMOペパボで社内ISUCONというイベントが行われ、総勢10チームによる戦いが繰り広げられました。競技の詳細は近々テックブログあたりに書かれるんじゃないかと思うので割愛して忸怩たる思いを連ねます。 自分は若手チーム(2年目+1年目+1年目、自分は2年…

Gettextの使い方メモ

はいコンバンハ。 Gettextっていうモジュールがあるんですが、POTとかPOファイルとか、なんかよくわかんなかったので書いておきます。 できること いわゆるi18n、アプリケーションの国際化ができます。Phoenixアプリ前提にしてしまいますが、例えばHTMLに <h1><%</h1>…

これからはexrmではなくdistilleryを使っていくべきらしい

github.com 1週間ほど前にこんなコミットがあり、exrmは御役御免になるそうです。代わりに今後はdistilleryを使うように書かれています。読み方はディスティラリーかな。 作者はexrmと同じ人で、exrmを開発していくよりも一度ゼロから書き直したほうがよいと…

hex v0.13.0に上げたらクラッシュするようになった

hexのv0.13.0出たよアップデートしてね、というメッセージが出たので、v0.13.0に上げてみたところ、mixタスクを実行するとこんなエラーを吐いて止まるようになってしまった。 Could not start Hex. Try fetching a new version with "mix local.hex" or unin…

Payment Request APIを試す

Payment Request APIという仕様の策定が進んでいるという話を聞きまして、ちょっと触ってみました。 あまりコードは書いてないですが、ここに置いてあります。 github.com https://joe-noh.github.io/payment_request_api/でも試せるようにしてあります。108…

「GenStage.Flowをちょっと触ってみた」っていうエントリ書こうとしたらよくわかんなくなったけどアッて気づいて解決した

んですよ。 GenStage.Flowのドキュメントには、 alias Experimental.GenStage.Flow File.stream!("path/to/some/file") |> Flow.from_enumerable() |> Flow.flat_map(&String.split(&1, " ")) |> Flow.reduce(fn -> %{} end, fn word, acc -> Map.update(acc…

気づいたらheroku-buildpack-elixirが最新バージョンに対応してくれてた

昨日か一昨日くらいにheorku-buildpack-elixirを使って、herokuに以下の組み合わせを指定したらErlangのインストールでコケた。 Erlang 19.0.2 Elixir 1.3.2 おやおやと思ってソースを見に行って、この行でS3からPrebuiltなErlangを落としてきていることがわ…

mix test --listen-on-stdinについて

こんばんわ。Elixir v1.3.2がリリースされましたね。 github.com withのelseでwhenが使えるようになったのが目玉っぽいのですが、mix testに--listen-on-stdinというオプションが入ったことに良さがあるのではないでしょうか。このオプションが入ったプルリ…

ansibleのinventoryファイルには接続方法が書けた

昨日の記事ではdockerコンテナさんにansibleを適用していきましたが、最後にこんなことを書いていました。 web.ymlにconnection: dockerが入り込んできていて、開発環境はdocker、本番環境にはsshで、とか分けたい場合なんかはちょっと工夫が必要そう。 する…

dockerコンテナにansibleを適用する

ディレクトリ構成 Best Practicesのこの辺りを参考に。 . ├── Dockerfile ├── docker-compose.yml ├── hosts ├── requirements.txt ├── roles │ └── common │ ├── tasks │ │ └── main.yml │ └── templates │ └── we_are_the.txt.j2 ├── site.yml └── web.yml…

いつのまにか Elixir v1.3.1 が出てた

んですよ。 最近全然追えてなかったんですが、Bug Fix中心かな?とおもったらBug Fix中心でした。 github.com ただ改めて、こんだけの規模のプロジェクトで、issueが10件、プルリク3つって凄いなーと思いました。みなさんいつもありがとうございます。

dockerにitamaeレシピを適用してserverspecでテストする

やりたいことは表題の通り。結果はGitHubに。 docker まずはDocker for Macをインストール。アイコンかわいい。 docs.docker.com 起動したら適当なイメージを落としとく。 $ docker pull ubuntu:xenial gems 適当なディレクトリを切ってGemfileを作成。 # Ge…

テーマはFB matteをベースにしてます。作者さんに感謝を込めて。