睡眠不足?! RSSフィード

2018431

2015-12-30

[] Emacsをグラフィカルインタフェースで起動した時のみに特定のファイルを表示する

ひさびさにEmacs設定をいじって15分くらいハマったのでメモ。

自分は脳みそのワーキングメモリが少ないので、なんでもかんでもEmacsのscratchバッファに書いておいて他のファイルにまとめたりしている。しかしscratchバッファデフォルトでは保存されず、警告なしにEmacs終了できてしまうため、scratch.txtというファイルを使ってそこに雑多なメモを放りこむようにしている。

いちいちscratch.txtを開くのが面倒くさいのでEmacs起動時にscratch.txtを開くようにしたい。調べてみると[1]のようにinitial-buffer-choiceで設定する方法が簡単そう。しかし、これを設定するとコマンドラインからemacs -nw hoge.txtというように起動しようとしても、最初にscratch.txtが表示されるようになってしまった。

これは致命的に使いづらいので、いろいろ調べてみたらドンピシャの解決方法を発見した[2]。コマンドラインから起動する場合には-nwで起動するようにしているので、グラフィカルインタフェース起動のときのみscratch.txtをfind-fileするようにすればよい。

(when (display-graphic-p)
  (find-file "~/scratch.txt"))

ここまで書いて、コマンドライン引数の有無で判定すればよいということに気づいたけれど、ターミナル上でemacsをファイル名なしで起動することがないので、これでいいや。

参考URL

2015-05-14

[][]DataFrameをインデクスラベルではなく行番号で指定したい場合にはixではなくilocを使う方が無難

長い時間バグの原因がわからずハマって相当イライラさせられたのでメモ。これのおかげでixとilocの違いがわかった気がする。

こんなDataFrameを用意する。インデクス名が行番号と一致していない。けれどint型(ここがポイント)。DataFrameから部分的にDataFrameを取り出した場合に起こりうる状況である。

>>> d = pd.DataFrame([[1,2,3],[4,5,6], [7,8,9]], columns=['A','B','C'], index=[3,4,5])
>>> d
   A  B  C
3  1  2  3
4  4  5  6
5  7  8  9

さて、最初の2行を取り出したいなぁと思ってixを使って行指定をしてみる。

>>> d.ix[ [0,1] ]
    A   B   C
0 NaN NaN NaN
1 NaN NaN NaN

>>> d.ix[ [3] ]
   A  B  C
3  1  2  3

あれ? 値が全部NaNのDataFrameが返ってきた??インデクスに存在する値だとちゃんと返ってくる。

ilocで試すと期待どおりの結果が返ってくる。

>>> d.iloc[[0,1]]
   A  B  C
3  1  2  3
4  4  5  6

インデクスがint型でない場合にはixは行番号指定と判断されるので、ilocと挙動が同じになる。

>>> d.index=['E','F','G']
>>> d
   A  B  C
E  1  2  3
F  4  5  6
G  7  8  9

>>> d.ix[ [0,1] ]
   A  B  C
E  1  2  3
F  4  5  6

>>>: d.iloc[ [0,1] ]
   A  B  C
E  1  2  3
F  4  5  6

どうやらインデクスラベルがintの場合には、ixを使って行番号指定ができなくなる模様。公式にもそんなことが書いてある。

.ix supports mixed integer and label based access. It is primarily label based, but will fall back to integer positional access unless the corresponding axis is of integer type.

