まーぽんって誰がつけたの?

iOS→Scala→インフラなおじさん技術メモ

2016-01-01から1年間の記事一覧

terraformでmoduleのsourceにinterpolationは使えない

module "hoge" { source = "${path.module}/hoge" } とやっても、 * hoge: module source cannot contain interpolations で、はじかれる

remote-execでEC2インスタンスの起動時の処理書いたけどuser-dataがあった

前にこれを書いたんだけど、こんなことする必要なかった。 mpon.hatenablog.com こっちでよかったじゃないか。AWSのこと何も分かってない証拠ですね。 docs.aws.amazon.com

terraformのディレクトリ構造とかは何を参考にすればいいか

github.com quipper.hatenablog.com Good

EC2をremote-execでprovisioningする方法

追記:そもそもuser-dataがあることを知らなかったのでこっちを使おう www.mpon.me elastic ipで接続されない こんな風に素直に(自分的には)書くとElastic IPよりも先にEC2を先に作ろうとしちゃう。 で、private ipでssh接続しようとするから、そりゃあいつ…

terraformのmoduleで定義したresouseにアクセスするにはoutputしないとダメ

moduleの誤解 何もわかってなかった。 module使うと変数とかをscope化できるからいいなーって思ってたけど、resourceもscope化されるってことだった。 まぁ逆に言えば、module内にresource名は被らないように気をつける必要がないとも言えるけど。 terraform…

terraformのresourceのNAMEの命名規則について

NAMEにTYPEを入れるかどうか 結構プロジェクトによってバラバラで他の言語でよくあるガイドラインみたいなのがない気がする。 個人的にはresourceのTYPEで特定できるから入れない方がいいかなという気になっている。 resource "aws_vpc" "dev_vpc_01" {} res…

terraform入門時のメモ

どう入門するか 今まで人が作ったterraformの設定をいじって適用とかはしてきたけど自分で一から作ったことない。仕組みを理解するには、一から自分で作ってみるのが早そうだと思ったので自分で一から作ってみることにした。 ので、素直にこれをやることにし…

slackのweb api経由のchat.postMessageでattachmentsが送れない

JSON.stringifyする必要があった。 NG "attachments": [{ "text": "hoge" }] OK "attachments": JSON.stringify([{ "text": "hoge" }])

XcodeのSchemeで値を切り替える方法を探る

iOS

背景 APIの向き先とかをTargetを増やしてswiwt other flagsで#if DEBUGとか#if STAGINGでやってる。ので環境が増えるたびにtargetが増えていってしまうのでやめたい。 実行時に環境変数的に値を渡せないか SchemeのPre-actionsで追加する Build、Run、Test、…

Google Apps scriptでインデント整理する方法

Tabを押すと勝手になる。逆に無駄なタブは打てない。全選択してTabでいける。

Play FrameworkのRequest.remoteAddressの値が突然変わった

現象 あるサービスの仕組みで処理結果を通知してくるために、自サーバーのapiをたたきにくるときがある。この際に、サーバー側では本当にそのサービスからのリクエストかどうかをみるために、あらかじめIPアドレスを設定しておいてvalidateしてるが、あるリ…

シェルでslackにcurlしたときinvalid_payloadになる

payloadのなかに&が入ってたから。%26って書かないといけなかった。

sh経由で実行するとeオプションつけてても途中で終了しない

sh

Jenkinsのシェルの実行で#!/bin/sh -xeってつけて途中でエラーが起きたらその時点で、 jobをfailureにするっていうのはよくあると思うんですが、 そのなかで、sh hoge.shみたいに別のshを起動すると、 hoge.shの中でエラーがあったときに、eオプションつけて…

sbt testが途中で止まってしまうのを調査する

状況 という状態になってしまって困った。sbtがグローバルで利用するsbtoptsもプロジェクト共通で指定してるやつがあって他の人は問題なさそうとのこと。ただ、OutOfMemoryなのでJVMのステータスみたいのが見たいと思って調べ始めた。 :dancers: JVMのパフォ…

