Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Arrow Judge
Hiromu Yakura
Self-Introduction
矢倉 大夢
@hiromu1996 
高校2年生
Self-Introduction
校パソコン研究部 
セキュリティ
競技プログラミング
Self-Introduction
校パソコン研究部 
セキュリティ
競技プログラミング
Self-Introduction
校パソコン研究部 
セキュリティ
競技プログラミング
Self-Introduction
校パソコン研究部 
セキュリティ
競技プログラミング
2011-2013
部長
Self-Introduction
校パソコン研究部 
セキュリティ
競技プログラミング
Self-Introduction
校パソコン研究部 
セキュリティ
競技プログラミング
情報セキュリティ
スペシャリスト
 
Self-Introduction
校パソコン研究部 
セキュリティ
競技プログラミング
情報セキュリティ
スペシャリスト
最年少合格
Self-Introduction
校パソコン研究部 
セキュリティ
競技プログラミング
Self-Introduction
校パソコン研究部 
セキュリティ
競技プログラミング
横浜大会 4位
Self-Introduction
校パソコン研究部 
セキュリティ
競技プログラミング
Self-Introduction
校パソコン研究部 
セキュリティ
競技プログラミング
アジア太平洋
情報オリンピック
 
Self-Introduction
校パソコン研究部 
セキュリティ
競技プログラミング
アジア太平洋
情報オリンピック
銅メダル
Competitive Programming
競技プログラミングとは
 
 
Competitive Programming
競技プログラミングとは
問題に与えられた条件に従って
早く正確にプログラムを書く競技
Competitive Programming
競技プログラミングとは
問題に与えられた条件に従って
早く正確にプログラムを書く競技
Competitive Programming
競技プログラミングとは
問題に与えられた条件に従って
早く正確にプログラムを書く競技
数学、幾何
計算機科学、データ構造
Competitive Programming
競技プログラミングとは
問題に与えられた条件に従って
早く正確にプログラムを書く競技
Competitive Programming
競技プログラミングとは
問題に与えられた条件に従って
早く正確にプログラムを書く競技
CPU使用時間
メモリ使用量
Competitive Programming
世界中でいろいろなコンテスト
 
 
Competitive Programming
世界中でいろいろなコンテスト
 
 
Competitive Programming
世界中でいろいろなコンテスト
 
 
Competitive Programming
世界中でいろいろなコンテスト
 
 
Competitive Programming
世界中でいろいろなコンテスト
 
 
Competitive Programming
世界中でいろいろなコンテスト
 
 
Competitive Programming
世界中でいろいろなコンテスト
 
 
Competitive Programming
世界中でいろいろなコンテスト
 
 
人材発掘の場に
Educational Uses
教育的にも非常に有用
Educational Uses
ゲーム製作を目標に始める
 
 
 
Educational Uses
ゲーム製作を目標に始める
様々なAPIを学ばなければならない
 
 
Educational Uses
ゲーム製作を目標に始める
様々なAPIを学ばなければならない
GUIプログラミングまで長い時間が
 
Educational Uses
ゲーム製作を目標に始める
様々なAPIを学ばなければならない
GUIプログラミングまで長い時間が
挫折する
Educational Uses
競技プログラミングから始める
 
 
 
Educational Uses
競技プログラミングから始める
入出力の知識だけで始められる
 
 
Educational Uses
競技プログラミングから始める
入出力の知識だけで始められる
問題を解くたびに達成感
 
