コンパクトでない空間

a good experience become even better when it is shared

Web管理係の引き継ぎをした振り返り

私はこの一年間サークルでWeb管理係をやっていたのだけれど、その引き継ぎが今日行われて、私は任期を終えることになった。思えば、一年前の今頃は基礎中の基礎であったpwdすら怪しいものだったから、ただのうのうと言われるがままに操作していただけのわりには、一年間で随分サーバー管理に詳しくなったものだと思う。それにしたって、まだまだひよっこではあるけど。

この一年間で、サークルのサーバー構成は随分と変わった。というより、M2の先輩のいかろちゃんが変えた。私が知っている限りは、先代、先先代ではサーバー構成の変更はほとんどなかったので、激動の一年を担当させてもらえたと思う。サーバー構築もansibleという構成管理ツール*1で自動化され、しかもそのansibleもgithubでバージョン管理*2されるようになった。今後サークルのサーバーに変更を加えたくなったら、直接サーバーをいじるのではなく、ansibleをいじり、そのansibleのバージョン管理を的確にgithubで行う必要がある。うちのサークルはサーバー管理サークルではないし、そもそもプログラマばかりでもない。次の代のみんながみんなそんな技術を持っているわけではなく、次代のWeb管理係も例に漏れず、一からのスタートだ。つまり、私の仕事はまだ全然終わっていない。私がいかろちゃんにそうしてもらったように、これからは私が後輩を育成していく番なのだ。とはいえ、いざとなったらいかろちゃんがなんとかしてくれる。この安心感は心強い。いかろちゃんといういい指導者、教育を受ける環境に恵まれたと思っている。

さて、以下はその後輩指導の第一歩として、今日の引き継ぎを振り返ってみようと思う。自分自身反省するためのメモのようなものだ。今日の引き継ぎには、いかろちゃんこそいなかったけれど、先先代Web管のkakiraさんも同席してくれた。話はまず、Web管理係って何をするの?というところからはじまる。

これはかなり難しい問いだと思う。障害対応、サーバー構成の変更、セキュリティの設定、議事録のアップロードを含めたHPの更新、etc。サークルのサーバーに関わることはなんでもやるのだ。ただ、忙しい中興味のないことを無理にやらせてもお互い得はない。そもそもサークルは仕事ではないし、それぞれができることをできる範囲ですればいいもの。だから、後輩がなにをどれだけしたいかを尊重するつもりだ、やらない部分は他のサークル員にも協力してもらうなどの代案をこちらで考える、と伝えたら、「なにができるようになるんですか?」という質問。これまた難しい。一年間、本業の学問やサークルの他の活動で忙しいなか少しずつ学んでいくのであれば、できるようになることももちろんあるが、できないことも多い。私はこの前SSL証明書の取得に伴うwikiの障害の原因が一人では特定できず、いかろちゃんの力を借りたし、サーバーの移転に伴い、会則の変更差分が移行されていなかった問題も、HPがansibleで管理されていないため直にサーバーにアップロードしなければならないことがわからず、いかろちゃんに質問をした。少なくとも私の一年での成長はこんなものだ。

今日の引き継ぎの目的は以下の三つだった

  • 議事録をアップロードできるようになってもらうこと。そのための環境構築

  • 後輩がサーバー管理にどのように関わりたいのかの希望の確認

  • 今後の予定決め

ひとつめに関しては、かなり苦労した。新サーバーでは、いかろちゃんがpython2*3で動くマクロを使って議事録を自動的にアップロードできるようにしてくれているのだけれど、それにfabric*4というライブラリを用いている。これが、私のUbuntu*5機では比較的あっさりインストールできたのだけれど、後輩のWindows7にはなかなか入ってくれなかった。

http://qiita.com/yuu116atlab/items/79f92dd38b79364b8e68 http://qiita.com/Kuchitama/items/18b63271bf706e34e8b1 http://k-holy.hatenablog.com/entry/2013/04/08/202042

これらの記事を参考にインストールしようと試みたものの、どうにもうまくいかなかった。最終的には、Microsoft visual c++ 9.**6が必要というエラーメッセージが出て、古いバージョンのC++を追加するのは危険、というkakiraさんの進言に従い、Windowsへのインストールは諦めることにした。代わりに、仮想マシンを立ててもよかったのだけれど、また仮想マシンの環境構築に時間がかかるので、サークルの予備サーバーのCentOS*7ssh*8で遠隔操作し、予備サーバー上から議事録をアップロードすることに決めた。しかし、CentOSへのインストールにも罠があり、fabricをインストールするのに必要なPyCrypto*9がインストールできない。

http://qiita.com/satoruf/items/6844755b6378fedde037

最終的に、kakiraさんがこの記事を見つけてインストールしてくれた。それから、コマンドコンソールからのsshもうまくいかなかったらしく、Tera Term*10を使ってアクセスしていた。Tera Termでscpもできるらしい。Tera Term、Windowsの良心だな、と思った。

というわけで、最終的には議事録のアップロードはWindows7からサークルの予備サーバーにTera Termのscpで議事録を送り、sshでログインし、pythonを動かす、という形になった。回りくどいことこの上ないけど、予備サーバーがインストール等のときに若干重い以外は案外ちゃんと動いてくれる。実際にアップロードも無事成功した。結果的にCentOSからアップロードすることになったことで、後輩にWindows7では使えないmv、pwd、lsなどの基本的なコマンド*11も教えられた。よかったよかった。今思うと、サークルの予備サーバーからアップロードした方が、今度毎年Web管理係が変わって行っても個々のパソコンの環境に依存せず同じ環境を使うことが出来るので、かえってよかったのかもしれない、という気もする。しかし、予備サーバーもなかったらLinux仮想マシンを立てるしか方法はなかったのか。fabric、ほんとにWindowsでは動かないのだろうか。なんというか、Windowsはサーバー管理にはつくづく向いてない。

