日記 : ごはんとパンのどっちが食べたいのさ

例えがうまく理解してもらえなかったのでその補足になるかもしれない駄文です。 最低3日に1回のペースで書くってなかなか難しい気がする。

「楽しい」は一つじゃない

何かについて「楽しい」と一言で言っても,それが表す内容は全くかけ離れたものであることは珍しくない。

例えば,仕事をしていての「楽しい」と好きなゲームをしていての「楽しい」が同じかと聞かれて同じだと答える人はあまりいないだろう。

これはその「楽しい」ことで満たされるものが違うからではないだろうか。

「楽しい」の分類

個人的な「楽しい」の例としては次のようなものが挙げられる。

  • 新たなものに触れ,刺激を受けた
  • 対象に対する理解を深め,知識欲が満たされた
  • 対象に深く共感し,孤独感が薄れた
  • くだらないことで盛り上がり,笑顔になった

上2つはどちらかと言うと硬い印象で,下2つはどちらかと言うと柔らかい印象を受ける。

これらは同じ「楽しい」であっても方向性が異なり,硬い「楽しい」が充実していても,柔らかい「楽しい」が不足しているとそれはそれで満たされないのである。

先輩や上司と飲みに行くのは楽しい,けど,その「楽しい」だけじゃ満たされないので,気がつくと別の「楽しい」を求めることになる。

ごはんとパンの関係

この「楽しい」の関係は,ごはんが食べたいなと思っている時にパンを出されても満たされない感じがあるのと似ている。

他に例えるなら焼きそばとカップ焼きそばとか味噌汁とコーンスープとかそんな感じだろうか。

ごはんばっかり食べてるとごはんが嫌いになるよ

硬い「楽しい」がごはんであり,柔らかい「楽しい」がパンであるように,どちらか一方ばかりの「楽しい」を摂取していると飽きがきて苦痛になる場合がある。

なので,「楽しい」もその方向性を考えた上で,適切な「楽しい」を選んでいく必要があるのではないかと思った。

蛇足

実際のところは知らないけれど,もしかすると「楽しい」の方向性は3つ以上あるのかもしれない。でも,自分がそれを知ることはきっとこれからも無いのだろう。

日記 : そして"キモくて金のないおっさん"はナルシストになった

「キモくて金のないおっさん」問題

容姿・言動が気持ち悪く貧乏で家庭を持たない冴えない中高年,所謂キモくて金のないおっさん,数年前からその言葉をよく耳にするようになった。

news.careerconnection.jp

過去に様々な箇所で話題となり,Webメディアを中心に幾度となく取り上げられてきた。

今もなお何か社会問題が起きるたびにこの「キモくて金のないおっさん」が引き合いに出されることが多い。

そんな"キモくて金のないおっさん"(以下キモおさ)はどういう経緯を持って生まれるのか,そしてどう生きていくのか。

孤独死も視野に入るようになってきたキモくて金のないおっさん予備軍の自分が考えてみる。

絶望的なまでの"経験・成功体験"の欠如

学業,仕事,人間関係...

様々な経験や成功体験は何よりもその人をその人たらしめているものであり,人としてのアイデンティティを確立するものである。

これらは人と関わっていく上で非常に重要だ。あなたはなんの取り柄もなく話もつまらない人とわざわざ食事に行ったり遊んだりするだろうか。

大半のキモおさは,壊滅的にこの経験・成功体験が不足,または欠如している。

アイデンティティの喪失と負のスパイラル

前述の通り,キモおさは往々にして人としてのアイデンティティを確立できていない。

晴れて(?)ぼっちとなったキモおさだが,キモおさを含め,多くの人は一人では生きていけない。

キモおさだって仲間がほしい!である。

実は,キモおさの大半は心の何処かで自身のアイデンティティが確立できていないことに気づいている。

そして誰よりも自分が人を楽しませることができないことを理解している。

だからこそキモおさは自ら人と関わることを避け,前にも増して様々な経験から遠ざかっていく。そして,より孤独の深みへと嵌っていく。

矛盾と崩壊 そしてナルシストへ

しかし何度も言うように,人は一人では生きていけない。孤独に生きるキモおさにもいつか限界が訪れ,人との接点を求め始める。

ただ残念なことに,キモおさはその経験不足故に人との距離感をうまく掴めない。せいぜい知り合いくらいにはなれても,友人・親友になることはできないのだ。

追い詰められたキモおさの行く末はどこか... それはナルシズムへの目覚めである。

「キモくて金のないナルシスト」

