Word を起動した時に「shredder.osi.office.net/shredderservice/api/aadgraph/gettenantdetails」へのサインインダイアログが表示される

Office 365 Business の契約で使えるデスクトップ版 Word を起動した時に次のようなサインインダイアログが表示されるようになってしまいました。

f:id:k-side:20161214145656p:plain

「なんだこれ」と思いググったところ、Microsoft の英語圏コミュニティで解決策が示されていました。

作業としては次のような感じ。

  • Word で表示されるダイアログをバツで消してから「ファイル」→「アカウント」→「サインアウト」とたどって Office 365 からサインアウトする

f:id:k-side:20161214151404p:plain

  • コントロールパネルから「資格情報マネージャー」を開く

f:id:k-side:20161214151401p:plain

  • 「MicrosoftOffice15_Data」または「MicrosoftOffice16_Data」で始まる資格情報を「資格情報コンテナーから削除」

f:id:k-side:20161214151400p:plain

  • 必要に応じて Word からサインインする

f:id:k-side:20161214151402p:plain

これで件のサインインしてっていうダイアログが出てこなくなります。

debian で VS Code が起動できなかったのでライブラリをいじった

さくらのクラウドに X 環境構築してローカルから接続して開発とかどうだろうって遊ぼうとしたら VS Code が起動できなかった時のメモ。

環境は次の通り

deb ファイルから VS Code をインストールして、メニューから起動させようとしても何も起こらない。
tar ファイルを落として解凍して起動しようとしたら次のようなエラーが発生して起動しませんでした。

Xlib:  extension "XInputExtension" missing on display ":11.0".
Xlib:  extension "XInputExtension" missing on display ":11.0".
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
bash: cannot set terminal process group (-1): Inappropriate ioctl for device
bash: no job control in this shell
Xlib:  extension "XInputExtension" missing on display ":11.0".
Xlib:  extension "XInputExtension" missing on display ":11.0".

既に GitHub の vscode リポジトリでは issue が作られていて、解決法も掲載されていました。

んで、次のような操作でとりあえず起動ができます。

$ mkdir ~/lib
$ cp /usr/lib/x86_64-linux-gnu/libxcb.so.1 ./lib/
$ sed -i 's/BIG-REQUESTS/_IG-REQUESTS/' ~/lib/libxcb.so.1

この ~/lib ディレクトリを LD_LIBRARY_PATH に突っ込むと起動します。

$ LD_LIBRARY_PATH=$HOME/lib code

GUI から起動するメニューの内容も変更しておかないと GUI のメニューからは起動できません。

$ sudo vi /usr/share/applications/code.desktop

[Desktop Entry] の中にある Exec を変更します。

Exec=sh -c "env LD_LIBRARY_PATH\=\$HOME/lib  /usr/share/code/code" %U

これで GUI のメニューからも起動できるようになりました。

mikutter を起動した瞬間にろき氏をブロックするプラグインを書きました

一部で被ブロック芸人として知られ、[被ブロック数n件達成イベント]などが開催されているろき氏、そんな彼をブロックするためのプラグインmikutterにあるのかと作者の人に尋ねてみましたが、どうやら無いようだったので作ってみました。

ブロックするプラグインはないことと同時に mikutter プラグインの中でブロック関係の処理をしているプラグインを教えていただいたのでそれを参考にしています。

このプラグインでは mikutter が起動した段階でブロックリクエストを送ります。
ブロックリクエストは、すでにブロックしているユーザーに対して行ってもエラーにならないようなので、ブロックをチェックせずにリクエストを送ることができました。

プラグインがこの形になってから数時間経っていたのですが、mikutter で認証しているアカウントと、ブロックの状況を確認しているアカウントが違っていたので「ブロックできていない」と思ってしばらく悩んでいました。
確認重要…。

なお、自分はろき氏をフォローもブロックもしておりません。ご了承ください。

Zabbix サーバーを仮想マシンから実機に移動する

ちょっと仮想マシンを別のことに使いたくなったので、Zabbix サーバーを実機に移動してみました。
今までだとまっさらな環境からスタートするのですが、今回は保存されているデータごとごっそり移動してみた記録です。

ざっくりとした移行プランは次のような感じ。

  • 新サーバーに Zabbix と MySQL をセット
  • 旧サーバーの Zabbix を停止
  • 旧サーバーのデータベースをエクスポート
  • スクリプトを新サーバーにコピー
  • 旧サーバーをシャットダウン
  • 新サーバーへデータベースをリストア & Zabbix Server の再起動
  • 新サーバーの IP アドレスを旧サーバーのものにセット

クッソ長いので注意。 あとパスワードは適当な文字列なのでちゃんとセットしないとひどい目に遭います。

続きを読む

QGIS の QTiles プラグインを使えるようにした話

タイルサーバーの画像を拾ってきて結合して使いたかったのですが、 QGIS の QMetaTile プラグインは動かないし、 QTiles は一覧にないし…だったので QTilesGithub から取ってきて使えるようにしてみました。

