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:その上画面領域のいいところに配置してあるので凄く邪魔で嫌いです

開始

ブログは昔何年も書いてたんですけど、いろいろ便利なサービスを使うようになり、それらで大体事足りてしまうようになったので、しばらくやめていました。例えば次の通り。

  • 技術系のネタ: qiita, slideshare
  • 近しい人への近況報告: facebook
  • 衝動的に思いついたことの吐き出: twitter

やめてしばらく経ってから、上記のサービスには当てはまらない隙間に潜むようなネタをいくつか思いついたので、またブログを再開してみることにしました。