今後については、現在会則が古い分+更新差分のpdf2つで管理されているので、古い会則の元となったTeX*12を更新し、githubでバージョン管理したいという問題に対応してもらおうかなと思っている。後輩にまずはgithubに慣れてほしかったので、その意味でもちょうどよさそうだ。新しく作った会則のpdfのHPへのアップロードまで手が回るかは怪しい。少しずつ段階を追って慣れて行ってほしいので、TeXのバージョン管理でいっぱいいっぱいのようなら、アップロードは私がやろうかと思っている。もし余力があれば後輩の現Web管理係にやってみてもらおうと思っているけど。

会則TeXなの?というのは誰に言っても突っ込まれるポイントだ。確かにTexは優秀な言語ではあるけど、会則を書くにはゴツすぎる。これから会則を変更する人たちは全員TeXを学ばなければいけない。正直私の目から見てもmd*13で十分だろうという気はする。mdを学ぶのはTeXを学ぶのに比べたらめちゃくちゃ簡単だ。TeXを学ぶ大変さが麻雀のルールを覚えるぐらいとするなら、mdを学ぶ大変さはババ抜きのルールを覚えるぐらいだ。それでもTeXを会則に使う理由はただ一つ、現行のものがなぜかTexで書かれているからだ。多分、会則が作られた当時まだmdが普及していなかったのだと思う。それか、書いた人がちょうどTeXがマイブームで使ってみたかったのかもしれない。とにかく理由は何であれ、私はそれをmdに書き直したくない。面倒くさいし、こういう堅苦しい書類ものはあんまり頻繁に大きく手を加えるものではない気もする。写し間違えて怒られたら嫌だ。これで、TeXが今時どこでも使われていないおわコン(死語)であれば、TeXで書かれた会則は負の遺産だし、早めにmdに移行してしまおうとも思うが、TeXは全然おわコンではなくまだまだ学ぶ価値のある技術なので、いい勉強になるのではないだろうか。そんな理由で別にTeXのままでもいいんじゃないかな、と私は思っているけど、いかろちゃんは気になるらしい。正直私はどっちでもいいので、現Web管本人がmdにしたいと思うのであればmdに直してもいいんじゃないかとは思っている。

*1:プログラミングした通りにサーバーの設定等を行ってくれる

*2:ファイルの更新履歴を保存しておいてくれる。変更によってなにか重大なエラーが発生したときに簡単に元の状態に戻せる

*3:わりとなんでもできるプログラミング言語

*4:離れたところにあるサーバーに通信するのに使うらしい

*5:WindowsMac等のOSと同じ働きをしてくれるもの。Linux系と呼ばれる

*6:c++というプログラミング言語のバージョン9シリーズ。今は14とか、古いもので11とかが主流なのでとても古い

*7:WindowsMac等のOSと同じ働きをしてくれるもの。Linux系と呼ばれる

*8:通信の方式のひとつ。暗号化されるのでセキュリティ的に安全

*9:よくわからないけど多分名前的に暗号化等に使うライブラリ

*10:Windows用ソフト。ssh接続をうまいことやってくれる

*11:ファイル構成を確認したり編集したりする方法の一つ。サーバーによく使われる低機能のパソコンでも使えるのでサーバー管理に必須

*12:数式等をpdfにするのに優れたプログラミング言語

*13:markdownというプログラミング言語。html、pdfなどの文書がめちゃくちゃ簡単に書ける

