firefoxタブバーのダブルクリック動作変更

windows 8だと、firefox (cyberfox) のタブバーをダブルクリックしたときに
期待通りの動作(直前に閉じたタブの復元)をしてくれなくて
ずっと諦めてたんだけど、Tab Mix Plusで
マウス~マウスクリック~タブバーでダブルクリックしてもウィンドウサイズを変更しない
にチェック入れたら動くようになってくれた。


勇姿

ふと自衛隊関係の話題が目に留まり、
あのときの勇姿の画像を久しぶりに見たいと画像検索していたら
当時知らなかった泣けるニュースがでてきた
震災時助かった赤ちゃんと自衛官が1年後に再会した写真が話題に|秒刊SUNDAY

ソースがないので信憑性は分からんけど、泣いた

ほんとかっこいい
TATEVISION 東日本大震災ーー無名の英雄たちの画像まとめ

暴力装置などと表現した連中は許せない


windows8.1 64bit + cygwin + mecab + python

* 2:mecab-python 自然言語処理@Python-Win8 : 三日坊主のアルバイト
を参考にさせていただいた。

* python + cygwinのインストール回りはこっちで:
windows7 (or 8.1) 64bit + cygwin + scikit learn / FULL Tablog 2
---

1. windows用mecab [mecab-0.996.exe] をインストール
Downloads - mecab - Japanese morphological analyzer - Google Project Hosting
半角スペースのないパスに入れておくと確実かも: C:\programs\MeCab\ とか

2. mecab-python [mecab-python-0.996.tar.gz] をダウンロード~解凍
cygwinから見易い場所とか適当に: C:\cygwin64\home\xxx\tmp\mecab-python-0.996 とか

3. 上記にある [setup.py] を修正
以下の4箇所

#version = cmd1("mecab-config --version"),
version = "0.996"

#include_dirs=cmd2("mecab-config --inc-dir"),
include_dirs=[r"C:\programs\MeCab\sdk"],

#library_dirs=cmd2("mecab-config --libs-only-L"),
library_dirs=[r"C:\programs\MeCab\sdk"],

#libraries=cmd2("mecab-config --libs-only-l"))
libraries=["libmecab"])

4. visual studioを入れる
ここから [Express 2013 with Update 4 for Windows Desktop] をダウンロード・インストール。
これが一番かったるい。。
HDDを6GBも食ってげんなり。インストールにも30分くらいかかりおった。
他のバージョンでいいかは不明。
但し、最初に Visual Studio 2010 Express を試したんだけど、この後6.の2行目、64bit用の処理で使うコマンドが見つからなかったので、2013に入れ直した。

5. [libmecab.dll] と [libmecab.lib] を頂戴する
(この手順はこれしかないのかな。。)
こちらの最下部にある [mecab-python-0.993.win-build.zip ] をダウンロードさせてもらい、中にある上記2ファイルを、
C:\cygwin64\home\xxx\tmp\mecab-python-0.996
に入れる。

これをしないと
build\lib.win-amd64-2.7\_MeCab.pyd : fatal error LNK1120: 11 件の未解決の外部参照
error: command 'C:\\(yyy)\\VC\\BIN\\x86_amd64\\link.exe' failed with exit status 1120

6. コマンドプロンプトにて以下を実行

> SET VS90COMNTOOLS=%VS120COMNTOOLS%
> call C:\(VisualStudio12.0ディレクトリ)\VC\bin\x86_amd64\vcvarsx86_amd64.bat X64
> C:\cygwin64\usr\local\Python64-27\python.exe setup.py build
> C:\cygwin64\usr\local\Python64-27\python.exe setup.py install

- 1行目は error: Unable to find vcvarsall.bat 対策。
VSのバージョンによっては微妙に違うので注意: python - error: Unable to find vcvarsall.bat - Stack Overflow
- 2行目は ValueError: [u'path'] 対策。

7. [libmecab.dll] を (pythonディレクトリ)\Lib\site-packages\ にコピー
これをしないと ImportError: DLL load failed
こちら より


なおったああああああああああああ

xreaの各種バージョンアップメンテナンス以来つながらなくなっていたけど、ようやく直った。
以下はメモ。

* CGI
s56他はどうも海外からperl cgiにアクセスできなくなってた。(設定ミス??)
これはしばらくしたら運営側が直してくれたみたい。
またつながらなくされてしまった。一部鯖だけつながらないのは何か理由があるんだろうか。。