(http://pandas.pydata.org/pandas-docs/stable/indexing.html)

DataFrameは気を抜くと行列と思ってしまって、ついついndarrayの行指定の感覚でixを使ってしまっていたけれど、ixはあくまでインデクスラベル指定の方法だと思っておいた方がよさそう。明示的にインデクスラベルで指定する場合にはloc



なお、Pandas本(?)にはこのことは書かれていなかった。

2014-12-27

[]Karabinerで設定したキーバインディングParallels上でOFFにする方法

さて、ようやく今年になって本格的にMacに移行したのだけれど、USキーボードが大好きな人間なので、スペースバーの長さ的に左Command、右コマンドによる切り替えは難しい。やっぱり慣れ親しんだShift+SpaceでIME切り替えを使いたい。自分の事情と要望をまとめるとこんな感じ。

Mac環境におけるIME ON/OFFをShift+Spaceにバインディングするのは、みんな大好きKarabiner (旧keyremap4macbook) で設定できる。

f:id:sleepy_yoshi:20141227075146p:image

以下の設定項目をONにすればよい。

 For Japanese
  > Change Space Key
   > Shift+Space to KANA/EISUU (toggle)

しかし、この設定そのものはParallels上で動くWindowsの設定とは関係ない。そして、Parallels上のWindows側のIMEでShift+Spaceを設定してもShift+SpaceでIME切り替えができない。原因はMac側でShift+Spaceのキー操作シグナルがIME切り替えに変換されてしまい、Parallels上の仮想マシンに対してShift+Spaceのキー操作が送られていないことっぽいことに気づく。

これは困ったなぁと思っていたのだけれど、Karabinerはアプリケーション毎に、カスタムキーバインドを無効にすることが可能みたい。ということは、Parallelsに対してIME ON/OFFのキーバインディング設定を無効にすることができれば、Windows上のIME設定が使えるようになるのではないかと予想。

f:id:sleepy_yoshi:20141227075147p:image

というわけでprivate.xmlを記述して、Parallelsにおいては上記設定が無効になるようにすればよい。結論からいえば、自分の場合には以下の設定でOKだった。PARALLELSについてはVIRTUALMACHINEというappnameですでに登録されているので、自分で登録する必要がないみたい。

 <?xml version="1.0"?>
 <root>
   <!--
   <appdef>
     <appname>PARALLELS</appname>
     <equal>com.parallels.desktop</equal>
     <equal>com.parallels.vm</equal>
     <equal>com.parallels.desktop.console</equal>
   </appdef>
   -->
   
   <item>
     <name>[customize] Change Space Key</name>
     <appendix>[customize] Shift+Space to KANA/EISUU (toggle)</appendix>
     <identifier>private.shift_space_toggle</identifier>
 	<!-- <not>PARALLELS</not> -->
     <not>VIRTUALMACHINE</not>
 
     <autogen>
       __KeyToKey__
       KeyCode::SPACE, ModifierFlag::SHIFT_L,
       KeyCode::VK_JIS_TOGGLE_EISUU_KANA
     </autogen>
     
   </item>
 </root>

これを読み込めば、Change Keyの部分に新たに [customize] Shift+Space to KANA/EISUU (toggle) という項目が現れるので、これのチェックをすればよい。上記で設定した元のShift+Spaceの設定のチェックを外すことを忘れずに。

f:id:sleepy_yoshi:20141227075148p:image

これでMacでもParallels上のWindowsでもShift+SpaceでIME切り替えができるようになった!やった!!


参考URL

2014-12-03

[]ビジネスを動かす情報の錬金術

(2014-12-03 読了)

最近データ分析入門系の本をかたっぱしから読んでいて、本書に出会った。ビザ面接で待たされているときに読了。

シューズメーカーにつとめる若手社員が主人公の物語風で書かれている。あれ、このパターンどこかで見たぞ?

特に目新しいものはなく、分析手法についても詳細に触れてないため、初学者が入門できない。

Tableau を使っているという話をするのであれば、Tableauの使い方や、どのようなシチュエーションで特に効果を発揮するのか、実例を交えて説明してほしいものだが、試用版ためしてみてね♪程度にとどまっている。

読み物としてもウーン、技術書としてもウーン。社内プレゼンの状況とか、少し会社を舐めているんじゃないかと感じる部分もあって本書の印象はよくない。

これではビジネスは動かない、これでは情報も錬金できないというのが正直な感想。

しかし、以下のようにときどきドキッとする表現が出てくるので、そういう意味では面白かった。

最近、レッドブル以外で自分に翼を授けてくれる存在は、菜穂だった。そして、彼女のことをこれだけ意識するようになったのも、今回の経営改革との戦いがきっかけだった。

??!!

この言い回しはどこかで一度使ってみたい。


結論: 読み物スタイルのデータ分析入門書系なら「とある〜」の方がずっとおすすめ

2014-06-22

[]村上春樹いじり

村上春樹いじり

村上春樹いじり

(2014-06-22読了)

本屋で見かけて春樹ファンとして思わず買ってしまった.例の「色彩を持たない多崎つくると、彼の巡礼の年」のAmazonレビューを書いたレビュワーが村上春樹の長編作品に対してレビューをするという本.

試みは面白いが,まぁこんなものだろうという内容.

一応全作品を読んだことがあるのだけれど,もうだいぶ内容を忘れてしまっているなぁ.