Educational Uses
競技プログラミングから始める
入出力の知識だけで始められる
問題を解くたびに達成感
少しずつ実装力を身につけていく
Online Judge
競技プログラミングの練習環境
Web上で問題を解くことができる
Webサーバー ジャッジサーバー
Online Judge
Online Judge
Webサーバー ジャッジサーバー
Online Judge
Webサーバー ジャッジサーバー
Online Judge
Webサーバー ジャッジサーバー
Online Judge
Webサーバー ジャッジサーバー
Online Judge
Webサーバー ジャッジサーバー
Online Judge
Webサーバー ジャッジサーバー
Online Judge
Webサーバー ジャッジサーバー
Online Judge
すでにいろいろなシステムが
北京大学 - PKU Online Judge
会津大学 - Aizu Online Judge
The Problem
ユーザーが
ホスティングできない
The Problem
ユーザーがホスティングできない
問題を公開しあって練習したり
コンテストを開催したりできない
The Problem
セキュリティのために
仕方がないと考えられてきた
それを変えました
インストールは
超簡単
# apt-add-repository
ppa:hiromu1996/arrow-judge
Installation
# apt-get update
Installation
# apt-get install arrow-judge
arrow-judge-web
Installation
Installation
Technologies
もちろんセキュリティも考慮に
cgroupsでリソース管理
chroot, unshareでアクセス制御
Technologies
Ubuntu PPAでインストールを簡単に
Webインストーラーも作成
Features
一般的なオンラインジャッジの機能
CPU使用時間やメモリ使用量の計測
他のユーザーのソースを検索
Features
ユーザーが問題を作成できる機能
堅牢性を保っているからこそできる
できるのはこのシステムだけ
Features
コンテスト開催機能
スコアリングシステム
Clarificationシステム
Features
ジャッジサーバーの分散処理機能
キューに応じてサーバーを追加
コンテスト時だけEC2で増強
Features
簡単な管理画面
Webからプログラミング言語の追加
ジャッジサーバーの設定
Demo
Open Source
ソースはGithubで公開中
https://github.com/hiromu/arrow-
judge
https://github.com/hiromu/arrow-
judge-web
Special Thanks
開発にあたって
IPAの未踏IT人材発掘・育成事業の
支援を受けました
Conclusion
このソフトウェアを通じて
日本の競技プログラミング界が
もっと活発になってほしい
Upcoming SlideShare
Loading in …5
×

Arrow Judge

Presentation at U-20 Programming Contest

  • Be the first to comment

