@Konboi memo

主に技術に関してつらつらと。

Karabinerの v10.15.0のアップデートで Key Repeat がおかしくなったと思ったら

はじめに

自分も含めて困っている人が何人かいたのでブログっておく

アップデート前までKey Repeat を最小(?) にしていた人は

Version 10.15.0 (2015/12/21) の アップデートした事でおかしくなったかもしれません

リリースにノートにあるように キーリピートのリミッターが無くなったためだと思われます

img

おかしくなった人はリリースノートにある通り

Delay until repeat を 200 Key repeat を 5

に設定すると前の最高の環境を取り戻せるでしょう

それでは、最高のKey Repeat環境を

Google Play の レビューを取得してSlackに投稿するやつ作った

はじめに

といわれたので書く

作りました

同僚のエンジニアが App StoreのレビューをSlackに流すbotを作ってて

それを使ってみたら なかなかよかった

App Store も流し始めたら Google Play のも流し始めたくなった。

App StoreRSSがあるみたいですが、 Google Play にはないので仕方なくスクレイピングして取るようにした。

Konboi/go-google-play-review-watcher

CSSの規則が変わったら動かなくなるが、今のところはいい感じに動いてる

#師弟登壇2015 で発表してきました

はじめに

企画運営してくれた ペパボ のみなさま 会場提供していただきたCOOKPADのみなさま

本当にありがとうございました。 おかげで非常に楽しめました。

発表資料

こちらになります

speakerdeck.com

振り返って

発表自体は良かったと言われたのでよかったと思います。

個人的な反省点としては、ちょっと自分がしゃべりすぎた感があるので2人で発表するときとは分担も考えないとなーという学びがありました。

各会社思考を凝らした研修をしていて非常に勉強になりました。

参考になるところもあれば自分のところでやるにはちょっとやり過ぎかなーとかとか色々考えることがありました。

来年の新卒研修は自分が担当するか分かりませんが、

  • 何のために新卒研修するのか
  • 新卒研修受ける側にはどういう知識を身に付けて欲しいのか

というゴールをしっかりと明確にして、ただやるだけの研修にはしたくはないなと改めて思いました。

最後に

弟子とはいい関係でいたいものですね

AWS で docker を v1.6 以上にアップデートする

はじめに

Docker Hub Deprecation for Clients 1.5 and Earlier

ということで dockerのバージョンが1.5以下では

  • 11/19 日からdocker hub へのpush
  • 12/7 から docker hub からの pull

が出来なくなります。

dockerのバージョンが1.5以下の物を使っている場合は新しい docker image をつくる時に非常に困ります。

dockerdかえアップデートする

ということで AWS に限ったことですが

$ sudo yum update docker --releasever=2015.09

リリースバージョンを指定して updateすれば dockerだけいい感じにアップデートできます

$ docker --version
Docker version 1.7.1, build 786b29d/1.7.1

無事1.7.1にアップデートできました

アップデート時に起動しているコンテナがすべて落ちてしまうので気をつけてアップデートしてください。

まとめ

  • 1.5以下のバージョンを使っている人は、早めにdockerのアップデートしよう

Route53でダイナミックDNSをする 実装編

はじめに

過去3回に渡って色々準備してきました。 最後これらを使って実際にグローバルIPが変わった時にDNSを変更するクライアント? を作ってみたのでそれのメモです

実装

今回は go, aws-sdk-go, route53 の API を使用して実現しました

実際のコードはこんな感じです

https://gist.github.com/Konboi/afa7a8607ef1742f5ddb

流れとしては

  1. 現在のグローバルIPを調べる
  2. Route53のAPIを使って対象のドメインに設定されているIPを調べる
  3. グローバルIPと登録されているIPが異なっていたら更新する

以上になりまっす。

これを buildし対象のサーバーでcronを回して実行している感じです。

問題なく動いているので非常に満足です。

まとめ

  • route53のAPISDKを使ったらスムーズにDDNSが実現できた
  • aws-sdk-go のお作法が大分難しかったのでruby sdk のサンプルを見ながらこんな感じかなで実装しました。

Route53でダイナミックDNSをする IAM編

はじめに

第334回 Route 53でダイナミックDNSを運用する

こちらの記事を本に設定したHosted Zoneを操作するIAM(AWS Identity and Access Management)ユーザーを作ります

ユーザーを作る

AWS Consle > IAM > 新規ユーザーの作成

で任意のユーザー名を入力し作成すると、このようなページになりURLをクリックすると

  • アクセスキーID
  • シークレットアクセスキー

が表示されます これをメモしておきます

権限を付与する

作った状態のままだとただユーザーを作っただけなので設定したHosted Zoneを操作できる権限を付与します

AWS Consle > AMI > ポリシー > ポリシーの作成 > Policy Generator から Route53 を選択

  • ChangeResourceRecordSets
  • ListResourceRecordSets

を追加し、 arn:aws:route53:::hostedzone/#{Hosted Zone ID} を入力して作成すると

このような項目が表示されると思われます

これでRoute53のドメインを操作するだけの権限を与えたポリシーが作成されました

これを ポリシー > 作成したポリシー名 を選択すると

このようなボタンがあるので

アタッチを選択後、先ほど作成したユーザーを選択してあげると独自のポリシーを付与できるようになります。

おわりに

これで必要なIAMユーザーの作成は終わりです。 次は今回したアカウントを使ってRoute53のHosted Zoneを更新していこうと思います。

IAMを使えば特定の権限だけをもったユーザーを作れるので便利ですね。

Route53でダイナミックDNSをする ドメイン編

DDNS用のゾーンを作成する

既にドメインをゾーンで設定している。

今回は登録しているドメインサブドメインをzoneに登録する

img

Create Hosted Zone から設定したいドメインを入力する。

今回はサンプルとして aws.example.amazon というドメインとする

既に登録してあるドメインサブドメインを登録する

hosted zone を登録して Create Record Set から Record 登録すれば使えると思ったらそんな事はなかった。 既に別のHosted Zoneで登録しているドメインの方の設定とバッテイングしてしまい上手くドメイン解決ができなかった。

色々調べてみると こちらの記事 が参考になりました。

結論から言うと

既に登録されていたドメインの方の設定で Type: NS (Name Serverサブドメインの方のドメインを登録すれば解決しました