読者です 読者をやめる 読者になる 読者になる

年中アイス

いろいろつらつら

rnzooにinstance type変更機能を追加しました

rnzooのdevelopバージョンにec2typeというインスタンスタイプを変更するサブコマンドを追加しました。 # すでに入れている場合はtap不要 brew tap reiki4040/rnzoo # developバージョンの指定でインストール brew install rnzoo —devel AWSコンソールからや…

Pull Requestを自動で作成する

rnssh, rnzooの新しいバージョンを出そうとするときに、別リポジトリになっているhomebrew-rnssh, homebrew-rnzooを編集してpushするのが、地味に面倒だと思うようになり、他の自動化でも使えるかなと考えて、Pull Requestの自動作成をやってみるようにして…

golangのHTTPサーバを構成しているもの

golangのHTTPサーバは、少量のコードで動くものを作ることができます。内部的には、net/httpパッケージのServerとHandlerで構成されます。 Serverは名前の通り、Serveするもので、HTTPをどのネットワークソースで提供するかを定義するものです。 Handlerは、…

homebrewのformulaフォーマットをチェックする

ふとQiita見てたら、homebrewで配布するという記事に、auditでフォーマットチェックするといいよってコメントがついていました。 goでcliのコマンドを作ってhomebrewで使えるようにしてみた - Qiita rnzooもrnsshも数年前にpecoを参考に作っただけで、チェッ…

rnzoo 0.4.1をリリースしました

去年ふっとgolang 1.7に上げといたrnzooですが、先日v0.4.1をリリースしました。アップデートはhomebrewなら以下で。 brew update brew upgrade rnzoo 内容は、rnzoo ec2listに、-t, -tsvオプションを追加しました。rnzoo ec2listは、ec2のインスタンスリス…

AWS API Gateway+LambdaでSlackにメッセージをPOSTする(後編)

前編、中編にて、AWS API Gateway + Lambdaを使って、post-slack WebAPIを作り、テスト実行まで行いました。後編では、API keyの設定と実際に使えるようにデプロイをしていきます。 Slack Webhook URLは、それを知っていれば誰でも使うことができます。せっ…

AWS API Gateway+LambdaでSlackにメッセージをPOSTする(中編)

前回、Slack Incoming Webhookの作成と、それを使うLambdaを作成したので、続いてAWS API GatewayとLambdaを繋いでいきます。書いていたら思ったより長くなったので、API Gatewayのテスト実行までを中編にして、後編で、API keyの設定とデプロイを行います。…

AWS API Gateway+LambdaでSlackにメッセージをPOSTする(前編)

Slackはincoming webhooksがあり、POSTするだけで、簡単にメッセージを送ることができます。 スクリプトで直接Incoming Webhook使ってもいいんですが、これ自体は別に認証も何もないので、誰かが知ってしまうと、好き放題投稿できます。そんな時に入れ替えた…

iPhone7に変えました

こっちにも書きましたが、2016年末に、iPhone5sからiPhone7に変えました。決め手はやっぱりApplePayでのSuica(後述しますが、停滞中)で、副産物としてQuicPay(ポストペイ型の電子マネー)が便利という気づきがありました。 値段 AppleStoreOnline SIMフリー…

2016年の生活

もう2017年入りましたが、2016年のこと。 子供 2016年、一番のトピックは、6月に初めての子供が生まれたことでした。そして8月からフル在宅勤務を開始して、現在も続けています。保育園次第でまた勤務体系は相談する予定になってます。 出産に立ち会いました…

2016年お金の使い道ランキング

2015年は、買って良かったもの書きましたが、2016年は、自分の時間を取り戻そうに感化され、価値のある出費TOP3に変えてみました。 2016年は子供が生まれたこともあり、そっち関係の出費の価値が高かったです。1位に関しては本当ケチらなくてよかったと心底…

デフォルト値の怖さ

何も設定せずに動かせることは便利ではある 様々なサーバアプリケーションや、ミドルウェアを使う場合に、設定がない場合のデフォルト値が用意されていることがあります。 広く配布して使われるアプリケーションは、様々な人達が使うこともあり、なるべく何…

2015年技術でやってきたこと

毎月やらないとと言っていた振り返りが結局また年をまたぐという状態です。前半何やってたか記憶がないぐらい衰えを感じるので、2016年は四半期ぐらいにはまとめようと思います。。。 キーワードだけあげるとこんな感じ さらにgolang プライベート開発 Auror…

