2014-07-07: 生活に必要なもの

家賃が高いので何も考えずに趣味に消えていくことがおおい。貯蓄頑張りたい。

自己投資なのかは置いておいて QoL 上がったものを自分も列挙しておこうと思う。

MacBook Air あるいは Pro Retina

MacBook Air 13" (Mid 2012) の RAM, CPU が一番高いのやつを使っている。 (SSD は 256GB)

普段使いのデスクトップ環境から Linux とかにしてもいいのでは、と何度も考えたりしているけれど、現状まともな Linux が入るラップトップが存在しない。あと、iTunes と Lightroom といったプロプライエタリソフトウェアに縛られているので、あきらめて現状の最善である Mac を使うことにした。

物理 Linux サーバー

とはいえ Linux の環境が欲しい事もある。2012 年の頭に 10 万くらいで買った Sandy Bridge (i7-2600K) のマシン と、HP MicroServer が家にある。Sandy Bridge のマシンでは Windows が動いていて (ゲームマシンなので!)、仮想マシンの上にたてた Linux で CPU リソースを使う作業をさせている。

この二つの間をとって、HDD ベイがそれなりにあって、PT3 を積んで、メモリがそれなりにあって、CPU リソースもそれなりにあるマシンが 1 台あればいろいろ足りそう。 ただ MicroServer 的ポジションのサーバーにネットワークとか任せたい気もする。

あと、ConoHa で 1 台、さくらで 3 台ほど VPS を転がしています。

キーボード

HHKB Pro 無刻印 (US) の 白を使っている。あと、USB 接続の新しい Trackpoint Keyboard と、パームレストつきの Trackpoint Keyboard がある。Trackpoint keyboard は新しい奴のうち心地の方がすきだ。

キーボードの設定は極力デフォルトで、人を困らせる設定にはしてない。右 shift が esc で、右 cmd, option が日本語/英語入力のトグルになっている、くらい。

なんというかあまりこだわりはないので、Realforce とかでも問題なくくらせると思う。ただ、Apple Wireless Keyboard はちょっと深くてその上固いので厳しい。Mid 2012 の MacBook Air や、最近の Pro Retina、最近の Trackpoint Keyboard のように、浅いのがすきなんだと思う。 HHKB とかは深いけど軽いので問題なく使えてる。

会社へ徒歩圏内の住居を借りる

契約時のあれこれと、家具含めて 50 万くらい。週5日往復4時間 = 週20時間が通勤に消える、という状態を 1ヶ月くらい続けたけどだいぶ限界が見えた。

2 時間はさすがに長すぎると思うけど、通勤 30 分くらいでかつ混雑した状況にさらされなければ、本とかを確実に読める時間になるからそれでもいい。だけど、現状朝早く出社しなければならず、無理なので諦めて近場に住んだ。家賃が高くてつらい。

東京高いよ…

IKEA の GALANT シリーズ にあった 160x80 の机を置いて生活している。便利だけど、ぼーっとしてるといろいろ物が放置されてしまうのでよくない。

モニタ

21" と 24" のそれぞれフル HD 解像度のモニタが置いてある。24" はグレアで HDMI 入力を受け付けるのでアニメとかをみるのにつかってる。後、Windows マシンもこっちに繋がってる。

21" は VGA と DVI しか受け付けないので、Mac を基本つないで使ってる。

会社で Thunderbolt Display 27" をつかっていて便利なので、21" のモニタをこれにリプレースしたい。 個人的にはアニメとか見るために 50〜60V のテレビがあってもいいなと思っているが、今の家にそんなスペースはない。

スピーカーとアンプ, Apple TV

音楽を浴びながら作業するのが好きなので必須。あと、HDMI 入力切り替え器として活用してる。 次の住居では 5.1ch のスピーカーを配備できるようにしたい。

ドラム式洗濯乾燥機

@r7kamura 氏に譲り受けた物を使っている。生活がだいぶ楽になってる。 最初は引っ越す時買おうと思っていたものだけど、偶然譲り受けられそうだったので譲ってもらった。大変感謝しています。

その他必要じゃなくなってきたもの

  • 自転車: 住んでるところが坂道多いからだけど意外にやるきなくてのれてない。乗りたい。

まとめ

意外と多いな…

