P沼的プログラミング

PnumaSONの雑記

我、退職する

  • 序文 
  • 諸情報
  • 入社のいきさつ
  • 退職のいきさつ
    • 崩壊、始まる
    • 我、島流しにあう
    • 我、困惑する
    • 我、吼える
    • 我、激昂する
    • 崩壊、進む
    • 我、退職届けを出す
    • 我、開戦する
    • 我、奮戦する
    • 我、ゲリラ戦に突入する
    • 我、終戦する 
    • 崩壊、止まらず
  •  終わりに

 

補足記事も書いたので。

『我、退職する』の補足をする - P沼的プログラミング

 

序文 

約1か月前の9月くらいに我は退職した。

 なんかちょっと個人特定を避けようとして辞めた月をあやふやに書いてみたが、これから書くことを考えれば、ほぼ完全にユニークスキルを発動させての退職であったので、なにも個人特定を避けられるものではないのである。

そうではあるものの、隠す気はあるぞ、気が付いてもみんなも素知らぬ顔をしろよということである。数字周りも適当に嘘を混ぜておくので、厳密には異なっている。大体そのぐらいの数と思ってもらえればいい。

 少なからず業界批判にあたることもあり、その道を目指す人の妨げになるのは不本意ではあるので、そもそも退職エントリを書こうかどうか迷ったのだが、なんやかんやでくすぶっているよりは書いてしまえということで書くことにした。

退職から結構時間が経ったうえでの執筆となるので、ある程度瞬間的な熱量が下がったうえでの記載であることをご理解いただきたい。

 また、もちろん我が書いているので我の主観で書かれている。他人の目から見たらそうでもないかもしれないので、こういう風に見ている人もいるんだという参考程度のものである。

 この話は気持ちフィクションだと思って読むといいのだと我は思うのだ。(まあゲーム業界などとんでもないのでフィクションみたいなことが平然と起きるのではあるが)

 

続きを読む

AI人材におれはなる!

ならない

 

 それはともかく、最近友人と話をして人工知能周りについて共有した話について、ここに残しておこうと思う。普段であれば、ほんとにワロスだぜとお互いに愚痴を吐いてお終いにしていることではあるが、ネット上に吐露することによって、耄碌した人間のように何度も同じ話をしないようにしようという多少前向きな姿勢を見せてみようと思った次第である。

 技術そのものに関することではなく会社の体制の話であり、この記述を読んで得られる技術的知識はほとんどない。

 

続きを読む

撤退戦から始める競技プログラミング~背水の陣と優雅なる撤退戦

この記事はCompetitive Programming Advent Calendar 2017の11日目の記事である。

 

 アドベントカレンダーといえば、該当日の0時には公開されているものであるが、私が住んでいる国が日本であるという保証はないし、文化や宗教上の都合で太陽太陰暦を採用しているかもしれないし、そもそも同じ世界線にいるかも怪しいので、一概に遅刻しているということはできないのである。

 とはいえ、この日本のこの世界線の一般的住人から見ると遅刻しているように見えることは事実であるので、本当に申し訳ないと思っている。以後気を付けますのでご勘弁ください。

撤退戦から始める競技プログラミング

 この文章は主には競技プログラミング始めようと思っているけど、なかなか手を出せないとか、継続が困難とかいう人たちに向けて書かれているのである。そのため技術的ノウハウみたいなものは一切身につかないため、そういうのを求めている人は人はざっと目を通して、いいねボタンを押すか、目を通さないでいいねボタンを押すかすればいいと思うのだ。まあ、対象者にとっても役に立たない可能性は大いにあるのだが。

 どちらかといえば、マラソン系コンテスト向けに書かれています。

1.継続するために何から始めるか

 「競技プログラミングは地頭ゲーム!頭が3つあるキングギドラとか半裸でダイナミックプログラミン!できる人のみ参加が許されるのだ!」

  というようなことを言う人がいます。大体私とかだと思います。

