Hyper plugin

参考

共有

Nature Remo API

参考

ブログもとに試す

API解説のブログを参考に試してみる。

home.nature.global につなぎ、アクセストークンを発行する。 なお、アクセストークンは決して漏らしてはならない。 ここではローカルファイルシステムにna.txtとして保存して利用することにする。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
$ curl -X GET "https://api.nature.global/1/devices" -H "accept: application/json" -k --header "Authorization: Bearer `cat na.txt`" | jq
[
{
"name": "リビング",
"id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"created_at": "xxxxxxxxxxxxxxxxxxxx",
"updated_at": "xxxxxxxxxxxxxxxxxxxx",
"mac_address": "xxxxxxxxxxxxxxxxxx",
"serial_number": "xxxxxxxxxxxxxxxxxxxxx",
"firmware_version": "Remo/1.0.62-gabbf5bd",
"temperature_offset": 0,
"humidity_offset": 0,
"users": [
{
"id": "xxxxxxxxxxxxxxxxxxxxxxx",
"nickname": "xxxxxxxxxxxxxxxxxxx",
"superuser": xxxxxx
}
],
"newest_events": {
"hu": {
"val": 20,
"created_at": "xxxxxxxxxxxxxxx"
},
"il": {
"val": 104.4,
"created_at": "xxxxxxxxxxxxxxxxxx"
},
"te": {
"val": 22.2,
"created_at": "xxxxxxxxxxxxxxxxxxxxxx"
}
}
}
]
1
$ curl -X GET "https://api.nature.global/1/appliances" -H "accept: application/json" -k --header "Authorization: Bearer `cat na.txt`" | jq

センサーの値を取り出してみる

Nature Remo で温度超過時にアラート通知をする を参考に試す。 先の例と同様に、/1/devicesを叩くと、その戻りの中にセンサーの値が含まれているようだ。 そこでjqコマンドを使って取り出す。

1
$ curl -X GET "https://api.nature.global/1/devices" -H "accept: application/json" -k --header "Authorization: Bearer `cat na.txt`" | jq '.[].newest_events'

結果の例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
"hu": {
"val": 20,
"created_at": "2019-01-18T15:01:43Z"
},
"il": {
"val": 104.4,
"created_at": "2019-01-18T13:26:58Z"
},
"te": {
"val": 21,
"created_at": "2019-01-18T14:24:23Z"
}
}

これを保存しておけばよさそう。

Python化

curl to python のサイトを利用し、上記curlをPythonスクリプトに変換した。

ローカルAPIを試してみる

Remoを探すため、公式サイトでは以下のように示されていた。

1
% dns-sd -B _remo._tcp

代わりに以下のコマンドで確認した。

1
2
dobachi@home:~$ avahi-browse _remo._tcp
+ xxxxx IPv4 Remo-xxxxxx _remo._tcp local
共有

Open Messaging Benchmark

参考

メモ

ウェブサイトを確認してみる。

所感

あくまでメッセージングシステムに負荷をかけ、その特性を見るためのベンチマークに見える。 したがって負荷をかけるクライアントはシンプルであり、ただしワークロードを調整するための パラメータは一通り揃っている、という様子。

パラメータ

  • The number of topics
  • The size of the messages being produced and consumed
  • The number of subscriptions per topic
  • The number of producers per topic
  • The rate at which producers produce messages (per second). Note: a value of 0 means that messages are produced as quickly as possible, with no rate limiting.
  • The size of the consumer’s backlog (in gigabytes)
  • The total duration of the test (in minutes)

「BENCHMARKING WORKLOADS」の章に代表的な組み合わせパターンの記載がある。

その他

  • 「warm-up」とあったが、何をしているのだろう。
  • 構成はTerraformとAnsibleでやるようだ

GitHubを見てみる

Kafkaのドライバ

openmessaging-benchmarkのGitHub を眺めてみる。 Kafkaのドライバ を除くとデプロイ用のTerraformコンフィグとAnsibleプレイブックがあった。

Kafka構築のTerraformコンフィグ の通り、一通りAWSインスタンスをデプロイ。 Kafka構築のAnsible Playbook の通り、ひととおりKafkaクラスタから負荷がけクライアントまで構成。

なお、ソースコードとしてベンチマークのドライバが含まれているが、 その親クラスが BenchmarkDriver だった。

bin