成功体験の欠如から,常に劣等感に悩まされるキモおさ。その劣等感から来ていた謙虚さは,いつの間にか真面目で誠実な自分を演出するための道具へと変貌していく。

そうしてキモおさは耐え難い孤独の末,ナルシズムという負のアイデンティティを手に入れる。具体的に言うと,こんな日記を書いたりする。

物語もここまでくれば終盤。晴れてキモくて金のないナルシストになったキモおさは,今日もまた何も変わらない寂しげな日常を過ごしていく。

誰にも悲しまれない孤独死を目指して。

バズった「キモおさ」に未来はあるのか

今まで存在してこそはいたものの全く注目されてこなかったキモおさ。そんなキモおさもそのセンシティブかつ話題性のあるネーミングから比較的大きなトピックになった。

キモおさはこれをきっかけに打開策を見つけることができるのだろうか。

個人的には,多分ムリだと思う。なんたって,だからキモくて金のないおっさんなんだから。

最後に

こんなことを書いては居るが,自分はまだキモくて金のないおっさん予備軍を抜け出すことを諦めていない。

そして何かの拍子にこの記事を読んだキモくて金のないおっさん(OR 予備軍)にも諦めてほしくはない。

お金がないのはどうにもならないかもしれないけれど,きっと楽しく生きる方法はあるはずだ。

日記 : 「はたらくって青春だ。」がマジだと結構キツいよ

大体3日くらいいろいろ考えて日記書いてたけどまとまらなかったので適当な言葉でお茶を濁すやつ

少なくとも3日に1個くらいは書きたい

日記 : 人との距離感と境界線 あと秋ですね

頭の中で考え答えが出ないまま終わってしまうことを繰り返していても効率が悪いので 何か考えたときには前回のように日記を残すようにしてみる試み

人との距離感と境界線

人との距離感

人として社会で生きていく以上,他人と最低限のコミュニケーションを取らなければならないのは誰もが知っていることだと思います。

とはいえその内容は対象相手によってそれぞれ違って,単なる上司や同僚とのそれと友人や家族とのそれでは全く別のものになるでしょう。

前の日記にも書いた通り,自分はこういうような人との距離感がうまくつかめていません。

故に「妙に馴れ馴れしいな」と思われたり「妙に余所余所しいな」と思われることが多く(気がする),それらはだいたい次の2通りに分類されます。

妙に馴れ馴れしい パターン

「なんとか楽しい雰囲気を作ろう」とするのだが,結果はただのイキり野郎

出来もしないのにジョークとか言おうとする。その日の夜はお布団で反省会です。

妙に余所余所しい パターン

前述の反省会後に「イキるのが怖い」とか「あの人の踏み入って良い境界線がわからないから怖くて話しかけられない」パターン

簡単に例えると「目の前に居るのにTwitterで会話してる」みたいな

本来のコミュ障が存分に発揮されている。その日の夜はお布団で反省会です。

毎日布団反省会をしなくてすむように

毎日反省会をしていたら気が持たないどころか,「反省」に対して慣れが生まれてしまい意味をなさなくなってしまうのでやめたいところ。

うーんどうしよう…

秋ですね

話は変わって秋ですね。夜は少し肌寒い日も多くなってきました。

ふと「いつかは一人で地元に帰って親の面倒を見るのかな」など思い,少しさびしくなりました。

先週は気温も低く,ちょっと落ち込むことがあり気晴らしのため天王洲アイルあたりまで一人で散歩してきたのですが,結果として失敗だった気がします。 この件についてはまとまり次第また日記にでもしようかなと思っています。

日記 : 社会人になってから考える「居場所」の話

ただただコードを書いていた大学時代とは一変、最近はいろいろな出来事から考えさせられることが多いのでその記録

就活中,就活を控えた後輩の足しにでもなれば嬉しい

居場所が無い

人にはだいたい居場所がある。大学時代の自分の居場所は明らかに研究室※1だった。わりかし好き勝手できたし,自分主導でシステムの開発プロジェクトを進めたりとかもしていた。

ブログ名からも分かる通り(?),自分が通っていたのは世間一般に言う「Fラン大学」なのだけれども,なんだかんだ居心地が良くて,悪く言えばぬるま湯に浸かった状態だった。

そんな大学生活も長くは続かず,卒業が見えてきた。金銭的な理由から大学院に進学するなんて選択肢はなかったし,そもそも正直なところ,あの大学の院に行く気にはなれなかった。もっと志が高ければ奨学金マシマシで他大学の院に行ったりもしたのだろうけれども。

