そういう、ビジネスモデルです。

ビジネスモデル、設計図、模型などの現状と動向を考察、関連書籍の紹介

Stellaris ステラリス 2.3 開始8年、没落と飛び地以外の勢力が見つからない…

開始8年、没落以外の勢力が見つからない…

科学者はまとも…

f:id:tombi-aburage:20190916114415p:plain

飛び地もすぐ近くにある…

f:id:tombi-aburage:20190916115235p:plain

でも8年間、何も他種族にあわない…科学船7隻もいるのに…

f:id:tombi-aburage:20190916140814p:plain

やり直すか。

 

Stellaris ステラリス 2.3 科学船大量生産するも次々戦死

 

地球国際連合 United Nation of Earth にて開始

 

いわゆる人類には平和共存系と軍国主義系がいるが、平和の方で開始した。

f:id:tombi-aburage:20190915163452p:plain

これまではバニラ(DLCなし)だったが、

  • アポカリプス Apocalypse までの拡張
  • ディスタント・スター Distant Stars までのストーリー・パック

をパラドのサイトから追加購入した。

統領の属性はまずまず。

統領の属性で最も望ましいのは Outpost 建設時ボーナスなのだが、出なかった。

  • 幸福度 +5% となる人民の英雄 Champion of the People は、正直要らない。
  • 科学船建造 25% 割引は合金 Alloy の節約にはなり、アノマリ調査 +33%加速は相当加速になるので、だいぶマシ。

出現位置も悪くはない。

f:id:tombi-aburage:20190915163939j:plain

出現位置は悪くはなく、銀河の西側中央。南北にハイパーレーンが伸びている。
自領はネビュラの中にあるらしい。

ヨスモアの死に装束 Yothmore Shroud とかいう不吉な地名が近所にある。 

現役の科学者はカスばかり。

寿命が長いのが取り柄という奴が2名もいる。

f:id:tombi-aburage:20190915165002p:plain

しかし控えの方には、アノマリ発見率上昇ボーナス付き Meticulous が居るので、金が貯まり次第、入れ替えていくつもり。

f:id:tombi-aburage:20190915165147p:plain

最初の命令について

何回かプレイした結果、以下が最適だと見切った。

  • 当然だが、最寄りの星系に、最初からいる科学船を向かわせる。
    このとき Ctrl + 1 でショートカット割り当てておく。
  • 当然だが、星系内の鉱石 Mineral に鉱物基地 Mining Station を建設させる。
  • 科学船をいきなり建造し、2か月後に2隻目を就航させる。
  • 科学船が建造されたら、1隻目の科学船が居住可能な星系を発見したときは同方向に、そうでないときは逆方向の星系出口に向かわせる。
    科学者なしでも星系内の移動や発見済み星系への移動はできるので。
  • 翌月、食糧100を売り払って資金200を調達し、科学を雇って2隻めも外宇宙に出立。 1隻目と2隻目に対して、Ctrl + 1 でショートカット割り当てておく。

南のヒクサー Hixar 星系は、22個も星があった

居住可能な惑星があれば、文句ないのだが…
とりあえずアノマリ調査ボーナス付きに探索させる。発動するのは1個目の星の探索が100%になる直前にしておく。せこいけど。

f:id:tombi-aburage:20190915171702p:plain

いちおうこれだけ数があるので、地図作成 Map the Star の政令 Edict も発令しておくことにした。

北のシリウス Sirius には居住可能な惑星を発見

隣のバーナードには無かったのが、ひじょうに痛かったが見つかっただけマシだろう。
しかし2つ先なので、ただちに引き返してバーナード星系を暴くこととした。

折角なので科学船の3隻目も建造

合金75で建造できるので、この優位を生かさない手はないだろう。3隻目を建造する。
シリウスまでは科学者なしで移動させよう。

まあシリウスの探索はせずに、その先の一筆書きを続行するのだが。

f:id:tombi-aburage:20190915173756p:plain

あと2つ位は近所にあるはずなので、まずは位置を特定にかかる。
こいつにも 、Ctrl + 1 でショートカット割り当てておく。

5隻までなら、1を押すだけで、全ての科学船の状態を一度に確認できるので便利。

