68
Arrow Judge Hiromu Yakura

Arrow Judge

Embed Size (px)

Citation preview

Page 1: Arrow Judge

Arrow JudgeHiromu Yakura

Page 2: Arrow Judge

Self-Introduction

矢倉 大夢

@hiromu1996 

灘高校2年生

Page 3: Arrow Judge

Self-Introduction

灘校パソコン研究部 

セキュリティ

競技プログラミング

Page 4: Arrow Judge

Self-Introduction

灘校パソコン研究部 

セキュリティ

競技プログラミング

Page 5: Arrow Judge

Self-Introduction

灘校パソコン研究部 

セキュリティ

競技プログラミング

Page 6: Arrow Judge

Self-Introduction

灘校パソコン研究部 

セキュリティ

競技プログラミング 2011-2013部長

Page 7: Arrow Judge

Self-Introduction

灘校パソコン研究部 

セキュリティ

競技プログラミング

Page 8: Arrow Judge

Self-Introduction

灘校パソコン研究部 

セキュリティ

競技プログラミング

情報セキュリティスペシャリスト

 

Page 9: Arrow Judge

Self-Introduction

灘校パソコン研究部 

セキュリティ

競技プログラミング

情報セキュリティスペシャリスト

最年少合格

Page 10: Arrow Judge

Self-Introduction

灘校パソコン研究部 

セキュリティ

競技プログラミング

Page 11: Arrow Judge

Self-Introduction

灘校パソコン研究部 

セキュリティ

競技プログラミング横浜大会 4位

Page 12: Arrow Judge

Self-Introduction

灘校パソコン研究部 

セキュリティ

競技プログラミング

Page 13: Arrow Judge

Self-Introduction

灘校パソコン研究部 

セキュリティ

競技プログラミング

アジア太平洋情報オリンピック

 

Page 14: Arrow Judge

Self-Introduction

灘校パソコン研究部 

セキュリティ

競技プログラミング

アジア太平洋情報オリンピック

銅メダル

Page 15: Arrow Judge

Competitive Programming

競技プログラミングとは

  

Page 16: Arrow Judge

Competitive Programming

競技プログラミングとは

問題に与えられた条件に従って早く正確にプログラムを書く競技

Page 17: Arrow Judge

Competitive Programming

競技プログラミングとは

問題に与えられた条件に従って早く正確にプログラムを書く競技

Page 18: Arrow Judge

Competitive Programming

競技プログラミングとは

問題に与えられた条件に従って早く正確にプログラムを書く競技

数学、幾何計算機科学、データ構造

Page 19: Arrow Judge

Competitive Programming

競技プログラミングとは

問題に与えられた条件に従って早く正確にプログラムを書く競技

Page 20: Arrow Judge

Competitive Programming

競技プログラミングとは

問題に与えられた条件に従って早く正確にプログラムを書く競技

CPU使用時間メモリ使用量

Page 21: Arrow Judge

Competitive Programming

世界中でいろいろなコンテスト

 

 

Page 22: Arrow Judge

Competitive Programming

世界中でいろいろなコンテスト

 

 

Page 23: Arrow Judge

Competitive Programming

世界中でいろいろなコンテスト

 

 

Page 24: Arrow Judge

Competitive Programming

世界中でいろいろなコンテスト

 

 

Page 25: Arrow Judge

Competitive Programming

世界中でいろいろなコンテスト

 

 

Page 26: Arrow Judge

Competitive Programming

世界中でいろいろなコンテスト

 

 

Page 27: Arrow Judge

Competitive Programming

世界中でいろいろなコンテスト

 

 

Page 28: Arrow Judge

Competitive Programming

世界中でいろいろなコンテスト

 

 

人材発掘の場に

Page 29: Arrow Judge

Educational Uses

教育的にも非常に有用

Page 30: Arrow Judge

Educational Uses

ゲーム製作を目標に始める

 

 

 

Page 31: Arrow Judge

Educational Uses

ゲーム製作を目標に始める

