- 10:00 競æéå§
- 17:00 ãªãŒããŒããŒãã®æŽæ°åæ¢
- 18:00 競æçµäº
- ç¿ 18:00 çµæçºè¡šã€ãã³ãéå§
課é¡ã¢ããªã±ãŒã·ã§ã³ ISUCHOLAR ã®ä»æ§ã«ã€ããŠã¯ãISUCHOLAR ã¢ããªã±ãŒã·ã§ã³ããã¥ã¢ã« ãåç §ããŠãã ããã
ISUCON11 ã®ç«¶æã§ã¯äžèšã®ãŠã§ããµã€ããå©çšããŸããäºåã«ç»é²ããæ å ±ãçšããŠãã°ã€ã³ããŠãã ããã ãªãããã®ããŒãžã¯ç«¶æçµäºåŸã«ã¢ã¯ã»ã¹ã§ããªããªããŸãã
ããŒã¿ã«ã§ã¯ãè² è·èµ°è¡ïŒãã³ãããŒã¯ïŒã®å®è¡/çµæ確èªã質å/ãµããŒãäŸé ŒïŒä»¥äžã質åïŒã®éä¿¡ããªãŒããŒããŒãã®ç¢ºèªãã§ããŸãã
https://portal.isucon.net/contestant
ããŒã¿ã«äžã®ãªãŒããŒããŒãã¯ã競æçµäº 1 æéåã«ä»ããŒã ã®æ å ±ãæŽæ°ãããªããªããèªããŒã ã®æ å ±ã®ã¿æŽæ°ãããŸãã
ISUCON11 ãµããŒã Discord ãµãŒããŒã¯ç«¶æäžãªãã³ã«ãã®ååŸã®æéã¯ãã¹ãŠã®ãã£ã³ãã«ãçºèšäžå¯ãšãªããŸãã 競ææéäžã¯ããŒã¿ã«ãéããŠè³ªåãéä¿¡ããããšãã§ããŸãã®ã§ããã¡ããå©çšããŠãã ããã
ãã ããéžæã¯ç«¶ææéäžã Discord ã®ç¢ºèªãå¯èœãªç¶æ ãéç¥ãåãåããç¶æ ãç¶æããŠãã ããã ããã¯äž»å¬è ãéžæãšãªã¢ã«ã¿ã€ã ã§ã®ãã£ãããå¿ èŠã ãšå€æããå Žåãäž»å¬è ã Discord äžã§ãã©ã€ããŒããã£ã³ãã«ãäœæãã¡ã³ã·ã§ã³ã®äžãåŒã³ãããè¡ãå Žåãããããã§ããåŒã³ããã«å¿ããªãå Žåã競æã«æ¯éããããå¯èœæ§ããããããå¿ ãå¿çå¯èœãªç¶æ ãç¶æããŠãã ããã
ãŸããäž»å¬è ããã®ã¢ããŠã³ã¹çã Discord ã§å®æœãããŸãã
éžæã¯äž»å¬è ãžè³ªåãéä¿¡ããããšãã§ããŸãã質åã¯ç«¶æå 容ã»ããã¥ã¢ã«ã»ã¬ã®ã¥ã¬ãŒã·ã§ã³çã«å¯Ÿããçåç¹ã®ç¢ºèªãããµãŒããŒé害ãªã©ã®ãã©ãã«å ±åã»ãµããŒãäŸé Œã«å©çšããããšãã§ããŸãããããã«éããŸããã
äž»å¬è ã¯è³ªåãããå 容ã競æã®äžç°ã§ããå Žåã¯ãåçã§ããªãæšãè¿çããããšããããŸãã
競ææéäžã®è³ªåã«ã€ããŠãäž»å¬è ããã®åçã¯å šéžæãžå ¬éããããã¯åå¥ã«åçãããŸããå šéžæãžå ¬éãããå Žåã質åå 容ã®åæããããã¯äž»å¬è ã«ããå 容ã®èŠçŽãå ¬éãããŸããæªåçã®è³ªåã»æªå ¬éã®åçã«ã€ããŠã¯è³ªåããéžæããã³ãã®ããŒã ã¡ã³ããŒãäž»å¬è ã®ã¿ã確èªã§ããŸãã質åãžã®åçã»æŽæ°ã¯ããŒã¿ã«äžã«ãŠéžæããã³ãã®ããŒã ãžéç¥ãããŸãã
äž»å¬è ã¯ç«¶ææéäžã®è³ªåãžã®åçããååãšããŠå šéžæãžå ¬éããŸãããã ããéè€ãã質åããéžæããã³ããŒã åå¥ã®åé¡ã«å¯Ÿãã察å¿ã®å Žåããã®éãã§ã¯ãããŸããã
éžæã¯äž»å¬è åŽã®äžå ·åïŒäŸïŒ ãã³ãããŒã«ãŒãåèå®è£ ãããŒã¿ã«ïŒãçãããç¶æ³ãããã®ä»çåç¹ã«ã€ããŠã éããã«è³ªåãéä¿¡ããããšãæšå¥šãããŸãã
äž»å¬è åŽã®è²¬ã«ãã£ãŠç¹å®ã®ããŒã ã®ç«¶æé²è¡ã«äžå©çãèªããããå Žåãäž»å¬è ã¯ãã®ããŒã ã«å¯ŸããŠç«¶ææéã®è£å¡«ãè¡ãããšããããŸãããã®éã®è£å¡«æéã¯ãäžå ·åçãäž»å¬è ãèªèããŠããããã解決ããããŸã§ã«ããã£ãæéãåºæºã«ç®åºããŸããã€ãŸããéžæã¯çåç¹ãäžå ·åã®å ±åãéããã«è¡ãããšã§ã競æé²è¡ã«æ¯éããã£ãæéã客芳çã«æããã«ããããšãã§ãããããäž»å¬è ã¯ãããæšå¥šããŸãã
ãªããå šããŒã ã§ç¢ºå®ãã€åæ§ã«çºçããäžå ·åïŒäŸïŒ ãã³ãããŒã«ãŒã®äžå ·åïŒã¯ç¹å®ããŒã ã«ããã競æé²è¡ã®åŠšããšã¯ãªããªããããåºæ¬çã«è£å¡«ã®å¯Ÿè±¡ãšããŸãããè£å¡«ã®å¯Ÿè±¡ã«ãªãäŸãšããŠã¯ãäž»å¬è åŽã®ãã¹ã§ç¹å®ããŒã ã®ã¿ãµãŒããŒãžæ¥ç¶ã§ããªãç¶æ ïŒèšå®äžåïŒãªã©ãæããããŸãã
äž»å¬è ãäºåã« Discord ãµãŒããŒçã§åç¥ããŠããéããäžèšã¯ãµããŒã察象å€ãšãªããŸãã
- ã¹ãã³ãµãŒå瀟ãæäŸããŠãããµãŒãã¹ã«ã€ããŠã®è³ªå
æ¬éžã§ã¯ã競æã«å¿ èŠãªãã¹ãŠã®ãµãŒããŒãäž»å¬è ãçšæããŸãã
äž»å¬è ã¯ããŒã ã«å¯ŸããŠãµãŒããŒã 3 å°ãã€æäŸããŸãïŒä»¥äžã競æçšãµãŒããŒïŒãéžæã¯ç«¶æçšãµãŒããŒã« SSH æ¥ç¶ãã競æã«åå ããŸãã
éžæã¯ããŒã¿ã«ã®ãµãŒããŒãªã¹ãããŒãžã§å²ãåœãŠããã競æçšãµãŒããŒã®æ å ±ã確èªã§ããŸãã
éžæèªããèšå®å€æŽçã«ãã競æç°å¢ãç Žå£ãããªã©ããŠãäž»å¬è ã«ããåèµ·åãããã¯åæåãå¿ èŠã«ãªã£ãå Žåã¯ããŒã¿ã«ãããµããŒããäŸé ŒããŠãã ããã åæå以åã®ç«¶æç°å¢äžã§å€æŽãå ãããœãŒã¹ã³ãŒããèšå®ãã¡ã€ã«çã®ç§»è¡ãå¿ èŠãªå Žåã¯ãåããŒã ã®è²¬ä»»ã§è¡ã£ãŠãã ããã
- 競æã«å©çšã§ããèšç®æ©è³æºã¯äž»å¬è
ãçšæãã 3 å°ã®ãµãŒããŒã®ã¿ã§ãã
- ã¢ãã¿ãªã³ã°ããã¹ããéçºã«ãããŠå€éšã®è³æºãçšããŠãæ§ããŸãããïŒäŸïŒ ã¡ããªã¯ã¹èšæž¬ãµãŒãã¹ïŒãã¹ã³ã¢ãåäžããããããªãå¹æãæã€ãã®ã§ãã£ãŠã¯ãããŸããã
- 競æçµäºåŸã¯ãäž»å¬è
ã远詊ãè¡ããŸããDiscord ãµãŒããŒã«ãŠäž»å¬è
ãã¢ããŠã³ã¹ããããŸã§ã競æç°å¢ã®æäœãããªãã§ãã ããã
- 競æçµäºåŸãå¥éã¢ããŠã³ã¹ããããŸã§ã«äœæ¥ãè¡ã£ãããŒã ã¯å€±æ ŒãšãªããŸãã
- ãã®ä»ãäž»å¬è
ã«ãã远詊ã劚ããå€æŽïŒäŸïŒ ãµãŒããŒäžã®
isucon
以å€ã®ãŠãŒã¶ãŒã«é¢ããããŠãŒã¶ãŒåé€ãæ¢åã®å ¬ééµã®åé€ïŒãè¡ã£ãŠã¯ãããŸããã
ISUCHOLAR 㯠Web ãã©ãŠã¶ãã HTTPS ã§å©çšããããšãã§ããŸãã ãµãŒããŒã®ããŒã㯠SSH æ¥ç¶çšã® 22 çªä»¥å€éæŸãããŠããªãããããã©ãŠã¶ã䜿ã£ãŠåäœç¢ºèªããå Žå㯠SSH ã䜿ã£ãããŒã«ã«ããŒããã©ã¯ãŒãã£ã³ã°ãªã©ãå©çšããŠãã ããã
以äžã« SSH ã䜿ã£ãŠããŒã«ã«ããŒããã©ã¯ãŒãã£ã³ã°ããäŸã瀺ããŸãã ããã¯ããªã¢ãŒããã¹ã 192.0.2.1
ã«ãŠãŒã¶ãŒå isucon
㧠SSH
æ¥ç¶ãããŠãããã®éã¯ãããŒã«ã«ããèŠã localhost:8443
ãžã® TCP æ¥ç¶ããããªã¢ãŒããã¹ãããèŠã localhost:443
ãžè»¢éããããšããã³ãã³ãã§ãã
ssh -L localhost:8443:localhost:443 isucon@192.0.2.1
ãµãŒããŒãžé
眮ãããŠãã TLS 蚌ææžã® subject name 㯠*.t.isucon.dev
ãšãªã£ãŠããŸãã *.t.isucon.dev
ã® DNS ã¬ã³ãŒã㯠127.0.0.1
, ::1
ãèšå®ãããŠããããã t.isucon.dev
ã®ãµããã¡ã€ã³ãå©çšã㊠localhost
ã®ããŒããžã¢ã¯ã»ã¹ããããšã§ãTLS 蚌ææžæ€èšŒãšã©ãŒãåé¿ããããšãã§ããŸãã
以äžãèžãŸãããšãäžèšã®ã³ãã³ã㧠SSH æ¥ç¶ããŠããé㯠https://isucholar.t.isucon.dev:8443 ã§ã¢ããªã±ãŒã·ã§ã³ã«ã¢ã¯ã»ã¹ããããšãã§ããŸãã
ISUCHOLAR ã«ã¯ãåŠå ã³ãŒããšãã¹ã¯ãŒãã䜿ã£ãŠãã°ã€ã³ã§ããŸãã
ãã³ãããŒã«ãŒãå©çšããåŠçã»æå¡ãŠãŒã¶ãŒã«ã¯ S00000
ã»T00000
ãå¿
ãå«ãŸããŸãã
S00000
ã»T00000
ãŠãŒã¶ãŒãçšããããšã§ãè² è·èµ°è¡åŸã®ã¢ããªã±ãŒã·ã§ã³ã®ç¶æ
確èªãå¯èœã§ãã ãŸããS99999
ã»T99999
ãŠãŒã¶ãŒã«ã¯åäœç¢ºèªçšã®åæããŒã¿ãååšããŸãã
åŠå ã³ãŒã | ãã¹ã¯ãŒã | |
---|---|---|
åŠç | S00000 | isucon |
æå¡ | T00000 | isucon |
åŠç | S99999 | isucon |
æå¡ | T99999 | isucon |
è² è·èµ°è¡ã¯ããŒã¿ã«äžãããªã¯ãšã¹ãããŸãã
ããŒã¿ã« ã«ã¢ã¯ã»ã¹ãããJob Enqueue Formãããè² è·èµ°è¡å¯Ÿè±¡ã®ãµãŒããŒãéžæããEnqueueããã¯ãªãã¯ããããšã§è² è·èµ°è¡ããªã¯ãšã¹ãã§ããŸãã
ãªããè² è·èµ°è¡ãåŸ æ©äžïŒPENDINGïŒãããã¯å®è¡äžïŒRUNNINGïŒã®éã¯è¿œå ã§ãªã¯ãšã¹ãã§ããŸããã
äžèšã®èšèªã§ã®å®è£ ãæäŸãããŠããŸãã
- Go
- Node.js
- PHP
- Ruby
- Rust
åæç¶æ ã§ã¯ Go ã«ããå®è£ ãèµ·åããŠããŸãã
ååèå®è£ 㯠systemd ã§ç®¡çãããŠããŸãã äŸãã°ãåèå®è£ ã Go ãã Ruby ã«åãæ¿ããã«ã¯ä»¥äžã®ã³ãã³ããå®è¡ããŸãã
sudo systemctl disable --now isucholar.go.service
sudo systemctl enable --now isucholar.ruby.service
ãã ããPHP ã䜿ãå Žåã®ã¿ãsystemd ã®èšå®å€æŽã®ä»ã«ã以äžã®ãã㪠nginx ã®èšå®å€æŽãå¿ èŠã§ãã
sudo unlink /etc/nginx/sites-enabled/isucholar.conf
sudo ln -s /etc/nginx/sites-available/isucholar-php.conf /etc/nginx/sites-enabled/isucholar-php.conf
sudo systemctl restart nginx.service
åèå®è£
ã§ã¯ãåæååŠçïŒPOST /initialize
ïŒã«ãããŠããŒã¿ããŒã¹ãåæç¶æ
ã«æ»ããŸãã åŠçã®å€æŽã»ããŒã¿æ§é ã®å€æŽãªã©ãè¡ãå Žåã¯ãåäœã«æ¯éãç¡ãããã«å€æŽããŠãã ããã
ãã³ãããŒã«ãŒã«ããè² è·èµ°è¡ã¯ä»¥äžã®ããã«å®æœãããŸãã
- åæååŠçã®å®è¡
POST /initialize
ïŒæ倧 20 ç§ïŒ - ã¢ããªã±ãŒã·ã§ã³äºææ§ãã§ãã¯ïŒæ°ç§ïœæ°åç§ïŒ
- åæååŠçã®å®è¡
POST /initialize
ïŒæ倧 20 ç§ïŒ - è² è·èµ°è¡ïŒ60 ç§ïŒ
- ãªãã©ã€åŠçïŒ10 ç§ïŒ
- æŽåæ§ãã§ãã¯ïŒæ°ç§ïœæ°åç§ïŒ
ãã³ãããŒã«ãŒã¯ãªãã©ã€åŠçã§ãè² è·èµ°è¡äžã«ã¿ã€ã ã¢ãŠããããªã¯ãšã¹ãã®ãªãã©ã€ãè¡ãããšããããŸãã
åæååŠçãã¢ããªã±ãŒã·ã§ã³äºææ§ãã§ãã¯ãæŽåæ§ãã§ãã¯ã®ãããã 1 ã€ã§ã倱æãããšãè² è·èµ°è¡ã¯å³æ倱æïŒfailïŒã«ãªããŸãã
ãã³ãããŒã«ãŒã¯ HTTP ãªãã€ã¬ã¯ããåŠçããŸããã
ãã³ãããŒã«ãŒã¯ããŒã¿ã®æŽæ°ãå³æåæ ãããŠããããšãæåŸ ããŠæ€èšŒãè¡ããŸãã ãã ããã¢ããªã±ãŒã·ã§ã³ã¯ãã³ãããŒã«ãŒãæ€ç¥ããªãéãã¯å€ãæ å ±ãè¿ããŠãæ§ããŸããã
ãã³ãããŒã«ãŒã¯äžè¬çãªãã©ãŠã¶ã®æåãæš¡ãã Conditional GET ã«å¯Ÿå¿ããŠããŸãã
ã¢ããªã±ãŒã·ã§ã³ã¯ã Cache-Control
ããã®ä»å¿
èŠãªã¬ã¹ãã³ã¹ããããè¿ãããšã§ããã³ãããŒã«ãŒãã Conditional GET ãªã¯ãšã¹ããåããããšãã§ããŸãã 304 Not Modified
ãè¿ãããå Žåãããã©ãŠã¶ã®ãã£ãã·ã¥æå¹æéã®å¶åŸ¡ã«ãã£ãŠãªã¯ãšã¹ããçºçããªãã£ãå Žåã§ãããã³ãããŒã«ãŒã¯ãããã®ãã£ãã·ã¥ãå©çšããŠã¬ã¹ãã³ã¹ããã£ããã®ãšã¿ãªããŸãã
ãªãããã³ãããŒã«ãŒå
ã®ãŠãŒã¶ãŒã¯ç¬ç«ããŠããããã Cache-Control: public
çãæå®ãããŠãããšããŠãããŠãŒã¶ãŒå士ã§ãã£ãã·ã¥ãå
±æããããšã¯ãããŸããã
ã¢ããªã±ãŒã·ã§ã³ã¯ Link
ã¬ã¹ãã³ã¹ããããŒãéä¿¡ããããšããããŸããããã³ãããŒã«ãŒã¯ RFC8288 ã«æºæ ãã解éã¯è¡ããŸãããURL ã®ãã¹éšãã¯ãšãªéšã®å€æŽã¯èš±å®¹ãããŠããŸãã
ãªãããã³ãããŒã«ãŒã¯åèå®è£ ããã©ãŠã¶ã§é²èŠ§ããéã®æåãšåæ§ã®åäœãããŸãã
ãç¥ããè¿œå ïŒPOST /api/announcements
ïŒæã«éãããŠãããç¥ããã® ID ã¯äžæã§ããããšãä¿èšŒãããŸãã
æ瞟確èªïŒGET /api/users/me/grades
ïŒã®ã¬ã¹ãã³ã¹ã«å«ãŸãã以äžã®å€ã«ã€ããŠã¯ã0.01
以äžã®çµ¶å¯Ÿèª€å·®ã蚱容ããŸãã
- ç§ç®ã®ç·åç¹ã®å¹³åå€ïŒ
total_score_avg
ïŒã»åå·®å€ïŒtotal_score_t_score
ïŒ - GPA ã®å€ïŒ
gpa
ïŒã»æ倧å€ïŒgpa_max
ïŒã»æå°å€ïŒgpa_min
ïŒã»å¹³åå€ïŒgpa_avg
ïŒã»åå·®å€ïŒgpa_t_score
ïŒ
ãã³ãããŒã«ãŒãæš¡å£ããåŠçãŠãŒã¶ãŒã¯æ€çŽ¢çµæã«å«ãŸããªãç§ç®ã®å±¥ä¿®ãè¡ãããšããããŸããããã¯åèå®è£ ã§æäŸãããŠãã UI ã§ã¯äžå¯èœãªæåã§ãïŒåèå®è£ ã® UI åŽã®æ¢ç¥ã®äžå ·åã§ãïŒã
è² è·èµ°è¡ã«ãããŠèšå®ãããŠããã¿ã€ã ã¢ãŠãå€ã¯äžèšã®éãã§ãã
POST /initialize
- 20 ç§ä»¥å ã«ã¬ã¹ãã³ã¹ãè¿ãå¿ èŠããããŸãããããè¶ ããå Žåãè² è·èµ°è¡ã¯å³æ倱æïŒfailïŒããŸãã
- äžèšä»¥å€ã® HTTP ãªã¯ãšã¹ã
- 5 ç§ä»¥å ã«ã¬ã¹ãã³ã¹ãè¿ãå¿ èŠããããŸãããããè¶ ããå ŽåãåŸè¿°ã®ã¹ã³ã¢èšç®ã«åŸãæžç¹ã®å¯Ÿè±¡ãšãªããŸãã
ã¢ããªã±ãŒã·ã§ã³äºææ§ãã§ãã¯ãééãè² è·èµ°è¡ãéå§ããããšãäžèšã®éãå ç¹ã»æžç¹ãè¡ãããŸãã å ç¹å¯Ÿè±¡ã®ãªã¯ãšã¹ãã¯ãè² è·èµ°è¡äžã«éä¿¡ããããªã¯ãšã¹ãã®ã¿ã§ããïŒè² è·èµ°è¡ã«ã€ããŠïŒ
ã¢ããªã±ãŒã·ã§ã³äºææ§ãã§ãã¯ããè² è·èµ°è¡åŸã®ãªãã©ã€åŠçã§éä¿¡ããããªã¯ãšã¹ãã¯å ç¹ã»æžç¹å¯Ÿè±¡ã§ã¯ãããŸããã
- 課é¡ã®æåºïŒ
POST /api/courses/:courseID/classes/:classID/assignments
ïŒã«æåããå Žå- 1 åããã 3 ç¹
- ãç¥ããäžèŠ§ã®ååŸïŒ
GET /api/announcements
ïŒã«æåããå Žå- 1 åããã 1 ç¹
äžèšã®ãšã©ãŒã¯æžç¹ãå³æ倱æïŒfailïŒãšãªããŸããfail ãšãªã£ãå Žåãã¹ã³ã¢ã¯ 0 ç¹ãšãªããŸãã
-
åæååŠçãã¢ããªã±ãŒã·ã§ã³äºææ§ãã§ãã¯ãæŽåæ§ãã§ãã¯ã®ããããã«å€±æããå Žå
- 1 å以äžã§ fail
-
HTTP ã¹ããŒã¿ã¹ã³ãŒããã¬ã¹ãã³ã¹å 容ãªã©ã«èª€ããããå Žå
- 1 åãããæžç¹ 50 ç¹
- 100 åãè¶ ããæç¹ã§ fail
-
ãªã¯ãšã¹ããã¿ã€ã ã¢ãŠãããå ŽåïŒã¿ã€ã ã¢ãŠãã«ã€ããŠïŒ
- 100 åãããæžç¹ 100 ç¹
- fail ã¯çºçããªã
- 競æäžã®ã¹ã³ã¢ããæåã« 80,000 ç¹ã«å°éãã 1 ããŒã ãç¹å¥è³ãšããŸãã
競æçµäºåŸã以äžã®æé ã§è¿œè©Šãè¡ãæçµã¹ã³ã¢ã決å®ããŸãã
- å
šããŒã ã®ãµãŒããŒãåèµ·åãã10 å以äžåŸ
ã¡ãŸãã
- åèµ·åã¯ãäž»å¬è
ããµãŒããŒã« SSH æ¥ç¶ã
sudo systemctl poweroff
ã«ããã·ã£ããããŠã³ãè¡ã£ãåŸãAWS ã®ã€ã³ã¹ã¿ã³ã¹èµ·å APIïŒec2:StartInstancesïŒã§èµ·åããããšããæé ã§è¡ããŸãã - 確å®ã«ã·ã¹ãã ãåèµ·åãããããåèµ·åæé ããã®ããã«å®çŸ©ããŠããŸããã競ææéäžã«åèµ·åããã¹ãããå Žåã¯
sudo systemctl reboot
çã§å®æœããŠãã ããã - ãã§ã«ã·ã£ããããŠã³ãããŠãããªã©ã®çç±ã«ããã
sudo systemctl poweroff
ãå®è¡ã§ããªãã£ããµãŒããŒãååšããå Žåã¯å€±æ ŒãšãªããŸãã
- åèµ·åã¯ãäž»å¬è
ããµãŒããŒã« SSH æ¥ç¶ã
- å
šããŒã ã«å¯ŸããŠãã³ãããŒã¯ãå®è¡ããŸãã
- 競ææéäžã«æåŸã®è² è·èµ°è¡ã®å¯Ÿè±¡ãšãªã£ããµãŒããŒã«å¯ŸããŠ è² è·èµ°è¡ãè¡ããŸãã
- èšæž¬ã¯åããŒã 3 åãã€å®æœããŸãã
- ïŒ2ïŒã§å®æœããæåŸã®è² è·èµ°è¡ã fail ãšãªã£ãŠããããŒã ã«é¢ããŠã¯ãå床èšæž¬ãå®æœããŸãã
- ãã®éãå床 fail ãšãªã£ãããŒã ã¯å€±æ ŒãšãªããŸãã
- å
šããŒã ã®ãµãŒããŒãïŒ1ïŒãšåæé ã§åèµ·åãããã©ãŠã¶ããåäœç¢ºèªãè¡ããŸãã
- ãã®éãæ£åžžãªåäœã確èªã§ããªãã£ãããŒã ã¯å€±æ ŒãšãªããŸãã
- è² è·èµ°è¡å®è¡æã«ã¢ããªã±ãŒã·ã§ã³ã«æžã蟌ãŸããããŒã¿ãããµãŒããŒåèµ·ååŸã«ãååŸã§ããããšã確èªã§ããªãã£ãå Žåãå€±æ ŒãšãªããŸãã
- äž»å¬è
ã®äœæ¥æ¥çšã®éœåäžãïŒ4ïŒã§å®æœãã
sudo systemctl poweroff
以éã®äœæ¥ã¯ç¿æ¥ã«ãªãããšãèŠèŸŒãŸããŠããŸããã€ãŸããã·ã£ããããŠã³ããèµ·åãŸã§ã«æéã倧ããçµéããããšããããŸãã
- ïŒ2ïŒã®è² è·èµ°è¡ã§èšæž¬ããã¹ã³ã¢ã®ãã¡ãæãé«ãã¹ã³ã¢ããã®ããŒã ã®æçµã¹ã³ã¢ãšããŸãã
- fail 㯠0 ç¹ãšããŠæ°ããŸãã
POST /initialize
ã®ã¬ã¹ãã³ã¹ã«ãŠãæ¬ç«¶æã§å©çšããèšèªãåºåããŠãã ããã åèå®è£
ã¯ãã®ããã«ãªã£ãŠããŸãã ãã®æ
å ±ã¯éèšã ISUCON å
¬åŒBlog ã§å
¬è¡šããä»ãä»åŸã®éå¶ã®åèæ
å ±ãšããŠå©çšãããŠããã ããŸãã
POST /initialize
ã®ã¬ã¹ãã³ã¹ã¯ä»¥äžã®ãã㪠JSON ãšãªããŸãã
{
"language": "å®è£
èšèª"
}
language
ã®å€ãå®è£
ã«å©çšããèšèªãšãªããŸãã
language
ã空ã®å Žåã¯åæååŠçã倱æãšèŠãªãããŸãã
éžæã«ã¯äž»å¬è ãã Web ã¢ããªã±ãŒã·ã§ã³ïŒåé¡ïŒãäžãããã競ææéå ã«ãã® Web ã¢ããªã±ãŒã·ã§ã³ã®é«éåãè¡ããéžæã¯é«éåãããå®è£ ïŒåçïŒãäœæããæãäž»å¬è ããäžãããããœãããŠã§ã¢ïŒåèå®è£ ïŒãããŒã¹ã«å®è£ ããŠãè¯ãããããªããŠãè¯ãã ååèå®è£ ã®æ§èœãäžèŽããããšã¯ä¿èšŒãããªãã
æ¬éžã§ã¯ OS ãšã㊠Ubuntuãåæå®è£ ãšã㊠Go, Node.js, PHP, Ruby, Rust ã§ã®å®è£ ãæäŸããã
é«éåã®éãäž»å¬è ããåé¡ãšããŠäžãããã Web ã¢ããªã±ãŒã·ã§ã³ããã以äžã®éšåã¯å€æŽããªãããšã
- ã¢ã¯ã»ã¹å
ã® URI
- ãµãŒããŒåŽã§çæããéšåïŒID ãªã©ïŒã¯æåçš®ïŒ
[0-9]
ã[0-9a-zA-Z_]
ãªã©ïŒãå€ããªãç¯å²ã§èªç±ã«çæããŠãè¯ã
- ãµãŒããŒåŽã§çæããéšåïŒID ãªã©ïŒã¯æåçš®ïŒ
- ã¬ã¹ãã³ã¹ïŒJSON ãªããžã§ã¯ãçïŒã®æ§é
- HTML/JavaScript/CSS ãã¡ã€ã«ã®å 容
- ç»åããã³åç»çã®ã¡ãã£ã¢ãã¡ã€ã«ã®å 容
åãµãŒããŒã«ããããœãããŠã§ã¢ã®å ¥ãæ¿ããèšå®ã®å€æŽãã¢ããªã±ãŒã·ã§ã³ã³ãŒãã®å€æŽããã³å ¥ãæ¿ããªã©ã¯äžåçŠæ¢ããªãã ãã³ãããŒã¯äžã«ããŒã¿ã«ã»ããã¥ã¢ã«ã»ã¬ã®ã¥ã¬ãŒã·ã§ã³ãšãã£ããäž»å¬è ã®æ瀺以å€ã§å©çšãèªãããããµãŒããŒä»¥å€ã®å€éšãªãœãŒã¹ã䜿çšããè¡çºïŒä»ã®ãµãŒããŒã«åŠçãå§è²ãããªã©ïŒã¯çŠæ¢ããã ãã ãã¢ãã¿ãªã³ã°ããã¹ããéçºãªã©ã«ãããŠã¯ãPC ãå€éšã®ãµãŒããŒãå©çšããŠãæ§ããªãã
èš±å¯ãããäºé ã«ã¯ãäŸãšããŠä»¥äžã®ãããªäœæ¥ãå«ãŸããã
- è€æ°å°ãããµãŒããŒã®åœ¹å²ã®å€æŽ
- ããŒã¿ããŒã¹ã¹ããŒãã®å€æŽãã€ã³ããã¯ã¹ã®äœæã»åé€
- ããŒã¿ããŒã¹ã«å©çšããããã«ãŠã§ã¢ã®å€æŽ
- ãã£ãã·ã¥æ©æ§ã®è¿œå ããžã§ããã¥ãŒæ©æ§ã®è¿œå ã«ããé 延æžã蟌ã¿
- ä»ã®èšèªã«ããåå®è£
ãã ã以äžã®äºé ã«çæããããšã
- ã³ã³ãã¹ãé²è¡çšã®ã¡ã³ããã³ã¹ã³ãã³ããæ£åžžã«åäœããããäºææ§ãä¿ã€ããš
- ãµãŒããŒèµ·ååŸã«ãã¹ãŠã®ã¢ããªã±ãŒã·ã§ã³ã³ãŒããæ£åžžåäœããç¶æ ãç¶æããããš
- ãã³ãããŒã¯å®è¡æã«ã¢ããªã±ãŒã·ã§ã³ã«æžã蟌ãŸããããŒã¿ã¯åèµ·ååŸã«ãååŸã§ããããš
以äžã®è¡çºãç¹ã«çŠæ¢ããã
- 競æçµäºæéãŸã§ã«ã競æã®å
容ã«é¢ããããããäºé
ïŒåé¡å
容ã»èšæž¬ããŒã«ã®èšæž¬æ¹æ³ãªã©ïŒãå
¬éã»å
±æããããšïŒå
容ãæšå¯ã§ããçºèšãå«ãïŒ
- äžç¹å®å€æ°ãžã®å ¬éã¯ãã¡ãããä»ããŒã ã®éžæãšé£çµ¡ãåããåé¡å 容çãå ±æããäºïŒçµèšè¡çºïŒãçŠæ¢ãšããã
- ãã ãäž»å¬è ã Twitter, Web ãµã€ãã«ãããŠå ¬éããŠããæ å ±ã¯é€ããããŒã¿ã«ã§ãã°ã€ã³ãèŠããããŒãžïŒéžæãåå ãã Discord ãå«ãïŒã«ãããŠèšèŒãããŠããå 容ã¯å ¬éæ å ±ã§ãªãæšçæããããšã
- 競ææéäžãããŒã å€ã®äººç©ãš ISUCON11 åé¡ã«ãŸã€ããäºé ã®ãããšãïŒISUCON11 éžæã§ãããã©ãããåããªããSNS ã§ã®çºèšãå«ãïŒ
- äž»å¬è
ã®æ瀺以å€ã§å©çšãèªãããããµãŒããŒä»¥å€ã®å€éšãªãœãŒã¹ã䜿çšããè¡çºïŒä»ã®ãµãŒããŒã«åŠçãå§è²ãããªã©ïŒã¯çŠæ¢ããã
- ãã ãã¢ãã¿ãªã³ã°ããã¹ããéçºãªã©ã«ãããŠã¯ãPC ãå€éšã®ãµãŒããŒãå©çšããŠãæ§ããªãã
- éžæãäž»å¬è ãããã®éžæãå±ããããŒã ãžæäŸãããŠããªããµãŒããŒã«ã€ããŠçŽæ¥ã®ã¢ã¯ã»ã¹ãè©Šã¿ãè¡çºããå€éšãžã®äžæ£ã¢ã¯ã»ã¹ãè©Šã¿ãè¡çºãå ·äœçã«ã¯ãã³ãããŒã«ãŒãžã®ãã°ã€ã³è©Šè¡çãïŒãªããäŸç€ºã®ãããããã«éããªãïŒ
- ä»ããŒã ãšçµèšããè¡çºïŒçšåºŠãåããïŒ
- äž»å¬è ãä»ããŒã ãžã®åŠšå®³ã競æãžã®æ¯éãšãªããšã¿ãªãå šãŠã®è¡çº
æ¬ããã¥ã¢ã«ãããŒã¿ã«ã«ãããŠçŠæ¢ãšãããè¡çºïŒçŠæ¢äºé ïŒãžã®éåã¯ãå€±æ Œãšãªãã