毎年 12 月になると、数十万人の開発者が Advent of Code に取り組み、その多くが解答を投稿します。ほとんどが画像で、しかもほとんどがサイズを外しています。

画像が選ばれる理由は単純です。多くのプラットフォームは貼り付けたコードを台無しにします。インデントは潰れ、シンタックスの色は消え、気の利いた 1 行が読めない塊になります。画像ならそれをすべて回避できます。ただし代償もあり、それははっきり書いておくべきです。画像はコピーできず、検索もできず、スクリーンリーダーでも読めません。ソースへのリンクを併記してください。

ファイル全体ではなく、面白い部分を出す

いちばんよくある失敗は、解答ファイルを丸ごとスクリーンショットに撮ることです。60 行の画像をスマートフォンで読む人はいません。Advent of Code の解答には、たいてい面白いアイデアがひとつだけあります。入力の解析、漸化式、総当たりを一瞬に変えたひと工夫。それを撮って、残りはリポジトリへのリンクに任せましょう。

タイムラインで読める上限は 10 行から 15 行くらいです。

自分の画面ではなく、投稿先に合わせてサイズを決める

ほとんどの解答画像がつまずくのがここです。27 インチのモニタでちょうどよく見えるコードも、フィードの中では 6 ポイントの文字になります。

  • タイムラインの投稿なら 16:9 か 4:3。それより横長にすると、収めるために文字が小さくなります。
  • 縦型のフィードなら 9:16 か 3:4。多くの解答がもともと縦長で細いので、形も合っています。
  • どこに出すにしても 書き出しは 2× か 3× で。1× の画像は Retina ディスプレイでぼやけ、少し素人っぽく見えます。

Codeshot では「アスペクト比」の項目がそれにあたります。「オリジナル」から「固定」に切り替え、比率を選び、書き出し倍率を設定する。毎回この 3 つだけです。

コントラストのあるテーマを選ぶ

12 月のスレッドはコード画像の壁になります。読まれるのは、ひと目で読めるものです。コントラストの高いテーマは、控えめなテーマより小さな文字をよく支えます。Tokyo Night、Atom One、Solarized はいずれも縮小に耐えますが、コントラストの低いテーマのいくつかは耐えられません。

ひと月分を決めてしまう前に、30 種類をここで見比べられます

25 日間、同じ設定を通す

毎日投稿するなら、テーマ・背景・比率は初日に決めて、あとは触らないことです。統一感こそがフィードの中でシリーズを見分けられるものにします。そして実際的にも、毎回の 20 秒の手直しがなくなります。11 日目あたりで投稿をやめてしまう本当の理由は、たいていそこにあります。

ネイティブアプリはこの点で有利です。設定が起動をまたいで保持されるからです。1 日に整えておけば、以降は貼り付けて、書き出して、投稿するだけになります。

ネタバレについて

Advent of Code の作者は、リーダーボードが埋まる前に解答を公開しないよう呼びかけています。その年の案内を確認し、迷うなら、その日の最中ではなく終了後に投稿してください。

一連の流れはコードを画像に変える方法にまとめてあります。