博士以前

人間です

二週間

研究会や共同研究があり、2週間韓国に行っていた。 韓国は近くて食べ物も美味しくてとても良い。僕は韓国で食べて初めてキムチが美味しいと思うようになった。

去年初めて行ってから今回でもう3回目になのだが、いまだにハングルを全く覚えていないので困ることが多い。飲食店で英語が通じることはほとんどないので、適当に指差しで注文したりすることがほとんど。最近はようやく「これを一つください」が言えるようになった。海外に行くときもやることは日本と変わらなくて、だいたいご飯を食べて酒を飲んでいる。

今回初めて食べたのはポッサムと牛焼き肉。 ポッサムは豚バラや豚の足を蒸したもので、キムチ等の薬味と一緒に食べるととても美味しかった。 焼き肉は安いので豚を食べることが多いけど、もちろん牛もあって豚よりは多少値が張る。 しかしその分味も良いので、普通のサムギョプサルに飽きた人にはオススメしたい。

韓国は食べ物は美味しいのだけど、お酒に関してはあまり良くない。 彼らは基本安くて酔えればいいという感じのようだ。 一番よく見かけるビールは Cass という名前のものだが、これは味が薄くお世辞にも美味しいとは言えない。 韓国人の知り合いもだいたい同意見で、財閥が強くて競争が生まれないのが原因だと言っていたが、本当かはわからない。 比較的美味しい国産ビールは Kloud というものだが、置いていない店も多い。 ただ繁華街に行けば若者向けのビアパブはたくさん見つかるので、美味しいビールが飲みたければそういう所に行って普通に外国ビールを飲めば良いと思う。

ビールの他によく飲まれているお酒はソジュ(焼酎)である。どこでも飲める緑の瓶のソジュは一本360mlとかで約400円ととても安価だが、日本でいう甲類焼酎に当たるものでまあ安酒。今回共同研究者に連れて行ってもらったお店で10倍の値段がする焼酎を飲んだけど、それは結構美味しかった。

研究会は面白い話もいくつかあったが、モチベがよくわからない研究も少なくなくて、業界の混迷感が見えていたと思う。 まあこれは僕が朝起きられなくて、午前の最初の方のトークをスキップしがちだったからかもしれない。 参加者を集めるために早めの時間に良い研究者を配置することはよくある。 自分の発表は短時間であまりこの業界の人が知らないテーマを話さないといけなかったので大変だったが、一応質問も出たので悪くはなかったと思う。 共同研究の方もまあ進展したので行った元は取れた。

そろそろ本当に就活の方をやっていかなければならないので説明会のようなものに申し込んだりしている。 就活サイトに登録したら怖い企業から、生きる意味や社会で果たすべき役割などを問うDMが来るようになり震えている。 そんなこと考えながら生きても一ミリも楽しくないと思うんだけど。

文献管理とノート整理に Zotero が最適だった

仕事(?)柄常日頃多くの論文を読んだり、たくさんノートをとったりしている。 最近は紙でノートを取るのをやめてソニーのデジタルペーパーに移行した。 いつでもどこでも自分の昔やった計算にアクセスできて便利である。特に出張にどのノートを持って行こうかと悩むことがなくなったのは大きい。 自費で買うのは少し高いが研究費等で購入できる人にはオススメ。

ソニー デジタルペーパー dpt-rp1

ソニー デジタルペーパー dpt-rp1

文献やノートの数が多くなってくると必然的にその管理方法が問題になる。 論文に関してはフリーの spires.app https://member.ipmu.jp/yuji.tachikawa/spires/ を使っていた。これは INSPIRE (高エネルギー物理の論文データベース)を利用する人専用のアプリだが、軽量で arxiv の新着や BibTeX key の取得も簡単なので便利だった。 しかし最近は INSPIRE にない分野の論文もよく読むようになり、それらは適当にドロップボックスに入れていたので、管理が行き届かなくなってしまった。 またデジタルペーパーで取ったノートも同様にドロップボックスに投げていたが、こちらも文献と同じシステムで管理したいと思っていた。

そのような目的でいくつか有名どころの文献管理ソフトを調べて使ってみた結果 Zotero が僕の目的には最適だったので紹介というか使い方をメモしておく。

www.zotero.org

