短いヘッドフォンケーブルの作成

今使っているヘッドフォンのケーブルが長くて取り回し辛いので、新しく短いヘッドフォンケーブルを作ることにしました。使っているヘッドフォンは AKG K240 Studio なので、ヘッドフォン側がミニXLRジャックのメス、音源デバイス側が3.5mmステレオミニプラグ…

Terraform リソースの命名規則を考える

異論は認めるし、手探りなので特にこれと言った答えはない。 Terraformではリソースに名前をつける(terraform_res_nameの部分)。 resource "aws_s3_bucket" "terraform_res_name" { bucket = "enq-${var.env}-${var.service}-private" acl = "private" tags …

Atomで設定でソフトラップを無効にしても折り返されてしまう

ソフトラップとは文字列がエディタの幅を超えた時に表示だけ自動的に改行する機能で、多くの場合は便利なんだけど表とか行を比べて見たいときには非常に見づらくなってしまう。 左: ソフトラップ 右: ソフトラップ無効 Atomでソフトラップを無効にしても折り…

DockerのコンテナIDとプロセスIDを調べる

先日、とあるプロセスが暴走していてCPUを食いまくっていた。バッチサーバで各バッチをコンテナで実行しているんだけど、どのプロセスがどのコンテナかを調査する時にPIDからコンテナID(もしくはコンテナIDからPID)を調べる必要がある。 /proc/$PID/cgroup…

IntelliJ でターミナルを使う

たまに使ってたんだけど、なぜかウィンドウ下に出てこなくなってた。 Cmd+, で Preferencesを開いてプラグインのインストール画面でTerminalにチェックを入れると表示される。 IntelliJの再起動をすると。 表示された。 Alt+F12 でフォーカスを当てられると…

お名前.comでIPとドメインを紐づける

書くほどのことではないんだけど、ちょっと運用を引き渡すことも兼ねてのメモ。 まず、お名前.comでドメインを取得する。 例えば、 example.com 。 Aレコードとして、ドメインと該当サーバのIPを紐づける。 例えば、 192.0.2.1 。サブドメイン入力欄は空で、…

Jenkins を プラグインと同時にアップグレードしたらエラーが出て起動しなくなった

「Jenkins新しいのあるよ」という通知が出てたので、いつものようにアップグレードしたらエラーが出て起動しなくなった。おそらく、問題はプラグインアップデート中だったということ。。 java.lang.AbstractMethodError java.lang.AbstractMethodError: org.…

一部の古い Safari で CORS 違反の403エラーが出る

次のような環境で CORS 違反のエラーが出てしまう症状に会った。 Chrome や Firefox では全く問題はなかったんだけど。 iOS 9.0, 9.2, 9.3.5, 10.2 MacOS 10.10.4(Yosemite)/Safari 8.0.7 「Go言語(Go-Json-Rest)のCORSでのハマり。Safariだけでハマった話…

Amazon.com とアカウント結合している場合は Amazon Dash Button が使えない

前回のサイバーマンデー(日本)で Amazon Dash Button が半額の250円だったので幾つか購入した。しかし、WiFi設定を行っても「接続に失敗しました」というメッセージが表示され、接続されない。 ヘルプに書いて有ることを片っ端から試してみた。iPhoneの再…

direnv で AWSのIAMアカウントを自動的に切り替える

複数のAWS IAMアカウント(例えば会社用と自分用)を使っているときに、間違って他のアカウントを使わないようにしたい。「--profile」オプションで環境を切り替える事もできるが、付け忘れたりするリスクがある。 試行錯誤・運用した結果、ホームディレクト…

GitHub Pages にホスティングしたTypeDocが404になる

GitHub Pagesは、 _で始まるファイルが表示されない。これはGitHubの仕様である模様。 TypoeDocは module ディレクトリ以下に _ で挟まれたHTMLファイルを生成する。そのまま、GitHub Pagesにホスティングしてしまうと404になってしまう。 これらのファイル…

typedocで 「no such file or directory, stat」 というエラーが出る

typedoc でドキュメントを生成しようとすると以下のようなエラーが出るようになってしまった。 ❯ yarn docs yarn docs v0.27.5 $ typedoc --theme default --out docs src Using TypeScript 2.4.1 from /Users/yoshiki_aoki/work/src/.../node_modules/types…

Alfred 3のForce Keyboardがうまく動かない(Sierra)

Alfredの設定で、 Preference > Advanced > Force Keyboard を設定しておくと、IMEが日本語入力になっていても自動的に英字入力に切り替えてくれる。 しかし、TouchBarのMacBookProになってからこの機能がうまく動かない。調べるとSierraになってから発生し…

MySQLで外部キー制約を課すべきか

外部キー制約を設けておくと、存在しないエンティティ(例えばユーザIDなど)にリレーションをシステム的に持てないようにすることができる。これは、データの不整合を防ぐためには非常に有効な手段であると思う。 SQLアンチパターンには「キーレスエントリ…

aws-cliの導入とAWS Credentialの設定

AWSが公開してるドキュメントを見ればわかるんだけど、再セットアップ時に行ったので備忘録。 まず、IAMでアクセスキーを発行する。 そして、awsコマンドのインストール。 brew install awscli 終わったらターミナルで aws configure を実行して設定を行う。…

play-slickを依存に入れたらslickは不要か?

PlayframeworkでSlickを使う時にPlayframeworkの公式ドキュメントにも記述されている、play-slickというPlayプラグインを使う。GitHubに転がってるサンプルとかをみると、依存ライブラリ(libraryDependencies)にplay-slickとslickどちら書いているパターン…

S3バケットからディレクトリ、フォルダを消せない

AWSコンソールから作成したフォルダが、右クリックから削除を押しても開始中のまま消えない よくわからないけど、CLIでけしたら消えた ❯ aws s3 rm s3://<BUCKET_NAME>/new\ folder/ delete: s3://<BUCKET_NAME>/new folder/</bucket_name></bucket_name>

yarn で npmrc に書いた save exact が効かない

.npmrc に 'save-exact': true を設定してるのに、 yarn でnpmモジュールをインストールすると、 ^ 付きでインストールされてしまう。 結論としては ~/.yarnrc に save-prefix false を追加すればよい。 少し前までは、 yarn config set save-prefix '' を実…

zsh と zplug で足回りを整備する

新しいMBP(Touch Bar)になったので環境を整えてる。 最初は「もうzshじゃなくてbashでいいかな」と思い、syntax-higlightとかzplugの代替になるものとかを探してみた。 でも、あまり決定版が見つからなかったので結局前回と同じzsh + zplugにした。 Instal…

1password で「ブラウザを確認できませんでした」という表示が出る

1password をアップデートしてから、「ブラウザを確認できませんでした」という表示が出るようになってしまった。 調べてみると、Code Signatureがなんたらかんたららしい。 https://support.1password.com/code-signature/ http://applech2.com/archives/20…

Macで cfprefsd というプロセスが凄いCPUリソースを食う件

すごいMacの動きが重くて、悪さしてるのはどのプロセスなのかとActivityMonitorをみたらcfprefsdというプロセスが80%くらい食っていた。 スペックはこんな感じ。 OS X: 10.11.6 MacBook Pro (Retina, 13-inch、Early 2015) 調べるとBluetoothが原因っぽいら…

arp-scanでLANにつながっているデバイスのIPアドレスを調べる

先日、RaspberryPiを触っていた時に、LANに接続している内のIPアドレスを知る方法はないかと思っていろいろ調べてみた。すると、arp-scanというコマンドがあった。 $ arp -i en0 -a ? (192.168.11.1) at 0:24:a5:f:8f:ae on en0 ifscope [ethernet] ? (192.1…

Atom Key Binding Resolver

Atomを使っていてキーバインディングで迷子になった時いつも調べるのでメモ。 基本は cmd+shift+p で keymap を検索して、 もしくは cmd+, で設定の Keybindings からキーバインディング設定を開いて確認する。 ない場合は 「Key Binding Resolver」を使うと…

Terraformで循環参照のエラーが出た時

これは、リソースを変数で参照して整合性?を保とうとしたときに良くなる。 variable "env" { type = "string" default = "dev" } variable "service" { type = "string" default = "foo" } resource "aws_cloudfront_origin_access_identity" "origin_acces…

Terraformでテンプレートを使ってポリシーを定義する

Terraformにはテンプレート機能がある。よく使われるのは、ポリシーの設定などで、ヒアドキュメントで記述されるようなものを、別ファイルに記述し変数を与えて埋めていく。 ポリシーを定義する 例えば、ユーザやグループにポリシーを設定するために、まずポ…

Terraform で変数を使う

Terrafromでは変数が利用でき、variableを定義して、値を注入する。 一番シンプルな例は次の通り。 provider "aws" { region = "ap-northeast-1" } variable "foo" {} resource "aws_s3_bucket" "s3_bucket" { bucket = "${var.foo}" acl = "private" } vari…

Terraform でループして複数のリソースを作成する

TerraformでListの変数を使ってループさせたい時がある。 例えば、ユーザアカウントを複数作りたいとき。 以下のようなリソース定義を必要な分だけ書かないといけない。10個あったら10個。メッチャ大変。 resource "aws_iam_user" "developer" { name = "foo…

PebbleのWatchFaceを作ってみた

去年、PebbleがFitBitに買収されてたので、在庫が無くなる前にPebble Time Roundを買った。 今までは、Pebble Timeを使っていたんだけど、四角いし厚いしいまいちオシャレじゃないなーと思ってたのでよい機会。 毎年、正月休みに新しい何かを触ってみようと…

TerraformのstateをS3でリモート管理する

Terraformの管理下にあるリソースの情報は tfstate ファイルに保存されている。たとえば、チームでこのtfstateを共有したいときにどうすべきかというのが課題になる。 tfstate ファイルをS3バケットに保存する(version >= 0.9.0) Terraform 0.9.0 から terra…

Alfred 3 のテーマ

先日、Alfred 3がリリースされた。パワーパックは2で購入していたので £12 でアップグレードできる。 とはいえ、2で満足できてたし1,600円払ってまでアップグレードするほどの目玉機能入ったの?? 早くなった?ワークフローが強くなった?いやー、2で十分で…