環境は Windows 7 x64 で QGIS 2.16.3 を使ってます。

Git が使えるコンソールでリポジトリをクローンする(ウチの場合は PowerShell)

PS> git clone https://github.com/nextgis/QTiles

そのままビルドすると No module named qgscollapsiblegroupbox というエラーで泣かされるので QTiles\ui\qtilesdialogbase.ui の997行~1003行あたりを編集する。 デフォルトでは次のような感じ

 <customwidgets>
  <customwidget>
   <class>QgsCollapsibleGroupBox</class>
   <extends>QGroupBox</extends>
   <header>qgscollapsiblegroupbox.h</header>
   <container>1</container>
  </customwidget>

ここの header 要素の中身を書き換えて

 <customwidgets>
  <customwidget>
   <class>QgsCollapsibleGroupBox</class>
   <extends>QGroupBox</extends>
   <header>qgis.gui</header>
   <container>1</container>
  </customwidget>

てな感じにすると良いよってナレッジがあった。

Python 関連で一番環境がいい OSGeo4W Shell を起動してビルドする

C:\> B:
B:\> cd b:\build\QTiles

Makefile.bat が上手く動かなかったので手動で順番に実行する

b:\build\QTiles> cd ui
b:\build\QTiles\ui> pyuic4 -o ui_aboutdialogbase.py aboutdialogbase.ui
b:\build\QTiles\ui> pyuic4 -[f:id:k-side:20161011120435p:plain]o ui_qtilesdialogbase.py qtilesdialogbase.ui
b:\build\QTiles> cd ..
b:\build\QTiles> pyrcc4 -o resources_rc.py resources.qrc
b:\build\QTiles> lrelease i18n\qtiles_ru_RU.ts
b:\build\QTiles> cd ..

lrelease コマンドはどっちにしろロシア語しかないので実行しても意味ないかもしれない…。

Makefile.bat によるといくつかのファイルやディレクトリはいらないようなので削除しておく。
面倒だから削除しなかったんだけどイケた。 *.pyc だけはあったら削除しておいたほうがいいかもしんない。

\*.pyc
\*.ts
\*.ui
\*.qrc
\*.pro
\*~
\*.git\*
\*.svn\*
\*Makefile*

最後に QTiles ディレクトリをプラグインディレクトリにコピーする。
プラグインディレクトリは ~\.qgis2\python\plugins って感じの場所にあるはず。

QTiles を使う時にはオンザフライ変換(OTF)を無効にしておかないとエラーが出るっぽい。

とりあえずウチの環境ではこれで動いたった。

f:id:k-side:20161011120435p:plain

仮想マシンの FreeBSD を 10.3-RELEASE から 11.0-RELEASE にした話

たまたま BSDsec を見たら11.0-RELEASE のコピーが FTP に乗ってるけどまだ正式アナウンスじゃないからアップグレードするなよって記事が9月28日に出てたので、我慢できずにアップグレードしちゃいました。
良い子は10月5日頃にあるという正式アナウンスを待ってアップグレードしましょう。

アップグレードした FreeBSDdebian 上で動作する仮想マシンにインストールしたものです。
カーネルは自前でコンパイルしたものではなく、デフォルトでインストールされたものに freebsd-update で更新を続けたものになります。
この FreeBSD は hubot をいくつか実行しているだけの仮想マシンになります。docker でやれって話ですが。

続きを読む

My Yahoo! の移行先を考えてたら新しいフィードサービスの中からリプライがあった

ニュースを読むのに使っていた My Yahoo! が今年の9月29日にサービスを終了するという予告をしています。
使い込んでいたわけではないですが、ニュースや天気を見るのに便利だったので何かほかのサービスあるかなーといツイートしたわけです。

どうやらツイートした日と同じ日に Feed Watcher というサービスが開始されたらしく、そのサービスの Twitter アカウントからリプライをいただきました。

My Yahoo! をはじめ OPML で出力できるサイトの情報であれば移行できるみたいです。

そんなわけで、使ってみることにしました。

f:id:k-side:20160915220754p:plain

ログインしなくても使える風なことが書かれています。

f:id:k-side:20160915220755p:plain

Feed Watcher では専用のアカウントを作る必要はなく、FacebookTwitter GoogleYahoo!アカウントのどれかから連携する形で設定を保存するようです。

f:id:k-side:20160915220753p:plain

Twitter で連携しようとすると次のような権限の要求されました。

f:id:k-side:20160915220756p:plain

アカウントの連携をするとあらかじめ登録されているフィードが表示されます。

f:id:k-side:20160915220757p:plain

右上の歯車でいくつか設定したり OPML の読み込みをしたりできるようです。

f:id:k-side:20160915220758p:plain

適当にカスタマイズして使ってみようかと思います。

ところで、iGoogle にせよ、My Yahoo! にせよ大手のフィードサービスが停止している中新たに始まったこのサービスがどれくらい続いていくのか、その辺もちょっと気になります。