HUAWEI P8Lite先行アップデートテスターに応募した

HUAWEIがP8LiteのAndroid 6.0 Marshmallowへのアップデートテスターを募集し始めたようなので、
応募してみた。

当選した場合、5/16にアップデート通知が来るらしい。外れた場合でも6/30から正式にアップデートが開始されるとのこと。

P8LiteでSIM周りのトラブルがあるがそれが解消するかなどはまた別途。

Advertisements

Lineの方がhubot-lineを公開しました

Line bot api trial用のhubotアダプタをLineの方が公開しました。

私もとりあえず動くものをhubot-line-trialという名前で公開していましたが、
hubot-lineの方がしっかり作ってあるようなので、そちらを使うことをおすすめします。

CentOS7 で nforceのNIC が認識されない時の対処

CentOS7からforcedethドライバが有効になっていないことが原因の模様。

下記URLからDLしてkmod_forcedethパッケージをインストールするとNICが認識されるので、
その後自分でネットワーク周りの設定をすればOK。

http://elrepo.org/linux/elrepo/el7/x86_64/RPMS/kmod-forcedeth-0.64-1.el7.elrepo.x86_64.rpm

ただし、インストール時にはNICが使えないまますすめる必要があり、
ネットワークが使えないので別マシンでDLしてUSBメモリなど経由で移す
必要があるのでかなり面倒。ただ、とりあえず動いているのでよしとしておく。

参考:
http://www.gun-soft.com/wordpress/?p=174
https://bugs.centos.org/view.php?id=7359

hubot-line-trialアダプタを作った

4/14追記: 本家(line)の方がhubot-lineを公開したようです。詳細はこちら

使い方
を先に書いてしまったが、npmで公開している、hubot-line-trialアダプタについて書いておく。

hubot

hubotはGithubが公開、オープンソースで開発されている、
チャットBOTを構築するためのフレームワーク。nodejs上で動作する。

特徴は色々あるだろうが、個人的にはプラグイン構造になっているのが一つのポイントだと思う。
特に重要なのはアダプタ部分と拡張スクリプト部分。

  • アダプタ(チャットサービス・ソフトとの連携、接続部分)
    • チャットサービス・ソフト毎にAPIやcallback・Web hookの形式が異なるので、
      流れてくるメッセージをどう受け取るか、どう解釈するかを定義する必要がある。
      hubotではこのアダプタをプラグイン構造にし、
      様々なチャットサービス・ソフトと連携できるようにしている。
    • https://hubot.github.com/docs/adapters/ に記載があるように、
      多数のアダプタが用意されている。
  • 拡張スクリプト(BOTの動作を定義する部分)
    • ある文字列が届いたら特定の動作をしてその結果を返す(例えばpug meと来たら
      パグの画像を返す)、または、定期的にメッセージを投げるなど、BOTの動作を記述する。
    • もちろん自分で書くこともできる。言語はcoffeescript。
    • また、先人が作ったスクリプトが多数公開されており、
      npmで簡単に追加導入できる。
      例えば、redmineのチケット参照、更新ができるスクリプトや、指定した日時に
      メッセージを送らせるスクリプトなどがある。
    • https://www.npmjs.com/package/hubot-redmine
    • https://www.npmjs.com/package/hubot-schedule
    • https://hubot-script-catalog.herokuapp.com/

これらがプラグイン構造になっているので、先人が作った便利なスクリプトが
様々なチャットサービスで使える。

hubot-line-trialアダプタについて

既に様々なサービスに対応するアダプタが公開されているが、さすがに数日前に公開された
LineのBOT API Trial
対応するアダプタは存在しなかったので、作ってみた。

現状、githubのissueにあげている幾つかの問題があるが、修正予定。
PR募集中です。

Line BOT API Trial + hubot で heroku 上にBot作成

4/14追記: 本家(line)の方がhubot-lineを公開したようです。詳細はこちら

Line BOT API Trial
公開されたので、hubotをつないでみる。

新しくhubotを使ってbotを作成することを想定。
Line アカウント、herokuアカウントは既にあり、
ローカルマシンにはnpm, node, gitのインストール済の前提。

hubotの作成

herokuに上げるために、まずローカルマシン上でhubotを準備する。

必要なソフトの導入

公開ドキュメントの通りだが、yeomanインストール時にエラーにならないよう設定しておく。

mkdir "${HOME}/.npm-packages"
echo 'prefix=${HOME}/.npm-packages' >> ~/.npmrc
echo 'NPM_PACKAGES="${HOME}/.npm-packages"' >> ~/.bashrc
echo 'PATH="$NPM_PACKAGES/bin:$PATH"' >> ~/.bashrc

npmを使ってyeoman, generator-hubotをインストール、ついでにheroku toolbeltも入れる。

npm install -g yo generator-hubot
curl https://toolbelt.heroku.com/install-ubuntu.sh | sh

hubot 生成

mkdir bot
cd bot/
yo hubot

ボット名、作成者情報などを入力する。
adapterはline-trialを使用する。

herokuに上げるため、gitリポジトリにしておく。

git init

herokuにデプロイ

ログインして適当なアプリ名でアプリ生成。

heroku login
heroku apps:create appname

Line API側でアクセス元IPをホワイトリストに記載する必要があるが、
通常のherokuからのアクセスはIPが固定にならない模様。
アクセス元IPアドレスを固定するため、Fixieアドオンを導入する。

無料プランでは(1アプリあたり?)500アクセス(または100MB)/月の制限がある。
あと、無料で使う場合でもクレジットカードの登録が必要らしい。

heroku addons:create fixie

上記コマンドを実行後、IPアドレスが表示されるので、LineのBOTの設定ページ
(Server IP Whitelist)に設定する。
ついでに、Callback URLをhttps://.herokuapp.com:443/hubot/incoming
ように設定する。

同じページからBOTのid, secret, midを確認し、環境変数に設定する。

heroku config:set LINE_CHANNEL_ID=<channel id>
heroku config:set LINE_CHANNEL_SECRET=<channel secret>
heroku config:set LINE_CHANNEL_MID=<channel mid>

生成したbotのソースをherokuのgitにpushする。pushした段階で自動的にアプリが起動される。

git add .
git commit -m "first commit"
git push heroku master

下記コマンドでログを確認できる。

heroku logs -t

line_hubot