「体の贈り物」という本を読みました

本好きの友達から、「とにかくすごい本だから読んで。しかし、何も先入観持たずに読んでほしいから、どんな本か聞かないで。」
って本屋で言われて、「んじゃー買うわw」って言って読んだ本です。

うん。
すごい本だった。
確かに、何も先入観持たずに読んでほしい。

とはいえ、もうすぐ来るお正月!
お正月には、読まない方がいいですw

明るい気分の時、暗い気分の時には読まないほうがいいです。

ではでは、みなさまよいお年を~ノシ

サービスマネジメントという本を読みました

この本は、オススメはしないです(笑)

 

ほんっと読みづらかった(ノω・、) ウゥ・・・

でも、最後まで読みました。書いてあることは、いいこと書いてあるな~ と思ったからです。

なので、書いてあったことで自社に応用できたことを箇条書きで書いておきます。

 

弊社では、配送会社向けのシステム、「ODIN リアルタイム配送システム」を開発・販売しております。(`・ω・´)

しかし、弊社はソフトウェア開発の会社でして、配送業の方たちが、いつも何に悩んでいるか、どうなったら嬉しいかは、配送業の方に聞かないとわからないんですよ。

なので、なるべく接点を持って、お客様の声を聴くようにしています。

それでも、もう2012年から7年もやっているので、どっかに慢心があるかもしれません。

「あー、お客様はこう思ってるだろうね。わかってるよ!」

みたいなですね。

お客様の声を聴くべし!ということがこの本の中でも強く主張されていて、改めて、大切なことだなと気づきました。

 

業界に昔からあるモノではないモノを販売しているという自覚があります。

ラーメンを売っている人は、ラーメンについてもう説明する必要はないと思いますが、弊社の場合は

「リアルタイム配送システムとはなんぞや」

というところから説明する必要があります。ここで、もう

「あー。わかりづらっ。もういいや」

って思う人、多いと思うんですよ。

さらに、システムとかソフトウェアって、新しいものは使いたくない、というのが現場の皆さんの声だと思います。

お客様が、使い始める時に、なるべくストレスがないようにしたいです。

なので、弊社では電話サポートをかなり厚くやってます。弊社の製品サイトのサポート紹介欄にも書いてあるんですけど、

「弊社では、サポート担当者と、アプリケーション開発者が机を並べ、常に緊密に連携を取ってお客様へのご相談にお答えします。」

なんです。

これ、ホントのことですw

「それは会社が小さいからだろ!」

というツッコミが聞こえますが、いやいやいやいや×80、これが小さい会社の強みでもあるし、自社開発の強みなんですよね。

ソフトウェアを開発・販売している、ということを標ぼうしている会社はいっぱいありますが、本当に自社内で開発している会社は意外と少ないという現実をご存知でしょうか?!

開発は外部の会社がやっている、あるいはベトナムとか中国の子会社がやっている、連絡するのに2日以上かかるという会社も多くあります。

お客様から、うちのサポートは親切、といつもおほめの言葉を頂きます。

でも、この本を読んで、この強みに気づいたんですよ!

 

トップが責任をもって、サービスについての会社のスタンスをリードしていく。

この話はね…わかる、わかりますよ。

会社の近くに、よくいくレストランがありますが、従業員さんの態度が、個人差はあるけれども、いくら入れ替わっても一貫してよくないんです。

そういう経験って皆さんありませんか?

外食を志向してくる方というのは、サービス志向がそもそも強いと思うんですよ。

なのに、お店によって、従業員さんの態度はよい店もあれば、悪い店もある。悪い店ってのは、ずっと変わらず悪いんですよねw

トップの方が悪いんだろうなって想像します。。。

壁に貼ってあるクレドが立派なモノでも、社長さんがお客さんに向かって尊大だったり、扱いが雑だったり、無視していると、まず役員がマネをし、次に部課長がそのマネをし、次に社員さんたちがマネしちゃうんですよね。

私も、私のお客様に対する態度が、社員さんに伝わるんだろうな、気を付けないとな、と日ごろ思います。(´ω`)

 

 

などなど、気づきを得させてくれた本でした。

ほんっとに、私としては、お客さまに弊社製品の悪いところ、いいところ、色々お聞きしたいです。

