月を見上げています

アウトプットのために定期的に書くようにしよう(自戒)

設定に手間を掛けずにシェルを便利にしたい

dotfilesを書いたり管理したりは面倒、かつだいぶ時間がかかります。その手間を嫌ってか、サークルなんかで周りを見ているとデフォルトの見辛くて不便な状態で使っている人をちょくちょく見かけます。

なのでできるだけ手間を掛けずにシェルを便利にするための手順を書きました。

Arch Linux以外のユーザ向け読み替え情報

Arch前提で書きますが、紹介しているプラグインはすべてGitHub上にソースがあるのでgit cloneしてきてsourceのパスをクローンしたディレクトリ/プラグイン名.zshみたいな形にすれば動きます。

Arch Linuxユーザ向けの要約

👇これで3分で終わり!!閉廷!以上!皆解散!

sudo pacman -S zsh zsh-completions grml-zsh-config zsh-syntax-highlighting zsh-autosuggestions
echo 'source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh'  >> ~/.zshrc.local
echo 'source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh' >> ~/.zshrc.local
echo 'source /usr/share/doc/pkgfile/command-not-found.zsh' >> ~/.zshrc.local
chsh -s $(which zsh) $USER

詳細

zsh

wiki.archlinux.jp

入れましょう。というかこの後の話を全部zsh前提にしてしまいました。

grml-zsh-config

これがあるとないとで大違いです。tab補完の際に2度押しで矢印キーでの選択、cdを打たなくてもパスだけを打ってディレクトリ移動、pgupキーで途中まで打ったコマンドを履歴から補完、などなどアルティメット便利です。

ArchのLive ISOにも入っています。

Arch Linuxユーザならpacman -S grml-zsh-config、そうでないなら

$ cd ~ && wget -O .zshrc https://git.grml.org/f/grml-etc-core/etc/zsh/zshrc

注: 変わっているかもしれないので最新情報はここを見る。上記コマンドは既存の.zshrcを消してしまいますがこの記事を読んでいる人は元々書いていないか、見てわかるので大丈夫でしょう。

シェル変更

そろそろシェルを変えていいと思います。

$ chsh -s $(which zsh) $USER

補完

zsh-completionsを入れます。Ubuntuにも同名でパッケージがあるらしい?正直要るのかよくわかってません。

シンタックスハイライト

zsh-syntax-highlightingを入れます。Arch以外ならこちら:

github.com

インストール後.zshrc.localにsourceを追加します。Archの場合は:

source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh

サジェスト

zsh-autosuggestionsを入れます。Arch以外なら:

github.com

sourceを追加します。

source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh

コマンドが見つからないときのやつ(Arch)

Ubuntubashに標準であるやつです。

source /usr/share/doc/pkgfile/command-not-found.zsh

参考URL: pkgfile - ArchWiki

プロンプト

(おそらく)grmlのおかげでプリセットのプロンプトがあります。promptと打つとヘルプが出てくるので詳細は割愛しますが、prompt fireなどと打って気に入れば.zshrc.localにそのコマンドそのままを追記しましょう。

オプション: powerlevel10k

プロンプトのセクションで飽き足りない人向けです。ArchならAURにあります:

$ paru -S --devel zsh-theme-powerlevel10k-git

sourceを追加して、

source /usr/share/zsh-theme-powerlevel10k/powerlevel10k.zsh-theme

そうしたらexec zshでウイザードが起動します。詳しい話はGitHubを見てください:

github.com

ヨシ!

ゆかりさん色プロンプト
いい感じになっているのではないでしょうか。

令和5年度(2023年度) 筑波大学情報学群情報科学類 編入受験記

表題の通り筑波大学情報学群情報科学類の編入試験に合格しました。受験の際には検討・出願・受験のいずれの段階でも先輩方のブログ等に大きく助けられましたので、自分もまた志願する方々の助けの一つになればと受験記を残しておきます。

結果

前述の通り合格しました。