でも大丈夫。地頭がなくて知識がなくても、参加はできるし、大抵の場合、点数も1点くらいは取れます。競プロ怖くない。

  「地頭ないのに参加しちゃってこいつ粋がってやがるとか思われないかな?」

 そんなあなたも大丈夫。地頭勢は我ら凡庸地底人を歯牙にもかけていないので、そんなことを思われることはありません。競プロ怖くない。

 

継続すれば強くなるということは基本的によっぽどのことがない限り当たり前であるが、分かっていても継続できない。その理由は大体以下の3つくらいであると思う。

 1、点が取れず、負けばかりで楽しくない

 2、目指すところが高すぎて走り始める前に倒れてしまう

 3、楽しいとかとは別の目的(就活とか)でやってる

1、点が取れず、負けばかりで楽しくない

 人間には自尊心というものがあり、負けというものは認めたくないものである。そんなときにはまず、開始前からの撤退戦から戦いを始める。

 まずは忙しくて参加ができないから、私の点数がクソだったとしても私がクソなんじゃなくて時間がないんだなあという免罪符を設置する。これによって、たとえ精神と時の部屋を利用して時間を錬金しているとしても、他者から見た目は忙しくて参加する時間の少ない人である。いくら点が低くても時間のない人であるから仕方がないのである。

 そもそも最初から高い順位を取るなんて地頭勢じゃないと無理なので、今の点からこつこつ上げていけばいいのであって、気にするところではないのである。なにかしらノウハウや実装法が得られれば勝ちなのである。

 

 ぎりぎり賞品を逃してやや心に来ていても糧になったのでいいのである。

2、目指すところが高すぎて走り始める前に倒れてしまう

 「いずれは競プロでブイブイ言わせてコンテスト上位をかっさらい続けて億万長者になっちゃるぜ」

 その心意気やよし。だが今じゃない。

 競プロに限ったことではないが、遠すぎる目標、高すぎる到達点は危険である。大目標として掲げるのはよいが、小さな目標もたて、それを達成することでモチベーションを維持することは大切である。

 やる気があんまりなくてもまずルールだけでも読む。一歩一歩が大切である。 

これに①で紹介した技を組み合わせる。すなわち、

 エクセレント!完璧な布陣である。

 コンテストの中にはゴールド、シルバー、ブロンズといった順位による区切りを設けているコンテストがある。そういったコンテストの場合、「まずブロンズ突破を目標」とかそういった目標が立てれるので活用すべし。ほかには同じくらいの能力を持った競プロ勢を勝手にライバル認識して、「とりあえずあの人に勝つ」みたいなのも有効である。

3、楽しいとかとは別の目的(就活とか)でやってる

 これ、いいと思います。私の初めての競プロとの出会いは完全な偶然で、就活とかとは全く関係なかったのであるが、その次の動機はこれでした。ただ、これは始めた時期によってはできるだけ効率よく即物的にいい順位を取らなければいけない。そのため難易度が高いし、モチベーションも微妙になることが多い。おススメはあまり誰にも知られていないような競プロの世界大会に参加すること。就活には世界何位って言えるし、人数が少ないと結構勝てるので趣味勢にとっても楽しくていいかもしれない。

2.いつ撤退するのか

 私の場合、いつでも撤退しようと思ったときに撤退するのである。

 

 もちろん時間をかければかけるほどノウハウは貯まる。楽しければいくらでもやってもいいと思う。しかし嫌だなと思えば仕事でやってるわけではなく、趣味でやっているのだから、いつでも撤退できる。精神を削るほどじゃない。

 

 撤退戦で大事なところは撤退した後である。何位で撤退したかなんて特に意味はない。撤退後に実装のどういう部分に問題があったか、ほかの人はどういう風に実装したかちゃんと終わった後に確認をするのである。自分ではかなり時間をかけて実装した点と同じ点を自分の10分の1くらいの時間で実装してしまう人たちがいる。どういうのがスマートな実装であるか終了後に見て学ぶことで、より素早く楽していい点が取れるようになるのである。

楽していい点を取るために効率よく学ぶには、

 1、ちゃんと読んでルールを熟知している

 2、ちょっと作ってみて、つまずきポイントが分かっている

 3、ほかの人の解法、考え方、ソースコードを読む

である。