お問い合わせはこちらからどうぞ。

成長が目的なのはよくないけど、かといって成長しないのもよくない

最近私、「まこなり社長」という方の動画を、朝の隙間時間や晩御飯作るかたわら見てます。

音声で全部しゃべってくれるので、見てなくていいので、料理しながら流しておくのにいいんですよね~。

無料なのに本当に勉強になります、まこなりさん、ありがとうございます!!┌o ペコッ

考え方には同意できる部分もあり、同意できない部分もあります。(当たり前だ)

採用・仕事のスタンス・転職などに対する考え方は、私の考え方に似てるところがあります。

うまく言ってくれてるなーと思うのが、下記の動画です。

 

仕事というフィールドで、成長ばかりを追い求めても、幸せにはならない、という点ですね。

そうなんですよ。

私も、仕事というのは他者貢献であると考えています。

その対価でお金を頂くのが大体のビジネスですから、他者貢献が楽しくないと、大体の仕事というのは楽しくないんですよね。

しかし、5.6年ぐらい前からですかね?

圧倒的成長

 

とか

のびしろ

 

とかいう言葉を非常によく聞くようになりました。

新卒の方が、会社を選ぶ際や、転職者が転職先を選ぶポイントとして、です。

「市場価値を上げる」

「会社にしがみつかない自分になる」

というのが、その理由としてよく聞くフレーズですね。

 

しかし、私は成長することは手段であって、目的じゃないのでは…と思っています。

とはいえ、プログラマー、エンジニアという職種は、じゃあ入社した時からスキルが伸びなくていいのか、というとそうではありません。

勉強しつづけないと、取り残されますし、スキルが低いエンジニアという立場に甘んじなくてはいけなくなってしまいます…。

それでも、

「成長が目的」

という方は、弊社では採用しません…。手段と目的が逆と考えるからです。

「成長が目的」という方は、実際、仕事ができない場合が多いです。(残念ですが…)

自分のやりたいこと、今までやってないことをやりたいという気持ちが強いので、お客さんが使いづらいものを作ってしまったり、ノウハウのないことをやってバグばっかり作ってしまったり…。

 

ドラゴンボールにたとえてみると、悟空的な成長ができるといいですね。

地球を滅ぼそうという皆さんから、地球を守るけれども、そのために強くならなきゃいけないので、強くなるために努力する。

また、その強くなることを楽しめる。

ベジータはその辺、彼が強くなることが目的で、地球を守ることはついでにやってるだけ、みたいな感じですね。

ベジータが頼れるかというと、そうではありません。

目的が、自分たちを守ってくれることじゃないからです…。

架空の話にたとえるのはあまりよくないですが、本当の人にたとえるのも角がたつので、架空の話で例えました…。

 

「いや、でも『市場価値を上げたいし』『会社にしがみつかない自分になりたい』んだよ!」

と言われるかもしれません。

市場価値ってなんでしょうね…?

あなたは、なんだと思います…?

これについても、私的には一つの考えがありますので、別の機会に書きたいと思います。

 

 

「コンピュータシステムの理論と実装」という本を読みました

この本はですねー。

本当に読むのに時間がかかりました…。


多分、2年近くかかってると思う(;’∀’)

読むきっかけは、

ゼロから作るDeep Learningという本を読みました

で紹介した、「ゼロから作るDeep Learning」という本で、この本が紹介されていたからです。

Deep Learningを勉強していくなかで…NandとかXorとかがすぐに理解できなかったんですよね。

 

私は、ずっと文系で来て、学校でコンピューターのことを学んだわけではありません。

なんかねー、そういうことを勉強してきた人にかなわないなって普段思ってるんですよ。

 

読むのに時間がかかった理由は、内容が難しいというのにプラス、コードを読んで、それをエミュレーターで実行しないと理解が進まない(;^ω^)