* nucleus
ほんと苦労した。。
やったことは実は簡単で
- mysql周り
- nucleus周り
を少し弄るだけ。

1. mysql周り
1.1 mysql DBの作成
今回のメンテで消えていたので、コントロールパネルから作成。

1.2 phpMyAdminインストール
これもコントロールパネルから。

1.3 ダンプファイルの文字コード変換~アップロード
メンテ時に自動でバックアップしてくれたdumpファイルをダウンロードし、
今までeucでやっていたために中身がeucになっていたのを、テキストエディタ (xyzzy) でutf8で保存。
(予め C-u M-x revert-buffer euc-jp で可読にしておく必要?)

で、これをphpMyAdminでインポート。
通常なら問題ないはずなんだけど、スパムコメントの変な文字列が悪さをしてインポートに
ミスったので、当該のコメントを適当な文字列 (xxx) とかに書き換えたら上手くいった。
当該コメントの探し方は、phpMyAdminで、どこまでインポートが成功しているかを見れば、
その次だと分かった。

2. nucleus周り
2.1 config.php更新
これが一番罠だった。。
昔インストールした後に、DB側のパスワードを変えて以降も、このスクリプト中のパスワードは
変えなくてもずっと運用できていたので、ここを変える必要があることに気付かなかった。
おかげでひたすら「Could not connect to MySQL database」だった。

2.2 バージョンアップ
これは必須じゃなかった気もするんだけど。
ここにある通りに従ったら簡単だった。
但し、ここに書かれていないけどaction.php(他、同ディレクトリにあるファイルもかな?)も上書きしないと、
記事投稿時にすぐにタイムアウトして「チケットが不正、もしくは期限切れです」というエラーが出る。
--> ※最近またこのエラー出るようになってしまった (2015/7/13)

2.3 multiple categoriesのアップデート
mysqlのアップデートに合わせて?これをしないとカテゴリアーカイブでエラー。
mySQL error with query SELECT i.inumber as itemid, i.ititle as title ...
ここにある通り、
NP_MultipleCategories を0.38j (だったか) から 0.5.1j にすることで解決。
(手順は、管理画面でアンインストール~FTPで当該のプラグインを削除~新しいのをアップロード
~管理画面でインストール、で行った)
但し、このポストにある修正をしないと、管理画面からのインストール時にエラーが出る。

たぶんこんなもん。

##
こまったときはとりあえず
nucleus/libs/globalfunctions.php の $CONF['debug'] を「1」にしてみる!


windows7 (or 8.1) 64bit + cygwin + scikit learn

windows7 (or 8.1) 64bit 32bit + cygwin + scikit learn / FULL Tablog 2
の、ちゃんと64bitに対応させた版。
やはり対話モード?に入れないのだけど。。

こちら
馬の脳: Windows 7 64bit でPython環境構築
を参考にさせていただいた。

以降、コマンドプロンプトの起動は「管理者として」が確実?
exeの実行はそうでなくても問題なかった。

■1. cygwin 64bit版を入れる

■2. python2.7 64bitをwindowsインストーラで入れる
インストール先はcygwinで見易い場所、例えば %cygwin_path%(C:\\cygwin64とか)\\usr\\local\\Python64-27\\ とか。
ここに入れることでcygwinからは /usr/local/Python64-27/ でアクセスできる。

※2017.11.1追記
インストール時に権限に関するエラーが発生する場合、cygwin上で
/usr/$ chmod go+w local
しておく。
--- 追記ここまで ---

■3. cygwinコンソールから上記のパーミションを緩める

$ chmod -R go+w /usr/local/Python64-27/

※windows8.1にてpermission deniedが出る場合には、
cygwinを実行するショートカット (Cygwin64 Terminal) を右クリックして
「管理者として実行」で起動することでうまくいった。
これをやっておかないと、多分以降のインストールでエラー出る。たぶん。

※2017.11.1追記1 ---
windows10にて上記でパーミッション変更できない場合、windows側で権限に関する処理が必要。ほんとくそめんどいしんでほしい。

エクスプローラでPython64-27/フォルダを右クリック
~プロパティ~セキュリティタブ~詳細設定
~所有者SYSTEMの右の「変更」クリック
~「選択するオブジェクト名を入力」の欄で自分のアカウント名を入力してOK
 (名前の確認ボタンを押すとアカウント名をもし間違えていた場合にわかる)
