linuxカーネル開発用に一時的にGCE使い始めた

現在自宅を離れて一週間ほどの旅の途中です。こういうとき、普段は自宅のデスクトップマシンにインターネットからsshでアクセスできるようにしておいてリモートで作業するのですが、今回は設定を間違えたせいで、それができません。

旅の途中でやりたい作業は主にlinuxカーネルのソース調査、パッチ書き、それにビルドです。幸いにも必要なリソース(linuxカーネルのgitリポジトリ)は自宅マシンだけでなく、ほとんどはインターネット上に置いてますので、GCEを使って作業することにしました。自宅のマシンに比較的近いn1-highcpu-4インスタンスを、ちょっとボタンをポチポチするだけで作って、開発、使わないときは課金されないように電源断。常時起動させておくとそれなりのお値段がしますが、これだとそれほどコストがかかりません。旅が終われば捨てればいいです。クラウドの便利な使い方の1つですね。ついでに言うと今は一年間のFree Trial Periodなので、使用料金が$300に達するまで無料。最高。

温泉施設の鍵の使い方

行きつけの温泉施設の鍵の使い方について思うところがあります。この施設では、施設内で飲み物などを買うときに現金のかわりに使える鍵を入場時受け取り、退場時に精算します。入場時に履いている靴は、この鍵に紐付いた下駄箱に入れます。脱衣所で衣類などを入れるロッカーはフリーアドレスになっており、ロッカーに備え付けの、上記とは別の鍵を使って施錠します。問題があるのはここからです。

退場時に下駄箱から靴を取り出した後に、鍵が下駄箱に紐付いていると誤解して、鍵をその場に置いたままにして退場しそうになることが過去に何度もありました*1。下駄箱は入場前の場所に置いておき、入場時に渡される鍵はロッカーに紐付いているほうが、現金のかわりに使える大事な鍵を危険にさらすリスクが少なくなるのでよいと思いました。以上、負け惜しみでした。

*1:実際は退場時に店員に呼び止められるので、そのまま退場して帰宅したことは無いですが

GCEのf1-microインスタンスなどが無期限無料で使えるらしい

Google Computing Platformの一部サービスが無期限、かつ無料で使用できるAlways Free製品が強化されました。

japan.zdnet.com

その中でもとくにインパクトが大きいのは記事中の"Google Compute Engine」(1カ月あたり米国リージョンにある1個のf1-microインスタンスと、30Gバイトのハードディスク、同リージョン外への1GB以下のネットワーク通信量)"でしょう。マイクロインスタンスとはいえ、自分の端末から常時接続できるIaaSのインスタンスが無料で使えるというのは大きいです。

無料枠でシステムの要件を満たせる、この手のサービスの利用にある程度慣れている人にとっては、レンタルサーバVPSサービスを解約して、こちらに乗り換えてもOKなケースも出て来ると思います。いずれAWSやAzureなどの他の競合サービスも対抗策を打ってくるかもしれません。

私が調べた限り、このAlways Free製品はいくつか注意点があります。

What are the requirements for using Always Free?

You are eligible for Always Free if you meet the following requirements:

  • You do not have a custom contract or rate card with Google.
  • Have an upgraded billing account
  • Account must be in good standing

If you are deemed ineligible for Always Free, you will be charged at standard rates or the rates specified in your contract.

私は上記二つの条件を満たした状態でHDD 30GBのf-microインスタンスを作ろうとしたところ、月あたり$0ではなく、$5.xxと表示され、課金されるように見えました。その一方で、ダッシュボードを見たところ、月額課金予定金額は$0になっていました。GCPのサポートに問い合わせたところ、一見課金されているように見えるものの、「上記要件を満たしていさえすれば、実際には課金されない」という回答をもらいました。なんだかすこし気持ち悪い感じはしますが、使えるという言質は取ったので、よしとします。

  • ドキュメントで使用期限についての表記が曖昧

GCPの無料枠(free tier)には、次の二種類があります。

  • free trial credit: free trial periodという12ヶ月期間で$300ぶんのクレジットが使える
  • Always Free(前述の通り)

公式ドキュメントを見ると、次のように、free trial periodを超えてもAlways Freeが有効なような、そうでないような、どちらともとれる2つの文言がありました。

From https://cloud.google.com/free/

Always Free

Free usage limits on participating products for eligible customers, during and after the free trial. Offer is subject to change.

From https://cloud.google.com/free/docs/frequently-asked-questions

How does the free trial work with Always Free?

You are eligible for Always Free usage amounts during the free trial period. Always Free usage does not count against your free trial credits.

