研究してますか

研究しているときは更新されます。研究してないときは更新されません

リモートデスクトップで未来が見える

普段はMacBook Airを持ち歩いています。
おうちにはWindowsのデスクトップがあります。
大学にはWindowsのノートがあります。


互いに遠隔操作ができたら便利だと思うのは、人間なら当然の思考です。

しましょう。

TeamViewer

特に考えることはありません。
入れるだけです。

TeamViewer - ネット経由のパソコン遠隔操作(リモートコントロール)ソフト

感想

いちいちい報告するまでのことでもなかったように思います。

Quickrun.vimを使えたら嬉しい

嬉しいに越したことはありません。


ついでに、C++で書いたファイルを
OpenCVを使ってコンパイルできるようにしましょう。

導入

NeoBundle 'thinca/vim-quickrun'

からの

:NeoBundleInstall

学習しました。

設定

.vimrcに書くだけです。
もはやなんでも.vimrcに書けばいいような気がしてきます。

" -------------------
"  vim-quickrun
"

" 保険
if !exists("g:quickrun_config")
    let g:quickrun_config={}
endif

let g:quickrun_config  = {
            \   "_" : {
            \   "outputter/buffer/split" : ":botright 8sp",
            \   "runner" : "vimproc",
            \   "runner/vimproc/updatetime" : 40
            \   },
            \
            \   "cpp/g++" : {
            \   "cmdopt" : "`pkg-config --cflags opencv` `pkg-config --libs opencv`"
            \   },
            \}

"_"はすべてのtypeに関してということです。
出力は下側8行としました。

多分この書き方は良くないのですが、g++でコンパイルするのは今はOpenCVだけなので。
本当は

:QuickRun cv

って打ったらOpenCV使ってコンパイルして欲しいんですが。

勉強が足りません。


OpenCVのメモも残しておかないといけません。

vimで自動補完がしたい

しましょう。
neocomplcacheを入れましょう。

NeoBundleを導入する

まずはNeoBundleを入れないことには始まりません。
「初めてのvim」みたいになってますが、頑張りましょう。

Gitよりぶち込みます。

$ mkdir -p ~/.vim/bundle
$ git clone git://github.com/Shougo/neobundle.vim ~/.vim/bundle/neobundle.vim

.vimrcには次のように追加しましょう。

".vimrc

"----------------------------
"NeoBundle
"set nocompatible               " 既に入れてるので不要
filetype off                   " Required!

if has('vim_starting')
    set runtimepath+=~/.vim/bundle/neobundle.vim/
endif

call neobundle#rc(expand('~/.vim/bundle/'))

filetype plugin indent on     " Required!