scala.PartialFunction condOpt を使おう

同僚に教えて貰った。 scala.PartialFunction condOpt を使おうに書いてあるサンプルを見るとわかる。 ポイントは match式を使っていて そのmatch式の戻り値の型がOption 先頭からmatchさせていったとき、一番最後以外のmatchした場合については、明示的にSo…

ScalaでHTTPクライアントのライブラリは何を使えばいいのかと思ってAkkaを調べる

scalaのhttpクライアント 今までPlayしかやったことないからWSしか知らなくて、Playじゃないやつでhttpクライアント的なライブラリって何を使えばいいんだろうってのがスタート。Comparing Scala's HTTP client libraries - implicitdefとか見てdispatchって…

Xcode上でImplicit declaration of function 'notify_cancel' is invalid in C99 でハマった

iOS

Pureeをcocoapodsで導入しようとしてたら Pureeが依存してるYapDatabaseというやつがCocoaLumberjackに依存してて、CocoaLumberjackのところでタイトルのエラーが出た。 Implicit declaration of function 'notify_cancel' is invalid in C99 notify_cancel…

役割を明確化すると働きやすいなと感じた

今まで 入社して開発メンバーとして仕事をしてきて、いつのまにかチームリーダー的な役割になった。 スケジュール間に合うかベロシティを計測したり、やることがなくならないようにタスクを検討したり、新卒メンバーの受け入れをやったり、ミーティングの調…

elasticsearchのindicesとindex

indiceとindexってどう違うか分からなくてなぜかindiceはindexの親概念かなと勘違いしてしまっていて、かなり混乱してたけど、indice 意味 で、検索したらそもそも同義語だった… kibanaで見る場合はアスタリスクとか使ってどうせ複数のindexをまとめて見るこ…

fluentdのDockerfileの書き方がちょっと変わってた

ubuntuが16.04になってた これが一番大きな原因。 ubuntu 16.04が2016/4にリリースされてて、今Dockerhubのubuntuのlatestは16.04になってる。ちなみに、コードネームは「Xenial Xerus(ジーニアル ジリス)」で『おもてなしのアラゲジリス』 https://hub.do…

airbrake-logbackを非同期化することができなかった

背景 Logbackとは Logback は巷で大人気の log4j プロジェクトの後継プロジェクト java製のデファクトっぽいロギングライブラリ Airbrakeとは 商用のエラートラッキングシステム Errbitとは AirbrakeのOSSクローン airbrake-logbackとは logback はロギング…

deis上にhubotをデプロイする

hubot作成 https://hubot.github.com/docs/に従って、yo hubotでhubot作成 adapterはslack Procfileは削除して、Dockerfileを Docker + Yeoman + Hubot + Slack で簡単bot作成 参考にして書く FROM node:latest RUN mkdir /bot && cd /bot ADD . /bot WORKDI…

Future.sequenceは1つずつ順番に実行される訳じゃない

sequenceっていう名前からどうしても順序を意識してしまって順番に(直列に)実行されるものだと思っていた。 でもそうじゃなかった。 Future.applyの場合 ためしに、こんな処理を書いてみる。1から10までを1s待って出力するだけのやつ。 def process: Futur…

MySQLで全く関係のないテーブルをJOINする

FROMでカンマで並べるだけ SELECT * FROM A, B; 例えばゲームみたいなやつで、usersテーブルと、levelsテーブルがあって、usersとlevelsには何の関係もないけど、user一人一人に全レベルを結合したいみたいなとき。 SELECT users.name, levels.level FROM us…

パイプしたときにlessコマンドでエスケープシーケンスの色表示を有効にする

sh

例えば、$ docker logs hoge みたいな感じでログを見たいけど長くて画面におさまらないから、パイプしてlessに渡したいけどそうすると、色が出ないのでなんかないかなと思ったらあった。 -R をつければOK $ docker logs hoge | less -R