そして、そのエミュレーターの使い方が英語でしか説明がない…(つД`)

ありがたい話で、nand to tetris(原題:Nandからテトリス)ってググるとどなたかが作ったサンプルにたどり着きます。

プログラマーとして、日々プログラムを書いてちゃちゃっと実行していますが、ここに人類がたどり着くのに、すごい、道のりがあったんだなと。

よくこんな仕組みを思いついたな~と感動があります。

 

本当にいい本ですよ。買ってよかったし、読んでよかった。勉強になったし、面白かった。

私のような文系出身プログラマーにはお勧めです!

 

本屋が好きな話

突然ですが、本屋が好きです。

最近、少なくなっちゃいましたよねー。(T_T) あっても、文具コーナーに押されてたりとか。

かくいう私も、アマゾンで大体の本を買っちゃいますが。技術書は、本当に置くところ少なくなってきましたよね。

昨日は久しぶりに本屋に行けて、かなり楽しかった(^o^)

本屋って、落ち着くカフェみたいないい雰囲気なんですよね。新しいきれいな本に囲まれて、目についた本を手に取ってパラパラめくるのが幸せなんですよねー。

昔、熊本から東京にでてきたばっかりのころ、熊本から一緒だった友達と待ち合わせするのは、いつも本屋でした。大体、どっちかが30分ぐらい遅れるのでwww 本屋なら、時間つぶせるだろうーってことでw

もっと本読みたいなー。と思いつつ、なかなか時間なかったりですね(^_^;)

年頭の目標にもしたんですけどねぇ(´Д⊂ヽ

小説とかも普通に好きですが、ハウツーモノも妙に好きです。

大体、どの本も

「メイクを変えたら人生が変わった!」

「この筋トレで人生が変わった!」

「この食べ物ですべての不調が治る!人生前向きになる!」

とか、そんなに人生変わるかーw

と思いつつも、ハッピーエンドが確約された小説みたいで楽しいんですよね!自分のためにもなる気がするし( ・∀・)

昨日はこれ買いました!

動かないゼロトレ https://www.amazon.co.jp/dp/4763137654/ref=cm_sw_r_cp_apa_i_ZlNQDbBTS5CBS

端的に言うとストレッチの本ですが、え!そんなふうに伸ばすの?というところがよい。ちょっとやっただけでも、なんか気持ちよくて、体によさげ…

しかも、簡単なのがよい!しばらくやってみます。

「マーケティングとは『組織革命』である」という本を読みました

いきなりですが、私はUSJに興味があります。

だいぶ昔(9年ぐらい前)に行ったことがありますが、その時は実のところ、関西の人たちが口をそろえて言う

「関西のディズニーやで!!」

という話で期待満々で行ったのですが、まぁ、あんまり期待ほどではなかったというのが本当のところで(;^ω^)

面白くなくはなかったのですが、ディズニーほどの豪華さとか統一感とか、きれいさとか、アトラクションの楽しさなどを比較すると見劣りするな、というのが本音でした。

行った時、唯一面白かったのが、「ハロウィンホラーナイト」みたいな催し物をやってて、なんだかボロボロの恰好をしたキャストの人たちがフラフラしながら

「わーっ」

とか言って追っかけてきたりして、

「すごい催し物だな。これはディズニーではできないだろうなwww いろんな意味でw」

と笑ったり楽しかったりした覚えがあります。

 

で・す・が!!

今やUSJってすごいらしいじゃないですか!(`・ω・´) みんな大阪行くとUSJ行くじゃないですかw 大人気じゃないですか。

ディズニーシーを超えたとからしいですね。

 

で、その奇跡のV字回復をした立役者が「森岡毅」という方で…という話は時々メディアで見かけていました。

森岡氏が最初にUSJでやったアクションが、私がUSJに行った時にたまげた「ハロウィンホラーナイト」だったらしくって、その話も自分の体験と重なって、森岡氏の本はぜひ読んでみたいなとずっと思ってました。

というわけで、「マーケティングとは『組織革命』である」という本を読みました。


この本は組織論の話でして、要は組織がダメだとマーケティングどころじゃないYO!!ってことだと思いました。

会社にとって、マーケティングが一番大切 → マーケティングがちゃんと動くように組織をちゃんとしよう

というのは私も激しく同意です!!

技術があれば売れる、ということはなく、お客さんは買いたいものを買うのです。

お客さんは買いたいものを生み出せなければ会社はつぶれてしまう…。なので、マーケティングが会社にとって一番大切というのは本当にそうだと思いますね。

 

