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! にせよ大手のフィードサービスが停止している中新たに始まったこのサービスがどれくらい続いていくのか、その辺もちょっと気になります。

2020年東京オリンピックの会場予定地の OSM 書き込み状況をざっくり調べた

会場予定地の名称と住所は東京都オリンピック・パラリンピック準備局ウェブサイトから引用し、住所を東京大学空間情報科学研究センターが提供するCSVアドレスマッチングサービスによってジオコーディングした結果を Getofabrik の Map CompareGoogle Maps と並べて表示させて確認しました。
引用した情報とOSM状況は2016年9月9日の状況です。状況のコメントは偏見で判定しました。

会場工事が行われる、または見込まれるところは立て替え後でないと編集できないかもしれませんが、一部建物や土地利用を追加した方がいいっぽいところがありました。
ちょっと早い気もしますが、ぼちぼち書き込んでいくと開催時にはいい感じの地図になっているかもしれません。

名称 住所 OSM状況
新国立競技場 東京都新宿区霞ヶ丘町10番地2 会場工事で更新が必要
東京体育館 東京都渋谷区千駄ヶ谷一丁目17番1号 良好
国立代々木競技場 東京都渋谷区神南二丁目1番1号 良好
日本武道館 東京都千代田区北の丸公園2番3号 良好
皇居外苑 - 良好
東京国際フォーラム 東京都千代田区丸の内三丁目5番1号 良好
国技館 東京都墨田区横網一丁目3番28号 良好
有明アリーナ 東京都江東区有明一丁目(有明北地区) 会場工事で更新が必要?
有明体操競技 東京都江東区有明有明北地区) 会場工事で更新が必要?
有明BMXコース 東京都江東区有明有明北地区) 会場工事で更新が必要?
有明テニスの森 東京都江東区有明二丁目2番22号 良好
お台場海浜公園 東京都港区台場一丁目 良好
潮風公園 東京都品川区東八潮1番地 良好
大井ホッケー競技場 東京都品川区八潮四丁目1番19号 良好
海の森クロスカントリーコース 東京都江東区青海三丁目地先 良好
海の森水上競技場 東京都江東区青海三丁目地先 良好
カヌー・スラローム会場 東京都江戸川区臨海町六丁目1番 良好
アーチェリー会場(夢の島公園 東京都江東区夢の島二丁目地内 良好
オリンピックアクアティクスセンター 東京都江東区辰巳二丁目1番35号 良好
東京辰巳国際水泳場 東京都江東区辰巳二丁目8番10号 良好
馬事公苑 東京都世田谷区上用賀二丁目1番1号 良好
武蔵野の森総合スポーツ施設 東京都調布市飛田給一丁目1番41号 会場工事で更新が必要、建物不足
東京スタジアム 東京都調布市西町376番地3 建物不足
さいたまスーパーアリーナ 埼玉県さいたま市中央区新都心8番地 良好
陸上自衛隊朝霞訓練場 東京都練馬区大泉学園町九丁目4番 建物不足
幕張メッセ 千葉県千葉市美浜区中瀬2丁目1番地 良好
埼玉スタジアム2002 埼玉県さいたま市緑区中野田500 Landuseほしいかも
横浜国際総合競技場 横浜市港北区小机町3300 良好
東京ビッグサイト 東京都江東区有明三丁目11番1号 良好