(ここで「適用」~「OK」して一旦プロパティウィンドウを閉じて、再度開き直す)
~アクセス許可タブの「追加」(上記開き直しをしないと「追加」が選べない)
~「プリンシパルの選択」~同じく下のオブジェクト名欄に自分のアカウント名を入れてOK
~基本のアクセス許可にて「フルコントロール」を選択、
 下の「これらのアクセス許可を~~」にチェックしてOK
~「子オブジェクトのアクセス許可エントリすべてを~~」にチェックしてOK

これでPython64-27/フォルダ内を読み書きできるようになったはず。
--- 追記1ここまで ---

※2018.7.9追記2 ---
Windows10, python3.7でpipがインストールされない場合:
何回かpython-3.7.0-amd64.exeを実行すると「scripts/」フォルダができるものの、やはりpipが入らない場合、
管理者権限実行のcygwin consoleにて
$ chmod -R go+w python64-37/
$ python3 -m ensurepip
--- 追記2ここまで ---

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
※ここから先は2017年時点ではうまくいかない可能性があります。
※だめな場合はこちらも参考まで:
windows8.1 64bit + cygwin + numpy, PIL – FULL Tablog 3
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

■4. 64bit用のパッケージ群を以下から落とす
Python Extension Packages for Windows - Christoph Gohlke
- scikit learn [scikit-learn-0.15.2.win-amd64-py2.7.exe]
- numpy [numpy-MKL-1.9.1.win-amd64-py2.7.exe]
- scipy [scipy-0.15.0-cp27-none-win_amd64.whl]
(scipyはscikit learnにrequireされてないので、もしかして不要??)

■5. numpyを入れる
上記の [numpy-***.exe] を実行

■6. scipyを入れる (不要??)
先にwheelを入れる。
cygwinコンソールから

$ pip install wheel

その後、scipyインストール。
コマンドプロンプト (管理者; Winキー+x~Aで起動) から

> c:\\cygwin64\\usr\\local\\Python64-27\\python -m pip install scipy-0.15.0-cp27-none-win_amd64.whl

ちなみにcygwinコンソールからやろうとすると

$ pip install scipy-0.15.0-cp27-none-win_amd64.whl
scipy-0.15.0-cp27-none-win_amd64.whl is not a supported wheel on this platform.
Storing debug log for failure in /home/user/.pip/pip.log

でだめ。

■7. scikit learnを入れる
上記の [scikit-learn-***.exe] を実行

■ (8. ついでにpylab)
上記からmatplotlib関連で必要なもの6つを落として
[pyparsing-2.0.3.win-amd64-py2.7.exe] は実行して、
残りはコマンドプロンプトから

> c:\\cygwin64\\usr\\local\\Python64-27\\python -m pip install six-1.9.0-py2.py3-none-any.whl
> c:\\cygwin64\\usr\\local\\Python64-27\\python -m pip install setuptools-11.3.1-py2.py3-none-any.whl
> c:\\cygwin64\\usr\\local\\Python64-27\\python -m pip install pytz-2014.10-py2.py3-none-any.whl
> c:\\cygwin64\\usr\\local\\Python64-27\\python -m pip install python_dateutil-2.4.0-py2.py3-none-any.whl
> c:\\cygwin64\\usr\\local\\Python64-27\\python -m pip install matplotlib-1.4.2-cp27-none-win_amd64.whl

おわり


cygwin + tree-tagger + python

基本的にこちらを参考にさせていただいた。
TreeTaggerを使った英語の形態素解析 - よしなしごと

1. cygwinの場合は Windows version を落として
2. 適当なディレクトリに解凍して
  C:\\cygwin64\\home\\<username>\\local\\tree-tagger-3.2 とか
3. Parameter fileとして落とした english-utf8.par を lib/ に入れて
4. chunk-english.bat, tag-english.bat の set TAGDIR 部分を2.に合わせて
  C:\\cygwin64\\home\\<username>\\local\\tree-tagger-3.2 とか
5. treetaggerwrapper.py を落としてpythonインストール先の Lib/ に入れて
6. このときに l.381 を
  "tagparfile": "english.par", から
  "tagparfile": "english-utf8.par", に書き換えればおk

##
解析時に warning 出る場合は .decode() してみたり
さらに無理矢理なら .encode("cp932", "replace").decode("utf8", "replace") して変なのを消してみたり


ピッツバーグで暮らす7 車検

* 車検 - ピッツバーグ便利帳
このページで十分な気もするけど、やっぱり実体験の話も兼ねて。

