Teach Yourself KMC

独習KMC vol.10
京大マイコンクラブ 著

巻頭言

こんにちわ、多根清史と申します。京大入学と KMC 入部が 1986 年で、かれこれ 30 年前のこと……30 年！と数えてみてビックリ。KMC 元顧問兼現役部員最長記録保持者（肩書なげえ！）の上原哲
太郎先生と同期だから、そのぐらいにはなりますよね。
今回は現役部員の方々からご指名があったとのことで、巻頭言を書かせてもらうことに。いいんです
か、あの若木民喜先生のあとですよ？ サンデーとかマガジンに連載持ってませんよ？ 同じ時期に在籍してた人たちも大学教授やら演奏家やら、某ステルスアクションゲームで戦闘員を物陰に引きずり込む
コードを書いてた凄腕ばかりなのに、ここにいていいんですかね。
お仕事はフリーライターで、要するに物書き。面白おかしくゲームを語る『超クソゲー』シリーズや『ガンダムと日本人』『教養としてのゲーム史』などアニメやゲームの新書。最近だと Web の電ファミ
ニコゲーマーにて『ゲーム語りの基礎教養』という連載をやっております。いわゆるオタクライターと言うやつですね。
目をつぶれば蘇る、京大本校舎から南に下った岡崎に第一部室があった頃の光景。PC-9801 に向かい合ってコーディングする先輩達と、背中合わせで『ウィザードリィ』にハマってた俺。X68000 でProject DoGA に向けた CG ムービーの制作に沸き返る中で、
冷たい目線をものともせずスペハリをやっていたあの頃……ろくでなしだよ！
だって仕方ないじゃないですか（開き直り）。初めて買うパソコン、いや KMC 的にはマイコンは一生を左右するもの。時は漫才ブームで、つい横山やすし師匠が出演してた CM につられて、東芝のパソピア 7 を買っちゃいまして。ろくに遊べるゲームもないし、メジャーの PC-8801 は高嶺の花で触りもできなかったんだから、各社のいろんな PC が置いてた KMC の部室は宝の山というか「PC ゲーム
世界への唯一の窓」だったんですから。
でも、KMC にいたから今の自分がある。そもそも学部は法学部で、院でも政治学科の国際政治学を専攻した文系でして、マイコンから最も遠いところにいた立場ですよ。
そして入部した 86 年といえば初代『ドラゴンクエスト』が発売された年で、まだコンピュータ RPGというジャンルが PC ユーザーの外には広まっていなかった頃。もしも各種のマイコンがある環境にいなければ、OS ごとに遊べるゲームがバラバラだった時代にハードの垣根を超えてゲームソフトと出会えてなかったら、「ゲーム夜明け前」に立ち会った経験を糧にした著書だって書けなかったでしょう。
そもそも、『マイコンベーシックマガジン』もプログラムよりアーケードゲーム紹介・攻略記事を目当てに買ってた自分が「作る人」の精鋭もいいところの KMC に入ったのは、高校時代に出会った上原先生の縁があったから。修学旅行のフェリーの上で「海が好きー！」叫んでいたことで、お互い『うる星やつら』のファンだと分かり、それからズルズルと今日にいたる。人と人ってどこでどう繋がるか分からないもんですよ。
今だからこうやって振り返れますが、当時はコンプレックスまみれですよ。周りはゲームを自作してたり、ソフト会社でガンガン働いて稼いでる。プログラミングができない部員でも、絵がうまくてドッ
ト打ちやデザイン、CG 制作に貢献できる。その中で、部室にスーファミ持ち込んで『ストリートファ
イター 2』の対戦ばっかりしてるやつがよく耐えられたな……あ、神経は太かったようです。
ようやくまともな PC を買えたのが院生になってからで、論文を書くために買った PC-9801 で『同級生 2』など PC ゲームにまたハマり、その攻略を探すためにパソコン通信を始め、そこで今は『超ク—1—ソゲー』の共著者となった友達と出会い。無駄なことや回り道をしているようで、「好きでやったこと」
はのちのち血肉になってるようです。そういや「新海誠」という名前を Project DoGA のイベントで聞いた自分が、いま『君の名は。』のレビュー原稿書いたりしてますね。
コンピュータが好きというただ一点で集まった人達が、性格も嗜好も、得意なことも違うから互いに何かを得られたりもする。ろくでもなかった自分が何者かになれた（気がする）んですから、ちゃんと頑張ってる KMC 部員はもっとすごいんです！ そんな人達が作った『独習 KMC』、楽しんで頂ければ
幸いです。
多根清史

—2—

CONTENTSNO

TITLE/AUTHOR

PAGE(tron)

05

01

575 詠んだらみんな いい気分

02

ZATSU-BOT 量産記

03

妖怪少女が ISUCON6 で見てきたもの (utgwkk)

1504

自動化された一連の競技とストラテジー（DEF CON CTF 2016 を終えて） (tyage)

17

05

忘年会はもうチャットでよくないですか (pastak)27

06

部員のアンケート07

漫画(murata)(wass80)

蝶類研究会 ～蝶研☆～
—3—

10

37
(mirenn)45

01575
詠んだら皆
良い気分

tron

ごきげんよう。tron です。突然ですが、KMC の Slack(1) には “go_go_575” (2) というチャンネルが存在します。
そこでは部員たちが日夜 575、あるいは 57577 のリズムになっている言葉を投稿しています。やり過ぎて日常出会う言葉から 575 を無意識に探してしまう程です (3)。
ここでは、皆さんにその一部をご紹介致します。

何故だろう

無駄な出費が多すぎる

それにつけても金の欲しさよ

大学生は金に困るものです [ 要出典 ]。KMC 部員もまた然り。生活費 (4) やら遊興費やらが嵩む日々、部

員たちはいつも「5 億円欲しい」とか言い合っています。
そんな部員たちの魂の叫びをどうぞ。
・

金儲け KMC でアフィブログ

・

働かず楽してお金儲けたい・

五億円空から降ってこないかな

・

五億円あれば漫画を買いまくる

・

なんかして一発当てて五億円

・

稼ぎたい家庭教師でパパッとね・

冷蔵庫お金冷やすのめっちゃいい

・

夢見るの

・

チョコレート課金システムいいですね・

落ちついて 3 万円はかすり傷

・

働かずに金がもらえるアルバイト(1)

チャットツール。

(2)

名前の元ネタは（ほぼ）同名のアニメ……らしい。この原稿を書いている時点で私は未視聴ですが、この部誌が頒余った時間遊んでいたい

お金も夢もない世界

布される頃には観ている予定。
(3)

Twitter で指摘したり、Slack で見つけたらそれ用の emoji で reaction したり。

(4)

下宿の人たちは大変そう。（自宅生並の感想）—5—5 億円欲しがりすぎ。欲が深いですね。私は 2 億円で十分なのでどなたかください (5)。続いてはこちら。

二次元に想いを馳せる

微分されたい人生だった

毎日よ

KMC はコンピュータサークルなので、自動的に [ 要出典 ] 二次元好きが集います。すると二次元 575 も揃います。これは自明です [ 要出典 ]。
・リビングでようかいうぉっち最高か・

M マスの事のみ想い・

月曜はプリパラあるんで帰ります・

チノちゃんは一年前に死んだんや・

アニメキャラ、永劫回帰の籠の鳥。

・

悲しくて「今日から僕が唯になる…」コスプレおじさんここに爆誕

・デレステのリセマラ作業終わらない過ごす日々

揃ってるというほど揃ってないな。今回は二次元不作か。気を取り直して↓

京大に工芸繊維 etc.

意外にここはインカレなのね (6)KMC は京都大学のサークルであるからして、部員の多くは大学生です。ならば大学に関する句が増えるのは必然。ここではそうした句をご紹介。
・

火炎瓶

京都大学

焼け野原 (7)・六限目、補講入れるのやめてくれ～・

新歓でお酒を飲んで脳萎縮

・大学に人が多くてもうだめです……

・

理学部は半分以上院に行く・

せっかくの休日だけどテスト前

この部誌が頒布される頃には大学は冬休みの筈ですが、なんで大学の冬休みあんな短いんですか？
夏休み春休みは 2 ヶ月なのに……。ととにかく、次はこちら。

とりあえずベッドの下で一句詠む

誰かの使ったキーワードを皆が真似してシリーズ化した句たち。前は妹とかだった気がしますが、今回は「ベッド下」に「とりあえず」。何考えとんねん。
(5)

石油王の皆様、KMC 一同お待ちしております。

(6)

京大生どころか大学生ですらない人も結構いたり入ってきたりするのでインカレですら生温かったり。

(7)

犯罪行為を予告する意図はありません。KMC は善良な人々によって構成される善良なサークルです。

