* SecHack365 2018年度でのおすすめテーマの「Essenの開発」に関する説明
-(by [[K]], 2018.03.18)

** (1)
-[基本事項]
--まずEssenの開発理念に共感できるかどうか確認してください → [[page0004]]

--EssenRev4はインタプリタ型のプログラミング言語です。また動作を高速にするために、JITコンパイラを内蔵します。
---JITコンパイラ=インタプリタを高速化する手法で、実行時にコンパイルする方式。
---単純なコンパイラ方式ではなく、JITコンパイル方式にする理由は、evalなどの構文を許容するためです。つまりEssenのプログラム内で、Essenのプログラム文字列を生成すれば、それをそのまま実行できるのです。

--EssenRev4は当面はWindows用のアプリケーションとして開発され、C言語のみで書かれる予定です。

-[要求スキル]
--基本的には、受講者に合わせて課題を設定するので、高いスキルは要求しません。
--このサイトに書いてあることのうち、''約50%しか理解できなかった''、くらいでも問題ありません。
--とりあえずどんな言語でもいいので、一つくらいプログラミング言語をマスターして、何か作ったことがあれば十分です。それくらいのスキルがあれば、作りかけのEssenを試用して何かプログラムを作り、これは使いやすい、これは使いにくいと感想を言うくらいならできるはずですし、それだけでも非常に助かります。
--もしさらに実力があれば、EssenRev4をLinux向けに移植してもいいでしょうし、この機能が必要だから作ってみた、気に入ったら本家にマージしてくれ、ということも可能です。こうなるともはや共同開発者です。
--さらに上を目指すなら、EssenRev4は生ぬるいので、オレサマがもっといいものを作ってやるぜ!と競争を持ち掛けてもいいです。お互いにいいところをパクり合いながら、最強の言語を目指したいです。

** (2) 進め方のイメージ
-合格したら、できるだけ早くオンラインで連絡を取りたいと思っています。どんなふうにしたらいいのかを一日も早く考えたいので。
-それで最初はその時点での最新版のEssenRev4が手元の環境で動くかどうかのテストをしてもらいます。もし無事に動いたら、Essenではどんな命令が使えて、どんなことができるのかの簡単なドキュメントを作りますので、それを試してみてもらいたいです。
-それで「ここがわかりにくい」「これができたらもっといいのに」みたいな意見をもらいつつ、Essenはどんどんバージョンアップしていきますので、Essenで動くアプリを作ってください。・・・これを繰り返しているだけで、プログラミングスキルが徐々に上がっていくように工夫します。
-それをしている過程で、Essenのソースを読んで改造したくなったら、改造してみてください(したくならなくてもいいです)。改造にあたって、わからないことがあれば、それはいくらでも教えます。
-仮にEssenのアプリを作るだけで終わったとしても、それで何か面白いアプリができればそれは大いなる成果です(ここまではできるように積極的にサポートいたします!)。Essenはこんなことができる、こんなところを言語が助けてくれた、みたいなことを発表できるので、全く問題ありません(それにアプリづくりをしているうちにEssenに対して不満も出るはずで、それが受け入れられてEssenの改良につながったりするので、それもあなたの成果です)。
-Essenの共同開発者やEssenの競合ソフトウェアを作った場合も、もちろん文句なく大いなる成果です。
-そんなイメージで考えています。


** (3) 簡単なQ&A
-[Q] グループでの応募はできないけれど、開発が進行していくにつれて他の合格者と一緒にやりたいって思うことがあるかもしれないですよね。その場合、その人とグループを組んで開発をすることはできますか?またその場合にその人のテーマに合わせたりすることもあり得ると思うのですが、それもOKですか。
--[A] そういう状況になれば、OKできると思います。

-[Q] どうしてもEssenにかかわりたいです。何か裏技はありませんか?
--[A] 実はあります。それはセキュリティキャンプでもほぼ同じ条件で募集していますので、そちらにも応募すればいいのです!(集中開発コースの「言語自作ゼミ」に応募してください」)。もし両方に受かってしまった場合は、キャンプをキャンセルするといいでしょう。文面は使いまわしでいいです。というか全く同じでも問題ありません。そうすれば、さすがの私でも同一人物の応募だと気づきますので、両方に合格させるようなことはしないで、両方に受かりそうになった時はキャンプのほうを落とします(キャンプの選考のほうが後なので、両方に受かるのならキャンプを通してくれ、っていうのは、ちょっと危険な要望です。キャンプにすごい人が殺到したら、両方で落ちてしまうかもしれないので・・・)。
--[注] セキュリティキャンプでは年齢制限や「学生であること」が追加で課される条件ですので、これをクリアできない場合はsechack365しかありません・・・。

