求貨求車サービス 戦国時代~

求貨求車サービスって何かって言いますと、トラックと荷物を運びたい人をマッチングするサービスです。

運送・配送業界の非効率はいろいろなところにありますが、荷物を運びたい人と、トラックがマッチしていない、という問題は結構大きなものです。

長距離とかだとこれが大きくって、例えば

「今日東京から仙台に荷物を運ぶ大型トラック」

がいたとすると、仙台から帰る時、積荷は空なんですよね。

この時、何か運べるじゃん!!ガソリン代、人件費、高速代、どうせ走るんだしもったいないじゃん!!

という発想に、もちろんなりますよね。

 

老舗サイトとしては、トラボックスさんという有名なサイトがあります。

トラボックス

http://www.trabox.ne.jp/

 

で、最近攻勢をかけてるのが

ハコベル

https://www.hacobell.com/

Pick Go

https://pickgo.town/

 

だったりします。

他には

MOVO

https://movo.co.jp/

とらなび

https://www.tranavi.net/

 

もう、とにかくめっちゃいっぱいある~!!!

なんですよね。

弊社はこういうのやらないの?とか言われることもあるし、こういうのを開発してくれと頼まれたこともあります。

 

私の考えとしては、将来的にはわかりませんが、現在は、動態管理をよりブラッシュアップしたものにする、または配送計画の精度を上げるなど違う課題を解決したいと考えています。

マッチングは、どこかほかのサービスさんに任せます…。

 

あれもこれもって手を広げるのは、多分、ソフトウェア開発に限った話じゃなくてあまりよくないと思っています。

一番ダメなのはファミレスみたいになっちゃうことじゃないですかね。

そこに行くと何もかもがそろうけれども、何もかもが中途半端…。(ただ、ファミレスは装置として価値があるから生き残ってると思っています。)

弊社は、おいしいそばだけ出すそば屋になりたいです。

 

特に、ソフトウェアの開発は、手がかかるし、メンテナンスも大変ですからね~。

 

PHP7になりました

「えっ 今更?」

と言われてしまうかもしれませんが、弊社のとあるシステムが、PHP7になりました。

わーい。パチパチパチパチ⊂(^-^)⊃

 

それにしてもですね、こういうサーバーサイドの環境の移行って大変なんですよね。

今回、弊社のTが行いましたので、私はノータッチですが。

本当に面倒なことだと思います。

幸いにも、コード部分にあまり書き直しが発生することはなかったのでよかったですが。

将来的に、こういう部分の面倒さが減る時代が来るといいなぁ。

プログラムがとあるOSやコンパイラの上で動くという仕組みである以上、どうしようもないのかもしれず、なんのアイデアもありませんが。

 

Gitクライアントの話

Gitクライアントって何使ってますか??

私は、実は昨日までCLI(コマンドライン)で使ってました。

Windowsのコマンドプロンプトで使うやつです。

その前まで、SourceTreeを使ってたんですが、SourceTreeがなんかの不具合で使えなくなって、直す気がなくなってCLIを使ってました。

 

CLIの利点がいくつかあって

・速い!!!!

・複雑なことをしやすい

・できるプログラマー感がある(笑)

ですね。

 

デメリットは

・ファイルの差分を見るのがめんどい!!

・視覚情報が少ない…

です。

これは私からした考えなので、ほかの人は違う意見だと思います。

 

しかし、今日、やっと思い立って、SourceTreeを直して、使いなおしました!!!

理由は…。

やはり、ファイルの変更差分を見るのに、GUIの方が圧倒的差があるからです。見やすいし、コマンドうつ面倒くささがない。

その差…っ!!圧倒的…っ!歴然…っ!!!

んで、ファイルの変更差分を見る、というのが私的には一番Gitでやりたいことなんだよなぁぁ。

そして、SourceTreeさんもなんだか早くなってる!!(現在のバージョンは2.5.5.0)₍ᐢ⑅•ᴗ•⑅ᐢ₎♡

 

とはいえ、コマンドラインでも操作ができたほうがいいときがありますね。なんかおかしくなっちゃった時とかの操作が、SourceTreeだとにっちもさっちもいかなくなる時があるからです。(´・ω・)

ちなみに、Githubご謹製のGitクライアントも試したことがありますが、SourceTreeの方が使いやすかったですね。

もし、ほかにオススメのGitクライアントがあれば、教えてください。

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

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

このブログのサブドメイン脱却と、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のインストールの手順などはこちらから。

 

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

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

Smart動態管理 少人数限定相談会を行いました

以前、下記でお伝えしていたように

Smart動態管理の少人数限定個別相談会をします☆彡

12月5日にSmart動態管理の相談会を行いました!

今回は5名・5社の方にお集まりいただきました。


