かまたま日記3

プログラミングメイン、たまに日常

フィリピンに行ってきた

先週1週間、会社の出張でフィリピンに行ってきました。海外経験自体昨年のイギリス旅行以来の2回目だったので行く前はかなり不安でしたがすごく有意義な経験ができました(特に学校訪問)。

気候

  • 気温は暑かったが体感としてすごく暑いという感じでもなかった(湿度の問題?)
  • 逆に建物内や車内のエアコンの設定温度がとにかく低く設定されててとても寒かった
    • 会社のオフィスでも多くの人がパーカーやカーディガンを常備してていた

渋滞

  • マニラの中心部の渋滞は本当にひどかった
    • 5キロほどの道を進むのに3時間かかったことがあった
  • そんな渋滞なのでみんな我先にという感じで交通マナーもあまり良くなかった
    • 自分がマニラで事故無く運転できる自信はまったく無いレベル

食事

  • 食べ物は肉料理中心、そこまでスパイシーな感じでも無く辛いものが苦手な自分でも食べやすかった
    • アドボ、シニガン、シシグ、パンシット、ティラピアの焼き魚などを食べた
  • グリーンマンゴーシェイクがとても美味しかった
  • 日本料理店にもいっていろいろ食べたが結構美味しかった、がお値段は日本人価格でちょっとお高め
  • Jollibeeという有名なファストフード店にも行った、味は普通だった。

治安

  • 危険な目にあわないか心配して行ったが、全然なかった
    • ある程度の危機意識を持って行動していればそこまで心配する必要は無いのでは、という感じ

英語

  • 基本的にフィリピン人は英語が話せるので買い物とかで困ることは無かった
  • が、自分の英語力*1ではまだまだだちゃんとした意思疎通は難しいなと実感した...精進します

仕事

  • フィリピンの開発者やセールスの人と交流できたのが良かった。仕事自体はSlack, GitHubでも出来るが1回でも顔を合わせて話した事があると仕事のしやすさが変わると思う。
  • 現地の学校を1校見学させてもらった。想像も出来なかったフィリピンの学校や学生の様子が見れたことや、自分が作っているサービスを実際の学生が使っている姿を見れたことはとても刺激を受けた。フィリピンの子供には日本人が珍しかったのか写真をたくさん取られた。

*1:TOEIC 600弱

君の名は。を観た

いわゆる新海誠作品を見るのは初めてだったんですが、めちゃおもしろかったです。

コメディタッチな入れ替わり物かと思いきや重い設定からのハッピーエンド、最後までハラハラしっぱなしでした。 RADWIMPSの音楽も合ってて良かったです。小説も読んでみます。

過去のMMS automation agentをインストールする方法

OSはUbuntuです。

公式ドキュメントでは最新版を

https://cloud.mongodb.com/download/agent/automation/mongodb-mms-automation-agent-manager_latest_amd64.deb

から落としてこいとなってますが、実際はS3にアーカイブがあるので、こんな感じのURLで落とせます。

https://s3.amazonaws.com/mongodb-mms-build-agent/releases/prod/mongodb-mms-automation-agent-manager_3.1.0.1813-1_amd64.deb

古いバージョンの一覧はとり方がわからないので、自分が確認できてる限りの過去のバージョンを上げておきます

mongodb-mms-automation-agent-2.8.1.1725
mongodb-mms-automation-agent-3.0.0.1798
mongodb-mms-automation-agent-3.1.0.1813
mongodb-mms-automation-agent-3.1.0.1831
mongodb-mms-automation-agent-3.1.1.1845
mongodb-mms-automation-agent-3.1.2.1850
mongodb-mms-automation-agent-3.2.0.1874
mongodb-mms-automation-agent-3.2.1.1884

TOEIC 213回 結果

Listening: 335 (300), Reading: 255 (295), Total: 590 (595) *1

あまり勉強できてなかったので残当。。リスニングが上がっているのがちょっと救い。

過去ログ

*1:括弧の中は前回(210回)の得点

メソッドの引数にメソッドの返り値を渡す場合、blockの渡し方に注意する

たとえば、 こんなメソッドがあるとします。

def foo(arg)
  puts "#{arg}, #{block_given?}"
end

def var
  if block_given?
    yield
  else
    'no block'
  end
end

下記のようにブロックの渡し方でfooメソッド側のblockとなったりvarメソッド側になったりします。想定した渡し方になってない場合があるので注意です。

foo var do
  'block'
end
# => no block, true

foo var {
  'block'
}
# => block, false

foo(var do
  'block'
end)
# => block, false

GitHubのPull Requestで変更されたファイル一覧を取得する

結論から言うと、あるPull Requestがmasterにマージコミットされると、 直前のコミット*1と、Pull Requestの最後のコミットの二つが親コミットになっているので、最初の親をHEAD^で取得しHEADとのdiffを見る。

たとえばこのPRがマージされた場合の、masterの履歴がこんな感じ

f:id:kamatama_41:20161008234549p:plain

ここで以下のコマンドを打つ。HEAD^18c4d8aなので、差分である今回のPRで変更されたファイル一覧が取得できる。

% git diff HEAD^..HEAD --name-only
scripts/1.txt
scripts/2.txt
scripts/3.txt

ちなみに、二つ目の親81c4663HEAD^2で取れるが、上記のPRの場合、これとマージコミットは差分が無いので、何も出ない。

% git diff HEAD^2..HEAD --name-only

参考

*1:PRベースでmasterにコミットしている場合は前回マージされたPRのマージコミットのはず