userland of horizon2k38

原理・技法・ツール

慶應義塾大学 環境情報学部の春AOに合格した

人生 : 大学生編が始まろうとしている

中卒(高卒認定)から巻き返しを図り, 慶應義塾大学環境情報学部 (SFC) に春AOで合格した. 自分のような境遇の人間に向け, 受験から合格までを記す.

受験前の状態

自分は大学に行くか/行かないかを決めかねていたのだが, その理由は大きく分けて2つ存在する.

1つめに, 自分が最もやりたいこと, それは研究であったということだ. "大学というやつは必修授業が多く, そこまで好きなことに取り組む時間が無いらしい" そんな話を聞き及んでいたため, 時間的制約の面から不安があった. そのため, エンジニアとして第一線で活躍している大人数名に助言を仰いだところ:

  • 大学生の籍だけでも持っておいたほうがよい
  • 私立大学なら必修も(ある程度)少なく, やりたいことに取り組みやすい

という解答を得た. 納得の得られるものであったため, ここで進学を決意した.

個人的には, 学生籍を持っていないことを後悔したことが多々ある. 例えば, 高レベルな低レイヤー系の講義を受けることができるセキュリティ・キャンプへの参加資格が無い. SNSのTLに面白そうな講義の様子が流れてくるたび, 苦しい気持ちになったことを覚えている. 同様に, 高校生対象の研究プログラムに参加できなかったり, 様々なサービスの学割を当然ながら使用できなかったりした. 全くもって面白くない話である.

2つめに, 学費を支払う能力が無かったということ. ぼくの実家は細く, 両親ともに中卒だ. 学費の援助を打診してみたものの, 現在の経済状況では厳しいらしく, 謝罪されてしまった. 自力で稼ごうにも, 専門とする分野の特性上なかなか仕事が見つからず, かなり絶望の状況だった. 仕方が無いので奨学金を駆使し, なんとかやっていこうと覚悟を決めた.

一次選考の免除

悩んだ結果, SFCを受験することに決めた. 未踏ジュニアの同期が複数人進学していたし, 多様なジャンルを学べ, 尚且つ好きなこともできるという良い噂を聞いていたからだ. 未踏ジュニアのスーパークリエータは一次選考が免除されるのもうれしいポイントだ. 一次選考が免除されるといっても, 書類(いわゆる自己推薦書)は通常の受験者と同じものを書く必要がある. 0次選考とでも言うべき受験費の振込みを行い, それらの作成を開始した. しかしながら, この間も学費の不安が常に付き纏っていた.

未踏IT

そんな中, 詳しくはこの記事を参照してほしいのだが, 未踏IT人材発掘・育成事業というものに採択された. 好きにコードを書きながら金銭を得る, という夢のような話を実現してしまったのだ. これなら大学の学費を自力で支払いつつ, 生活を維持できる.

副次的なものとして, 未踏同期のSFC生であるたーるさんからSFCに纏わる助言を得ることができた. 例えば, 9月入学を避けるべきだ, ということを教えてもらった. SFCのAOでは4月入学/9月入学を選択できるのだが, ここには書かないものの問題が複数あるらしく, 最終的に4月入学を決定した.

また, 期限がギリギリだった自己推薦書のクオリティ・アップを手伝ってもらい, 締め切り30分前に提出できた. 非常にありがたい話である.

二次選考 : 面接

2024-07-20*1, SFCのα館で面接は行われた. 不思議と緊張しなかった. 未踏ジュニアの成果報告会より平気だな, と考えながら順番を待った. 係員に呼ばれ, 該当するドアを開けた瞬間から面接が始まった.

面接の結果として, 未踏IT二次選考ほどの手応えがあるわけではなかった. 聞き間違いが複数回発生し時間を無駄にしてしまったし, 抽象概念を説明するのに若干の難を感じた.

1つ挙げるとするならば, 印象に残っている会話がある. ある面接官に:

伊組さんは頭の切れる方だと思うのですが, 小中時代友人とどのように付き合っていましたか? 知識や知能のレベルに差があると辛い部分があるのでは?

と聞かれたことだ. 確かに小学校の低学年時は辛かった部分がある. 話は噛み合わないし, とにかく退屈だった. でも, 目標に対する理念であったり, 趣味との向き合い方を見てみると共通項が存在することに気がついた. 技術や学問に関する議論*2は出来ないかもしれない. ただ, 遊んだゲームやアニメなどの感想であったり, モノづくりに対する情熱などは共有して楽しむことが出来る. それらを見出すことで楽しく過ごせた, と回答した.

