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

opukopuのメモ帳

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

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']"

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

HHKBの設定(Ubuntu編)

設定系 Linux

どうも消してしまったようなので備忘録として
記事を分けたのはHHKBを捨てたあとに自分が同じつまづきをすると思ったからです。
16.04です。
HHKBの背面は3だけオンです。それ以外はオフ、HHKモードです。
まずFcitxをアプリケーションから起動。
入力メソッドタブから下部にある+をクリックし、英語(US)を追加し、入力メソッド最上部に移動。
二番目にMozcを置く。

次に全体の設定タブから入力メソッドのオンオフにEscapeもしくはMuhenkanを設定。
これは私が左上のキーを入力切替に使用するからです。また、再インストール直後の場合その位置はEscapeになっていると思うのでその時はEscapeを指定してください。
普段であればVimを使うためEscapeを移動し、そこには他のキー、私は無変換をおいているので、それを指定します。
無変換はスペース横の◇キーだったはず。
ただ、入力メソッド切り替えキーの変更は下記の記事でキー配置を変えてからのほうがいいかもしれない。
opukopu.hatenablog.com

線形代数学

ボヤキ

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

世界標準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を数分でビルドしてみせたようなきがするのでそれで比較してみよう、いつか。


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

初めてのQt 第二章 クラス化

Qt

なんとなくクラスにしてみました。
こんなのでいいんだろうか…
昔さわったソースもこんな感じだったはず
そのときはQWidgetではなくQMainWindowでWindowを作っていました。

#include<QWidget>
class mainwindow : public QWidget{
public:
	mainwindow();
	
private:

};

mainwindow.h

#include<mainwindow.h>
mainwindow::mainwindow()
{
	this->resize(400,240);
}

mainwindow.cpp

#include<QApplication>
#include"mainwindow.h"
int main(int argc, char **argv)
{
	QApplication a(argc, argv);
	mainwindow *w = new mainwindow();
	w->show();
	return a.exec();	
}

main.cpp

前回からそうですが、Qt Creatorは一切使用しません。
使っているのはqmakeとgccvimのみです。
vimは好みですが。