Total FinderみたいなものをOSX El Capitanで実現する

OSXがEl CapitanになってからTotalTerminalが動かなくなった. なので,Alfredの呼び出しを使ってみたり,iTerm2のホットキーを使ったりしていた. ただ,困ったことに,違うアプリを全画面表示しているときに同じウィンドウでターミナルが呼び出せない. 全画面表示していても,それの上にターミナルを呼び出したい. iTerm2をいじったらできた.

iTerm2のホットキーを設定する

  1. Preferences --> Keys --> Hotkey の「Show/hide iTerm2 with a system-wide hotkey」にチェック
  2. 「Hotkey:」の欄にお好みのショートカットを入力
  3. 「Hotkey toggles a dedicated window with profle:」の欄にチェックして,下のメニューから「Hotkey Window」を選択

iTerm2をLSUIElementをtureにする

>> defaults write [iTerm2のインストールパス]/iTerm.app/Contents/Info LSUIElement true

左いっぱいに広げたり,下いっぱいに広げたりする

  1. Preferences --> Profiles --> Hotkey Window の「Style:」を好みによって変える
  2. 「Space:」を「All Spaces」にする

Package babel Error: You haven't defined the language en yet.

Latexでタイトルのようなエラーが出た. bibファイルの中にLanguageがあると出るみたいなので全部消した. Mendeleyでbibファイルを管理している場合,Property --> Document Details --> Journal Article (もしくは編集したい論文の種類) --> Languageにチェックで編集できる.

ValueError: Found array with dim 3. Expected <= 2

Scikit-learnでこんなエラーが出たら結構面倒なことになる. 0.15から起こるエラーらしくて,sklearnが受け付ける特徴ベクトルをn_samples x n_featuresのみに制限している. つまりXとして,行列しか受け付けないよ,ということらしい.

sklearn.utils.shuffle does not work with arrays of dim > 2 · Issue #4145 · scikit-learn/scikit-learn · GitHub

上のリンクの議論を読むと,たぶん,このままの仕様で進むと思われる. なので,「allow_ndというパラメータをいじる」という暫定的な解決策ではなくて,自分で定義した特徴抽出器,識別器に工夫する方が多分良い.

僕の場合,特徴抽出の段階ではサンプルとして行列(つまり3次元行列)を入力としていたので,入力の段階ではベクトルに直して,抽出器に入力されたときに,頑張ってreshapeを入れた.

こんなふうに仕様がころころ変わるのは解せない.

MacのOctaveでPTBを起動する

よく分からないけど,突然MacのPTBが使えなくなったので検索すると以下のページが出てきた.

4 MacのOctaveでPTBを動かすときの注意点

これによるとOctaveを起動する前にDYLD_LIBRARY_PATHの設定が必要なようだ. 僕の環境の場合,HomebrewでOctaveをインストールしたので,

>> export DYLD_LIBRARY_PATH=/usr/local/lib/octave/3.8.X

とすれば良かった.

いちいち打つのが面倒な場合は,~/.bashrcや~/.zshrcなどに

alias octave="DYLD_LIBRARY_PATH=/usr/local/lib/octave/3.8.X; octave"

と追記する.

ちなみにiMac 5K retinaだと,PTBは,Screen(0, 'OpenWindow') で引っかかって動かないけど,外部ディスプレイにすれば一応使える. あと,tmux上で起動するとPTB-Warningが何個か出る.