2015年に購入してよかったもの

去年に引き続いて何点か。今年はそんなにもの買ってないかなーというところ。来年引越しする時に色々買い換えるので、その時にまた便利にしたいところです。 ドラム式乾燥機能付き洗濯機 Amazon.co.jp: Panasonic ドラム式洗濯乾燥機 9kg 左開き クリスタル…

データに対する時間がたくさんある

ちょっとハマったので、整理というか殴り書き。 一つのデータにも様々な時間が関わります。 スマートフォンアプリから、WebAPIを経由して、DBおよび検索エンジンに至るまでのデータに対する時間 - ユーザが作成した時間 - アップロードした時間 [↑スマートフ…

GRANTで起こすDB接続障害

MySQLの権限追加でGRANT文を使った時に、DB接続障害を起こす失敗の仕方です。 GRANTSは、MySQLユーザに対しての権限を付与する構文です。 MySQL :: MySQL 5.6 Reference Manual :: 13.7.1.4 GRANT Syntax よく紹介されているのは、CREATE USERを使ってユーザ…

午後休のススメ

よくある?だらっとした休み 有給休暇をとる際に、1日とっても寝て起きたら昼過ぎで、少しだらっとしてるとすぐ夕方になってしまい、休み取った感がなくなってしまうことがあります。 そこで午後休 そこでオススメなのが、午後休です。朝はいつも通り出勤、…

Roadworkerを使ってRoute53 Private DNSを管理する

AWS

Roadworkerとは Route53の設定を、DSLで管理するruby製のツールです。ドメイン設定をコード化できるので、gitで管理することができます。 winebarrel/roadworker · GitHub Route53 private DNSとは 2014年の11月ごろから使えるようになった機能です。 特定の…

2014年に買ってよかったもの(生活周り)

ある意味これも振り返りかなと思ったので書いてみました。買って失敗だったものも思い出せたら書いてみようかな。*1 kindle (paper white / voyage) 場所を取らない、買ってすぐ読めるという点が一番でした。漫画、小説、新書あたりは新しいのはkindle版を買…

2014年振り返りと2015年抱負

2014年中にやるべきでしたが、超えました。2015年は月ごとにちゃんとやるべきかな。 2014年ハイライト 1-3月 接続障害と大反省会 突然のイベント決定(高負荷) インフラ担当者の突然の離職と引き継ぎ 4-8月 冗長化、対障害性対策 MySQL、アプリロジックなど…

Kindle voyageが動かなくなった(交換品受領済)

12/7 交換品受領と、時系列、リセット後の操作一部追記 時系列 11/21 kindle voyage到着 11/30頃? スリープから復帰しなくなる 12/3 サポートと電話連絡 12/7 交換品到着 発生した事象 11月に少し遅れて注文したKindle voyage(WiFi、キャンペーン情報なし版…

homebrewで自作のバイナリを配布する。

rnzooのインストールを簡略化するために、homebrew経由で、インストールできるようにしたのでその時のメモ。 rnzooがhomebrewで入れられるようになりました。 - 年中アイス※2014/11/5 versionの指定をミスしていたので修正 homebrewとは homebrewはmac向けの…

rnzooがhomebrewで入れられるようになりました。

rnzooの導入をより簡単にするために、homebrew経由でのインストールに対応しました。以下のコマンドでインストール可能です。 brew tap peco/peco brew tap reiki4040/rnzoo brew install rnzoo pecoもtap使っているので、pecoをまだhomebrew経由で入れてな…

rnzoo 0.2.0をリリースしました。

golangで書き直した新しいrnzoo version 0.2.0をリリースしました。(ssh呼び出しが有るので、rnsshはshell) Release version 0.2.0 · reiki4040/rnzoo · GitHub今回のバージョンの目的は、導入のハードルを下げるために、boto(Python)からgolangにしたことで…

AWSの利用料金が一定金額を超えたら通知させる (Billing alarm)

AWS

AWSから、個人で使っているアカウントに、先月の料金$18ぐらいです。とメールが来たので、インスタンス止めてたはずだけどなーと思ってみてみたら、見事にt2.microが1台と、なぜかElasticIPが停止しているインスタンスについている状態でした。(ElasticIPは…

golangでのシグナルハンドリング

golangでデーモンやWebサーバなどの設定再読み込みなどをどうしようかなと考えてた時に、fluentdがシグナルでいろいろやってたな*1と思ったので、golangだとどうやるか調べてみました。全体はこれ 動作の確認 ビルドして実行ファイル作成 go build 実行しま…

golangとPythonでの可変長引数(variable arguments)の扱い方

ltsv_pipe/ltsv_filterではフィルタするラベルを渡すのに、可変長引数を使用しています。 reiki4040/ltsv_pipe · GitHub rnzoo/ltsv_filter at master · reiki4040/rnzoo · GitHub 可変長引数は、引数の個数を固定せずに渡された個数分が関数わたるようにな…

rnzoo/ec2sshを作った。

---- 2014/10/19 追記 ec2sshは、rnsshに名称変更して、homebrewでのインストールにも対応しました。 rnzooがhomebrewで入れられるようになりました。 - 年中アイス rnzoo 0.2.0をリリースしました。 - 年中アイス ----前回のエントリでec2listを作りました…

ec2listというコマンドを作った。

2014/9/7追記 そのままec2sshも作って、導入の手間を考えてリポジトリもreiki4040/rnzoo · GitHubに移動しました。rnzoo/ec2sshを作った。 - 年中アイス rnzoo/ec2sshを作った。 - 年中アイス ---以下元エントリ ec2のインスタンス情報を表示するec2listとい…

awscliを使って、VPC向けsecurity groupを作成する

AWS

以下が完了していること前提になっています。 awscliのインストール(確認環境は、aws-cli/1.4.2 Python/2.7.5 Darwin/13.3.0です) AccessKeyのセットアップ VPCの作成(例として、10.0.0.0/16を用います) 手順としては、以下になります。 SecurityGroup(以下S…

Fluentularを使って、fluentd in_tail pluginのformat属性に入れる正規表現を簡単に確認する。

以下サイトで、チェックできるので、自前のログだったり、標準で対応してないものはここでチェックすると楽です。 http://fluentular.herokuapp.com/ ・正規表現・ログ・時刻書式 これを入れてParseボタンを押せば、ログをパースした結果が下部に表示されま…

Route53のヘルスチェックに403を返してるはずなのに、なぜかFailしない

AWS

ちょっとはまったのでメモ。 Route53には、エンドポイントをチェックして、フェイルオーバーしたり、DNSの振り分けを止めたりする機能がついています。これを有効に使うには、何が成功で、何が失敗になる(する)のかをコントロールすることが重要です。 AWS…

はてなブログに移行しました

友人(id:airish9)がはてなブログProにした勢いにのって、私もとりあえず、はてなブログに移行しました。Proはまだあんまりマッチしなさそうなので、様子を見つつ。友人はお金払うともったいないから記事を書くとのこと。私はお金払っても使わないものは使わ…

monitoring casual #6 に参加してきました。

6/12(木)に開催されたmonitoring casual #6 に参加してきました。最近、インフラというか運用含め見ることになり、この辺りの実際は情報としては出てきづらいのかなーと思っていて、ちょうど参加人数に入ることもできたのがよかったです。作るより、監視運用…

キャリアのiPhone4Sから、SIMフリーのiPhone5s+MVNO SIMに変えてみた。

Softbankで、2012年にiPhone4Sに変更して、丸2年。もともとガラケーとの2台持ちだったのもあり、iPhoneはデータ通信メイン。あの時とは違い、公式にSIMフリー端末が出ていることと、MVNOのプランも充実してきました。最近のキャリアの契約時のよくわからな…

PackerでProvisionerが実行されてるけど、boxに残らない時の対処

2013/11/25追記訂正 改めて、 mitchellh / packer-ubuntu-12.04-dockerからcloneしてpacker buildを実行すると今度はうまくいき、provisionerが適用されている状態のboxが生成されました。特にshutdown -P nowはいじってません。んー、なんでだろうと思うと…

Mac+Vagrant(Virtualbox)でansibleを試せる環境を作った

ansibleのplaybookを作る時、確認用にVagrant+VirtualBoxを使っています。最初の環境を作るのが地味に面倒なので、自分が使うMacでansible実行して、VirtualBox上の仮想マシンにプロビジョニングを行う環境をすぐ作れるようにしてみました。reiki4040/ansibl…

ansible task内のnotify(handler)の実行タイミング

ansibleのplaybookを作成している時に、若干はまったのでメモ。こんなplaybookを作っていました。 関連ライブラリストール 設定追加してnotifyを使って再読み込み 確認用にGETリクエストを投げる 干再読み込みに時間がかかるようだったので、wait_forを使っ…

Packerで自分の仮想マシンを作ろうとしたけど、provisionerが反映されない。。。

- 無事解決しました! PackerでProvisionerが実行されてるけど、boxに残らない時の対処 - 年中アイス - ansibleになれてきて、必要なものを入れられるようになってきたので、仮想マシンも一から作ってみようかと、Packerに挑戦。Webをいろいろ見ながら、参考…

動作確認は単体テストでやると気分が楽になるかもしれない

プログラム書く時に、動作確認はどうやっていますか? コマンドラインからスクリプトを実行 言語のインタラクティブツールを利用(ruby, pythonなど) Webアプリをローカルにデプロイしてブラウザから確認 動作確認は、一度だけ確認で済めばよいのですが、修正…

bitnamiのGitlab stackで、ブラウザからソースファイルが見れない時の対応

Gitlabを使ってみようと思って、自分でインストールしようと思ったら、関連パッケージやらgitユーザやらで、うまく行かなくて困ってました。 よく見ると、bitnamiからone-click installがあったので、試してみました。 GitLab Cloud Hosting, GitLab Hosting…

saharaプラグインを使って、失敗しても戻せるようにする

2013/10/24 追記 ちょっと前に、vagrantのバージョンを上げてみたら、saharaが動かなくなったんですが、今は以下のコマンドで入りました。 vagrant plugin install sahara MacOS Mervericks VirtualBox 4.3 Vagrant 1.3.5 sahara 0.0.16 参考 OSXにvagrantと…

vagrantで複数の仮想サーバを作る

前回に引き続いて、複数台の仮想サーバ環境の作成を行います。公式を参考に。 Multi-Machine - Vagrant Documentation 準備 適当なディレクトリを作成して、vagrant initする。ここは前回と変わりありません。 $ mkdir multi-server $ cd multi-server $ vag…

vagrantを使った簡単仮想サーバ環境の準備

サーバ環境を作る時に、VirtualBoxを使って仮想サーバを作るとしても、GUIで仮想マシン作って、起動してOSイメージ読み込ませて。。。とやってると非常に手間です。そんなわけで、ちょっと前ぐらいから熱い感じのvagrantを使って、簡単に環境を作れるように…

fluent-plugin-datacounterで地味にハマったこと

特定のパターンだけ出力されないと悩んでいたら、単にパターンの連番をコピペ後に修正し忘れていて、上書きしてしまっていました。 pattern1 200 ^200$ pattern2 3xx ^3\d\d$ pattern3 4xx ^4\d\d$ pattern2 5xx ^5\d\d$ # <- here! correctly, it is 'patte…

with構文とは何なのか

Pythonをやっていて、with構文って何だろ?となって、理解できたので整理してみます。細かいところが違うかもしれませんが、動きはつかめるかなと思います。 Python3.3で動作確認しています。 with構文とは with構文は、ある機能の利用者が、より安全、簡潔…

pull requestしてみて

ちょっと前ですが、fluent-plugin-parserに出したpull requestが無事マージされました。 内容については、下記エントリを参照ください。 fluent-plugin-parserから出る"pattern not match"メッセージを出さないようにしたい - 年中アイスミスってたことと、…

fluent-plugin-parserから出る"pattern not match"メッセージを出さないようにしたい

2013/02/27追記 @tagomorisさんに無事pull requestマージしていただけました。ありがとうございます。 fluent-plugin-parserの0.2.2から使えるようになっています。 設定名をsuppress_parse_error_logに変更 テスト例をいただいて、無事テストコードも追加 …

fluentd casual talk #2に行ってきました。

最初の@just_do_neetさんの出だしがかなり衝撃的でした。 ログは、1TB/day over (これは圧縮済みの認識) そのうち、1件でもロストしたらそれは障害 根本的なログに対する姿勢が違う・・・!! 個人的には、もし若干のロストがあっても簡便に集約を行えること…

DeploygateでケーブルレスなAndroidアプリ開発

会社で使ってて便利なので簡単に紹介。 私は開発者ではなくPMの立場(開発してないが確認をする)として使ってます。 Deploygate 株式会社ミクシィの提供するAndroid向けプライベートアプリ配布サービスです。 公式はこちらDeployGate - An incredibly easy …