haiju's 開発メモ

開発に必要な情報を自分用にメモ

ChatBot開発資料、チュートリアル、サンプルコード等

たまたま、Bot関連の資料をググってたら検索がHITした

ので、隙間で読むための備忘録としてメモ(ΦωΦ)

[参考サイト]

github.com

chatbotsmagazine.com

chatbotsmagazine.com

chatbotsmagazine.com

developers.facebook.com

medium.freecodecamp.org

slackhq.com

github.com

www.youtube.com

github.com

core.telegram.org

github.com

qiita.com

futurice.com

github.com

github.com

github.com

qiita.com

github.com

qiita.com

kai-you.net

tbpgr.hatenablog.com

blog.lisb.direct

blog.lisb.direct

blog.lisb.direct

qiita.com

www.tapun.net

qiita.com

akataworks.hatenadiary.jp

c16e.com

blog.serverworks.co.jp

qiita.com

ascreed.jp

www.slideshare.net

employment.en-japan.com

daabでタスクスタンプの送受信

daabの仕様理解のために、タスクスタンプの送受信を行う

サンプルコードを実装した(ΦωΦ)

[サンプルコード]

'use strict';

module.exports = (robot) => {

     robot.respond(/TASK$/i, (res) => {

        res.send({

            title: "TODO",

            closing_type: 0, //(Option) 誰かが: 0, 全員が:1

            onsend: (sent, msg) => {

                 robot.brain.set(`_${msg.id.high}_${msg.id.low}`, 'TODOを達成しました');

            }

        });

     });

     robot.hear('task', (res) => {

         res.send(robot.brain.get(res.json.in_reply_to));

     });

};

[参考サイト]

daab 仕様 - daabデベロッパー

blog.lisb.direct

blog.lisb.direct

blog.lisb.direct

www.slideshare.net

ES2015ことES6について

ECMAScriptを読んでみる機会を得たのでメモ

しておく(ΦωΦ)

[参考サイト]

babeljs.io

babeljs.io

github.com

github.com

qiita.com

qiita.com

www.designmap.info

photo-tea.com

html5experts.jp

codezine.jp

qiita.com

qiita.com

ECMAScript 6: New Features: Overview and Comparison

ECMAScript - Wikipedia

dev.classmethod.jp

sitest.jp

developer.mozilla.org

qiita.com

qiita.com

www.webprofessional.jp

www.ibm.com

www.ibm.com

daabでセレクトスタンプの送受信

daabでセレクトスタンプの送受信のサンプルコードを書いた。

[コードサンプル]

'use strict';

var talk_opts = ["選択肢1","選択肢2","選択肢3","選択肢4","選択肢5"];

module.exports = (robot) => {

     robot.respond(/PING$/i, (res) => {

         res.send('PONG');

     });

     robot.respond(/QUEST$/i, (res) => {

        res.send({

            question: "質問内容",

            options: talk_opts,

            onsend: (sent, msg) => {

                 robot.brain.set(`_${msg.id.high}_${msg.id.low}`, 'このような質問内容でした');

            }

        });

     });

     robot.hear('select', (res) => {

         res.send(robot.brain.get(res.json.in_reply_to));

     });

   });

};          

[参考サイト]

daab 仕様 - daabデベロッパー

blog.lisb.direct

daabのサンプルスクリプトを手っ取り早く試そうとして

古いバージョンのcoffee-script 1.6.3インストールを

CentOS6.5のパッケージマネージャyumで実行後に

プロジェクト担当社員からcoffeeは基本使わないことに

なってるから、必要ありません。

ってお話がチャットで来たので、yumでインストール&

アンインストールをメモる(ΦωΦ)

でも、開発担当者はping.coffeeが必要って言ってたんだけど

なー。担当社員と開発者では認識が違うのかしら?

じゃぁ、directの会社も仕様説明で使っているサンプルコードは

coffeeじゃなくてjsに対応する必要があると思うんだぜ。

すぐに動くコードじゃないとサンプルとして意味ないだろ?

って思った(ΦωΦ)

クソコードに切れやすいのでChatOps指向で、音声を出力制御

できるようにするのが目標。

今まで通り無言でタスクをこなせるように修正しなければ。

静寂を売りにしてるくせに音楽をかけるとかうるさいぞ。

って他の人に気づかせてあげなくちゃいけないよな。

本物の静寂の中で仕事できるのがプロじゃね?って思った(ΦωΦ)

[手順]

1. coffee-script 1.6.3.xをyumでインストールするためバージョン確認。

# yum info coffee-script-common
Loaded plugins: fastestmirror, priorities, security
Loading mirror speeds from cached hostfile
* base: ftp.riken.jp
* epel: ftp.riken.jp
* extras: ftp.riken.jp
* remi-php55: mirrors.tuna.tsinghua.edu.cn
* updates: ftp.riken.jp
201 packages excluded due to repository priority protections
Available Packages
Name : coffee-script-common
Arch : noarch
Version : 1.6.3
Release : 1.el6
Size : 71 k
Repo : epel
Summary : A programming that transcompiles to JavaScript - core compiler
URL : http://coffeescript.org/
License : MIT
Description : This is the core compiler for the CoffeeScript language, suitable for use in
: browsers or by other JavaScript implementations.
:
: For the primary compiler and cake utility used in conjunction with Node.js,
: install the 'coffee-script' package.

2. インストール。