—6—

・

ベッド下掃除をしてはいけません・

ベッド下、LAN ケーブルが這っている。

・

ベッド下、乙女の秘密詰まってる・

ベッド下、ベッドを詰めて無限級数

・

ベッド下、ベッドがなくてセグフォする・

ベッドなし、ベッドの下には何もない？

・

ベッドなし、参照をしてぬるぽふむ

・

ベットした，実はレイズで良かったな・

ベットには別途送料かかります・

とりあえず分かったことを書いていく

・ 「とりあえず」から始まると 575 作りやすくてよく使っちゃう…
・

とりあえず

すぐ使うのはやめましょう・

とりあえず用意したのに鳥和えず・

とりあえずとりあえずしてとりあえず・

鳥会えず鳴きつる方を眺めても・

鶏和えずそのまま割いて食べるのみ

だんだん変な方向に行く様子がよくわかりますね。続いてはこれ。

「575

作ったけど後「下の句作りは

どうしよう」

任せておけよ」(8)go_go_575 では誰かが作った 575 に誰かが 77 の下の句をつけることも多いです。そんなコンビネーションが光る句たち。
※内容的には他の所に入りそうでも上の句と下の句を別の人が詠んでいればここに入れています。
・

警察だおまえは包囲されている・完全に昼夜逆転しているよ・SMAP が・#no-money 所得格差の大きさよ

・

耐え難い

・

唯ちゃんが死んでしまって悲しいな。

・

計算機科学コースは闇である・明日から大学なのか。もうつらい朝に起きるの難しすぎる

・

大見出し

心を掴む 31 字・

すいません。あなたのことが嫌いです

・

なんやコラ

・

やばいやばい(8)

この句は tron が一人で作りました。

解散しない

手を挙げなければまもなく撃つぞ
年末だからゆるされるかな？

腰の痛みを

世界線

さんを付けろよデコ助野郎
それにつけても金の欲しさよ

能ある記者は耐え忍ぶ

そんなあなたにサロンパスです

いるよ僕らの心の中に

数理工学コースは光

七五調

こっちは本気（マジ）や奇遇ですね。私もそうです

やばいやばいやばい

大本気（マジ）ややばいやばい—7—

それでも私、貴方が好きよ

何がやばいって全部やばい

・

小切手に好きな数字を書きなさい・

鶏肉とカシューナッツの炒め物

・

すいません、あなたはどこの誰ですか？

・

履歴書は私の何を語るのか

忘れてしまったあなたの夢を

・

大富豪 3 万円がはした金。

無限の富が欲しいこの頃

・

最終の

・

朝起きて時計を見たら午後 1 時

朝と言うには厳しい時刻・

明日から午前中には起きるから明日もそれを・

カーペット床で寝るには硬すぎる・

柔らかくあたたかみある膝枕

のぞみに乗って自然数とは限らないのか
シェフの気まぐれソースを添えて京都へと記憶を無くす少女の話

これが最後の望みなんてね
言うんじゃないの？

女の子なら柔らかいのに夢から覚めて見るは座布団

最後は睡眠ネタ連打。春眠暁を覚えず、秋眠もまた然り。無論冬も。なんなら夏も。睡眠は大事。古事記にもそう書いてある。

575

集めて速し

最上川

トリを飾るのは雑多な句たち。意味不明。最早 575 でも何でもないのさえあるけど細かいことは気

にしない。
・

もういやだ、殺してくれ、と叫ぶ日々・

げんきです。きょうもわたしはげんきです。

・

残念なカジキマグロの同人誌

・

いいですか

・

風邪だけどクリーム欲しい買いに行こ・

風邪だけど飛行機乗りたくなってきた・トロフィーを獲得したよおめでとう・

もう何もやらなくってもいいんだよ・

クリスマス下から読んでもクリスマス

・

大晦日今年はコレで書き納め

・

目覚めれば

・

晴れていても寒波

・MIT 人工知能研究所

・

最上川、いちたすいちは友利奈緒

・

最上川、今日も今日とて友利奈緒

・

世の中は酷く厳しく辛いめう・

やっためう！ 月一ぶりの

・

あああああ

・

祝日が休日だとは限らない・

ダジャレなら #dajare で待ってるぜ・

川柳はラップじゃないぞこのやろー・

YO ！ オヤジ！ オレはラップで生きていく！

見栄を張っても辛くなる

一面の猫

我は未だに髪も濡らさず。

今はよくてもそれでは皆さんまた来年

猫世界

休みめう！

あああああああ

後であなたが…

あああああ

—8—

・

Listening strategy for TOEIC

・

抽象の梯子を上れ・ヤツが来る！ 俺には聞こえる……ヤツの声…！ 俺を労働に駆り立てる声が……！

・

若者よ、おじさんの声を聞いてくれ…「（※ここに心の声を書き込む）」

・

やいやーい、お前の父ちゃん・

もう六時。一日溶けた悲しさも、外の桜は知らぬと笑う・

社会とかもういいんだよ。これからは「個」の時代だよ、引きこもろうよ・

眠たいな何日寝ればいいのかな

・

チャンネル一覧

ボクら皆、人間、生物、存在、無探してみてもユーチューバー！！

都都逸チャンネル

ありゃしない・ 「意図すると」下から読むとトルストイ
・Queen を Jack と King が奪い合う（端子の記号に掛けたこじつけ）・

初手自殺、輪廻転生、初手自殺

・

人生をリセマラしたい初手自殺

・

1 時間 32 分 20 秒

・

暴力が全て解決してくれる・

目覚ましの代わりにエホバの証人が生活リズムを整えてくれる・

左側、すべてのドアが開きます・

苦しんで覚えられない C 言語

・

そもそもの

・

我々も 30 億のデバイスです

問題として

冬コミに

新しい部誌

おしまいだ。最後に軽く出せるんですか？

総括だ

昨年 12 月から今年 12 月初めまでに投稿された 575 をお届けしました。こうして並べると KMC 部

員の精神性がよく現れていますね。具体的にいうと b……いや、私の句も結構入っているので、迂闊なこと言うとブーメランになりそうだからここらへんでやめときます。
みなさんも楽しい KMC ライフを、いや違う、575 ライフをお送りください。
それでは皆さん、「さようなら

また会う日まで

お元気で」

P.S. 一緒に頒布している CD も手に入れて収録されてるゲームやったり音楽聴いたりしてください。
私が関わってる作品 (9) だけでもいいので。

(9) 「紫伝」「war in vivo」と音楽 n 曲 (n ≧ 1)……のはず。

—9—

02ZATSU-BOT
量産記

murataはじめに

こんにちは、root(1) になった murata です。みなさんは Bot(2) を制作していますか？？ 僕は、ハッと思いついたらすぐ実装を積み重ねていくうちに、いつの間にか 33 もの雑 Bot 機能を制作してしまいま
した……。今回の記事では、それらについて書かせてもらおうと思います。

Bot について

KMC ではチャットツールとして Slack が使われています。今回の記事の Bot の生息場所は主にこのSlack の上となります。Slack では、Bot 用の各種 API が提供されており、各種ライブラリも充実しているため、かなり自由に Bot を制作することができます (3)。僕の Bot は、Python3 で実装し、forever でデーモン化し、realtime API で通信しています。また、機能拡張が容易なように、YAML の形式で書かれた設定ファイルから読み込めるように拡張しています。
例えば、karaoke 37*9+1 のように karaoke < 数式 > の形式で発言すると、数式を計算し、計算結果であるカラオケの選曲番号 334 番は「石原裕次郎の北の旅人」であることを教えてくれるカラオケ
選曲番号検索 Bot 機能があります。

(1)

システムの管理者(2)

インターネットにおける何らかのタスクを自動で繰り返し続けるプログラム(3)

実際、KMC の Slack 上では Ruby,JavaScript,Python などで書かれた様々な Bot が動いている様子— 10 —

これは以下のような YAML 設定ファイルで書かれています。

- from : '#murata-memo'
find : 'karaoke\s?(.+)'
username : 'カラオケ選曲番号Bot'
text : '<<senkyoku.getEvaledKaraoke(match[0])>>'
icon_url : "http://example.com/hoge.png"

これは、Slack のチャンネル #murata-memo での発言のうち、find の表す正規表現にマッチする発言であれば senkyoku.py の getEvaledKaraoke 関数を呼び出し、その関数の返り値の文字列を Bot のコメント内容として、Bot の名前を username の指定する名前に設定し、Bot のアイコンを icon_urlの指定する URL で設定して返信する、という設定を表します。<<>> で囲んだ内容を実際に Python で実行することができるという実装をしています。

Bot の雑機能たち

33 の機能があるので、それらのうち内輪的でない機能を順に紹介させていただきます。以下、基本