前述の事情で、自分は買ってすぐに車検に持っていく必要があった。
電話連絡は自信がなかったのでいくつか直接回ろうとしたのだが、どういうわけかその時期(10月末)はどこも道路工事で近づけず、結局便利帳にあるShadyside Hondaに電話予約して持ち込んだ。

ウェブサイトにはテキストチャットもあるのだが、inspectionの予約なら電話して、と言われてしまった。
電話で聞かれたのは、車種とyear(分かれば)と、そんなもんかな、簡単な項目だけだったはず。
昼頃に電話して、明日お願いしたい、って言ったら何か色々言われたんだけどよく聴き取れず、、最終的に明日持ってけばいいの?って訊いたらじゃあそれでいいよ、みたいになった。
朝9時に、○○(対応スタッフの名前; Erikだったかな)のところに持ってきてね、と。

翌朝(10/29)に店へ。
場所はgoogle mapで調べたんだけど、最初間違えて手前の同名の?中古車屋に行ってしまった。
オフィスに入っておっちゃんに聞いたら、inspectionは隣の通りのとこに行ってくれと。
確かに隣に、外見倉庫みたいな感じのいかにもな整備工場があった。
shadyside honda

中にはすでに何台か来ていて、自分も適当な場所に駐めた。
いくつか受付が並んでいて、スタッフの名前が書かれているので、昨日言われた名前の人に、car inspectionとemission testをお願いする。
権利証と保険の証明書だけ出せばいいんだったかな。
あのクルマね、と指さし、鍵を渡して、終わったら連絡をくれるとのことだったので帰宅。

それから1時間半後の11時前くらいには終了の電話。早かった。
リアタイヤとワイパーも換えた方がいいぞ、と言われる。
リアタイヤは、買ったばかりなのにそんなアホな、と購入業者に連絡して、売る前にこっちでも業者を通してるから大丈夫との確認をもらったので、そのままにしておいてもらった。
ワイパーは確かに微妙だったので換えてもらった。
ちなみにこの電話、金額確認と、タイヤは換えないで、という連絡だけなんだけど、それがまた通じづらくて泣きそうになった。

駐車場の事情もあったので、結局確か夕方の4時くらいにピックアップしに行ったけど問題なかった。
総額は、車検+排気テストで$70, ワイパーが$25くらいだったかな。
多分相場くらいだと思う。


thunderbirdでgoogle calendar

なんか最近のアップデートでつながらなくなってしまったんだけど、やっと解決できた。
カレンダーの新規作成で、
「ネットワークのサーバに保存する」の次で、
カレンダーの保存先を「CalDAV」にして、
場所を https://www.google.com/calendar/dav/[gmailアドレス]/events にすればおk。
# 参考 (ものすごく助けられた):
ThunderbirdでLightningを使ってGoogleカレンダーに同期出来なくなってしまった事への対応 | Nine to Fiveの備忘録

オフィシャルには

ファイル~新規作成~カレンダー
~ネットワークのサーバに保存する
~google calendarを選ぶ
~メアド・PWを入れるダイアログが出る

らしいのだけど、google calendarを指定すると「場所」も入れないとならず、
google calendarの設定から取得するxml他をいくら試しても、
次の画面(カレンダーのカスタマイズ)での「次へ」が反応しなくて諦めてた。


主成分分析

おそらく間違ってる勉強中のメモ

* とても分かり易かった資料
5章 主成分分析 - rta5syo.pdf

* PCAは二つやり方がある?
- 相関行列の固有値分解: 上記のp.17
  -> 属性の単位が違う等、標準化が必要な場合?
- 分散共分散行列の固有値分解: 上記のp.11

* 次元縮退後の見方は
- 主成分得点を見ることで、低次元下でのアイテム間の比較
- 主成分負荷量を見ることで、属性間の関係性
を見ることができる?

* 主成分負荷量の求め方は
- 相関行列を使って求めた場合は
  「固有値の平方根」と「固有べクトル」をかけた値
- 分散共分散行列を使って求めた場合は
  「固有値の平方根」と「固有べクトル」をかけた値を「説明変量の分散」で除した値
# 「統計学関連なんでもあり」の過去ログ--- 039

* pythonでの実装
- sklearnのdecomposition.PCA()は分散共分散行列版?
  -> linalg.svd(np.cov(A.transpose()))と一致
  - 固有値 pca.explained_variance_ratio_
  - 主成分得点 pca.transform(A)
  - 固有ベクトル pca.components_
  - 主成分負荷量は独自に計算しないとだめ?
- 相関行列版をやりたければlinalg.svd(np.corrcoef(A.transpose()))?