日本のグラフィックレコーディング界隈が気持ち悪い

タイトルの通り日本のグラフィックレコーディング(以下グラレコ)界隈が気持ち悪い。

グラレコ自体は会議などを即興でグラフィックに起こす技術だ。これにより会議参加者の思考の整理を助けたり、意見が出るのを促す。いいツールだ。有用だと思う。

最近日本でも盛り上がり始めたのだが、その第一人者たちが、その、ただのツールを崇高なものとして扱っている。グラレコをやるうえで関門があり(目的とか、哲学)これを満たさないと、やる資格がないと仰る。ただのツールであるグラレコをだ。宗教化していて気持ち悪い。

技術はオープンにするべきで、誰にでも戸口を開くべきものだ。このような新参者の参入を阻み、多様性を刈り取る第一人者様のことなど真に受けてはならない。

kubernetesが楽しい

最近はどっぷりkubernetes漬けになっている。面白いなーと思った機能を紹介。

ingress

kubernetesは外部に露出させるエンドポイントに対して複数のサービスを紐づけることができる。これとワイルドカードサブドメインを組み合わせると、yamlひとつでサービスを作りまくることができる。

daemonset

ノード(コンテナを動かすマシン)1台に対して1つのコンテナを常駐させたいことがある。たとえばfluentdでシステムログを集約するとき。これを実現するのがdaemonset。ECSにはなかったから重宝している。サービスメッシュとか、マシンメトリクスの収集などもこれを使うといい。

helm

kubernetesの機能ではないが。kubernetesのリソースはmanifestで管理するが、パラメタ化できなかったり(つまり複数のサービスで使いまわすのが難しい)、バージョニングできなかったりと不便。これを解決してくれるレイヤーがhelm。パラメタ化、依存関係を解決したyamlのセットをpackageとしてリポジトリに上げ、使用するときはnpmのように helm install {pkg_name} する。引数でパラメタを注入したり。簡単によくあるリソースを展開してくれるものと解釈されていることが多いが、本質はパッケージマネージャそのもの。

近況

生活面

前回のブログポスト以来、お酒は飲んでいない。約二ヶ月経過したわけだが、特に不自由はしていない。代わりにというか、ノンシュガーのスプライトをよく飲んでいる。

ゲーム

あいかわらずOverwatchをやり続けているが、惰性である感じが否めない。楽しくはないし、トロールに腹を立てているだけだ。そろそろ辞め時かな。終わりのゲームをやったほうがいいのかもしれない。

仕事

最近SREエンジニアに転身した。kubernetesを使ったマイクロサービスインフラへの刷新作業を担っている。

アルコホーリックとしての自覚と戒め

先の記事で禁酒すると書いたが、できなかった。それどころか深酒による警察沙汰を起こした。

どうも調べてみると、これはアルコール依存症の症状らしい。薄々は気づいていたが、もはや言い訳はできない。

二度とお酒は飲みたくない。いや、飲まない。本当に。

禁酒する

遺伝的に飲むと暴走しがちなアンドロイドなので禁酒しまーす。

windows + docker + phoenix framework

先日のAnniversary Updateによりbashが使えるようになったWindows 10。 結構いいスペックのWindows PCが放置されていたので、開発に使ってみようと思い立った。 尚、dockerを使っていて先のbashは関係ない。あしからず。

はじめに

やること

  • phoenix frameworkのトップ画面を開く

使うもの

  • Docker Toolbox
  • Virtual Machine

手順

1. phoenixプロジェクトのbootstrap

カレントディレクトリ(リポジトリ置いておくとこ)をゲストマシンの/codeにマウントして、プロジェクトを作成する。 カレントディレクトリ内にmy_new_appが作られる。

docker run -it --rm -v "$PWD":/code -w /phoenix marcelocg/phoenix mix phoenix.new /code/my_new_app

2. Dockerfileの作成

cd my_new_app && touch Dockerfile

FROM marcelocg/phoenix

# hexのインストール
RUN yes | mix local.hex

CMD mix phoenix.server

3. dependenciesのインストール

mix deps.get

docker run -it --rm -v "$PWD":/code marcelocg/phoenix mix deps.get

npm install

windowsディレクトリをvirtual boxのマシンでマウントしているとsymlinkが張れないので--no-bin-linkオプションが必要。

docker run -it --rm -v "$PWD":/code marcelocg/phoenix npm install --no-bin-links

4. データベースの設定

postgresの起動

docker run -p 5432:5432 --name postgres --env POSTGRES_PASSWORD=postgres POSTGRES_USER=postgres postgres

接続情報の設定

vim config/dev.exs

POSTGRES_PORT_5432_TCP_ADDRという環境変数は後述のステップでコンテナ同士をリンクしたときに自動設定される。

# Configure your database
config :my_new_app, MyNewApp.Repo,
  adapter: Ecto.Adapters.Postgres,
  username: "postgres",
  password: "postgres",
  database: "my_new_app_dev",
  hostname: System.get_env("POSTGRES_PORT_5432_TCP_ADDR"),
  pool_size: 10

DBの作成

docker run -it --rm -v -p 4000:4000 "$PWD":/code marcelocg/phoenix mix ecto.create

5. phoenix appの起動

docker run --link postgres -it --rm -v "$PWD":/code marcelocg/phoenix

docker-machine ipでホストしているマシンのIP調べて、{your_docker_machine_ip_addr}:4000にアクセスする。

感想

2-3年前は開発するならMacじゃないと無理だと思っていたけど、最近はツール群の発達でWindowsでも問題なく開発できそう。

ControllerのAction名について

Railsだと下記。

  • index
  • show
  • edit
  • update
  • delete

ちなみにCRUDは下記の略。

  • Create
  • Read
  • Update
  • Delete

Rails以外の世界だとまた違うようだ。Rails以外やったことないのでびっくりした。