最後に

 別に解けなくても死ぬわけじゃないし、順位悪かったって知ったこっちゃないのだ。これも競プロに限ったことではないが、ポジティブさはいろいろなことをこなしていく際に大事である。

 ただし、趣味であるから大丈夫であるが、仕事上での根拠のないポジティブさは危険であるので、節度を保ったポジティブさをお勧めするのである。

 ここまで読んでいただき、何も得るものがなくイライラした方は適度なストレスにより脳が活性化されたことを喜べばいいし、得るものがあった人は良かったと思います。

 背水の陣について書こうと思ったが、大変長くなったし、この件はまた今度ということにする。

 

 

 

2016年の目標

2015年について

  • SamurAICoding本選へ出場できず
  • CodeThanksFestival出場できず(本選はそもそも予定が被り)
  • Hal研プロコンチャレンジスコア入り
  • CodeVS5.0 29位 シルバー入り
  • AtCoder参加数 8回(成績はいろいろ)

就活等もあり忙しかったことはあるが、それにしてもいろいろ芳しくなかった。

今後は一層忙しくなると考えられるが、それでも動いている方々を見ているとそうも言っていられないので、同レベル以上を目指すこととする。

2016年の目標

CodeVSゴールド入り 80点
CodeVSシルバー入り 40点
SamurAIcoding本選  30点
AtCoder ABC ARC参加率80%以上 60点
その他AI作成系コンテスト 本選参加 40点
競技プログラミングコンテスト3位以内 100点
ブログに解いた問題とか解説を書く(1つにつき) 1点
曲の作成 2月に1曲ノルマ達成 30点
3Dモデリング 年に1体以上 10点
読破した専門書数 10以上
10点
プロコンTシャツゲット1枚ごとに 5点
プロコン賞金10万円ごとに 10点

とりあえず目標は100点以上にしましょう。

習慣にすることが大切だと思うので、ABC、ARC参加率の得点を高めにしたよ。一気に走るのもいいけど、コツコツやっていきたい今日この頃。

エセ科学入門(1):血液型診断

ハイパー超越ラジオで話した内容の一つ、エセ科学入門を適当にまとめて書いておこうと思う。

このエセ科学入門では、一般に言われているような○○はこういった科学根拠でエセ科学であるといった話をするものではなく、

むしろ、○○はエセ科学と言われているけど、本当そうなん?と物事を鵜呑みにせずに考えていく姿勢を養うためのものであることを事前に明記しておく。

そのため、この記事には強引な論理展開や嘘が紛れていることがあるが、ぜひ考えることをやめずに、取捨選択していただきたい。

血液型診断とは

おそらく語る必要もないと思うが、A型は生真面目だとか、O型はおおざっぱだとかそういう類のやつである。多くの本や雑誌が思い思いに提示していて、統計とか取っているのか正直怪しいし、非常に眉唾もので、信じているのはちょっとどうなのと思わなくもないレベルである。

あと、血液型診断をネタにした小説で松岡 圭祐氏著の「ブラッドタイプ」なんかも面白いで暇があれば読むといいと思う。

一般的には血液型診断は根拠が薄く、エセ科学だと考えられている。

しかし、私はアンチテーゼの権化なので、違ったアプローチを用いてエセではない可能性を求めていく。

集落と血液型

いろいろと面倒なのでO型とAB型はひとまず無視して考える。

血液型は親の血液型によって決定される。

つまり、親が両方A型なら、子供はA型となる。

では、ここで、ある集落にA型とB型が50%ずついるとし、その集落から別の集落への流出入はないものとしよう。

初めは50%であるが、一人A型が生まれたら均衡は破れ、A型が生まれる確率のほうが高くなる。

結果的に、十分な時間をかけて、淘汰していけば、どちらか一種の血液型のみで構成される集落が完成する。

これは現在の血液型分布を確認しても同様であり、

エスキモーやハワイの住人、また、オーストラリア原住民などの比較的閉鎖的な民族では顕著である。

 

さて、事実的にも、論理的にも、上記のように、閉鎖的な集落で十分な時間をかければ一定の血液型になることが分かった。