様々なAPIを学ばなければならない

 

 

Page 32: Arrow Judge

Educational Uses

ゲーム製作を目標に始める

様々なAPIを学ばなければならない

GUIプログラミングまで長い時間が

 

Page 33: Arrow Judge

Educational Uses

ゲーム製作を目標に始める

様々なAPIを学ばなければならない

GUIプログラミングまで長い時間が

挫折する

Page 34: Arrow Judge

Educational Uses

競技プログラミングから始める

 

 

 

Page 35: Arrow Judge

Educational Uses

競技プログラミングから始める

入出力の知識だけで始められる

 

 

Page 36: Arrow Judge

Educational Uses

競技プログラミングから始める

入出力の知識だけで始められる

問題を解くたびに達成感

 

Page 37: Arrow Judge

Educational Uses

競技プログラミングから始める

入出力の知識だけで始められる

問題を解くたびに達成感

少しずつ実装力を身につけていく

Page 38: Arrow Judge

Online Judge

競技プログラミングの練習環境

Web上で問題を解くことができる

Page 39: Arrow Judge

Webサーバー ジャッジサーバー

Online Judge

Page 40: Arrow Judge

Online Judge

Webサーバー ジャッジサーバー

Page 41: Arrow Judge

Online Judge

Webサーバー ジャッジサーバー

Page 42: Arrow Judge

Online Judge

Webサーバー ジャッジサーバー

Page 43: Arrow Judge

Online Judge

Webサーバー ジャッジサーバー

Page 44: Arrow Judge

Online Judge

Webサーバー ジャッジサーバー

Page 45: Arrow Judge

Online Judge

Webサーバー ジャッジサーバー

Page 46: Arrow Judge

Online Judge

Webサーバー ジャッジサーバー

Page 47: Arrow Judge

Online Judge

すでにいろいろなシステムが

北京大学 - PKU Online Judge

会津大学 - Aizu Online Judge

Page 48: Arrow Judge

The Problem

Page 49: Arrow Judge

ユーザーが

ホスティングできない

Page 50: Arrow Judge

The Problem

ユーザーがホスティングできない

問題を公開しあって練習したり

コンテストを開催したりできない

Page 51: Arrow Judge

The Problem

セキュリティのために仕方がないと考えられてきた

Page 52: Arrow Judge

それを変えました

Page 53: Arrow Judge

インストールは

超簡単

Page 54: Arrow Judge

# apt-add-repository ppa:hiromu1996/arrow-judge

Installation

Page 55: Arrow Judge

# apt-get update

Installation

Page 56: Arrow Judge

# apt-get install arrow-judge arrow-judge-web

Installation

Page 57: Arrow Judge

Installation

Page 58: Arrow Judge

Technologies

もちろんセキュリティも考慮に

cgroupsでリソース管理

chroot, unshareでアクセス制御

Page 59: Arrow Judge

Technologies

Ubuntu PPAでインストールを簡単に

Webインストーラーも作成

Page 60: Arrow Judge

Features

一般的なオンラインジャッジの機能

CPU使用時間やメモリ使用量の計測

他のユーザーのソースを検索

Page 61: Arrow Judge

Features

ユーザーが問題を作成できる機能

堅牢性を保っているからこそできる

できるのはこのシステムだけ

Page 62: Arrow Judge

Features

コンテスト開催機能

スコアリングシステム

Clarificationシステム

Page 63: Arrow Judge

Features

ジャッジサーバーの分散処理機能

キューに応じてサーバーを追加

コンテスト時だけEC2で増強

Page 64: Arrow Judge

Features

簡単な管理画面

Webからプログラミング言語の追加

ジャッジサーバーの設定

Page 65: Arrow Judge

Demo

Page 67: Arrow Judge

Special Thanks

開発にあたってIPAの未踏IT人材発掘・育成事業の支援を受けました

Page 68: Arrow Judge

Conclusion

このソフトウェアを通じて

日本の競技プログラミング界がもっと活発になってほしい