就職では幸いなことに希望通りの仕事に就くことができた。自分でも驚きなのだけれども,とっくの昔に諦めたはずだった仕事をしている。

この点については本当に運が良かったとしか言いようがない。

ただ,そこは「Fランに進学した人間」,一筋縄ではいかないのは目に見えていたし,事実いろいろな壁にぶち当たることになった。

その1 "基礎は応用に勝る"

学生時代にしていたアルバイトとシステム開発の経験を元に,知識の共有は率先して行っていた。そもそも負ける気などなかったし,正直なところ今でも実務で負ける気はないので頑張っている。(つもり)

が,周りの理解力の速さに驚愕した。明らかに自分よりも数倍早く,このままでは置いて行かれるのが明白だった。

学生時代にも短期交換留学や勉強会などに参加した時に同じような経験をしたことがあるが,今回のそれは今までよりも遥かに顕著だった。

一度説明を受ければ次の瞬間にはほぼ完全に理解している。実際に何度も試さなければ理解できない自分とは全く違う。

違いは何かを考え,結論として出たのは「基礎的な能力の高さ」が違うということだった。そもそも基礎が違う。経験則の集合でしかない自分とは違い地頭が良い人ばかりだ。

まずここで第一の壁にぶち当たった。でも正直これくらいは覚悟していた。

その2 "マネジメント能力の欠如"

当然ながら,研修はコードを書くだけではない。それでまあいろいろあったのだけれども,すべてを通して感じたことは自分のマネジメント能力のなさとコミュニケーション能力の欠如ぶりだった。

仮に答えがわかっていても,その方向に動けるようにできなければ何の意味もない。そもそも答えを導き出せていたかも怪しいと今では思うが,それ以前の問題だった。

で,結局先輩に相談したわけですよ。マネジメント能力を身につけるにはどうしたらいいだろうか,と。

「多分君には向いてない。」

いや,ぐうの音も出ない。振り返ってみてもマジでそうだと思う。伊達に二十数年生きてない。

ここは正直予想していなかったし結構ショックだった。わりと引きずってる。才能がないのは認めつつも最低限はできるようになりたい。

その3 "距離感のつかめなさ"

幸いなことに,今の職場は先輩,同期含め本当に良い人達だらけで,今の自分がなんとかやっていけているのはこの人達のおかげだと思う。いろいろと趣味も増えた。

自分が嬉しいと思うことをしてもらうと恩返しがしたくなるのは人の性だと思うのだけれど,その方向性がいまいちよくわからない。飯に行こうって言っても何か話すわけでも話せるわけでもない。完全にコミュ障のそれでしかない。

これは割りと核心に迫る部分でもあり,わりとトラウマに近い何かでもあった。

その3 "イキり癖とそれに伴う空回り"

どうにもいろいろなアイデンティティを失ってからというか,変に希望を持つようになってからイキる悪い癖が出てきた気がする。ここ数週間インターンで東京に来ていた後輩と週末に会っていたけれど,思い返すとまともな先輩面しようとイキっていたのではないかと思う。

正直なところそもそもまともな人間じゃないしわりとボロボロです。

というか,こういう"なんとかしなければ"タイプのイキりは基本的に良い方向に進まない。流石に何度同じことを繰り返せば気が済むんだというレベルなのだけど,人は追い込まれると過ちを繰り返す。自分は追い込まれるとイキりだす。

ふと冷静になった時の虚しさは形容し難いものがある。

その4 "御託はいいから結果を出せ"

これについては見出しで終わっていて特に書くこともない。この掃き溜めみたいな日記モドキを書いてる暇あったら結果を出せということ。

その5 "居場所というアイデンティティ"

で,最終的にこれに行き着く。めちゃくちゃな行動をしていて煙たがられた末に居場所がなくなったとかそういうことではなくて,自身の存在が揺らがない場所がないということ。早い話がアイデンティティを確立できなくなったということです。

いやー,どうするよ。このままじゃ流石にヤバいですよ。

アイデンティティの確立に向けて

一通り問題点を洗い出し,これから何をしていこうかというところを考えるフェーズに入った気がする。ここからが本当の正念場なので気を抜かずに頑張りたい。

多分過去に残してきたものの清算をする時期なんだろうなあ。

ここからが本当の地獄だ。

※1 前述の通り地方私立文系Fラン大学なので学生に与えられる研究室はなく,教授の研究室を間借りして使っていた。ので,実は研究室という言葉は適切ではない。

大学プロジェクトメンバーに残す「今後やってほしいこと」

