YOwatari's blog

思うままに。

tmuxの中でpyenvが効かない時

tmux上で何気なくpython --versionしてみたら,pyenvのバージョンと一致してないことに気づいた.

そんなときは,/etc/zshenvを下の通りに変更するとおk

# system-wide environment settings for zsh(1)
if [ -x /usr/libexec/path_helper ]; then
    if [ -z "$TMUX" ]; then
        eval `/usr/libexec/path_helper -s`
    fi
fi

プロクシ越しにsshしたい

sshしたいのにプロクシに阻まれて(´・ω・`)

そんな時は,connect.cをコンパイルして~/.ssh/configの設定を変えればいいのさ!とのこと

connect.cは↓から手に入れます http://www.meadowy.org/~gotoh/ssh/connect.c

後は,コンパイルすれば使えます

gcc connect.c -o connect -lresolv

が,

コンパイルが通らない(OSX 10.9環境)ので,どうしたものかと思ったらhomebrewからインストールできました

brew install connect

あとは,~/.ssh/configに以下の1行のようにプロクシ設定を書けば,おk

ProxyCommand connect -H http://【proxydomain:port】 %h %p%

Anacondaをpyenvで管理する

Anaconda

Python本体に科学技術計算や可視化のライブラリを組み込んだディストリビューションパッケージであるContinuum Analytics社の製品Anacondaをインストールしてみることにした。

Python Visualization and Data Exploration - Continuum Analytics

NumPyやSciPy、Matplotlibが入っていますし、自然言語処理向けのツールであるNLTKも入ってます。 これさえ入れてしまえば、IPython notebookで行列計算やグラフ表示が楽々!

Win/Mac/Linuxそれぞれの環境で利用可能で、インストーラーの指示に従えばすぐに使える点も魅力的です。

有料のアドオンで、GPUやマルチコアプロセッサによる高速化なんかできるものもあります。お高いですが。 アカデミックフリーなので、使ってみたいところ

pyenv

複数バージョンを想定したプログラムとか書かないしーという理由で、長らくvirtualenvとvirtualenvwrapperだけで、環境を切り替えて使ってました。

Anacondaを入れるついでに、Pythonのセットアップツールを使ったほうが良いなと思い立ったので、あれこれ調べてみて、pyenvが良さそうだったので、pyenvを使っています。

特定のディレクトリでだけ、指定のバージョンやvirtualenvを使えるようにできて、毎度workonとかコマンド打つ必要もなく便利です。

http://blob.geishatokyo.com/archives/148611

pyenvでAnacondaを管理するのは楽ちん インストール時に、インストール先を.pyenv/versionsに指定してあげるだけです インストーラーを使ったら、インストール先の変更で.pyenvが見えない見えづらいだったので、シェルスクリプト版で入れました。 あくまで、Macでの話なので、他の環境ではわかりませんが、概ね同じだと思います。

あとは、anacondaを使いたいディレクトリで、pyenv local anacondaとしてやるだけで、使えるようになります。 超便利。

f:id:wata88:20130804200840p:plainf:id:wata88:20130804200838p:plain

Alfred2でGoogleサジェスト

AlfredというMac向けのランチャーアプリを使ってるのですが、その中でWorkflowという拡張機能みたいなものがあります。
有料ユーザのみが使える機能ですが、せっかく課金したので、Workflowを作りました。

Google検索+サジェスト

元々、exampleにGoogleSuggestというサジェスト機能つきのGoogle検索できるWorkflowがあります。
exmapleは大体phpで書かれてるっぽい。
Workflowは、シェルスクリプトを始めphp,perl,ruby,pythonといったスクリプトで、Alfredから受け取った文字列(クエリー)を処理できる。
exampleでは英語優先だったので、日本語優先にします。
URLいじるだけでいいかと思ったら、文字化けしだしたので、面倒になってPythonで作ってみることに

Python向けAlfred Workflowモジュール

はじめは、APIがどうなってるのかわからず、探り探りで作っていたわけですが、
alpというWorkflow向けの良いモジュールがあったので、利用させてもらいました。
phyllisstein/alp

作ったもの

f:id:wata88:20130729200942p:plain

Google日本語サジェスト

日本語優先でサジェストしてくれます。
とりあえず、使ってみて問題無さそうですが、文字によっては化けてしまうかもしれない。
あと、サジェストが無い時の処理とかしてないので、色々不完全

所感

xmlを渡すことで、Alfredで処理できるわけですが、文字コードに悩まされまくり。
UnicodeDecodeErrorで悩まされるのはPython2.x使ってるとしばしば感じることですが、とにかくUnicode使ってれば大丈夫の精神でやり過ごしました。
alpに渡した後であれば、alp.log()でalfredが処理する文字列を観察できるので、捗ります
と、ここまでやって、検索してみたら、同様のものを作られた方がいました。

日本語のGoogleサジェストAPIを使って検索するAlfredのプラグインを作ってみた。 - 「ひとかじりのりんご」
こちらは使ってみたら、複数単語で上手く動作しませんでした。

Alfred2-google-workflow by zhaocai
一方こっちは、urlいじるだけで日本語向けにできますし、機能も豊富で素晴らしい

huluの文字化け対策

huluがauかんたん決済に対応したと知ったので,早速契約してみた.

快適すぎて最高なのだが,LMDE(Linux Mint Debian Edition)上のChromeで字幕が文字化けする.

Youtubeの広告なんかでも文字化けしてたが,広告ならまだしも字幕が文字化けは困るので,治すことにした.

端的には,Chromeプラグイン設定でPPAPIを無効にすればよい.

↓を参考に

【Chrome】 YouTube広告、TED、Huluでの文字化けを直す方法 | IDEA*IDEA

しかし,今度は,表示される文字のフォントが気に食わない!!!

そこで,fontconfigで変更してみた.

$ sudo wget https://www.ubuntulinux.jp/fonts.conf.d/oneiric-69-language-selector-ja-jp.conf -O /etc/fonts/conf.avail/69-language-selector-ja-jp.conf
$ cp /etc/fonts/conf.avail/69-language-selector-ja-jp.conf ~/.fonts/.fonts.conf
$ vi ~/.fonts/fonts.conf
<match target="pattern">
    <test qual="any" name="family">
        <string>sans-serif</string>
    </test>
    <edit name="family" mode="prepend" binding="strong">
        <string>Migu 1M</string>
        <string>Takao Pゴシック</string>
        <string>IPA Pゴシック</string>
        <string>IPA モナー Pゴシック</string>
        <string>UmePlus P Gothic</string>
        <string>梅Pゴシック</string>
        <string>VL Pゴシック</string>
        <string>さざなみゴシック</string>
        <string>東風ゴシック</string>
    </edit>
</match>

Migu 1Mを加えた.

最後に適用.快適!

$ fc-cache -fv

Safariでpdf読む時にAdobe Readerを起動させない方法

EvernoteのMarkdownをプレビューできるようにしたのでブログを引っ越した - orangain flavor で、EvernoteはてなブログをMarkdownで楽にできそうなので、やってみるテストを兼ねて。

iwazer/everwatchで、Marked.appでプレビューしながら書いてみた


pdfを8アップ(1枚に8ページ分)印刷したくて、Adobe Readerをインストールした。 インストールしたはいいが、Safariでブラウジング中にpdfを開くと、Adobe Readerで開いてしまう(-_-;)

Acrobat ヘルプ | PDF をブラウザーで表示 | Acrobat、Reader XI この方法で、無効にできました。 簡単にまとめると

  1. Safariを終了
  2. /Library以下にInternet Plug-Ins Disabledフォルダを作成
  3. /Library/Internet Plug-InsフォルダのAdobePDFViewer.pluginとAdobePDFViewerNPAPI.pluginを2.のフォルダに移動

たぶん、Disabledフォルダとかつくらないで、削除しちゃってもいいのかも Disabledフォルダは、バックアップ用途かな

Mountain Lionにアップデートしてからやったこと

ようやくLionからMountain Lionへ移行しました。

アップデートしてから、色々不都合があったのでそれを解消した。

  • SkyDriveを起動すると、ログイン後に落とされてしまう問題。

キーチェーンアクセスがどうのこうのは既に改善されてるみたい。
自分の場合は、プロフィールの名前を日本語から半角英数字に変更することでなんとかなりました。
これは、最近アップデートされたので解消されてるかも

  • WindowsへSMB接続できない問題

How to: Fix Error 36 on Mac OS X when accessing Windows 7 shares : the last place on the net
http://lastplaceonthe.net/fix-error-36-mac-os-accessing-windows-7-shares/

こちらの方法でなんとかなりました。
Windows側で
Windos+Rでregedit

HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Session Manager/Memory Management

のLargeSystemCacheを1へ変更

HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/LanmanServer/Parameters

のSizeを3へ変更
再起動して完了!
これで、無事にWindowsの共有フォルダへSMB接続できました。

最後に、ホームディレクトリ以下の.localizedファイルが復活してたので

cd ~
sudo rm */.localized
sudo rm /Application/.localized

で削除して、Finderを再起動で、日本語表示されてたフォルダを英語表示に変更。