動機

 現役で前期筑波に落ち後期新潟大学に受かったのが3年ほど前、筑波を諦めきれず浪人しましたが持ち前の飽きっぽさと怠け癖で全く勉強をせず、親も当然そんな有様では2年目を許すはずもなく、ひとまず何もしなくても受かりそうな会津大学に入学しました。 未練というか心残りのような気持ちがなかったと言えば嘘にはなりますが、入学当初はちゃんと4年間通って、コンピューターに関する知識を更に吸収して卒業するつもりでいました。

 その決意をへし折ってくれたのが授業内容でした。余りぐちぐち言うのもなんですが、会津大学に在学している1年と半年ほどの授業の中では、アルゴリズムとデータ構造I以外のコンピューター系の授業はすべて薄味すぎて、全く「何かを学んだ」という感覚がありませんでした。コンピューター系の授業はどれも独学したほうが数倍効率が良いものか、あるいは既に知っている知識を教えてくれるようなものでした。

 年に(確か)二度ほど行われる学生教員意見交換会では先輩方や同級生たちがこのような不満を学校側にぶつけるものの、学生からの要望に対する大学側からの回答はおおよそ「検討している」「難しい」と要約されるようなものでした。学生による授業アンケートもありますが、意見が反映されているとはとても思えませんでした。そんなこんなで少なくとも在学中に改善されることはないと考え、脱出する方向に舵を切ることにしました。

 ただし、念の為書いておきたいのですがすべてが役に立たない授業というわけではありません。全くの初心者に対する授業としては役に立つものもありましたし、前述のアルゴリズムとデータ構造Iなどはとてもためになりました。

スペック

会津大学コンピューター理工学部 GPA だいたい3.6/4.0くらい

数学力

 浪人時に受けた共通テストは数学I/A, II/B合わせて100点行くか行かないかくらいのクソザコナメクジでした。会津大のB方式では数学は最低点だったらしいです。

英語力

 大学一年の夏に受けたTOEIC IP(紙のやつ)で865でした。

プログラミング力

 Atcoderでは灰コーダー(389)です。特にプロダクトとかも作ったことがありません。

受験勉強

 最初に書きますが、ここに書く勉強方法は反面教師にするか受験の前日に眺めて「こんな勉強量でも受かった人間がいるんだから自分も受かるはず」みたいな使い方をしたほうが良いと思います。

英語

 何もしていません。情報科学類は730で満点という話だったのでよほど失敗しない限りは、(点数が落ちたとしても)満点換算に足りるくらいの点数が取れるだろうと考えて、前日にちゃんと寝て受けたら935でした。

 IPテストの結果は利用できないので注意しましょう。

情報

 何もしていません。試験の3〜4日前くらいに過去問を見て解けるかな…?と焦っていましたがなんとかなりました。

 情報の対策としてはAOJのALDS1が良いのではないかと思います。傾向としてそこまでアルゴリズムに振った問題は出ないようですが、基礎的なデータ構造は非常に有用かと思います。

数学

 3月に先輩から徹底研究過去問特訓を頂いて、その後ずっとモチモチしていたら2ヶ月以上経っていました。

 5月末に募集要項を見直したところ試験を7月終盤と勘違いしていたことに気づき(それでも大して変わらないが)、急いで徹底研究を開いて範囲のページ数を数えたところ150ページほどありました。30日で終わらせるには一日5ページほど進めなければいけない計算です。加えて先人のブログによれば過去問特訓もしたほうがいいと書いてあります。俄に危機感が巻き起こり全休や授業の後を利用して勉強を始めました。

 しかし前述の怠け癖と授業後の疲れによる寝落ちで全く勉強は進みませんでした。6月も1/3が過ぎた頃にまだ20ページも終わっていなかったと思います。やばいやばいと思いGoogle Keepに進捗をメモっていたのですがなぜか6/10と6/14の二行しか書いていません。

 結局線形代数は7月頭になってなんとか一周できたものの、微積分に関しては級数は手を付けられず、他の単元も急いで終わらせたため理解度が怪しい有様でした。

 今考えると、線形代数の対策が間に合い、かつ本番で解けた(後述)のは、会津大学線形代数Iを担当していらっしゃった浅井和人先生の授業と、その資料のおかげと言っても過言ではないと思います。高専のカリキュラムがどのようなものか知らないのでなんとも言えませんが、線形代数の入門を勉強するのであればこれを利用するのが一番だと思います。

 Googleで「k-asai class」と検索すると出てくるのでリンクを貼ってしまいますが、こちらのLinear Algebra I txtとLinear Algebra I classがそれです。(e-verは英語版)

受験前

受験1週間前くらい

 前述の数学の学習が全く追いついていなかったせいで、精神的にめちゃくちゃ病んでいました。勉強時間を確保するためDigital Wellbeingを用いてよく利用するアプリに時間制限をかけていたのですが、寝る直前に病みツイをするためだけに制限を解除するほどでした。試験が近づくほどTwitterの利用時間が伸びていきました。寝る前にスマホを見るので生活リズムもどんどん狂っていきました。

 また勉強が間に合わなすぎて、TOEICの満点が今回から900にならないかな〜などと考えたりもしていました。考える時間があったら勉強したほうが良かったと思います。

 あと移動のための切符を買ったりしました。