どんどん北上して、いちおう居住可能な惑星を見つけたが、如何せん遠すぎる。

f:id:tombi-aburage:20190915181932j:plain

折角なので科学船の4隻目も建造

何の、消費財を売れば科学者の給料は捻出できるさ…

シリウス外縁のルクラー星系に、高山型 Alpine 惑星発見

植民に適さないので、この星系は探索しないのだが、惑星があったことは記録したい。
そういうときに便利なのだが、進入禁止指定をするボタン。星系の文字が赤くなるので、あとで惑星の場所が分からなくなったときに便利だ。

f:id:tombi-aburage:20190915174107j:plain

折角なので科学船の5隻目も建造

半額の資金100で雇える科学者が出たので、もう1隻くらいはいけそうだ。
東へ向かわせたところ、アルファケンタウリを発見したのだが、はるか先の星系なので、無視してさらに遠地へ向かわせる。

f:id:tombi-aburage:20190915180203j:plain

折角なので、発見の伝統を発動

アノマリだけは早く暴ける国になった。次以降の伝統は拡張優先するつもりだが。

f:id:tombi-aburage:20190915175921j:plain

地球においては、失業者が生まれていたので、合金工場・研究所を建てる。

北東に飛び地 Enclave を発見

放置しておけば、向こうから接触してきて影響 influence がもらえるはず。

f:id:tombi-aburage:20190915181324j:plain

こちらが正体を研究しても勝てないから研究しない。数か月後に接触してきた。

f:id:tombi-aburage:20190915183124j:plain

東南に異民族を発見

発見したらすぐ、全力投球で研究に入る。首都に研究所追加したので、おそらく正体を研究する競争に勝てるはず。

f:id:tombi-aburage:20190915182036j:plain

f:id:tombi-aburage:20190915182048j:plain

序盤は影響 influence がネックになるので、

  • なるべく広く科学船を展開して、接触させる
  • 1つに接触したら、科学船の前進は一旦停止させ、星系探索をさせる
    研究未了の間に別の異民族に遭遇すると、研究開発に勝てなくなるため。

f:id:tombi-aburage:20190915183640j:plain

ぶじ影響40獲得した。

さて、ここで通常ならば即刻、ライバル指定をして影響の稼ぎを増やすのだが、今回であった奴はやたら好意的で、最初から共同研究開発すらもできる状態。

f:id:tombi-aburage:20190915183705j:plain

乾燥型 Arid が好みらしく、将来的に移民条約を結べばm、これはこれで味方として役に立ちそうなので、ライバル指定はやめておく。
共同研究開発をさっそく申し入れたが、当方の研究は全くブーストしないようだったので、即日打ち切った。

そしてその後、少し行った先には、また別の異民族が。

f:id:tombi-aburage:20190915190014j:plain

もし立ち止まっていなければ、遭遇してしまい、影響力はもらえなかっただろう。
こちらは大陸性 Continental で、先ほどとは異なり別に好意的でもなかったので、組むメリットは何もない。さっそくライバル指定する。

f:id:tombi-aburage:20190915235044p:plain

いつかは引いてみたい、このレバー

普通、いきなりレバーを引いたりはしないだろう、仮にも科学者なら。

f:id:tombi-aburage:20190915184220j:plain

でも、いつかは引いてみたい気はする。

首都の隣に、うち捨てられた科学ネクサス

どうせ何もないだろうと思って、今ごろ探索してみたら…

f:id:tombi-aburage:20190915184728j:plain

大洋系の隣に、科学ネクサスがあった。まじかよ…

そしてすぐ北には、未開文明まで発見された

こんなに近くに出るのは運がいい。社会研究の助けになる。建設船が足りなくなってきたので、もう1隻増やすことにする。

f:id:tombi-aburage:20190915185506j:plain

さらには、南方の目と鼻の先に、別の異民族が発見された

ええ。首都から2つ先にいましたよ。全然気づかなった。

先方から接触してきたのだが、何故か影響力 40 はもらえた。

f:id:tombi-aburage:20190915201850j:plain

幸い、この勢力も自国と同格の強さだった。大した脅威でもないので、影響力嵩上げのためにライバル指定させてもらった。高山性の勢力であり、こちらが中原への出口を押さえた感じになっているので、大きく利害は衝突するものではない。

