StackExchange に参戦した

Google Code Jam Logo

先月末あたりから、 StackExchange に投稿するようになりました。 Linux とか IT がらみのことで検索すると頻繁に上位に出てくる、 あのいつもお世話になっているサイトです。

自分の知識の整理と、 あとはまあ英文書く訓練になればいいかなーと思って参戦してみたのですが、 その気軽さとゲーミフィケーションの面白さがあいまって、すっかりはまりこんでしまいました。

私のこれまでの投稿は こちら から見られます。 最初は投稿が多い StackOverflowServerFault を見ていたのですが、 やはり Unix & Linux に自分の得意な質問が集まってくるので、今ではほぼ U&L 専門になってしまいました。

なぜそんなにはまったか

自分の場合、 日々の業務でブログのネタにできそうなことには頻繁に遭遇するのですが、 いざそれをアウトプットしようとするとなかなか腰が重く、 ほとんど記事にすることができていません。 しかしながら同じネタでも StackExchange で他人に質問された場合ではさくさくと (それも英語で) 回答が書けてしまうので不思議なものです。

思うに、 StackExchange ではブログと違って記事としての体裁 (背景の説明とか、実行例の作成とか) を考える必要がなく、 ズバリ回答を書けば済んでしまうので、 あまり悩む要素もなく気楽に書けるあたりがよいのでしょう。 また、つたない英文の回答でも反応があり Reputation が溜まっていくゲーミフィケーションの仕組みがやはり面白い。

その上に StackExchange はスマホのアプリ (Android, iOS) がかなりよくできています。 最近は通勤中に新着の質問や回答をチェックしたりコメントしたりをやって、 PC の前に座ったら Favorite のマークをつけた質問に回答するといった生活です。

そういうわけで私は Unix & Linux の週間ランキングでいきなり 2 位になるくらいのめりこんでしまいました。 さすがに最近はもうそんな勢いはないですが。 ちなみに U&L の常連回答者陣には 1 年中ランキング 1 位をキープしている Gilles さんという人が君臨しています。 たぶんこの人は運営の人もしくはプロ回答者なんでないかと思います。

Reputation の素となる Accept や Upvote をゲットするには 質問に対する的確な回答を誰よりも早く投稿するのが一番効果的なのですが、 そのためには回答できそうな質問が投稿されるのを頻繁にチェックし、 また間違いのないように調査・検証した内容を回答として仕上げる必要があり、 これには結構な時間をとられます。

あるいは多少遅くなっても、 独立した記事としても遜色ない包括的な解説・読み物を回答として書くことができれば、 後から来た人から継続的にたくさんの Upvote を貰えることが期待できます。 残念ながら自分にはまだそのようなレベルの英文を書く能力がないので、 これから修行していく所存です。

お気に入りの質問と回答

ということで、せっかく StackExchange にのめりこんだことだし、 そこで遭遇したおもしろネタを紹介するのがいいのではないかと思いましたので、 今後はこのブログでもたまに記事にしていきたいと思います。

最初に紹介したいのは Unix & Linux の How to find line with least characters です。複数行のテキストの入力から、一番文字数が少ない行 (空白含む) を表示する方法が尋ねられています。

まあこういう単純なテキスト処理の質問は、 だいたいの場合はモデレータの人が出てきて速攻で 「既出」とか「オフトピ」とかいう理由で回答不能状態にしてしまうのですが、 うまくそれを乗り越えて質問が存続すると、 様々な回答者が登場して自分の知識・手法を開陳する大喜利状態になることがあります。 これもそんな流れになった質問で、現時点で 15 もの回答がつきました。

自分も pure shell scripting solution だという回答 を投稿したのですが、早速 U&L の重鎮に edit されて read の使い方を直され (StackExchange の投稿は明らかな間違いやまずい書式は他の人にバンバン直されます)、 またコメントで read でループは遅いぞというありがたい助言をいただきました。 自分以外の回答では、 オーソドックスに awk perl python あたりを使った回答の他に、 sqlite3 を使ったものや sed だけで頑張ったものなど、 様々な珍回答が集まりました。

これまでに自分の回答が貰った Upvote はこのときの +8 が最高です。 StackExchange を始めて間もない頃の出来事だったので、 内容は月並みですがなかなか印象深い質問となりました。

今回は以上です。 次回は自分が素晴らしいと思った回答、解説・読み物を紹介したいと思います。

2015/06/17 05:15:03 JST