弊社からは冒頭に最近のアップデート内容と、今後の開発予定をご紹介しました。
その後、お客様から活発に質問や、機能要望、わかりづらい点を述べて頂き、実際の画面を見ながらご説明いたしました。

Smart動態管理は配送会社向けのシステムですが、弊社はただのソフト開発会社です。

なので、お客様がどう使いたいか、どうなったら便利か、というのは常々聞かせて頂きたいんですよね。

 

私を含め、弊社の社員にとって、いい経験になったと思うんですけど、

「お客様って、機能について、まったくご存知ないんですね…。」

っていうのが大きな収穫ではないでしょうか。

 

例えば、私も洗濯機とかでさえ、基本的な機能しか使わなくって、時々説明書とか読むと、

「こんな機能があったんだ!」

って驚きます。

 

お客様は、お客様のしたいことがしたいのであって、そのほかのことには興味がないんですよね。

開発者は

「こんな機能があれば、便利に違いない!」

って新機能を一生懸命作ってるんですけど、お客様にとっては

「しらんがな」

の5文字で終わってしまうんですよね。

 

いかに、スムーズに新しい機能を使って、お客様のお仕事に便利に使っていただくか、がとても大切だと感じました。

そのため、ぜひぜひ、冗談とかではなく、製品に関してのご意見・ご感想を頂ければ幸いです。

 

また、今回、ちょっとしたお菓子&ピザ&お寿司を用意したのですが!!!

お客様には一口も手を付けていただけず…(泣) (>_<)

終了後、私たちががっついたのはいうまでもありません…。

 

弊社は28日、明日まで営業しております!新年は4日から営業です。

お問い合わせがありましたら、こちらからお願い申し上げます。m(_ _)m

 

 

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つに現実的な落としどころを見つけることも大事なことだと思います。

みちびきの話

さてさて、日本版GPSともいう「みちびき」が11月1日にスタートしましたね!

http://qzss.go.jp/

弊社では、Smart動態管理や、タクシー検索たくる といった、位置情報を使ったサービスを運営してますので、みちびきについては時々聞かれます。

よくある勘違いがコレ!!

「みちびきができたからさ~ 御社のアプリでもGPSの精度がセンチメートル単位になるのでは?」

残念ながら、そうではありません!!(´・ω・`) (そうだといいんだけど)

Wikipediaさんによると、

準天頂衛星システム

https://ja.wikipedia.org/wiki/%E6%BA%96%E5%A4%A9%E9%A0%82%E8%A1%9B%E6%98%9F%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0
cm級測位に必要な補正情報を民間に無償で配信(日本国内限定)しているのは現状QZSSだけである。もっとも、2018年時点ではcm級測位に必要なモジュールやアンテナは車両や大型ドローンへの搭載レベルであり、携帯電話・スマートフォンへの搭載は大きさや消費電力の点から実現していない(これはQZSS以外のGNSSでも同様である)。

また、cm級測位は農耕車や工事車両、測量などを主眼としており、測定には衛星経由のため10数秒のタイムラグが生じる。よってカーナビなど高速で移動する車両等では、cm級測位は利用するとしても他の測位技術と組み合わせた補助的な利用となる[26]。

つまり、平たい言葉で言い直すと、スマホではまだセンチメートル級の測位はできない、ということです。

▂▅▇█▓▒░(’ω’)░▒▓█▇▅▂ うわあああああぁぁぁぁぁぁぁ

 

日本では、iPhoneでみちびきが受信できます。

かといって、iPhoneは昔から測位がいいんですよね。ロシア版GPSである、GLONASSというシステムがありますが、それを受信しているからだともいわれています。

正直なところ、みちびき以前・以後であまり変わらないな~と思われます…。

Androidについては、GLONASSを受信しているかどうかは、機器によります。

 

ちなみに、衛星が今どの辺をどのぐらい回っているのかを、なんと見ることができますwww

GNSS View

http://qzss.go.jp/technical/gnssview/index.html

 

早速見てみましょう~

いっぱい飛んでる~ ⊂(^-^)⊃

実にムネアツ!!(…でもないか…)

QZSが日本のみちびき、GPSがアメリカの衛星、GLONASSがロシアの衛星、BDSが中国です。以下略。

 

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のプレーヤーαは継続的に評価されていく。

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

 


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

Smart動態管理の少人数限定個別相談会をします☆彡

Smart動態管理も開発を重ね、多くの機能が実装されるようになりました。

ですが。

高機能ゆえに…。
「使い方がわからない…」
「こういうことをしたいのだけれど、どうやってしたらいいのかわからない…」
「Smart動態管理をもっと活用したい!」
そういう声をよくお聞きします。
そこで、少人数限定で、Smart動態管理についてのご相談会を開催することにいたしました。⊂(^-^)⊃
他社様での活用方法をご紹介頂いたり、Smart動態管理へのご意見・ご感想を頂くのもよい機会かと思われます。

【日時】:12月5日(水)16時~17時半
【場所】:JR横浜駅近隣の貸会議室(予定)
【参加費】:無料
【定員】:8名様まで(1社2名様まで)
【内容】:
・Smart動態管理の新機能のご紹介
・製品開発予定のご案内
・Smart動態管理についての活用方法、疑問のヒアリング
・意見交換
【提供物】:軽食、お飲み物をご提供します。
【持参して頂くもの】:お名刺1枚をお願いします。
【申し込み締め切り】:11月30日(金)まで・定員に達し次第、締め切らせていただきます。

※現時点でSmart動態管理をご契約いただいている、法人のお客様が対象です。

Smart動態管理の開発スタッフが、出席します。(ま、弊社のスタッフはほぼ全員開発スタッフなのですが…)

ぜひ、この機会にSmart動態管理に関する疑問を解消してください。
また、日ごろのご感想・ご不満・ご意見があれば、ぜひぶつけてください!
お申し込みは、こちらのメールアドレスあるいはお電話でお願い申し上げます。
admin@doutaikanri.com
045-306-9506 株式会社オンラインコンサルタント 担当:齊藤

私も参加する予定ですヾ(´ω`○).

 