あ、そういえばおなじような事 http://diary.sorah.jp/2013/12/16/2013-gadgets で書いてた…

Published at 2014-07-07 01:32:37 +0900

2014-06-05: セキュリティ、環境変数、そして

5/20 頃に 公開した envchain というツールの紹介記事を、会社の技術ブログに書いた。

OS X キーチェーンから環境変数をセットするツールを作りました - クックパッド開発者ブログ

投下時間の関係もあると思うけど、思いの他結構拡散してびっくりした。まあ、それは置いておいて、本題。

ごもっともだと思います。

実際のところ、わたしはなんか「環境変数やめろ bot かよ」と言われるレベルであまり環境変数に機密情報を入れる事を好んでないです。

なのにこのツールをつくってしまった訳だけど… というわけで、kazuho さんとかには断片的にいろいろリプライしたけど自分の見解を個人の日記で述べておきます。

... Continue Reading...
Published at 2014-06-05 01:53:36 +0900

2014-04-27: ニコニコ超会議 3 (2 日目) #chokaigi

2014-04-27 16.40.20

1 日目 に引続き今日もいってきた。おつかれさまでした。 今日は昨日より余裕がなくて、アイマスステージに 7 時間立ちつづけるみたいな状態。5pm 終了だからそのまま即撤収みたいな。

整理券

2014-04-27 14.26.21

2014-04-27 10.21.49

昨日より速く起きて向かったので 10:02 くらいに並べた。ただし今日は関係者を弾いたようで、入場券無しで入ってる人達が一気に抜けた影響が大きいかも…

シークレットよりデレラジ・ミリラジの方がたくさん並んでいたのだけど、去年実績が音楽祭をコメンタリーつきで見るみたいなのだったらしい (なら現地いくわ) のと、出演者が確定していて低リスクだからっていうのが理由っぽい。

後述するけど実際、超音楽祭の LV はあった。でもそれ以外に生放送なしの貴重なシーンをたくさん見れたので満足。

アイマスマニアチャレンジステージ 〜選曲してみた〜

アイドルマスター「生っすか!?レボリューション」~アイマスマニアチャレンジステージ~@ニコニコ超会議3 - 2014/04/27 11:00開始 - ニコニコ生放送

シチュエーションに合わせて中村先生、ガミP、フェチ川さん、ラブメガネさんがそれぞれ曲を選ぶ企画。 そして本日初のウルトラオレンジでガミPにむかってへんたいコール。あれ、今日 UO これだけだったかもしれない。

サビが急に流れても対応するコールとサイリウムすごいなー。

あとは中村先生の最後のまとめ力すごかった。アイマスみんなかわいいね。

デレラジ & ミリラジステージ ~紹介してみた~

アイドルマスター「生っすか!?レボリューション」~デレラジ&ミリラジステージ~@ニコニコ超会議3 - 2014/04/27 13:00開始 - ニコニコ生放送

2日間の中で出演キャスト最多のイベント。ミリオンからぴょんころもち、デレラジから飯屋(はっしー代理)、ふーりん、るるきゃん。そして765からぬーさん。

柵外からだったけど運良くわりと全員の顔が見えるところでよかった。

そしてぬーとるるきゃんともちょの組合せやばすぎる…

ぬーさんが後輩みんなのお姉さんみたいな立ち位置にいるのも新鮮でよかった。あれ、るるきゃん…

シークレットチャレンジ 〜隠してみた〜

(ニコ生無し)

運良く最前列真ん中確保できた回。堪能しました。

隠されていたキャストはディレ1、ガミP、フェチ川さん、ゆまさん、なかむらさん。 (途中でディレ1とフェチ川さんは音楽祭へたびだっていきました)

アニプレックスのゆまさん以外内容をほとんど把握してないという状態でみんな参加していて、 途中ゲストとして振分親方 (元 高見盛) や進撃の巨人から巨人くんが来たりして異文化交流だった。 中村先生が親方見たときのリアクションが目に焼きついてます。

巨人くんの登場の時も (ちょうど隣が進撃ブースだった事もあり) すごい面白かったなぁ。 隣ブースとのパーティションの上からちょこっと顔出してきてですね…