結果

とまあ, 面接が(手応えは微妙だったが)無事に終わった. 面接日から僅か3日で合否が出るので, あまり考える時間はなかった. 落ちていたら筑波ACか一般受験を頑張ろう, とは思っていた.

そして当日, 間髪を入れずに勢いのままページを確認した. 合格だった. 思っていたより嬉しかった自分に驚いた. 意外と人生なんとかなるなあ, という実感を得た.

仕事

実は, 二次選考の少し前に(未踏つながりのおかげか)仕事を見つけることができた. 現在はその企業でCやC++を書いている. 学費や生活に対する余裕が更に生まれたし, 業務も今のところ楽しい. これに関しては運が良かったのだろう.

結論

この2ヶ月で中卒ニート危機を脱し, { 未踏採択, 職, 大学合格 }を得ることができた. AO入試という制度には賛否あるが, 専門とする分野があり, やりたいことのある自分のような人間にとってはありがたいものだと感じる. エッジケースなのだろうが, やりようによってはチャンスを掴むことができる, ということを伝えたい. これからも頑張っていこう.

*1:当ブログではISO 8601を採用している

*2:これができる未踏は最高に楽しい. 生を実感する

未踏IT(2024)に採択された

2024 未踏ITに採択

当Blogでの報告が遅れたが, 未踏IT人材発掘・育成事業に採択された. IPA公式からの概要については, 未踏IT人材発掘・育成事業:2024年度採択プロジェクト概要(伊組PJ)を参考にしてほしい.

なにをつくるか

なにをつくるか, 簡単にまとめると:

  • Capability-Based MicrokernelであるA9N
  • A9NをコアとするPOSIX-CompatibleなOSであるKOTIO
  • そのためのUser-Level Memory Management System (ULMM)

これらを実装する.

A9N

A9Nは, ぼくが未踏ジュニア時代から開発しているMicrokernelだ. 未踏ではこのKernelをObject-Capability Modelというセキュリティモデルを用いてCapability-Basedなものへ書き換える. Capabilityというのはオブジェクトに対する操作権限を表すトークンのようなものだ. 従来のセキュリティモデルとは異なり, 最小特権の原則を満たして安全に特権操作できる.

Capabilityを用いたMicrokernel/OSというのは昔から存在する. 古くはHydraやKeyKOS, そして現代においてはTSのseL4やGoogleのZircon, そしてHuaweiのHarmony Kernelなどがある.

KOITO

KOITOはA9N上に構築されるシステムだ. A9NはIPCを主体とするシステム*1であり, UNIXLinux由来のKernel-Level API : システムコールは持ち合わせていない. そのため, KOITOはそれを扱いやすくするためのWrapper的側面を持つ. POSIXシステムコールはUser-Levelで実現される. そのため, Hookも自由自在であり柔軟なシステムとなる.

ULMM

既存のシステムであるUNIXLinuxは, メモリのFrame単位で見ればBuddy Systemを持つ. また, Kernel-Object単位で見ればSLAB/SLOB/SLUBをKernel-Levelで持つ. Kernelに必要なデータをユーザーに漏らさないため, Kernel自体で機構を持つ, というのは自然なことのように思える. 実際, 過去多くのMicrokernelではKernel内でメモリのAllocationを実行していた. これは純粋なMicrokernelでは無いように見えるし, 未踏ジュニア期間中ずっとそのように感じていた.

Capability-Based MicrokernelではKernelの情報を漏らさず, セキュアにFrameやKernel Objectを管理できる. 抽象メモリCapabilityを用意して, それを必要なObjectへ分割する操作を実装すれば良いのだ. この美しい仕組みにより, Buddy SystemやSLAB/SLOB/SLUBなどをServerとしてUser-Levelで実現できる.

思想

結局のところ, 美しく純粋なMicrokernel*2を書きたい, というモチベがこのプロジェクトを始めたきっかけだ. その点においては未踏ジュニアと何も変わらず, 低レイヤー x ソフトウェアアーキテクチャ というアイデアを組み合わせただけに過ぎない. 夢を語るとするなら, いずれLinux Kernelを置き換えられるような存在にしていきたい.

*1:Microkernelなので当然

*2:要するに, ぼくのかんがえたさいきょうのMicrokernel/OS