これについてサポートに質問したところ、前者のほうが正しくて、一年間のfree trial periodを過ぎてもなおAlways Freeが有効、という言質を取りました。

ついでにドキュメントが曖昧だから、できれば直したほうがいいよという提案もしておきました。

  • “Offer is subject to change"という文言に注意

これは無料サービスには付き物であり、かつ、当たり前の話なのですが、ある日突然無料枠が変更になったり、無期限でなくなったり、果てはサービス自体が消滅したりするかもしれません。GCPからのアナウンスにはアンテナを張った上で使うほうがよさそうです。

Qiitaの記事に埋め込んだ画像の開放タイミングについて

Qiitaの記事に画像を埋め込むとqiita.com内のURLへのリンクが生成されると思いきや、S3内のURLへのリンクが原文に張られます。執筆者がアップロードした画像はS3に送られて、そのURLを使って画像表示をしているようです。ここまではいいのですが*1、問題は画像を消すときです。どうやってるんでしょうね。

素直に考えると次のような実装が考えられます。

  • ユーザごと、あるいは記事ごとに、過去にアップロードした画像リストを管理している
  • 記事公開/下書き保存のタイミングでフックを仕掛けて、画像リンクへの参照カウンタを増減させる
  • 参照カウンタが0になったら画像データを削除する

これを確かめるために、

  1. とある既存記事に埋め込まれている適当な画像へのリンクを削除
  2. 記事を更新(ここで記事から画像は消える)
  3. 再度記事を編集して、1で削除したリンクを挿入
  4. 記事を更新

という操作をすると、再び画像が表示されました。どうやら、参照カウンタによって画像データの開放時期を管理しているとしても、開放のタイミングは記事公開/下書き保存の時ではないようです(少なくとも毎回はやっていない)。定期的にバッチ処理で開放しているのか、はたまた参照カウンタじゃない全然別の方法で管理しているのか。

中の人ではないのでこれ以上の真相は闇の中ですが、知らなくても困るものでもないので、とりあえずはここまで。

*1:商用webサービス内のURLにむき出しのs3.amazonaws.comを含むURLが出てきたのは若干びっくりしましたが…

いまさらながらのtwitterの威力

ここ最近は政治界隈やら運営母体である会社の存続などで話題なtwitterですが、身近なところで最近威力を感じた話を2つほど紹介します。このツールを使いこなしている人にとっては「この人、今更何言ってんの?」だと思いますが、備忘録として。

本やフリーソフトウェアの著者との繋がり

twitterを始めてしばらくしてから、自分の知っている本やフリーソフトウェアの著者などもtwitterを使っていることを知りました。最初は「へぇ、こういう人も使ってるんだ」というくらいの印象だったのですが、何をどうしたのか、ここ数年そのようなかたがたと直接twitter上で対話する機会が増えてきました。

彼らの著作への(今思えば偉そうに)フィードバックをした流れでしばらく話し込んだこともあります。昔は何らかの著作物へのフィードバックといえばハガキや編集部へのメールという一方通行か、あるいは良くても著者本人へのメールという一対一の対話が主流でした(これも実質的には一方通行なことが多いですが)。しかし今では公開チャットのようにフィードバックできるようになりました。以前より圧倒的に高速、かつ、効率的です。いい時代になったものです。

最近はそのような人々と、彼らの著作だけでなく、別の技術、あるいはそれ以外のものについても話すようになってきました。それもあって、数年前は遠い存在だった人々が随分近く見えるようになりました。現在所属しているIT企業に入社したときの「ああ、自分はいまこちらの世界に居るんだな」という感覚を追体験しているような気分です。

技術書を手放そうとした時の話

少し前に、諸事情あって不要になった技術書10冊程度を手放すことになりました。あまり世に言う合理的な考え方ではないのですが、せっかく手放すのであれば次の行き先でも大事にしてもらえればなと思っていました。当時考えていた選択肢は2つ。

  • ブックオフで売る: 下取り値はほぼ期待できない。多くはすぐに処分
  • 電脳書房で売る: ブックオフよりはまともな下取り値がつくらしい(利用したことはない)

前者はあんまりなので後者に傾きかけていたのですが、知人に「twitterで里親を探してみれば」と言われたのをきっかけに、ちょっと面白そうだなと思ったこともあって、そうしてみました。すると一日も経たずに全ての本について里親が見つかりました。しかも、あまり世の中ではメジャーではない部類の本がほとんどであったにも関わらず、です。

