opukopuのメモ帳

コンピュータを使わないでいたらいろんなことを忘れてしまったので思い出しながらメモする。

DokuWikiでLatexを使おう

目的

ソースコードを貼り付けてノウハウの管理をするのもWiki導入の目的です。
しかし、もう一つ大切な目的。
お勉強したことの管理がありました。
数学や物理が中心になるので数式を扱えたほうがよろしい。
ついでにLatexが使えるようになりたい。
というわけでやってみよう。

環境

DokuWiki Wikiの導入は他サイトや本家参照 自分用の落書きが前回の記事として残ってもいますが…
さくらのレンタルサーバー ライトプラン
プラグイン Mathjax Plugin使用 詳細
https://www.dokuwiki.org/plugin:mathjax

MathJaxが使えるようですね。

手順

他のプラグインと同様に、管理->拡張機能管理からMathjaxと検索して出てきたものをインストール。正直これで終わりです。

上に記したプラグインのURLのページにあるExamples/Usagesを試してみるときちんと表示されます。
Inline Math 及び Display Mathの枠内にあるコードをWikiに貼り付けてみましょう。
結果は試してのお楽しみ(貼るのが面倒なだけ)。

あとはMathJaxの使い方と同じかと。

DokuWiki導入

経緯

公開したくないものとか、まとめたい。
手軽に編集したい。
どこからでもアクセスしたい。

レンサバに軽量Wikiクローン設置。

最初は

はじめはPukiWikiを使っていました。
ただ、サーバを移行することがあり、もっと良さげなものを探して乗り換えることに。

DokuWiki

なんだか最近海外では流行ってるらしい??
PHPだとか、いろいろ使われているし、活発に開発がされているためプラグインも充実しているとか。
見た目もPukiWikiに比べて大変今風。

インストール

環境

さくらのレンタルサーバー ライトプラン
DBはSQLiteのみ、シェルは使えない。
よってFTPでアップロードするだけでよいものがよかった。

導入

DokuWikiのページからサクッとダウンロードしてWinSCPでアップ。
install.phpから設定を適当に済ませる。
公開する気はないのでクローズドにしておく。
install.phpはさくらのファイルマネージャーで削除した。

プラグイン

DokuWikiおすすめプラグイン一覧。まとめ [DokuWikiで研究生活]
こちらを参考にどんどん入れていく。
Wikiの管理画面からポチポチクリックするだけでかんたんに導入できる。

.vimrcの一部をプラグインっぽくgithubに配置する巻

経緯

数年前、.vimrcで遊びはじめたりプラグインをバンバン入れて遊んでいた頃の話。
.vimrcの機能の一部をプラグインディレクトリに分離した。
それ以来そこにずっと置き続けている。
しかし、他のプラグインはNeobundleで管理し、bundleディレクトリにある。
せっかくなのでこれも混ぜよう。
githubに公開すれば環境を他のPCに公開するときも.vimrc移せばいいだけになる。

内容

opukopu.hatenablog.com
:RCedと打つと新しいタブに.vimrcを表示するだけのプラグイン
数行しかないので.vimrcに書いても全く問題ないが、コマンドの定義は外に置くべしと偉い人に言われた気もするので分けてあった。

プラグイン

プラグインを作るための雛形を作ってくれるプラグインがある。
LayoutPlugin
というプラグイン

:LayoutPlugin RCedit.vim

として雛形を作成できる。
カレントディレクトリに作られる。

コード

autoloadディレクトリとpluginディレクトリがある。
これらはpluginがvim立ち上げ時に読み込まれるのに対し、autoloadはこのプラグインが呼び出された時に読み込まれるという違いがる。
大きなプラグインならば分ける必要があるだろうが、今回はたった数行のvim script。
pluginディレクトリのみ編集する。
pluginディレクトリにはRCedit.vimというファイルがあるのでこれに上記記事にあるコードをペーストする。

command! -nargs=0 RCed call s:RCedit#editvimrc()
function! s:RCedit#editvimrc()
	tab new
	edit $MYVIMRC
endfunction