-[Q] Essenにかかわるとどんないいことがありますか?
--[A] Essenは現在、開発を開始したばかりのフェーズにあります。この段階から関われば、初期開発メンバーに名を連ねることが可能です。川合は今までいくつかの開発をやってきたことがあり、それらは大成功ではないにせよ、小さな成功は収めています。その実績からいえば、Essenが大成功して従来のプログラミング言語を蹴散らすようなことは起きないと思いますが、でも何の成果も上がらないという可能性は低いように思います。いや、もしかしたらこれが川合の人生の最大の代表作になる可能性はあります(可能性だけですけどね)。・・・まあ一番ありそうなのは、Essenがまた小さく成功して、その成果が他の言語に取り込まれる、くらいでしょうか。そしてその取り込まれる際には、Essenを詳しく知る初期開発メンバーがとても注目されるでしょう。・・・私は、自分がやったことと他人に手伝ってもらったことを厳密に区別しますので、あなたを貢献をうばうようなことはしません。また就職の際に自分の貢献を明らかにするような推薦状を書いてくれと言われれば、もちろん事実に反しない範囲でですが、喜んで協力します。それが私にできる、貢献に対するせめてもの恩返しだと思うからです。

-[Q] 代表作なんかないです・・・
--[A] ここでいう代表作っていうのは、世間に公開したものがあったらそれを書いてね、という意味では「ない」のでご安心ください。自分がこの言語で作ったものの中で、一番よくできたのは○○です、ちなみにかくかくしかじかの内容です、って書いてくれたら十分です!・・・誤解しやすい書き方でごめんなさい。

** 選考に関するコメント
-詳しく書くことはできませんが、私も含めて関係者一同は少しでも多くの選考通過者を出そうと努力しました。特に私はがんばりました。だってそうすれば「この人も是非通したい」をあきらめなくて済むからです。
-選考はハイレベルなものでした。正直言って、これくらいなら通していいと思うと思う人がいっぱいいて困りました。また実力があればそれで通るかというとそうではなく、すごく実力がありそうだけどそれは来年度以降にやりたいことなんだ、ごめん!と思うような内容もありました(でも、このケースは相当に悩みました・・・落ちた人からすれば、そんなの知るかよ、実力に問題がなかったのなら通してくれよ、じゃあどうしろというんだ!って思いますよね。ええ、その通りです。しかし一方で、似たような傾向の人を取ることで指導がやりやすくなって、それならもう一人合格させられるかも、みたいなこともあり、もし来年もこの人が来てくれるとしたら、今年で採るべきと言えるかどうかを自問自答して決めました。来年来てくれればきっとたくさんのことを教えられると思うのです)。
-ということで何を言いたいのかというと、SecHack365で私を指名してくれたけど落ちてしまった人たちは、実力がなくて落ちたのではなく、相対的な競争や、この人はできれば今年ではなく来年以降に!ということで選にもれただけなのです。自信を持ってください。そして通過した人も自分よりも実力がありそうな人も落ちているのだということを忘れずに、是非努力をしてください。
-ということで何を言いたいのかというと、SecHack365で私を指名してくれたけど落ちてしまった人たちは、実力がなくて落ちたのではなく、相対的な競争や、この人はできれば今年ではなく来年以降に!ということで選にもれただけなのです。自信を持ってください。そして通過した人も自分よりも実力がありそうな人が落ちたということを忘れずに、是非努力をしてください(その人が「こんな成果が出たのなら自分が翌年に回されたのもしょうがないな」と思えるように)。


* こめんと欄
-初めまして失礼します。セキュキャンはどのトラックならEssenに関われるというのは有るのでしょうか? -- ''abc'' SIZE(10){2018-04-25 (水) 22:46:07}
-質問ありがとうございます。セキュリティキャンプでEssenにかかわりたい場合、集中開発コースのトラックXの「言語自作ゼミ」に応募してください。他のトラックやゼミではセキュリティキャンプ内でEssenにかかわることはできません。 -- [[K]] SIZE(10){2018-04-26 (木) 19:47:53}
-https://www.ipa.go.jp/jinzai/camp/2018/zenkoku2018_program_list.html#list_d2-x-01 キャンプのページ内ではここに書いてあります。 -- ''K'' SIZE(10){2018-04-26 (木) 19:50:38}
-ご丁寧にありがとうございます、トラックA、X、Yで迷っていてもう少し検討してみようかと思います -- ''abc'' SIZE(10){2018-04-28 (土) 19:18:00}

#comment

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS