備忘録とか日常とか

学んだこととかを書きます。

半角/全角の変換をmac風にする(windows10, Linux)

先日のWWDC2016は個人的には残念な結果でした。。
ハードに関する情報は一切なく、iOSやらSiriやら開発者向けの内容が多かったです。
まあ「初めからそういう発表会だから!」と言われればその通りだけど・・・


以前からmacbook airを買おうと画策していたのですが
いよいよ買い時がわからなくなってきたので、
気分だけでもmac使ってる風になろう!
ということでタイトルの通り。


macではスペースキーの左右に英数/かなキーが用意されており、
半角/全角キー(キーボードの左上)まで手を伸ばす必要がありません。
windows/Linuxでは変換/無変換をそれらに割り当てることでmac風な入力が可能となります。
要はIMEのオンオフをそれらに割り当てるということ

慣れればそこそこ作業スピードが上がりそうです。
以下その方法↓


Linux

ubuntu14.04で確認。多分それ以外でも可能

Mozcのインストール

Linuxには標準で日本語入力機能が搭載されていないので、IMEをインストールします。
(ubuntu14.04には初めから入っていたので必要なし)

$ sudo apt-get install ibus-mozc

Mozcの設定

superキー(windowsキー)を押して「mozc」と打ち込み、"Mozcの設定"を選択。
「キー設定の選択」の欄の編集ボタンをクリック。

するとMozcキー設定というウィンドウが開くので、以下のように設定する。

  • モード「直接入力」、入力キー「Henkan」のコマンドを「IMEを有効化」にする
  • モード「入力文字なし」、入力キー「Muhenkan」のコマンドを「IMEを無効化」にする


設定後に新しくウィンドウを立ち上げて確認。
変換キーで全角、無変換キーで半角入力が可能となる。

何かの拍子に設定が狂って変換/無変換キーが使えなくなった時のために
全角/半角キーの設定は変更しないことをおすすめします。。

設定を戻したいときは「キー設定の選択」欄で「MS-IME」を選択すると元に戻ります。

Windows10

windowsキーを押してCortanaに「IME」と打つ。(ちょー便利!)
Microsoft IMEの設定」というのが出るのでEnter


開いたウィンドウで「詳細設定」ボタンを押す。


全般タブの編集操作の欄で、キー設定 -> 変更を押す。
するとキー割り当てのウィンドウが出てくる
こんなの↓

f:id:may46onez:20160623212321p:plain


あとは

  • 「キー」列が「変換」の行で、「入力/変換済み文字なし」列のところを「IME-オン」にする
  • 「キー」列が「無変換」の行で、「入力/変換済み文字なし」列のところを「IME-オフ」にする

これで完了。
windows10以外でもIME設定のところをいじればできるはず。


余談だがCortanaはすごい便利。(音声入力は知らん)
何か設定を変えたいときにキーワードを打って検索すると大体出てくる。
新スタートメニューもなかなかいい感じ。あんま使わないけど。


あとは仮想デスクトップ回りとかをもう少し洗練された感じにしてくれると使いやすくなるんだけどなー。
デスクトップ切り替えながらアクティブウィンドウ移動とか。
キー割り当てを変えられるとなお良いんだけどさすがに無理かな・・・

公式の対応に期待です。

BUMP OF CHICKENの初スタジアムツアー”BFLY” in 大阪 物販のコツ・ちょっとだけ感想

タイトルの通り!

BUMP OF CHICKENは今年20周年を迎えて,4月から初のスタジアムツアーを開始してます
大阪→愛知→福岡→神奈川という行ったり来たりのスケジュール(笑)

大阪・京セラドームでの初日ライブに行ってきたので記念に。


多少ネタバレ(?)を含む可能性があるので
今後のツアー参加予定の方はご注意ください。
演出については言及しません。

続きを読む

matlabとnumpy reshapeの違い その2(多次元配列)

以前もnumpy(python)とmatlabのreshapeという関数の仕様の違いについて書いた
may46onez.hatenablog.com

今度は多次元配列(3次元)で引っかかったのでメモしておく。

numpy.reshapeの仕様

numpyで一次元配列(ベクトル)から3次元の配列にreshapeすると以下のようになる。
例として3x4x2の配列を作る。

>>> a = numpy.arange(24)
>>> a.reshape((3,4,2))
array([[[ 0,  1],
        [ 2,  3],
        [ 4,  5],
        [ 6,  7]],

       [[ 8,  9],
        [10, 11],
        [12, 13],
        [14, 15]],

       [[16, 17],
        [18, 19],
        [20, 21],
        [22, 23]]])

これはmatlab風に書くと、

