生物と計算機のあいだ

個人的にうまくいったかなとおもったことを書いています。うまくいかなかったらごめんなさい。

emacsでsudo権限を使わないとファイルが編集できない

解析用のLinuxマシンを用意してもらったので、いろいろと設定をして、さぁ使い始めようと思い、スクリプトファイルを書こうと思ったらemacsの挙動がおかしい。。

$ emacs -nw hogehoge.py

と書いているのに、言語が表示される部分にはFundamentalと出るし、バッファの部分には"~/.emacs.d already exists"と表示されます。

こんなエラーには初めて出会ったので、作りたいファイルの保存先のディレクトリの権限かなとか思って権限の変更を試みましたが、解決はせず。。

いろいろと調べていたところ、.emacs.dのファイルの所有者がrootになっていることが問題だという記事を見つけました。 どうやら、最初にemacsを使って編集したファイルが環境構築をするにあたり重要なrootで管理されているファイルだったため、sudoでemacsを立ち上げた時に自動生成したことが問題だったみたいでした。 とくに.emacs.dを編集していないのであれば削除してもいいし、chwonで所有者情報を書き換えても問題が解決できるみたいです。

$ sudo rm -r ~/.emacs.d

$ sudo chown -hR <groupname>:<username> .emacs.d/

ローカル環境(windows7 64bit)でのpukiwikiのセットアップ

研究のメモとかをmarkdownで書いていたのだけど、wiki形式で管理したほうが管理しやすそうだし、環境を研究室のサーバーに移植すれば、他の人とも情報共有ができて便利かなと思ったので、まずはお試しとしてローカル環境でPukiwikiを立ち上げてみることにしました。(最近PHP5.5に対応したらしい)

構築環境は "Windows7 64 bit"

必要な物は以下の3点
XAMPP for windows ver. 1.8.3
pukiwiki 1.5.0
・諦めない気持ち ←これ超重要

最初はXAMPPの存在を知らなくて、ネットに落ちてるエントリーを見ながら、ApachePHPを自分でインストールして環境構築をしました。Apacheは問題なく動くし、PHPのインストールも難なく終了したようだったので、期待に胸を膨らませてpukiwikiのindex.phpを見ようとすると、まさかの"404 Not Found"... 設定をどういじればいいのかを知るためにいろいろ記事を読んでいたらこんな記事に出会いました。
Windows環境にローカルのウィキを設置する方法その2(伯) : 案とヒント@blog
かなり行き詰っていたので、仕切り直しでXAMPPを導入することにました。しかし、Apacheを自力でインストールしていたことが仇となることに。。(前エントリー参照)

では、やったことを手短に説明します。(写真がなくてすみません)

  1. ダウンロードしたXAMPPのインストーラーをダブルクリック
    インストーラーの指示にしたがって、Cドライブ直下にインストールします。(インストーラーの指示にしたがってNextをクリックしていれば大体うまくいきます。)

  2. XAMPPを起動(管理者権限で実行すると間違いないです) XAMPPのアイコンを右クリックしてプロパティの変更画面から常に管理者として実行するように設定できます。

  3. Apacheを起動 Apacheの横にあるスタートボタンを押します。windowsファイアウォールの注意画面が出ますが、許可します。

  4. ブラウザで"http://localhost"にアクセス
    画面で日本語を選択して以下の様な画面が出れば成功です。

f:id:Vlpius:20140826141648p:plain

  1. pukiwikiのzipを"pukiwiki"という名前で"c:\xapp\htdocs"に展開

  2. "c:\xampp\htdocs"が"http://localhost"になっているので、"http://localhost/pukiwiki"にブラウザでアクセス 以下の様な画面がでればうまく行っている証拠です。

f:id:Vlpius:20140826143859p:plain

これで終了です。
ぼくはこれから頑張って設定します。

XAMPPのApacheで起動時にエラーが出た時の対処法

XAMPPでApacheを起動しようとしたら

Found Path: "c:\Apache24\bin\httpd.exe" -k runservice
Expected Path: "c:\xampp\bin\httpd.exe" -k runservice

とのエラーが出た。どうやらちょっと前に単体でインストールしたApacheが悪さをしている模様。
環境変数とかにもApacheの文字列は見当たらないし、最終奥義のレジストリ編集という技を使ったらエラーが吐かれることなくApacheが起動できるようになった。
編集したのは
HKEY_LOCAL_MACHINE -> SYSTEM -> CurrentControlSet -> services -> Apache2.4 ->ImagePath の値

値を"c:\xampp\bin\httpd.exe" -k runservice に変更

これで万事解決。 ただ、レジストリの書き換えは怖いのであまいやりたくない。

f:id:Vlpius:20140826135855p:plain

時系列変化画像のバイナリ化 (MATLAB)

研究で画像データを扱っていると、非ゼロのピクセルを1に置き換えてバイナリデータとして扱いたい時がある。

matlab 画像 バイナリ化”とかでググるとim2bwの解説にたどり着くことが多いが、閾値どうこうではなくて一括で変換したい(ピクセルの値が0か非ゼロかが重要)。

A(A>0) = 1;

のような感じで論理式を用いても値の変換もできるが、この方法では型がlogicalに変換されないし、時系列データのような3次元のデータではタイムポイントでfor loopをかけなければいけないし、めんどくさい。

こんなときに便利なのがlogicalという関数。

A = logical(A):

と書くだけで非ゼロを一括で1に変換してくれる。多次元の配列にも対応してくれるので非常に便利だった。

関数名を見ればbinaryというよりもbooleanという感じなので、バイナリ化というキーワードで引っかからなかったのもしっくりきた。ここらへんの厳密な使い分けがちゃんと出来るようになりたい。

.gitignoreを更新する

.gitignoreを一度書いて、"git add ." とかしたのはいいものの、無駄なものを取り除ききれていないことなどがたまにある。 そういった時はインデックスを一度削除してから再push。もっとスマートなやり方があるとは思うけど、うまくいってるのでとりあえず良しとする。

git rm -r --cached .
git add .
git commit -m ".gitignore is now working"
git push origin master

※ git rm -r --cached . をするとコミットしていないコードの変更も消え去ってしまうので要注意

Finderのサイドバーを英語化する

MacのFinderのサイドバーがカタカナ表示なのが格好悪いのでPCの使用言語は日本語のまま、英語にします。 ターミナルで一行ずつ実行していきます。

cd /System/Library/CoreServices/SystemFolderLocalizations/ja.lproj sudo mv /ja.lproj/SystemFolderLocalizations.strings /ja.lproj/SystemFolderLocalizations.strings_ori sudo cp /en.lproj/SystemFolderLocalizations.strings /ja.lproj/ killall Finder

なんと簡単。英語になってなんだかスタイリッシュさ5厘増しくらいですね。

ディレクトリ名変更に伴うMATLAB起動時のエラーへの対処

環境: MATLAB 2013a
MATLABを使用する際に使っているディレクトリ名変えたら、起動時にそんなディレクトリねぇぞ!!!と怒られた。
毎回起動時にそんなこと言われるのはつらいので、その対処法です。再インストールしてもいいけど、原始的ですね。

/Applications/MATLAB/MATLAB_R2013a.app/toolbox/local/pathdef.m

上記のファイルはパスの名前からも明らかですが、toolboxの場所を指定しています。
こいつは読み出し権限しかないので、まずはsudoで書き込み権限を与えます。
つぎに前のディレクトリ名を変更後のディレクトリ名に置換します。emacsならM-x replace-stringでずばばばっとできちゃいます。 MATLABを起動して、waringが出ないことを確認したら権限をもとに戻しておしまいです。