ハワイ大留学レポ~研究編~

 今月一日にハワイから帰国した。この前インド行ってたじゃん!とか言われそうだけど、インドから帰って三日後から、またハワイに飛んでハワイ大学に一ヶ月の短期留学をしていたのだ。学科の先生にハワイ大の先生と親しい方がいらっしゃって、その他にもたくさんの方々が学科間短期留学のために尽力してくださって、この留学は実現している。一年に一度お互いに二名ずつ学生を送り合うプログラムで、私たちは千葉大からの二度目の留学生だと言われた。留学プログラムの主な内容は、研究、授業の聴講。私はその他にも情報系サークルの見学もしてたけど、中でも一番貴重な経験は断トツで研究に携わらせていただけたことで、今回はその研究についてのレポートを忘れないうちに言語化しておきたい。

 私はビヨーン・ヒュースハンセン教授(Prof. Bjørn Kjos- Hanssen)の元で研究を手伝わせて頂いていた。ビヨーン博士の研究分野はオートマトンオートマトンは簡単に言えばパソコンのほんとの基礎の基礎の最低限の仕組みをモデル化したもの。情報系の、特に計算機科学の分野では大学二年生とかで習うような常識だろうけど、日本では数学科でオートマトンを習う学科は少ない。千葉大学の数学科はオートマトンを学べる貴重な学科だけど、それでも全員が学んでいるわけではない。留学中にやることを決めるために興味のある分野は何?と聞かれたときにはロジックとトポロジーと答えた気がするので、ロジックでもトポロジーでもないオートマトンの研究者のもとに配属されたのはなぜなのかわからない。オートマトンもかなり興味のある分野であることには違いはなかったし、結果的にとてもいい経験をさせていただいたので、これもきっと運命、巡り合わせなのだろう。

 研究を手伝わせていただいて、一番に思ったことは、「研究って、案外手の届くところにあるのかも」っていうことだ。もちろん、論文を書くのは決して簡単なことではないと思うし、数学で論文を書いている方々のことはビヨーン教授も含めとても尊敬している。数学の素養と、大変な努力の結晶が論文なのだと思う。それでも、以前の私が思っていたように、ほんの一握りの選ばれた人たちが人生をかけてようやくたどり着ける私にはまったく手の届かないものではなくて、私にもこれから頑張ればできるのかもしれない、と思ったのだ。

 手伝い、といっても具体的に私がやっていたことは、想像していたような具体的な実験や単純作業とは少し違うものだった。週に二回、チームのミーティングがある。最初は私とビヨーン教授と、研修生のような立場のヘイヨンさんの三人で、ビヨーン教授の部屋で行われていたけど、だんだん一人また一人と研究に興味をもった人が参加し、最終的には六人のうちその日空いている人四、五人が集まって空き教室でわいわい話す賑やかなミーティングになっていた。そのミーティングの中で、ビヨーン教授が研究について今考えていることや今後の課題を話す。すると、私や他のメンバーが、この部分の定義はどうなっているんだとか、こう考えたらどうかとか、そんなことをしゃべる。一時間から一時間半たってみんなのおなかがすいてきたらミーティングは終わり。そのままみんなで食堂に向かい、雑談をする。ご飯を食べ終わったら解散。しばらくするとその日のうちか翌日にビヨーン教授がメールでミーティングの内容をまとめたpdfを送ってくれる。私はそれを読んで、ふとしたときにぼんやり考えながら授業を受けたり他のことをしたりする。私のした「手伝い」はそんな生活だった。

 本当はミーティングでしゃべるだけが論文を書くことではもちろんなくて、ビヨーン教授がやってくださっていたtex*1化など他にもたくさんすることがある。私のした手伝いは、なんだか素人がプロの作った料理を味見して好き勝手感想を言うような、おいしいところだけやらせていただいくようなものだったと思う。それでも、素人紛いの発想が役に立ったこともあったようで、少しずつ完成していくpdfに私のアイデアが盛り込まれていくのを見ると、お膳立てされた留学プログラムなりになにかをした気分になった。たまたま今回は新しい論文のテーマを模索している研究段階だったから美味しいところをいただくような形だったけど、やることがほとんど決まっていたらまた違う当初想像していたような単純作業を手伝うことになっていたのかもしれない。この一ヶ月はひとつの論文が発表されるまでのスパンのほんの一部にすぎず、実際に論文を出すにはもっともっとたくさんのやることと苦労とがあるのだろう。それでも、少なくともアイデアにおいて、今の私でもある程度は通用すると、手も足も出ないわけではないと感じたことで、論文を出すというものが今までよりずっと実感を伴って見られるようになった。

 幸いなことに、日本に帰国してからも、チームとして連絡を取り合って研究の手伝いを継続させていただけることになった。これは、とても光栄で貴重でありがたいことだと思う。論文というものが、いかにはじまって作られて発表されるのか、そのひとつのサイクルを最後まで間近で見ることは、きっと私の将来に大きな意味をもつと思う。

 この留学の中で、ひとつ強く感動したことがある。それは、昼食中の雑談だ。最初はどこの食べ物がおいしいとか、あれはおいしくないとか話していたのだけれど、研究者が集まれば、自然と話題は数学や計算機科学に向かうのが性。誰の研究は厳密にはなんと呼ばれる分野なのか、とか、計算可能性とはどこからどこまでを指す分野なのかとか、すぐそんな話題にシフトしていく。私はもともと大勢で話すと日本語でだっていつ口をはさんでいいかわからなくなるし、やはり日本語ほどは英語は話せないので、話を振られない限り自分からは話さなかったけど、聞いているだけでもとても楽しかった。将来のために他の人から技術を盗もうとか、できるところを見せて自分の評価ををあげようとかじゃなくて、自然とただそれが楽しいから数学の話をする。楽しいから延々といつまでも話している。高校を卒業して数学研究会の友達と会わなくなってから、彼らがそれぞれの専攻に進んで数学の話をしなくなってから、時間に取り残されたようにずっと私が探し求めていたものがここにあったと感じた。小学生が恐竜やカブトムシに目を輝かせるように、私にとっては数学の話を聞かせてくれる友達は夢の詰まったとてもキラキラした宝物だ。あるいは、猿が木に登るように、ハムスターが狭いところに落ち着くように、私にとってはこれが、自分の生態に合った自然でストレスのない環境であるとも感じた。

 数学徒同士で数学の話をするのは、ビヨーン教授たちだけではない。同じロジックの授業をとっていたダニエルたちともよく宿題のことや授業のことで延々と議論をした。千葉大学にはあまりそういう話に付き合ってくれる友達はいない。なんとなく、みんな各々勉強していて、議論しながら学ぶ習慣はないように思う。私は、話し相手がいた方が楽しくて、勉強しやすくて、頭も一人のときより働く気がするんだけど、一緒に勉強しようと誘ってもあんまりみんな乗り気ではなさそうだ。みんなが一人の方が勉強しやすいと、一方的に教えるとかならともかく、一緒だと勉強しにくいと言うなら、それは尊重するしかないけど、なんだか寂しかったりする。できるだけ、一緒に数学を議論してくれる友達は大切にしたいし、そういう人がいる環境に身を置きたい。

f:id:saho-london:20161003081333j:plain

*1:数式をpdfにするのに優れたプログラミング言語

「自分には友達がいない」の呪い

友達ってなんだろう、っていう思考実験についてのひとりごと。