f:id:tombi-aburage:20190915201947j:plain

なお、しばらく後にアノマリ・イベントで奴の大事な壺を届けてあげたら、影響力100をもらい、少しばかりの関係改善が図れた。

f:id:tombi-aburage:20190916015000j:plain

宇宙怪物に突入して散華

どんどん南へ進ませたが、宇宙生物の大軍に遭遇して2名のうち1名が戦死した。

f:id:tombi-aburage:20190916004637j:plain

もう1名は別の異民族を発見した。これだけ遠いと、もはやほぼ関係ない。

f:id:tombi-aburage:20190916004956j:plain

残った1名は、リヴァイアサンに突入して、これまた戦死。
こういうこともあろうかと、頑迷固陋持ちになった科学者を指揮官にしていたので、まあいいけど。

f:id:tombi-aburage:20190916020206j:plain

いつ発見されたのか不明だが、銀河の反対側に異民族発見

何かのついでに、発見されたらしい。あるいはこの種族に固有の能力か何かだろうか。
今の段階で到達できる位置ではないので。

f:id:tombi-aburage:20190915235520p:plain

ガイア型選好で、全宇宙はオレのものと考えている奴ららしい。
初期状態が他のAIよりも強めのため軍事力に差があり、まだライバル指定ができない。

f:id:tombi-aburage:20190915235651p:plain

コルベットを少し増強してから、ライバル指定することにしよう。
合金を貯めなければ。

ここで大統領選、わざと改選させたら、よりひどい結果に。

もっとましな属性を持った奴に交替させたかったので、あえて公約を達成しないようにしたのだが、さらにロクでもない奴に交替してしまった。しかも、この科学者はアノマリ探索ボーナス付きの奴なので、二重に痛い。

f:id:tombi-aburage:20190916012016j:plain

キュレーターに遭遇、さっそく研究支援を申し入れる

宇宙のどこからでも接触してくる、すごい奴ら。

f:id:tombi-aburage:20190916014059j:plain

  • 合金不足で科学船を5隻以上に増やせなかった
  • 居住可能な惑星が遠かった
  • 待機している科学者が探検家向きの奴らで、研究に従事している科学者が素人同然

こともあり、かなり資金と資源が余っていたので、食料や鉱石を売って研究支援をしてもらった。

北方で没落に遭遇

北方で没落の1つめに遭遇。

f:id:tombi-aburage:20190916001526j:plain

研究所の建て過ぎで合金不足

そこそこ探索はうまくいったが、研究所3軒は多すぎたようで、星系基地の格上げもできなかった。シリウスなどが遠すぎたのも利いて、うまく伸びなかった。

f:id:tombi-aburage:20190916035059j:plain

気づいた時点で、即刻建て替えておくべきだったな。
あり余った鉱石しか使わないので、こまめに建て替えないといけないようだ。

f:id:tombi-aburage:20190916035058j:plain

 

Neo4j グラフデータベースのマネージドサービス

最近リレーショナルでも、キーバリュー・ドキュメントでも扱いづらいデータが増えてきているので、グラフデータベースの利用について検討している。

DB-Engine で不動の22位(グラフ専用DBとしては1位)の Neo4j がやはりいいようだ。

グラフ型データベース入門 - Neo4jを使う

グラフ型データベース入門 - Neo4jを使う

  • 作者: Neo4jユーザーグループ,石坂登,秋田進之助,大西芳佳,李昌桓,清田馨一郎,佐藤航,中田亨,長瀬嘉秀
  • 出版社/メーカー: リックテレコム
  • 発売日: 2016/02/13
  • メディア: 単行本(ソフトカバー)
  • この商品を含むブログ (2件) を見る
 
グラフデータベース ―Neo4jによるグラフデータモデルとグラフデータベース入門

グラフデータベース ―Neo4jによるグラフデータモデルとグラフデータベース入門

 

環境構築するのが面倒なので、調べてみたところ GrapheneDB とかいうマネージドサービス(クラウド版)があった。

www.graphenedb.com

ホビー HOBBY 利用の場合、Sandbox データベースにおいて 1000ノード、10000リレーションまでは無償とのこと。

 Neo4j hosting on Amazon (AWS) with GrapheneDB

