大切なこと

まず、東日本大地震で被災された方々にお見舞い申し上げます。一刻も早い復興を願っています。

さて、最近「今、自分にできること」を常々考えさせられます。そんな中、この「はてな義援金」を知り、微々たるポイントながら寄付させていただきました。少しでも被災地の方々の役に立てれば幸いです。計画停電も中止が多くなり、地震が発生してから3週間経過したからか、テレビやネットの中でしか、被災している今の現状を実感しなくなりました。おそらく、現場は地震津波によって無惨に破壊された家屋や車などが散乱し、避難所で暮らしている人々はこれからの未来に不安を抱いていると思います。

今、私は就職活動の真っ最中です。被災地の方の不安に比べたら、「志望している企業に就職できるか」という微々たる不安です。今回の地震によって、「帰る家があって、そこに家族がいる」それこそが、もっとも大切なことだと再認識しました。どんなにつらいことがあっても、自分には「帰ることのできる家があって、家族がいる」。そう思うだけで、ちょっとだけ勇気がわいてきます。常に前向きに、当たり前のことを大切に、これからも頑張っていこうと思いました。

Windows×Tex×USB×Vim

Tex環境構築は面倒

特にWindowsで、Tex環境を構築するのは至極面倒です。そこで、ただ1回環境を構築するだけで済むようにUSBにTex環境を構築し、どこでもTexが利用できるようにしたいですね。

構築環境

導入