a(:,:,1) =

     0     2     4     6
     8    10    12    14
    16    18    20    22


a(:,:,2) =

     1     3     5     7
     9    11    13    15
    17    19    21    23

という配列である。
numpyでは要素を最後の次元から埋めるので(この場合第3次元, 3x4x2の2から埋める)
a(1,1,:)に0,1が入り、次にa(1,2,:)に2,3が入り...というふうに。

matlabの仕様

一方matlabで同じことをすると、

>> a = 0:23;
>> reshape(a, [3,4,2])

ans(:,:,1) =

     0     3     6     9
     1     4     7    10
     2     5     8    11


ans(:,:,2) =

    12    15    18    21
    13    16    19    22
    14    17    20    23

matlabでは要素を最初の次元から埋める
次元が増えても同じっぽい

解決法

ちょっと調べたけど一発でこの差異をなくす方法がわからない。。
2次元配列をちまちまreshapeしてからcat()で繋げるとか...?

もうちょっといいやり方があるような気もするけど...

Bengio先生著のDeep learning本が凄そう

ここ最近Deep learning(あるいは人工知能)関係の記事を目にしない日はない
そういっても過言ではないほど何かしらの情報が出回ってるように思う


正直言って機械学習の諸分野に興味はあるものの、
こうハイペースに畳みかけて来られるとちょっと勉強するのも億劫になってしまう。
Convolutional neural netだけに。。


今ではもうDeep learningや機械学習に関する色んな書籍やら解説スライドやらが出回っているので
勉強する環境はかなり整ったように思う、

基礎知識は知ってて当然として話を進めるものも多いように思う
線形代数や確率・統計論をはじめとするいわゆる数学的な知識だとか。

まあちゃんと一から教科書引っ張り出して勉強すればよいのだけども・・・


僕の場合、いざ線形代数とかを勉強してみても、
「で、これどう使うの?」
となることが多いです。理解力に乏しいので。。

Bengio先生ばんざい

そんな人のための画期的な本が今まさに出版されようとしてる
Bengio先生らのDeep learning

この本はDeep learningが現在のような脚光を浴びるようになった歴史から
機械学習に必要な数学的基礎知識、代表的なアルゴリズム
さらに最新の研究まで取り上げている。

ちょっとだけ読んでみたところ
基礎の数学部分では、本質的な説明がなされており
今まであやふやだった概念の理解に大いに役立った


あとこの言葉が印象に残った

Many mathematical objects can be understood better by breaking them into
constituent parts, or finding some properties of them that are universal, not causedby the way we choose to represent them.

決して専門家同士で意思疎通を図るためのものではありませんよ、ということらしい
おかげさまで機械学習における線形代数の本質が垣間見れたような気がしますよ。


現在この本は校正中らしく、もうじき出版になると思われる
ドラフト版は無料で見れる。
コピー対策のためにpdfは用意しませんて言ってるんだけど
ブラウザの印刷メニューから普通にpdf保存できるんだよな・・・いいんかな保存しても


Bengio先生といえばニューラルネットの第一人者として君臨されているお方です
そんな人の書いた本が無料で読めるんだから読まない手はない!
ただし全編英語!!

しばらくこれで機械学習と英語勉強しようと思います

複数のpdfを結合してしおりをつける(windows)

複数にわかれたpdfファイルを結合し、かつページ数が増えたpdfに対ししおりを作成する必要に迫られたので、手順をメモしておく。

pdfファイル結合

pdfの結合に関しては、今の時代便利になったもので
以下のサイトに結合したいpdfファイルをアップロードすれば自動で結合してくれる。
smallpdf.com
専用のソフトをインストールする必要がないというのは個人的にありがたい。。

しおりをつける

次にしおりを作る。
しおりというのは、クリックしたら目的のページへ飛べるリンク機能である。
大体どのビューアでも左端に表示できると思う

↓こういうやつ
f:id:may46onez:20160331233825g:plain

Adobeが公式に売り出しているのがAcrobatというpdf編集ソフトなのだが、
どうやら高価らしいのでフリーソフトを使うことにする。

今回使ったのはJPdfBookmarksというソフト。
ここからダウンロードできる
こちらもインストール不要。

手順としては
1. JPdfBookmarksからpdfファイルを開く
2. しおりを作成したいページまで移動し、左端のしおり作成ボタンを押す
3. 保存する(新規に保存することも可能)

である。
このページが画像付きでわかりやすいかも。
章立てごとにしおりを階層構造にすることもできるし、
しおりデータをテキストファイルとしてエクスポートする機能もある。


特にページ数が長いpdfだったり、タブレットに入れて読むつもりなら
読みやすさが段違いなのでしおり作成は必須ですね。