2021年度はシステムダウンが一度もありませんでした!

弊社の配送業さん向けのシステム、「ODIN リアルタイム配送システム」ですが、なんとなんと…。

2021年度はシステムダウンが一度もありませんでした!!!!

 

(⑉>ᴗ<ノノ゙✩:+✧︎⋆パチパチパチパチパチパチパチパチパチパチパチパチ

いやー、これすごいことなんですよ!

稼働率が100%。

システム関係のお仕事ではない方にとっては

「はぁ?システム稼働率100%って当たり前じゃないの?」

と思われるかもしれませんが、システムっていろいろな問題で、むしろ止まるのが当たり前なんです。

 

…とはいえ、使う皆さんにとっては、止まってしまったらとっても不便ですよね。

弊社のシステムは B to Bで、

「ODINが止まってしまうと仕事にならない」

という方も多くいらっしゃいます。

2年前から弊社は何とか

「システムダウンがあったとしても、数時間以内に抑える」

という点に腐心してきまして、システムの冗長化、死活監視、テスト体制、監視体制の強化に力を入れてきました。

インフラ課というのが弊社にありまして、その皆さんのおかげであります。

ありがとう!

今年度もがんばります。(`・ω・´)

 

全プログラミングキッズ待望のゲームができた!コードで戦うゲーム

時々、思ったことはありませんか?

アニメとかゲームとかの設定でよくある、すごいプログラマーがいて、そのプログラミング力で敵を倒すやつ。やってみたいと…!

ガンダムSEEDみたいにモビルスーツのOSをチャチャッと書き換えて、敵に勝つやつですよ。

「男と生まれたからには誰でも一生のうち一度は夢見る「地上最強の男」」

ってよく聞きますよね(笑)。

まー私は女ですが、強さを決めるってなんかワクワクしますよね。( ˊᵕˋ )

競技プログラミングとかもありますが、

「なんかこう燃えないな~」

と思っていませんでしたか?

なんかもっと、直接バトルっぽいApexっぽいのがやりたいな~ とか!

(·:゚д゚:·)ハァハァ
すみません、中二病全開が過ぎましたね。

それがなんと、そんなゲームができたらしい。

JavaScriptを打ってキャラを操作する対戦ゲーム、Steamで配信 Rustなど計13以上の言語にも対応

https://www.itmedia.co.jp/news/articles/2204/08/news140.html

 

というわけで、早速やってみます。

最初につまづいたのが、

オール英語。

そっか。そりゃそうか。

なので操作方法とか、そもそもどうすればいいのかがわかんなかったところも多くありました。

APIのドキュメントも字が小さい(笑)

しかし、チュートリアルもついているのが優しい!これありがたかった~

自分のチームの部隊をどうやって動作させるか、などはチュートリアルにサンプルコードがあるので、それで大体わかります。

というわけで、早速作ってみました。

私が作ったコードは結局2時間ぐらい取り組んでチュートリアルをつぎはぎしたにすぎません…。

でも、対戦してそこそこ勝てた(笑)

下記の動画で、白いのが私のコマで、違う色が敵さんです。この動画では、2戦して、2戦とも勝てました v( ̄Д ̄)v イエイ (最初の敵さんはピクリとも動かなかったのと、2回目の敵さんは辛勝でしたね(笑))

 

 

これ、動作させている途中にコードを書き換えることはできません。

この動画で動作させているコードはこちら。javascript です。

import {getObjectsByPrototype} from '/game/utils';
import {findInRange} from '/game/utils';
import {Creep} from '/game/prototypes';
import {Flag} from '/arena/prototypes';
import { getTicks } from '/game/utils';
import { ERR_NOT_IN_RANGE, ATTACK, RANGED_ATTACK, HEAL, OK } from '/game/constants';

export function loop() {
    var enemyFlag = getObjectsByPrototype(Flag).find(object => !object.my);
    var myCreeps = getObjectsByPrototype(Creep).filter(object => object.my);
    for(var creep of myCreeps) {

        
        let targets = getObjectsByPrototype(Creep).filter(c => !c.my);

      if(creep.body.some(bodyPart => bodyPart.type == ATTACK)) {
         attack(creep, targets)
      }

      if(creep.body.some(bodyPart => bodyPart.type == RANGED_ATTACK)) {
         rangedAttack(creep, targets)
      }

      if(creep.body.some(bodyPart => bodyPart.type == HEAL)) {
         heal(myCreeps, creep)
      }

      creep.moveTo(enemyFlag);

    }
    console.log('Current tick:', getTicks());
}

function rangedAttack(creep, targets){
   let targetsInRange = findInRange(creep, targets, 3);
   let result
   if (targetsInRange.length >= 3) {
      result = creep.rangedMassAttack();
      console.log('遠隔全体攻撃 結果')
      console.log(result)
   } else if (targetsInRange.length > 0) {
      let result = creep.rangedAttack(targetsInRange[0]);
      console.log('遠隔攻撃 結果')
      console.log(result)
   }
}

function attack(creep, targets){
   let target = creep.findClosestByRange(targets);
   if (target){
      creep.move(target);
      const result = creep.attack(target);
      console.log('攻撃 結果')
      console.log(result)
   }
}

function heal(myCreeps, creep){
   var myDamagedCreeps = myCreeps.filter(i => i.hits < i.hitsMax);
   if(myDamagedCreeps.length > 0) {
      const heal_result = creep.heal(myDamagedCreeps[0])
      if(heal_result == ERR_NOT_IN_RANGE) {
         console.log('遠くてHealできないので近づきます')
         creep.moveTo(myDamagedCreeps[0]);
      }else if(heal_result == OK){
         console.log('Healした')
      }
   }
}

コードの説明を軽くすると、これを、PC内の所定のディレクトリにおいておけば、このゲームが勝手にサーバーにアップロードしてくれて動作するという仕組みみたいです。
なので、勝敗はもうPlayボタンを押したときに決まっているわけですね。

動作させるとタイムフレームが1個ずつ進み、loopという関数の中が実行されます。
console.logが使えて、出力内容は盤面の下に表示されます。

自分の部隊、敵さんの部隊はcreep というオブジェクトで、これの中にまたBody Partというものがあって、それにattack とかranged attack とかなどの属性があるようです。

ちょっとしょぼいコードではありますが、とりあえずやってみたい人の参考になればと思い、載せておきます!

やりこみ要素はもっとあって、例えば陣地の中にある塔からビームを出したり、その塔にエネルギーをチャージしたり(?)などもできるみたいです!

(すみません、時間の都合でチュートリアルの半分しかやってない)

 

Steamで配信中で、2000円ぐらいです。⊂(^-^)⊃

 

いや、でもこれ作った人達すごいわ。

感謝ですね!

 

余談ですが、今日は日曜日なんですけど、PHPerkaigiというPHPのオンラインの勉強会があったり、このゲームやったり、プログラミング三昧です。

それが楽しいんでいいんですけどね!⊂(^-^)⊃

新機能 配送計画の移動速度を調整できる機能を追加 お弁当の宅配などにオススメ

今日はめちゃ寒いですが、もう桜が咲いていましたね!

近所の桜

近所の桜

またまた、新機能のお知らせです!

3月17日に下記のプレスリリースを行いました。

業務内容に合わせて配送計画の移動速度を設定できる『運行速度調整機能』を追加

https://delivery-system.com/press-release/2022/03/17/deliver_speed/

どんな機能か、と言いますと、A、B、C、Dと目的地があった場合の最短ルートを作る際に、配送計画エンジンが

「ルートはB→D→A→Cデスヨ。かかる時間はトータルで3時間デスヨ」

と教えてくれるのですが、この3時間というのがお客さんによっては、早かったり遅かったりするそうです。

例えば、お弁当の配達をしていらっしゃる会社さんは、昼間の住宅街で多くの場所を回るために、時速60キロとかじゃ移動できないわけですよ。

しかし、大きな車で郊外の広い道を多く走るようなタイプの会社さんだと、もっと早い速度で移動したりしています。

なので、ほかの会社さんと同じ設定ではうまく配送計画が作れない会社さんが出てくるいう現実的な問題がありました。

 

イメージとしては、Yahooの乗換案内で、歩くスピードに合わせて「ゆっくり」とか選べるじゃないですか。

あんな感じで「急いで」・「少し急いで」・「少しゆっくり」・「ゆっくり」の4段階から計画が調整できます。

 

なので、上述の「お弁当の配達」という業種さんだと、「ゆっくり」か「少しゆっくり」を選んでいただくと、いい感じの配送計画ができあがる、という寸法です。

結構弊社のODIN リアルタイム配送システムODIN 配送計画の導入企業さんに、お弁当の配達の会社さんいらっしゃるんですよね。

今、お弁当の配達って流行ってきていると思います。

残念ながらソースはないです。フードデリバリーとかそういうセグメントだとデータ出てくるんですけど、定期的なお弁当の宅配ビジネスってそういうセグメントって今までないみたいですね。

コロナ・少子高齢化・一人暮らしの増加・共働きの増加もあり、時代の流れですよね~。

今、本当にいろんなタイプのお弁当の宅配サービスがありますので、興味があれば探してみてください。

 

いや~ 先日下記のプレスリリース出したばっかりなんですけど

新機能 配送履歴機能をリリースしました

うちのプログラマーさんたちが優秀すぎて(泣)

すぐに機能ができちゃうんですね~ ⊂(^-^)⊃

 

とはいえ、3月は別の大きな機能のリリースもあり、めちゃくちゃ皆さん忙しかったと思います(´ω`)。

もう、本当にお疲れ様です。

ビオラ

近所のビオラ

 

お客様の声の追加 ビールサーバーのメンテナンス ニットク様

ODIN 動態管理の新しいお客様の声が追加されました!

ビールサーバーのメンテナンスをしていらっしゃる、株式会社ニットク様です。

【従業員が異動しても簡単に対応できるようになった】

https://doutaikanri.com/customer_feedback/2022/02/10/nittoku/

100台で利用いただいています。

「はぁぁ~ おいしい生ビールが飲みたーーーい!」

そういう巷の皆様の声を、支えていらっしゃるんですね~(`・ω・´)

ビールサーバーが壊れてしまったら、その日の営業に差し支える飲食店さんも多いと思います。

そういう、急な飲食店からの修理依頼をさばかないといけないのと、平時の新規設置などの業務に、ODIN 動態管理が役に立っています。

ビールサーバーのメンテナンスにODIN 動態管理が使われています。

導入する決め手になったことは

  • 初期費用とランニングコストが安価で、導入対象者に貸与しているスマートフォンを活用できること。
  • 担当者の所属変更などがWebから一括で変更可能なこと。
  • 移動記録や日報などの分析ツールがあることなどです。

だそうです。

そうなんです、ODIN シリーズは、設定の細かさがすごいんですよ(笑)

プログラムを書くときに

「ここはお客さんが後で変えたいって言いそうだな…。」

という場所を、管理画面から設定変更できるようにしています。

以前も動態管理の別製品を使われていたそうですが、なんと設定変更のためにシステム開発会社の方を呼んでやられていたそうで、そこが簡単になったことを喜んでいただいています。⊂(^-^)⊃

ODIN 動態管理の詳細はこちらから↓↓

新機能 配送履歴機能をリリースしました

昨日、次のプレスリリースを行いました!

業界初!!配送先ごとに過去の配送履歴がひと目で分かる『配送履歴機能』を追加

https://delivery-system.com/press-release/2022/03/16/delivery_history/

どんな機能かと申しますと、例えば「本牧倉庫」という目的地があったら、そこにいつ誰が行ったかを「本牧倉庫」から調べることができるというものです。

配送履歴のスクリーンショット

配送履歴のスクリーンショット

 

「え?なんか地味じゃね?」

と、思いましたね?

確かに、地味な機能です。

ただ、多くのお客様がほしい、とおっしゃられてたんです。

今まで、時系列で

○時〇分 A地点
○時〇分 B地点
○時〇分 C地点

という出し方は日報や、移動記録という機能であったんですけど、これだと、A地点に行ったのはいつ誰か、という軸では見づらかったんです。

それが、できました。

こんなメリットがあります。↓↓

【メリット】
・配送先での荷待ち時間の分析に活用できる。
・配送先でのドライバー作業の分析に活用できる。
・特定の配送先に行ったことがあるドライバーがわかり、次にその配送先へ行かなければいけないときはそのドライバーに配送先を割り振ることができて、配送の効率化ができる。
・特定の配送先に対して、誰がいつ行ったのかが簡単にわかるので、クレーム対応などしやすくなる。
・配送先ごとにドライバーからの報告をみることができるので、その配送先の情報を今後の配送に活用できる。

 

実用的です!

弊社では、配送・運送会社様の声を聴きながらニーズを取り入れて機能開発をしていきます。

ぜひ、皆様の声をお寄せください。( ˊᵕˋ )

お問い合わせはこちらから↓

https://delivery-system.com/contact/

「新世界より」という小説を読みました

人狼とかをよく一緒にやってます、宮川さんから薦められて読んだのですが、これが、本当に面白かった!!!


長いんですよ(笑)

でも、時間を忘れて夢中になって読んでしもうた。

文庫版だと上・中・下とあるんですけど、上を読み終わった後にamazonですぐに中を買ったんですが、一日で読み切ってしまい

「ああああ~!!下も一緒に買っておくんだった~!!」

とマジで後悔しました。

貴志祐介さんの小説は今まで「悪の教典」と「硝子のハンマー」の2冊を読んだことがありますが、本当にいい作家さんですよね。

描写力がすごい。

持ってる語彙力がすごい。

私の誉め方の語彙力が足りなすぎ(笑)。

いろいろと考えさせられることも多かったです。

人間は、なぜ「人間」なんだろう…。

SF、アクション、ちょっとホラーが好きな人にはお薦めです!

 

物流ニッポンさんで「積載量を即時表示」 トラックの積載量がリアルタイムで見れる機能が紹介されました

だいぶ日がたっちゃったんですけど(;^ω^)

リアルタイムにトラックの空き状況がわかる『積載量表示機能』を追加

という機能を以前発表したのですが、この機能を1月14日づけの物流ニッポンさんでご紹介頂きました!

積載量を即時表示

有難うございます!!

いやー、やっぱり新聞に掲載されるのはうれしいものですね。( ˊᵕˋ )

物流ニッポンさんは

1968年創刊

のとっても歴史のある物流業界の業界紙さんなんです。

 

しかし、これ見てさすが記者さんは見出しのセンスが違うな~!と思っちゃいました。(プロの方に対して失礼じゃなければいいんですが)

「積載量を即時表示」

そうそう!それなんですよ!

言いたいことをコンパクトに表していただいて、有難うございました。

ODIN リアルタイム配送システムへのお問い合わせはこちらからどうぞ!

誕生日でした

1月4日は誕生日でした。

お祝いのメッセージをくださった皆様、ありがとうございます。┌o ペコッ

45歳になったんですよ。

うわっ と自分でも驚きます(笑)。

ところで私は

「もう祝うような年齢ではない」

というあれが、嫌いなんですよ。

言われたほうは、多分「誕生日おめでとうございます。」と言った後に言った相手から言われるコメントですよね。

せっかく祝ってるのに悲しいじゃないですか。

なので、私はそれは言いません!(別に他の方が言うのは自由だと思いますが。)

 

日本人の平均寿命は延び続けてるようです。

男性81.64歳、女性87.74歳

だそうです。

90歳まで生きるのが普通という時代が来そうですね。

さて、「祝われても嬉しくない」というアレなんですが、それって、若いころなら祝われてもありがたいって言うことですよね?

でも、「誕生日おめでとう」って究極を言うと

「1年生きててよかったね~。享年が一年遅れてよかったね~。」

ということじゃありませんかね?

そしたら、若い人より死亡率の高い高齢の方にこそいうべきでは?って思っちゃいますね。

変かな。

ちなみに死亡率を調べてみたら、60歳以下で亡くなる方は女性では3.9%ぐらいらしいです。

年齢別の死亡率

また、日本人の平均年齢は、なんと48.4歳らしい。↓

https://izanau.com/ja/article/view/median-age-japan

えー。( ゚Д゚) これ、伸び続けてるんですよ。というわけで、まだ平均より若いって言い張れる。(いい加減にしろ!って石を投げられそう(笑))

 

さてさて、誕生日の当日は、旦那様がお寿司屋に連れて行ってくれました!

ありがたいです~( ˊᵕˋ )

食事の前は神楽坂でブラブラ。裏路地とか、おしゃれな飲み屋とかレトロな素敵な感じでいい場所でした!

なぜか私のコートを着ている旦那氏

槐山 という日本酒を飲みました。めちゃおいしかった🍶

お寿司。おいしかった~!🍣

本当に優しいいい旦那様です💛

お花もらいました🌸嬉しいものですね!

 

また、他にも会社のスタッフさんを含め、いろいろな方にプレゼントを頂きました。

果報者です!

有難うございます!

リアルタイムにトラックの空き状況がわかる『積載量表示機能』を追加

すごい機能ができました!!!( ゚Д゚)

ODIN リアルタイム配送システムに、リアルタイムにトラックの空き状況がわかる『積載量表示機能』というものが追加されました。

どんな機能かと言いますと、トラックがいくばくかの荷物を積んで走りますよね。

走ってる途中に、時々追加配送の依頼というものがあるわけです。

「A地点からB地点に、かくかくしかじかの荷物を運んでほしい!」

と。

トラックが積める荷物の重量というのにはリミットがあります。最大積載量というものです。

で、最大積載量が4トンのトラックに、5トンを積んではいけないのです。

最大積載量以上に荷物を積むと「過積載」ということで、法律違反となります。

そのため、

「A地点からB地点に、かくかくしかじかの荷物を運んでほしい!」

というリクエストにこたえるには

「今トラックにどれぐらい荷物が積まれているか」

は大事な情報なんですよね。

それが運行管理者さんに、すぐわかるようになりました!!⊂(^-^)⊃

下記のような感じです。

トラックにどらぐらい空き容量が今あるかを表示する。緑の場所は配送が終わった場所。

緑の場所は配送が終わった場所

 

また、できるだけ多くの荷物を積んで走ったほうが人件費・ガソリン代など様々な効率がよいです。

つ ま り

【メリット】
・荷物が少なくなったトラックを確認して追加の配送指示を出すことができ、業務効率が上がります。
・積載率が向上します。
・効率のよい配送が可能になり、ガソリン代や人件費などのコスト削減ができます。
・配送効率を上げることで、ドライバー不足解消につながります。
・より多くの配送先を回ることができるようになるので、売上アップにつながります。

これ、すごい機能でして、実はこれを実現するために、配送計画を作る方から積載量を考慮しないといけなかったんですよ。

それをわずか2か月で、弊社の秀逸、M君とN君が作ってくれました!⊂(^-^)⊃

ありがとう~!!!

プレスリリース全文はこちらです。

 

お試しは2週間無料で、今すぐこちらからできます。

ぜひ、お試しください。

会社の有志で近所の神社に初詣に行きました。

会社の有志で近所の神社に初詣に行きました。今年が皆様、社員のみんなにとってもよい年でありますように!

明けましておめでとうございます

新年あけましておめでとうございます。

今年もよろしくお願いします。

 

2022年が来ましたね!
写真は、今年旅行に行った伊豆で見たホワイトタイガーの赤ちゃんです(o^―^o)ニコ

ホワイトタイガー


めちゃくちゃかわいかった(´;ω;`)

 

さて、皆様、2021年はどんな年でしたか?

 

私は何といってもコロナ禍でまぁ、去年と変わらず旅行とかには行けずにつまらなかったですが、人間関係にはめぐまれて仲間と飲みに行ったりとかは楽しい年でした(笑)

とはいえ、よかったこともあったので、上げておくと

会社が移転した。

ちょっときれいで広くなりました!

不思議なもので、うちの会社の中身はたいして変わってないんですが、対外的に印象が変わったようです。

やっぱりパッケージって大事なんですね。

②社員旅行に行けた

日光に行って楽しかったです!

③緊急事態宣言が明けてからはいっぱい飲みに出かけた(笑)

正直に言うと、外で飲むのが好きです!

家飲みとか、オンライン飲み会とか、私にとっては本物の下位互換でしかなかったことがよくわかりました。

ビールと発泡酒ぐらいの違いがあります。

でもまた、飲みに行けない日が来るんでしょうね。(´・ω・`)

④旦那氏が料理がすごくうまくなった

いやー、これ本当にありがたいことでして♡ 旦那氏の手料理が本当においしいです。

今年は圧力鍋と新しいレンジを買ったりしたこともあり、レパートリーが増えてますね。

外飲みは上で書いたように好きなんですが、家で旦那氏の料理を食べるのも好きです。

 

では、毎年やっている去年の振り返りと、新年の抱負を語りたいと思います。

去年の目標はどんなことを言っていたかというと

明けましておめでとうございます。

①売上目標 〇円 →達成できそうです!

②英語か中国語を勉強する →一応、中国語を勉強するアプリをインストールして2回ぐらいやりました(笑)

③お客様と直接お会いするのを6回は機会を持つ →6回なら… 6回ならいけるのでは…。と言いましたが、コロナとかで5回で終わってます…。(´;ω;`)

④週に3回は運動する →これは、ストレッチとか、軽くHIITとかをやるようにしていて、できたと思います!

あと、縄跳びとか時々やったり、キャッチボールを旦那氏とやったりしてます。

でもなー、本当は最近バスケとか、バドミントンとかそういうガチで体を動かす競技を何かしたいなって思います。

⑤本を4冊は読んでブログに書く

これは、今年の「読みました」をこのブログで検索すると

「エリック・エヴァンスのドメイン駆動設計」を読みました

ライフスパン 老いなき世界 という本を読みました

「USJを劇的に変えた、たった1つの考え方」という本を読みました

落合陽一氏の「これからの世界をつくる仲間たちへ」という本を読みました

「失敗の科学」という本を読みました

「小さく賭けろ!」という本を読みました

「人はなぜ他人を許せないのか」 という本を読みました。

7本あるので、7冊は読んで感想を書いたことになります!

今年はいっぱい読めました。(^_^)v


では、今年の目標です。

①売上目標 〇円 

②新しい知り合いを増やす
→これはコロナ次第ですが、やはり新しい人と会うと新しい考え方や新しい話が入ってきて新鮮ですよね。

③お客様と直接お会いするのを4回は機会を持つ
→これもハードル下げました。コロナが収まるといいなぁ…。

④週に3回は運動する
→体にポジティブな影響があるので続けたいですね。

⑤本を4冊は読んでブログに書く
→本を読むのは自分にもいいことしかないと思います。


さて、元旦の今日は名古屋に来ています。

今年は着物を着ました。

 

帯が変わった帯で、なんかアラビアンナイト的な柄なんですよ。

これ、なんと新品らしいです。母が着物も帯も買って着ないんですよ。(;一_一)

箪笥の中にあるだけなのがすごくもったいない(´;ω;`)

正直寒いんですが(笑) 無理やりにでも着ないともったいないって思っちゃうんですよね~

 

大好きな味噌煮込みうどん!

 

 

 

それでは、皆様にも今年が良い年でありますように!


そして、弊社の社員一同、今年もよろしくお願いします。