「自分、友達いないし」
と言う人は結構いる。私も昔そうだった。
そんなことを言うと決まって、
「私は友達だよ」
なんて言われるんだけど、そう言われてもどうにも友達って気分になれない。
こうなっちゃうと、もう、友達というものの作り方がさっぱりわからなくなる。
友達ってなんだ。話しかければみんな相手してくれる。誘えば遊んでくれる人もいる。でもそれってなんだか、友達って気がしない。
友達って、ぼっちだって笑われないように、毎日お弁当を一緒に食べる保証をし合う取引相手なんだろうか。友達ってもっとあったかくて、救われる存在のはずじゃないんだろうか。
みんな当たり前みたいに友達を作ってる。私だってクラス替えの直後には話しかけてみたり馴染むように努力をしたはずなのに、今は休み時間になるとみんなそれぞれグループを作ってお弁当を食べていて、私は気がつくと一人だ。
話しかけていれてもらうことはできるけど、そんなことをしてもどうでもいい当たり障りのない話をするばかりで全然面白くないし、疲れるし。
どうしてみんな簡単に友達を作ってあんなに楽しそうにしているんだろう。私はどうしてみんなのようにできないんだろう。私には人間として必要ななにかが致命的に欠けてるんじゃないだろうか。私が私である以上一生友達は作れないんじゃないだろうか。
そんなことを言うと今度は、「自分から壁を作ってる」って言われる。私たちは受け入れるつもりなのに、あなたが自分で勝手に壁を作ってるんでしょ。自業自得だよ、って。
壁ってなに?どうやったらなくせるの?
確かにみんなとの間に厚くて高い壁は感じるけど。でもそれは私が好きで作ってるわけじゃない。あなたたちが自分達で勝手に取り決めをして、その取り決めを知らない私との壁を作ってるんじゃないの?
私はこんなにも友達がほしいと思っているのに、壁を作りたいなんて思ってるわけないじゃん。
どうして誰もわかってくれないんだ。
そう思ってた。

今はどうかというと、友達に囲まれて、楽しく日々を送っている。
今なら思う。昔疑問に思った「壁ってなに?」の答え。壁は、文化の違い、価値観の違いだ。どっちかが作ったものではなくて、人と人が違う以上、自然とそこにあるものだ。両側から乗り越える努力をするものだ。
今日、後輩と、「後輩ちゃんは嫌だと思ったら言ってくれるから、言ってくれたものについてはできるだけ気を付けてるんだけどね」「それで十分なんですよ」という会話をした。
他の友達とも、「同じ趣味を共有して遊んでくれる人がいる、それだけで十分ありがたい」という話もした。
多分、この二つの会話に、友達って概念のエッセンスが詰まってる。これは、私が何度も言われて嫌になった言葉だけど、それでもこうして友達ができてみるとこの言葉しか浮かばないから、書くことにする。友達っていうのはなにも難しい概念じゃなくて、きっととてもシンプルなんだ。
一緒にいる。話す。遊ぶ。それで、お互いに、悪くないなって思う。それだけで友達になれるんだ。
もちろん、昔の私はきっとこの説明じゃ納得しない。だって実際話して、遊んでて、相手は友達だと言ってくれてるけど、友達って気がしない、って言うだろう。そんな人にもわかるように丁寧に説明するなら、こうだ。
あれもこれもバレたら嫌われるから隠さなきゃとか、そんな余計なことは気にせず、ただ自分のやりたいようにやって、話す。ただ、なにも気にしないわけじゃなくて、これは嫌だと言われたことだけはやめる。このルールで接していて、自分が嫌だなとも疲れるとも思わなくて、相手も嫌だなと思わなかったら、友達だ。
ま、自分のやりたいようにやるっていうのは結構難しい。自分がなにをやりたいのかって自分のことなのに案外わからないし、プチトラウマみたいなものがあってどうしても怖くてたまらなくてできなかったりもする。自分が嫌だと思っているかどうかに気づくのも苦手な人は苦手だと思う。
自分には友達がいないと思ってしまうと、友達を作るには人一倍努力して周りに合わせなければと思うし、そうなると「自分がやりたいようにやる」からどんどん離れていく。悪循環、「自分には友達がいない」の呪いだ。
友達っていうのは、シンプルって意味では難しくないけど、難しい人にとっては難しいっていうのも、否定していたら前に進めない事実なのかもしれない。

私は、言葉や人の気持ちを大切にする人と話していると楽しい。学問や芸術や文化に興味のある人と話していると楽しい。
ノリや雰囲気に重きをおいた会話や、人を傷つける会話、勉強を軽視するような会話はあんまり楽しくない。
あなたはどんな人が好きで、どんな会話が好きなのだろうか。
もしあなたが友達がいないと感じるなら、友達はいるはずなのに寂しいと、どこか繋がっていない、理解されていないと感じるなら、友達を作るために、幸せを掴むために必要な最初のステップは、自分を知ることかもしれない。

受け入れ先企業は神ではない話

8月に行ってきたインドのインターンシップで、学んだことのハナシ。
期間は3週間。日本においては長めのインターンシップだが、
海外においてはむしろ随分と短いほうにはいる。
この三週間、ほんとうにたくさんの人に、
お世話になって、迷惑をかけて、許されて、構ってもらって、
貴重な経験をさせてもらったと思う。

経験はシェアするべきだ。
ずっとインターンシップについて記事を書きたいと思いつつも、なにを書こうか迷っていた。
インターンシップ中に解決した技術的問題について、
ほんとに具体的な技術的記事を書いてしまうという手もあったし、
それは未だに後で書いてもいいと思っているのだけれど、
私が書きたいこと、みんなに伝えたいことはもっと他にある気がしていた。
未だにその正体がつかめたとは思っていない。
それでも、インターンシップに行く前と後では私の考え方は変わったと思うし、
その考え方を、わかってもらえるにしろ、もらえないにしろ、発信したいと思ったのだ。

インターンシップに行く前の私は、受け入れ先の会社はずっとたくさんのノウハウがあって、
マネジメントでも技術的なものでも私なんかでは及ばないたくさんの正解を知っていて、
その人たちが手間と時間を割いて受け入れてくれるというのだから、迷惑をかけてはいけない、と
会社の人の言うことは絶対で、逆らってはいけない、と思っていた。
実際にそういう気持ちでいた方がうまくいく企業というのはあるのだろうと思う。
でも、私がお邪魔させてもらったFidelテクノロジーズはそうではなかった。

