君は心理学者なのか?

大学時代に心理学を専攻しなぜかプログラマになった、サイコ(心理学)プログラマかろてんの雑記。

最近の出来事を元に脚本を書いてみる。その3

はじめに

この話はいい感じにフィクションです。

登場人物

わたし(26)…会社員

店長(36)…店長

客(20)~(60) ...同じ会社の会社員。12名

M

間違えて一駅手前で降りてしまった。

あまり降りない駅なのでしばらく探索。

フラフラしているうちにカフェバーを発見したので、単身乗り込んだ。

SE カフェバー

店主「いらっしゃいませ」
店主「何名様ですか?」

M

バッチリ一人です。

言うのもはばかられるので質問に答えず、すかさず質問で返した。

わたし「何時までやってます?」
客「俺がはらうって!俺が俺が」

M

団体客がいるらしく声がかき消されてしまった。

店主「え?」
わたし「何時までやってますか?」
店主「0時までやってるので大丈夫ですよ」

私はカウンターに座りビールを注文する。

ここは俺が払うよ! 5000円!
いーや先輩それは申し訳ないっす! 僕が払いますよ!
いやいや俺が全員分払うよ!
いいから座っとけ!俺が払いに行く。
先輩ばっかにいいかっこさせてらんないよなぁ!? おまえら全員5000円出せ!
ここは俺が払うよ!

M

ちょっと離れたところに大きなテーブル席があった。

そこでどうやら誰が払うかでもめてるらしい。

議論がぐるぐる堂々巡りしている。

もういいよ!俺が全員分出せばいいんだろ!
いやすわれよ。お前給料日前だろ。
みんな給料日前じゃねえか!
おれが貯金ではらうよ!おろしてくる!
おい。抜け駆けは許さねえぞ!

M

なかなか終わりそうにない。

未来永劫揉めていたいのだろうか。それくらい楽しそうにやっている。

初老の社員「お支払はすんでるからそろそろ出ようか」

え!?
マジっすか!
すんません!
そんなつもりは!
そんなそんな!

M

やいのやいのやっている間に、

一番年上の方がどうやら支払いを済ませていたらしい。

大げさすぎるくらい感謝しながら、団体客は店から出ていった。

M

店には僕一人になってしまった。

さっきまで賑やかだったのにいきなり物音一つしないくらいになってしまった。

厨房から皿をカチャカチャやる音が少し聞こえるくらい。

わたし「静まり返りましたね」

店主「ホントですね。お騒がせしました」

わたし「耳がキーンってなるくらい静かですね」

わたし「さっきの、なかなか会計が決まらなくて面白くなかったですか」

店主「あれおもしろかったよね」

店主「ここは僕が払いますよ!っていきたかったもん」

M

このお方は何のために店をやっているのだろうか。

最近の出来事を元に脚本を書いてみる。その2

はじめに

この話はいい感じにフィクションです。

登場人物

わたし(26)…会社員

まり(24)…劇団員

M(モノローグ) 夜22時。帰りの電車の中。私は立ったまま本を読んでいた。

SE(効果音) 電車がとまる音

M 最寄り駅で車両を降りようとしたとき

?? 「かろてんくん」

わたし 「え!?」

M 不意を突かれた。振り向くとよく知っている人だった。

このあいだ飲み屋であったばかりだ。

わたし 「なんだよまりか」

まり 「気づいてた?わたし目の前にいたよ」

M まりはそういって、こっちを見て笑った。とても怖い。

まり 「ねー、なによんでるの?」

わたし 「内緒」

M よんでいるのは『スクリプトドクターの脚本教室・初級編』。

そしてまりは、普段劇団員をやってる。

僕がこの本を読んでいることと、

まりが劇団員という事実は全然関係ない。

だからバレても問題ないがなんだか曲解されそうな気がする。

まり 「なんで?きになるよ」

わたし 「みせられないんですー」

まり 「やらしい本?」

わたし 「めっっっちゃやらしい本」

M 面倒なので適当にあしらうことにする。

SE ICカードをかざす音

まり 「さっきさ、声掛けようか迷ったんだよね」

まり 「でもそのまま見てる方がおもしろかったから、

  なによんでるんだろーとかなに考えてるんだろーとか思ってた」

わたし 「すごくこわいね」

まり 「はじめはさ、ストーカーみたいなことやめようと思って。

  だから本当は声かけようと思ったんだけど」

わたし 「ストーカーやめるの?」

まり 「やめる」

わたし 「もしかして5年位やってる?」

まり 「ちがうって!さっきの話」

わたし 「5年位はやってそうなのに」

M まりは手首にテーピングしている。十中八九リストカットの後だろう。

ストーカーしていてもおかしくない。

まり 「ひどーい」

わたし 「じゃコンビ二よるんで」