Sandbox 1K Nodes 10K Relationships

トライアル期間制限なし、クレジットカードなし、先払いなし。

You can get started for free with one or more Sandbox databasesstraight away. No trial period, credit card or upfront commitment required.

とのこと。そのうち試そう。

はてなブログのウザい表示を消すための環境設定

久しぶりに自分のブログを見返していると、はてなブログによる、けっこう邪魔な表示が目に余ったので、表示させないことにした。

「はてなブログをはじめよう!」等の表示を削除

参考としたサイト

yuu-photojournal.hatenablog.com

PC向け表示の場合

  • 上記歳とのとおり {} デザインCSS に追記する。

f:id:tombi-aburage:20190601092854p:plain

{} デザインCSS

<style>
/* はてなブログをはじめようを非表示にする */
.footer-action-wrapper{
display:none;
}
/* はてなブログ開発ブログ等のリンクを非表示にする */
.touch-item-list{
display:none;
}
</style>

モバイル向け表示の場合

  • {} デザインCSS の設定をしても、モバイル表示には反映されなかった。
  • はてなブログ Pro の契約をした(1カ月間)ので、フッタ PRO ページャ下
    に追記した。

f:id:tombi-aburage:20190601092529p:plain

フッタ PRO ページャ下

関連記事を非表示にしたい場合

/* 関連記事を非表示にする */
.hatena-module-entries-access-ranking{display:none}

を追加する。 

 

Git リモートレポジトリ作成時に .gitignore ファイルを作成したら、後の設定でハマった。

Git リモートレポジトリ作成時に .gitignore ファイルを作成したら、後の Visual Studio Code (VS Code) との同期設定でハマった。

f:id:tombi-aburage:20190524125322p:plain

.gitignore が邪魔で push できず…

もう二度と .gitignore ファイルその他のファイルは追加しないぞ。

まずはサンプルプログラム用のプロジェクトを用意

プロジェクト名は BotFrameworkSample とした。 

tombi-aburage.hatenablog.jp

  1. GItHub で新しいプロジェクト(レポジトリ)を作成

  2. VS Code で新しいプロジェクトを作成

  3. レポジトリを同期

最初の GitHub でのレポジトリ作成時に、Add .gitignore で Node を選んだら .gitignore ファイルが自動追加され、そのためにレポジトリへの接続手順ページが表示されなくなってしまった。

いつでも参照できるように empty というプロジェクトを作成し、レポジトリ名だけ置き換えて接続手順を表示させた。

さしあたり、用は足せるか。

リモートの .gitignore のせいで git push -u origin master に失敗

echo "# empty" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/tombi-aburage/BotFrameworkSample.git
git push -u origin master

https://github.com/tombi-aburage/BotFrameworkSample.git
! [rejected] master -> master (fetch first)
error: failed to push some refs to 'https://github.com/tombi-aburage/BotFrameworkSample.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

ローカルにはないファイルがリモートにあるので更新できなかった。
push の前に pull して統合しろ、とのこと。

融通利かないなぁ…

コマンドパレット View - Command Palette で Git: Clone したが解消せず。

ローカルのプロジェクトフォルダの中身(.git フォルダ等)を削除して空にしてから、今度は git init だけをまず実行した。

git init

Initialized empty Git repository in E:/Users/tombi/Projects/BotFrameworkSample/.git/

その後で、コマンドパレット View - Command Palette より Git: Clone

f:id:tombi-aburage:20190518101205p:plain

コマンドパレットで Git: Clone

を行ったところ、.gitignoreは同期された。その後、

echo "# empty" >> README.md
git add README.md
git commit -m "first commit"

[master (root-commit) 526826f] first commit
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 README.md

ここまではうまくいったのだが、

git push -u origin master

fatal: 'origin' does not appear to be a git repository
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

となり失敗した。

origin が見当たらない…

どうやら、Git: Clone だけでは origin というタグ?が作成されないらしく、

git remote add origin https://github.com/tombi-aburage/BotFrameworkSample.git

を実行する必要があった。しかし追加直後に

git push -u origin master

を実行してみても、やはり同じエラーが再発した。