的に # から始まるものは Slack のチャンネルだと考えて下さい。

起動時

Bot を再起動させたときに、本日のラッキーカラーをよしのんに教えてもらうようにしています。和

色大辞典 (4) を参考にして作成した辞書からランダムな色を取ってきています。

和色は難解な漢字が多くてかっこいいですね。

収集系

特定のキーワードを含む発言を一つのチャンネルにまとめたり、add reaction(5) がついたものを一つのチャンネルにまとめたりできる機能を搭載しています。例えば、以下のような機能があります。
・

いいぞを含む発言を #iizo に集める機能

・

いい感じを含む発言を #iikanji に集める機能

・:go_go_575: のリアクションが付いた発言を #go_go_575_find に集める機能

・:hogehoge: のリアクションがついた発言を #dajare に集める機能(4)

http://www.colordic.org/w/(5)

絵文字を発言につけてリアクションをすることができる Slack の機能— 11 —

dajare実際に、#dajare に集まったダジャレの一部を掲載いたします。

・

defun があるのでファンになった。

・

マジでマージ・

バイナリはやばいなり

・

NAND があれば何でもできる・

awk が億劫すぎる・ぎとぎとな git・

せっかく seq があるのに・その姿は、まさしくまさし君であった！

・

たかしには助けた貸しがある

・

シリカゲル食べて死にかける・

チョークを食べるの超苦痛。

・

台湾に行きたいワン

・

朝鮮密航に挑戦・

しがない滋賀内在住

・ウィーンの自動ドア「ウィ～～～ン……」

・

解散した中居さん・

同棲中にどうせいっちゅうねん

・

みくにゃんでぬくにゃん

iizohogehoge はいいぞ、というと #iizo に発言が集まります。実際に #iizo に集まった「いいぞ」と勧めたくなるものとして、「ガルパン」「のの」「おちフル」「コピックの青」「URN」「なちゅやちゅみ +」「d アニメストア」「仏語」「聖剣 2」「留年」「ホイアン」
「旅行」
「鳥取」
「4k」
「ケツイ」などがありました。今度全部やってみようと思います。
iikanji「いい感じ」を多用していると明らかに語彙力がないように見えてしまいますから、「いい感じ」などという言葉は慎むべきです。しかしながら毎日 2,3 件ほど誰かが「いい感じ」を含む会話をしてしまっていることが分かりました。「あれ」とか「こういうふうに」とか「がんばって」とか、そういうあとから見てもわからないやつを伴って発言されることが多いことも分かりました。
このチャンネルのデータを調査した結果、いい感じのものとして、
・

double plus

・

シロクマの嫁・Go 言語 ( ライブラリ揃ってるので )、・

筆の主線 ( 紙が削れないので )などがあることが分かりました。
また、いい感じに欲しいものとして、
・

仮想マシンをいい感じに立てられるやつ— 12 —

・

いい感じの bot 開発ツール

・

ボドゲが始まったらいい感じにチャンネルに通知来る仕組み

・

煽り画像をいい感じに探す方法

・

いい感じの RSSなどが挙げられることが分かりました。
いい感じに需要があると思うので、いい感じに開発されてみてはいかがでしょうか？

雑機能

例えば以下のような簡単な変換をする機能があります。

・SOS ⇔ ･･･ --- ･･･ のようにモールス信号に変換する機能

・

しんちょくだめです ⇔ キンヒョルガレベヌ のようにアルベド語 (6) に変換する機能

・ #c1e4e9 ⇔ 白藍（しらあい）のように色を日本語に変換する機能
他にも、一番雑な機能として、20 歳やはたちなど、成人を連想させるキーワードに対して紫の鏡 (7)の存在を教える機能もあります。

crontabcrontab にて定期的に幾つかの処理を実行させています。例えば、NSFW(8) なチャンネル #nsfw に定期的にニジエから取得した NSFW なえっちな画像を流して人々を困らせたりしています。また、ごちうさ速報 (@gochiusa_sokuho) という TwitterBot も管理しておりまして、それを定期的に動かしたりもしています (9)。

API を殴る系

この世界には API が多数存在していて、それをぺちぺち殴る機能です。公開 API ならともかく、非公開な API を叩きまくることはあまり褒められたものではないことは留意しておくべきでしょう。
カラオケ選曲番号 Bot

先程紹介した機能です。最近の曲の選曲番号を取得できるサイトが実は少なく、結果、JOYSOUND.

Biz にて、http://joysound.biz/search/songs/detail/id/012345/machine/j7 のような URL を(6)

FF10 に登場する架空の言語(7)

20 歳になるときに紫の鏡を覚えていると死ぬと言われている。

(8)

NOT SUITABLE FOR WORK: 職場閲覧不適切(9)

この Bot については 2016 年の KMCAdventCalender 等に詳細を書いているはずなのでそちらも御覧ください。

— 13 —

GET してスクレイピングしています。なお余談ですが、この Bot の選曲番号は先程言いましたように
数式を eval していたため、部員に脆弱性をつかれてしまいました。例えば、以下のようなコードが埋め込まれてしまいました。
・__import__('os').system('killall python')・open("~/.bashrc","w+").write("exit")・

any(iter(print,9))

特に、最後のものは、__import__ や open などと異なり、明らかに危ないもののようには見えない
ため、それはもう注意が必要です。
えっちな oo ください Bot

えっちな画像を入手することができる機能です。ニジエにアクセスして検索しています。https://nijie.info/search.php にて、word, p, sort, illust_type, mode などのパラメータを指定してGET をすることで検索できます (10)。
よさ RTBot

Twitter で好みの画像をサーバーに保存したいということはよくある話です。これを実現するためには、例えばふぁぼをしたツイートの画像を保存するという方法があります。しかしながら、それでは保存したくない画像をふぁぼれないという欠点があります。そこで、僕は画像を RT したのち、「hogehoge
よさ」というツイートをすることで hogehoge という名前でその画像を保存するという「よさ RT」形式を採用した Bot を動かしています。
ニコニコアニメ一挙放送通知 Bot

ニコニコ動画では、アニメ一挙放送が毎日のように行われています。普通はその放送の告知は一週間前くらいまでには行われるのですが、ひどいときには前日に行われることもあり、監視しておいて更新があれば通知する Bot が欲しいということでこの機能を作りました。http://ch.nicovideo.jp/
anime-sp を GET してスクレイピングしています。最近のアニメの振り返り上映会や、昔のアニメの急な再放送など、バラエティある放送がされるので、結構オトクな放送だと思います。

おわりに雑に Bot を作りまくるのは楽しいのでみんなやりましょう。

(10)

ログインしなくても検索できてしまいます……

— 14 —

03妖怪少女がISUCON6で見てきたもの

utgwkk

ごあいさつ

こんにちは、KMC 2 回生の utgwkk です。utgw、utgwkk などの名前で活動しており、全て私のエイリアスです。
ちなみに、最終的にこの記事のタイトルと内容が決まるまでに 3 回の考え直しがありました。人生は考え直しと決断の連続です。

ISUCON とは

ISUCON(Iikanjini SpeedUp CONtest) とは、決められた時間内にどれだけ web サービスを高速化できるかを競うコンテストです。2 人または 3 人のチームで参加することができます。9 月にオンラインの予選があり、それを勝ち抜いたチームは 10 月に本戦に参加することができます。本戦の会場は、渋谷ヒカリエにある LINE のオフィス (1) です。優勝賞金はなんと 100 万円！ 3 人で等分したとしても 33
万円は手に入ります。

具体的に何をするのか

競技開始時間になると、参加者全員に対して web アプリの一式が揃った VM のイメージが公開されるので、まずそれを使って VM を起動します。そして、立ち上がった VM に SSH でログインして web
アプリやミドルウェアを分析して改善していきます。
ベンチマーカーにリクエストを送ると、ベンチマーカーから大量のリクエストが送られてきます。それらのリクエストに対して、正しい内容を返せたか、またどれだけの量のリクエストをさばけたか、がチームの点数になります。この点数が高いチームの勝ちとなります。

感じたこと

さて、私たちのチーム (2) は、本戦の高度な問題設定に翻弄され、結局良い得点を残せずに終わってしまいましたが、同時に学んだこと・感じたこともたくさんありました。
(1)

2017 年 1 月までに新宿に移転するとのことです。私たちが渋谷で ISUCON 本戦に参加した最後の世代です。

(2)

チーム :innocent:。メンバーは @utgwkk、@wass80、@yu3mars— 15 —

根本的な問題を発見・解決する

最初に与えられる実装には、どこかに必ずテーマとも言えるボトルネックが仕込まれています。それをいかにして素早く見抜き、適切なコードに変えられるかがチームの明暗を分けます。ここを変えられると変えられないとでは、点数が何十倍も変わってきます。

