CentOS7でPyROOT環境を作る。

matplotlibが見た目も良い上にヒストグラムも書けるので気に入っている。
しかし、リアルタイムモニタを作るにあたって、インクリメンタルにヒストグラムを積み上げていく必要があり、matplotlibには、その方法が見当たらなかった。ここは素直にROOTを使うことにした。


CERNの公式サイトから、下記のバージョンをダウンロード
Version 6 - Release 6.04/14 - 2016-02-03
解凍したファイルは、/user/localへコピーしておく。

# cp -r root /usr/local/


LD_LIBRARY_PATHとPYTHONPATHを設定する。

vim ~/.bashrc


export ROOTSYS=/usr/local/root_6.04.16
export PATH=$ROOTSYS/bin:$PATH
export LD_LIBRARY_PATH=$ROOTSYS/lib:$LD_LIBRARY_PATH
export PYTHONPATH=$ROOTSYS/lib:$PYTHONPATH


ROOTSYSは適宜書き換える。
basicはシェルの起動毎に読み込まれるので、 シェルを再起動する。


ROOTがPythonでインポートできるか確認

$ python
>>> import ROOT
ERROR in cling::CIFactory::createCI(): cannot extract standard library include paths!
Invoking:
echo | LC_ALL=C c++ -pipe -m64 -Wall -W -Woverloaded-virtual -fsigned-char -fPIC -pthread -std=c++11 -Wno-deprecated-declarations -Wno-comment -Wno-unused-parameter -Wno-maybe-uninitialized -Wno-unused-but-set-variable -Wno-missing-field-initializers -fPIC -fvisibility-inlines-hidden -std=c++11 -ffunction-sections -fdata-sections -fno-common -Woverloaded-virtual -Wcast-qual -fno-strict-aliasing -pedantic -Wno-long-long -Wall -W -Wno-unused-parameter -Wwrite-strings -O2 -DNDEBUG -xc++ -E -v - 2>&1 >/dev/null | awk '/^#include
^
input_line_3:38:10: fatal error: 'string' file not found
#include


とか言われる。C++が無いと言っているので、

# yum install gcc-g++
してgcc-c++-4.8を入れる。

もう一度


>>> import ROOT

何も返ってこないので、うまくインポートできた。

以下のプログラムファイルを作成


$ vim test-hist.py
from ROOT import TH1F,gRandom,TNamed

h1 = TH1F('h1','test hist',100,0.,10.)
for i in range(0,100000):
h1.Fill(gRandom.Gaus(5.,1.))
h1.Draw()
while 1: pass

$ python test-hist.py

ヒストグラムが表示できた♪

MacでwxPython matplotlibの環境を整える。

まずはMac版のPython2.7をインストールする。公式サイトからMac用の.pkgファイルが配布されているので、DLしてインストール。

インストール後、easyinstallでWxPyhtonを入れようとしたがうまく行かず、
結局wxPythonも.pkgファイルを落としてきた。ただしこれは「パッケージが壊れているため、、、」みたいなことを言われて開けない。Macの設定、セキュリティとプライバシーの項目からダウンロードしたアプリケーションの実行許可で、すべて実行可能にすればインストール可能だった。

matplotlibもeasyinstallで入れようとしたがerrorがでてうまくいかない。
正解はpipを使うらしい。

$ sudo pip install matplotlib
上記のコマンド一発で必要な依存物も入るようだ。
テストコードを走らせたら、グラフが表示できた。

LinuxWindowsでも同様の作業を行ったが、matplotlibのインストールで必要な依存物が入らずて手こずった記憶しかない。
easy_insatallよりpipのほうが優秀?
違いがわからないので、簡単に調べてみた。
pipはeasy_installの強化版らしい。
詳しくはググってくれ。

SSDを換装した。

もともとIntelの240GBを使っていたけど、容量的が厳しくなってきたのでCrucial (Micron)の512GBに換装した。

作業の途中、新品のSSDのパーティッションテーブルを、GPTにしてバックアップの復元ディスクから環境を戻したところ、
「このバージョンのシステム回復オプションは、修復しようとするWindowsのバージョンと互換性がありません。このバージョンのWindowsと互換性のある回復ディスクを使用してください」
とか言われて進まない。
MBRに変更したら、問題なく進めた。

使っていたのはWindows7 SP1 64bitで、GPTに対応しているはずなので多少疑問が残る。もしかしたら、復元のパーティッションテーブルと同じものを使わないといけないのだろうか?

CrystalDiskMarkでのベンチマークも、シーケンシャルで520MB/secほど出ている。他のベンチマーク結果と相違なく満足している。

MAVICオイル注入!!!

[注意]作業に不安がある方は購入したショップでメンテナンスを依頼してください。このエントリーを読んで作業した結果、生じた不具合について当方は一切責任をとりません。参考にされる方は自己責任で作業してください。


1.はじめに

決戦車(そもそもガチでレースには出ていないが)のMADONE5.2には、MAVICのコスミックカーボンSLSを使っています。MAVICのホーイールに共通の仕様ですが、フリーには定期的に通称”MAVICオイル”の注入が必要です。注入時期については諸説ありますが半年〜1年毎、もしくはラチェット音が乾いてきたらと言うのが一般的です。

あと、私は作業後に見つけたのですがMAVICの公式メンテナンスブックがWebで公開されています。下記URL(PDF)の最後の方にメンテナンス方法が記載されています。初めて作業される方は、参考にしてください。
http://www.tech-mavic.com/tech-mavic/technical_manual/data/docs/themes/2_19.pdf


2.分解方法

Webをあさると、両側から突っ込んでバラす方法が紹介されていますが、私のコスミックカーボン2013モデルには反フリー側に引っかかりがなく、緩めることができませんでした。
自分のホイールを観察すると、フリー側にナットが付いていました。怪しいと思い、めがねレンチで緩めると、シャフトを緩めることが出来ました。写真のように作業すればフリーボディーを取り外すことができます。


3.MAVICオイル注入

清掃後、奥に入っているパッキン、ラチェットの爪、フリーボディの内側の爪、ベアリング周辺にMAVICオイルを挿していきます。ハブに入れる潤滑油といえば、粘性の高いグリスが一般的ですが、MAVICがこれを使用していないのは、グリスが固着してラチェットの爪が上がらなくなること(MAVICの人が言っていた)、ダストカバーに使っている樹脂パーツの侵食を避けるため(どっかのブログ記事で読んだ)だと言われています。


4.組み立て(トラブル発生)

分解と逆の手順で組み立てます。ここでトラブルが発生しました。
シャフトにはスペーサーが付いていて、片面にテーパーが付けてあります。取り外した時は、テーパーが咬み合わない方向に取り付けられていた(これが間違い)と記憶していたので、テーパーが合わない方向に取り付けることに疑問を感じつつも、仮組みして軽くナットを締めてみました。しかし、反フリー側が飛び出ているので間違えに気づき、あわててスペーサーの向きを治そうとししました。でもこの時点で完全にハマり込んでしまい、どうにも取り外せません。いろいろ試しましたが最終的には新しい部品と交換することにしました。


5.部品取り寄せ

いつもお世話になっているショップに事情を話し、部品を取り寄せてもらうことにしました。少々迷惑かなぁ
と思いつつ、「自転車はいじるのも趣味のうち!失敗だってするさ!」と思いお願いしました。
場合によりますが、オーダーを出してからおおむね1〜2営業日で出荷されるそうです。
以下が取り寄せたシャフトです。なんとメイドinルーマニアでした。
あと、取り寄せたシャフトにはトラブルの元凶となったスペーサーは付いていませんでした。長さを測ると、写真のように新シャフト=旧シャフト+スペーサーだったので、対策がなされたようです。私のように逆に取り付けてシャフトを駄目にする人がたくさん居たんでしょう(勝手な想像です)
ちなみにお値段は税別6000円だったと思います。若干割高な感じもしますが、スモールパーツが割高なのは世の常なので仕方ないですね。(利益率、在庫管理/物流コストを考えると妥当とも考えられますが、、、)



6.改めて組み立て

改めて組み立てます。先述のMAVICのメンテナンスブックによると、締付けトルクは10[N·m]と規定されているので、規定値通りトルクレンチで締めます。あとはスプロケットを取り付けてMAVICオイルの注入は作業完了です。
最後にディレイラーの調整をします。意外と大きくズレていて、2.5〜3回転ほどアジャスターを回しました。



7.まとめ

ということで、簡単なはずの作業が思いの外時間がかかってしまいました。お店には少々迷惑だったかもしれませんが、無事に交換部品を入手できて、楽しく愛車のメンテナンスが出来ました。部品代はかかってしまいましたが、これで出来る作業が増えたと思えば妥当な金額です。


8.おまけ

反フリー側についていたベアリングの写真です。
普通にNTNのベアリングが付いていました。特に圧入されているわけではなく、シャフトを取ったら一緒にくっついてポロッと取れました。(フリー側は圧入されているかもしれません)ベアリングがダメになったらベアリングだけ買ってきて交換ができますね。(サーチコストを考えれば、自転車屋さんに発注したほうが安いかも、、、)
ちなみに型番は”690ILU”でした。

Mac(OSX10.9)でROOTをインストール

Mac(OSX10.9)でROOTをインストールする。
最初にROOT公式サイトから、Macコンパイル済みのファイルをダウンロードする。

OSX

OSX 10.9 x86-64 with clang 5.1, version 5.34.23 (56 MB).

ダウンロードが終わったら、ホームディレクトリ(/Users/hoge/
)にダウンロードしたファイルを移動。バージョンを明確にするために、ディレクトリ名をroot-v5.34.23に変更。


/usr/localからシンボリックリンクを作る。

sudo ln -s /Users/hoge/root-v5.34.23/ root
ホームディレクトリにある、root-v5.34.23に、rootという名前でシンボリックリンクリンクを作る。

.bash_profileの変更。
ホームディレクトリに無ければ作る。

$ touch .bash_profile
$ vim .bash_profile

以下を追加

export ROOTSYS=/usr/local/root
export PATH=${ROOTSYS}/bin:${PATH}
export DYLD_LIBRARY_PATH=${ROOTSYS}/lib:${DYLD_LIBRARY_PATH}
export PYTHONPATH=${ROOTSYS}/lib:${PYTHONPATH}

コンソールを一度閉じて、再度開いて

$ root
これでROOTが立ち上がればOK

試しにヒストグラムを描画してみる。

root [0] TH1F  *h1 = new TH1F("h1", "h1 title", 100, -3, 3)
root [1] h1->FillRandom("gaus", 10000)
root [2] h1->Draw()
root [3] .q

sambaサーバー Macクライアントから接続すると項目”xxxxxxxx”が使用中なため、操作は完了できません。と警告が出てファイルコピーできない。対処法

sambaサーバーで、Macのクライアントから接続したときに、項目”xxxxxxxx”が使用中なため、操作は完了できません。と警告が出てファイルコピーできない。

どうやらOS X Marverics (10.9)の仕様変更が影響しているようだ。

とりあえず、接続するときに

smb://hogehoge.hoge.jp
を、
cifs://hogehoge.hoge.jp
にすれば良い。

それでもだめなら、smb.confのグローバルに

サーバのsmb.confの[global]部分に

unix extensions = no

を追加する。