SecHack365 2020年度 川合ゼミの説明
(1) こんな人を募集します!
- 「SecHack365 2020年度 開発駆動コース 川合ゼミ」では、こんな人を募集します。
- [1]プログラミング言語を作りたい人。
- [2]そのほか川合が興味を持ちそうな開発をやりたい人。
- [2]を選ぶ場合、私が今までどんなことをしてきたのかを知っておく必要があるでしょう。
- 1996年~ V98というエミュレータを開発
- 2000年~ OSASKというPC向けの超軽量型の自作OSを開発
- 2002年~ naskというx86用のアセンブラを開発
- 2003年~ tek5というLZMAをベースにした可逆圧縮形式を開発
- 2005年~ 書籍「30日でできる!OS自作入門」を執筆
- 2010年~ blikeというC言語用のグラフィックライブラリを開発
- 2013年~ OSECPU-VMという仮想マシンを開発(このバイトコードでプログラムを書くと驚異的に小さくなる)
- 2019年~ kcl03というC言語用の基本ライブラリを開発
- 2019年~ kcll00というC言語用のプログラミング言語開発支援ライブラリを開発
- 2019年~ ES-BASICというスクリプト言語を開発
- まとめるとこんな感じです。
- エミュレータ自作、PC向けのOS自作、言語自作、圧縮、理想のCPU命令を考える、ライブラリを作って自身の開発力を底上げ
- [1]でも[2]でも、「自分の開発物を自分で常用しようと思っている人」を私は高く評価します。
- これに関する私の考え方はp20200311aに書いてあります。
- 一方で「これを作ることで〇〇を実証するのだ」みたいなのも私はOKなので、自分で常用しなければ絶対だめだというわけではないです(私もそういう目的で開発することが時々あります)。
- [1]の場合、SecHack365で作るからには、ただのプログラミング言語であるわけにはいきません。セキュリティに配慮した言語を目指しましょう。
- しかし最初からセキュリティを意識して作るのは大変かもしれないで、途中からセキュリティ機能を付与していけばいいと私は思います。
- 自分で作るからには、日々、「こんな言語機能があれば絶対に便利なのに」と思ったことをまず盛り込んで、その上でセキュアにしましょう。
- セキュリティ機能ってどんなことをすればいいの?って思いますよね。私が思いついたことをまとめてあります。→seclang01
(2) 補足
- [Q]プログラミング言語を作ってみたいのだけど、作ったことがないのでできるかどうかわかりません。
- [A]text0010(およびその続き)を読んでみてください。これを読んで「なるほどこれだったら自分でもできるかも」と思えたら、もうOKです。
- TL-03cまで理解できたなら、選考を通る可能性は十分にありますので、「ばっちりTL-03cまでは理解できています!」ってアピールしてください。
- [Q]もう作り始めているのですが、その続きを作る(改良をする)みたいなのでもいいでしょうか。
- [A]それは技術力と熱意の証明だと思うので、大歓迎です!
- むしろこれから作ろうと思っている人も、SecHack365での合格通知など待たずにどんどん作ってほしいです。応募前から作ってほしいくらいです。どこまでできたか教えてください。
- [Q]実力を示すためにコンテストでの受賞歴があったほうがいいですか?
- [A]川合は、コンテストでの受賞などをプラスには見ません(もちろんマイナスにもしませんが)。だから優勝したとか高得点を取ったなどのアピールは重要ではありません(もちろんそれでもアピールしたければしてもいいですが)。そうじゃなくて、そこでどんなものをどうやって作ったのかをアピールしてください。・・・結局、コンテストなどの受賞歴は、私からすれば他人の評価でしかないのです。私は私の基準で評価したいので、他人にどう評価されたことがあるかは関係がないのです。
- [Q]川合ゼミでは、わからないことは何でもたくさん教えてもらえると思っていいでしょうか?
- [A]プログラムの開発の仕方は、何から何まで川合が教えてくれる!という「おんぶにだっこ」な対応は期待しないでください。トレーナーからの指導がなくても、6割くらいは自分で調べて作れるスキルがあるのが前提です。・・・とはいえそれだけだと言語の作り方がわからなくて、言語自作にチャレンジできない人が増えそうだったのでtext0010は用意しました。これを読めばできそうな人が言語開発のテーマを選べます。
- 「6割どころか、全部自力でできると思います!」の人も大歓迎です。私はさらにきっかけを与えて完成度を120%や200%にすることを目指します。
- [Q] グループでの応募はできないけれど、開発が進行していくにつれて他の合格者と一緒にやりたいって思うことがあるかもしれないですよね。その場合、その人とグループを組んで開発をすることはできますか?またその場合にその人のテーマに合わせたりすることもあり得ると思うのですが、それもOKですか。
- [A] そういう状況になれば、OKできると思います。
- [Q] 代表作なんかないです・・・
- [A] ここでいう代表作っていうのは、世間に公開したものがあったらそれを書いてね、という意味では「ない」のでご安心ください。自分がこの言語で作ったものの中で、一番よくできたのは○○です、ちなみにかくかくしかじかの内容です、って書いてくれたら十分です!・・・誤解しやすい書き方でごめんなさい。
- [Q] 応募時に作りたいと思っていたものと、選考合格後に作りたいものが微妙に変わってしまったのですが大丈夫でしょうか?
- [A] どうして作りたいものが変わったのか、その話は面白そうなのでぜひ熱く語ってもらいたいですが、その上で、たいていはOKできると思います。・・・一応書いておきますが、合格するためにもともと興味もないような開発テーマを書いてみても、それはほぼ一発で見抜かれて落とされますのでそんなセコイことは考えないでくださいね。
- とまあそういうことですので、作りたいものが変わったらどうしよう、今後約1年間もこのテーマに縛られるとしたら慎重に書かないといけないかな、と身構える必要はありません。
(3) 掛け持ちについて
- 私としては、他のことと掛け持ちしない人が好ましいと思っています。他のイベントにも積極的に参加しています、したいです、っていう人はきっと時間が足りなくなって、成果が中途半端になりやすいと思うのです。まあそれも人生なので仕方ない面はありますが、できればSecHack365に集中できそうな時期を選んで応募してくれたらうれしいです(まあ多少のことなら並行してやってもいいのですが・・・)。
- また大学などの研究テーマ(今やっているやつ)をそのまま持ってこられたりするのは少し困ります。なぜなら、どこからどこまでがSecHack365の成果なのかわかりにくくなるからです。趣味で前からコツコツやっていた、とかはOKです。それなら成果の区切りがあいまいになっても、大きな問題にはならないからです。同じ理由で、今年の未踏でやっているテーマをそのまま持ってきた、というのも困ります。未踏に限らず、他のイベントとの掛け持ちはすべて該当します。
- もしこれらの掛け持ち問題がありそうな人は、申し込みフォームで自己申告して、かくかくしかじかの理由でうまく切り分けられるので心配しないでくださいって教えてください。
- まあでも、掛け持ちするくらいなら、そっちをメインで最後まで頑張るほうがいい結果になりそうな気はしますよ!「二兎を追う者は一兎をも得ず」っていうじゃないですかー。
こめんと欄