2年の頃からアルバイトとして大学でいろいろなWebシステムの開発を行っていましたが、卒業が近づくにつれ終わりが近づきつつあります。

自分は居なくなりますが、後輩は(おそらく)今後も各種システムの開発を引き継ぐことになると思います。

せっかくなので、自分がやろうと思ってできなかったことや、絶対にやっておいたほうが良いと思ったことなどをまとめてみました。

といっても私が思ったことでしかないので、特に従わなければだめとか、従ってないと悲しいとか、そういうことは全くないです。

というか、あの現場にいるよりもっと成長できる現場に行けるのであればやめてしまっても全く問題ないとすら思っています。

デザインパターンの習得

共同でコーディングを行う上で、デザインパターンの習得は非常に重要だと考えています。

というのも、デザインパターンは知っている人たちからすれば「共通の設計方針」になるからです。

例えばこのシステムにおけるモデルはActiveRecordパターンを使う、などというだけで、設計方針を 明確に伝えることができるようになります。

メンバー全員が共通の認識を持つことで、チグハグな実装になる可能性を排除することができます。

例えば、アレにおけるmakeUserメソッドはFactoryパターンです。採用理由はコンストラクタで例外を投げないようにするためです。

関数型言語(の考え方)の習得

関数型言語といえば数学的というイメージがあり、圏論、ラムダ計算、(Haskellの)モナドなど、難しいイメージがあるのではないかと思います。

私もそうですが、今後この仕事でご飯を食べていくためにもしっかり圏論から学ばなければならないなと薄々感づいています。

ただ、別にそこまで理解しなくとも関数型言語のエッセンスを理解することは従来通りの手続き型OOPをする上でも十分に活用できると思っています。

というのも、最近は何気なく書いているSQLJavaScriptには既に関数型のエッセンスが散りばめられているからです。

高階関数、イミュータブル(不変)性のメリットなどについて調べることで、データの加工処理においてよりスマートなコードが書けるようになると思います。

例えば、アレのUI生成ではJavaScriptのmapメソッドを用いていますが、あれも関数型の考え方に近いものがあると思っています。

環境の改善

ただただ仕事としてやるだけじゃなく、コードを書く上で効率的な手法やモダン(近頃流行っている)な手法について自ら調べ試してみることで 例えそれがうまくいかなくとも良い経験になると考えています。

個人的にCI(継続的インテグレーション)とかしっかりしたユニットテストやりたかった。

普段何気なく使っているGitLabですが、せっかく多機能なシステムなのに殆どの機能を活用できていません。

また、いちいちテストサーバにデプロイする作業も無駄です。Hookなどの機能を活用してテストサーバに自動的にデプロイされる環境を作ったほうが良いでしょう。

例えば、アレは比較的大規模なシステムなのにもかかわらず、ユニットテストがしっかりと組まれておらずテストの自動化ができていません。テストが自動化できないことでデグレード(改善したつもりがバグになる)が発生する危険性が増し、「触らぬ神に祟りなし」状態となってコードのリファクタリングもしにくい状況です。

スケジュールとメンバー次第ですが、テストドリブン(機能実装より先にテストコードを書く)な開発を行っても良いと考えています。

「書いたら書きっぱなし」をやめる

環境の改善と重複しますが、一度書いたコードは問題が起きるまでいじらない、という考え方はやめたほうが良いと考えています。

といっても状況によるのですが、コーディング規約を無視してとりあえず動くようなコードを書いて、それを「問題がないから」と放置するのはその後の保守を考えると絶対にやめたほうが良いでしょう。

自分の書いたコードは他の開発メンバーが読む、ということを常に意識してコードを書くよう心がけ、例え荒削りなコードを書いたとしても後々しっかりリファクタリングすることで、その後の開発が随分楽になるのではないかと思います、

ちなみに就活をしていた時の経験として、コードを書くときに面接官の方はそういったところをかなり注目して見ています。

仕事においては複数人での開発が当たり前になるので、他人が読むことを考慮したコードを書くことはとても重要です。何せ自分たちは頭キレキレでバリバリなコードを書く理系大学生ではないのですから、そういう部分でアドバンテージを発揮するしかないように思います。

例えば、アレについて私は問題ない部分や変数の初期化方法など本当にどうでもいい部分を結構変更したりしていましたが、コードの統一性を図り後々メンテナンスする時に楽になればいいな、と考えていたためです。(とはいえテストがしっかり組まれていないのでかなり危険な橋を渡っていたことは否定できない)

検索スキルをつける

何か問題にぶち当たったらとにかく検索しましょう。自分がぶち当たった壁は99%くらいの確率で他の誰かも経験しています。

