2018-02-18

fixup! なコミットを含む pull request で merge ボタンを押せなくするブラウザ拡張を作った

GitHub および GitHub Enterprise (以下 GHE と表記) で fixup! なコミットを含む pull request で merge ボタンを押せなくするブラウザ拡張 autosquash-please を作りました。Firefox と Chrome で動きます。具体的な動作イメージは以下のスクリーンショットを見てください。

autosquash-please

このように、コミットの一覧に !fixup foobar のようなコミットが含まれていると、マージボタンがかくれるだけの拡張です。

どのような場合に役に立つの?

1 pull request に対して 1 commit にまとめ...

2018-02-11

HAProxy 1.6 と 1.7 ではヘルスチェックを設定しないと名前解決が走らない

先日、会社の技術ブログで AWS Lambda を中心としたサーバーレスアーキテクチャーの記事を書いたのですが、思いのほか好評でびっくりしている @mozamimy です。

HAProxy でハマりがちなポイント

タイトルでオチてますが、書いてある通りです。意外と知られてない割にサービスがダ...

2018-01-14

SRE book から学んだことと、献身と愛情、2018 年の行動指針について

📖 SRE book を読んだ

SRE という肩書で仕事をしはじめてそろそろ 2 年たとうかというところで、いつか読もう読もうと思って読んでいなかった Site Reliability Engineering、いわゆる SRE book の日本語訳版を年末年始にかけて読みました。

SRE という肩書で業務に取り組んでいる人はもちろん、そ...

2017-11-30

AWS Certified Solutions Architect (Associate) を受験して合格しました

こんにちは。@mozamimy です。先日機運が高まって AWS Certified Solutions Architect (Associate) を受験する気持ちになり、受験したら合格したのでメモを残しておきます。

ちなみにわたしのスペックは以下のような感じです。

  • AWS 歴: 業務および個人で 1 年半程度
  • 好きなサービス
    • ECS
    • ELB
    • Lambda

❓ なぜ突然 AWS の資格を受験する気持ちになったのか

もともと資格にはあまり興味がない性格なのですが、きっかけは AWS re:Invent 2017 | Amazon Web Services に行くことになっ...

2017-11-15

「言語実装パターン」の LL(1) 再帰的下向き構文解析器を Rust で実装してみた

この記事は、「言語実装パターン」の LL(1) 再帰的下向き字句解析器を Rust で実装してみた の続きです。言語処理系の実装のセオリーと Rust を学ぶために、「言語実装パターン」で紹介されている各パターンを Rust で実装する活動の 2 回目です。

O'Reilly Japan - 言語実装パターン

言語実装パターン表紙

LL(1) 再帰的下向き構文解析器の実装

ここで作るのは、以下のような文法を持つ入力を受理するパーサです。

list     : '[' elements ']' ;
elements : element (',' element)*
element  : NAME...
2017-11-12

「言語実装パターン」の LL(1) 再帰的下向き字句解析器を Rust で実装してみた

(2017-11-13 ちょっとコードに変更を加えたので加筆修正しました)

ごきげんよう。深夜のおかしな時間に起きてしまってついついケータイの公式アプリで Twitter を見てしまうとき、流速が遅いのについついリロードしてしまって、こんな感じになっちゃいますよね。もざみみです。

2017-11-08

AWS EC2 の新世代インスタンス c5 のマイクロベンチマーキング

2017-11-08 に、AWS の EC2 に新たなインスタンスファミリーである c5 シリーズが登場しました。これまでのコンピューティング最適化インスタンス c4 の後継となるものです。まだ ap-northeast-1 では利用できませんが、us-east-1 などのリージョンで利用することができます。

詳しい情報は以下の AWS の公式ページにまとまっています。

2017-11-05

Redis の無停止マイグレーションと ElastiCache そして Redis Sentinel

やんごとなき事情により、CentOS 6 が動く古いサーバをつぶしていくというようなことを普段やっていて、Cent OS 6 上で動く Redis をどのように移行しようか、ということを最近考える機会があったので、このエントリにメモしておきます。

オンプレミスではなく AWS の EC2 や ElastiCache に寄せていくということと、Redis を利用するアプリケーションサーバでは Ruby on Rails が動いているという暗黙の前提があるため、そのつもりで読んでいただければと思います。

無停止で Redis サーバをマイグレーションすることの困難さ

Ubuntu 16...

2017-10-24

ISUCON 7 の予選を突破した (†空中庭園†《ガーデンプレイス》)

今年も大盛り上がりな ISUCON 7 でしたが、わたしも†空中庭園†《ガーデンプレイス》というチームで、同僚の @ryot_a_rai さんと @eagletmt さんと一緒に予選 (2 日目) に出場しました。

ISUCON7 本選出場者決定のお知らせ : ISUCON公式Blog にある通り、最終スコアは 588,107 でなんと両日合わせてのトップでした。身に余る光栄..! 自分用の記録も兼ねて、チームでどのように考えて動いたのかをメモしておきたいと思います。

📃 リポジトリ

リポジトリは @ryot_a_rai さんが公開してくれていますので、以下の GitHub リポジト...

2017-10-14

max virtual memory areas vm.max_map_count [65530] is too low. で Elasticsearch が起動しないとき

Elasticsearch の起動時に、以下のようなログが出て起動できない場合があります。以下の例では、docker-compose を用いて Elasticsearch 5.5.2 を起動しています。

$ sudo docker-compose up es1
WARNING: The k9 variable is not set. Defaulting to a blank string.
Recreating dockercerebro_es1_1 ...
Recreating dockercerebro_es1_1 ... done
Attaching to dockercerebro_es1_1...