やり方をきちんと知らないことに手を出さない

私たちのチームは、あまり練習していなかったミドルウェアを導入しようとして、結局失敗してしまいました。やはり練習しておくべきだったという気持ちと、あまり練習できてないのにするべきでなかったという気持ちがあります。

慣れている方は強い

高得点を取っている人たちはみな、私たちが気づかないようなところまで検討して、チューニングすることに成功しています。さすがに経験の差が出るといいましょうか、そういった方々からとにかく学
んでいくしかないです。
もしあなたが、来年以降の ISUCON で予選を通過したならば、何があっても絶対に懇親会に出席するべきです。

ヒカリエで夜景を見ながら食べる寿司はうまい
おいしかったです。

まとめ

運良く予選を通過することができた妖怪少女が本戦で見てきたのは、数々の洗礼でした。それは普段は絶対に経験できないようなことでした。
ISUCON という大会には、web サービス運用の大切なことが全て詰まっています。あなたが少しでも web アプリの実装に興味があるのであれば、ぜひ参加するべきです。学生であればなおさらです。
ISUCON には学生枠というものが設けられており、より予選通過ハードルが低くなっているのですから！
LINE 株式会社、ならびにスポンサー企業のみなさま、ISUCON6 参加者のみなさま、そしてチームメイトの @wass80、@yu3mars に感謝しつつ、記事を締めさせていただきます。

— 16 —

04自動化された一連の競技とストラテジー（DEF CON CTF 2016 を終えて）

tyage

近年，囲碁や将棋といった競技で “人工知能” が人間と勝負をして，目覚ましい成果を上げていることはよく知られているであろう．セキュリティコンテストにもその流れが来ており，今年の夏には AI同士の競技が行われた．さらに，そこで優勝した AI は翌日ラスベガスで開催される DEF CON CTFに参加し，人間と攻防戦を行ったのだが，私も人間の参加者としてお茶を汲みに (1) 行ったので，その感想を綴ろうと思う．
以降では CTF(Capture The Flag) と呼ばれる形式の競技について述べるが，前提知識を簡単に説明する．まず，CTF というのはここでは情報セキュリティの技術を競うコンテストの一種を指す．競技
方法は様々だが，基本的にはシステムやファイルから，Flag と呼ばれる機密データを抜き出し，点数を競う．ただし，以降で出てくるコンテストは攻防戦と呼ばれる形式で少し異なる．参加者各々が脆弱性のあるサービスを駆動させており，互いに脆弱性を突いて攻撃したり，自身のサービスの脆弱性を修

図(1)

攻防戦のイメージ（出典 : https://cgc.darpa.mil/CGC_DEFCON_Distribution_A_Final.pdf ）要はチームメンバーの補助— 17 —

正したりして競う（当然，サービスを止めてしまうと減点である）．その CTF の中でも歴史があり，最も有名と言えるのが，セキュリティカンファレンス DEF CON で開催される DEF CON CTF である．

CGC

今年の DEF CON 24 のテーマは “Rise of the Machines” で (2)，
機械を意識したものとなっていた．それもそのはず，今回一番注目されているのが機械同士の競技だからだ．DEF CON では DEF CON
CTF 以外にも様々な種類のコンテストが開かれているのだが，DARPA（アメリカ国防高等研究計画局）
が主催する CGC(Cyber Grand Challenge) の決勝戦がそれである．優勝賞金 2 億円（決勝に進出した
時点で 7500 万円）と金額面でもインパクトの大きい競技だった．
CGC ではプログラムを走らせて競技をするため，競技システムも通常とは一風変わったものになっていた．通常の CTF では，フラグがどこに隠されているのか，どのようなサービスがどういったプロ
トコルで動いているのか，他チームはどのような対策を施したのかといったことが隠されており，人間の勘で推測する場合がある．コンピュータがそういった処理を苦手とすることは明らかなので，CGC
では多くの情報がオープンになっており，必要なやりとりは全て API を通して行えるようになっている．
まず，競技は一定時間で進むラウンドで進行し，全チームに同一のサービスの実行ファイル（CGC
では CB: ChallengeBinary と呼ばれる）が配布されるというのは通常の攻防戦形式の CTF とさほど変わらない．大きく異なるのは，攻撃時に利用するインターフェースと，公開される情報の量だ．
詳細な情報は CGC の競技者向けページ (3) や，DEF CON CTF 運営のまとめページ (4) にあるので，そちらを参照するのがよいだろう．
とは言え説明なしに話を進めるのも難しいので，簡単に競技方法を説明する．

攻撃

攻撃用に提供されたインターフェースについて．参加者は，サービスに脆弱性があり，攻撃できることを証明しなければならないのだが，それを以下の 2 種類のいずれかの方法で行う．
1.

Instruction pointer と，レジスタ 1 つを指定された値に書き換える

2.

メモリの，指定されたアドレスから 4byte を取り出す

具体的には各チームは，ラウンド毎に PoV(Proof of Vulnerability) というファイルを XML か C のソー
スコードで記述して，ゲーム運営者に API を叩いて提出する．その際に，対象となるチームも指定できるため，敵チームごとに異なる PoV を投げることができる．ラウンドの終了時に，ゲーム運営者は
PoV を利用して攻撃が対象チームに通るかどうかを検証する．

(2)

ターミネータから来ているらしい(3)

https://cgc.darpa.mil/(4)

http://cgc-docs.legitbs.net/— 18 —

防御攻防戦では，各チームにサーバが配布され，その上で様々な防御策を講じることが多いが，CGC ではサーバに対するアクセス権は与えられていない．防御の方法としては，参加者には CB を変更するか，
IDS を設定するかのいずれかの方法しか提供されていない．IDS を設定することで，特定のバイト列を含む入力や正規表現にマッチした入力をブロックすることができるが，全チームの IDS の内容は公開されることもあって，ほとんど使われていなかったように思う (5)．結局のところ，CB の脆弱性にパッチを当てて更新するのが基本的な防御策である．

スコア

スコアリング方式も公開されていたのだが，少々複雑だった (6)．予選と決勝戦で細かく異なる点はあるが，基本的には問題 (CB) 毎に Availability * Security * Evaluation という計算方法になっている．
・ Availability: min(PerfScore，FuncScore)・ PerfScore: ファイルサイズ，メモリ使用量，実行時間を元に計算・ FuncScore: テストケースの通過率を元に計算・ Security: 運営や敵チームの作った PoV が防げているかを元に計算・ Evaluation: 提出した PoV が通るかを元に計算
要は，オリジナルの CB にできるだけ手を加えずに（動作を変えずに）脆弱性を防いだ上で，敵チー
ムごとに攻撃用の PoV を書くことができればよい．

図

スコア（出典 : https://cgc.darpa.mil/CGC_DEFCON_Distribution_A_Final.pdf ）公開情報

各チームには，全チームの CB，全チームの IDS，スコア情報，通信パケット（PoV の攻撃と，運営による検証が混ざっている），CB や PoV の検証結果といった情報が公開された．通常は，各チームのパッ(5)

少なくとも DEF CON CTF 2016 では(6)

https://github.com/CyberGrandChallenge/cgc-release-documentation/blob/master/CQE%20Scoring.pdf— 19 —

チ済みの CB が公開されることはないため，特殊な形式であった．

結果

CGC には私は参加しておらず，中継をホテルで見ていただけなのだが，簡単なものであれば一瞬で解いていたようだった．8 時間で，650 件の脆弱性が見つかり，421 件にパッチが当てられたようだ (7)．
当然だが，簡単な問題なら人間よりも早く解くことができるので，DEF CON CTF でも簡単な問題が大量に出された場合には，人間に勝ち目がないのではという不安があった．
優 勝 し た の は MAYHEM と い う AI で， こ れ が 人 間 の 競 技 に 参 加 す る こ と に な っ た． ち な み に
MAYHEM に関する論文は 2012 年に出ている (8)．

DEF CON CTF 2016
準備