http://www.ms.u-tokyo.ac.jp/~abenori/mycreate/インストーラが非常に便利です。これひとつで簡単にWindowsTexをインストールすることができます。以下、USBにTexを導入する手順。

  1. Fドライブに香り屋 — KaoriYavimをコピーし、texフォルダを作成。(フォルダ名は任意)
  2. このインストーラを使用して、WindowsTex環境をインストール
  3. インストール場所はCドライブ直下にします
  4. インストールが終了したら、C:\w32texから必要な3つのフォルダ(bin, dviout, share)を$VIM/tex/*にコピー(⇒ F:\vim\tex\ここにコピー)

Vim-latex

Vimには、プラグインとしてVim-latexという便利なものが存在します。このプラグインを使用することで、ぐっとTexが使いやすくなります。Vim-latex導入方法の詳細は、ここでは示しません。重要なことは、そのVim-latexの設定を.vimrc(.gvimrc)に記す内容です。

.gvimrcの設定例

"----------------------------------
" Vim-latex
"----------------------------------
" REQUIRED. This makes vim invoke latex-suite when you open a tex file.
filetype plugin on

" IMPORTANT: win32 users will need to have 'shellslash' set so that latex
" can be called correctly.
set shellslash

" IMPORTANT: grep will sometimes skip displaying the file name if you
" search in a singe file. This will confuse latex-suite. Set your grep
" program to alway generate a file-name.
set grepprg=grep\ -nH\ $*

" OPTIONAL: This enables automatic indentation as you type.
filetype indent on

" compile
let g:Tex_CompileRule_dvi = $VIM.'\tex\bin\platex --interaction=nonstopmode $*'

" dvi viewer
let g:Tex_ViewRule_dvi = $VIM.'\tex\dviout\dviout.exe'
let g:Tex_FormatDependency_pdf = 'dvi,pdf'
" dvi -> pdf
let g:Tex_CompileRule_pdf = $VIM.'\tex\bin\dvipdfmx $*.dvi'
" pdf viewer
let g:Tex_ViewRule_pdf =  'C:\Program Files\Adobe\Reader 9.0\Reader\AcroRd32.exe'

let g:tex_flavor ='latex'
let g:Imap_StickyPlaceHolders = 0
let g:Imap_DeleteEmptyPlaceHolders = 1

フォルダ構造

F:\\vim\tex\-- bin
            |
            |- dviout
            |
            -- share

使い方

Vim(GVim)でtexファイルを作成
コンパイル : \ll(バックスラッシュ→エル→エル)
dviファイルの表示 : \lv(バックスラッシュ→エル→ブイ)
dviファイル→pdfファイル : 「:TTarget pdf」と打った後、コンパイル \ll
pdfファイルの表示 : \lv

:TTargetはコンパイルや表示対象を変更するコマンドのようです。つまり、もう一度texファイルをコンパイルしたい、またはdviファイルを表示したい場合は 「:TTarget dvi」と入力する必要があります。以上で、環境構築は終了です。これだけでも、Texがぐっと使いやすくなったのでは?

追記

Vim-latexには、多くのショートカットが存在します。それらを組み合わせることで、高速に論文等が作成できるようになったら嬉しいですね、重要なのはその内容ですが。

Ubuntu 10.04 -> 10.10

Ubuntu 10.04 LTSをアップデート

UbuntuGoogle日本語入力を使用したかったので、思い切って10.10にアップデートしました。10.04でもGoogle日本語入力は使用できるようですが、面倒そうだったので断念しました。Ubuntu 10.10 からは標準リポジトリibus-mozc が追加されたので、簡単にインストールできるそうです。これを機会にアップデートしよう、と思ったわけです。

10.04 -> 10.10へアップデート

アップデートの仕方は、様々なサイトに載っているので省略します。ここではアップデートの際、エラーメッセージが表示されたので、その対処法を紹介します。以下、表示されたエラーメッセージ。

An unresolvable problem occurred while calculating the upgrade:

Trying to install blacklisted version 'blcr-dkms_0.8.2-13'


This can be caused by:

* Upgrading to a pre-release version of Ubuntu

* Running the current pre-release version of Ubuntu

* Unofficial software packages not provided by Ubuntu

上記のようなエラーメッセージが表示され、アップデート失敗しました。以下は、自分が行った対処です。これでうまくアップデートすることができました。

-> システム -> システム管理 -> Synaptic パッケージ・マネージャ
-> 右のパッケージを検索: blcr-dkms
-> パッケージを右クリックして更新を選択
-> "適用"した後、閉じる

-> システム -> システム管理 -> アップデート・マネージャ
-> 更新開始

Google日本語入力を導入

sudo aptitude install ibus-mozc

インストールしたら、ibusを再起動する必要があります。以下はコマンドラインで行う場合です。

killall ibus-daemon   # ibus kill
ibus-daemon  -d -x &  # ibus の起動
ibus-setup

設定画面が出てくるので、

インプットメソッド > インプットメソッドの選択 > 日本語 > Mozc

優先順位を変更すれば、Google日本語入力が使用できます。

感想

今までAnthyを使用してきましたが、なかなか変換がうまく出来ず、イライラしていました。Anthyと比較すると、このGoogle日本語入力 Mozcはすこぶる快適です。Ubuntuをアップデートしてまで、Google日本語入力を導入する価値はあったと思います。

当たったらすごい確率!

MacBook Air 11インチ欲しい!

参加してみた

1名様のみがゲットできるとは・・・当たったら、今年の運をすべて使い果たしてしまうような気がする。今まで、Windows一筋だったので、ぜひMacを使ってみたい。

ns-3.10 release!

1月5日にns3のバージョン10がリリース

いよいよns3もバージョンが2ケタになりました。まだまだ実装されていないモジュールも多いですが、アニメーション(PyViz)もデフォルトで追加され、シミュレーションらしくなってきました。また、チュートリアルやマニュアルも一新され、見やすくなりました。1月5日、ダウンロードして使ってみようと思っていたのですが、サイトになかなかアクセスできず、1月6日にようやくダウンロード出来ました。

注目する新機能

  • PyViz visualizer
  • DSDV
  • LTE support

やはり、一番はPyViz visualizerが追加されたことが大きな変化だと思います。前回までのバージョンでは、hgコマンドを使用して、PyVizを取ってくる必要がありました。次に、DSDVルーティングプロトコルです。ルーティングプロトコルは、AODVとOLSRに続く3番目のルーティングプロトコルとなります。最後に、LTE supportです。最近、NTTdocomoがXi(クロッシィ)というLTE(Long Term Evolution)サービスを開始しました。LTEは3.9Gとも呼ばれているそうですが、これは将来の第4世代移動通信、4Gをスムーズに導入できるように、まず3Gを大きく発展させようというコンセプトから提唱されたものだそうです。LTEの特徴は「高速・大容量・低遅延」。そんなLTEをns-3.10はサポートしているようです。
まだまだ使い方を勉強中ですが、これらの新たな機能を使ってシミュレーションしてみたいと思います。

zshのviキーバインド

zsh、それは「至高のシェル」

最近まで、シェルというものを特別に意識して使用していませんでした。
bashを今まで使用していたのだと思います。
zshは「至高のシェル」らしいです。そんな「至高」という言葉に惹かれたのか ・・・ 現在、zshを使用しています。
そういう単語に弱いんですかね、私は。
さて、zshはまだまだ奥が深いようで・・・使いこなせているかどうかすらわかりません。そんな中、zshにはviキーバインドというものがあるとのことで、普段vimを使用している自分にとっては使用しないわけにはいきません。

keybindを確認

キーバインドを確認するコマンドはbindkey -M [viins|vicmd]です。
viins → vi insertの略でインサート時(通常時)のキーバインド
vicmd → vi commandの略でコマンド時(Escを入力時)のキーバインド
それでは、確認してみます。

bindkey -M viins

とコマンドを打つと

"^A"-"^C" self-insert
"^D" list-choices
"^E"-"^F" self-insert
"^G" list-expand
"^H" vi-backward-delete-char
"^I" expand-or-complete
"^J" accept-line
"^K" self-insert
"^L" clear-screen
"^M" accept-line
"^N" history-beginning-search-forward-end
"^O" self-insert
"^P" history-beginning-search-backward-end
"^Q" vi-quoted-insert
"^R" redisplay
"^S"-"^T" self-insert
"^U" vi-kill-line
"^V" vi-quoted-insert
"^W" vi-backward-kill-word
"^X" self-insert
省略
...

という感じでずらずらと出力されてきます。

同様に、vicmdも確認すると

bindkey -M vicmd
"^D" list-choices
"^G" list-expand
"^H" vi-backward-char
省略
...

以上から、すでに割り当てられているキーと、割りあり当てられていないキーを確認します。

.zshrcに記述

割り当てられていないキーに、push-lineを割り当てます。
zshにはviキーバインドのほかにemacsキーバインドが存在します。このemacsキーバインドでは"Ctrl+q"にpush-lineが割り当てられています。確認方法は、bindkey -M emacs
ここでは、~/.zshrcにキーバインドを記述について紹介します。

# vi keybind
bindkey -v
bindkey -v '^Y' push-line

bindkey -vでemacsキーバインドではなく、viキーバインドを使用するということを明示します。emacsキーバインドを使いたい場合は、bindkey -eとしてください。次の行ですが、bindkey -v "割り当てたいキー" "機能"という形になってます。emacsと同様に"Ctrl+q"に割り当てたかったのですが、すでに割り当てられていたので"Ctrl+y"にしました。vオプションは、インサート時のキーバインドを設定するという意味です。コマンド時のキーバインドを設定したいときは、aオプションを使用します。

何に役立つ?

このpush-lineの使い方の例を紹介します。
長いコマンドを打ち込んでEnterを押す直前に、別のコマンドを使用したい場合があると思います。この場合、消して長いコマンドをもう一度打ち直すのはとても面倒くさいと思います。そんなときに便利なのが、このpush-lineです。
push-lineの機能を直感的にいうと、一時的に現在入力した文字をスタックにぶち込んで(push)、別のコマンドを打ち込んだ後、自動的に引き出して(pull)くれるものです。
これだけの説明だけでは、わかりずらいと思うので、ぜひ一回試してみてください。
emacsキーバインドなら設定は不要なんで。

参考

zshはここで知りました:http://journal.mycom.co.jp/column/zsh/index.html
keybind大変参考になりました:http://d.hatena.ne.jp/teramako/20080122/p2
vi,zshで参照 : http://memo.officebrook.net/20090316.html#p01

Linuxを高速化

環境

Ubuntu 10.04

やり方

以下の4行を/etc/rc.localに書き加えます(sudo vim /etc/rc.local)。ただし、"exit 0"と書かれている行の前に書き加えてください。

mkdir -p /dev/cgroup/cpu
mount -t cgroup cgroup /dev/cgroup/cpu -o cpu
mkdir -m 0777 /dev/cgroup/cpu/user
echo "/usr/local/sbin/cgroup_clean" > /dev/cgroup/cpu/release_agent

実行可能にします。

sudo chmod +x /etc/rc.local

次に、.bashrcに以下のことを書き加えます。自分は普段zshを使用しているので、.zshrcにも書き加えました。

if [ "$PS1" ] ; then  
   mkdir -p -m 0700 /dev/cgroup/cpu/user/$$ > /dev/null 2>&1
   echo $$ > /dev/cgroup/cpu/user/$$/tasks
   echo "1" > /dev/cgroup/cpu/user/$$/notify_on_release
fi

最後に、/usr/local/sbin/cgroup_cleanというファイルを作成します(sudo vim /usr/local/sbin/cgroup_clean)。内容は以下のとおり。

#!/bin/sh
if [ "$*" != "/user" ]; then
rmdir /dev/cgroup/cpu/$*
fi

作成したファイルを実行可能にします。

sudo chmod +x /usr/local/sbin/cgroup_clean

以上で設定は終了です。
設定を反映させるためには、"再起動"もしくは"以下のコマンド"を入力します。

sudo /etc/rc.local

感想

高速化・・・したと思います。たぶん。
結局、この高速化の手順では何をしているんでしょうね?
フォルダを作成して・・・マウントして・・・ダメだ、分からん。