最後は超音楽祭の生放送を見ながらガミP + ゆまさん、えりりんと見た。当然コールは入れた訳だけど途中で中村先生が号泣していてつられて泣いていた。 このキャスト・スタッフ・P 各位一同で後輩のライブを見守るの、すごい良いなぁ。ぬーかっこよかったね。

お願い!シンデレラと THE IDOLM@STER はやっぱりコール楽しいなー。

個人的にはキャストもうちょっと出演させてほしかったなぁと思ってたけど、別の界隈からのゲストを招いて交流する貴重シーンと、みんなでライブ見守る体験もとても良かったし全然問題ない!

あとこの回で脱ぼっちというか oshow さんに遭遇しました。

ワイワイ。まああまり会話する時間はなかったけれど。

まとめ

P各位のあの空気感で一緒に楽しむのとても良いです。お疲れさまでした。 後ぬーとるるきゃん見れて満足な超会議だった。

以上感想でした。

おまけ

2014-04-27 17.19.22

mactkg に遭遇しました。

Published at 2014-04-27 23:00:00 +0900

2014-03-19: “夜 9 時から家でスマホ・携帯禁止” への所感 #ポエム

これね: 夜9時から家でスマホ・携帯禁止 愛知・刈谷、全小中学校が対象 - 47NEWS(よんななニュース)

( disclaimer: 実際、中高生のコミュニティがどうなってるのかとか知る方法ないし、知ろうとも思わないので実態と違う可能性があります。また、理想論だなぁとも思える箇所がありますがそれに関しては否定しません。)

無料通信アプリLINE(ライン)などを使ったトラブルやいじめ、生活習慣の乱れを回避するための措置という。

生活習慣の乱れはさておき、トラブルやいじめを回避する意味で 9pm 以降の利用禁止は何の解決にもなってないね。実態としては禁止というよりそのようにしてほしいという保護者への要請だけれど。 まあでも、トラブルが発生する段階で教員が抱えているコミュニティは不健全な状態にあると推測できる。本来であればそれを正すべきはずなのに、その状態に対して蓋をして逃げているだけのようにしか思えない。

この施策、生徒・保護者側も法的拘束力ないから守るかと言えば微妙だろうし、さてはて、何が良いのか。教員が何か起きた時に「9pm 以降は使うなと言ったはずだ」とか言い逃れるため? だとしたら余計酷い、怠慢がすぎるね。 こんな事しないで、頑張って根本原因であるコミュニティの不健全な状態を修復した方が正しいはず。たとえそれが理想論であったり現実的に厳しくても、蓋をするのはただ逃げているだけで怠慢じゃないかなあ?

それに加え、気軽に私生活に踏み込んでんじゃないよっていうのもある。学校教育において私生活との境界っていうのはおそらく難しいと思っているけれど、私生活の方がダメ (最悪ケースで虐待) なケースもあるし、一概に踏み込むなと言えない。でもだからといって気軽に踏み込んでいい訳じゃないよね。これは意味ない上、気軽に踏み込みすぎである。たとえ法的拘束力がないとしても。

Engadget でも記事になっていたので引用すると: 子ども21時でスマホ禁止、刈谷市が大胆な試み。LINE既読スルー問題、保護者責任を校長が明かす - Engadget Japanese

保護者は自分で子どものために契約しておきながら、トラブルがあれば問題を学校に持ち込みます。子どもに持たせるために契約したのは保護者でありながら学校にです。これでは責任の所在が本末転倒です

まずこれ、違うよね。その問題は道具が引き起したんではなく学校が抱えているコミュニティの問題ではないの?

21時以降は親にスマホを取り上げられるから、と言い訳ができる状況を作りたいんです

不健全なコミュニティで必ず言い訳が許されると思っているのだろうか。実際、不健全な状態であればそんなの通じないと思うんだけど。ただの良い子扱いされるだけで何も改善されないんじゃぁ? 実情は知らないからなんとも言えないけど… 健全な関係であれば成立するかもしれないけど、不健全な状態でこれが通用するとはおもえない…

僕自身、スマートフォンの機能にはついていけていませんし、親御さんたちだってわかりません

わからないからとりあえず塞ぐという考えにわたしは否定的なんだけれど。繰り返し書きますが、トラブルは道具の問題じゃないです。いいですか、トラブルは道具の問題じゃなくて君らが抱えているコミュニティに存在している問題なんですよ。