Zotero のメリットをいくつか挙げよう:

  • オープンソースであり、有志の作成したプラグインを使うことで機能拡張ができる。もちろん頑張れば自分でも作れる

  • ユーザー登録をすることで Zorero のサーバー上で文献リストを共有できる。複数端末で文献管理する人には必須。無料アカウントでは容量は少ないが、PDFは同期せず、文献データだけを共有するようにすれば問題にはならない

  • Firefox プラグインが存在する。これは論文以外にも参考になりそうな WEB ページ等をワンクリックで登録するのにも使えて便利

  • 後述する Zotfile というプラグインが便利。デジタルペーパーと連携させるのにとても役立つ

  • 軽い

もちろん同様な機能は他の文献管理ソフトにも存在するとは思うが、細かい部分が僕の使い方にあっていると感じた(あと基本的にフリーで拡張性が高いソフトウェアを僕が好むというのもある)。

Zorero の設定

基本的な使い方やアカウント作成方法等は本家のページ、もしくは日本語が良ければ「Zotero 使い方」でググれば大体わかると思う。 個人的にデフォルトから変えるべきだと思う設定は

  • [General] -> [File Handling] -> [Automatically take snapshots when creating items from web pages] のチェックを外す。いちいち余計なページ情報も付与されて邪魔なので

  • [Sync] -> [File Syncing] のチェックを全部外す。これは Zotero アカウントの容量に余裕のある人は使っても良いとは思う。僕は Zotero サーバーにファイルを入れるのをやめて(後述するように)自前のドロップボックスで共有している

くらいだろうか。

一つネックなのは Zotero の外部からファイルを参照するのが難しいということだ。 というのも、ローカルのデータベース管理には SQLite というソフトが使われているのだが、これが人間にとっては意味がわからない文字や数字によって文献名をつけてしまうからだ。 例えばZotero ソフト内で [Deep lerning] - [textbook] のように階層を定義して資料を管理していたとしても、実際の保存先のディレクトリ内ではその階層構造も崩れるし、どこに [Deep learning] の文献があるかも容易には確認できない。 僕は Zotero にさらにデジタルペーパーを連携させたいのだが、このように外から見たファイルの場所や名前がめちゃくちゃだと、単に Zotero の保存先とデジタルペーパーを同期させるだけでは快適な環境は作れない。 ということでこれを解消するために ZotFile というプラグインを使う。

Zotfile を使う

以下でプラグインをダウンロードして Zotero にインストールする。

ZotFile - Advanced PDF management for Zotero

  • [Tools] -> [ZotFile Preferences] -> [Location of Files] の [Custom Location] に保存先を設定する。僕の場合はドロップボックスの中に Zotero という名前のディレクトリを作成してそれを使った

  • [Use subfolder defined by] に /%c と書くことで、Zotero 内の Collection の階層と同じ構造を持ったディレクトリが作成される

設定のオプションなどは以下のブログが参考になる。

humosy.hatenablog.com

ただし、ここでドロップボックスを使ったファイル共有方法として紹介されている、「Zorero のデータベース情報を直接ドロップボックスにおく」というやり方はオススメしない([Advanced] -> [Files and Folders] の話)。 なぜなら複数端末で同時に Zotero を起動している場合に、データベース間の整合性が取れなくなって、登録したと思った文献がなくなっている等のトラブルが起きかねないからだ。 ここで書いたように、ZotFile の保存先のみをドロップボックスに設定して、データベース情報はあくまでローカルと公式のクラウド経由で管理するのが良いと思う。

デジタルペーパーと連携する

ここまでくるとデジタルペーパーと連携するのも簡単である。単にデジタルペーパーと、ドロップボックスに作った ZotFile 用のディレクトリを同期すれば良い。 デジタルペーパーは配下のPDFを勝手に探して、ディレクトリ構造を保ったまま同期してくれる。 しかもZotFile によって著者やタイトルをもとにリネームされているのでとても探しやすくもなっている。

Zotero は自分で書いた手書きのノートなども論文と同じレベルで管理してくれる。 僕の普段の使い方としては、研究プロジェクトごとに Zotero の Collection を作成する、そこに参考文献用の sub collection とノート用の sub collection を作成して管理するという風にやっている。

トピックモデル

最近トピックモデル、特に Latent Dirichlet Allocation (LDA) について勉強したので教科書や参考になったサイト等をまとめておきたいと思います。

トピックモデルとは

トピックモデルというのは自然言語処理の分野で使われる、文書に潜在するトピックを推定するために用いられるモデルのことです。 例えばニュース記事にはスポーツや芸能、政治や経済といったトピックが含まれています。このようなトピックを文書だけから推測することができるでしょうか?もちろん我々人間は単語の「意味」を知っているので文書を読んで意味を理解することで、その記事のトピックを言い当てることができます。しかしコンピュータには同じことはできません。

