気軽にT-codeを覚える方法の提案

このエントリは漢直 Advent Calendarの2日目です。

タイトルの通り気軽にT-codeを覚える方法を提案してみます。
ステップ毎にまとめると

  1. Emacsにtc2をsetupすることから始めようとしない
  2. eelll/JSを使ってひらがな、カタカナを覚える
  3. 漢直Padと各OSのT-codeインプットメソッドを使ってちょこちょこ日常の日本語をT-codeで書いていく

となります。

Emacsにtc2をsetupすることから始めようとしない

tc2は最近のEmacsだと問題があったりするようですし(けどid:meechは手をいれて動くようにしてます。id:meechgithubリポジトリ)、Emacsユーザではない方もいることでしょう。
何せ超絶困難と思われているT-code習得を気軽にすることが目的ですから、困難を増やすことは避けましょう。(tc2はすばらしいelispだと思います。3番目のステップ以降で使ってみてください。)
また、最初から打てない漢字のことを気にしたり、部首合成、混ぜ書き変換をやろうともしないでおきましょう。

eelll/JSを使ってひらがな、カタカナを覚える

いきなり調べながらT-codeを使おうとせず、やはりまずはeelllでひらがな、カタカナを覚えましょう。
といってもEmacsとtc2の環境は用意していないので、ゆせ よしひろ さんによるeelll/JSを使ってブラウザ内でeelllしましょう。(結構つながらなかったりすることもあるのでオフラインで使用できるようにしておいた方がいいかもしれません。)
膨大なeelllの問題をすべて覚えないといけないということはありません。
まずはひらがな、カタカナの問題を覚えましょう。
数字は覚えなくてもよいと思います。
この際「の」はkdなどと覚えるのではなく指の動きで覚えるように意識しましょう。

漢直Padと各OSのT-codeインプットメソッドを使ってちょこちょこ日常の日本語をT-codeで書いていく

次に日常の文章でよく使う文字を意識しながらT-codeを覚えながら書いていきましょう。
その際には、ステップ1でも述べたように

  • 打てない漢字のことを気にしたり
  • 部首合成、混ぜ書き変換をやろうとせず

とりあえず2ストロークで打てる事のみ書くことにしましょう。

をインストールすることで(2ストロークで書ける文字であれば)ほとんど設定することなく簡単にT-code(部首合成、混ぜ書き変換はできないものもあります、がとりあえずはいいのです)が日本語入力メソッドとして使えるようになります。
この際、漢直PadというiPhoneアプリが使えるとすごく便利です。
漢直Padは日本語を入力するとそれに対応する打鍵表を出してくれるソフトです。

シメ

以上をこなすと普通の日本語入力の方が違和感を感じるくらいになると思います。
後はEmacsでtc2、漢直Win, uimを使って部首合成や、混ぜ書き変換をするようになるともうあなたは漢直erです。

明日は私にT-codeの他、Gentooなどその他もろもろ危険な影響を与え続けるenfant terrible id:meechです。

tracのインストール