# yum install coffee-script-common
Loaded plugins: fastestmirror, priorities, security
Loading mirror speeds from cached hostfile
* base: ftp.riken.jp
* epel: ftp.riken.jp
* extras: ftp.riken.jp
* remi-php55: mirrors.tuna.tsinghua.edu.cn
* updates: ftp.riken.jp
201 packages excluded due to repository priority protections
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package coffee-script-common.noarch 0:1.6.3-1.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

===================================================================================================================================================================================================================
Package Arch Version Repository Size
===================================================================================================================================================================================================================
Installing:
coffee-script-common noarch 1.6.3-1.el6 epel 71 k

Transaction Summary
===================================================================================================================================================================================================================
Install 1 Package(s)

Total download size: 71 k
Installed size: 629 k
Is this ok [y/N]: y
Downloading Packages:
coffee-script-common-1.6.3-1.el6.noarch.rpm | 71 kB 00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : coffee-script-common-1.6.3-1.el6.noarch 1/1
Verifying : coffee-script-common-1.6.3-1.el6.noarch 1/1

Installed:
coffee-script-common.noarch 0:1.6.3-1.el6

Complete!

3. アンインストール。

# yum remove coffee-script-common
Loaded plugins: fastestmirror, priorities, security
Setting up Remove Process
Resolving Dependencies
--> Running transaction check
---> Package coffee-script-common.noarch 0:1.6.3-1.el6 will be erased
--> Finished Dependency Resolution

Dependencies Resolved

===================================================================================================================================================================================================================
Package Arch Version Repository Size
===================================================================================================================================================================================================================
Removing:
coffee-script-common noarch 1.6.3-1.el6 @epel 629 k

Transaction Summary
===================================================================================================================================================================================================================
Remove 1 Package(s)

Installed size: 629 k
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Erasing : coffee-script-common-1.6.3-1.el6.noarch 1/1
Verifying : coffee-script-common-1.6.3-1.el6.noarch 1/1

Removed:
coffee-script-common.noarch 0:1.6.3-1.el6

Complete!

[参考サイト]

qiita.com

centos.pkgs.org

uxmilk.jp

daab run実行時のログに出てるWARNINGでfseventsって何?という問題

daab runを実行した時に出る下記2行のWARNINGメッセージ

が気になったので調べてみた(ΦωΦ)

npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.0.0 (node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.0: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

[疑問点]

まず、fseventsって何?

[調査結果]

Native access to OS X FSEvents in Node.js

とあるので、名前的に、macOS Xのファイルアクセスイベントに

アクセスするNativeのAPIで、Node.jsではそれに依存しているらしい。

でも、この環境はLinux(CentOS)だけど、出す必要あるか?

って思って、いろいろググっていたら、以前はエラーでコケていたらしい

のを、macOS X以外の環境ではWARNINGメッセージで対応することに

なったらしい。

で、別のnpmの不具合について調べてみると、npm 3.10.8(3.10.7とか)

ではmacOS X以外のプラットフォームにもインストールしようとして

エラーになるバグがあったらしいので同じような対応をしてるみたい

ってとこまでは読んだ。

少し時間がないので詳しく確認するのはまた、今度(ΦωΦ)

[参考サイト]

www.npmjs.com

github.com

github.com

github.com

 

npmでcoffee-scriptはハイフンなしのcoffeescriptパッケージに移動したらしいと聞いたけど

daabでセレクトスタンプの送信を行う検証用コードの

JavaScriptの書き方が分からなかったので、公式エディタ

サンプルコードそのままに実行してみたら、下記エラーが発生したので

[stdin]:40:4: error: mixed indentation
options: ["選択肢1","選択肢2","選択肢3"]
^

実行ログの最初に出る警告メッセージの内容を支持してローカルの

テスト開発環境で、ハイフンありのパッケージをアンインストールして、

ハイフンなしのパッケージをインストールしてみた。

ちなみに、最新のCoffeeScript2をインストールするには、

--save-devを使うらしい。

※多分、既存プロジェクトのコードはCoffee2には未対応だと思うから

 書き換えないとエラーが発生すると思うけど・・・

 その時点で差分あり過ぎるなw

 もう少し、調べたほうがよいのかもしれない(ΦωΦ;)

[手順]

1. プロジェクトディレクトリのnode_modulesへ移動。

$ cd ~/node_modules

2. coffee-scriptパッケージをアンインストール。

$ npm uninstall coffee-script --save
- coffee-script@1.6.3 node_modules/coffee-script

3. coffeescriptパッケージをインストール。

$ npm install coffeescript --save
npm WARN deprecated coffee-script@1.6.3: CoffeeScript on NPM has moved to "coffeescript" (no hyphen)
starter@0.3.6 /home/username/mybot2
├── coffeescript@2.2.4
└─┬ lisb-hubot@2.19.2
└── coffee-script@1.6.3

npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.0.0 (node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.0: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

4. daabを実行。

 案の定エラーになってる。やっぱりcoffeescript2には未対応なのねw

 あとで詳しく見ようw(ΦωΦ)

$ daab run
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.0.0 (node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.0: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm WARN enoent ENOENT: no such file or directory, open '/home/username/mybot2/node_modules/storage.local/package.json'
/home/username/mybot2/node_modules/lisb-hubot/src/brain.coffee:10:5: error: Can't reference 'this' before calling super in derived class constructors
@data =
^
error: Forever detected script exited with code: 1

[参考サイト]

http://coffeescript.org/#installation

http://coffeescript.org/#breaking-changes

daab 仕様 - daabデベロッパー