大切なこと
まず、東日本大地震で被災された方々にお見舞い申し上げます。一刻も早い復興を願っています。
さて、最近「今、自分にできること」を常々考えさせられます。そんな中、この「はてな義援金」を知り、微々たるポイントながら寄付させていただきました。少しでも被災地の方々の役に立てれば幸いです。計画停電も中止が多くなり、地震が発生してから3週間経過したからか、テレビやネットの中でしか、被災している今の現状を実感しなくなりました。おそらく、現場は地震や津波によって無惨に破壊された家屋や車などが散乱し、避難所で暮らしている人々はこれからの未来に不安を抱いていると思います。
今、私は就職活動の真っ最中です。被災地の方の不安に比べたら、「志望している企業に就職できるか」という微々たる不安です。今回の地震によって、「帰る家があって、そこに家族がいる」それこそが、もっとも大切なことだと再認識しました。どんなにつらいことがあっても、自分には「帰ることのできる家があって、家族がいる」。そう思うだけで、ちょっとだけ勇気がわいてきます。常に前向きに、当たり前のことを大切に、これからも頑張っていこうと思いました。
Windows×Tex×USB×Vim
Tex環境構築は面倒
特にWindowsで、Tex環境を構築するのは至極面倒です。そこで、ただ1回環境を構築するだけで済むようにUSBにTex環境を構築し、どこでもTexが利用できるようにしたいですね。
構築環境
- Windows XP
- 香り屋 — KaoriYaのvimをダウンロード済み
- USB(以下、Fドライブとして説明)
導入
http://www.ms.u-tokyo.ac.jp/~abenori/mycreate/のインストーラが非常に便利です。これひとつで簡単にWindowsにTexをインストールすることができます。以下、USBに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
Ubuntu 10.04 -> 10.10
Ubuntu 10.04 LTSをアップデート
UbuntuでGoogle日本語入力を使用したかったので、思い切って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日本語入力を導入する価値はあったと思います。
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
はじめに
linuxデスクトップ環境をたったの3ステップで高速化する方法 - pyopyopyo - Linuxとかプログラミングの覚え書き -にインスパイアされたので実際にやってみます。ubuntuは高速化の設定のやり方が異なるようなので、Alternative To The "200 Lines Kernel Patch That Does Wonders" Which You Can Use Right Away ~ Web Upd8: Ubuntu / Linux blogを参考に進めていきます。
やり方
以下の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
感想
高速化・・・したと思います。たぶん。
結局、この高速化の手順では何をしているんでしょうね?
フォルダを作成して・・・マウントして・・・ダメだ、分からん。