先週国内向けBioHackathonに参加しました。
bioinfoでtracを使っている、またはこれから使おうとしている人達は結構いるみたいです。
なのでさらっとtrac(0.12)のインストール方法を書いてみました。
最大多数の最大幸福ということでubuntuに入れました。

  1. trac-jaのdownload (wget http://www.i-act.co.jp/project/products/downloads/Trac-0.12.ja1.zip)
  2. sudo aptitude install python-setuptools
  3. unzip Trac-0.12.ja1.zip
  4. cd Trac-0.12.ja1
  5. sudo python ./setup.py install

Finished processing dependencies for Trac==0.12.ja1、となっていればうまくいっていると思います。
とりあえずインストールだけですけど以上。

2.11.0から追加されたぽいarrayIndについて

twitter@kohskeさんから教えて頂いたことを紹介します。

例えば下記のようなdata frameがあったとします。

... OBS1 OBS2 OBS3 OBS4
SAMPLE1 34 12 32 23
SAMPLE2 234 21 23 42
SAMPLE3 20 22 34 1

私はこのようなデータに対し要素の大きいものから順に行、列名を列挙したいと思っていました。
これを実現するには要素の大きいものから順にその行列indexを取れれば良さそうです。
しかし、これをorderで下記のようにやると1次元のindexしか得られません。

> obs1 <- c(34,234,20)
> obs2 <- c(12,21,22)
> obs3 <- c(32,23,34)
> obs4 <- c(23,42,1)
> df <- data.frame(OBS1=obs1,OBS2=obs2,OBS3=obs3,OBS4=obs4)
> row.names(df) <- c("SAMPLE1","SAMPLE2","SAMPLE3")
> df
        OBS1 OBS2 OBS3 OBS4
SAMPLE1   34   12   32   23
SAMPLE2  234   21   23   42
SAMPLE3   20   22   34    1
> order(df, decreasing=T)
 [1]  2 11  1  9  7  8 10  6  5  3  4 12

これをarrayIndでやると

> ai <- arrayInd(order(df, decreasing=TRUE), dim(df), dimnames(df))
> ai
        row col
SAMPLE2   2   1
SAMPLE2   2   4
SAMPLE1   1   1
SAMPLE3   3   3
SAMPLE1   1   3
SAMPLE2   2   3
SAMPLE1   1   4
SAMPLE3   3   2
SAMPLE2   2   2
SAMPLE3   3   1
SAMPLE1   1   2
SAMPLE3   3   4

のように2次元のindexが得られ、dimnamesオプションをつければ行名も得られます。
列名も加えて書き出したいのでdata frameを作ると

> order.index <- data.frame(SAMPLE=dimnames(ai)[[1]], OBS=names(df)[ai[,2]], ai, row.names=NULL)
> order.index
    SAMPLE  OBS row col
1  SAMPLE2 OBS1   2   1
2  SAMPLE2 OBS4   2   4
3  SAMPLE1 OBS1   1   1
4  SAMPLE3 OBS3   3   3
5  SAMPLE1 OBS3   1   3
6  SAMPLE2 OBS3   2   3
7  SAMPLE1 OBS4   1   4
8  SAMPLE3 OBS2   3   2
9  SAMPLE2 OBS2   2   2
10 SAMPLE3 OBS1   3   1
11 SAMPLE1 OBS2   1   2
12 SAMPLE3 OBS4   3   4

という感じになるかと思います。
以上。

Gentoo勉強会の復習

Gentoo勉強会を一月ほど前にやっていました。
遅まきながらまとめます。

最初は@mkamotsuさんと@naota344さんに話してもらい
その後はかなりありそげな環境(Windows7+Virtualbox)にx86Gentooを教えてもらいながら入れるつうのをやってました。
そのインスコの模様をまとめます。

VirtualBox仮想マシン作成

新規アイコンをクリックします

vm名を入力、LinuxGentooを選択します

vmのメモリサイズを入力します。このマシンの場合8Gメモリがあるので2G割り当てています。
4Gある場合なら1G位、4Gなければメモリを増設するといいかもしれません。

vmのHDDを作成します。そのまま次へ行ってください

するとwizardが始まりますが、全部そのまま次へをクリックしてください。これでvmができました。
次にGentooミラーサイトからGentooのインストールCDのイメージをダウンロードします。
ここでは以下のurlからx86のイメージをダウンロードします。
http://ftp.jaist.ac.jp/pub/Linux/Gentoo/releases/x86/current-iso/
次にvmの設定をします。作成したvmを選択した状態で設定アイコンをクリックしてください。
次にCD/DVDデバイスに先ほどダウンロードしたGentooのx86isoイメージを設定します。

私のWindows7環境では(Macではいけました)この設定をするとなぜか起動できなくなったのでプロセッサの設定は1個にしましたが、
もしみなさんの環境で問題ないようであれば以下のようにプロセッサの設定でCPU数を2に、IO APICを有効化してください。

これでvmの設定は終わりです。起動アイコンをクリックするとGentooのboot画面になります。

VirtualBoxの操作方法についてダイアログが出てきますが全部OKボタンを押してください。

この画面まで来たらGentooハンドブックに従ってインストール作業を行います。
以下ではハンドブックに書かれていない注意点を述べます。

Gentooのインストールについて

最初のネットワーク設定について

まずネットワークにつながっていないとどうしようもないのですがVirtualBoxのネットワーク設定がNAT割り当てになっているのでホストマシンがネットワークにつながっていればネットワークにつなげるかと思います。
以下のようにして仮想マシンネットワークアダプタeth0をstartしてから、適当なところにpingを打って返ってくるか確認してください。

/etc/init.d/net.eth0 start

ファイルシステムについて
  • bootパーティションは必要ありません
  • bootフラグも必要ありません
  • swapは2G位でよいかと

こんな感じ

これでwriteします。
次に以下のようにスワップonしてext3でmkfsします

ハンドブックと違ってbootパーティションをつくってないので

mount /dev/sda2 /mnt/gentoo

とするだけで結構です。

make.confについて

次にmake.confですがこんな感じにするとよいようです。
もし仮想マシンの設定でCPU数を2にして起動に成功しているようであればMAKEOPTS="-j3"に変えてください。

CFLAGS="-O2 -march=native -pipe -fomit-frame-pointer"
CXXFLAGS="${CFLAGS}"
CHOST="i686-pc-linux-gnu"
MAKEOPTS="-j2"
カーネル設定について

カーネルのインストールはマニュアルでやります。
とりあえずCPUのところだけ設定してもらえれば結構です。
ほとんどの方はCPUはCore2かと思います。

カーネル設定後のfstabはこんな感じです

残りその他諸々

ネットワーク設定は忘れずやっておいてください。

nano /etc/conf.d/net

とやってconfig_eth0=( "dhcp" )を追加してください。
ハンドブックのように

  • /etc/conf.d/hostname
  • /etc/hosts

を編集する必要はありません。
grub.confは以下のような感じです。

default 0
timeout 30
title Gentoo Linux 2.6.34-r6
root (hd0,1)
kernel /boot/kernel-2.6.34-gentoo-r6 root=/dev/sda2

こんな感じでハンドブックでシステムの再起動、となっているところまで行ったらrebootではなくshutdown -h nowして仮想マシンのCD/DVDドライブを空にします。

その後仮想マシンを起動しこのようにIPがうまく取得できているようであればOKです。

次のエントリでGNOMEを使えるようにするところまで紹介します。

Windows7でのEmacs23のフォント設定

今のところ私は以下の設定にしています。

  (set-face-attribute 'default nil
		      :family "Consolas"
		      :height 120)
  (set-fontset-font
   nil 'japanese-jisx0208
   (font-spec :family "MS ゴシック"))
  (setq face-font-rescale-alist
	'((".*Consolas.*" . 1.0)
	  (".*MS ゴシック.*" . 1.1)
	  ))