ただ、あまり納得いかなかったのは、評価制度の話。

Aという部署があって、部長が1人、部下が10人いれば、

部下を1から10までの相対評価で評価しよう

というのが森岡氏の本著での主張でした。

 

うーん。だいぶ、アグレッシブだな…。

営業部とかだと、ある程度競争に身を置くのを受け入れていると思うので、これでいいと思うのですが…。

 

もう一つ、私とはここが違うなと思う点は

「共通の評価項目を作る」

というのは、私の会社では難しいということです。

弊社では、目標は、スタッフさん個人と相談して個人別の目標を作っています。

それは、スタッフさんにモチベーションをもって仕事をしてほしいのと、個性や創造性が必要だと考えているからです。

この話をしだすと長いので今度別の機会に分けますが、フランス料理と日本料理、同じ軸では評価できないですよね?

と、思っています。

 

評価って、社風とか、業績とかにじわじわ関わってくるもので。

社員さんって、あまり気にしてないようで、低い評価だともちろん気にするわけで。

 

評価制度って本当に難しいですね。(´ω`)

弊社でも、よくいろんな方のいろんな意見を聞いて、参考にしています。

 

社員の力で最高のチームを作る

以前、

1分間マネージャーという本を読みました

という本を読んだんですけど、ケン・ブランチャードさんの本をもう一冊読んだ、というのがこの本です。

 

で、1分間マネージャーよりもお勧めしたいのが、この本。

 

社員の皆さんに、モチベーション高く、いろんなことを自分で考えて自分でやってほしいというのは管理職の願いだと思いますが、それに対する実践的な回答があると思います。

弊社も、社員さんが自分で動く、自律的な働き方に取り組んでいます。

ストーリーになっているので、頭にも入りやすいし、内容は2時間ぐらいで読めます。

 

オープンソースのソースコードを読んでみる

ブログをちゃんと書いていく、と決めた以上…

このブログのサブドメイン脱却と、SSL化をしたいですね!(`・ω・´)

今年中には…!! って、あと344日あるから後でいっか。(典型的ダメパターン…)

 

さて、プログラムの勉強って、いろんな形があると思いますが、そこそこ書けるようになったら、今度はうまく書きたいと思うことでしょう。

リーダブルコードとか、そういうプログラムの書き方についての名著は多くあるので、そういうのを読むのもいいと思います。( ˘ω˘ )

自分で書いて、動かしてなんぼなので、じゃんじゃん書く、こまめにデプロイする、とかもいいと思います。

あとは、よいソースコードを読むことですかね。

 

オープンソースのソースコードとか、やっぱり有名なものだといいものが多いので、オススメです。

しかし、オープンソースのソースコード読んだらいいよっ て自社の社員に話をしたら、

「どうやって何を見たらいいのかわからない / 難しすぎてわからない」

という話があったので、書いておきます。

 

まず、自分の開発環境で動かせて、なじみがあるものがいいですね。

そういう目線で、簡単でとっつきやすいPHPで動作する、WordPressはどうでしょうか。

みんな大好きWordPress。このサイトもWordPressでできております。⊂(^-^)⊃

WordPressのソースコードはここにあります。

https://core.trac.wordpress.org/browser/

 

branches/5.0/src

 

って進んでいくと、WordPressの5.0のソースコードがあります。(今の時点2019/1/11で最新が5系)

こっから先は、各個人の好みとかで見たいもの見たらいいと思うんですけど、巨大なシステムなので、最初はちっちゃい機能とかがいいでしょうかね。

キャッシュがなければ追加するやつとかいい気がします。

branches/5.0/src/wp-includes/cache.php

https://core.trac.wordpress.org/browser/branches/5.0/src/wp-includes/cache.php

 

もちろん、普通にWordPressをダウンロードして動作させれば、動作するところも見れます。

デバッグ実行とかしてみると、さらにわかりやすいのではないでしょうか(^_^)ノシ

WordPressのインストールの手順などはこちらから。

 

いつか時間ができたら、こういうオープンソースのソースコードに寄与できたりできるといいなぁ…。

もっとプログラミングのスキルアップに役立つのではと思います。

PHPカンファレンスで勉強になったこと 

