2015-06-03(水) [長年日記]
■ 【ナビスコ】川崎 1-1 仙台@等々力陸上競技場
ナビスコばっかり観に行ってるような。もうリーグ戦は浦和で決まりだけど、ナビスコはまだわかんないしな。平日の夜なので観客の入りは10000人足らず。
仙台はあんまりがっつり引いてるわけでもなく、それほど川崎シフトをひいてる感じではなかった。とはいえDFは厚かったので、いつものようにあまり前にボールを運べず。どうしようもなくダメってこともなかったけど、パンチに欠けていたので勝ち切れず、という感じかなぁ。
最盛期のフロンターレは、キーパーやゴールポストに弾かれたボールに対応してゴールを決める波状攻撃のパターンが多かったんだけど、そういう場面が少ないんだよな。悪い意味でがっついてない。この試合もそういうチャンスが何度かあったのに、誰も寄ってなかったり、見当違いの方向に蹴りだしちゃったり。ゴール前では監督の作戦なんて忘れちゃえばいいのに。
2015-06-04(木) [長年日記]
■ 入門 React ―コンポーネントベースのWebフロントエンド開発(Frankie Bagnardi)
だいぶ前に読み始めたんだけど、欲しい部分まで読んでそのままになってしまっていたので、いちおう最後まで読んだ。
前にも書いたけど、JavaScriptフロントエンド界隈のツール/ライブラリ/フレームワーク乱立は目を覆いたくなるほどの惨状なので、本書に出てくるテストやflexについてはざっと流し読みにして世の趨勢をみているところ。というか「そろそろReactが勝ち組で決まりか」と思って手を出したのに、またぞろコンペティタがいくつも出てきているようで、ほんと油断がならない。
「入門」というタイトルには偽りありで、フロントエンド開発のことはざっくり知ってる前提で書かれている。インストールまわりが付録扱いということからわかるように、手取り足取り感はない。いっぽう、ある程度わかってる人ならあまりひっかかることなく網羅的な知識にアクセスできるので、わるくない書籍だと思う。とはいえ、これまでReact学習のお供にしてきた一人React.js Advent Calendar 2014がこの本の(いい感じの)サブセットになっているので、Advent Calendarで十分だったという人は読まんでもいいかもね。
例によってリンク先はAmazonだけど、言うまでもなくDRMなしでEPUB/PDF/Kindle向けの3フォーマットのあるO'Reilly Japanから買うのが正しい。
2015-06-06(土) [長年日記]
■ 「巧妙な標的型攻撃メールの例」は間違い探しクイズではない
ここしばらく日本年金機構からの個人情報流出で大騒ぎだけど、そのさなかに上原哲太郎さんがTwitterに投下した「標的型攻撃メールの例」に対して、例によって「こんなのひっかかる方が悪い」的なレスがついてるのを眺めて苦笑いをしたり。
怪しいメール開く方がアホだろ見たいな話が出回っているようなので、7年ほど前に私が受け取ったメールを晒しておきますね(一部隠してます)。これを「怪しい」って判断できる人は大したもんだと思います。今はもっと巧妙だし。 pic.twitter.com/SwKNkH4t9s
— 上原 哲太郎 (@tetsutalow) 2015, 6月 2
でも今日、この話題をかみさんと話して、そもそも前提条件が共有されていないのが原因らしいね、ということになった。140文字制限のTwitterではよくある話ではある*1。なるほどなるほど。
こういう情報を提示されると、人は「自分の観察力に対する挑戦」だと認識して対峙する。クイズにチャレンジする感じで。でもこれ、
- 自分が標的になっているわけではない
- あらかじめ「これは偽物ですよ」という正解が与えられている
というかなりぬる~い条件下の話なんだよね。解けて当然の低難易度クイズなので、わかったからといってドヤ顔されても困る。実際の標的型攻撃はこの逆で、
- 自分(の所属する組織)が標的になっている
- これが正規のメールか攻撃メールかはわからない*2
という状況下で発生するのだ。条件や文脈がぜんぜん違うし、だいたいクイズ気取りでみている人は自分が見破ったからといって組織の全員が見破れるとは限らないという点を見過ごしがちだ。「見ればわかる」と言ったところで、うっかり開いてしまう人はゼロにはならないし(ならないんですよ)、そういう人が萎縮して報告しないような空気になる方がよほど怖い(という話の続きは年金機構の情報流出を見てちょっと思ったことを読むとよい)。
なので、セキュリティ関係各位は標的型攻撃の例として「ちょっと隙のあるメール」を見せるの、やめた方がいいんじゃないかと思う。実際はほぼ隙のない巧妙極まりないメールが使われてるんだし*3、どうせ見せるなら「自分はぜったいだまされない」という根拠のない自信を打ち砕くくらい本当に見破れないクラスのヤツを出すべきなのではないかなぁ。
2015-06-10(水) [長年日記]
■ 健康診断で初めてCTスキャンを受ける
誕生日周辺にアサインされる会社の健康診断に、胸部CTスキャンのメニューが加わっていたので受けてみた。長年いろいろと病院にはかかっているけど、CTスキャンは初めてだなぁ。
とはいえもう一般化しつくしたような検査なので、ルーチン化した流れの中でスムーズにコトは進んで、どうってことない感じだった。思ってた以上に検査時間も短くて肩透かし。ただ、両腕を上にあげる姿勢は、五十肩の人とかはつらそう。幸いにしておれはまだそういう苦労はないんだけど。
やっぱMRIの方が面白いかなとチャットで漏らしたら、検査中に流れる音楽が好みのものじゃないのが苦痛だったという証言が複数得られた。そこなんだ(笑)。ということは、持参した音楽をかけてくれるMRIサービスがあればウケるのかな。
それはそうと、体重が昨年と小数点以下までまったく同じだった。すごくね?
2015-06-12(金) [長年日記]
■ 一部のサービスをHerokuから自前のjailing環境に移した
以前書いてから、ちまちまちまちま進めているのだが(のんびりすぎてぜんぜん進まない)、いままでHeroku上で動かしていたうち、24H動かしておきたいもののいくつかをIDCFクラウド上のIaaSへ移している。けっきょくDockerは使わずにjailingで行っちゃってるのであった。
ひとつはkindlizer-backendで、clockworkを使っているのでHerokuのfreeプランだと1時間おきに落とされてしまって事実上まったく動かない(笑)。cron向けに書きなおしてもよかったけど、まぁ(面倒くさいので)このまま移転。
あとはProduct Advertising API用リバースプロキシに登録してある自分のproxyサービスを移転。これは24H継続してアクセスがあるけど、もっぱら自分以外の人が使うほぼ完全なボランティアサービスなので、無償じゃないと続けられない。
いずれもAnsible経由で環境構築して、jailing下で動くようにしたのだけど、あんまり汎用的なモジュールじゃないから、公開できる感じじゃないのよなー。そもそもニーズがなさそうである。
わさますのmassrはそのままhobbyプランへ移行済みだし、他の小さいのは利用者が少ないので6Hくらい落ちても平気。グラコロ同盟は秋になったら考えよう(笑)。で、残るはtDiary.Netか……。メモリがつらそうだから専用のVPS立てていったんそこで動かしつつ、分散運用を模索するか。嗚呼、独自ノウハウの道よ……。
2015-06-14(日) [長年日記]
■ 室外機カバーと濡れ縁を設置した
かみさんのリクエストで、エアコンの室外機カバーと濡れ縁を作ったよ。例によってWOODPROのセミオーダー。いい客だ(笑)。
室外機カバーはセミオーダーとはいえ4分割のパーツをほんの数箇所ネジ止めする程度のシンプルなもの。直接地面に触れないように、レンガを買ってきて平らな土台を作って載せるだけの簡単なお仕事。縦横高さに加えて配管を避けるための切り欠きなんかもオーダーできるので、出来合いのものよりもピシっとタイト決まった感じにできる。
さっそく散歩帰りのグスタフが気に入って乗っている。自分で作ったわけでもないのになぜ自慢げな顔をするのか。
濡れ縁の方は、パーツ数は同じくらいだけど大きくて重いのでけっこうヘビーな労働。まずはしっかりした土台を作らないといけないので、穴を掘って砂利を敷き、ホムセンで買ってきた束石を並べる。大型のウッドデッキのようなものだとかなりしっかり測量しないといけないものだけど、濡れ縁はそんなに大きくもないので現物で合わせつつざっくりと位置決め。
今日はここまでにして、水平出したりは来週にしよう。梅雨のさなかで雨が降りそうだけどまぁいいだろ。というか去年もこれくらいの時期にウッドフェンス作ってたな。梅雨入りするまえに始めようと思って手配を始めても、もたもたしていてけっきょく間に合わないという。
2015-06-18(木) [長年日記]
■ ドーラ、ふたたび病院へ
ゆうべドーラが血尿をしてちょっとした騒ぎに。血尿の色は明るかったので腎臓とかではなさそうだし、ドーラはあまり水を飲まない猫なので、いわゆる下部尿路疾患のたぐいだろう。対策用の餌を与えたりもしていたんだけど、やっぱりダメだったかー。
とりあえず今朝、病院へ(かみさんが)。膀胱炎だろうとのことで、ステロイドを処方される。また朝晩に薬を飲ませる日々か……。あと、(またもや)歯茎が腫れていたので診てもらったら、グラグラしている歯があるとのことで4本も抜かれてしまったそうだ。かわいそうに……。
屋内猫は歯がなくても食事に支障はないと言われてはいるが、この若さで歯が何本もないのはつらいだろうなぁ。抗生物質を注射されたりして、けっこうなスプラッターだったそうで、かみさんにも苦労をかけた。今後は、歯茎がはれたらすみやかに医者にいかなくては。
2015-06-21(日) [長年日記]
■ 「りんかんモール」へ行ってきた
さいきん庭の拡張が著しいので(ただし総面積は変わらず)、近所のホームセンターへはよく通っているのだけど、別の店もみてみたいというかみさんの希望で少し足を伸ばしてみた。公式サイトがないっぽいのでWikiPediaへリンクしたけど、できたの2011年かー。前はなんども通ってたけど、あんまり派手な店構えじゃないから気にしてなかったんだよね。でも駐車場はかなり埋まっているし、集客力は高そう。
新しいだけあって広くて品揃えもいいし、まぁ悪くない。あんまり広いのでGoogle Fitが早々に今日の目標達成を告げてきたくらい。モール内にはスーパーのave(エイビイ)もあって、こっちも広くて品揃えも豊富。相模原、座間、大和のあたりはここ数年でスーパーやホームセンターが次々と新規開店していて、人口増えてるんだなぁと感じる。古い店には厳しいだろうなぁ、こうぽんぽんと新規ライバル店ができると。
2015-06-23(火) [長年日記]
■ この日記をIDCFクラウドに移設した
1月にHerokuに移設したこの日記だが、Herokuの料金体系の変更に伴い、IDCFクラウド上に移設した。まさか5ヶ月で移転することになるとは思わなかったが、tDiary本体やプラグインの対応はHeroku移転時にがんばったので、そっちに関してはとくに苦労もなく。
いちばん苦労したのはIaaS上に環境作って、初めてjailingの中で動かすサービスの制御をする部分を、これまた初めてAnsibleで書く部分だったりして。基本的にサーバに手動でsshすることなく、すべてリモートからコマンド叩いてセットアップから運用までできるようにしたので、まぁいい勉強になった……というかこれ以上がんばるとDockerの再発明みたくなってしまうのでほどほどにしよう。
フロントエンドにnginxのreverse proxyを立てて、後ろに任意の数のtDiaryを動かせるapp serverを立てたので複数tDiaryをホストできるようになったけど、他の日記の移設はようすを見ながらぼちぼちやろう。IDCFクラウドは標準でファイアウォールがあるのでこういう構成作るの楽でいいな(というほど他のIaaSを知らないけど)。
あとは……ツッコミメールか。SendGridの無料枠がけっこう大きいのでこれ使ってみよう。もしくはPushbulletで通知するプラグインを書いてもいいかも。
追記
と思ったらfeedが書き込めてなかった。tDiaryのディレクトリをrobindでマウントしたら、そりゃ書けないよなー。さてどうしよう(笑)。
さらに追記
あらかじめ書ける場所に作ったindex.rdfへのsymlinkをpublicの下に置くという逃げを打った。もうちょっとスマートな方法があれば良いのだけど。
2015-06-24(水) [長年日記]
■ 「エンジニアのための法律勉強会#5」へ行ってきた
受託をやってる人たちの勉強会なのかなー、と思っていた「エンジニアのための法律勉強会」が、今回は『OSSのライセンスと、コンテンツやソースコードの著作権』というテーマだったので申し込んでみた。場所は茅場町のCO-EDOというコワーキングスペース。初めて。
講師は『知る、読む、使う! オープンソースライセンス』でおなじみの可知さんと、この勉強会の講師役(?)である弁護士の野島さん。野島さんのしゃべり方がすごく「想像上の弁護士」っぽくて面白かった(なんだそれ)。
内容的には可知さんの著作にあるようなOSSライセンスをとりまく話題に、野島さんが専門家として解説をかぶせてくるという感じで、すでに知ってる話題もありつつ想定外の話題もありでなかなか勉強になった。
とくに「OSSライセンスは契約か否か」という話は良かったな。最近、ライセンスを契約ととらえて(つまり不用意に使うととても危険なシロモノとして扱う)、OSSコミュニティへの参加を非常に限定的にしたがる人たちとバトルしたことがあって、ちょうどこのあたりがもやもやしていたのだ。
じっさい法律家からみると双方の合意がないんだから厳密には契約でも約款でもない、せいぜい裁判で一種の「抗弁」として使われるくらいのものではないかという解釈なんだとか。もちろん契約に準ずるという意見もあるそうだけど、OSSにまつわる裁判がなかった日本では判例もない状況で、結論は出ていないとか。面白いねぇ。これを契約と信じて過剰に防衛的なガイドラインなんか作っちゃうと、ビジネス的にデメリットになるってことじゃなかろうか。トークの中でも「許可を取るな、謝罪せよ」の話が出ていたけど、まさにそれだ。
というわけで、判例つくるためにもバンバン使ってどんどん裁判起こせみたいなニュアンスのことを言われたような気もするが(笑)、まぁ日本人は裁判嫌いだからなぁ。しないで済むならそっちで済まそうと考える人たちが多いと、なかなか理解が進まなそうではある。オープンソースという言葉が生まれてから何年たつんだよって話だが。
ところで平日夜の勉強会ではいつも思うんだけど、ほんの2、3時間程度しか使えない以上、もうちょっと参加者に前提知識を求めてもいいんじゃないかと思うんだよなー。
今回の話だって「可知さんの著作は読んでおけ」って宿題にしておくだけで(PDFでたった150ページだ)、ずっと濃い話をできたと思うし。詳しい人の話を、持ち時間いっぱいにつかっても浅いところしか話してもらえないの、ほんとうにもったいないと思う。続きは懇親会でと言われても、自分のように家が遠くて翌朝に影響でないように早めに帰らないといけない人は途中で切り上げなくちゃいけなくてつらい。
2015-06-25(木) [長年日記]
■ tDiary: ツッコミをPushbulletで通知するようにした
日記を移設*1してから、しばらくツッコミメールが未対応だったんだけど、IDCFクラウドはSendGridが無料で使えるので、ありがたく使わせてもらうことに。
HerokuでもSendGridプラグインを使っていたので、そのIDとパスワードが入っていた環境変数に、新たに(IDCFクラウド用に)作ったアカウント*2のID/パスワードを指定するだけでスムーズに移行できた。とはいえ生パスワードというのもキモチワルイから、WebAPIを使うようにすべきなのかもなぁ。
でもなー、これもただの通知だし、別にメールじゃなくていいよな。ということでこないだ使ったPushbullet通知を応用してtDiary用のプラグインを書いた。メール通知用の各種プラグイン(comment_mail-*.rb)の代わりに有効にして、Access Tokenを指定するだけで、メールの代わりにPushbulletで通知してくれるようになる。メールよりはるかに即時性があって良い良い。
2015-06-26(金) [長年日記]
■ Kindle Personal Documentsのバグが7ヶ月ぶりに修正される
昨年11月にリニューアルしたMy Kindle、Personal Documentsの(待望の)新機能がまったく動作していないというひどいバグがあったことは書いたが、ようやく実装されたようだ。
普段送りつけて読んでいる新聞を読み終えて、削除しようとしたらこんなダイアログボックスが出てきた:
いつもはサーバ上にファイルが残っているので確認なしに消えるのだけど(必要なら再ダウンロードすれば良い)、これが出るってことはサーバにはないってことだ。確認すると2、3日前から送ったファイルがサーバ上には残っていない。
いやー、リリースしてユーザの目に入るようになった新機能が、7ヶ月たってからようやく動くようになるなんて、ほんとAmazonの開発スピードはすごいなぁ(棒)。
※ちなみにWeb上の設定から「パーソナル・ドキュメントの保存」を無効にすればいけます。あと、Personal Documentsのバグには「送ったファイルが届かない」とか「送った別々の複数のファイルが同一のファイルになる」など致命的なバグがまだたくさんあります。
2015-06-27(土) [長年日記]
■ 誕生日なのでアフタヌーンティへ
またひとつ歳をとったけど、この歳になると時間の流れがゆったりしてくるのでそんなに変化はない。変わったのは健康診断のたびにコレストロールが高いと言われるくらい……だが、甘いものが好きなところは変わらないので、誕生日くらいたっぷり食べるのだ。
ということで、今年は虎ノ門ヒルズのアンダーズタヴァンにて、アフタヌーンティを。虎ノ門に勤務するようになってちょうど1年くらいだけど、なにを隠そう、虎ノ門ヒルズに来るのは初めてだ。オフィスの窓から毎日見てるのに。
食器は和風で、見た目が黒っぽくてアフタヌーンティセットとしてはちょっと変わった雰囲気。最初にサーブされるスコーンがじつに香り高い絶品で「あぁ、このバター不足のご時世によくぞこんなに良いバターを使ってくれますね」という感じ。
他のスイーツでも総じて高品質の材料を感じられてどれも美味しかった。パン系で1枚、スイーツ系で1枚の皿、お茶・コーヒーはおかわり自由で種類も変更可能。
コースの説明がぜんぜんなかったり、お茶にスプーンをつけ忘れたりと、ときどきサービスでちょんぼがあった以外はおおむね満足のいくアフタヌーンティだった。あ、紅茶にセイロンティがなかったのが残念だったか……たぶん「イングリッシュ・ブレックファスト」がセイロン相当なんだろうけど。ポットじゃなくてカップで出てくるのは、いろいろ試せてむしろ良いのだから、茶葉はもっと種類があると嬉しいよなー。
2015-06-28(日) [長年日記]
■ 庭に濡れ縁を設置した
先日土台の仮置きまで済ましておいたが、その後風邪を引いたり雨が降ったりでだいぶ間があいてしまった。今日は予報が外れて晴れたので完成させた。今回もWOODPROのセミオーダータイプ。
木製の六本足を直接地面に置くわけにはいかないのでコンクリートブロックの土台(束石)を挟むわけだけど、穴を掘って砂利を敷いてその上に載せる*1。で、ちゃんと足が均等に付くように水平を出さないといけないのだが、水準器なんて持ってないしどうしたもんかなーと悩んだのはほんの一瞬、そう、なぜなら現代の我々は傾きセンサーを内蔵したデバイスを持ってるのである。
というわけでスマホに水準器 Ultimateというアプリをダウンロード、足の間に平らな木材を渡して傾かないように高さを合わせたのだった。はー、便利な時代だねぇ。
あとは木ねじを何本か締め込むだけで組み立てられる本体を、そうやって位置を合わせた束石の上に載せて完成。今回は「羽つき」という金属製の支えがついた束石を使ったので、それと本体を共締めしてしっかり固定した。けっこう高さがあるけどこれで微動だにしなくなった。腰が痛い。
おまけ: 今回もなぜか自慢気なグスタフ。
*1 本格的にやるならさらにセメントで固める。
■ R1200GS、10年目の車検
2005年に購入してから、10年目の車検からGSが戻ってきた。屋内保管なのでぜんぜんヨレた感じはしないし、そもそも(予定に反して)4万kmしか乗ってないので、もう10年くらい楽勝で走れそうではある。というか乗るけど。
そういえばこないだ走っていたら警告が出てさ、こんなの:
いったいどういう意味なのか、どう考えても発熱する巾着袋にしか見えないんだけど、停車してぐるっと見てまわったら前照灯が切れてるという意味だとわかった。って、わかんねーよ(笑)。日本だと電球のソケットは下向きに描くけど、ドイツでは上につけるのだなぁ。まぁ一度見れば覚えるからいいけどさ、10年乗って初めて切れたよ。
電装系といえば、今回2008年につけた純正ナビが用をなさなくなってきたので外してもらい、スマホ一本で行くことにしたのだけど、実はその純正ナビをつけたときから起きていた不具合を調査してもらったのだ。スターターを押すタイミングによってこれらの外部装置に電源が供給されなくなる(しかもときどき復活する)という挙動があって、再現性があるけど原因がよくわからなかったので。
結果は車検から追加で一週間もかけたにもかかわらず「原因不明」。バッテリが弱いのではとか(新品ではないけど電流は十分だった)、供給先の電流が少なすぎて車載コンピュータが勝手に切っているのでは(純正ナビでそんなことが起きるとは考えがたい)など、仮説はあったがどれも否定的で、BMW本体に報告をあげてもらったけど、現状ではノーマルなやり方で直しようがないとのことだった。BMWでもそんなことがあるんだなぁ。
しばらく騙しだまし乗ってみるけど、スマホのナビは消費電力が大きいから、充電できなくなると死活問題になるので(方向音痴ならではの悩みである)、どうにもならないようならコンピュータを回避して直接バッテリから取り出すような改造をするしかない。やれやれ。
そうそう、店内にいるあいだ雨が降ってて乗れなかったんだけど、新型のRSが試乗可能になってた。まぁ、フロントがテレスコピックという時点で眼中にないんだけど*1、エンジンだけかけさせてもらった。キーがいらなくなっていたのでエンジンのかけかたがわからなかったけど(笑)、水冷になったのでエンジン音はずいぶんマイルドになったね。デザインはなかなかカッコイイけど、RSのくせにシートが低すぎて、試乗した客がみんな「ハイシートにしたい」と言うらしい。同意する。
で、そんなこんなで雨もやんだので出てきたら、家につく直前でまた盛大に降りはじめて、ひさびさにパンツまでぐっしょり……。
*1 最近の新型車がどんどんテレスコ化されていて、BMWの志の低さにがっかりしている。次にバイクを選ぶとき、はたして非テレスコ車が市場にあるのだろうか。というかもう死ぬまでこのGSに乗り続けるしかないんじゃね?
2015-06-29(月) [長年日記]
■ tDiary 4.1.3リリース
今日は肉の日だったので(といってもこれ書いてるのは翌日なんだけど)、tDiaryをリリース。今回もリリース担当はmachu。
今回は小さい修正がメインだけど、Rackのマイナーバージョンが上がってたりするので*1、Rack環境で動かしてる人は入れ替えると良いかも。性能があがってるらしいです。あとcontribにはこないだ作ったcomment_pushbulletプラグインも入ってる。
tDiary.NetのHerokuで動いてるインスタンスは、git push originするだけででまるっと置き換わるし(Heroku・GitHub連携ほんとにすばらしい)、こないだIDCFに移転したこの日記も、
% rake tdiarynet:update % rake tdiarynet:restart[sho]
ってするだけでansibleが動いてアップデートが走るようになったからたいへん楽ちんだ。15年近く同じアプリケーションをメンテしてると、毎月毎年ちょっとずつ文明が進歩してるのが同じ尺度で実感できてじつに面白い。
……とはいえアップデート作業が翌日になってしまったのは、肝心のサーバにansible playbookを打ち込むのに必要なssh鍵を、某所に忘れてきてしまったからなんだけどな。人間は進歩しないな。
*1 Rack 1.6系にはしばらくURLのセパレータがらみの非互換があったのだけど、tDiaryで問題が発覚して直してもらった経緯がある。
◆ ただただし [これはツッコミのテストです。 Pushbulletで通知を受けとれるようにした。 ]