一つの小さな例として、再三言われた言葉がある。
「日本では他の人がやっていることを邪魔して質問するのはよくないのでしょう?
でもインドでは、違うから。なにか躓いたら遠慮なく何度でも聞きなさい」
そもそもそこからして、私のイメージしていたものと違っていた。
実際、躓いたらすぐに聞けた方が効率がいいと思う。
これは比較的受け入れやすく、すぐになじめた違いだった。
もっと、最後の最後まで違和感として残り続け、
なかなか理解して呑み込めなかった違いがある。
それは、受け入れ先企業は神ではないし、万能ではないし、
間違えることだってある、ということだ。

時系列順に私が経験したストーリーを説明しよう。
着いてまず、私が最初に言われたことは、「AndroidiOSのテスト自動化システムを作れ」だった。
期間が3週間と短いから、細かいテストケースやオプショナルな機能はつけなくていい。
最低限動くフレームワーク*1を作れ。
必要なパソコンやソフトウェアは言ってくれればこっちで用意するから、
何が必要かも自分で考えて決めてくれ。
私もAndroidiOSのテスト自動化システムを作るのははじめてだから、わからない。
Webアプリのテスト自動化を行った技術者を担当につけるから、
彼に相談してアドバイスをもらいながら進めてくれ。
「テスト自動化システム」の具体的な要件の説明などはあったけど、
要約するとそんな感じの指示だった。

この時点では、私はまだ、「自分たちにもわからない」といいつつも、
この技術者指導者さんの頭の中には正解にほぼ近いものが既にあって、
彼がうまいこと誘導してくれるから、私は自分からたたき台を作るとか、
積極的に動いている姿勢を見せつつ、うまいことその誘導に乗ればいいのだろう、と思っていた。
あれ?と思ったのはだいぶ先になってからだった。

仕事は難航した。
テストケースデベロッパー向けのインストールの資料を渡され、
指示されたとおりにいくつかのソフトウェアをインストールした。
ビルドツールはGradleを使うように指示されていたし、
インストールの資料にはeclipseとUIテストツールのAppiumが入っていたので、 それら3つを含むフレームワークを提案し、
GradleとAppiumの連携は具体的にどうすればいいのか、と技術指導者に相談したら、
Appiumはテストツールというよりむしろ既存のエミュレーター*2との連携をサポートするサーバーであることを説明され、
jenkinsのe-mail通知の設定の説明をされた。
このときの私は、この説明は一見私の質問と関係ないように見えるけど、
きっとそれは私の理解が足りてないだけで、
関係のあることなのだろうと思っていた。
技術指導者の人が一通り説明をし終えて帰ってしまった後、一人でもう一度考え直し、
それでもやっぱり理解できないので、もう一度聞きに行く。
そしてまたまったく違う説明を受けて、その意味を一人で考えて、
やっぱりGradleとAppiumの連携ができないので、聞きに行く。
そんなことを繰り返していた。

私が、自分の認識の間違いに気づいたのは、質問しやすいようにと、
彼の隣のデスクに移動させてもらえたときだった。
Android Studioと、Gradleと、Appiumの連携の情報ならあるけど、eclipseはない」*3 と言ったら、見せてくれ、そのURLを送ってくれ、と言われた。
そこではじめて、彼もGradleとAppiumの連携の方法がわからないんだ、とわかった。
そうだ、彼だってわかってたわけではなかった。
だから、質問しても答えがわかるわけがない。
彼自身も、きっと、自分自身だってできるかどうかわからない仕事を、
言われるがままにマラーティー語*4も話せない小娘に指導しなければいけなくなって、困っていたのだろう。
つまり、私は、本当に自分自身の力でフレームワークを作る仕事を任されていたのだ。
それが、プロジェクトリーダーの意図通りだったのか、
プロジェクトリーダーは技術指導者がわかっていると思っていたのか、今となってはわからないけれど。
プロ意識を持って、その仕事を完遂してみせなさい、と言われたような気分だった。
誰かに金魚のフンとしてくっついていくだけではダメだと、金魚は保証をしてくれない、と。
アドバイスが信用できるかどうかまで自分で責任をもって判断しなければならなかったのだ、と思った。

結局、Appiumの自動起動ができない問題自体は
彼がeclipseプロジェクトのmainからappiumを起動させるbatファイルを呼び出すことで解決していた。
本来なら、Appiumを自動起動してくれるようなプラグインをGradleに入れるのが
きれいなやり方なのではないかと思っているが、
検索してそれっぽいプラグインを入れてみても、自動起動はしてくれなかった。
すぐに、Appiumはスクロール機能などに問題が多く、
UIAutomatorなど他のUIテストツールと併用する必要があることがわかったため、
Appiumの使用自体を諦めてしまったので、
もしかしたらもう少し頑張って探してみればなんとかなったのかもしれない、と今は思う。
いずれにせよ、多分、Appiumは単体で使うためのツールではない。
そういうブランドってあるでしょう、ユニクロとか。
どうやら、内部でUIAutomatorを使っているらしいので、
感覚としてはUIAutomatorと併用するならライブラリに近いものなのかな、と思っている。

そもそも、思ってみれば、eclipseとGradleを連携させるのが茨の道だ。
楽にいきたいならAndroid Studioがいい。絶対そうだ。Gradleがそのまんま使える。
当時の私はテスト自動化なんて言葉自体はじめて聞いたよってレベルだったので、
資料にあったソフトウェアをインストールし、技術指導者の指示に従ってeclipseを使っていたけれど、 誘導に乗っかったつもりが、完全に茨の道に引きずり込まれていた。
全体の方針は大きく間違えないようさりげなく指導されて、
保証された牧場のなかで自分にできることをすればいい、という認識は端から間違っていたらしい。