だが、これだけでは性格診断に何の関係があるのか分からない。

続くは、集落と人格である。

集落と人格形成

人の人格を構成するにあたって、大きな要因とは何なのか。

まず親の要因が挙げられるだろう。あとは、友達や学校、地域などなどだろう。

親はその集落で育ったのだから、集落の影響を受けているし、学校もその集落に属しているのだから、集落の考え方に基づいて運営されている。

集落が閉鎖的であれば、考え方が合わないからと言ってその集落から出ていくこともできないため、集落の考え方に順応していくことになる。

宗教や習慣、しきたりなどによって構成される価値観や倫理観が性格の根底にあることもしばしばで、こういったものは地域の影響によるところが大きい。

こういった要因で、カエルの子はカエルなどというが、地域による影響は非常に大きいものとなる。

現実の話であっても、血液型診断をエセ科学と断定する人々の中にも、沖縄の人はおおらかだとか、東京の人はせかせかしているなどという人々は少なからずいるだろう。

つまり、ある閉鎖的な集落や集団がある場合、その集団に属する者は似通った思考、性格になりやすいということを表している。

血液型と人格

ここまで来ればもう言う必要もないかもしれないが、

閉鎖的集落→同じ血液型

閉鎖的集落→同じ性格

といった考え方から、

同じ血液型の人のうち、同じ集落の筋であれば、同じ性格であることが導ける。

日本において人の流出入が激しくなってきたのは1900年代、明治時代ごろからだと考えると、閉鎖的集団から解放されてから高々5世代程度しか経っていない。

まだ、血液型が混ざり切っていならば、過去にあったA型の集落の数だけの性格要素をA型の特徴として記載すれば、A型の人はそのどれかに当てはまることになる。

現在の複数人のA型の特徴の統計から、結果的に過去の集落の性質を推定しているのであれば、その結果は一定の根拠と、事実に基づいたものということになる。

確かに、血液型から性格が診断できうるということになる。

終わりに

さてここまで聞いて、確かに血液型で性格が診断できると感じた方、そうでなかった方、いろいろいるだろう。

ただ、あるテーマを支持する論理が仮に否定されたとしても、その論理が誤っていただけで、テーマ自体は正しいことを述べているかもしれない。

ある一つの側面で見て誤りのように見えたとしても、別の面から見ればそうでないかもしれない。

安易に考えることを辞めないでほしいというのが、このエセ科学入門のテーマである。

 

券売機のススメ

券売機のことといっても、今回メインで話すのは、私がバグを見つけてうへへと思った東京メトロ(たしか東京メトロだが、東京はいろいろあるので違ったかもしれない)の券売機のことではない。

ちなみに、東京メトロの券売機のバグは、なるほど状態遷移図の書き出しが甘かったんだな、でも確かに書洩らしそうではあると思った。

幸いフリーズするようなものではなく、明らかにフロー漏れだと思うが、仕様と言い張れば仕様と言い張れなくもない感じのものだった。

 

話が逸れたが、今回の券売機は東京のラーメン屋に行った際の券売機の話である。

飲食店における券売機の利点は私が思うに大きく分けて4つある。

  1. レジの廃止による効率化
  2. コミュニケーションが不得意でも大丈夫
  3. 頼まれた商品の明確化
  4. 売上の向上

1つめと2つめは機械としての券売機の利点。人件費の削減と来やすさの問題。

3つめは、稀に酔った客とかが自分の頼んだものを間違えて記憶していて、やたら怒ったりするやつ防止や、店員側の聞き間違いとかを防ぐのに使える。

 

4つめだが、売り上げの向上とはどういうことか話していく。

人件費の削減と来客数の増加の時点で売り上げは上がるのだが、それとは別に売り上げを上げうる要素が券売機にはある。

それは券売機における心理的あるいは生理的要因の利用である。

人の心理的な要因として、所有物に対する執着がある。

物を手放す瞬間に痛みを感じるということが、生理学的にも知られている。

ようは、対価として食べ物がもらえるとしても、お金を失うのは嫌だという気持ちがあるわけだ。

ここでポイントなのは「所有物」に対する執着という点だ。