慌ててしまい、もう一度、コマンドパレット View - Command Palette より Git: Clone を行ったところ、レポジトリが2つに増えてしまった。

f:id:tombi-aburage:20190518101205p:plain

コマンドパレットで Git: Clone

f:id:tombi-aburage:20190518101950p:plain

何度も失敗を繰り返した結果、おかしなことに…
pull と clone を勘違いした!

・・・下のほうのレポジトリをクローズ。

ソース制御 Source Control より Pull を実行

f:id:tombi-aburage:20190518102554p:plain

Source Control - Pull

現在のブランチには追跡情報がない、とのこと。

f:id:tombi-aburage:20190518102356p:plain

Git: There is no tracking information for the current branch

もう正しい状態が分からん…

すっかり正しい状態が分からなくなってしまったので、根本的にやり直し。

リモートレポジトリから全部作り直し

  1. GitHub からリモートレポジトリごと削除した。
    Setting - Options - Danger Zone から Delet this Repository
    正気かどうかを何度も確認された。
  2.  VS Codeワークスペースを閉じて、フォルダ内容を削除
    何度も間違えたせいで、BotFrameworkSample フォルダの下にも BotFrameworkSample が入れ子でできてしまっていた。
    .git フォルダ、README.md も含む全てのフォルダ・ファイルを削除。
  3. VS Codeワークスペースを新規作成
    ソース制御 Source Control のタブで、初期状態を確認しておく。何もない。

    f:id:tombi-aburage:20190518104609p:plain

  4. GitHub にリモートレポジトリを作成
    今度は .gitignore を作成しない。いかなるファイルも作成しない。
  5. レポジトリを同期
    GitHub のページに表示されたコマンドを、そのとおり VS Code の Terminal で入力。
echo "# BotFrameworkSample" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/tombi-aburage/BotFrameworkSample.git
git push -u origin master

(略)

PS E:\Users\tombi\Projects\BotFrameworkSample> git push -u origin master
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Writing objects: 100% (3/3), 254 bytes | 254.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/tombi-aburage/BotFrameworkSample.git
* [new branch] master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.

何のトラブルもなく、作成された。

master ブランチは、リモートブランチ master を origin から追跡するように設定されたとのこと。

問題なし(でいいのか?)

たぶん追跡を設定する git コマンドをよく理解していれば、リモートレポジトリごと作り直すなどという手段に頼らなくてもよかったのではないかと推測。その勉強は後日。

Microsoft Bot Framework 開発環境 (Node.js、TypeScript)

プログラミングBot Framework (マイクロソフト関連書)

プログラミングBot Framework (マイクロソフト関連書)

 

を読んだのだが、Node.js ではなく C# が開発言語の前提だった。

フロントエンドのボット(チャネル)は何でもよい、という建前の汎用的なフレームワークなので、アーキテクチャは小難かったが大体理解はできた。

しかし Line、Alexa などの勝ち組は、わざわざマイクロソフトの相手をする気もなさそうであり、実質的に Cortana、Skype、Slack ぐらいしか繋がりそうもない。

開発言語 TypeScript / JavaScirpt (Node.js) の場合

たまたま読んでいた 

TypeScript実践マスター

TypeScript実践マスター

 

では、Node.js での説明があった。

ほとんど同じであり、難しくもなかったが記録しておく。

Bot Framework Emurator インストール

ボット・フレームワークエミュレータ本体は、以前に GItHub からダウンロードしてインストールしていた。

が、他に Home · microsoft/BotFramework-Emulator Wiki · GitHub の Resources にあるようなものが必要らしい。

このうち Bot Builder V4 SDK は開発言語別となっているので、Node.js の場合には npm でインストールすることになる。

まずはサンプルプログラム用のレポジトリとプロジェクトを用意

プロジェクト名は BotFrameworkSample とした。 

tombi-aburage.hatenablog.jp

GItHub でレポジトリ生成するさいに、Node.js 用の.gitignore を生成させたところ、ひとくハマってしまった。(ロス2時間)

tombi-aburage.hatenablog.jp

Bot Builder V4 SDK を追加

MSDN のブログも発見したので、

blogs.msdn.microsoft.com