受験2〜3日前くらい

 一時的に生活リズムが治っていました。一周したとかではなく、寝る前にスマホを見ることによって疲れが蓄積され爆発したせいです。自分は寝不足になると圧倒的にパフォーマンスが落ちるので、このリズムを維持しようと心がけました。一方で勉強は一日分遅れることになり発狂していました。

 情報の過去問を見てこれ本番で解けるかな、とだいぶ不安になっていました。

前日

 落ちた際のダメージを最小化すべく受験を家族と先輩一人以外に相談していなかったため、公欠等は取っていませんでした。受けないと落単する英語の中間があったのでそれを受けてから30分後の電車で向かうつもりでした。昼10時頃に12:30の目覚ましをかけて布団に入り起床したら13:30でした。人生二度目の落単です。

 焦燥した手で教授に懇願のメールを送り、リュック一つに収まる荷造りをしました。残念ながら受けなかったからといって早い電車があるわけでもなく、トボトボと予定通りの電車に乗り、新幹線に乗り継ぎ、また電車に乗り換え、TXに乗って研究学園駅前のアパホテルに着きました。

 着く時間が遅いので前日の受験会場の下見はできませんでした(歩いて疲れるよりは休息をとる方針です)。翌日にエンカする予定だったnamachanさんにラーメン屋さんを教えてもらい、夕食を摂って早めに床に就きました。

当日

 3時頃に寝苦しくて起きてしまい結局4時間未満しか寝れませんでした。最悪です。それでも起きているのはまずいので、目だけ瞑って何も考えないようにして眠ろうと試みていました。

 結局朝食時間まで寝れず、のそのそと一階に降り多めに朝食を盛り付けて部屋で食べました。だいぶお腹いっぱいになりました。

 TXとバスで試験会場に着くと入室待ちで長めの列ができていてびっくりしました。後から知りましたが倍率は7倍くらいだったそうです。

 試験場に入ってしばらくは、突っ伏して睡眠不足を補おうとしていました。しかし眠気が一向に来ないので諦めて徹底研究をさらい読みしていました。試験時間直前にラムネ(隠語とかではなく、コンビニで80円くらいで売っているアレ)をボリボリとお茶で流し込みました。

試験内容

数学1

 級数の問題であることを確認して後悔と焦りがやってきました。徹底研究の級数の部分は読むだけでもしておけばよかったと思いました。30秒くらい考えて一切方針が立たなかったので、全部終わってから戻ってくることにして白紙のまま数学2に進みました。

数学2

 一瞬ギョッとしましたが普通の行列の問題でした。やるだけだったと思いますが、どこかで基本変形をミスったのか最後の固有値が一つ出ませんでした。8〜9割くらいだとは思いますが、変形をどの段階でミスったのかで大量失点がありえて、終わった後は戦々恐々としていました。

情報1

 問題文が3ページにコードが2ページあり加えていきなりエントロピーの式が出てきてビビりましたが、数学1が解けなかったことから情報を解けなければ落ちる、という危機感で食らいつきました。最初こそびびったものの、しっかり問題文を読んでみれば大したことはなく順に追っていけば解けました。ミスがなければ10割だと思います。

情報2

 また初見の概念が出てきてビビりましたが、(1)〜(4)までは異様に簡単でした。ちゃんと流れに沿って行けば問題ないと思います。(5)のみわからず適当に書きましたが多分間違っていると思います。8割?

試験後

 数学2で1時間かけてゆっくり解いていたので数学1に戻る時間はなく、結局白紙で提出しました。下書き用紙も回収されるのかと思い、名前の書いていないものに記入しようと手を挙げたのですが、回収されませんでした。道理で監督官の先生が挙動不審だったわけです。

 終わった後は、どう甘めに考えても230点も行かず落ちたと思って落ち込んでいました。とりあえず北に向かいnamachanさんと合流してラーメン屋さんに案内していただきました。実はnamachanさんにも編入受験のことは相談していなかったのですが、どんな用事で来たのか尋ねられてヒュっとなりました。落ちたと思っていたので隠さねばと、咄嗟に「研究学園駅の方でイベントがありまして〜」と嘘をつきました(ごめんなさい)(イベントって何?)。

 バスが早め(新宿駅17:00発)だったので、食べ終わった後は歩いてつくば駅に向かいました。道中SFの話などをしていました。つくば駅でTXに乗り、電車とバスで6時間ほどかけて帰りました。

おわりに

 なぜ受かったのかわかりませんがひとまず嬉しいです。入学手続きをミスらないようにしないと……。同時に入学される方、coins21の方々、来年度よりよろしくお願いします。