oh-my-zsh を zplug に置き換えた話

oh-my-zsh 使ってたけれど、初期読み込みが重くなってきたので、zplug で必要最低限モニタする方向に移行した。

cp -r ~/.zshrc ~/.zshrc.old
brew install zplug

インストール後、.zshrc に以下の記述を追加:

  export ZPLUG_HOME=/usr/local/opt/zplug
  source $ZPLUG_HOME/init.zsh

そしてほしいプラグインを追加。。。

# zplug
zplug 'zplug/zplug', hook-build:'zplug --self-manage'

# theme (https://github.com/sindresorhus/pure#zplug)
zplug "mafredri/zsh-async"
zplug "sindresorhus/pure"

# Syntax highlighting (https://github.com/zsh-users/zsh-syntax-highlighting)
zplug "zsh-users/zsh-syntax-highlighting", nice:10

# history
zplug "zsh-users/zsh-history-substring-search"

# autocomplete
zplug "zsh-users/zsh-autosuggestions"
zplug "zsh-users/zsh-completions"
zplug "chrissicool/zsh-256color"

# Install plugins if there are plugins that have not been installed
if ! zplug check --verbose; then
  printf "Install? [y/N]: "
  if read -q; then
    echo; zplug install
  fi
fi

# Then, source plugins and add commands to $PATH
zplug load --verbose

参考文献

zplugの導入 oh-my-zshのような設定にするまで。 - Qiita
もっと便利になれる zsh プラグインによる CLI ライフ - Qiita

blobscannerをインストールする

ジェスチャー認識をしたかったので、blobscannerをインストールした。

GitHub - robdanet/blobscanner: Blobscanner, a Processing's library for blob detection and analysis .

からソースファイルをインストール。

cd blobscanner
mkdir library
mkdir src/blobscanner
mv src/Detector.java src/blobscanner/
jar -cf library/blobscanner.jar src/blobscanner 

そのあと、このblobscannerのフォルダごと自分が使っているProcessing/libraryのディレクトリに移動する。

Raspberry Pi の node と npm のバージョンを上げる

参考からの丸コピペだけれど、毎回探していたので、記事にする。

$ sudo -i
$ apt-get remove nodered -y
$ apt-get remove nodejs nodejs-legacy -y
$ curl -L https://git.io/n-install | bash

新しい Terminal ウィンドウを起動して、インストール終了後のダイアログにしたがってコマンドを入力する(覚えていないので割愛するけれど、bash 叩けって感じだったはず)

$ . /root/.bashrc
$ node --version
nv7.6.0
$ npm --version

参考: - How do you install newest version of node.js on Raspberry Pi? - Stack Overflow

Chromium をフルスクリーンで開く

$ chromium-browser --kiosk http://localhost

で開く。

alt + tab でアプリは切り替えられるので、terminal との往復も楽々。

Microsoft Cognitive Services でバイナリ送る

Microsoft が提供している Microsoft Cognitive Services の Emotion API を使ってみた。

www.microsoft.com

パラメータがいろいろあり、かなり遊べる感じだったものの、どの API のサンプルを見ても URL で画像を送っている。ただ普通にreadFile して送りつけたら InvalidImageSize という名のエラーが出て、Image size is too small or too big. とか怒られて、そこで数時間詰まったので、メモ代わりに。

どうやら chunked transfer をサポートしていないことが問題らしく(参考:botframework - Microsoft Cognitive Services Emotion API. Error: 'Image size is too small or too big.' - Stack Overflow)、sync で読めばよいという話のよう。

以下、コード。

"use strict";

const request = require('request');
const fs = require('fs');

request.post({
  url: 'https://westus.api.cognitive.microsoft.com/emotion/v1.0/recognize',
  headers: {
    'Ocp-Apim-Subscription-Key': { SUBSCRIPTION-KEY },
    'Content-Type': 'application/octet-stream'
  },  
  method: 'POST',
  body: fs.readFileSync({ IMAGE FILE })
}, (error, response) => {
  let res = JSON.parse(response.body);
  console.log(res);
});