なので道具を潰したからって問題の解決にはならない。道具がコミュニケーションの方法を変えて、それによってトラブルが起きやすくなった点は否定できないとは思う。 けれど、それだからと道具を潰したところで子供たちはいつか大人になる。こういう時に痛い目逢っとくのが良いんじゃないかなあ? わたしは最悪の場合介入すればいいけれど、基本放置で痛い目にあってから考えるでいいと思うんだよね。

あぁでも、いじめに関しては被害者出てしまうからと言うツッコミはわかる。けれど、そんな状態なら道具を封じても学校でどうせ起きてしまうんじゃないでしょうか。検知しにくいから困るといえばそうだけど、起きる前にどうにかしようよというのは理想論すぎる? そうですね、なので難しいんですよね。

まあ、難しいんですけど蓋をするのは間違ってますよね? 教員のみなさんは蓋をせず頑張ってほしいところですね。

いじめ発生を防ぐには

まあじゃあ君はそんな事を言っているようがどうしたらいじめは防げるんだよという点だけど、これについては中高生コミュニティの実情を知らないし他でさんざん議論されている事と思いますので割愛。というか、後述するけれど個人的には不健全コミュニティからはさっさと離脱して残った皆様方には勝手に滅んでいただいて、みたいなという意識があるから考えにくいというのもあるけど…

なのでそれに対する既存の意見を見てみる

というわけで、いじめとかどうするのが良いのか分かっていないので、それに対する他の意見を見てみます:

子供とネットを考える会

子供とネットを考える会 - 先週NHKで見たよ!という方もおられるかもしれませんが、お昼に紹介するニュースは「スマホの使用禁止」に関す...

概ね同意します。個人的には「約束事」は言葉にしにくい気持ち悪さがあるけれど、それについてはまあ置いておくことにします。

PTAや保護者会の集まりに参加すると、「そこまで学校に要求するのか?」といった発言をする保護者の方を見かけました。

まず保護者からしてという点も一つ問題だとかんがえたりもします。ようするにダメな親ですね。自分の子供の面倒くらい自分でちゃんと見てはどうかという気がします。 こういう親がいる子供がコミュニティに混じってるとリテラシーがどうも低くて不健全な状態にひっぱられるっていうのもあると思うのだけどなぁ。それについては後述。

で、ちょっと話は外れるけれど、このポストにあるリンクを見てみる: 「スマートフォン時代」に検証する、青少年のネットリテラシー - 青少年のインターネット利用、自由の確保...:ITpro , 「ケータイ・スマホ等に関する緊急アピール」について (PDF), 石川県/いしかわ子ども総合条例

へー、こんな事が。知らなかった。

米子市の事例については、保護者が学ぶ事に努めると書いてあるけれどそれをどうやって子供にフィードバックするのかが問題だと思ってる。リテラシーについては実際に話題にあげて教育しつつ、わたしにはやっぱり痛い目に合ってからさらに考える、しかないと思えないのだけど… 今後この世の中を生きていく上でどうしても必須スキルにはなるだろうし、子供の間は避けてようねじゃその点成長しないだけで大人になって社会に出ていくよ? という気がしてならないのよね。

刈谷市学校の保護者への要請の意味と課題 (竹内和雄 氏)

話は戻して次: 「夜9時以降ケータイ・スマホ禁止!」刈谷市学校の保護者への要請の意味と課題(竹内和雄) - 個人 - Yahoo!ニュース

こちらも概ね同意できました。

子どもたちに腹をくくって任せるとしっかり考えるものだ。兵庫県猪名川町の「猪名川スマホサミット」が好例だ。

そうですね。一方的に禁止するんじゃなくてこうやって機会与えて考えさせたほうがいいという点は強く同意します。 (ちょっと「うへぇこんな事しないと考えられないの?」って思ってしまったりはしたけれど、これが現実…)

ああ、でもやっぱり、わたしはこういう「約束事」に関して、痛い目に合わせないようにしているだけで成長させないなあと思っているからなんとも言えないかもしれない。 放置していてダメな事例ってやっぱり多いんですかねぇ... (実例を把握している訳じゃないのでみんながそうじゃないからと言われるだろうなあとは思っています)

不健全なコミュニティに対してどうするか