TypeScript実践マスター

TypeScript実践マスター

 

と見比べながら設定を進めた。

前者のブログには

ローカル環境で開発をする方法について紹介します。

とあるので内容的にちょうどよかった。

Git はさきほど設定したので git init は飛ばして、その後の手順を忠実に実行。

entry point は app.js としてください。

がポイントらしい。

SDK を取得すると、node_modules 配下に大量にファイルが追加されたので、.gitignore ファイルを作成&記述して GIt 管理下からnode_modules 配下を外した。

サンプルプログラムを追加

先ほどのブログの途中で、別のブログのページに飛び、そこにある説明どおりにエコーボットを作成した。

Yeoman と JavaScript のジェネレーターをインストールします。

ジェネレーターを使用してエコー ボットを作成します。

Yeoman を使って、サンプルプログラムの生成すらも完全自動化している。
これには自己診断機能があるらしく、全て問題なし!と言い切ってくれた。

Yeoman Doctor
Running sanity checks on your system

√ Global configuration file is valid
√ NODE_PATH matches the npm root
√ Node.js version
√ No .bowerrc file in home directory
√ No .yo-rc.json file in home directory
√ npm version
√ yo version

Everything looks all right!

これは、安心だ(嘘じゃなければネ…)

ジェネレーターを使用してエコー ボットを作成

途中で TypeScript か JavaScript か選ばされた。

本心は TypeScript なのだが、今は手順どおりに稼働確認を優先するため、JavaScript を選択しておく。

ここまで、特に問題なし

JavaScript を選択したのに、Python 実行ファイルが見つからないとのエラー

最終的には

------------------------
Your new bot is ready!
------------------------
Open the README.md to learn how to run your bot.
Thank you for using the Microsoft Bot Framework.

と出力されているので問題ないと思うが、途中で Python 環境に関するものらしきエラーが出力されているので、一応記録はしておく。

E:\Users\tombi\Projects\BotFrameworkSample\my-chat-bot\node_modules\dtrace-provider>if not defined npm_config_node_gyp (node "C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild ) else (node "C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" rebuild )
gyp ERR! configure error
gyp ERR! stack Error: Can't find Python executable "python", you can set the PYTHON env variable.
gyp ERR! stack at PythonFinder.failNoPython (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\configure.js:484:19)
gyp ERR! stack at PythonFinder.<anonymous> (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\configure.js:509:16)
gyp ERR! stack at C:\Program Files\nodejs\node_modules\npm\node_modules\graceful-fs\polyfills.js:284:29
gyp ERR! stack at FSReqWrap.oncomplete (fs.js:153:21)
gyp ERR! System Windows_NT 10.0.17134
gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild"
gyp ERR! cwd E:\Users\tombi\Projects\BotFrameworkSample\my-chat-bot\node_modules\dtrace-provider
gyp ERR! node -v v10.15.3
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok

たぶん、関係なし

エコーボットの生成を完了

参照先のブログ Bot Framework SDK for JavaScript を使用してボットを作成する - Bot Service | Microsoft Docs では npm start で起動と書かれており、

参照元のブログ Node.js ではじめる Bot 開発 (基本編) – monoe's blog では node app.js で起動と書かれている。

とりあえず参照元のほうの手順で実行したが、モジュールが発見できないとのこと。

node app.js

internal/modules/cjs/loader.js:584
throw err;
^

Error: Cannot find module 'E:\Users\tombi\Projects\BotFrameworkSample\app.js'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:582:15)
at Function.Module._load (internal/modules/cjs/loader.js:508:25)
at Function.Module.runMain (internal/modules/cjs/loader.js:754:12)
at startup (internal/bootstrap/node.js:283:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)

app.js の場所を確認してみたところ、BotFrameworkSample 直下ではなくて、サブディレクトリの my-chat-bot 配下に生成されていた。

しかも my-chat-bot 配下にも、それ専用の package.json ファイルが二重に存在するという最悪な事態に w

トラブルの匂いがプンプンする・・・

エコーボットを起動

とりあえず稼働確認だけなので、あまり手間をかけたくない。

参照先のブログでは、作成したボットのディレクトリに移動して npm start で起動と書かれていたので、その手順で、そのとおりにやってみる。