つまり、いったん手から離れてしまえば、その執着は薄れることになる。

頼むタイミングでは自分の所有物である一般的な支払方法と異なり、券売機による方法では、買う以前に自分の手からお金が離れているため、人によって程度は異なるが、執着が薄れ、高いものを買いやすくなるという心理効果が見込めるわけだ。

実際に750円のラーメンを買おうとして1000円札を入れたのにも関わらず、すぐ隣にある1000円のラーメン+半チャーハンセットを購入したというような経験のある方も少なくなのではないかと思う。

ここで大切なのは、ボタンの配置と価格設定である。

1000円ちょうどの商品は非常に良い。この上なく良い。

1000円入れて財布をそのまましまえるのだ。ちょうどいいやと思って押すわけだ。

つまり、750円のラーメンの下かあるいは横にセットメニュー1000円なんかがあれば最高ということだ。

ちなみに、私の行ったラーメン屋では1000円ちょうどのメニューがなかったので、ひとこと言ってやろうかと思ったくらいである。

 

これらを以って私は券売機を薦めるものとする。

商業利用としては、より一層IT技術を利用して、広告みたいにいい塩梅の値段になる組み合わせをサジェストする券売機なんか作ったら、面白いかもしれない。

 

追伸:ちなみにこの考え方は、ICカードやらクレジットカードやらにも準ずるものがあり、どうも目に見えていないお金に対する執着は低くなりがちのようだ。ほかにも引き落としなんかも同様で、現金が見えていないから財布のひもが緩くなる。ソーシャルゲームやネット決済なんかはこういった基盤の上に成り立っているわけだ。

 

最近考えたくだらないこと

私は世の中や人々を眺めてはくだらないことを考えることが好きである。どうせなので最近考えたくだらないことを綴っていこうと思う。だいたい大したことは書いてない。

1.東京の広告について

東京にやってきてしばしば思うのは広告が満ちているなという点である。

私が暮らしている県もそこそこ大きい県だと自負しており、それなりには街頭にも電車なにも広告があると思っていたが、東京はその比ではない。

東京がなぜ広告の街と化しているのか、考えてみた。

要はこの2つである。

  1. 広告を出せるような大企業が集まっていること
  2. 広告による利益が見込める

特別なことは何も書いていないので、そりゃそうだろと思うだろうが、雑記なので、そんなものと思ってほしい。

まず1つ目だが、広告を出す余裕がないと出さないというのはいたって自然な流れだ。2つ目だが、広告の値段は、どれだけ利益が見込めそうかという点と、設置及び管理にかかる費用でおそらく計算されている。東京は広告の宝庫と化しているため、設置や管理を行う企業は競合しており、その点では単価が安くなっていると考えられる。とはいえ、もともとの広告費は高いのだが、それはもともと収益が見込める分で対消滅できることを考えれば、妥当である。

では、なぜ東京の広告が利益が見込めるのか考えてみたいと思う。

簡単に思いつくのは人が多いという点だ。だが、単に人口が多ければいいかというとそうではない。

地方の電車内の様子などを見てもらえれば分かると思うが、多くの人は、うなだれているか、スマホをいじっている。正直、スマホが流行ったために、車内広告は相当単価下がったんじゃないかと勝手に思っている。

慣れてしまった人たちにとっては、広告もただの風景であり、得たい情報はスマホで検索したほうが的確に出るのだから、広告をわざわざ見る機会は少ないだろう。

人がいる等だけでは収入にはつながらないわけである。

では何が、東京にはあるのか。観光客や地方からのビジネスマンの類がキーポイントになる。

不慣れなところへ行ったとき、人はできるだけ情報量を増やそうとしてあたりを見回すことが多い。

かくいう私も、電車内で路線図を探してきょろきょろとすることがしばしばあった。

来訪者が多いゆえに、広告業は成り立っているのである。

また、海外から来た人たちはスマホ等のネット機器を用いれないことが多いという点もこの収益を後押ししているだろう。

 

2.東京と地方の人の平衡感覚について

より一層くだらないこと。