前述の通りいじめが発生しないようにするにはどうしたら良いのかはちょっとわたしには考えられないのでそれについては割愛します。 で、ここではどうやって不健全なコミュニティに遭遇したら対処するかという点についてちょっと書くかな。

不健全なコミュニティ、ダメな子供や親がうようよするコミュニティに遭遇したらどうすればいいのか。 例えば、最初から経済格差を活用して私立とかの良いところに行き、可能性をひたすらに下げる選択肢がある。 ダメな保護者が来れない、と仮定しているけどまぁ偏差値たかくて私立だったりすると割と安全なのではなかろうか。 (ただし地域により公立の方が健全だったりするだろうから必ずしも良いとは言い切れません)

かといってそこに無理にいかせるのも良くないとは思うので難しい。受験をなぜか親がやらせるとかね? こういう利点があるのは承知するけれど、無理にやらせても子供の方はモヤモヤした状態になったりするんじゃなかろうか。 このような利点を説明した上で納得させたりすると良いのだろうかね。まあその辺は保護者の仕事だと思います…

もしくは、ダメだなと思ったらさっさと逃げれば良いという案もある。そして無能な方々はダメなコミュニティで相打ちになって滅びてっていう奴ですね。 ただ、みんながみんな逃げれる訳じゃないから難しいところ。悪いコミュニティをどうにかしないと行けないというのはもちろんだけれど、平行して不健全なコミュニティにあたってしまった悪くない生徒や優秀な生徒を、そこから安心して逃げられるような道を作ってあげるといいんじゃないかなぁ。 一概に抜けるといっても後が不安というのはどうしてもあるだろうし。

もしくは自分でどうにかできますという人こそさっさと抜けると良い。不健全なコミュニティに居ても何の得にもなりません。いや、抜けずに頑張った人の事を否定している訳ではないけど、無理して残る理由はないので、抜けられるなら抜けた方が良いとおもいます。

まとめ

教育に関してはむずかしい問題だとは思うけれど、すくなくとも蓋をしめるのはダメでしょう。 この施策についてはとりあえずアホなんかなーと思いました。おわり。

( disclaimer (2): これは個人の見解であり所属組織とは一切関係のない意見です)

Published at 2014-03-19 22:21:50 +0900

2014-03-15: JAWS DAYS 2014 #jawsdays

JAWS DAYS 2014 に参加してきました。

午前中のセッションは寝坊したのもあって逃した。といっても午後から参加しても支障がないタイムテーブルだったので (Kinesis の話とかはちょっと聞きたかったけど) 問題なし。

イベント自体の雰囲気としては、若干スーツや年齢高めの人達も散見されて、発表中に携帯のカメラでスライドを撮影する音がめっちゃ聞こえてくる感じで渋かった。異文化交流みたいな感じある。 内容自体はすごい良かったと思っています。

"Building Moneytree’s data aggregation system with SWF"

https://moneytree.jp/ の方が Amazon Simple WorkFlow について話していた。 "Our goal: sleep at night" …!

API throttling に気をつけようだとか、各 activity は何度実行しても冪等であるとカジュアルにリトライできて便利、みたいな話がされていた気がする。

しかし話は外れるけどデビットカードのアグリゲーションにどこも対応してなくてこういうサービス使いにくいんだよね… (即時引き落しなので銀行をトラックしとけばいいんだけど、銀行口座の明細には「デビットゴリヨウ」としか残らないのであった)

"AWSクラウドデザインパターン for Enterprise"

エンタープライズ方面の人間じゃないけれど CDP 面白いので聞いてきた。 あえてサブネットを切りまくってよりセキュアにするとか、pci-dss 準拠してないサービスもあるから PCI-DSS 守らないといけない人は気をつけようだとか、Direct Connect 便利〜みたいな事が話されていた。

(High Availability IAM Design Patterns - AWS Security Blog というのが気になったので後で読む)

(VPC 間接続、公式であると便利そうだなぁ…)

"マルチキャストがないならユニキャストすればいいじゃない/ほしいプロトコルはカプセルすればいいじゃない"

前半は SA 安川さんからのユニキャストでマルチキャストっぽい動作をさせてみました、というのと、後半は荒木さんからネットワークのトンネルやカプセル技術の一般的な話をしつつ、AWS で 6rd つかってみたよ的な話。