引き取り手のうち、二人は直接の知り合い、残り二人はそうでない人でした。私個人はそれほどフォロワーが多くないほうですが、フォロワーが多い、影響力の強い方々がたまたま拡散してくれたおかげでこのようなことになったのだと思っています。twitterの仕組み上、当たり前のことではあるのですが、感心してしまいました。

私の普段のしょうもない発言もしっかりこのように拡散されているものと肝に銘じて、今後もしょうもない発言をしていこうと思っています。

読書感想文: 進化する銀行システム 24時間365日動かすメインフレームの設計思想

私はメインフレームについての知識がほとんど無かったため、以前からメインフレームに関する本を読みたいと思っていました。メインフレーム実践ハンドブック z/OS(MVS),MSP,VOS3のしくみと使い方という本があることは知っていましたが、分厚くてお固そうなのでなかなか手を出せないまま時が過ぎていました。もっとお手軽なものが無いかと思っていたら、まさにこれだと言わんばかりのタイトルの本書を見つけたため、衝動買いしてしまいました。

本書の主なコンテンツはメインフレームを使った銀行システムの歴史、メインフレームのハードウェア、ソフトウェア面の長所、そして今後の銀行システムの行方についての予想などです。銀行システムの歴史については、私が生まれる前から現在まで、どのような事情によって何ができるようになってきたのかが紹介されており、興味深かったです。他にも、これまで聞いたことがあるだけだった、あるいは初耳だったメインフレーム固有の概念、用語などについて概要ながら理解できたのが良かったです。以前から「メインフレームWIndowsLinuxとは根本的に別物である」という話を折に触れてメインフレーム経験者から聞いていましたが、その意味がよくわかりました。また、メインフレーマ経験者が時折使う謎の用語がメインフレーム用語だったと気づくこともしばしばでした。

基本的には説明が丁寧でわかりやすいのですが、ソフトウェアに関する説明はやや急ぎ足だったという印象がありました。メインフレーム初学者の私にとっては、初見の頭字語が数ページに渡って何十個も怒涛のように説明され続けるのはなかなか辛かったです(私の理解力の問題かもしれませんが…)。

最後に、書評ではないのですが、ぜひメインフレーム畑のかたにこの本を読んでいただいた上で感想を聞きたいなと思いました。

Qiitaのうまい活用方法

Qiitaは"ある特定の情報を求めて検索を起点に該当する記事を探す"という使いかたをすると、しょうもない記事の密林を掻き分けていかなければならないことが多々あります(とくに流行り物)。しかし、視点を変えて、サービス側から(正確にはフォロワーからなのですが)ふいに流れてくる記事を雑誌を読む感覚で堪能するという使い方をするとなかなか有用だということを書きます。

世の中のwebサービスが持つ、知り合いのユーザに関連するものを推薦してくれる機能(ここでは仮におすすめ機能と記載)全般と、Qiitaのそれについて書きます。おすすめ機能とは、例えばtwitterFacebookであれば「この人をフォローしませんか」「この人と友達になりませんか」「この人がこの投稿を面白いと言っています」とかいういうやつです。

おすすめ機能は大抵の場合は見当違いの推薦をしてくるのでほぼ役に立ちません*1。このため、過去にはおすすめ機能自体を毛嫌いしていたのですが、最近Qiitaのおすすめ機能を見て、認識を若干改めました。

Qiitaのおすすめ機能は、フォローしているユーザが良いと思った記事(いいね!したもの)、あるいは気になっている記事(ストックしたもの)をおすすめしてくれます。これが、仕組みは単純なのですが、けっこう強力です。優秀な技術者をフォローすれば、高品質である可能性が高いであろう記事を珠玉混合の記事の中から簡単に抽出できます。

思うに、他のサービスの場合は、コンテンツが技術的なことに限らず日常についてのものなど多岐に渡るのに対して、Qiitaはコンテンツをプログラミングに関するものだけに限定していることによって、おすすめ機能がうまく働いているものと推測しています。

これまでQiitaを使ったことの無いし記事を書く予定も無いというかたであっても、ユーザ登録をした上で、技術的に優れており、かつ、他のユーザの投稿にいいね!をする活動をしている人(むろん直接記事を書いていればなおよし)をフォローしておけば、比較的良い記事にたどり着ける可能性は高いと思います。個人的には、技術的に面白いが、ニッチな故に雑誌などには載りにくいものなど、かなりよい記事に何度も出会えました。

最後に参考までに、以下に、どう見てもガチプロが書いたと思わしき記事をいくつか挙げておきます。

qiita.com

qiita.com

一人トランザクション技術 Advent Calendar 2016 - Qiita

おしまい

*1:その上画面領域のいいところに配置してあるので凄く邪魔で嫌いです