Arrow Judge

  1. 1. Arrow Judge Hiromu Yakura
  2. 2. Self-Introduction 矢倉 大夢 @hiromu1996  高校2年生
  3. 3. Self-Introduction 校パソコン研究部  セキュリティ 競技プログラミング
  4. 4. Self-Introduction 校パソコン研究部  セキュリティ 競技プログラミング
  5. 5. Self-Introduction 校パソコン研究部  セキュリティ 競技プログラミング
  6. 6. Self-Introduction 校パソコン研究部  セキュリティ 競技プログラミング 2011-2013 部長
  7. 7. Self-Introduction 校パソコン研究部  セキュリティ 競技プログラミング
  8. 8. Self-Introduction 校パソコン研究部  セキュリティ 競技プログラミング 情報セキュリティ スペシャリスト  
  9. 9. Self-Introduction 校パソコン研究部  セキュリティ 競技プログラミング 情報セキュリティ スペシャリスト 最年少合格
  10. 10. Self-Introduction 校パソコン研究部  セキュリティ 競技プログラミング
  11. 11. Self-Introduction 校パソコン研究部  セキュリティ 競技プログラミング 横浜大会 4位
  12. 12. Self-Introduction 校パソコン研究部  セキュリティ 競技プログラミング
  13. 13. Self-Introduction 校パソコン研究部  セキュリティ 競技プログラミング アジア太平洋 情報オリンピック  
  14. 14. Self-Introduction 校パソコン研究部  セキュリティ 競技プログラミング アジア太平洋 情報オリンピック 銅メダル
  15. 15. Competitive Programming 競技プログラミングとは    
  16. 16. Competitive Programming 競技プログラミングとは 問題に与えられた条件に従って 早く正確にプログラムを書く競技
  17. 17. Competitive Programming 競技プログラミングとは 問題に与えられた条件に従って 早く正確にプログラムを書く競技
  18. 18. Competitive Programming 競技プログラミングとは 問題に与えられた条件に従って 早く正確にプログラムを書く競技 数学、幾何 計算機科学、データ構造
  19. 19. Competitive Programming 競技プログラミングとは 問題に与えられた条件に従って 早く正確にプログラムを書く競技
  20. 20. Competitive Programming 競技プログラミングとは 問題に与えられた条件に従って 早く正確にプログラムを書く競技 CPU使用時間 メモリ使用量
  21. 21. Competitive Programming 世界中でいろいろなコンテスト    
  22. 22. Competitive Programming 世界中でいろいろなコンテスト    
  23. 23. Competitive Programming 世界中でいろいろなコンテスト    
  24. 24. Competitive Programming 世界中でいろいろなコンテスト    
  25. 25. Competitive Programming 世界中でいろいろなコンテスト    
  26. 26. Competitive Programming 世界中でいろいろなコンテスト    
  27. 27. Competitive Programming 世界中でいろいろなコンテスト    
  28. 28. Competitive Programming 世界中でいろいろなコンテスト     人材発掘の場に
  29. 29. Educational Uses 教育的にも非常に有用
  30. 30. Educational Uses ゲーム製作を目標に始める      
  31. 31. Educational Uses ゲーム製作を目標に始める 様々なAPIを学ばなければならない    
  32. 32. Educational Uses ゲーム製作を目標に始める 様々なAPIを学ばなければならない GUIプログラミングまで長い時間が  
  33. 33. Educational Uses ゲーム製作を目標に始める 様々なAPIを学ばなければならない GUIプログラミングまで長い時間が 挫折する
  34. 34. Educational Uses 競技プログラミングから始める      
  35. 35. Educational Uses 競技プログラミングから始める 入出力の知識だけで始められる    
  36. 36. Educational Uses 競技プログラミングから始める 入出力の知識だけで始められる 問題を解くたびに達成感  
  37. 37. Educational Uses 競技プログラミングから始める 入出力の知識だけで始められる 問題を解くたびに達成感 少しずつ実装力を身につけていく
  38. 38. Online Judge 競技プログラミングの練習環境 Web上で問題を解くことができる
  39. 39. Webサーバー ジャッジサーバー Online Judge
  40. 40. Online Judge Webサーバー ジャッジサーバー
  41. 41. Online Judge Webサーバー ジャッジサーバー
  42. 42. Online Judge Webサーバー ジャッジサーバー
  43. 43. Online Judge Webサーバー ジャッジサーバー
  44. 44. Online Judge Webサーバー ジャッジサーバー
  45. 45. Online Judge Webサーバー ジャッジサーバー
  46. 46. Online Judge Webサーバー ジャッジサーバー
  47. 47. Online Judge すでにいろいろなシステムが 北京大学 - PKU Online Judge 会津大学 - Aizu Online Judge
  48. 48. The Problem
  49. 49. ユーザーが ホスティングできない
  50. 50. The Problem ユーザーがホスティングできない 問題を公開しあって練習したり コンテストを開催したりできない
  51. 51. The Problem セキュリティのために 仕方がないと考えられてきた
  52. 52. それを変えました
  53. 53. インストールは 超簡単
  54. 54. # apt-add-repository ppa:hiromu1996/arrow-judge Installation
  55. 55. # apt-get update Installation
  56. 56. # apt-get install arrow-judge arrow-judge-web Installation
  57. 57. Installation
  58. 58. Technologies もちろんセキュリティも考慮に cgroupsでリソース管理 chroot, unshareでアクセス制御
  59. 59. Technologies Ubuntu PPAでインストールを簡単に Webインストーラーも作成
  60. 60. Features 一般的なオンラインジャッジの機能 CPU使用時間やメモリ使用量の計測 他のユーザーのソースを検索
  61. 61. Features ユーザーが問題を作成できる機能 堅牢性を保っているからこそできる できるのはこのシステムだけ
  62. 62. Features コンテスト開催機能 スコアリングシステム Clarificationシステム
  63. 63. Features ジャッジサーバーの分散処理機能 キューに応じてサーバーを追加 コンテスト時だけEC2で増強
  64. 64. Features 簡単な管理画面 Webからプログラミング言語の追加 ジャッジサーバーの設定
  65. 65. Demo
  66. 66. Open Source ソースはGithubで公開中 https://github.com/hiromu/arrow- judge https://github.com/hiromu/arrow- judge-web
  67. 67. Special Thanks 開発にあたって IPAの未踏IT人材発掘・育成事業の 支援を受けました
  68. 68. Conclusion このソフトウェアを通じて 日本の競技プログラミング界が もっと活発になってほしい

×