前半のマルチキャストについては、multicast packet を拾ったら、指定された MAC アドレス分宛先 MAC を書き換えたパケットを複製してついでに送信してやれば動くよね (動いた) という話。まず PoC として packetfu.gem を利用したコード が上がって、でもこれはこのプロセスが死んだらマルチキャスト動かなくて崩落するよねー、という事で Linux kernel の tc (traffic control) を利用したバージョン も紹介されてた。原理を見るのは ruby の PoC の方がわかりやすいかな。

実際に UPnP とか keepalived で使えるデモをしていた。UPnP の方は XBMC かな? をコントロールしようとしていて、XBMC の画面を手元に持ってくるのに (言及してなかったけど) App Stream を使っているっぽくて「おおーー動いてるし割と綺麗にかつ止まらずに映像降ってくる!」と感動してた。

後半は一般的な話で、TUN/TAP とか IP on IP とか IPsec とかの説明など。AWS で 6rd 使ってみたみたいな事も言及してた。HE が提供する 6rd endpoint でやってみたけど東京←→バージニアのレイテンシなら(幸いにして he の endpoint が両方ともその近辺にあるので)トンネル通さない場合と対して変わらなかった的な話も。ただ IPv6 をそのままインスタンスが受けるので iptables とかしないとヤバいよ〜みたいな話もあった。

"これで最強のAWSに"

Miles の前であえて AWS のダメなところを突っ込んでいくというもの。予想してたよりずっと濃くて一番面白かった。

DeNA はオンプレで動いてるサーバと AWS 上のサーバで社内のユーティリティコマンドを共通で使えるようにしているみたいだった。効率化などなど含めてハイブリッドに使う場合、ある程度操作を統一しとくのは重要そうで便利な気がした。

リクルートの 70 個くらいの VPC 管理 + さらに会計都合などなどによる AWS アカウント分断、すごいつらそうだった。ルーティング考えるだけで絶対に頭が溶ける。やばい。ネットワーク構成図みたいなのうつしてたけど複雑すぎヤバいみたいな感じ。

DeNA のわかものやスケールアウトのはるかさんはサポートサービスや management console にまで突っ込んでいた。 はるかさんの提案してた management console に対する操作を awscli 等のコマンドとして記録できるようにすると便利なんじゃないかみたいなのは Miles さんがすごい食い付いていたのと、聞いていて便利そう欲しい〜ってなった。

(cli の操作の便利なところは便利なんだけど、SG の指定とか subnet の指定とか AMI の指定がつらいからね…)

また一個収穫としては Eucalyptus は AWS とライセンスむずんだりしてある程度 API の互換性をとっているから、AWS 上で大きいインスタンスの上で Eucalyptus を動かせば API のテストとかに使えるんじゃないかな、という Miles さんからの情報。

あとは最後、観客からもなにかあればって聞いた時に何もなかったからって @kenjiskywalker おじさんが出てきて Cacti 捨てて全部 Zabbix でやればいいのにみたいな事をリクルートの宮崎さんにツッコんでたのは面白かった。出てくるところまでは予想の範疇でした。

まとめ

AWS おもしろい。プログラマブル度が高いのがやっぱ良いなぁ。

Published at 2014-03-15 23:00:00 +0900

2014-03-14: AWS Game Day Japan 2014 Spring

AWS Game Day Japan 2014 Spring に参加してきた。

問題は 2013 開催のやつと一緒。Image processor とか SQS とか使うやつでした。

チームメイトは @suzryo さんととささん。 (ref: suzryoさんのレポート )

あらかじめ断わっておくと強く批判しているつもりも dis っているつもりもないけれど、運営側が対戦相手のマッチングでミスをして、こっちが攻撃しているアカウントは他のチームも同時に攻撃していて、一方自分のチームのアカウントは攻撃を受けていないという状態になった。

つまり攻撃フェーズ中は意図しない変更がされてこちら側の攻撃が無効化されたりするし、自分のチームのアカウントは攻撃されちゃいないから復旧フェーズとは何だという状態でした。運営側を強く攻められないし攻めるつもりもないけど、正直に言うとわりと残念でテンションが下がった。

復旧フェーズで何も力試せなかったというのもそうだけれど、攻撃フェーズもこっちの意図した攻撃になってないとかそういうよくわからん感じになって… 途中で同じチームを攻撃しているチームの影響で作業止まったりしたし… (それに関しては運営のミスなので同じチームを攻撃していた他チームに対しては全く何も思ってないです。)