DEF CON CTF には予選があり，本戦には予選やシード権で通過した 15 チーム + 1 機械が参加することになる．私はチーム binja のメンバーとして参加したのだが，今年は無事に予選を通過することができた．ただ，本戦のルールが発表されたのが 6/26 で本戦が 8/5 から始まるため，準備期間は 1 ヶ月と少ししかなかったように思う．そしてそのルールが，CGC と同様の形式で競技を行うというものであった．
なんやかんやがあって，実際の準備時間は 2 週間くらいだったが，その間にチーム内で役割分担と必要なツールとドキュメントの整備が行われた．
本戦でチーム毎に用意された座席数は 8 席だったが，遠隔からのメンバーの参加も認められたため，
binja からは会場に 8 人，遠隔から 5 人程が参加した．会場組の役割を決めておいたほうがいいだろうと言うことで，ディフェンス（サポートや，パッチの管理）が 3 人，オフェンス（CB やパケットを解析し，PoV を作る）が 5 人という配分になった．
ツールとしては，PoV 用のライブラリや mitigation 用のツール (bjmit) が作られた．
事前の作戦というか懸念として，「全てのチームの CB が公開されるということは，強いチームのCB をパクっていれば上位につけるのではないか」ということがあった（チーム内ではインスパイアと呼んでいたが）．さらに，パクられることを想定してバックドアを CB に入れるツールが作られた．実際，
この想定は当たり，CB をパクったりパクられたり，CB にバックドアを仕込んだりということが起きる．
私の主な役割は，CB，PoV の管理や API からデータの取得，表示を行うダッシュボードシステムの構築と運営になった．せっかくなので，ダッシュボードについて少し述べたいと思う．
ダッシュボード

CGC 形式で戦うにあたって，既に様々な情報やツールが公開されていたのがとても参考になった．

特に，CGC の決勝のシミュレータである，Virtual Competition(9) が公開されていたため，事前に競技(7)

http://www.atmarkit.co.jp/ait/articles/1608/12/news035.html(8)Unleashing Mayhem on Binary Code http://ieeexplore.ieee.org/document/6234425/(9)

http://cgc-docs.legitbs.net/cgc-release-documentation/walk-throughs/virtual-competiton/— 20 —

のシミュレーションが可能であった．Virtual Competition を試してみると，競技用のインターフェー
スは AI 向けのものであるため不便な点がいくつかあり，特に競技状況の全貌を人間が把握するのは難しそうだと感じられた．そのため，競技の情報を一元的に管理できるダッシュボードを作ることになった．
例えば，PoV の評価結果や，スコア，各チームの CB の状況が，最新数ラウンドに渡って比較できる
ようなインターフェースがあると戦略が練りやすそうであった（提出した PoV や CB がどのようにスコアに影響するのかが把握できる）．また，これから提出する PoV がいくつのチームに通るのかをまとめてチェックできると便利そうであった．他にも，各チームのラウンド毎の CB を解析用に保存したり，過去に提出した PoV や CB を把握できるようにする必要もあった．結果として構築することになったシステムの図がこれである．

図

構成図（出典 : http://potetisensei.hatenablog.com/entry/2016/08/21/174007 ）Sinatra をベースにガチャガチャとして，当日までにある程度動くものを仕上げることができた．ただ，突貫で作ったためバグがいくつかあり，競技中にも修正や改良を加える作業をすることになるのであった……
競技直前や競技中にユーザインタフェースの改善も行ったのだが，これが思ったよりも良かった．各
チームの CB や提出した PoV を一覧で表示する際に，sha256 hash 値の一部を表示するようにしていたのだが，これでは比較がしづらかった．そこで，CB の背景色を sha256 hash 値→カラーコードに変換するようにしてはと相談を受けやってみたところ，同じ CB を利用しているチームがひと目でわかるよ
うになった．本来の CB から変更を加えていないチームだけでなく，他のチームの CB をパクったチー
ムもわかるようになった．また，どのラウンドで変更したのかについても，遡って調べることが容易になった．まぁ，色分けについては運営が当日提供した Web インターフェースにも実装されていたのだ
が……
以下はその画面の一部だが，できてみると大きく 12 画面，DB には 12 テーブル作っており，1 競技用のものとしてはちょっとした規模のアプリケーションになった．

— 21 —

図

図

CB 一覧

PoV 一覧

図 PoV の結果表示画面— 22 —

図PoV のローカルテスト

以下では 3 日間の競技について時系列で振り返っていくが，詳しく知りたい方は binja メンバーのブ
ログや書籍も参照して欲しい (10)(11)(12)(13)．

1 日目

1 日目は 11:00 - 20:00 の競技時間であると知らされていた．11:00 からは 30 分のウォームアップ（練習）を始めるとのことだった．新しい形式の競技であるので，トラブルを事前に察知するために必要なのだろう．ウォームアップが始まり，ダッシュボードを運営サーバと接続したのだが，API の認証仕様
が digest 認証から basic 認証に変わっている，ping が通らないといったトラブルが発生した．他にもいろいろなトラブルがあり，30 分のウォームアップは 4 時間に延長し，15:00 から競技が開始した．
ウォームアップの間にいろいろなことが分かった．
・ ラウンドは 5 分置きに進む
・ ラウンドが切り替わる際に数十秒 ~ 数分のスコア計算用の時間があり，その間には CB や PoV を提出することができない・ CB や IDS を更新すると，次のラウンドにはその問題のスコアが入らない・ ラウンドが更新された後に，1 つ前のラウンドの結果が更新される場合がある
ウ ォ ー ム ア ッ プ が 終 わ り， 本 番 に 入 っ た．1 問 目 は trumpd と い う 名 前 の サ ー ビ ス だ っ た．
potetisensei がバッファオーバーフローを見つけて PoV を書き，その間に bjmit で mitigation を当てた
(10)

http://potetisensei.hatenablog.com/entry/2016/08/21/174007(11)

https://blog.urandom.team/post/c90-digital-and-c91/(12)

http://shinh.hatenablog.com/entry/2016/08/13/040611(13)

http://pastebin.com/Mjkb5JfH— 23 —

CB を提出．
その調子で順調に行くかと思いきや，CB の実行時間が手元の計測と異なり 2.3 倍になって計測されたりする．これは運営側のバグであると後から分かるのだが，この時に他チームとスコアに差が開くた
め，どこに原因があったのかで混乱．
そうこうしているうちに 2 問目，3 問目問題が追加される．PoV を書いても他のチームはパッチ済み
で通らないため，他のチームの CB をパクったほうがいいのではないかと言う話になった．1 日目も終盤になるにつれ，CB のパクリ合いのような模様になってきた．バックドアが仕掛けられていないかを警戒して，機械の CB を各チームがパクる様子もあった．

図

1 日目終盤の様子（LEGIT_00007 で CGC Winning Machine と同じ CB を 4 チームが共有していることがわかる）

1 日目は序盤に点数を落としてしまい，12 位という結果になった．また，ラウンドは 56 ラウンドく
らいまで進行した．
ダッシュボードにも反省点があり，PoV を投げる際に複数のチームにまとめて投げれるようにして，時間的なロスをできるだけ抑えたほうがよいことがわかった（5 分でラウンドが切り替わるため，PoVの投稿が間に合わない場合がある）ので，夜のうちに細かい修正も含めて更新をした．

2 日目

2 日目の競技時間は 10:00 - 20:00．競技開始からしばらくして，ラウンドが行ったり来たりするというタイムトラベル事故があった．機械のチームがバグらないか不安になりつつ，ダッシュボードは手で直すことに．その後，詳細なスコアは表示されず順位しか表示されなくなった．結果として，敵チームの PoV が通ったのかどうかをスコアから推測することが難しくなってしまった．
開始から 1 時間後，4 問目が追加される．4 問目の脆弱性がすぐに見つかり PoV を書く間に，3 問目の問題の PoV を作ったり，パケットから抽出したり，他チームの CB をパクったりする．他チームのCB をパクる際に，バックドアがあることがわかり，バックドアを潰して採用する．また，4 問目にmitigation を入れて更新したところ，他チームからパクられる．しかし mitigation を回避する exploit
を書くことで攻撃できるようになった．この辺りから，やはりバックドアを気にする必要が出てきたよ
うに思う．
私は自チームから投げる PoV の種類が増えて来て，どの PoV をどのチームに投げているのかを一覧で表示するようにする必要が出てきたため，そのページを作るなどもしていた．あまり競技には影響しなかったが，スコアサーバの脆弱性を突くと少し先のラウンドで追加される問題が見え，心の準備ができることが分かった．
5 問目が追加された．C 言語のコンパイラらしい．ここまでは 6~8 位を移動していたのだが，4 問目に当てたパッチでいくつかのテストが通らなくなったため FuncScore が下がり 11 位まで下落．パッチを当てるとスコアが下がってしまう可能性もあり，なかなか難しい．

— 24 —

6 問目は初めての 4 つのバイナリ複合型の問題だった．各バイナリが IPC で連携する形式で，解析が面倒である．ダッシュボードも対応できているか不安だったが，想定通り動いているようだった．
2 日目の終盤は安定してきて，脆弱性を見つけて PoV を書いたり，他チームの CB や PoV を解析しながらパッチを当てたりといったことが 1 日目よりはスムーズにできていたと思う．結果として，2 日
目終了時点では 8 位になっていた．
ただ，競技自体は安定せず，初めは 5 分だったラウンド時間が 8 分まで伸びていた．恐らく問題や
PoV が増えたことにより，PoV や CB の検証に時間がかかるようになったのだろう．結果として，本来ならこの日は 170 ラウンドに到達するはずが，140 ラウンドで終わってしまった．ここから，序盤のスコア差を埋めることがだんだんと難しくなってくる．

