ssh接続できない問題

sshでX転送がうまく行ってなかったのを修正したのでメモ.

xhost +したり,/etc/ssh/sshd_configでX11Forwarding yesしたり-Xオプションつけたり-Yオプションつけたりしても,接続先で環境変数のDISPLAYに値が入らなかったので調べてみると,ipv6が悪いっぽいことがわかった.
解決策は, /etc/ssh/sshd_config に以下の設定を追加.

AddressFamily inet

そしてsshdを再起動.

sudo service sshd restart

これで無事sshでXを飛ばせるようになった.

MacBook Proが充電できないとき

今朝起きたらMacBook Pro (2017)が起動しなくなっていた.
ACアダプタに繋いでいるのに,ずっと充電されず,0%のまま….

ちょっと焦ったけど,調べるとSMC (System Management Controller)をリセットすれば良いということがわかった.

リセットの仕方は以下の通り.

  1. キーボード左側のShift+Control+Optionを押しながら電源ボタンを10秒押す
  2. その後,キーを離してから電源ボタンを押す

これは公式にも書かれていた.

その後MacBookは起動し,無事使えるようになった.

Power8上のLinuxでzshコンパイル

ソースコードを落としてきて普通に
./configure
make
make install

しようとすると,
configure: error: cannot guess build type; you must specify one
と表示されて ./configure の段階で失敗する.

この場合,ビルド先のアーキテクチャがわかってないのが原因なので,
./configure --build=ppc64-linux
という風に指定するとうまくいく.

OpenPoseの使い方メモ

OpenPoseとは

OpenPoseはDeep Learningを使って単眼カメラから人体姿勢を推定するライブラリで,CVPR2017でRealtime Multi-Person 2D Pose Estimation using Part Affinity Fieldsというタイトルで発表されたもの.

OpenPose

公式ページの情報を要約すると,画像,ビデオ,webcam,IPカメラから18点のキーポイントが検出可能.各種フォーマットで結果を保存可能.

他にも,左右の手から21点,顔から70点のキーポイントを検出するオプションもある.

これらはUbuntu,Windows,Nvidia TX2で動作する.

 

というわけで,色々な用途に使えるので,よく使うオプションのメモ.

実行方法

例えば,USBカメラを使う場合は以下の通り.

./build/examples/openpose/openpose.bin

ディレクトリ内の画像を一括で処理する場合

./build/examples/openpose/openpose.bin -image_dir /path/to/image

ビデオに対して処理する場合

./build/examples/openpose/openpose.bin -video /path/to/vieo

IPカメラの場合

./build/examples/openpose/openpose.bin -ip_camera (RTSPかHTTPでURLを指定)

姿勢推定結果の画像を保存したい

以下のオプションを追加

-write_images /path/to/directory

元画像を保存したい

以下のオプションを追加

-render_pose 0 -write_images /path/to/output_directory

ちなみに,-render_pose 1 でCPUを使った描画になり,デフォルトの -render_pose 2 よりも高速.

姿勢推定結果の座標値を保存したい

以下のオプションを追加

-write_keypoint /path/to/output_directory

デフォルトではyml形式で保存される.ファイルは,-write_imageをした時の画像と同じ番号が割り振られるので,画像とほぼ同じファイル名で1画像1ファイルで保存されていく.

evervimでリストの入れ子が出来るようにした

vimにはEvervimというプラグインがあり,Evernoteのノートをvimから直接編集できます.
しかも,markdownを使って書くことができます(要pythonのmarkdownモジュール).

が,しかし

以前使っていた時に,保存して再度開くと,書いたものが消えている,ということが何度かあったので,しばらく使っていませんでした.

今回,そのバグフィックスをしました.
調べてると幾つか問題がありましたが,その一つが,ulやolのリストを入れ子にすると,再度開いた時に,入れ子構造が壊れて,入れ子の上の階層に戻って以降が消える,というもの.

evervimのコードを見ていくと,Evernote用のXML形式であるENMLをパースしてmarkdownへと変換する関数が,入れ子に対応していなかったのを発見.
修正してプルリクエストしておきました.

VimRepress導入してみた

VimRepressというvimプラグインがあって,vimからwordpressに投稿できる.
今回,ブログ更新のために導入してみた.

markdownと組み合わせると,ブログ書きたくなった時に

  1. vimを起動
  2. :BlogNew
  3. ブログをMarkdownで書く
  4. :BlogSave publish

でサクッとブログ更新できるので超捗る.
今までWordPress開いて記事書いて…ってやるのが面倒でブログ記事が滞っていたけどこれなら….

色んなサイトで紹介されているので参考まで.

シェル上でsleep

sleep というコマンドがある.
これは,一定時間処理をストップさせ,その後継のコマンドを実行するもの.
引数で時間(秒)を指定できる.
例えば,

sleep 100
echo "wake up"

で,100秒間スリープさせることができる.

その引数を調べていたら,GNU sleepの場合 smhd という単位指定ができることを知った.

sleep 20m
echo "wake up"

という風に単位を追加すると,上の例だと20分間スリープさせることができる.

やっぱりダメかも

昨日RAIDが死んで,色々やった結果復活したと思ったが,やはりいくつかファイルが壊れていたようだ.

特に痛いのが,RAID上に作った大きな仮想マシン用ディスクイメージ.
どうやらこれがダメージを受けていたようで,仮想マシンのファイルシステムがおかしくなっていた.

gitのリポジトリ内のファイルがおかしくなっていたのは痛い.
仕方ないのでマウントを外した上で fsck をかけてみている.

RAIDが死んでも一旦挿しなおしてみよう

今日RAID 6で運用しているRAIDのHDDが3つ同時にエラーランプ点灯した.
RAID 5ではHDDが2台同時に壊れたらアウト,RAID 6では3台同時に壊れたらアウトなので,かなり焦ったが,一旦取り出して挿し直したら復活…(?)

一応データは大丈夫っぽいけど,念の為にバックアップを取って,エラーが出てたHDDを取り替えて再構築しよう.

しかし容量が大きすぎてバックアップ取るのに時間がかかる….

avastが悪かった(?)ようだ

自宅のWindows7が入っているPC,しょっちゅう起動時にブルー・スクリーンで落ちて,再起動→スタートアップ修復の繰り返しだった.

これまでアンチウイルスソフトとして,無料のAvast!を入れていたが,試しにアンインストールしてみたら,上記症状がでなくなった(今のところ).

代わりにMicrosoft謹製のMicrosoft Security Essentialsを入れてみた.

しばらくこれで様子を見てみる.