やった防御

あまり防御策は思いつかなかった。us-east-1 への構築を主に自分が担当して、suzryo さんは別リージョンでのバックアップみたいな事をやってくれていた。

防御としてやってみたのは、コマンドインジェクションで ec2-user の権限が奪えてしまうので、まず ssh アクセスはされないように crontab で毎分 authorize_keys を書き戻すという処理を入れてみたりしていた。

やった・やろうとした攻撃

  • SQS input queue の visibility timeout = 0 sec や delay timeout を最大にしたり、dead letter にすぐ飛ばしてしまうように
  • S3 の requester pay を有効化
  • Auto Scaling Policy で存在した scale out ポリシの cloudwatch alarm を若干いじっておく (不等号入れ替え、statistics を min にして分かりにくく無意味なものに)。ついでに cooldown 1800 sec とか。
  • ↑のカモフラージュ用に常に ALARM 状態、remove 1 instance するような Auto Scaling Policy を入れる
  • S3 bucket policy で getobject を deny
  • 後はやろうとしたけど出来なかった攻撃:
    • EC2 instance に結びつける IAM role でワーカーインスタンスの権限管理をしていたため、Auto Scaling 用の Launch Configuration では IAM role を指定する。ただし、攻撃用で利用する Power User には IAM に関する権限が与えられていないため、IAM role を指定して Launch Configuration を作る事ができなかった... (もしかして API 経由なら出来たのかなぁ)
    • Launch Configuration つくりなおせれば UserData で細工したりいろいろ面白い事ができたなあ…
  • これは時間がないのと他攻撃チームとの作業衝突でうまくできなかったのだけれど:
    • CLI tools 用の instance があったので、同じ user data で key pair だけ入れ替えて作成しなおし。そこに iptables を突っ込み、VPC Route Table をいじって S3/SQS へのリクエストが稀にうまくいかないみたいな状態にしようとしていた

2 チームがばらばらで同じチームに攻撃しているもんだから、途中でよくわからんインスタンスがでてきたり、SG いじられて疎通しなくなったり、default route 消されて疎通しなくなったり、auto scaling policy ががらっと入れ替わったりしてそれはそれでカオスで面白かった。

復旧

攻撃されてないので出来ず。

まとめ

Miles さんの "Hack Day must be fun, nothing to scare" っていう言葉はよかった。あと Miles さん「チョ〜スゴイ (日本語)」とか言ってたりおもしろかった。まあでも "(my) Nihongo is terrible..." とかいって基本英語だったけど。

途中からマッチングミスという事実が発覚してテンション落としつつもいろいろ弄れて楽しかった。次回開催で同様の事故がおこらない事を祈ります… 次回は復旧フェーズもやりたい…

あと、要望としてはマニュアル読んでみんなで同じもの構築とか無駄なので、構築は CloudFormation でサクッとやって防御に 100% 時間を振りたい感じかなー。

運営の皆様方お疲れさまでした。

Published at 2014-03-14 23:00:00 +0900

2014-02-28: Ruby 2.1.1 で Hash#reject のデグレ

Ruby 2.1.0 まで、Hash を継承したクラスの reject メソッドの挙動は継承クラスのオブジェクトを返す挙動をしてました。 しかし、 Ruby 2.1.1 で意図せずその挙動が変更され、必ず Hash クラスのオブジェクトが返されるようになりました。

class SubHash < Hash; end
p SubHash.new.reject{}.class #=> 2.1.0: SubHash 2.1.1: Hash
p Hash.new.reject{}.class #=> 2.1.0: Hash 2.1.1: Hash

(厳密には ivar 等その他の属性もコピーされなくなっています。 また、Ruby 2.1 からはバージョニングポリシーの変更により、2.0.0 までのパッチリリースにあたるリリース時で TEENY が増えます。詳細は今月の WEB+DB で!)

この挙動変更で具体的に影響を受けるのは、Rails の HashWithIndifferentAccess, OrderedHash です。壊れます (reject メソッドが必ず Hash オブジェクトを返してくるようになった)。 https://github.com/rails/rails/issues/14188

何故起きたか