そんなわけで、私が学んだことは、インターンシップ受け入れ先だってなにも神じゃないし、
完璧じゃないし、知らないことも間違えることもたくさんある、ということだ。
なにも悪口のつもりで言っているわけではない。人間なのだから当たり前のこと。
インターンシップ生は、インターンシップ先の誘導や指示におんぶにだっこにならずに、
こちらからも、相手の状況を把握して、
ともに仕事をするインターンシップというイベントでお互いのためになにができるのかを、
積極的に考え、提案するべきなのだ。
それが、よく聞く
「受け身にならずに、積極的な行動をしろ」
という言葉の意味だったのかもしれないな、と今なら思う。

受け入れ先が必ずしも上手に仕事を振って誘導してくれるわけではない。
学生と毎日触れ合っている大学の先生ですら、
学生がどこまでできるのかの認識を誤って、
テストを難しくしすぎたり、簡単にしすぎたりして、
きれいに点数がバラつかないテストを作ってしまうことはよくある。
インターンシップなんて、大学を卒業して久しい、
学生と触れ合う機会なんてここ何年、十何年もなかった人たちが企画しているのだ。
もう自分が大学生だった頃のことは忘れているかもしれないし、
時代が違えば受け入れ先の方々が大学生だったときと今の大学生は違うかもしれない。
専攻だって違うだろうし、当然のごとく、
学生にできることといっても一人一人得意不得意もできることも全然違う。
自分たちにとって、会社というものがなにもわからないブラックボックスであるのと同様に、
受け入れ先から見たら、私たちインターンシップ生はブラックボックスなのだ。
会社内の常識だって、きっと、どこまでインターンシップ生がわかってて、
どこがわかってないのか、わからないことだってあろう。
自分がなにを知っていて、なにを知らないのか。なにができて、なにができないのか。
ただやれと言われたことをやるだけではなく、こちらからも発信して、
コミュニケーションをとり、すり合わせていく必要があるのだ。

ちなみに、心に残っている言葉がひとつある。
そんなこんなで、私はいろいろと技術面ではない部分で苦労をしながら
Androidアプリのテスト自動化のフレームワークを作り、
インターンシップの最終発表日に、その使い方やそのツールが優れている理由をプレゼンした。
面識のある直接の上司も、面識のないなにやら偉そうな人も何人かが聞きに来ている中で、
もう、こっちとしては、ほんとうにこのフレームワークで大丈夫なのか、
彼らの方がもっとプロフェッショナルで、
こんなんじゃダメダメだと言われるんじゃないか、とどきどきである。
一通り発表が終わり、厳めしい顔をした人が手を上げて、私のプレゼンへの感想を述べてくれた。
彼は、ニコニコして、「So, you learned a lot」と言ったのだ。
You learned a lot.
日本語で言うなら、「そっか、いっぱい勉強したね」みたいな。
彼はそれ以上とくに言及するでもなく、プレゼンはそのまま終わってしまった。

あ、それでよかったんだ。
私の勉強になりさえすれば、結果的にできたフレームワークがよくても悪くても大した問題じゃなかったんだ。

全てのインターンシップがこうなのかはわからないけれど、
このインドにおける三週間で、私のインターンシップに対するイメージが変わったのは間違いない。

*1:枠組み、構造と訳される。要は最低限でいいということ。

*2:異なるOSの上で他のOSを再現するソフトウェアこと。この場合Windows上でAndroidのOSを再現する。

*3:Android StudioeclipseはどちらもIDEと呼ばれるソフトウェアを開発するためのツール。当時はAndroid Studioではなく、eclipseの方を使っていた。

*4:インターンシップ先、プネの現地語

What is vegetarian?