お客様に疑問を解消して頂くのが一番ではありますが、弊社もお客様のお話をもっと聞いて課題を解決していかなければいけないと思うんですよね。

特に、運送・配送業界向けという、特定業界向けのアプリですから、やはり会社の中でパソコンにかじりついているだけではいけないかなと日々思います。

 

というわけで、お客様となるべくお会いする機会を作らねば、と今回の企画となりました。

ピザとか!お寿司とか!片手に、気軽にお話ができればと考えております。⊂(^-^)⊃

お申込みをお待ちしております!m(_ _)m

Smart動態管理で渋滞情報が表示されるようになりました

Smart動態管理で、渋滞情報が表示されるようになりました!

パチパチパチ⊂(^-^)⊃

上記のように、混んでいる道路が赤、濃い赤などで表示されます。

ドライバーさんの情報を見ている運行管理者さんが、たとえば

「保土ヶ谷バイパスの上り混んでるから下で行ってね」

とかドライバーさんにメッセージが送れるわけです。

 

渋滞情報は、自動的に更新され、大体8分程度で新しい情報に更新されます。

渋滞情報が表示されるのは、リアルタイムマップだけです。

 

渋滞情報をつけてほしい、というご要望は時々ありまして。

しかし、渋滞情報って、以前は日本道路交通情報センターさん(いわゆるVICS)から買ってなどする方法しかなかったんですよ。

もちろん、それなりのお金がかかります。

 

日本道路交通情報センターさんの公式サイトに表示されている価格は

http://www.jartic.or.jp/jartic_web/company/online.html

開始時 140万円

月額 最低17万円~

にプラス会員ごとに最低でも30円プラス となっています。

 

Smart動態管理は月額950円、と使いやすい値段設定も売りの一つなので、渋滞情報をつけることがペイしないのでは…という判断で見送ってきました。

 

ですが!!

♪みんな友達~ だが時はたち~♪

 

つまり時代は変わり。

Mapbox(Smart動態管理で利用している地図ライブラリ)に渋滞情報がつくようになったんですよ!

追加の金額など特にかかりません。しかーも!VICSさんから渋滞情報を買うよりも、はるかに技術的に簡単にできます。

Mapboxの一機能としてあるわけですからね。

「えっっっ どうやって渋滞情報を取得しているの?そういうのって、VICSとかしかわからないんじゃないの?」

と思われるかもしれませんが、これが時代が変わったポイントですね。

今や、いろんなセンサーだとか、機械などからその情報が取れるのです。

すごい。(*ฅ•ᗜ•*)❤(*•ᗜ•ฅ*)

 

これからも、Smart動態管理はお客様のご要望にお応えして、進化していきますので、よろしくお願いいたします。

 

こっからは余談なんですが。

最近クライアントサイドのJavascriptの開発から遠ざかっていたんですが、今回の渋滞情報とかがレンダリングどれぐらいの時間かかってるのかな~ とか計測したくってChromeのコンソールでネットワーク速度を計測してみました。

そしたら、最近Chromeのコンソールってすごい進化してるんですね!パフォーマンスを測定することができ、

この画像だと見づらいかもしれないですが、タイムフレームでスクショを取ってくれるんですよ。

上記のスクショだと、例えば20msごとに画面の変遷のスクショを取ってくれていて、その際に実行されるスクリプトが下に表示されるので、サルでも

「これが走ってるとき画面がこうなっている」

とわかりやすいですね!!

しゅ、しゅごい…(*ฅ•ᗜ•*)❤(*•ᗜ•ฅ*)