まり 「わたしもよるから」

わたし 「ストーカーめ!」

まり 「だから違うって」

M 本当に怖かったので、早々に会計を済ませてコンビニを出た。

最近の出来事を元に脚本を書いてみる。

初めに

この話はちょうどいい感じにフィクションです。

登場人物

鹿目(56)常連
わたし(26)常連
まり(24)常連
省吾(42)常連
マスター(40)バーのマスター

鹿目「だから男はだめなんだよ〜
  きめるときはきめないとさ〜いいように扱われて終わるんだよね〜」
鹿目「あたしの旦那もさぁ〜」

M(モノローグ)

ここはバー。 格調高い感じのところではなく、こじんまりとしたローカルな感じのところ。 3週間位いかないと「引っ越した?」とLINEがくるくらいの頻度で通っている。

わたし「はじまりましたね。鹿目さんの長話(小声)」
マスター「ね〜。満足するまで聞くしかないね(小声)」

鹿目「ちょっと息子〜聞いてる〜?」
わたし「っ、きいてますきいてます」

M

常連の鹿目さんからは息子扱いされている。
初めて店で会ったときに「君はもうわたしも息子。分かった?」と言われ、
それ以来ずっと息子ということになっている。
まさか東京で2人目の母が出来るとは思わなかった。

鹿目「息子さ〜もうちょっとバシっとキメるとこはキメなきゃダメだよ〜」
まり「『都合のいい人』になっちゃいますよ〜」
まり「今までもそうだったんでしょ〜?ずっと振り回されてきたって」
鹿目「え、何その話。わたし聞きたい」

わたし「も〜勘弁してくださいよ」

M
いたたまれなくなってわたしは店の外に出た。
外には同じく常連の省吾さんがタバコを吸っていた。
省吾さんからは息子扱いされている。 東京の父だ。

省吾「逃げてきたね」
わたし「…はい」
省吾「タバコ吸う?」
わたし「あ、どうも」

SE ライターの音

省吾「そろそろ反撃してみない?」
わたし「連合艦隊になった女性には勝てません」
省吾「…じゃあ援護射撃出すからさ。やってみよ」

M(モノローグ) 煙草を吸い終わると、僕と省吾さんは反撃をしに店内へ戻った。

反省

モノローグが多すぎて小説みたいになった。

ほんのちょっとの仕様変更がバタフライ・エフェクトを起こす。「ラヂオの時間」はそれを教えてくれる、三谷幸喜の傑作コメディだ。

三谷幸喜の「ラヂオの時間」とは

f:id:karoten512:20171111011015j:plain

コメディの脚本家として有名な三谷幸喜の、初の映画監督作品。

あらすじはこんな感じ。

“ラジオ弁天”のスタジオでは、まもなく始まるラジオ・ドラマ『運命の女』の生放送のためのリハーサルが行われている。

初めて書いたシナリオが採用され、この作品によって脚本家としてデビューすることになった主婦の鈴木みやこは、緊張しながらリハを見守っていた。

全てのチェックが済み、あとはいよいよ本番を待つばかりとなったが、直前になって主演女優の千本のっこが自分の役名が気に入らないと言い始める。

プロデューサーの牛島はその場を丸く納めようとして、要求通り役名を“メアリー・ジェーン”に変更した。

ラヂオの時間 | 映画-Movie Walker

度重なる仕様変更

主演女優の役名変更がきっかけで、もともとのドラマ脚本の辻褄が合わなくなり、

物語はどんどんおかしな方向へ向かっていく。

もともとの脚本は以下の通り。

熱海のパチンコ屋で働く律子。
ある日、高波にさらわれた律子は虎三と運命的な出会いを果たす。
恋に落ちる律子と虎三。
しかし虎三は荒れた海にのまれ行方不明になってしまう。
虎三のことが忘れられない律子は、ついに夫と別れてしまう。
奇跡的に再開を果たした律子は、虎三と幸せに暮らした。

この平凡な脚本が、

度重なる仕様変更により壮大なアクションドラマになってしまう。

仕様変更その1:舞台の大幅な変更

主演女優の役名変更(律子からメアリー・ジェーンに)を聞いた役者達は、

自分たちも外人の名前にして欲しいとゴネる。

それによって登場人物は全員外国人に。

さらに舞台は熱海からシカゴへ。

仕様変更その2:運命の男との出会い

舞台を変えてしまったことにより、

脚本の読み直し中にある問題が発覚する。

ナレーター「この話には無理がある」
プロデューサー「お願いしますよ〜」
ナレーター「このあと、回想シーンになります」
プロデューサー「え、ええ」
ナレーター「メアリー・ジェーンは高波で溺れていたところを、
      地元の漁師マイケルピーターに救われる」