PHPカンファレンスへ行きまして、勉強になったことを書いてまとめておきます。

テストとかメンテナンス系を主に聞いておりました。

ちな、私のPHPとの付き合いは、もう10年ぐらいになりまして、今はちょっと遠ざかりつつ時々触るという感じです。

大体いろんなこと知ってるけど、まだ進化するし、

「あー、そんな一面あったんだ!」

とかなるような、学生からの付き合いの友達みたいな感じですね。

 

①PHP Unitの話

 

PHP Unitのバージョンが、そのうちサポート切れになるので、やった方がいい。

メルカリ社内でPHP Unitのアップデートをやっていった人の話を聞いたんですが、テストの書き方がだいぶ変わるので、前方互換を持たせて少しずつ移行していったそうです。

インテルのCPUが進化する手法をまねて、階段状に発展させていったという話は興味深かったです。

現場の話って感じで、地味な話題ながら、どこの現場でも困っている話の現実的な解決方法が聞けて大変よかったです。

 

 

②テストツールの話

 

楽天の人が次のツールの話してました。

 

・Wiremock

http://wiremock.org/

 

APIのテストに、例えば一回リクエスト失敗して再送信、とかそういう細かいところが試せるようなので、使ってみたいと思います。

 

・Codeceptionというテストフレームワーク

テストコードがPhp Unitより書きやすいらしい。

まー、弊社ではとりあえずPHP Unitでもいいかなとは思いますが。。。覚えておいてもいいかなと思います。

https://codeception.com/

 

③FPMの話

 

Zaimの人がFPMの話してました。

・Zabixでプロセス監視するといいよ~

・ログが充実しているので、ログを取るべし

だそうです。

 

FPMって時々色々あるんですよねwww 私はこの辺は担当じゃないのですが、なるほどでした。

 

④PHP7への移行の話

 

Cygamesの人が話してくれました。(なんとお弁当も出してくれました。スゴイ!!)

 

PHP CodeSniffer+PHPCompatibility

使うといいよ などなど

https://github.com/PHPCompatibility/PHPCompatibility

 

XhprofNewRelic使って負荷の原因追求と対策をしてる

(このお話は去年もお聞きしましたが、こういうソシャゲの会社さんの少しでも負荷を減らそうという努力は大変参考になります)

 

⑤テストドキュメントの話

 

楽天の人が話してましたが

 

テストドキュメント…概要

テストコード…自動でちゃんとやる

 

がよいバランス。わかりみ。

こちらのお話も、現場に即した現実味のある話でよかったです。

 

 

⑥ほかの言語の話

 

懇親会などでいろんな人から聞いた話

・並列処理はGO、普通のAPIとかはPHP ってのは結構主流

・Javascriptのフレームワークは最近はVue一択だね!!

 

だ、そうです。

 

 

無料で開催される大型勉強会としては、今回もクォリティ高く、勉強になりました!

懇親会でもいろんな方とお話ができて、よいコネクションができました⊂(^-^)⊃

 

勉強会に行くといいのは、やる気がもらえることですね!

休日でもこういうところに来るのは、

「プログラミングが好きだ!」

あるいは

「勉強しよう!」

という意識の高い人しか来てないのでポジティブな影響しかない💛

 

あと、みんな同じようなことで悩んでるんだな~ と思います。

誰だって、人数がいくらいても、ソフトウエアの現場では一気に何かを解決することはできないんですね~。

六本木ヒルズにオフィスがあったって、開発者が100名以上いたって、あんまりやってることは変わらないなという気がします。

「人狼を倒す銀の弾丸はない!」

なんですね。(この本読んだことないけどw ポチるつもりで張っておきます)

 

また、最近思うことですけれども、自分の中の完璧主義、チームの他者の中の完璧主義、お客様のニーズ、この3つに現実的な落としどころを見つけることも大事なことだと思います。

Alpha Go Zeroの論文の翻訳 その5

うわぁ。

以前、下記を書いて、「まだまだ続くよ!」とか言ってましたが…

Alpha Go Zeroの論文の翻訳 その4

7月20日のことでした。(;^ω^)

もう4か月も経ってるやんけ!!!( ゚Д゚)

いやー、光陰矢の如し。7月末からいろんなことがあったなぁ…( ˊᵕˋ )