This time, I want to try to write an article in English.
One reason is that there are some friends who wants to read my blog but can't read Japanese, and I think this topic become more interesting if I can get opinion from different nationalities.
Japanese readers, please don't close nor browser back just because this is written in English.
Please continue trying to read for a while. You will understand this article is written in easy word immediately (because I don't know difficult word).
Still you feel you don't get what I mean or not interesting, you can leave this page.
I think my English writing ability is not enough to express what I think, but I'd like to try. Please let me know there are anything you don't understand.

So, what is vegetarian?
Through travel to NY and India, I saw many vegetarians.
This experience made me think about this topic.
I want to write down how my image has changed, and what I think now.

I think, for most Japanese, vegetarian is a person who is unbelievably religious, live in a country far from Japan.
They have sense which is hard to understand, and so strict to themselves that hurt their health.
This is a typical image of vegetarian, and actually was my image of vegetarian before.

When I visited NY, I met a vegetarian. He was a vegetarian because of ethics.
I realized that there are person who don't eat meat just because of their own opinion, not a doctorine.
In most of the restaurants in NY, there are some dishes for vegetarian, and they show which is for vegetarian in menu, like we sometimes see mark of allergy in Japan.
I realized that there are a lot of vegetarian in America which is familiar country for us.
But still I thought vegetarian is strict for themselves, and I was worried about his health.

Vegetarian in India is quite different from it in America, ofcourse much more different from it in Japan.
Vegetarian and vegetarian food is called veg. Non-vegetarian is called non-veg.
There are many people who have never eat any non-veg in India.
Ofcourse not all, but much more than Japan. I thought it is similar to people who haven't drunk alcohol before they become 20 in Japan.
They are minority, but still not surprising.
They don't need strong reason to be veg. They ar veg because just it is normal in India.
There are no beef, no pork in Pune. More that half of foods I see is veg.
To be veg in Japan, I need a big effort to find veg food, but in here, It is much easier.
I saw a sign showing "No non-veg and smoking here".
This fact mean that there are some people who feel uncomfortable with a person eating non-veg food.
One Indian coordinator said not so many people, but there are a few people who don't like non-veg person because they kill other animal.
Since I saw this sign in country side, and I see non-veg food everyday in city side, I guess rate of veg is higher in country side. In country side, veg is majority, familiar, and non-veg is minority which is thought as foreigner hard to understand.

There are one more episode I thought interesting.
When I go out with veg and asked that "How do you think about non-veg?"
Their answer was "What nutrition people need to live is different depending on each person."
They accept non-veg, but still they need reason to accept.
I expected answer something like "I'm veg because I want to. I don't care, whether other people wants to eat non-veg."
I felt that non-veg is still something strange and need effort to accept for them.

I used to think, we, human beings need animal protein to live healthy, but it was wrong.
A lot of veg live healthy in India.
So, am I allowed to eat other animals?
When I was a children, I used to wonder whether I am allowed to kill and eat animals.
At that moment, I thought, I need to eat animals to live, so it's okay to eat other animals.
If it was wrong, how can I allow myself to eat other animals?
I know I can live healthy without meat, now, but still I want to eat sushi, beef stew, and many other non-veg food, just because they are delicious.
This means, I want to kill animal to have a delight.
Am I selfish? Is it thing to be blamed?

In a Japanese animation, Madoca Magica, a character Kyube explains relationship between people and farm animals.
He says, it is a ideal symbiotic relationship.
Farm animals can live safe, because of people's protection.
While some wild animals are endangered, there are enormous number of farm animals.
They are protected from everything by human. They don't need to live in competitive wild life.
Do you agree with him?
We can decide our life, learn a lot of things and do what we want to do, but farm animals can't.
Is it ideal symbiotic relationship?
Half of my heart agree with him, but the other half says it's too biased.

There are so many people who earn money by non-veg food and who pay money for non-veg food.
Our economy includes non-veg food, already.
I think I will keep eating non-veg food.
But, I want to remember that I eat other animals, and there are people who don't like it.
I hope more and more restaurant begin to have veg food in Japan.

おおらかなインド人のがんこなこだわり

インドからこんにちは。
現在IT企業にてインターンシップ中です。

インターン自体の感想もいずれまとめたいけれど、今インドの文化について感じていることを、とりあえずまとめてしまいたい。

インド人はオープンマインデット、グローバルな人たちだ。
海外にいくのも躊躇しないし、私たちのような珍しい他の人種の人に対しても、
怯えることも馬鹿にすることもなく、物珍しげに対等に話しかけに来てくれる。
欧米のように、迷ってうろうろしていたり、電車の中出となりに座ったらすぐに話しかけ来るような関西のおばちゃん精神はないけれど、
好奇心旺盛な猫が溜まり場に迷い混んだ犬に興味を示すように、遠巻きに控えめに、時折側までやってきて、こちらの話を一生懸命聞いてくれる。
遅刻しても失敗しても、絶対に怒らずに大丈夫と言ってくれる。
以前「日本では人に迷惑をかけるなと教わるが、インドでは自分も迷惑をかけているのだから他人の迷惑も許せと習う」という話をどこかで聞き齧ったけれど、なるほどと思わせられる。
国民性だけですべては語れないけれど、全体の傾向としては、そういう優しくおおらかな人たちという印象をいまのところ受ける。

しかし、そのイメージと合わない一見矛盾するような側面もある。
食文化と服装の文化だ。

スーパーでケロッグのシリアルを見つけて購入したけれど、調べてみたところ、ケロッグがこうして今のようなシェアを獲得するまでは相当な苦労があったらしい。
牛乳を殺菌するしない、冷たいまま飲む飲まないという、具体的な衛生環境と習慣の違いもあるけれど、
本質的な部分にあるのは、インド人の伝統料理に対する頑固さであるようだ。
「インドの伝統料理の朝食は健康に悪いが、ケロッグのシリアルなら簡単でバランスのとれた食事ができる」と広告を打ち出したところ、
家庭の決定権を握る主婦層に「インド料理を否定するのか」と反感を買い大失敗した、というエピソードは興味深かった。

確かに、朝御飯もお弁当もレストランも、現地の人たちは断固としてインド料理ばかり食べる。
ひとつの理由は、インド料理と他の国の料理で値段がまったく違う点にある。
私の会社が用意してくれるお弁当(二食分ぐらいのボリュームがある)は60ルピー、近所のお肉屋さんで買える鶏肉は900g195ルピー、パンは一斤ほどのサイズで30ルピーだけれど、会社向かいのピザハットのピザはMサイズ一枚550ルピーだ。
確かにこれだけ圧倒的に違うとインド料理が多くなるのもわかる。
しかし、よく考えてみると、それだけの値段の違いは大量に生産して大量に販売する流通システムが構築されているかどうかによるところが大きいだろうし、
つまりこだわりの理由と思われた値段の違い自体ももとはといえばインド人の伝統料理に対するこだわりに由来しているのだ。
他の国が経済的発展と共に他の国の食文化を取り入れていくのに対して、インドのこのこだわりようはどういうことなのだろう?
辛さも甘さもとことん濃く味をつけるインド人の感覚からすると、他の国の料理は味が薄くて水のように感じられたり、
インド料理には含まれることはほとんどない、魚や豚肉、牛肉の臭みが受け入れがたかったりするらしい。
しかし、他国の料理に受け入れがたい味の違いがあるのはどこの国にとっても同じだ。
日本がラーメンやカレーライスを産み出したように、アメリカがココナッツラーメンを産み出したように、
インドが他国の料理を辛く、あるいは甘くアレンジして受け入れることなく、伝統の料理を保存し続ける本質的な理由は何処にあるのだろう?

服装についても同じことが言える。
たとえ宗教意識の強い人でなくても、インドの伝統衣装を身に纏い、海外に行ってもそれを着続ける。

食文化も、衣装も、インドのものは宗教の影響を色濃く受けている。
必ずしも信心深い人たちだけではなくても、伝統を守り続けるのには、宗教と相互に影響しながら長年培われた価値観がひとつの理由の手がかりになるのかもしれない。

自分の手でゼミを開くということ

実はこの前期の期間、自主ゼミをやっていて、先週、その最終回が終了した。
ずっと報告記事を書こう書こうと思って書けていなかったのだけれど、キリがいいのでこれを期に書いてしまおうと思う。

都数(都内数学科学生集合)の会員は入会直後一年生の頃からゼミに参加し、ゼミというものに慣れているみたいだけれど、
千葉大学の私は長らく都数の存在を知らなかったし、大学内で数学科の学生がゼミをする習慣もなく、
ゼミに自分自身参加した経験はおろか、自主ゼミをしている人も見たことがなかった。
それがいきなりゼミを開く企画側。躓くポイントも至らない点もがたくさんあったと思う。

そもそも、自主ゼミを開こうと思ったきっかけは、学科の萩原学先生に「やってみれば?」と声をかけていただいたからだ。
それまでは、自分達で勝手にゼミを開くなんて、出来るかどうか考えることはおろか、発想そのものがなかった。
当然「やってみれば?」と言われてあっさり「やるか」と思えたわけではなく、
最初は「私にはそういう企画に付き合ってくれそうな友達もあまりいないし、到底無理だ」と思っていた。
それでもやってみよう、と思ったきっかけはニューヨーク旅行だ。
意欲的に数学を学ぶ学生たちを見て感化されたと言ってもいい。
情報専攻にしろ、数学専攻にしろ、自主的に学ぶ人たちというのは決まって「授業だけでは全く足りない」と言う。
私は彼らほどできた学生でもないので、がっつり自主的に勉強して胸を張って「授業だけじゃ足りない」なんて言える立場ではないけれど、
少なくともそう思っている人たちがいる、そういう人たちについていくためには授業外の勉強が必要だ、と思うようになった。

当初心配していた、人が集まらないのではないかという心配は杞憂で、ありがたいことに学科LINEや個人的な知り合いに声をかけたら14人も集まってくれた。
苦労したのは、「教科書」と「場所」。

他の分野ではもっといろんな種類のゼミがあると思うけれど、数学でゼミと言ったらまず輪読だ。
ニューヨーク旅行で英語の数学用語がわからないと感じた私は、英語の教科書で輪読をしたいと思ったのだけれど、
どんな教科書があるのか、どう選んだらいいのか、さっぱりわからない。
難しすぎても簡単すぎてもいけないと思うし、新しいやつがいいのか、読んでて面白いやつがいいのか、
どこに行けば英語で書かれた数学の本にアクセスできるのか、なにからなにまで手探りだった。
先生方にアドバイスをいただきながら、「学部三年生に適切なレベルの英語の数学書」ということでなんとかかんとか候補を4つに絞り、参加者に希望を聞いてみたところ、
みんなが選んだのはハッチャーのAlgebraic Topologyだった。
アメリカで一番読まれているトポロジーの教科書、らしい。

それから、場所については、最終的には参加していただけることになった院生の方が、担当の先生の名義をお借りして理学部棟の一室を貸してくださった。
図書館のグループ学習室は毎週予約し直さなければならず、確実にとれる保証がないし、
そもそも今回のゼミは個人的な知り合いの学外からの参加者もいたので、使えない。
理学部全体の管轄の教室は勝手に入り込んで使っていても誰も文句を言わないわりに、
しっかり手続きを踏んで部屋をとろうと思うと先生を介してでないと予約がとれないし、
五限後はセキュリティが厳しくなって、入り口に鍵がかかって理学部の院生でないと入れなくなるし、先生も同席しないと教室の予約をとれない。
最近はラウンジを多目的で使えるように公開してくれているようで、今後はそこでゼミなどできるようだけれど、
私たちがゼミをはじめたときはそれもまだなかったので、院生の方が参加してくれなければ場所を取れなかったと思う。

こうしていろんな方の支えを得て教科書と場所が決まり、ハッチャーゼミはスタートした。
メンバーの中に一人、ホモロジーが大好きで自分でしっかり勉強している詳しい人がいたので(同級生のはずなのにとてもそうは思えなかった。本当にすごい)、
彼がどこをやったらいいだとかも助言してくれたし、輪読の発表も半分は彼がやってくれた。
四月の第三週からはじめ、途中一度休みをはさんだので、全12回。
2.1章を読み終え、章末の演習問題をいくつか解いて、前期ハッチャーゼミは終了した。

具体的な内容については、いずれまた書くかもしれないけれど、今回は数学的な内容ではなくゼミの企画に焦点を当てたいので割愛する。
こうして振り返ってみて思うのは、本当に多くの人に支えられたなということだ。
提案し、相談に乗ってくれた萩原先生。教科書の選び方に助言をしてくれた先生方に、部屋の名義を貸してくださった先生。
部屋の確保をしてくれた院生の方に、内容をよくわかってない幹事に代わって進行を支えてくれたメンバー。
当然、集まってくれた14人がいなかったら、一人でゼミを開くこともできなかった。
内容も、基礎的でためになるものを自分なりになんとか理解できたと思うし、
なにより、前例がない中ゼミを企画し、最後までやりきったのは達成感がある。

実は、人数が多すぎたので、14人のうちの半分はハッチャーゼミではなく別のゼミを開いていたのだけれど、もうひとつのゼミの方も含めて、参加してくれた彼らはこのゼミに何を思っただろうか。
数学的な内容でもいいし、人間的な成長でもいい。達成できたことでもいいし、達成できなかったことへの反省でもいい。
なにかしら、得たものがあると嬉しいなと思う。

最後に、初回、教科書を決める回で使った資料をおいておく。
決して完璧な幹事でもないし資料でもなかったと思うけれど、
候補になっていた他の教科書も載っているので、ゼミの企画に興味のある人は参考にしてほしい。

github.com