プロデューサー「その通り」
ナレーター「それがきっかけでマイケル・ピーターとメアリー・ジェーンは恋に落ちる」
プロデューサー「そうです」
ディレクター「何が問題なんです?」
(声を潜めるナレーター)
ナレーター「…シカゴには、海がない」

そう。シカゴには海がない。あるのはミシガン湖

安易に舞台を変えたことにより、次第に辻褄があわなくなってくる脚本。

現場は騒然とする。考えている時間はない。

放送作家「一つだけ、手はある!」

そこにいた放送作家が、こう叫んだ。

放送作家「シカゴには、ダムはあるか?」
ナレーター「ある」
放送作家「ラッキーだったな!」
プロデューサー「どうする?!」
(にやりと笑う放送作家)
放送作家「………ダムを、決壊させるんだ!!」

ここで相当笑いました。

仕様変更その3:運命の男の職業

もともと村の漁師という設定だった虎三(のちマイケル・ピーターに名前変更)。

しかし役者がアドリブで「名前はドナルド・マクドナルド。職業はパイロットだ」

といってしまう。

それがきっかけで、海に飲まれる予定だったドナルドは、

「ハワイ上空で消息を断つ」という設定に変更し、放送をした。

しかしそれがさらにさらなる仕様変更を呼ぶ。

ディレクター「さっきの、スポンサー大丈夫?」
プロデューサー「え?」
ディレクター「飛行機事故って」

そう。このラジオドラマには航空会社がスポンサーに入っていた。

またまた騒然とする現場。考えている時間はない。

これ以上時間稼ぎのCMを挟むと、放送事故になってしまう。

放送作家「手はある!」

そこにいた放送作家が、また叫んだ。

放送作家「パイロットと言っても飛行機とは限らない」
プロデューサー「どういうことだ」
放送作家「宇宙飛行士も、パイロットだ!」
放送作家「宇宙で消息を断つことにしたらどうだ!」
プロデューサー「それでいこう!」
ディレクター「だけどハワイ上空だって」
プロデューサー「宇宙だって、ハワイ上空だ!」

男の職業は村の漁師から宇宙飛行士へ。

そして物語終盤で戻ってくるはずが、帰らぬ人になってしまった。

仕様変更はバタフライ・エフェクトを引き起こす

「お願いですから、ホンの通りにやってください!」

脚本家がこう叫ぶシーンがある。

主演女優一人のわがままによって、物語がとんでもない方向に進んでしまった。

生み出した本人としては非常に苦しいことだろう。

1箇所変えただけで雪崩れるように物語が変わっていくことを描いた「ラヂオの時間」。

この構造は、バタフライ・エフェクトに似ている。

少しの変化が予想もしない結果を生み出すというアレだ。

実は、自分の人生もちょっと決断を変えるだけで、

自分の気づかないうちに予想もしない結果を生み出しているのかもしれない。

ただ、人生に「仕様」はないので確かめようがないのだけれども。

rbenvによって定められるバージョンはどこに保持されているのか(global, local)

globalの場合

$ rbenv versions
* 2.3.0 (set by /home/vagrant/.rbenv/version)
  2.3.1
  2.4.1

/home/vagrant/.rbenv/version

で指定されているらしい。確かめてみる。

$ cat /home/vagrant/.rbenv/version
2.3.0

確かにversionファイルに記述されている。

試しにバージョンを変えてみると、

$ rbenv global 2.3.1
$ cat /home/vagrant/.rbenv/version
2.3.1

versionファイルの記述が変わった。

localの場合

適当なディレクトリを作成し、rbenvでローカルのバージョンを指定してみる。

$ mkdir hoge & cd hoge
$ rbenv local 2.4.1
$ rbenv version
2.4.1 (set by /home/vagrant/hoge/.ruby-version)

ディレクトリ直下の.ruby-versionで指定されているようだ。

$ cat .ruby-version
2.4.1

確かに.ruby-versionファイルに記述されている。

開発プロジェクトごとにrubyのバージョンを固定するときは

リポジトリに.ruby-versionを上げておく。

rbenvによってrubyのバージョンが自動的に指定されるので、

意識せずとも開発者間でrubyのバージョンを揃えることができる。

便利。

rbenv install --listをしたときに、installしたいバージョンが無い時の対処法

rbenvで特定のrubyバージョンをinstallしようとした

ruby 2.4.1が欲しかった。

$ rbenv install --list
...
  2.3.4
  2.3.5
  2.4.0-dev
  2.4.0-preview1
  2.4.0-preview2
  2.4.0-preview3
  2.4.0-rc1
  2.4.0
  2.5.0-dev
...

無い。

原因

ruby-buildのバージョンが低いことが原因。

ruby-buildのアップデート

$ cd ~/.rbenv/plugins/ruby-build
$ git pull

installできるバージョンの確認