あと、英語で検索してみるのも良いかもしれません。どうせこの分野での英語なんて大して難しい言葉は使われていませんし、最悪Web翻訳をかけて読むことだってできます。

例えば、55円事件のアレでは英語で検索したことで本番環境での不具合の原因がSAMBAのバグであることを特定することができました。

最後に

グダグダと書いてきましたが、とにかく興味を持つことを忘れないのが大事だと思います。好奇心を大切にしてください。 自分からいろいろな情報を集めて試してみるのは良いことです。少なくとも、学生なら少しくらい失敗しても大丈夫です。

あと、偉そうなこと言ってますが、私は仲間とともにもっともっといろいろ磨いていきたいなと考えているだけの本当に大したことのない人間です。あんまり当てにしないほうが良いと思いますし、もっと立派な人はいます。

っていうか、大体の場合において、こういうことをグダグダ言っている人は無能です。本当に有能な人は黙々と自分の道を進んでいます。そういう人から学べる環境に行きたいなと常々思います。

XperiaのOSSアーカイブ読み 2017/01/20

いつも通り適当にRSSTwitterに流れてくるサイトを巡回してたら,気になる記事を見つけた。

androplus.org

未発表のスマートフォンの画像がリークするのはいつも通りすぎて特に言うことはないのだけれど,気になったのはこの部分

また、Sonyのデータベースから、現在開発中のプラットフォーム名も判明しました。 一つは「BlancBright」、もう一つは「Yoshino」です。

Sony Mobileのスマートフォンには基本的に開発コードネームとプラットフォーム名がつけられている(例えば,Xperia Zなら開発コードネームYugaでプラットフォームがLagan(Qualcomm APQ8064 + Qualcomm MDM9215M)のだけれど,新しいプラットフォーム名が判明しているそう。

どうせいつも通りQualcommのSoCだろうし,最新のXperiaオープンソースアーカイブ見てみたら何か書いてるかも,と久々にXperia X Performance / XZの39.2.A.0.386をダウンロードして探してみた。

すると,ごく僅かに,断片的にだけれどもMakefile中にYoshinoに関する記載があった。

# vendor/semc/external/fips/kscl/Android.mk Line 16 ~ 26

ifneq ($(filter N 7.0, $(PLATFORM_VERSION)),)
  ifeq ($(strip $(SOMC_PLATFORM)),tone)
    TARGET_KERNEL_SOURCE := kernel/msm-3.18
  else ifeq ($(strip $(SOMC_PLATFORM)),yoshino)
    TARGET_KERNEL_SOURCE := kernel/msm-4.4
  else
    TARGET_KERNEL_SOURCE := kernel
  endif
else
  TARGET_KERNEL_SOURCE := kernel
endif

どうやら変数SOMC_PLATFORMyoshinoならカーネルソースとしてkernel/msm-4.4を使用するそう。

ここで出て来る特殊な用語(?)としては

  • SOMC : SOny Mobile Communications,昔はSEMC(Sony Ericsson Mobile Communications)だった。
  • msm : MSM(Mobile Station Modem,要はQualcomm Snapdragonのこと。
  • msm-3.18, msm-4.4 : msmにおけるターゲットLinuxカーネルバージョン。ここにあります。

ただし,39.2.A.0.386にはkernel/msm-4.4が含まれない為,わかったのはこれだけだった。

わかったこととしては

  • YoshinoプラットフォームはQualcommチップセットである。
  • Yoshinoプラットフォームはmsm-4.4ベースである。
  • YoshinoプラットフォームはLinux Kernel 4.4ベースになる。

ということくらい。

BlancBrightの名前は見つからなかった。たぶんMediaTekチップセットなんじゃないかと思う。そういやMediaTek Helio P20採用の機種の情報が漏れてましたね。

あと,Qualcommチップセットに元素名のコードネームをつけてるみたい。ちょっと適当にソースを眺めてみた感じだとこんな感じかな...間違ってるかもしれない。

  • msmcopper => MSM8974 (Snapdragon 800)
  • msmgold => MSM8917 (Snapdragon 425)
  • msmtitanium => MSM8953 (Snapdragon 625)
  • msmferrum => MSM8909 (Snapdragon 210)
  • msmplutonium => MSM8994 (Snapdragon 810)
  • msmtellurium => MSM8952 (Snapdragon 617)
  • msmthorium => MSM8937 (Snapdragon 430)
  • msmzinc => APQ8084 (Snapdragon 805)
  • msmcobalt => MSM8998 (Snapdragon 835)