そもそもこの挙動の変更は Ruby 2.1.1 では意図的ではないと思っています。事故です…。 これは bugs.r-l.o#9223 で昨年末 (2.1 リリース前に) 議論されていた変更ですが、この時期からの仕様変更はできないと Ruby 2.1.0 では見送られています。 そのため Ruby 2.1.0 では deprecated warning に留められました。 (それも --verbose, -v がついてないと表示されない物って…というのは今は置いておく。)

この変更の周辺コミットは https://gist.github.com/sorah/9265008 の通りです。詳細は←の gist を読んでください。 Ruby 2.1.0 の段階で、#ifdef により定数で警告+従来の挙動、あるいは警告せず新しい挙動 (必ず Hash オブジェクトを返す) という 2つ の挙動を切り替えられるようになっていました。尚、0 で新挙動、1 で従来の挙動になっています。

Ruby 2.1.0 リリースブランチが切られた後、trunk では r44358 で定数名が変更され、2.1.1 ブランチにバックポートされています。が、このコミットで一箇所 #ifdef 側の名前に変更漏れがあり、r44370 で修正されています。この r44370 がバックポートされず、必ず #ifdef が 0 と評価されて 2.1.1 では新挙動になってしまったという訳です。

事故ですね。

つきましては、r44370 をバックポートした Ruby 2.1.1p77 をビルドするか (たぶん大丈夫)、HashWithIndifferentAccess, OrderedHash にモンキーパッチで対処 する事をオススメします。

尚 r44370 のバックポートはされたので、2.1.2 では元の挙動に戻るでしょう。 https://bugs.ruby-lang.org/issues/9576

しかし、 2.2.0 では 2.1.1、つまり Hash クラスのオブジェクトが帰ってくる挙動に変更される ので、将来の事を考えたら 2.1.0 以前の挙動を期待するのはやめたほうが無難です。

Published at 2014-02-28 21:00:00 +0900

2014-02-25: THE IDOLM@STER M@STERS OF IDOL WORLD!! 2014 まとめ

セットリストを昼間聞いたりして思い返したりしたので。

と内容はかぶるかもしれないけど。あと、順番も特に考えていない。まともに感想として機能していない気もする。

  • プロデューサーの皆さんだいたいプチシューもってきてたね http://togetter.com/li/633943
  • ビジョナリー歌うあさぽん可愛い!
  • Mythmaker, Blue Symphony かっこいー。

    • あの音響で mythmaker のあのドラム、とてもいい
  • ましゅまろ☆キッスかわいかったなぁ

  • PRETTY DREAMER, Orange Sapphire はテンションたかまって良い

  • 自分REST@RT、キラメキラリなどのオレンジの綺麗さよ (UOかな)

  • Vault That Borderline かっこいい。

  • なんすの Happy Darling、かわいい。

    • 杏奈ちゃん好きになったっぽい。星梨花ちゃんといい…これは…ミリマスも追いかけはじめるのか……
  • いっぱいいっぱい、眼鏡をかけたはらみーとまやちゃん。会場は緑のサイリウム! 会場全員で歌うというのもすごいよかった(喉が死んだけど)

  • そんでもってメルヘンデビュー、あんずのうた、Romantic Now はおもいっきり限界まで叫べました。ちょういい。ウサミンとメーデーは前半に置いてくれて本当に助かった。これは体力残っているうちにやらないとね!

  • ぬーのRebellion で「真実の赤」のタイミングでみんな赤色にサイリウムを切り替えるのすごい光景だった。

  • 恋のLesson初級編、素敵なキセキかわいかった。自分の中でランクが急上昇した。

  • "HELLO!!" でとまっちゃんがでてくるサプライズはもう驚きというか感動というか、ですよ。

  • 天さんかっこいー!

  • 「お水おいしい?」じゃなくて「乾杯」するタイムがあるのうける

  • (っておもってたら) あいみんの流星群弾き語りやばい、すごい…

  • なつねぇネコミミつけてたし、煽り方もよかった。コールが猫に変わったのも面白かった。

  • ミリオンとシンデレラガールズは本当に初々しくて応援しがいある。

  • みんなかわいい…


長谷川明子さんご結婚おめでとうございます。

千早ちゃん誕生日おめでとう!

Published at 2014-02-25 23:30:00 +0900