起動して、対話待ちになった。いちおう成功といえそうだ。

npm start

> myChatBot@1.0.0 start E:\Users\tombi\Projects\BotFrameworkSample\my-chat-bot
> node ./index.js
restify listening to http://[::]:3978

Get Bot Framework Emulator: https://aka.ms/botframework-emulator

To talk to your bot, open the emulator select "Open Bot"

ポート 3978 でリスンしているとのこと。参照元のブログのほうに戻る。

Bot エミュレーターでの実行(失敗)

ウィンドウ上部の「Enter your endpoint URL」をクリック 

 は最新のエミュレータには存在せず、かわりに「Open Bot」ボタンがあったので、これに読み替えて手順どおり実施した。

http://localhost:3978/api/messages

・・・しかしエミュレータは何も反応せず、繋がってはいないように思えた。

さきほどの起動メッセージにある

restify listening to http://[::]:3978

がすげえ怪しい・・・

Bot エミュレーターでの実行(失敗)

いきなり「Open Bot」ボタンではなくて、ボット設定ファイルを先に作ってから、Open Bot する方法に変えてみた。

f:id:tombi-aburage:20190518120741p:plain

New Bot Configuration

真っ白な画面が表示されており、メッセージ入力欄すらも出てこない。
Converstion - Send System Activity - ping

を送ってみたが、画面のほうもサーバ側ボットの方も、微動だにしなかった。

まったくの無反応…

これは長引きそうだ…

エミュレータ、サーバのどちらとも停止した。

両方とも再起動したら、あっさり治った。

Windows といえば再起動。サーバ、エミュレータの順に再起動した。

あっさり治った。

f:id:tombi-aburage:20190518121827p:plain

Live Chat

restify listening to http://[::]:3978 は犯人ではなかったらしい。

見かけは変だが普通らしい。

 

QUnit インストール、でも使う気があまりおきない…

プロジェクトフォルダに TypeScript環境構築

tombi-aburage.hatenablog.jp

に準じて、VS Code 上での TypeScript 環境をまず構築する。

tsc --init
  • タスク Terminal - Tasks: Configure Default Build Task

  • Debug - Add Configuration で Node.js 用デバッグ構成を追加
    helloworld.js を起動することにする。

"type": "node",
"request": "launch",
"name": "Launch Program",
"program": "${workspaceFolder}\\helloworld.js",
"outFiles": [
"${workspaceFolder}/**/*.js"
],
  • launch.json に sourceMaps 追加、tsconfig.json の sourceMap コメント解除

  • テストスクリプト helloworld.ts を作成し、ブレークポイントを設定してデバッグ実行。デバッガにより停止され、再開すると HelloWorld が DEBUG CONSOLE に出力されることを確認できた。
console.log("HelloWorld");

QUnit 環境構築 (In Node)

qunitjs.com

の IN Node に記載の通り 

npm install -g qunit

VS Code の TERMINAL から qunit を起動

qunit

TypeScript の型定義を追加

npm install @types/qunit

下記 test.ts をビルド

QUnit.module("Test Suite 1");
QUnit.test("hello test", function (assert) {
assert.ok(true, "Passed!");
});

 QUnit を実行

VS Code の TERMINAL から qunit を起動

qunit

TAP version 13
ok 1 Test Suite 1 > hello test
1..1
# pass 1
# skip 0
# todo 0
# fail 0

どうみても mocha + espower-typescript の方がいい。
Node.js 向けに QUnit を使う意味はなさそう。

なお、いろいろ試したが、VS Codeデバッグ実行で QUnit を起動するデバッグ構成の作り方は分からなかった。

QUnit 環境構築 (In The Browser)

qunitjs.com

の In The Browser に記載の通りであり、とくに環境構築は必要ない。

適当な HTML ファイルの中で

するだけのようだ。試さなくても何となく分かった。

これはこれで簡便でよいが、mocha で同じことができるなら、そちらに統一したほうがいいような気がしてきた。

何せ、実行結果の表示が mocha + espower-typescript と比べるとしょぼいので・・・
記法が異なるテストフレームワークを2つ覚えるのも面倒だし…

少し mocha を深堀りする必要がありそうだ。