$ rbenv install --list
...
  2.3.4
  2.3.5
  2.4.0-dev
  2.4.0-preview1
  2.4.0-preview2
  2.4.0-preview3
  2.4.0-rc1
  2.4.0
  2.4.1
  2.4.2
  2.5.0-dev
...

あった。よかった。

システム開発課の一日 〜徒然なるままにシステム開発用語〜

この会話はファンクションです

(ナレーション) とある会社の業務系システムを開発している情報システム科の一室。

皆、一心不乱にキーボードを叩いている。

(効果音) キーボードを叩く音

上司 「かろてん君さー、このフラグがtrueの時って子供を殺せばいいの?」※

私 「子供だけじゃダメです。末代まで皆殺しにしてください」※

上司 「わかったー」

(効果音) キーボードを叩く音

上司 「かろてん君、殺す子孫のリストつくってみたけど、大丈夫か見てくれる?」

私 「わかりました。

...すみません、皆殺しはやり過ぎでした。

孫は後から使うので論理削除でお願いします。※

ORM使ってdeleteかけるかクエリビルダでupdateかけてください」※

上司 「子供が死んで孫が仮死状態ってひどいよねー」

私 「...そうですね。かわいそうですけど一思いにやっちゃって下さい」

(効果音) キーボードを叩く音

上司 「業務に入ってる人からさー、最近ちょっとはっぱかけられてるから、
早めにリリースしたいよね」

私 「そうですね。ぼくらリリースまでは金食い虫扱いですしね」※

上司 「使ってもらってなんぼだからねー、システムは」

上司 「それはそうとかろてん君システム課独立の話考えてくれた?

いっしょにやろうよ、会社。名前はさー」

私 「『コバンザメ』でしょ。今の会社のすねかじる気丸出しじゃないですか」※

上司 「酔って名前つけたのかろてん君じゃない」

私 「覚えてませんよそんな昔のこと」

上司 「やろうよコバンザメ」

私 「僕は近々ヒモになるのでコバンザメやらないです」※

上司 「それコバンザメと同じじゃん」

私 「僕は魚類じゃなくて人に寄生するので、

もっと高尚なコバンザメです。オールオーケーです」

上司 「...いいと思うんだけどなあ。コバンザメ」

(効果音) キーボードを叩く音

私 「お疲れ様です」

上司 「おーお疲れー。今日は合コン?」

(モノローグ) 私は無視して会社を後にした。

本日の用語解説

フラグ

f:id:karoten512:20171109220925j:plain

trueかfalseの二値を取るものを指す。

日本語だと旗なので、立つとか立たないとか言ったりする。

二値より大きいものを取る場合はフラグとは言わずコードと言う。

よくフラグだったはずのカラムがコード的な使い方をされているのを見る。

末代まで皆殺し

f:id:karoten512:20171109221227j:plain

親子孫関係にあるテーブルのうち、

親が消されると子供・孫とも消す必要があるときに使う。

リレーションが多いときこうなることが多い。

親だけ消えて子供だけ残ってしまったとき、その子供のことを孤児と呼んだりする。

使ってもらってなんぼ

f:id:karoten512:20171109221447j:plain

業務系システムは、主に業務の工数削減のために作られる。

つまり、システムが使われるまでは工数が削減されない。

よってシステム課の真価は、作ったシステムが使われる時までわからない。

つまりシステム課は、

システムが使われるまでは会社に利益を出してるか出してないのかわからない、

シュレディンガーの猫的存在。

だからシステム課は猫の集団だし、システム課の会議は猫の会合。

ORM

データベースをソースコードを使って楽に扱う仕組み。

普通にレコードを取るとこんなSQLを書かなくてはならないが、

select * from users;

ORMを使うとこんな感じでわかりやすい。

User.all

また、セキュリティ的にも、

そしていろんなDBを使用する際の汎用性を考えたときにもORMを使った方が良い。

デメリットはメモリ消費量が大きいこと。バッチ処理には使っちゃダメ。

論理削除

レコードを削除するときの方式の一つ。

対義語は物理削除。

  • 論理削除 ... レコードを削除しない。削除フラグを立てる。復活可能。

  • 物理削除 ... レコードを削除する。復活不可。

あとからレコードを復活させる必要がある場合は論理削除で対応する。

ただなんでもかんでも論理削除にするとレコード数がかさむのでよくない。

どちらを使うかは必要性をよく考えてから決めること。

qiita.com

コバンザメ

f:id:karoten512:20171109221108j:plain

こんなの。

自分で餌を探さなくとも、泳いでいる魚にくっついているだけで自動的に口に餌が入る。

素晴らしい。

親会社から独立した子会社が、

親会社から仕事をもらって生きながらえる姿がコバンザメに似ていたので、命名された。

ヒモ

ヒモ。なりたい。