bin以下には、ベンチマークを実行すると思われる、 benchmarkが含まれていた。

Benchmarkクラス

以下の通り、ワークロードごとに、指定されたドライバのコンフィグレーションに基づき、 負荷をかけるようになっているようだ。

io/openmessaging/benchmark/Benchmark.java:126

1
2
workloads.forEach((workloadName, workload) -> {
arguments.drivers.forEach(driverConfig -> {

また以下の通り、WorkloadGeneratorを通じて、ワークロードがかけられるようだ。

io/openmessaging/benchmark/Benchmark.java:140

1
2
3
WorkloadGenerator generator = new WorkloadGenerator(driverConfiguration.name, workload, worker);

TestResult result = generator.run();

コントリビュータ

yahoo、alibaba、streamlioあたりからコントリビュータが出ている。 ただし主要な開発者は数名。 最初にYahooの若干名が活発に開発し、それに加わった人がいるようだ。

イシュー

エンハンスを中心に、いくつか挙げられていた(2019/1/18時点)

共有

Docker on WSL

参考

メモ

Docker

WSLでDockerをインストールする手順を示したブログを参考に、geerlingguy/docker を用いてAnsibleでDockerをインストールしてみたが、

ということから、 Dockerのバージョンについての言及 を参考に17系のDockerを無理やりインストールしたところ一応動いた。

まず 管理者権限で WSLを立ち上げる。 つづいて、以下のとおりインストールする。

1
2
$ curl -O https://download.docker.com/linux/debian/dists/stretch/pool/stable/amd64/docker-ce_17.09.0~ce-0~debian_amd64.deb
$ sudo dpkg -i docker-ce_17.09.0\~ce-0\~debian_amd64.deb

サービスを起動して動作確認。

1
2
$ sudo service docker start
$ sudo docker run hello-world

なお、WSLでDockerをインストールする手順を示したブログ では「管理者権限でWSLを起動する」ことがポイントとあげられていたので、それは守ることにした。 が、インストール後は管理者権限でなくても動いたので、このあたり真偽の確認が必要そうだ。

docker-compose

おおむね docker-composeのインストール手順 のとおりにインストールする。

1
2
$ sudo su - -c "curl -L https://github.com/docker/compose/releases/download/1.6.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose"
$ sudo chmod +x /usr/local/bin/docker-compose

docker-composeの公式ドキュメント の通りためしてみるが、以下のようなエラーが生じた。

1
2
3
4
$ sudo docker-compose up
Creating network "composetest_default" with the default driver
ERROR: Failed to Setup IP tables: Unable to enable NAT rule: (iptables failed: iptables --wait -t nat -I POSTROUTING -s 172.18.0.0/16 ! -o br-3a6517e292d4 -j MASQUERADE: iptables: Invalid argument. Run `dmesg' for more information.
(exit status 1))

WSLがLinuxカーネルではないことに起因しているのだろう可。(iptablesまわりは期待したとおりに動かない?)

共有

terminal prompt disabled on vim

参考

メモ

gvimで deol.vim を使ってターミナルを開き、git push origin master をしたら、 以下のようなエラーが生じた。

1
fatal: could not read Password for 'https://xxxxxxxxx@github.com': terminal prompts disabled

CODE Q&Aの質疑応答 にも記載があるが

1
$ GIT_TERMINAL_PROMPT=1 git push origin master

のように、GIT_TERMINAL_PROMPT=1でOK。

共有

Jupyter with Spark

参考

メモ

よく忘れると思われる、Jupyterをクライアントとしての起動方法をメモ。

Sparkのドキュメント(Environment Variables) の記載の通り、環境変数PYSPARK_DRIVER_PYTHONを使い、 ドライバが用いるPythonを指定する。 GitHub上のpysparkの実装#27 の通り、環境変数PYSPARK_DRIVER_PYTHON_OPTSを使い、 オプションを指定する。

1
PYSPARK_DRIVER_PYTHON=jupyter PYSPARK_DRIVER_PYTHON_OPTS='notebook' ~/Spark/default/bin/pyspark

ちなみに、ガイドにも一応記載されている。

https://github.com/apache/spark/blob/9ccae0c9e7d1a0a704e8cd7574ba508419e05e30/docs/rdd-programming-guide.md#using-the-shell

共有

気になるカンファレンスのメモ2019年版(WIP)

ちゃんとしたまとめは後で実施するつもり。

まとめサイト

HPC Japan

http://www.hpcwire.jp/events

List of Machine Learning / Deep Learning conferences in 2019

https://tryolabs.com/blog/machine-learning-deep-learning-conferences/

The 16 AI and ML conferences you should attend in 2019

https://www.hpe.com/us/en/insights/articles/the-16-ai-and-ml-conferences-you-should-attend-in-2019-1811.html

IEEE関連

IEEE Congress 2019

http://conferences.computer.org/bigdatacongress/2019/

JULY 8-13, 2019, MILAN, ITALY

2019 International Congress on Big Data (BigData Congress 2019) aims to provide an international forum that formally explores various business insights of all kinds of value-added “services.” Big Data is a key enabler of exploring business insights and economics of services.

The 6th IEEE International Conference on Big Data and Smart Computing

February 27th - March 2nd, 2019 Kyoto, JAPAN

http://www.bigcomputing.org/

IEEE 2019 Summit On Future Technology For Smart Cities

April 6, 2019

San Francisco East Bay, California, USA

http://www.big-dataservice.net/html/summit.html

The IEEE International Conference on Cloud Engineering (IC2E)

June 24-27, 2019, Prague, Czech Republic

http://conferences.computer.org/IC2E/2019/index.htm http://www.hpcwire.jp/event/international-conference-on-cloud-engineering-ic2e-2019

The 5th IEEE International Conference on Cloud and Big Data Computing (CBDCom 2019)

August 5-8 2019, Fukuoka, Japan

http://cyber-science.org/2019/cbdcom/

USENIX

2019 USENIX Conference on Operational Machine Learning

MAY 20, 2019 SANTA CLARA, CA, USA

https://www.usenix.org/conference/opml19

2019 USENIX Annual Technical Conference

JULY 10–12, 2019 RENTON, WA, USA

https://www.usenix.org/conference/atc19

2019 USENIX Conference on Operational Machine Learning

MAY 20, 2019 SANTA CLARA, CA, USA Papers and talk proposals due Wednesday, February 13, 2019

https://www.usenix.org/conference/opml19

O'Reilly

Strata

Strata San Francisco 2019

https://conferences.oreilly.com/strata/strata-ca

March 25-28, 2019 San Francisco, CA

Strata London 2019

https://conferences.oreilly.com/strata/strata-eu

29 April–2 May 2019 London, UK

Strata New York 2019

https://conferences.oreilly.com/strata/strata-ny

Sep 23-26, 2019 New York, NY

AI Conference

https://conferences.oreilly.com/artificial-intelligence

AI Conference New York 2019

April 15-18, 2019 New York, NY

AI Conference San Jose 2019

Sep 9-12, 2019 San Jose, CA

VLDB

VLDB 2019

http://vldb.org/2019/

Los Angeles, California - August 26-30, 2019

情報処理学会

https://www.ipsj.or.jp/kenkyukai/sig-plan2018.html

電子情報通信学会

https://www.ieice.org/ken/program/index.php

IBISML

https://www.ieice.org/ken/form/index.php?tgs_regid=552bd5f74c86aa9e100ee3878422e7760e89f6c41f180eebb9271daee1030b58&cmd=info&lang=

LOIS

2019年3月7日(木) - 3月8日(金) 宮古島市中央公民館 視聴覚室 ライフログ活用技術、オフィスインフォメーションシステム、ライフインテリジェンス、および一般

SC

開催日 2019-03-15 - 2019-03-15 会場 国立情報学研究所 発表申込締切日 2019-01-07 議題 「サービスと機械学習」および一般

機械学習工学研究会 ★重要 と共催

機械学習工学研究会(MLSE)

https://mlxse.connpass.com/

その他

SysML 2019

March 31 - April 2, 2019 Stanford, CA

(Registration opens: January 16, 2019)

https://www.sysml.cc/

AI for Government Summit

https://www.re-work.co/events/ai-for-government-summit-canada-2018

Toronto 25 - 26 OCTOBER 2018

MLCONF NEW YORK

https://mlconf.com/events/mlconf-new-york-2019/

March 29, 2019

AI World Conference & Expo

https://aiworld.com/

October 23-25, 2019 Boston, MA

Global Artificial Intelligence Conference

http://www.globalbigdataconference.com/

January 6-11, 2019, Santa Clara, CA;

Applied Artificial Intelligence Conference

https://bootstraplabs.com/artificial-intelligence/applied-artificial-intelligence-conference-2019/

April 18, 2019

AI Toronto/Big Data Toronto

https://ai-toronto.com/

June 12-13, 2019, Toronto

共有

WSL向けのターミナルツール

参考

Hyper

ウェブ界隈の技術を活用したターミナル。 Hyper からダウンロードできる。

インストールすると %USERPROFILE%\.hyper.js に設定ファイルが作成される。 デフォルトはcmd.exeが起動されるようになっているので、WSLを使うように変更する。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$ diff -u /mnt/c/Users/dobachi/.hyper.js{.2018010101,}
--- /mnt/c/Users/dobachi/.hyper.js.2018010101 2019-01-01 23:26:47.691869000 +0900
+++ /mnt/c/Users/dobachi/.hyper.js 2019-01-01 23:28:25.273185100 +0900
@@ -9,7 +9,7 @@
updateChannel: 'stable',

// default font size in pixels for all tabs
- fontSize: 12,
+ fontSize: 15,

// font family with optional fallbacks
fontFamily: 'Menlo, "DejaVu Sans Mono", Consolas, "Lucida Console", monospace',
@@ -107,7 +107,7 @@

// for setting shell arguments (i.e. for using interactive shellArgs: `['-i']`)
// by default `['--login']` will be used
- shellArgs: ['--login'],
+ shellArgs: ['/C', 'wsl'],

// for environment variables
env: {},

ConEmu

ConEmu からダウンロードできる。 ただし、手元のGPD Pocket上のWSLで使用した時には、ctrl + lで画面クリアするときに 意図と異なる動作をした。

cmder

cmder からダウンロードできる。 ただし、手元のGPD Pocket上のWSLで使用した時には、ctrl + lで画面クリアするときに 意図と異なる動作をした。

共有

Ubuntu上のgvimでフォントが重なる現象

参考

メモ

現象についての議論 の通り、~/.vimrcに以下を追記して回避した。

1
set ambiwidth=double
共有

X Window on wsl for Ubuntu

参考

メモ

Windows側

一通りの流れが説明されたブログ に記載の通り試した。 VcXsrvのダウンロードからダウンロードしたパッケージをインストールする。

なお、インストールすると「XLaunch」がスタートメニューに追加される。 これを都度起動することになるが、スタートアップメニューにショートカットを登録し、 自動起動するようにした。 ( Xサーバーを自動起動しよう! を参考にする)

WSL側

最低限のインストール

関連パッケージのインストール

1
$ sudo apt install git build-essential libssl-dev libreadline-dev zlib1g-dev x11-apps x11-utils x11-xserver-utils libsqlite3-dev nodejs fonts-ipafont libxml2-dev libxslt1-dev

~/.bashrcに環境変数DISPLAYの値を追加

1
2
3
4
5
6
7
8
--- /home/dobachi/.bashrc.2018123001    2018-12-30 23:21:48.626055900 +0900
+++ /home/dobachi/.bashrc 2018-12-30 23:20:26.333894000 +0900
@@ -115,3 +115,5 @@
. /etc/bash_completion
fi
fi
+
+export DISPLAY=localhost:0.0

日本語関連

上記手順だけでは日本語入力環境が整わないので、 WSLを使ってWindowsでmikutterを動かすお前らのWSLはそれじゃダメだ を参考に日本語環境を構築する。 まず、WSLを使ってWindowsでmikutterを動かす のとおり、uim-anthyをインストールし、 お前らのWSLはそれじゃダメだ のとおり、~/.uimを設定する。 結局は、お前らのWSLはそれじゃダメだのとおりで良さそうではある。

1
2
3
4
5
6
7
8
9
10
11
$ sudo apt install language-pack-ja
$ sudo update-locale LANG=ja_JP.UTF-8
$ sudo apt install -y uim uim-xim uim-fep uim-anthy dbus-x11
$ cat << EOF > ~/.uim
(define default-im-name 'anthy)
(define-key generic-on-key? '("<Control> "))
(define-key generic-off-key? '("<Control> "))
EOF
$ cat << EOF >> ~/.profile
export GTK_IM_MODULE=uim
EOF

例:GUI vimのインストール

使いたいツールをインストール。

$ sudo apt install vim-gui-common

(snip)

$ gvim
共有