この問題をコンピュータで扱うために注目するのが単語どうしの共起です。例えばニュース記事では、「サッカー」や「野球」という単語は主にスポーツ記事に集中して現れるでしょうし、逆に政治・経済の記事で出てくるのは稀でしょう。同じトピックに属する単語は一緒に現れやすいはずです。

この単語どうしの共起を数学的にモデル化したものがトピックモデルです。その中でも2003年に提唱された Latent Dirichlet Allocation (LDA) が基本的で重要なモデルだと考えられています。 このモデルは

  • 文書中の単語の出現順は無視する

  • 各文書の各単語一つ一つが潜在トピックを持っている

  • 実際に観測された単語はそれぞれのトピックが持つ単語分布に応じて確率的に選ばれた

と考え、ベイズ推論の枠組みでトピックの推定を行います。

参考になった書籍等

トピックモデル (機械学習プロフェッショナルシリーズ)

トピックモデル (機械学習プロフェッショナルシリーズ)

この本はトピックモデルの基本的な説明や実装する際のアルゴリズムが簡潔にまとめられており最初に読む本としては良いと思います。 式変形も比較的丁寧で、補助情報付きのモデルや階層が入ったモデルなどの拡張についても簡潔にまとまっています。 ただ、簡潔であるがゆえに踏み込んだ説明が少ないです。例えば Dirichlet 分布のパラメーター推定に関してはどのパラメータを対称にとってどのパラメータを非対称に取るかなどは、初学者にとっても重要だと思いますが、詳しく書かれてはいません。

この本はトピックモデルに限らずベイズ推論一般に関する入門書です。多分この緑のシリーズの特徴なのでしょうが、言葉による説明が丁寧でどのような気持ちで理論が組み立てられているか理解するには良いと思います。僕はつい先日までトピックモデルどころかベイズ推論に関しても完全に無知だったのですが、この辺りを読んで何をやりたいのかわかるようになりました。あくまで入門書なので、進んだアルゴリズムを学ぶような本ではないです。

トピックモデルに関しては現在日本語では一番良い教科書なのではないでしょうか。あまりちゃんと読んでいないのですが、上の青い本で書かれていないことが詳しく書いてあり有用そうです。

参考になった WEB ページ

Vol.27 No.3 (2012/05) Latent Topic Model (潜在的トピックモデル) – 人工知能学会 (The Japanese Society for Artificial Intelligence)