未踏IT(2024)の二次審査を終了した

未踏IT

詳細は前回の記事を参考にしてほしいのだが, 要するにIPAのやっている 好きに開発をすると, なぜかお金がもらえ, メンタリングを受けられる というものである. 自分は一次 (書類審査), 二次 (面接/プレゼンテーション) *1 という二段階審査のうち, 一次審査を通過したため二次審査に進んだ.

二次審査フロー

1. メール

一次審査の結果通知メールには:

  • 二次審査の会場
  • 仮の日付/時刻
  • 詳細情報を記載するためのフォーム
  • プレゼンの形式
  • 審査の詳細が書かれたドキュメントへのリンク

が記載されている.

2. フォームの記入

  1. で通知されたフォームには:

  2. 都合のよい時間帯

  3. 当日連絡先
  4. 参加方法
  5. 使用機材

を記入する.

会場は東京のセミナールームだった. 自分は東京都に在住しているので現地参加を選択したが, 参加が難しい場合に備えZOOM参加が許可されている.

フォームに詳細情報を記入すると, 確定された日付/時刻と, スライド共有用リンクの記載されたメールが通知される.

3. プレゼンテーションの準備

二次審査で唯一残念な部分は, 準備時間が極めて短いことである. 自分の場合, 10日しか与えられなかった (通知 : 4/11, プレゼン : 4/21). そのため, やや急ぎ足でプレゼンを仕上げる必要がある. 未踏ジュニアでやっていたようにGoogle Slideでスライドを作成し, 5回ほど練習をした. ここでポイントなのだが, 出来れば第三者にフィードバックをもらったほうがよい. 自分だけでは気付けない改善すべき箇所というのは存在する.

4. プレゼンテーション

会場へ到着後, 同意書に署名して控室にて出番を待つ. 本会場に1組ずつ入れ替わるような時間設定がなされているため, 15分程度の待ち時間が発生する. この時間はどう使ってもよい. *2

出番がやってきたら自分の発表に集中するだけだ.

緊張しすぎず, ある程度の平常心を保つことが重要である. 未踏ジュニアの成果報告会で極度の早口になってしまったことを反面教師として, ゆっくりと話すことを意識した.

自己評価

結論からいえば, この上なく最高のプレゼンができた. 特に, ゆっくり話すこと を意識したのが大きかった. 人間は緊張すると早口になってしまいがちなので, そこを相殺できた. PM陣とも技術的な質疑ができ, かなり盛り上がった.

笑顔で会場をあとにした. 悔いの残らない二次審査であった.

おわりに

あとは最終結果を待つだけだ. 採択者には5月下旬に通知されるらしい. また, 合否関係なしにフィードバックの書かれた書面が郵送されるという話もある.

結果はまだ分からないが, やれることはやった.

*1:未踏ではオーディションと呼んでいる

*2:参考までに : 自分は平常心を保つため, スライドの軽い確認後はSNSを閲覧して時間を潰していた

未踏IT(2024)に応募し, 一次審査を通過した

忘れないうちにメモしておきます.

未踏IT

IPAがやっている事業として 未踏IT人材発掘・育成事業というものがある. 端的にいえば 好きに開発をすると, なぜかお金がもらえ, メンタリングを受けられる というものである. *1

世の中, 探してみると意外にもうまい話というのはあるものだ. とはいっても, 当然ながら二段階の審査が行われ, 篩にかけられる. 応募者全員が採択されるような甘いものではない. 倍率は平均して6倍を超える.*2

自分はその兄弟事業ともいえる未踏ジュニア をしていたので, 応募は必然ともいえるものだった. 未踏ジュニアのメンターは全員が未踏事業の卒業生で, ボランティアによって運営されている (IPAが母体ではない). そのため, メンターによる現役時代の話が聞けたり, 提案資料のフィードバックを受けられたりと, ステップ・アップに最適な土壌となっている. 自分もその例に漏れず, 提案を練るための思考整理過程を補助してもらったりした.

一次審査フロー

1. エントリー

いきなり提案書を送りつけるわけではなく, まずはエントリーをする必要がある. ただ, それほど難しい作業ではない. メールアドレスを登録して, 送られてきたGoogle Formに必要事項を記入するだけだ. フォームに対して記述した内容のコピーはメールに送信されるため, あとから確認できる.

