注意 この投稿には一部ネタバレを含んでいる可能性があります。
またまた小林さんちのメイドラゴン関連の投稿です。
このアニメでは、主人公の小林さんが SEなのに 作品中でコードを書いている場面がいくつかあります。これらの場面ではコードを実際に書いている画面までくっきりと写っています。
凝ってるなぁと思って少し調べてみることにしました。
登場したコード
第一話
20:10ごろ、トールがケツァルコアトルと電話し終わった直後、曇り空をブレスで晴らす直前、小林さんの職場が一瞬写ったシーンで。
def __delitem__(self, key):
self.db.delete(self.table, where="session_id=$key", vars=# 見切れ
def cleanup(self, timeout):
timeout = datetime.# 入力中
第五話
02:25ごろ、OP直後、小林さんが同僚に「最近明るくなった」と話される直前。
import os, time, datetime, random, base64
import os.path
from copy import deepcopy
try:
import cPickle as pickle
except ImportError:
import pickle
from hashlib import sha1
from .# 入力中
06:14ごろ、トールが小林さんの会社を訪れた時。小林さんが同僚のPCに表示させられたこのコードを指し示した。
def _validate_ip(self):
# IPアドレスの変更を確認する
if self.session_id and self.get('ip', None) != web.ctx.ip:
if not self._config.ignore_change_ip:
return self.expired()
def _save(self):
if not self.get('_killed'):
self._setcookie(self.session_id)
self.store[self.session_id] = dict(self._data)
else:
self._setcookie(self.session_id, expires=-1)
def _setcookie(self, session_id, expires='', **kw):
cookie_name = self._config.cookie_name
cookie_domain = self._config.cookie_domain
cookie_path = self._config.cookie_path
httponly = self._config.httponly
secure = self._config.secure
web.setcookie(cookie_name, session_id, expires=expires, domain=cookie_domain, httponly=httponly, secure=sec#見切れ
def _generate_session_id(self):
"""ランダムのセッションIDを生成する"""
while True:
rand = os.urandom(16)
now = time.time()
secret_key = self._config.secret_key
第13話(最終話)
トールが去って二日後の夜、滝谷くんからの飲みに行く誘いを断った直後、小林さんのメガネに写る。
髪の毛で見えないところは?とする。
?????e = ShelfStore(shelve.open('sess #見切れ
XXX: ?helveはスレッドセーフ?要確認。
"""
def __init__(self, shelf):
self.shelf = shelf
def __contains__(self, key):
return key in self.shelf
def __getitem__(self, key):
atime, v = self.shelf[key]
self[key] = v # update atime
return v# 入力中
紛れもなく Python ですね。
出処を探す
情報が揃ったのでとりあえずググってみましょう。まずは第一話のコードでググります。
一番長い行でググりましょう。検索結果
おや? 早速よく似たコードが……確かめてみましょう。 最上位検索結果
み、みにくい……。めげずにページ内検索で探します。
見つかりました!
このコードの最初に、
"""
Session Management
(from web.py)
"""
とあります。
どうやらパブリックドメインの Web 用 Python フレームワーク、 web.py の一部のようです。
GitHub にソースが上がっているようなのでそちらを見ます。314行〜が該当範囲のようですね。
もしかしてと思い、他のコードも同ファイル内で調べてみると見つかりました。
話数 | 位置 |
---|---|
第一話 | 314行〜 |
第五話1つめ | 6行〜 |
第五話2つめ | 126行〜 |
第13話 | 329行〜 |
表にまとめるとこうなります。
コメントが日本語に翻訳されてますね。しかも訳がうまい!
小林さんを探せ
注 ここからはネタです。
さて、このコードが小林さんによって書かれた、とするならば、このファイルのContributorsの中に小林さんがいてもおかしくはないはずです。
このファイルのContributorsは現時点で以下の7人です。
この中に小林さんがいるのでしょうか。
Gitでは、 [Git Blame] (http://qiita.com/siluejp/items/44960964ecbac77fe19a)という機能を使ってコードを誰がどのコミットで書いたかを見ることができます。
これはGitHub上でもこのボタンを押してみることができます。
ボタンを押すと、このような画面にいきます。
この機能を使って調べてみると、作品中で小林さんがコードを実際に書いていた(カーソルが乗っていた)17行目と318行目、338行目を書かれた人は@anandology (Anand Chitipothu)さんで、同僚に指し示していた143行目近くを書いていたのは@seanhoughton (Sean Houghton)さんでした。
小林さんが書いていたところ:
この3つの行が同じ作者なのはなぜか? 小林さんだからでしょう!
同僚に見せていた箇所:
作者が小林さん(?)に何人か混じってますね。これはそのとき見せていた同僚なのでしょう!
こんなにも辻褄が合うのは偶然でしょうか?
つまり、@anandology (Anand Chitipothu)さんが小林さんで、@seanhoughton (Sean Houghton)さんはそのとき近くにいた同僚の男性ということになりますね!1 小林さん、インドの方だったんですか!ナマステ
最後に
2021年7月二期放送決定おめでとうございます!
-
なりません ↩