3 日目

この日は 10:00 - 14:00 までの 4 時間．1 ラウンドの時間が伸びていることから，30 ラウンドくらいで終了するのではと予想された（実際は 25 ラウンドで終了）．
3 日目に気づいたのだが，CB は全チームに公開されるものの，最新のラウンドの CB だけはダウンロー
ドできないようになっていた．同ラウンドで CB をパクられないようにという配慮だろうか．
また，残りのラウンド数も少ないため，CB の更新によって 1 ラウンド分の点数を失うことが大きな
失点に繋がることがわかり，より慎重になった．
3 日目に入り，7 問目の問題（CD 記録サービス）が公開され，
その 2 時間後に 8 問目（ハンバーガショッ
プのシミュレーションゲーム）が公開された．PoV がいくつか書かれたが，チームによって通ったり通らなかったりという状況だった．競技全体としても終盤に入り残り数ラウンドとなったため，更新時のペナルティを避けて CB を差し替えることをやめる判断をした．
この日は上位 3 チームしか順位が公開されなかったため，結果を知ることはできなかった．後日，結果が公表され，binja は 8 位だったことがわかった．

終わりに

ちなみに，CGC で優勝した MAYHEM は最下位に終わった．理由としては，今回の競技で非常にトラブルが多かったことが挙げられるのではないかと思う．MAYHEM は 2 日目まで正しいパケットを取得できてなかったようで (14)，そこでも大きくハンデを負っていたと考えられる．また，CB のパクリ合いといった，本来の競技とは異なるところで駆け引きがあった点も，機械が関与しづらかったのではな
いかと思われる．binja では「あのチームはバックドア仕掛けてそうだからパクるのは気をつけよう」
といった行動をとっていたが，こういったことはできなかったであろう．さらに，自動解析機がミスをするような仕掛けをしたチームもいるようだ．ただ，MAYHEM もいくつかの人間のチームに勝っていたタイミングがあったことは特筆すべきだと思うし，なかなか脅威であったと思う．
コンテスト自体はトラブルが多いことを除けばとても新鮮な試みで楽しかったし，Reversing 力やPwn 力を競うだけでなく，ゲーム上取るべき戦略が重要になる点も面白かった．また，ダッシュボー
ドも含めて短期間でチームメンバーがそれぞれ作成したツールが機能していたのはとてもよかった．もし次回も同様の形式でやるのであればもっとうまくやれるだろう．
(14)

https://twitter.com/MayhemCRS/status/762179685396598788— 25 —

図

スコア表（出典 : https://blog.legitbs.net/2016/09/2016-def-con-ctf-final-scores.html ）機械と人間の競技は，競技の仕組みを作り運用すること自体が簡単ではないが，今後はもっと多くの競技でも取り入れられるのではないだろうか．また，その時には今までとは異なる戦略を組む必要があるだろうし，それを考えるのは人間にとってとても楽しいことだと私は思う．
ちなみにこの記事のタイトルは，以前まで KMC で行われていた “組織化された一連の動作とパフォー
マンス” というイベント（現 : KMC 学習発表会）をパクってインスパイアしている．

— 26 —

05忘年会はもうチャット
でよくないですか～ハイライト～pastak

皆さんこんにちは。突然ですが、僕は前々からずっと果たしたい野望がありました。それは部誌のあとがきにも書いたことがある「KMC で座談会をして、その様子を部誌に載せる」ということです。今回のこの部誌は記事も少なそうなので、これは座談会企画をやるチャンスでは？と思ったのですが、如何せん日数がない。まともに座談会して録音して書き起こして編集する時間とかなさそうだったので、そうだチャットで全部やればいいじゃんということで行われました（この記事はこのような経緯を辿りつつ、デイリーポータル Z の「飲み会はもうチャットでよくないですか」(1) が楽しそうだったのでやってみたいという気持ちもあり開催されました）。

参加者紹介

今回呼びかけたところ以下の 9 人が集結しました名前pastakmuratatron
opesanzeta
hatsusato
nona7
tyage
kyp

意気込み
わいわい
ネットワーク最高
お酒は飲めません！！（法的に）未成年ですみんな信じて金より酒が先
リベンジ
リトライ
ぼや
友利奈緒

果たして、この 9 人で忘年会を開催し、Slack で会話をするという設定にしたところどのような展開になったのかを以下では抜粋しながら紹介します。

乾杯以前

会場に到着し、各自でノートパソコンを広げ始めたところ席が狭そうだったので、仕切りを挟んで２席に別れることに。

(1)

http://portal.nifty.com/kiji/160126195572_1.htm— 27 —

通常の忘年会だと、席が離れると会話が出来ないなどで困るので、ちょっと嫌な気持ちになるものですが、我々にはチャットがあるので、一切問題ないということですんなりと席を離れました。
その後、店に Wi-Fi があると聞いていたものの誰も繋がらなかったので、諦めて各自テザリングの準備をしつつ、飲み物を注文しました。

乾杯

当然乾杯をするのですが、タイミングを合わせるのが難しい。
「グ
ラスを持ちましょう」とかそういうのが飛び交いつつ、みんなでチャット窓に「乾杯」の文字を用意して Enter キーを押し、無言でジョッキを突き出していました（この様子を動画で撮ろうしたのですが、カメラ操作に失敗していたので、撮影出来ていませんでした）。
東京からも乾杯できるのはチャットの良い所ですね。

初めての注文「店員への注文は音声使っていいんですか？」から始まり、店員を呼ぶボタンを押してほしいことをジェスチャーで伝えようとする人（僕）などが登場し早くも混乱し始めました。

— 28 —

注文しキャベツ盛りが届き始めたあたりでチャットに集中していた人々の意識が食べ物に向き始めます。
チャットに集中していてお箸を獲得するのを忘れていた人。

誰も会話は一切していないので、キャベツ盛りについてくる岩塩を削る音と隣のグループのガールズ
トーク、そして店内の BGM（ジャニーズが多めだった）が本格的に BGM としての本領を発揮していました。

会話をしないため、口の中に食べ物がないと不安になるという現象も観測され始めます。

イヤホンをし始める

ニコ生でアニメを見始める部員が登場。この会の開催前から、もしかして会話をしないならイヤホンなどをしても良いのではという話があったのですが、このあたりからイヤホンが装着され始めます