ここで注意なのだが, Gmailを使用している場合, コピーは "ゴミ箱"に格納されてしまっている可能性が高い. 当初届かず不安になり, 何度も受信ボックスや迷惑メールフォルダを確認したのだが, それらは結果的に無駄な行いだった. "ゴミ箱"の内容は30日で自動削除されるため, 十分に気をつけてほしい.

2. 提案書の作成

提案書というのはそのままの意味だ. 自分が未踏で何をどのように作りたいか, 8ページ程度で正確に記述する. PDFで出力さえできれば恐らく何を使って書いてもよい (自分はGoogle Documentを使用した). 最小限のテンプレートが提供されるので, 大半はそれを使うことになるだろう.

提案書の作成には時間をかけ, 準備を怠らないのが一般的だ. しかしながら, 自分の場合はなかなか着手できなかった. その大きな理由として, やりたいことがあまりにも多すぎる というのがある. 自分は多趣味で, ITに限定しても多種多様なことをしているのだが, 各分野で成し遂げたいことがあった, というかある. (これに関しては, 世界があまりにも面白すぎるのが悪い.) 多重応募は認められているが, それは1つの提案書に対する質とトレードオフになる.

また, 自分が締め切り-Drivenな人間であることも大きく影響した. これを"夏休みの宿題パラダイム"と呼んでいるが, 小学生時代から未だに脱せていない. そのため, 最終的に書き始めたのは応募期限の二日前だった.

提案書は, 未踏IT人材発掘・育成事業公募概要 及び 公募要領 を読み込んで作成することを強く推奨する. 何を書かなければならないのか, より詳細な部分をそこで得ることができる. おそらく, これを読んでいなければスタートラインにすら立てない.

3. 提案書の送信

1 のエントリーを終えると, Google Driveの共有フォルダがURLのかたちで共有される. そこへ, PDFとして出力した提案書と, 提案書の補足となる動画資料をアップロードする.

問題はありつつも短期集中型のアプローチはなかなかうまくいった. 上記のように, 提案書と簡単な動作デモを共有し, なんとか期限の15分前には完了できた.

期限ギリギリ部

この手の成功体験が"夏休みの宿題パラダイム"から脱せない原因なんだろう. 法的には成人しているのだから, どこかで大きく失敗し, 学びを得る必要があるとは思っている. *3

尤も, 小さな失敗はあった. 期限の終了後に提案書を見返していたところ, 大きめなtypoを発見した. *4 あらゆる書類は余裕を持って作るべきだ.

4. 結果の通知

期限から一月ほど経過した昼過ぎに, 一次審査の結果は通知された.

【お知らせ/要回答】2024年度 未踏IT人材発掘・育成事業 一次審査通過と二次審査のご案内(伊組 烈火 様)

これには思わず小躍りした. 通知までの一週間ほど, 体がGmail更新botになっていた自分にとっては, まさに天からの福音だった.

おわりに

二次審査はプレゼンテーション形式で実施される. せっかくのチャンスを無駄にしないことを目標にしよう.

二次審査の記録 : 未踏IT(2024)の二次審査を終了した

*1:もう少し具体的なうれしいポイントは, 未踏ジュニア代表の鵜飼さんの記事 か, ぼくが書いた未踏ジュニアに応募すべき を参照してほしい. 未踏ITと細かな相違はあるが, 方向性としては同一だ.

*2:未踏IT 成果評価報告書

*3:2005年生, この時点で18歳

*4:応募してからtypoに気付くいつものパターン. マジで何なんですかね.

未踏ジュニアに応募しよう

未踏ジュニア

未踏社団という, IPA未踏事業の修了生を中心につくられた社団法人がある. その未踏社団が2016年から開始したのが未踏ジュニアだ. 未踏ITは24歳まで*1, 未踏Advは年齢制限なしで援助をするが, それでは大学生・大学院生・社会人ばかりが採択されてしまう. そのミスマッチを解消すべく, 未踏ジュニアでは応募時点で17歳までに制限されている.

ぼくは未踏ジュニア(2023)の修了生だ. そんな立場から, 17歳以下の才能ある技術者へ向け, なぜ未踏ジュニアに応募すべきかを伝えたい.

経済的支援

最も言及されるのは, やはり50万円の経済的支援だろう. メンターの承認次第で開発の加速資金として使用可能だ. 本や開発マシン, ハードウェア系のプロジェクトならばパーツに使用したりと, その用途は多様である. 常に金欠がちな未成年にとって強大なアドバンテージとなる.