もしアドバイス頂けるようであればコメント頂ければ幸いです

Rのreorderについて

いままでRのreorderをわかっていなかったアンドあまり記事がないようなので(みんな知ってるからかも...)これについて書いてみます。
この関数はfactorの並び(boxplotの時に横軸にすることがまず思い浮かびます)を変えたい時に使うもののようなのですが、なぜか手持ちのR書籍ではこのreorderという関数について書かれているものが無いようでした(もちろんhelpにはあります)。

helpのexamplesの通りなんですが書いてみます。

> library(graphics)
> head(InsectSprays)
  count spray
1    10     A
2     7     A
3    20     A
4    14     A
5    14     A
6    12     A

まずこのInsectSpraysというデータについてですが、これは殺虫スプレーAからFをプシーっとやって死んだ虫の数をまとめたものぽいです。
普通にこのデータでboxplotを書けと言われるとこんな感じで各spray毎に殺虫数countのboxを作ると思います。

boxplot(count ~ spray, data=InsectSprays)


reorderのhelpのexamplesではこれをmedian順に各spray(factor)を並べ替えています。

bymedian <- with(InsectSprays, reorder(spray, count, median))

こうするとlevelsの並びがmedianの昇順になった、またアトリビュート$scoresに各spray毎のmedianの値を持った、bymedianというfactorができます。

> class(bymedian)
[1] "factor"
> attributes(bymedian)
$levels
[1] "C" "E" "D" "A" "F" "B"

$class
[1] "factor"

$scores
   A    B    C    D    E    F 
14.0 16.5  1.5  5.0  3.0 15.0 

でbymedianを使ってboxplotを書くと

boxplot(count ~ bymedian, data = InsectSprays)


という感じになります。

以上、無知を晒すエントリでしたとさ、と。

ESSを読む その0 ソース取得とタグ作成

ESSを読む会というのを企画したので、これに向けてちょこちょこ書いてみます。
とりあえずソースの取得とタグを作ってどんなのがあるか見てみます。
ソースの取得

cd
mkdir projects
cd projects
svn checkout https://svn.r-project.org/ESS/trunk ESS

タグの作成

  1. Emacsを起動
  2. diredで~/projects/ESS/lispに移動
  3. M-x compile RET etags *.el RET

これでlispディレクトリにTAGSというファイルができたかと思います。
そっからM-. ess- TABと打つと下記のような補完候補がずらっと出るかと思います。

試しにess-smart-underscoreに飛んでみましょう。
ess-smartまで打ってTABを打てば補完されると思います。
そしてRETすると下記のようなとこに飛ぶかと思います。

次はこれを読んでみようと思います。