ノートPCを買い替えました

今使っているMacBook Air (13-inch, Mid 2012)のバッテリが劣化してきたので、新しいマシンを買いました。

HP EliteBook Folio G1/CT Notebook PC

あまりカスタマイズはしていませんが、ストレージだけは256GBに増量しました。SSDSATA接続のものにするかNVMe接続のものにするかで少し悩んだのですが、後述の通り性能よりも駆動時間重視だったので、消費電力がSATAのものに比べて高くなると考えられるNVMe接続のものは避けました。ストレージをわざわざ増量したのは、増量することによって税引き価格が10万円を超えるのと、税引き価格が10万円を超えると7%offになるクーポンがあったからです(別サイト)。結果、5000円くらいの追加でSSDを128GB追加できました。まんまと売り手の思惑にハマってます。

もともと探していたマシンの要求仕様は次の通りです。一言で言えば性能はどうでもよくて、高性能なマシンに接続して繋ぐシンクラっぽい使い方を想定していました。

  • ディスプレイの解像度はfull HDなら嬉しいけど1280x800あれば十分
  • CPU性能にはこだわらない。Chromessh(mosh)クライアントがさくさく使えればそれでいい。前者についてはタブはあんまり開かないし、重い動画を見たりはしない
  • ストレージ容量は購入後のアップデートに支障が無い程度(最悪32GBでもアリ?)でよい。その他のデータは上述の理由により手元に置いておかなくてもよい
  • サイズは10インチ以上、13インチ以下
  • 重量は1.2kg以下、できれば1kgを切って欲しい
  • キーボードはプログラミングに支障を来さない程度に。変な配置になっていなければ各キーのサイズは若干小さくてもよい
  • バッテリ駆動時間は最低8時間、できれば10時間以上
  • OSにこだわりは無い
  • 価格は5万円前後が嬉しい。出しても10万円くらいまで

これらを考慮した結果、次のような候補が挙がっていました

  1. ASUS TransBook Mini R106HA-GR053T
  2. ASUS Vivobook E200HA
  3. Lenovo ideapad MIIX 310

これらのうち、とくにaかcがいいかなと思っていました。バッテリ寿命はどちらも申し分なく、さらにaについてはとにかく軽いこと、cについては価格とディスプレイ解像度が高いことが魅力でした。ただしcについては、cの実機を触ったところ、キー配置が微妙であり、かつ、比較的近い使い方をしていると考えられる(プログラミング)実際のユーザのかたからも同じことを伺ったので、見送りました。

「さあaで決まりか」というときに、上述のideapadのユーザのかたに、上述のHPのマシンを教えていただきました(余談ですが、なぜかこれらの2つのマシン以外にも複数のマシンを同時に持ち歩いておられるとか…)。このマシンは価格帯はa, b, cよりもだいぶ上ですが、同一価格帯の他のマシンに比べてのコストパフォーマンスがぶっちぎりだったので、一目惚れで買ってしまいました。同じかたから、実機を触らなければ本来わからないキーボード配置についても不満無しという感想を得られたことも購入を後押ししました。

結局、性能はどうでいいというようなことを言いながら、そこそこの性能のものを買ってしまいましたが、「たまの散財はいいものだ」と自分を納得させることにしました。

一時的に使ってたGCEインスタンスを使い終えたので削除した

数日前に下記エントリに書いたGCEインスタンスを、本日旅から戻ったので削除しました。

satoru-takeuchi.hatenablog.com

サルベージが必要なデータは帰宅時点では既に無かったので、色々考えずに速攻で消せました。VMを作ったときからのVMのローカルストレージの増分は次の通り。

  • カーネルビルド用にインストールしたいくつかのパッケージ => aptで持ってきただけのものだから不要
  • linuxカーネルのソース => kernel.orgのgit repositoryから持ってきただけ。旅行中(残念ながら)カーネルパッチは書かなかったから自前データは無し
  • githubから持ってきたいくつかのリポジトリ => 変更分はすべてgithubにpush済み

コストの面では、作業するときだけ起動させて運用してたので、旅の途中の一週間くらいの間で、総費用は800円未満。こういう一時的に作業環境が欲しいというときには、すぐに楽々使えて、かつお安く済むので、クラウドは便利ですね。ありがとうGCE(ステマ

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の仕組み上、当たり前のことではあるのですが、感心してしまいました。

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