…と、ついつい楽しい夏の思い出を思い返しちゃいましたが、本題は、Alpha Go Zeroの論文の翻訳の最後を書くことでした。

仕事でもAIの開発を進めておりまして、少し詳しくなったと思います。

では、Go!

 

原文はこちら。

https://www.nature.com/articles/nature24270.epdf

 

前回の続きということで、付録的な、「METHODS」という部分の後半になります。

 

Domain knowledge というところからですね。ではGo!

 


 

Domain knowledge

 

Domain knowledgeとは、専門知識のことである。碁のプログラムでいえば、碁のうちかた、どうやって強い手を繰り出すか、というような専門知識のことである。

Alpha Go Zeroの一番の功績は、専門知識なくして人間を超える知力を達成したということにある。

この功績を明らかにすべく、Alpha Go Zeroが使っている専門知識をトレーニングプロシージャーやMCTS内にかかわらず、数え上げてみることにする。

これらは、ほかのゲーム(マルコフゲーム プレーヤーが1対1で進める手によって勝率などが左右される、オセロ・将棋・碁などのゲームの総称と思われ。)に使うときは、置き換えられるものである。

 

①ゲームのルール

Alpha Go Zeroはゲームのルールについては、完全に知っている。MCTSのポジションのシミュレーションや最終手を打った時のスコアをつけるのに使われている。

ゲームは両方のプレーヤーがパスしたときと722手進んだ時に終了する。また、プレーヤーはルールにのっとって、有効な手を打つ必要がある。

②スコアリング

Alpha Go ZeroではMCTSのシミュレーションとセルフプレイのトレーニングの最中にTromp-Taylorスコアリングを使っている。

なぜかというと、韓国式・日本式・中国式にせよ、人間のスコアリングはよく定義されてないからである。

ちなみにAlpha Go Zeroで採用しているのは中国式である。(この辺、私が囲碁わからないのでよくわからなかったです(;´・ω・))

③盤面

盤面は、19×19の画像的なイメージで扱われる。ニューラルネットワークはこのボードに合わせた形になっている。

④盤面の回転など

碁のルールは盤面を回転しても反転しても盤面の強さは変わらない。

それを利用して、MCTSの途中で、盤面の回転と、反転状態もデータの中に入れることができている。

komiっていうものを抜かせば、碁は色を取り換えてもなりたつ。色を変えても成り立つことにより、盤面をどちらのプレーヤーから見るか、と言ったことが成り立たせられる。

 

以上が、Alpha Go Zeroが使っている専門知識の全部である。Alpha Go Zeroがディープニューラルネットワークを使っているのは、MCTSの末端のノードを評価するときと、手を選択するときだけ。

ロールアウトポリシーも使ってないし、ツリーポリシーも使っていないし、MCTSは他のヒューリスティックだったり専門知識によるルールによって評価されたりもしない。

ルール違反の手は使わない。プレーヤーの「目」を埋めることもしない。(多分、碁の話と思われ)

 

このアルゴリズムはランダムな初期パラメーター(ニューラルネットワークに入れるやつ)で始められた。

ニューラルネットワークの構造は、先進的な画像認識の構造である。ハイパーパラメーターは学習の中で変わっていく。

MCTSの探索パラメーターは1個前にトレーニングしたニューラルネットワークを使ったセルフプレイを最適化するために、ガウス過程最適化(でいいのかな?)を使って選択されていく。

より大きい実行のために(40ブロック、40日かける実行)MCTSの探索パラメータはより小さい実行でトレーニングされたニューラルネットワーク(20ブロック、3日)を使って再最適化される。

トレーニングのアルゴリズムは人間が介在することなく、自主的にアップデートされていくのである。

 

Self-play training pipeline

 

Alpha Go Zeroのセルフプレイのトレーニングパイプラインは3つに分かれていて、全部が非同期で平行に動作する。

ニューラルネットワークのパラメーターΘは継続的にセルフプレイのデータで最適化されていく。

Alpha Go Zeroのプレーヤーαは継続的に評価されていく。

ベストなプレーヤーはセルフプレイのデータを生み出すために使われていく。

 


今日はここまで~ ハァハァ(*´Д`)