URL は「Occultic；Nine - オカルティック・ナイン -」1 話～ 7 話振り返り上映会(http://live.nicovideo.jp/watch/lv282915425)— 29 —

チャット上ではだし巻きの存在が認知され、人々が群がりました。

イヤホン外して現実に戻ってくることもありました。

かやのみ「かやのみ」は声優の茅野愛衣が日本酒を飲みながら食べるだけの番組とのこと。ちなみに彼が見ていたのは #10(2)。

注文再び

このあたりで開始から 30 分が経過し、一度目の注文の品が届き終えたので追加注文の機運ですが、

初回注文時よりも症状が悪化しています。

さらに焼き鳥はタレか塩かを尋ねようにもテーブルメンバーがイヤホンをしていたので、独断で塩にするなどしていました。

(2)https://www.youtube.com/watch?v=gECKKMTosn8— 30 —

店員が食べ物を運んできてくれるたびに一番近い部員が小声で感謝を伝える。その声とキーボードの打鍵音、そして後方の集団の会話のみが聞こえてきます。

店員からの評価を捨てました。

パソコンは便利
パソコンがあれば、日本酒のメニューから情報を検索することが出来ます。便利ですね。

治安と様子

チャットは次々とログが流れて行っていますが、会場は静かで至って平和です。ちなみにこの時の BGM は V6 の「愛なんだ」です。

ずっと聞こえてくる

彼らは先程も紹介したようにイヤホンをしているので、V6 ではない別の何らかの BGM が聞こえている状態です。

そして、チャット上では各自どのような曲が流れる店に行きたいかという話に（飲み会開始から 1 時— 31 —

間半、やっと会話らしい会話が発生した）。

軟骨があごに来る発話が一切行われていないので、軟骨唐揚げで顎がつかれたという会話が発生。

そして発声の大切さに気付き、チャット上で発声練習が行われました。

1 時間半が経過

遂にバッテリーの充電が尽きる部員が登場し始めます— 32 —

たこわさ

そろそろ終盤

そろそろ終盤に差し掛かり〆の釜飯を頼み始めます。釜飯には蒸らしの時間があり、タイマーの音がまたしても店内に響きます。
このあたりで突然、そういえばチャットするとは言ったけど、発話禁止とは言ってなかったなぁと思い出しました。声を出す代わりにやってしまったジェス
チャーを思い出して恥ずかしくなりつつ、でも、ここでだからと言って発話してもよく分からない感じになるので、もう一度心を強く持ち直します。

ビッグバンは良いイベントだったよね— 33 —

その他

このあとは釜飯を更に頼んだり、ラストオーダー

大丈夫ですかと聞きに来た隣の席の部員が怒られたり、「8 秒に 1 回」大喜利が発生したりしていました。
このあとのログは眺めたところ、めちゃくちゃ
雑な感じだったので、まとめるのは不可能という感じだったので、ぜひログをご覧になってみてください（末尾に URL があります）。
ここまでで漏れている主な出来事としては店員に怪訝な顔をされたり（Twitter でのライブ配信を見ていた部員の感想）

僕が岩塩の手持ち部分についていたアルミホイルを削ってしまって謝罪したり、そしてそれをリニューアルしてもらったりというようなことがありました。

— 34 —

また、学びとしては串かつは指が汚れるので気をつけましょう。

チャットが静かになったら困るので、忘年会らしく今年の思い出発表大会を用意していたのですが、いまいち盛り上がらなかったので、そちらも全ログでチェックしてみてください。

まとめ

KMC の人々は普段から Slack で会話しているので、むしろ普段の飲み会よりも会話が弾んだのではないでしょうか。席が隣り合ってない人とも会話できるのは良いですね。
ただ食べ物は串かつなどだとキーボードが汚れてしまうので少し注文に工夫が必要そうです。
それでは、最後に「もってけ！セーラーふく」でお別れしましょう。

チャットの全ログは https://kmc.gr.jp/~pastak/c91_drink_chat で公開しています。

— 35 —

— 36 —

06部員へのアンケート
2016

wass802010 年発行の『独習 KMC vol. β』には「部員へのアンケート」というコラムがありました。そのアンケートを 6 年経った今、もう一度行ってみようというコラムです。
『独習 KMC vol. β』は https://www.kmc.gr.jp/projects/press/ にて無償公開されています。合わせてお読みください。

KMC でやっていること( 上位 4 つまで複数回答 )ゲーム制作が KMC の最も大きな活動であることは変わりません。お絵描き、DTM の活動が昔より活発になりました。また、下位にある様々な活動が KMC のごった煮感を生み出しています。KMC では 2014 年から Slack が導入された事により、サーク
ル内の交流がより深まりました。現在では KMC に不可欠なものになっています。

図KMC でやっていること— 37 —

図

図

PC の保有台数

図

スマホの保有台数使っている言語

図

最も使っているエディタ— 38 —

図

2 番目に使っているエディタ使っている言語( 上位 4 つまで複数回答 )競技プログラミングで使われる C++ が筆頭に上がっています。ゲーム制作では C# が使われている

ため 2 位。LL では Python より Ruby 派の人が多いようです。5 位となって浮上した Java は、京大情報学科のカリキュラムが C から Java に変更になったことが影響しています。Piet と JavaScript がKMC で同程度の影響力を持っているのは興味深いです。Haskell 人気は KMC でも勉強会が開かれるので納得がいきます。

PC の保有台数

大学や会社などから貸し出される PC を追加で持つ人も増えました。部誌βと比べて全体として少なくなっているのは、サーバーとして管理していた PC をクラウド等に移行してしまったのでしょうか。

スマホの保有台数

iPhone4 から iPhone7、Android2.3 が Android7.0 になりました。スマホを保有している部員は増えました。そして複数台保有している人も現れ、7 台も持つ強者もでてきました。

最も使っているエディタ

Vim Emacs 戦争は今回も Vim の勝利です。それ以上に Visual Studio が大きな派閥を占めています。

注目すべきは、2014 年発表の Atom、2015 年発表の Visual Studio Code でしょう。現代的なエディタを用いる人が増えました。

2 番目に使っているエディタ

今回はエディタのアンケートは、メインエディタとサブエディタに分けました。サブエディタは各々

好きなものを使っているようです。

— 39 —

図

最も使っている OS

図

学部・回生

図

2 番目に使っている OS

図

睡眠時間

図

— 40 —

就寝時間

図 （元）所属学部・学科

図

メガネの有無最も使っている OS

部員の最も使っている OS は意外にも (?)Windows のようです。macOS ユーザーは昔より増えました。

2 番目に使っている OS

部員がサブに使っている OS のアンケートでは、Debian 系が多いですね。デュアルブート環境より、VM で使う人が増えている印象です。

( 元 ) 所属学部 / 学科

情報学科が過半数ではなくなりました。そして、文学部と心理学部という文系学部の部員が現れ多様性が生まれました。KMC では学部学科回生大学生問わず広く新入部員を募集しております！

回生

今回アンケートに答えてもらった部員の内訳です。社会人の部員の解答も多かったです。1 回生が近年ずっと増加傾向なのは良いことですね。

睡眠時間

6 時間が最頻値です。日本人の平均は 7 時間だそうなので、ほぼ平均どおりの結果だと思います。12

時間以上寝る人が 4 人もいることが驚きです。日常活動は行えているのでしょうか。

就寝時間

30 時間制で表しています。大半の部員は日付が変わってから寝ることが多いようです。30 時 = 朝 6時に寝る生活が常の部員もいるようです。

メガネの有無コンタクトを含めメガネ率はおよそ 75% です。

— 41 —

図ガラケー vs スマホ

図主要に使っているマシンの CPU

図

iPhone vs Android

図

主要に使っているマシンの Memory— 42 —

図

最も使っているシェル

図

部室の出現頻度

ガラケー vs スマホ

βではガラケー 26: スマホ 3 でしたが、完全に逆転する結果となりました。

iPhone vs Android

時代にそぐったアンケートを追加しました。結果は拮抗しています。

最も使っているシェル

このアンケートは、「zsh を試して bash に戻したことある」を判別できれば面白くなりそうです。

主要に使っているマシンの CPU/Memory

サークルがサークルだけあって、マシンの性能はいいです。今時 8GB のメモリがないと人権がないと言われます。

部室の出現頻度

部室に月に何回ほど訪れるかという質問です。週に 2 回以上訪れる部員が多いようです。部室には居住空間があるので、毎日過ごす部員もいます。逆に遠隔部員も存在するので、ほぼ 0 という部員もいます。

— 43 —

主要に使っているドローイングツール( 単一回答 )KMC2 回生の asragi です。今年度の新入生歓迎プロジェクトである “お絵かき練習プロジェクト 2016” を担当し、今回の部誌の表紙イラストを描かせて頂きました。多くの人が利用している “AzPainter”、“FireAlpaca” はどちらもフリーソフトです。私もつい最近までずっと FireAlpaca を使用していました。引いた線の美しさや細かな部分の使用感では他のシェアウェアにやや劣るものの、レイヤーの管理や合成、ツールの豊富さ、各種フィルタなどの機能は豊富に備わっており、
ペイントツールとして十分な性能を備えています。ここ最近 KMC ではイラストを描く人が増えてきているのも、こうしたフリーソフトの充実が一因にあるかもしれませんね。KMC では看板やビラ、漫画などを制作する人も多く、その所為か、
シェアウェアでは多機能な “CLIP STUDIO PAINT” の人気が高いようです。

図

主要に使っている
ドローイングツール

主要に使っている DTM ツール( 単一回答 )DTM ツールの解説を仰せつかった tron です。
KMC では Domino と Cubase の使用者が多いようですが、実はこれらは性質が異なります。詳述は避けますが、Domino はシーケンサー (1) であるのに対し、Cubase はDAW(2) です。Domino を使う人はその他のツールと組み合わせて使っている人が多いと思われます (3)。
少数意見では、まず Studio One が 2 人います。これは無料版の用意されている
DAW で、そこがとっつきやすさになっているのでしょう。
そして FL Studio 使いが 1 人だけいます。私です。これから布教していこうと思います。

図

主要に使っている DTM ツール(1)

ここでは「音源に送る演奏データを作るソフトウェア」といったところ。

(2)

Digital Audio Workstation。音楽制作のための総合ツール。

(3)

Domino は単体では使える音源の幅が狭いですが、他のツールを組み合わせるとある程度解消されます。

— 44 —

07漫画好っきやねん♡
mirenn
はじめに

KMC 三回生の mirenn です。お絵かき界隈にいて、漫画を描くぞ描くぞと言ってなかなか完成しないといったことを繰り返す人間です。今回は、自分が部誌に描いた漫画についてと、あと NF（京大の学祭）期間中に行ったナンパについて記事を書かせていただきます。

まず、今回載せた漫画の経緯について少し

今回部誌に載せることにした漫画は 29 ページの戦記の漫画です、というつもりだったんですが、方向転換して 6 ページの蝶研漫画を描き上げることとなりました。どうしてそうなったかと説明すると、僕のクラスの友人 K くんが実はものっそい絵が上手いということが判明して、彼に漫画を描いてもら
おうと思いたったからです。もし気に入ったら清書してくれ！と蝶研の K くんの好感度を上げるために蝶研の漫画を描いたんですが残念ながら振られてしまいましたね。そんなこんなで出来ました。

漫画の作り方についてもう少し

漫画は今回以下の手順で製作しました。一般的な手順だと思います。
まずノートにネタをががっと描いて、それをもとに人に見せられるレベル（今回は K くんに見せるための）のネームを B4 で作って、そして、さらに清書を作ります。ここまでがアナログの作業。それからは、清書したものをスキャンしてパソコンに取り込んでデジタルの作業となります。清書したもの
を液晶タブレットを使ってお絵かきソフトのペンツールでなぞって線画を作って、最後にトーンなどを貼ったり写植をして終了となります。
今回のこの工程は４日で、木曜日の夜に作り始めて月曜日の夜に完成でした。友人 K の描く絵めっちゃ上手いじゃんと気づいた翌日の昼にネームを持っていったので、つまり絵を仕上げる工程の部分には３日以上かかっていて、やっぱり絵を描くのしんどいなぁ僕は絵描きじゃないみたいだという感じです。

— 45 —

上は同じコマを４つも用意している図（右上が最初にノートに描いたもの、左下が次に描いたネーム、左上が清書 で、右下が B5 サイズで出力した完成版）

四回同じコマを描くのは、ただ辛いといった感じです。ネーム描いてるときが自分は一番好きですね。
ネームの後は絵を描くだけなのに、それまでの工程の倍以上時間かかるんですよ……そりゃ辛いでしょ、ね？

漫画作ってどないすんねん

応募します。きららって 4 コマ漫画誌なので 6,7 ページで応募できるんですよ。これは６ページです。

きららかアース・スターに応募します、するぞ、と思ってたけどきららは未発表作品のみの応募なので必然的にアース・スターですね。漫画で飯食ってる人うらやましい、僕も食いたい！
さて、今回の制作で僕はある知見を得られました。それは短くて済む 4 コマ漫画の制作は短距離走のようで、普通のストーリー漫画よりも自分の飽きっぽい性格にあっているということです。ストーリー
漫画もネームだけなら割りとすぐなんですけどね……。これからも 4 コマは作っていこうかな、と思いました。僕と同じようなタイプのお絵かき勢の方は四コマをやってみると、いろいろと得られることもあるかもしれません。

— 46 —

What's

ナンパ

人生経験を深める高尚なものです。意外と悪いものではありません。ナンパの経験は、蝶研の漫画にインスピレーションを与えました。
ドドン！ここからはナンパについての記事になります。

ナンパの経緯僕はもう三回生になるので、こういった大学生のうちにしかできないことは早めにやっておかなけ

れば！と思ったからです。まぁ、その思考に至るには色々なことがあってなぁ？

最近ハゲてきている気がするんだ

僕はある日、そう母親に SNS でメッセージを飛ばしました。母方の祖父がハゲていると子はハゲる、という有名な遺伝的事実通り、僕は自分の生え際が祖父と同様の末路辿りかねないことに気づいたのです。M 字
型に髪が薄くなってきているみたいでありました。だから、母親に助けを乞うたのです。

そうして、母とメッセージで会話していたらという発言が母から飛び出しました。うん？ という感じですね。母さん、そんなこと今まで言った
ことないじゃん！ そこで僕は色々なことに気づきました。

まぁ僕もいい歳なんでね

今までそんなこと言われずに、勉強しろとしか言われていなかった状態で大学からいきなりそんなの

無理じゃろって話じゃん？ んん？ そういう意図があるんだったらさ、僕もさ、もっと若いときから練習してたよ？？ とか熱い責任転嫁をしてもしょうがないので。

— 47 —

ナンパをしてみよう

してみた。根が真面目なので、理性が邪魔をしてくる。最初の一声をかけるのが難しい。そこで、クレープの屋台の売り子をしていたテニサーの友人からクレープの値段表を借りてナンパをすることにしました。クレープ買っていきませんか？、と声をかけてそこから連絡先を交換するのです！！

ナンパをする僕

全滅しました！！

客観的に自分を見るとこれはなんかいろいろまずいな。

反省

NF は声をかけてもらうのを明らかに待っているっぽいという女の子はいますが、数打たないとだめ。

他にも反省点はあるけど、ここには書けなさそう。
世の中の厳しさを知った。

おわりに勇気を出して女の子にアタックする、そういうのって大事なことなんだ……。アウェイでナンパとまではいかなくても、気になっている女の子がいたらアタックする勇気を。
余計なおせっかいだとは思いますが、治安が悪化しない程度にパソコンサークルにも男女交際の幸せの風が適度に吹くと良いなと思います。最近オタサーの姫のような某エバンジェリストが炎上を起こしているのを見たりして、男女関係の繊細さのようなものを感じました。なかなか、難しいですね。
〔編注：次ページから漫画が始まりますが、右開き仕様なので 54 ページからお読みください〕— 48 —

— 49 —

— 50 —

— 51 —

— 52 —

— 53 —

— 54 —

あとがき
■ jf712

ここにあとがきを書きます■ murata

僕のあとがきの内容は上の人と同じ内容です■ pastak

過去の部誌のあとがきにも書いたかもしれないのですが、ずっと KMC で座談会をやってそれを部誌に載せたいという 1 つの夢が叶いました。チャットだと書き起こしとかしなくて良いので、締め切りの前日にチャット飲み会を開催したのに無事間に合いました。是非流行ってほしいですね。
次回の夏コミは何もなければ 40 周年記念カンファレンスの振り返りを書くと思います。みんな来てくれ〜〜 conf.kmc.gr.jp■ tyage

佐倉綾音さんは大学を卒業したのだろうか．もしかしたらうちの大学にいるんじゃないか．そう思うことで今日も大学に通うことができます．ありがとう あやねる．
■ utgwkk

これからもカワイイボクこと輿水幸子をよろしくお願いします。SKK は最高。

■ wass80

帯グラフは Ruby で SVG を吐いて作りました。ジャンル分割できる帯グラフ的な量率グラフを作れるツールを見つけられなかったことが辛い。グラフを作ったあとでもう一度探すと D3.js をつかう方法がありました。その結果の SVG をファイル保存するのに PhantomJS を使うと出てきて迫力がある。
■ asragi

今回の部誌の表紙・裏表紙を担当しました。技術系や飲み会など取り扱う内容に対してデザインが少しかわいくなりすぎたかなと反省しています。次また描く機会がもしあればもっとかわいくします。精進します。ありがとう！
■ suzusime

前回に引き続き編集長をしました。今回部誌を出そうという話が出たのが 11 月祭の期間にごはんを食べていたときで、記事の〆切が 10 日後という恐ろしいスケジュールになってしまいました。「どうせページ数も少なくなるだろうし今回は実験的な部誌として InDesign で組もう！」ということだったのですが、予想外に記事がたくさん集まってページ数が多くなったので大変でした（嬉しい悲鳴）。
「一
度プロみたいに InDesign で本を作ってみたい」という私の野望があってこうなったのですが、難しいなぁという感想を得ました。GUI ベースなソフトウェアなだけあってなかなか思い通りに操作できな
くて（Word の不如意さに近い）、CUI に慣れた身としては TeX のほうが数倍簡単で楽に感じましたね…… ただ良いデザインをあげてくれた maztani 君のおかげで綺麗な本になったと思います。最高。最高の部誌も出来上がったということで、私はこれからもつよい巫女さんになれるようにがんばっていきたいと思います。ありがとうございました。皆様に幸多かれ。良いお年を！

— 55 —

独習 KMC vol. 102016 年 12 月 29 日

初版発行

表紙絵・デザイン
裏表紙絵・デザイン
ブックデザイン編集
発行

asragiasragimaztanisuzusime

京大マイコンクラブ

メールアドレス
Web
印刷・製本

ISDN 278-4-485253-11-0

info@kmc.gr.jp
https://www.kmc.gr.jp/
コーシン出版
Printed in Japan

落丁・乱丁の際は在庫のある限りお取り替えいたします。
上記のメールアドレスまでご連絡ください。

— 56 —

独習KMCvol.10
■利用分類
部誌
■製品分類
KMC
■レベル
初級

中級

上級