これはググって見つけた人工知能学会のページで2012年と少し古いですが、分野の発展がリファレンスと共にまとまっていて有用でした。 特に実際に実装する際には、上の本で解説されているようなナイーブな方法だと遅いので、ここで紹介されている効率的なアルゴリズムを使うのが良いと思います。(https://mimno.infosci.cornell.edu/papers/fast-topic-model.pdf は僕も実装してみたので、いずれ解説したい…)

簡単な解説

LDAの詳しい解説は上記の教科書を読んでもらえば良いと思うのでしませんが、せっかく勉強したのでエッセンスだけメモしておきます。

LDAでやっているのは結局のところ行列分解です。 我々が持っているデータは「各文書にある単語がいくつ入っているか」というものです。 文書 dに入っている単語番号 vの単語数を N_{dv}と書きましょう。 学習に使う文書データは通常非常に多く、またそこに入っている単語の量も膨大です。 d=1,\dots,D,  v=1,\dots,Vとして、行列  N_{dv} D\times V という大きな次元を持っています。この行列を特異値分解して、特異値が大きい部分だけを見ることにすると、次のような近似的な分解が可能です

 N_{dv} \approx \sum_{k} A_{dk} B_{kv}

ここで k=1,\dots,Kで、 K D Vよりもはるかに小さい数に選ぶことができます。つまりもとの D\times Vの大きいデータを D\times K + V\times Kの小さい次元のデータで表現しようということです。  k潜在的なトピックを区別する番号と解釈すると、 A_{dk}は文書 dに入っているトピック kの量、  B_{kv}はトピック kに属する単語 vの量と思えそうな気がします。しかし、 A_{dk} B_{kv}は正であるとは限らないので、常にそのような解釈が可能であるわけではないですし、モデルを拡張するのも難しそうです。

LDAでは単語数のデータ N_{dv} を直接行列分解するのではなく、それを生成する確率分布を行列分解します。  p_{dv}を文書 dに単語 vが出現する確率とし、これを同様に

 p_{dv} \approx \sum_{k} \theta_{dk}\phi_{kv}

と分解します。これは先ほどの場合と違い、クリアーな意味付けを与えることができます。 文書 dに単語 vが出現する確率というのは、その文書にトピック kが割り当てられる確率 \theta_{dk}と、トピック kで単語 vが出現する確率 \phi_{kv}の積として表されるというわけです(ここでは \theta_{dk} \phi_{kv}が正しく確率となるような制限付きの行列分解を行うことにしています)。

LDAの目標はこの確率分布を使って、観測された文書データから逆に各単語のトピックを推測することで、上の教科書で説明されているような方法で実行することができるのです。

初めから持ってないのに胸が痛んだ

文章を書きたい。ツイッターの140文字ではない、もっとまとまった自分なりの考えを、自分のために残しておくようなものが書きたい。

でもいざPCの前に座ってキーボードを打とうとしても、書くべきことが見つからず手が宙を彷徨う。 自分の中には語るべきものなのなど何もないのではないか、空っぽの人間なのではないかという無力感に苛まれることになる。

自分の生活や研究のことについて、それなりに普段から考えているつもりだった。でもそれに具体的な形を与えようとすると、思考があっという間に霧散してしまう。 それは結局僕が真剣でなかったということなのだと思う。

とにかくそうやって霧散して行く思考をなんとかかき集めてみる。

ここ最近知っている人たちが研究を辞めた/辞めそうという話をよく耳にする。 それは残念だと思う一方、仕方がないなという気持ちにもなる。

僕の研究分野は、はっきり言って今暗黒時代だろう。 研究の質よりも量(~ productivity)が重視されているように見える。でもこれは仕方がないのだ。 なぜなら、実験や観測から新しい発見がないから。そういう状況では、じっくり物事を考えるより、たくさん論文を書いて研究所全体の活動を活発にしてくれるような人が好まれるのは当然だと思う。

こういう時代になっていることはもちろん大学院に入学する前にもある程度は知っていた。 しかしそれを覚悟で入ったかと言われると少し違う。 当時の僕はそもそもそんなことを真剣に気にするほど自分の人生をきちんとは考えていなかったし、なんだかんだで自分にできることは見つかるだろうと楽観していた。 そしてこの楽観はある程度期待通りに働いた。そもそも人と同じことをやりたくない性格なので、ちょっとひねくれたテーマを見つけてそこから論文を書くことができた (これはもちろん独力で研究を進められたという意味ではなく、僕がそうやってやりたいことをアピールすると、適当な研究者とパイプができて彼らにうまくネタをもらうことができたという意味である、念のため)。

大学院に入って今まで自分のやっていた勉強はただの散発的な趣味でしかなかったことがわかったし、趣味的な勉強では決して得られなかった深い理解に達することができたのは本当に良かったと思う。 自分がもう一回人生をやり直してもやっぱり同じ道に進むのではないだろうか。

しかしこの先どうするかというのはとても悩ましい。面白い問題はいくつかあるし、小さなテーマでもきちんとやって論文にすると満足感はあるものだ。 一方で、自分の人生をかけるほどの重要な(かつ僕が頑張れば解けるかもしれない)問題があるかと言われると、答えに詰まる。 そういうことに深く悩まず、自分の業界内でのステータスを上げるゲームだと思って研究を続けられる人もいると思う。 もしくは、とにかく自分の好きなことや面白いと思うことができていればそれで良いという人もいる。 でも僕はそういうタイプの人間ではない。

大学を卒業してもう何年も働いているような知り合いにこの手の話をすると、「せっかくここまできたのにもったいない」とか「そうはいっても仕事は一生のものだから」「わたしの仕事だってそういう小さいことの積み重ねだよ」という言葉をもらうことがある。 これは僕がうまく考えていることを伝えられていないのも悪いんだろうけど、正直彼らの言うことはちょっと違う。 学生の地位が低いこの国で五年間低い給料に喘いで、卒業したら何年も短い任期の職に応募しなければならないこと、その後日本に帰ってきて研究を続けられるのがほんの一握りだということは人の心を相当弱らせるということはなかなか実感できないのだろう。

まあ悩んでいても仕方がないので、GWが明けたら色々行動しようと思っている。 研究も、それなりにやることはあるし、国際会議に参加する予定もあるのでまだまだ気楽な学生生活は続いていく。

ネガティブなことを書いてしまったけど、大学院生というのは心を病みがちなので許してほしい。

新年度

こんなブログを読んだ。

物理屋が物理をやめる理由」

Why Physicists Leave Physics | 4 gravitons

このブログによると、学生やポスドクが物理(ここでは素粒子物理分野が主に念頭に置かれている)をやめる理由はいくつか分類できて

  • 数字の問題としては「博士号取得者数」>「大学教授などのfaculty position 数」のせいだが、個々人が業界を去ろうと決断する理由はもちろんそんな単純ではない。多くの人にとってそれは自分の夢を諦めることを意味するから。

  • 学生の間に自分が向いていない、思っていたほど物理に興味がないと気づいて別の道に進む場合。自分のキャリアを見つめ直すという意味でこれは比較的健全。

  • そうではなく、物理に幻滅 (disillusionment) してやめる場合。これは例えば自分のやってる研究の魅力がわからなくなったとか、アカデミックの政治に嫌気がさすというようなことを指す。物理を続けたいと思ってるけどできないという意味で、こちらはあまり幸福な去り方ではないだろう。

これは理論物理だけでなく、他の分野の人とか企業に勤めている人にとっても多かれ少なかれ当てはまるのだろうとは思う。 でも学問の厄介なところは、それに夢を託す人が多くかつ経済的にはなかなか恵まれないという点にある。

やはり働き方が合うかどうかは大きいなと思う。大学院を卒業してポスドクになれば、数年は任期付きの職を(主に海外で)転々とすることになる。 裁量労働だからかなり自由に働けるけど、その分平日と休日の区別がなくなっている場合も多い。 こういうのを良しとするかどうかは人によるし、20代中盤から後半という色々ある時期には考え方が変わる人も多いだろう。 たとえ優秀な人でも厳しいポスト争いに疲弊している様子を見ていると、結局は研究への愛を持ち続けられるかどうかかなという気がする。

で、今年のうちに進路をよく考えないとと一月に思って、何も決断せずに三ヶ月が経ってしまった。 さすがにそろそろ何らかの行動を起こさないといけないんだろうけど……

猫のゆりかご

『猫のゆりかご』(カート・ヴォネガット)を読んだ。

端的に言って傑作だと思う。軽妙で軽薄な語り口、個性的な登場人物、冒頭からつきまとう終末の予感。 全てが僕の感性のど真ん中だった。

物語は「世界が終末を迎えた日」という章から始まる。最高である。 カート・ヴォネガットは一応SF作家と言っていいと思うが、今作に出てくるSF的ギミックはただ一つ、「アイス・ナイン」と呼ばれる特殊な氷だけである。 「アイス・ナイン」は、少量が通常の水に触れただけで連鎖的に全ての水を凍らせて「アイス・ナイン」に変化させてしまう性質を持つ。 口に入れでもしたら、人体はたちまち凍りついて絶命してしまう。 序盤からしつこく存在を示唆されるこの「アイス・ナイン」は、もちろん「物語に銃が出てきたら、必ず発砲されなければならない」に従って世界を滅ぼすことになるのである。

多くを語る必要はないと思うので、気に入った文章を引用する。

「どうして人がでっち上げたゲームなんかしなけりゃならんのかね。世の中には本物がいくらでもあるじゃないか」

「真実は民衆の敵だ。真実ほど見るにたえぬものはないんだから」

「文学による慰めをうばわれたら、人はどんなふうに死ぬと思いますか?」「心臓が腐るか、神経系が萎縮するか、そのどちらかだろうね」

「こんな男には気をつけろ。何かを学ぼうとしてさんざん苦労し、学んだあとで、自分がすこしも利口になっていないと気づいた男。そういう男は、自分の愚かしさにたやすく気づいた人びとを殺したいほど憎んでいるものだ」

土曜日とEmacs

エディタはEmacsを使っている。特に宗教上の理由などはなく、雛鳥が最初に見たものをずっと親だと思うように、初めて使ったものがEmacsだったというだけだ。 Emacsの魅力の一つは拡張性の高さだろう。設定ファイルで自分好みに魔改造できるし、世界中のいろいろな人が色々と便利なパッケージを作っている。

僕の主な用途は数値計算用のコーディングとLaTeX原稿書きだ。 LaTeXというとTeXShopなどの統合環境を使っている人が周りには多いけど、それを見るといつもの逆張り精神が出てきてしまい結果LaTeXにもemacsを使っている。 EmacsにはAUCTeXという強力なパッケージがあって、コマンドの補完等が非常に便利であるし、preview-latexというパッケージと組み合わせると、エディタ内で数式のプレビューもできてすごい。

そういうふうにEmacsを愛用しているわけだけど、プログラミングで食べているわけでもないのでまあ使えればいいやという感じで使ってきた。 それで今日は暇だったので(本当か?)、もうちょっと使いやすくしようと思って色々弄っていた。

テーマを変えたい

デフォルトのテーマは味気ない。適当にググったところ

  • Spacemacs (spacemacsというEmacsの亜種(?)のテーマらしい)

  • Solarized (Macのターミナルのテーマとして紹介されているのをよく見る)

  • Tomorrow (よくわからないけどtomorrowって名前が良い)

あたりが良さそう。コード書きの時はダークなテーマのほうが良い気がするけど、LaTeX原稿書きの時はホワイトの方が読みやすいかなあという気もする。 とりあえずspacemacs-light をデフォルトにした。こんな感じになる。 f:id:predoc:20180120220319p:plain ちなみにpreview-latexを使うとこんな感じでエディタ内に数式を表示できるので、ちゃんと書けてるかどうかチェックするのに便利。

フレームサイズを画面のちょうど半分にできると嬉しいんだけど…

画面の左半分にTeXのソースファイル、右半分にコンパイルしたPDFを表示したいということはよくある。 だから、起動時に自動的にEmacsのフレームが画面のちょうど左半分のサイズになってくれると嬉しい。 特に、複数のPCで同じ設定ファイルを共有しているので、マシンに応じて適切なサイズを自動で選んで欲しい。 もちろんこういうのはコンピュータの得意分野のはずだ。

"emacs サイズ 設定"みたいなキーワードでググると、固定値で横に何文字、縦に何行かを指定する方法は出てくるのだけど、ディスプレイに合わせて調節するやり方がなかなか見つからない。 サイズを取得して、それを固定値のところに入れればいいはずなので例えば次のように書いてみる

(setq half-width (/ (display-pixel-width) 2))
(setq default-frame-alist
    '((left   . 0)
      (top    . 0)                 
      (width  . (text-pixels . half-width)) 
      (height . (text-pixels . 600))))