ここで上記記事と異なるのは、function名の前にRCedit#があることだ。
RCedit.vimというディレクトリの下にプラグインを置く場合このように書く必要があるらしい。

README.mdを書く

一応公開するので念の為体裁を整えておく。
README.mdに適当なことを英語で。2行。体裁とは一体。。。
しかしmarkdownの文法はよく忘れる。あまり書かないからか。

ライセンス文を記載

念の為体裁を(ry
そもそもgithubを無料で使わせていただいている場合ライセンスははっきりさせておく必要があるようだし、これを期にちゃんと書くようにしよう。
githubでライセンスをつけるのは簡単です。
とりあえずリポジトリを作成したあとに、「Create New File」をクリック。
ファイル名をLICENSEとすると右にテンプレートの選択が出てくるのでMIT LICENSEを選択。
とりあえずMIT LICENSEにしておけば大丈夫なはず。
こちらのほうがわかりやすく書かれています。
blog.fakiyer.com
3行目をみてみるときちんと西暦と名前が自動で入っています。
READMEにもMITライセンスであることを記して完了…でいいのかな。

多分二度とやることはないだろうな。

結局

https://github.com/umkasab321/RCedit
こんな感じで公開できた。
今度からNeobundleでumkasab321/RCeditを指定するだけでよくなった。
ところで未だにdein.vimに移行する元気が起きない。
あとはてなのユーザ名とgithubの名前統一したいな…めんどい。

LinuxMintでのキー配置変更

もうなんどやったことか。
今日も元気にEscとMuhenkanを入れ替える。

ぶっちゃけUbuntuでxkbを使った入れ換えをするのと何ら変わらない。

d.hatena.ne.jp

http://blog.cnu.jp/blog/2014/05/12/use-xkb/

こちらを参考にさせていただきました。
ただ、ログインしてもうまく反映されない部分が私の環境ではあったので少しやり方を変えます。
言ってることは前のUbuntu版とほぼ変わりません。修飾キーは特に換えないので扱いませんが、Ubuntu+xkbのことを調べれば情報はあるはず。

まずは

$ xev

としてkeycodeと名前を調べましょう。私の環境ではEsc 9, Muhenkan 102でした。

$ mkdir -p ~/.xkb/keymap ~/.xkb/symbols  //設定ファイルを格納するディレクトリ
$ setxkbmap -print > ~/.xkb/keymap/hhkb_swap  //キーボード設定を出力 ファイル名は自由
$ echo -e "partial modifier_keys\nxkb_symbols \"swapkeys\" {\n  replace key <MUHE> { [ Escape ] };\n  replace key <ESC> { [ Muhenkan ] };\n};" >> ~/.xkb/symbols/keyswap //ファイル名は自由

設定を記したファイルをkeyswapというファイルに出力します。同じことをやるのは面倒なのでコマンドで出力しました。
中身は以下のようになっています。は/usr/share/X11/xkb/keycodes/evdevに先ほど調べたkeycodeの数字(9や102)と対応するように書かれている。自分が使うキーコードを探して<>で囲まれたものを設定ファイルに書けば良い。

partial modifier_keys
xkb_symbols "swapkeys" {
  replace key <MUHE> { [ Escape ] };
  replace key <ESC> { [ Muhenkan ] };
};

swap_keysという名前の入れ替えです。
つぎに~/.xkb/keymap/hhkb_swapを編集します。
5行目に先ほどのkeyswapというファイルのswapkeysを使うよということを追加します。

xkb_symbols { include "pc+us+jp:2+inet(evdev)+terminate(ctrl_alt_bksp)+keyswap(swapkeys)" };

$ xkbcomp -I$HOME/.xkb ~/.xkb/keymap/hhkb_swap $DISPLAY 2> /dev/null

このコマンドで変換が行われたか確認します。Warningがたくさん出てくるのですが、問題ないしようですし邪魔なので/dev/nullにエラー出力してしまいます。

以後はこれをログイン時に実行するように.profileに書いておきましょう。

$ echo -e "xkbcomp -I\$HOME/.xkb ~/.xkb/keymap/hhkb_swap \$DISPLAY 2> /dev/null" >> ~/.profile

あとはログインしなおせば変更されているはずです。

と思ったら反映されませんでした。
私の環境だけでしょうか、。なんとなくシェルの階層が違って云々みないな話題なのか、まあ原因はわかりませんが。

$ echo -e "xkbcomp -I\$HOME/.xkb ~/.xkb/keymap/hhkb_swap \$DISPLAY 2> /dev/null" >> ~/keyswap.sh
$ chmod 755 keyswap.sh

とでもしてkeyswap.shをスタートアップアプリケーションに追加して回避しました。

はじめてのLinuxMint

ひさびさにUbuntuを使ってみたら、ヘッドホンがしょっちゅう切れたり、なんだかんだ使いにくかったので前から気になっていたLinux Mintに切り替えてみました。

Linux Mintとは

UbuntuベースだけどUIがWindowsに似ていて使いやすいOS。世界ではWindowsMacUbuntuに次ぐ普及率だそう。
海外ではけっこう広まってるらしいが日本ではまだ認知度が低い?様子。最近は広まってきているような気もしますが。

linuxmintjp.jimdo.com
linuxmintjp.jimdo.com

くわしくはこちらをご覧ください。

ダウンロード

LinuxMintにはいくつかのエディションがあるようです。UIが違うんですかね。UbuntuでUnityとかGnome flashbackとかそんな感じ?(適当)

上記サイトに説明あるので、それを見てなんとなくかっこよさそうなのでCinnamonにすることにしました。

ダウンロードはミラーを使うのですが、公式サイトからのリンクには日本のミラーが存在しません(2016/12)。
少し調べたところ、もともと日本にもいくつかミラーはあったようです。
そのとき、Mintには日本の法に触れるパッケージが含まれていたらしく、JAISTを始めとするミラーサイトが配信を停止。
しばらくしてから再開したようです。
今回ダウンロードするLinux Mint 18はすべてのISOからそのようなパッケージがのぞかれたようなので安心して良さそうです。
ともかく、そのような経緯でリンクがないのでしょう、きっと。
いまはJAISTにあったのでそこからダウンロードしました。


わくわく。

追記
stdio.hが無いと怒られたのでlibc6-devをaptで入れておく。

Ubuntuでのキー配置の変更(16.04)

Ubuntu 15.04: キーボードのカスタマイズ設定 - 児童小銃
http://blog.cnu.jp/blog/2014/05/12/use-xkb/
こちらを参考にさせていただきました。
完全に自分用の投稿なのでここに迷い込んでしまった方は上記リンクから解決できるはずです。
Xmodmapでいつものようにキーマップを変えようとしたら入力メソッドの切り替えをするとリセットされるためつまづきました。
いまはもっとイケてる方法があるようですね。
XKBを使いましょう。どうでもいいですがキーボードはHHKBです。名前が似てますね。キーボードの略だから当然ですけど。

$ mkdir -p ~/.xkb/keymap ~/.xkb/symbols  //設定ファイルを格納するディレクトリ
$ setxkbmap -print > ~/.xkb/keymap/hhkb  //キーボード設定を出力 ファイル名は自由
$ echo -e "partial modifier_keys\nxkb_symbols "swap_keys" {\n  replace key <MUHE> { [ Escape ] };\n  replace key <ESC> { [ Muhenkan ] };\n};" >> ~/.xkb/symbols/hhk_swap //ファイル名は自由

次に二行目で出力したファイル5行目を
xkb_symbols { include "pc+us+inet(evdev)+hhk_swap(swap_keys)" };
と書き換える。

$ echo "hhkb:swap_keys = +hhk_swap(swap_keys)" >> /usr/share/X11/xkb/rules/evdev
$ gsettings set org.gnome.desktop.input-sources xkb-options "['hhkb:swap_keys']"

スクリプトにしてまとめてしまおうかと思ったけど、すこしめんどくさい。。。

線形代数学

ボヤキ

前の仮想化記事の雑談で触れたギルバートストラング先生の線形代数イントロダクション。

世界標準MIT教科書 ストラング:線形代数イントロダクション

世界標準MIT教科書 ストラング:線形代数イントロダクション

春休みの終わりからなんとなく読み続けていた。
しかし大学が始まってうまく読み進めることができなくなったので計画的にやっていく。

目次をみてみる。
第1章から第10章まで。
節単位で数えると46節。
アメリカの教科書はみんなこうなのか、デカイ、分厚い。
日本の教科書の比ではない。
辞書のような本だなあといろいろな意味で思っていた杉浦光夫先生の『解析入門』が可愛く思えてくる。
まあ、見た目だけの話だが。
中身は非常にわかりやすい。
問題数も多い。

問題数も多い。

ほんとうに多い。

46節だから一日一節読めば2ヶ月あれば読めるじゃん!とかぼさっと考えていた春休みでしたが…
MITの学生が半年かけてやる内容をそんな簡単にできるはずがないと気がつきました。

でも私はもうこの本が大好きになったので、がんばります。

真面目な感想

個人的な勉強日記ですが、この本のことを知りたい方が見ることも考えて少し真面目な感想も残します。
目次と第2章あたりまでを読んだ感想です。

上にも書きましたが大著です(物理)。
辞書的ではない、教科書としての数学の本でここまで大きな本は見たことが無いです。(生物や化学ではこれより大きな本はよく見かける。)
あまり持ち運びには適さないかと…

内容に関してですが、非常にわかりやすいです。
私が一年生の講義で買ったペラペラの教科書よりずっとわかりやすいです。
かと言って中身がきちんとある本であることは著者や過去の実績から明らかでしょう。
その点安心して読めます。

書いていることも、章ごとに一貫性があり、著者が伝えたい事が何か、はっきり示されています。
私が読んだはじめの部分では、線形結合について口酸っぱく書かれていました。

次に演習問題についてです。
豊富な演習問題がついています。
解答は日本と同じで丁寧に全て書かれているわけではありませんが、難問は全く無いと思うので問題無いでしょう。
4次元の図形を扱う問題など、面白い物もあって良かったです。

全体的に難易度は高くないように感じます。
理系なら誰でも読めるはずです。
ただし、ある程度行列の扱いに慣れていることを前提としている記述がちらほらあるように思います。
私の場合は高校で行列を扱っていますが、今は確か行列は数学の指導範囲から除かれたと聞いています。
なんの説明もなしに、逆行列行列式といった単語が出てくるので初めて線形代数を勉強する人は少し戸惑うかもしれません。
ただ、当然あとで詳しく扱っていますし、まだ扱ってないうちに出てきた時も重要ではないのであまり気にする必要はないでしょう。

私もピボットという単語が何を意味するのかよくわからなかったですが、読み進めているうちにわかりました。

以上でレビューは終わりです。あとは個人的なボヤキの続き

問題点

なにが問題かといえば明らかに分量が多すぎる。

特に練習問題
できるだけ演習をしながら進めたいが、ダラダラやってもしかたがないのである程度省いていく。

また、8,9,10章にある線形代数の応用については考えないことにする。(Amazonの中見で目次をみればある程度内容が把握可能です)
こちらは大学の前期授業が終わったあと、夏休みに取り掛かるか考えることにする。

ここから夏休みまでの目標は1-7章
すでに1章は終わったので2章から考える。

よく見てみると2章が7節,3章が6節,4章が4節,5章が3節,6章が7節,7章が3節となっている。
4月の残り時間を考えると2章を終えるのでやっとだろう。
5,6,7月で3-7章の計23節を扱いたい。
単純計算で月8節扱えば良い。
つまり一つの節に4日程度…

そう毎日ヒマではないので4日でこれを終えるのは厳しい。

演習問題のうち、挑戦問題は後回しにする。
それ以外は全てやっていく。

とりあえずそれで4月中の様子を見よう。

結果

4月 2章を終わらせる。
5月 3章と4章を2,3節終わらせる。
6月 4章のこりと5章,6章はじめを終わらせる。
7月 7章を終わらせる。

他にも量子力学統計力学という二大やっかいものがいるのでうまく立ち回らねば…