" Installation check.
if neobundle#exists_not_installed_bundles()
    echomsg 'Not installed bundles : ' .
        \ string(neobundle#get_not_installed_bundle_names())
    echomsg 'Please execute ":NeoBundleInstall" command.'
    "finish
endif

何も考えなくても導入ができる社会に感謝しましょう。

最後にvim上で

:NeoBundleInstall

とする必要があります。

neocomplcache

本番です。
.vimrcに書き加えるだけです。

".vimrc

" vimで色々できるようにする(まだできない)。
NeoBundle 'Shougo/unite.vim'

" 色々なことに必要
NeoBundle 'Shougo/vimproc'

" 本番です
NeoBundle 'Shougo/neocomplcache'

" のちのち使えるようにしたい(まだできない)。
NeoBundle 'Shougo/neosnippet'

すごい人のお陰で生活ができていることに感謝しましょう。

参考ページ

neocomplcache.vim まとめ

その他いじったこと

人の.vimrcを"""参考"""にする事を糧にして生きています。

  • クリップボードでコピー、でペーストをできるようにした。
  • カーソルが行頭・行末で止まらないようにする。
  • 検索周りをいくつか。
" コピペ用
vnoremap <C-c> y:call system("pbcopy", getreg("\""))<CR>
nnoremap <Space><C-v> :call setreg("\"",system("pbpaste"))<CR>p

"カーソルを行頭、行末で止まらないようにする
set whichwrap=b,s,h,l,<,>,[,]

" 検索をファイルの先頭へループしない
set nowrapscan
" 検索結果をハイライト
set hlsearch
" ハイライトを除去
nnoremap <esc><esc> :nohlsearch<cr><esc>:set nopaste<cr>

これからやりたいこと

一生がいくつあっても足りません。

  • Unite.vimのありがたさを知る。
  • neocomplcacheC++ように調教する。
  • neocomplcacheのありがたさを知る。
  • neosnippetのありがたs
  • 朝早く起きるようにする。

感想

実際にプログラムを書かないと意味が無いと思いました。
htnさんありがとう。

TeXを使いたい(その2)

理系といえばTeXです。
TeXが使えない理系はあいさつができない人間と同じです。

MathJax

MathJaxというツールがあります。

一つ前の記事で、TeXを使うには

[tex:\displaystyle F(x)=\frac{1}{\sqrt{2\pi \sigma^2}}\int_{-\infty}^{\infty}\exp{\left\{-\frac{(x-\mu)^2}{2\sigma^2}\right\}}\ \mathrm{d}x]

のように記述すれば良いという話をしました。

出力はこのようになります。
\displaystyle F(x)=\frac{1}{\sqrt{2\pi \sigma^2}}\int_{-\infty}^{\infty}\exp{\left\{-\frac{(x-\mu)^2}{2\sigma^2}\right\}}\ \mathrm{d}x
簡単です。

ただ、こちらよりもMathJaxのほうがスタンダートだということを知りました。
導入したくなります。

導入

「管理」→「デザイン」→「カスタマイズ」→「ヘッダ」→「タイトル下」
に以下を追加するだけです。

<script type="text/javascript"
  src="http://cdn.mathjax.org/mathjax/1.1-latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"
></script>

簡単です。

テスト

使ってみましょう。次のように書きます。

平均\(\mu\)、分散\(\sigma^2\)の正規分布の累積確率分布関数\(F(x)\)は、
\[F(x)=\frac{1}{\sqrt{2\pi \sigma^2}}\int_{-\infty}^{\infty}\exp{\left\{-\frac{(x-\mu)^2}{2\sigma^2}\right\}}\ \mathrm{d}x\]
で与えられる。

次のように出力されます。

平均\(\mu\)、分散\(\sigma^2\)の正規分布の累積確率分布関数\(F(x)\)は、
\[F(x)=\frac{1}{\sqrt{2\pi \sigma^2}}\int_{-\infty}^{\infty}\exp{\left\{-\frac{(x-\mu)^2}{2\sigma^2}\right\}}\ \mathrm{d}x\]
で与えられる。

簡単です。

インライン数式だけ、通常は$$で囲む部分を\( \)で囲むということが変わるだけです。

せっかくなので$で囲んでも使えるようにしましょう。
次のように追加します。

<script type="text/x-mathjax-config">
  MathJax.Hub.Config({ tex2jax: { inlineMath: [['$','$'], ["\\(","\\)"]] } });
</script>

試してみましょう。

平均$\mu$、分散$\sigma^2$の正規分布の累積確率分布関数$F(x)$は、
・・・(以下略)

次のように出力されます。

平均$\mu$、分散$\sigma^2$の正規分布の累積確率分布関数$F(x)$は、
・・・(以下略)

TeXで文書を書くのと同じ気持ちでブログが書けます。
数式を使う研究科に入院したかった。


その他にもいくつか機能があります。

eqnarray環境を使いたい

平方完成をします。
\begin{eqnarray}
f(x) 
&=& ax^2+bx+c \\
&=& a\left(x^2+2\cdot \frac{b}{2a}x+\frac{b^2}{4a^2}\right)-\frac{b^2}{4a}+c \\
&=& a\left(x+\frac{b}{2a}\right)^2-\frac{b^2-4ac}{4a}
\end{eqnarray}


出力

平方完成をします。
\begin{eqnarray}
f(x) &=& ax^2+bx+c \\
&=& a\left(x^2+2\cdot \frac{b}{2a}x+\frac{b^2}{4a^2}\right)-\frac{b^2}{4a}+c \\
&=& a\left(x+\frac{b}{2a}\right)^2-\frac{b^2-4ac}{4a}
\end{eqnarray}

eqnarray環境は光。

数式番号を追加したい

運動方程式は
\[
    m\mathbf{a} = \mathbf{F} 
    \tag{3}
\]


出力

運動方程式
\[
m\mathbf{a} = \mathbf{F}
\tag{3}
\]

式番号の自動生成にはまだ対応していない様子。
あとboldmath環境は使えないみたい。
ベクトルはローマンの太字を使うことにしましょう。

マクロを追加したい

工学部なので微分のdはローマンにしないと消されてしまいます。
でも毎回mathrm{d}と入力するのは大変です。
マクロを追加しましょう。

$$
    \newcommand\diff{{\mathrm d}}
$$

\[
    \frac{\diff f}{\diff x} = \lim_{h\to 0}\frac{f(x+h)-f(x)}{h}
\]


出力

$$
\newcommand\diff{{\mathrm d}}
$$

\[
\frac{\diff f}{\diff x} = \lim_{h\to 0}\frac{f(x+h)-f(x)}{h}
\]

良いところ

  • TeXと同じ気持ちで数式が書ける。
  • 画像でないので、コピーが楽。
  • 正規分布の様子を見ると、積分がこちらのほうが綺麗。
  • マクロが追加できる。

悪いところ

  • iPhoneでは見られない。
  • ロードに少し時間がかかる。

iPhoneで見られない問題は対応してもらいたいところです。

感想

TeXを使った内容の記事を書くことは少ないから、あまり使う機会はなさそう。