読者です 読者をやめる 読者になる 読者になる

opukopuのメモ帳

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

.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でのキー配置変更

Linux 設定系

もうなんどやったことか。
今日も元気に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

日常 Linux 設定系

ひさびさに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)

Linux 設定系

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章を終わらせる。

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

仮想化とか、

SkyrimをやるがためにUbuntuを捨ててWindowsにしたが、一週間で飽きた上にWindowsだとコードが書けない病気ようなので再び。
とはいえOfficeとかWindowsでないとできないこともあるのでUbuntuを仮想化させる。。
FreeBSDあたりでも良かったが、Xを含めて使いやすいので。

仮想化にはVMware Workstation 12 Playerを使用。

Ubuntuを落としてきてざっと仮想化の設定をした。
プロセッサ数8 メモリ5GB/(8GB)とかにしたけどこんなんで平気なんだろうか。
あとからでも変えられるようなのでとりあえずこれで行きましょう。

実際Windows使っている時間より長いだろうし。

仮想環境が整ったらまず言語を日本語にする必要がある。
あとは過去のUbuntu再インストールの記事にあることあたりをやっていけばおしまい。

とりあえずUnixBenchしてみる。

時間かかりそうなのでときどきパフォーマンスをWinとUbuntu両方で確認しながら線形代数の勉強をする。


1年生のころはなんの役に立つのかわからなかった線形代数も、固有値の問題が他の分野で出てきてからやったほうがいいかと思い真剣に勉強を始めてみた。

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

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

まだ読み始めたばかりだがなかなか面白い。
できることなら一年生のうちに出会いたかった。
とはいえ、これが出たのがつい最近のようなので出会えるはずがないのだが。

これから3年生になるが今からでもやらねばと思わせてくれる。
あの時イマイチつかめなかった、線形という言葉の直感的な意味を掴ませてくれる。
線形代数学の重要性を感じさせてくれている。

なんだかんだ言ってるうちにUnixBenchが終わる。

結果約4500点。
いいのか悪いのかよくわからない。

仮想化などさせない状態での点数をよく覚えていないので仮想化がどれほど影響しているかわからない。

それなりにいい部品使っているから相応の働きはしてほしい。
Ubuntu時代にBoostを数分でビルドしてみせたようなきがするのでそれで比較してみよう、いつか。


最後に忘れていたソフトウェアの更新を行い、今日はおしまいとしましょう。

Raspiとケーブル

Rasberry pi 日常

実は第二回です。
Raspiがらみのボヤ記。
じわじわラズパイをサーバに仕立てあげようとしてましが致命的な問題がありまして。
家の無線LAN親機に付いているハブにLANケーブル(2m)をつなげてその辺のコンセントから電源を取ろうと思っていました。
別にディスプレイつなげたりするわけでもないので隅っこにおいておけばいいので。
ただ、コンセントまで届かない、LANケーブル短い、いい感じの場所がないなどそもそも置けないのです。
ふらっと寄ったビックカメラで衝動でLANケーブルを買いましたがもう少し考えればよかったです。

まだラズパイは稼働していないのですぐに対応する必要はないのですが、そのうち別にハブを買ってきてつなげようと思いました。
家の環境が近々大きく変わるのでケーブル類の配置も位置からやり直すことになったのです。
その結果どうやら私はLANポート1つ分だけ割り当てられ、その中で色々つなげるようにするためいつかはハブが必須になります。
なので今買ってもいいかなと思いました。

なんとなく
Amazon.co.jp: BUFFALO Giga対応 金属筺体 電源内蔵 5ポート ブラック スイッチングハブ LSW4-GT-5NS/BK: パソコン・周辺機器

このへんに目をつけています。
ところでこういったハブにはLANケーブルってついてくるのでしょうか。
一本入っているという話を前に聞いたことがありまして。
それならわざわざ買う必要もないなあと。
ハブ買ってからLANケーブルを買いに行けばいいだけなんですけどね。