どうも、東京の人はつり革を握ってないんじゃないかと思った。しっかりカウントしたわけではないし、そもそも東京民かどうかも怪しいので詳しいことは分からない。

普段から電車を利用することの多い東京の人たちは地方に比べて平衡感覚が高いのではないかという適当な推論による。

研究などで、実際に測ってみて、有意差が出るか試してみるというのは面白いかもしれない。

ここで話が終われば、何の収益にもならないので、さらに踏み込んでみる。

平衡感覚が高いかどうかが何に関わってくるかというと、健康である。

よくテレビなどで出てくる元気なじっちゃばっちゃは平衡感覚が大抵とても良いと言われている。

平衡感覚が高いことが健康に直結し、電車が平衡感覚を養う要因となるのなら、電車の需要を違った方向でアピールしていくことができるだろう。

ちなみに東京近辺は軒並み平均寿命が高い。とはいえ、単純に生活水準が大きな要因になっているということは否定できない。

路線が発達している大阪は寿命が低いので別に関係ないのかもしれない。

誰か研究で調べたらいいと思う。

 

3.新幹線の子供の着席率について

新幹線に乗ったときのことを思い出してほしい。

ふと思ったのだが、どんなに混雑している状態であっても立っている子供を見た記憶がないのではないだろうか。

すごい日本、みんなやさしい。

それで終わってもいいのだが、私はやさしくないので、ここから先がある。

子供が立っていないという状態はおおよそ次の4パターンに分かれる

  1. 普通に空いてて座れる
  2. 指定席を予約している(まあ、100%で予約できないこともあるけど)
  3. 指定席を予約していなかったが、自由席が空いてないので、後払いで座る
  4. 自由席に譲ってもらって座る

指定席のほうは、さらっと歩いて通り抜けるだけのことが多いので詳しいことは分からない。

自由席のほうに注目すると、家族で幼い子供込みで、椅子を向かい合わせて座っている様をしばしば見かける。

1のパターンの場合、まあ、空いてたら座るよね。

4のパターンの場合が今回の問題となる。

パターン4をさらに分解する。

  1. 空いてなかったら指定席のつもりだったが、譲ってもらってしまった。
  2. 時期的に自由席が空いてると思った。
  3. 特になにも考えずに乗った。
  4. そもそも子供がいるし譲ってもらえると思った。

1の場合、分かる。指定席に行こうと思っていても、どうぞどうぞと言われてしまうと、指定席に行くんで大丈夫ですとは言いづらい。

2の場合、1の場合とそんなに変わらない。ただ、読みが甘かっただけ。私もよく読みが誤る。

3の場合、子供が座れないことをまったく考えてないのはどうかと思うが、そういった人もいると思う。

4の場合、内在的にそこそこいると思う。家族5人とかで、椅子向き合わせて座れないことはさすがにおおよそ予想がつくような気がする。

 

困ったときはお互い様などというし、助け合うのはいいと思うが、これの何がいけないのか考えてみる。

一つは指定席の消化率の問題。

指定席はそういうどうしても座らないと困るような人が、座るために用意されている。

そういう人に使ってもらわないと、新幹線の利益の問題にかかわる。

一つは風潮。

譲ってもらって当然という姿勢がよくないし、それを横行させるのもよくない。悪人扱いされるのがいやで、多くの人は少し押されたら譲ってしまうだろう。

こういったことが横行すると、ただでさえ、最近肩身の狭い子供たちが、どこかでしわ寄せを受けて、より一層肩身が狭くなる。

 

この件に限らず、「お互いさま」とはいうものの、多くの場合、しっかりしている人ほど、しわ寄せを食らっていて、損しているのではないかと感じることが多い。

私はそういうのが、好きではないので、世の中もっとお互いに謙虚になれるようにと思う次第である。

 

追伸:指定席なのに子供がうるさいといった不満を持つ方々もおり、指定席にうるさい子供がくることを望まない人たちもいる。それゆえに、指定席を予約するのを躊躇う人もいるようだ。子供優先の指定席を少し安めに売るなどして、うるさくても仕方ないかという環境を作り、気兼ねなく、指定席を予約してもらう工夫がいるのかもしれない。