が、これはうまくいかない。なぜ。Lisp雑魚つらい。 *1

さらにググってみたところ代替案としてautofit-frame というパッケージを使えばよいことがわかった。 オプション等々はこのページを参考にして設定する。 設定ファイル(init.el)には次のように書いた*2

(use-package autofit-frame
  :config
  (add-hook 'after-make-frame-functions 'fit-frame)
  (setq fit-frame-max-width-percent 50) ;最大でも画面の左半分を超えないようにする
  (setq fit-frame-min-width 65) ;ここは適当に65文字
  (setq fit-frame-min-height 70)) ;縦ははみ出ても問題ないはずなので多めの70行を指定

fit-frame-min-widthとfit-frame-min-heightでそれぞれ横と縦の最小値を設定する。単位は文字数(widthの場合)と行数(heightの場合)。 autofit-frame は開くファイルの内容に応じて自動的に横幅を決定してくれる。 横に長々書いてあるコードは横長に表示される。 それを (setq fit-frame-max-width-percent 50) によって長くても横幅が全体の50%を超えないように設定することで、一応望んでいたことはできた。

ベスト・プラクティス…

とにかくググって情報が古すぎず、良さそうに見えるものをコピペして使っているのが現状なので、絶対バッドノウハウが含まれているはずである。 助けて…

追記

こちらの記事を参考にしたところ、以下のようにしても画面半分のフレームサイズにできた

(when (window-system)
  (set-frame-size
   (selected-frame)
   (- (/ (/ (x-display-pixel-width) 2) (frame-char-width)) 1)
   (- (/ (x-display-pixel-height) (frame-char-height)) 1)))

autofit-frameは僕の環境と微妙にconflictして表示が崩れたり、ミニバッファのサイズがおかしくなったりしたのでこのやり方のほうが良さそう。 ただし、なぜか(tool-bar-mode 0)を書いてツールバーを消しておいて、更にこれより後方に上記の設定を入れないと上手くいかない。 内部でどういう手順で設定が反映されるかに依っているのだろうが今の僕には解明できなかった…

*1:というかどのプログラミング言語もまともに勉強したことがない。つらい

*2:通常の(?)require ではなくuse-package を使っている。こっちのほうがモダンらしい。