メンタリング

メンターはプロジェクトの進行を円滑にしてくれる存在だ. ただ, その円滑化能力が素晴らしい. ぼくは個々のメンターが持つ言語化能力や抽象化能力に何度も助けられた. プロジェクトの不明瞭な部分やスケジューリングについて, 極めて高水準なアドバイスを得ることができる. 技術面においては, 下記のようなコミュニティと最適な接続をしてくれる場合がある.

コミュニティとして

金銭よりも価値があるのはコミュニティだ. 未踏ジュニアはIPA未踏と同様に, OB同士のゆるい繋がりがある. メンターは全員IPA未踏の出身者なので, それを起点とする繋がりもある.

未踏の採択者, というのは審査を得て決定された人間である. そのため, 分野を問わず一定以上の技術レベルが保たれたコミュニティに参加することとなる. また, IPAの未踏事業は24年, 未踏ジュニアも9年続いている. 今では各地に散らばって活躍している未踏出身者の, 多様な協力を仰ぐことができるのだ.

これは他のコミュニティにない大きな特徴だろう.

ぼくの場合

今にしてみればかなりフワフワした考えだったが, 何となく応募してみようかな, という気持ちはあった. しかし, 毎年のように面倒くさくなってしまい, 結局のところ存在自体を忘れ応募していなかった.

怠惰な生活を送る18歳になる年, たまたま知り合いから応募締め切り日を伝えられた. 応募締め切り日の2日前だったが, それが自分にとって最適な環境だった. 2日で書けるところまで書いてみようということで, 以前から実装を学んでいた"Microkernelとソフトウェアアーキテクチャを組み合わせたようなテーマ"で提案書を作成した. 文章力は乏しいが, 情熱はあった. ずっと思い描いていた構想を実現するための, またとないチャンスだったからだ.

*2

驚くことに, これは一次審査を通過した. 来る二次審査に備え, プレゼンテーションを急いで作成した. *3 情熱を伝えるため, 原稿の類は一切作らなかった.

採択された. 自分の技術力と情熱には自信があった. そのため, 採択されるだろうと思っていた. それでも, ただただ嬉しかった. 何ひとつ実績がない人間にとっての天啓だった. 採択通知のメールを何度も見返した.

それからはひたすらに楽しかった. 同期と過ごした半年間は, 切磋琢磨という言葉そのものだった. 幾つかある合宿でアイデアを交換しあい, プロジェクトの練度を高めていった.

自分一人ではできない経験を積むことができた. ぼくを低レイヤーの道に誘ってくれた恩人に再開できたし, 目標としていたような未踏OBに相談する機会を得ることができた. *4

経済面での支援は非常に役立った. ずっと欲しかった技術書を買うことができた. *5 開発用のマシンも新調できた.

生存者バイアスで, 採択者の視点から良かった部分を列挙しているだけにしか見えないだろう. でも, 採択されなかったからといってメリットが無いと言い切るには速すぎる.

まず, 書いた提案書は未踏ITへ使い回すことができる. *6 それから, 提案書を書くうえで新たな問題点やアイデアを思い付くことが非常によくある. 詳細をある程度詰めなければならないため, 脳内で無視してしまっていた箇所を再考できるからだ. アイデアを推敲し, 他の支援プログラムに応募するための土台となるだろう.

時間がない, というのは言い訳にならない. 過去採択者のうち, 一日二日で提案書を書き上げて採択された例はいくらでもある.

参考までに, ぼくのプロジェクトと発表動画を貼っておく.

jr.mitou.org

youtu.be

結論

17歳以下で作りたいものがあるリエータよ, 未踏ジュニアの提案書を書いて応募せよ. 応募しなければ絶対に採択されることはないが, 応募さえしてしまえばそこにチャンスが生まれる.

おわび

残念ながら今年度(2024)の募集は終了し, 記事執筆時点で採択者が決定されている. 対象者は来年度(2025)の募集に備え, プロトタイプなどの制作を推奨する.

*1:25歳未満

*2:応募締切日!

*3:後日談 : 石井メンター曰く, 提案書の文章はひどかったが二次審査でできそうだと判断して採択したらしい

*4:hikaliumさん, nutaさん, ぬるぽへさん, るくすさん 本当にありがとうございました!

*5:一般に, 低レイヤーの技術書というものは需要が少ないぶん高価である

*6:cf., よくある質問と回答