356びぼーろく; 再 google drive の自動同期

rcloneを使ってgoogledriveと同期していたが、やはり面倒なので自動的にやってほしい。
双方向同期をしてくれる grive2 とファイルの状態を監視してくれるincronでgoogle driveを同期することに成功したようなので、そのメモ。
grive2はgriveのフォークされたものらしい(詳しくはここを参照)。

grive2はdebianのパッケージにはないので自分でコンパイルが必要。おそらく書いてあるとおりにやればOK。
まずは必要なパッケージをインストール。

    apt-get install git cmake build-essential libgcrypt11-dev libyajl-dev \
    libboost-all-dev libcurl4-openssl-dev libexpat1-dev libcppunit-dev binutils-dev \
    debhelper zlib1g-dev dpkg-dev pkg-config

適当な作業ディレクトリにgriveのファイルをコピーしてコンパイルを実行。

    mkdir GRIVE2
    cd GRIVE2
    git clone https://github.com/vitalif/grive2
    cd grive2
    dpkg-buildpackage -j4

最後に鍵がないと怒られるがパッケージ自身はGRIVE2以下にできているはず。公開するパッケージでもないので、とりあえず良しとする。
あとはgdebi等でインストールする。 うまくできていればGRIVE2以下は不要なのでGRIVE2は削除してもOK。

さて、google driveと同期したいディレクトリを ~/GOOGLEDRIVEとする。 まずは以下を実行。

    grive -a -p ~/GOOGLEDRIVE

うまく行けばgoogleに認証してもらうためのリンクが表示されるので言われたとおりに認証し、コードを取得する。 後はgriveに取得したコードを入力する。
うまく行けば同期が始まるので同期が終わるまでのんびり待つ。

今回の最大目的は同期の自動化なので、~/GOOGLEDRIVEを監視して、変更があればgriveを動かすようにしたい。 そこでincron(inotify clon)を利用する。
まずは必要なものをインストール。

    apt-get install incron

incronはそのままだと通常ユーザーは使えないそうなので、/etc/incron.allow に自分のユーザー名を追加しておく。 (ファイル自体を削除するという記事も見かけたけど、一応許可するユーザを追加することにした)

その後はincrontab -e で以下を追記。

/home/ユーザー名/GOOGLEDRIVE IN_MODIFY,IN_ATTRIB,IN_CREATE,IN_DELETE,IN_DELETE_SELF,IN_CLOSE,IN_MOVE_SELF,IN_MOVE,IN_NO_LOOP /bin/sleep 4 &&/usr/bin/grive -p $@

書式は 「監視する対象(ディレクトリ可)」 「監視イベント」 「イベントが起きたときの実行するコマンド」 となっているので適宜入力。
監視イベントはいまいち良く分からないので、このあたりを参照。inotifyとよく似ているが、最後のIN_NO_LOOPは「実行するコマンドが完了するまで、イベント監視を無効にする」らしい($@は監視する対象を表す変数)。
ちなみに、なぜか$PATHは反映されていないらしいのでコマンドは絶対パスで書く。
(未確認)

うまく実行されているかどうか適当にテストしてみてうまく同期されているかどうか確認する。 一応/var/log/syslogも確認しておくと安全かも。

さて、このままだとgoogle driveで変更があった場合に同期されないので、通常のcronで適当な感覚で同期してもらうことにする。
crontab -e で以下を追加。

     */15 * * * * grive -p ~/GOOGLEDRIVE

これで15分毎にgriveが実行されるはず。

さて、これでgriveが定期的にかつローカルのファイルが変更されれば自動実行されるようになった。うれしい。

355びぼーろく; ニンテンドースイッチ

今やっている研究に若干の光明が差し始めた(ような気がする)。
これが気のせいでないことを祈るばかり...。

せっかくボーナスも出たのでニンテンドースイッチを購入。
ついでに名作と名高いゼルダも購入。
ほぼ毎日6時間以上リンクと冒険している。あっちの世界の住人と言えるレベル。


ついでに雪に備えてスコップも購入。これで雪が降っても大丈夫。
リンクと冒険している間こたつが冷たいので、電気カーペットを購入しようかどうかを検討中。



さて、同僚が試験を作成する際、enumerate環境を使わずにやっているらしく、せっかくなので、自前でできないかどうかをやってみるとうまくいったのでそのメモ。

基本的にはenumerate環境と同じように使えることを目標としたが、当然本家とは比べ物にならない出来なので微妙なところ。


まずプリアンブルに以下を追加。


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 大問・小問を自動でつけてくれるやつ始 %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcounter{DaimonNumber}
%%大問カウンタの作成
\setcounter{DaimonNumber}{1}
%%大問カウンタの初期化
\def\Daimon{
\setcounter{SyoumonNumber}{1}
%%小問カウンタの初期化
\noindent
\theDaimonNumber .
%%大問番号表示
\addtocounter{DaimonNumber}{1}
%%大問カウンタを1増やす
}
\newcounter{SyoumonNumber}
%%小問カウンタの作成
\setcounter{SyoumonNumber}{1}
%%小問カウンタの初期化
\def\Syoumon{
~(\theSyoumonNumber)
%%小問番号表示 かっこつけて、ちょい字下げ
\addtocounter{SyoumonNumber}{1}
%%小問カウンタを一つ増やす
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 大問・小問を自動でつけてくれるやつ終 %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Daimon といれると1、が出力される。次に\Daimonが出てくると2、が表示され、3、4、...と続く。 小問の場合は\Syoumonは(1)、次の\Syoumon で(2)...と続く。 \Syoumonの数字は次の大問(\Daimon)が出てくるとリセットされる。 これで \Daimon \Syoumon \Syoumon \Daimon \Syoumon \Syoumon \Syoumon \Syoumon と入力すると、 1、(1)(2)2、(1)(2)(3)(4) と出力される。 ついでに丸囲み文字を順番に出力するmarugakomi 環境も作成。 プリアンブルに以下を追加。

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 選択肢を自動で作るやつ始 %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcounter{MARUNumber}
%%丸囲みで使うカウンタ作成
\def\MARU{
\textcircled{\theMARUNumber}
%%丸囲み番号表示
\addtocounter{MARUNumber}{1}
%%丸囲みカウンタを1増やす
}
\newenvironment{marugakomi}
{
\setcounter{MARUNumber}{1}
%%丸囲みカウンタの初期化
~\\
%%最初に改行する
}
{
\setcounter{MARUNumber}{1}
%%丸囲みカウンタの初期化
~\\~\\
%%最後に改行する
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 選択肢を自動で作るやつ終 %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
使い方は

\begin{marugakomi}\maru ほげ、 \maru ふが\end{marugakomi}

で①ほげ、②ふがと表示されていく。

354びぼーろく; 続 exim4 で gmail アカウントにメールを転送する

以前、exim4 で gmail アカウントにメールを転送する で設定方法を書いたけど、どうやら最近いろいろと変わったようなので書き直し。

こことかここ とかを参考にしながら設定。
まず、exim4をインストールし設定する。
aptitude install exim4
dpkg-reconfigure exim4-config
  * メール設定の一般的なタイプ ->スマートホストでメール送信: SMTP または fetchmail で受信する
  * システムメール名 ->localhost
  * 入力側 SMTP 接続をリスンする IP アドレス ->127.0.0.1
  * メールを受け取るその他の宛先 ->未入力
  * メールをリレーするマシン ->未入力
  * 送出スマートホストのIPアドレスまたはホスト名 ->smtp.gmail.com::587
  * 送出するメールでローカルメール名を隠しますか ->いいえ
  * DNS クエリの数を最小限に留めますか (ダイヤルオンデマンド) ->いいえ
  * ローカルメールの配送方式 ->/var/mail内のmbox形式
  * 設定を小さなファイルに分割しますか ->いいえ



次に/etc/exim4/passwd.client に以下を追加。

gmail-smtp.l.google.com:ユーザ名:パスワード
*.google.com:ユーザ名:パスワード
smtp.gmail.com:ユーザ名:パスワード

ユーザー名とパスワードはそれぞれ自分のgmailアカウントのものを使用する。

ユーザー名はユーザ名@gmail.comのユーザー名を入れる。
パスワードは二段階認証を実施している場合はアプリパスワードをここから発行し、そのパスワードを書く。
(あるいは安全性の低いアプリのアクセスを許可するのでも良いのかも。)

あとは/etc/exim4/email-addresses に

ログイン名@localhost: ユーザー名@gmail.com

を追加し、/etc/aliases の最後に

ログイン名: ユーザー名@gmail.com

を加える。で、最後に update-exim4.conf を実行する。

一応確認として、
exim4 -qff
tail /var/log/exim4/mainlog
でログを見て問題なければおそらく大丈夫。

一応テストメールとして、
echo "This is a test" | mail -s "TESTMAIL" ユーザー名@gmail.com
とかやってgmailに届いていればおそらく大丈夫。

さて、imapで受信したメールもついでに転送したいのでそのあたりの設定をする。
まずはfetchmailをインストール。

aptitude install fetchmail

その後、fetchmailの設定ファイル .fetchmailrc をホームディレクトリに作成する。
内容は以下のように入力する。

set postmaster "ユーザー名@gmail.com"
set no bouncemail
set no spambounce
set syslog
poll "受信したいメールサーバー"
proto imap
username "受信したいメールのアカウント(ユーザー名)"
password "受信したいメールのアカウントのパスワード"
smtpname "ユーザー名@gmail.com"
smtphost "localhost"
no mimedecode
keep
ssl

パスワード等が入っているので、パーミッションを変更。

chmod 0700 ~/.fetchmailrc

これで、以下を実行するとメールを読みに行って転送してくれるようになるはず。
試しに、
fetchmail -c 
でうまく受信しているかどうかを確認する。
うまく送信しているようであればcronに登録しておく。
crontab -e 
で以下を追加。
(2020/2/11追記: fetchmailがハングアップしないように60秒で接続を打ち切るように設定。 )

# Forward Mail To Gmail
# at every 3 minites with:
   */3 * * * * fetchmail -t 60

これでうまくいくはず。これでしばらく苦労はしなさそう。




353びぼーろく; lilypond の覚書

久しぶりに一生懸命lilypondの入力をしていると、忘れていることが多かったことに気づいたのでメモとして残しておく。

  1. トレモロ

    トレモロを書くときは

    \repeat tremolo 4  g32

    とする。これで「三十二分音符のソを4回繰り返すトレモロ」=「八分音符のソに旗が三本」が書ける。が、いちいち書くのはめんどくさいし直感的ではない。
    そこで、

    g8:32

    と書くと代用できる。これに早く気づけばよかった。二回目以降はコロンだけで三十二分音符のトレモロを書いてくれる。なので

    g8:32 a8: b8: c8: d8:

    とすると八分音符のソラシドレをトレモロで表記してくれる。
  2. 和音の繰り返し

    和音が連続する場合は 二回目は qと書くと前の和音を書いてくれる。
    lilypondで和音を書くのは結構面倒なので、とっても便利。
  3. 一時的な多段(division)

    以前も書いたが、リンク先が消えたようなのでこの際まとめておく。
    division指定がある時、和音の形で書いていると場合によってはごちゃごちゃして読みづらいので、多段にしたいときがある。
    lilypondでは下記のようにすると(一応)一時的に多段ができる。

    ・・・・
    \break
    \new ChoirStaff
    <<\new Staff
    {一段目の音楽}
    \new Staff
    {二段目の音楽}
    >>
    \break
    ・・・・


    ただし、このままだと三段になってしまうので\scoreセクションの中の
    \contextセクションに
    「\Staff \RemoveEmptyStaves」を入れておく。

    \context{\Staff \RemoveEmptyStaves}


    \new Staffにした場合、拍子・調性なんかは全て書き直す必要がある。
    いちいち追加するのは面倒なので global とかでまとめてしまうと良さそう。
    それから、前後に\breakを入れて改行したほうが良い。
  4. cresc,dim等の点線

    cersc,dim等は次の音量記号か指定する場所(\!で表す)まで点線が伸びる。
    逆に、これを指定しないと書いてくれない。結構面倒なので、点線を書かないようにしておく。

    \override DynamicTextSpanner.style = #'none

    とするとOK。
  5. 長いトリル

    トリルが始まる音に\startTrillSpan、 トリルが終わる音に \stopTrillSpanでOK。
  6. ガイド

    ・・・
    \new CueVoice{
    \cueClef ガイド楽器の音部記号(大体treble, alto, bass の内のどれか)
    音楽
    \cueClefUnset
    }
    ・・・
和音のトレモロを連続して何回も書く場合はとても面倒で腱鞘炎になりそうになったが、随分楽に書けるようになった。これで大体のパート譜は清書できるようになったかな?

さて、今使っているglobalを残しておく。

  global =
    {\clef alto 
           %%ヴィオラ譜面なので
     \set Staff.instrumentName = #"Viola " 
           %%ヴィオラ譜面なので
     \compressFullBarRests           
           %%Rで指定した全休符の小節はまとめてくれる。
     \override DynamicTextSpanner.style = #'none   
            %% dim,crescの点線は表示しない。
     \set Score.markFormatter = #format-mark-box-alphabet
            %%リハーサル記号は箱囲みのアルファベット
            %% その他必要なグローバルオプションはこちらへ
    }


globalfirstmovement =  %%1楽章のグローバルオプション
  {
   \global
   \key a \major  %%イ長調
   \time 4/4        %%4/4拍子
   %%その他必要なものはこちらへ。
 
  }

という感じ。

352びぼーろく; 卒業生

先日来た研究会の案内を読んでいると、世話人の中に以前卒業研究を担当した学生の名前を見つけた。
D1だけど既に論文も書いて海外で発表もしているようで、かなり活躍しているいるらしい。そのような人の手助けが少しでもできたのかなと思うととてもうれしい。
久しぶりに会いに行ってみようかな。


最近、勉強している論文を一生懸命読んでいると、「間違いかな?」と思える箇所があったので、わざわざ掲載されている論文を取り寄せてもらった。
おそらく間違いが訂正されているに違いない、と読んでみると、同じことが書いてあった。
よくよく考えてみると、結局自分の思い違いだった...。恥ずかしい。

351びぼーろく; ascmac.sty →tcolorbox.sty へ乗り換え

今まで一生懸命ascmacを使っていたが、もう大分古いということでtcolorboxに乗り換えた。
随分前からluatexに移行したもののascmacをがんばって使ってきた。
luatexは縦書き対応していないらしく、このままだとちょっと難しい。
何とかしてきたけど、面倒になってきたのでこの際思い切って乗り換え。
やることはプリアンブルに以下を追加するだけ。
\usepackage{tcolorbox}
あとは本文中に
\begin{tcolorbox}
[title=タイトル]
本文
\end{tcolorbox}
でascmac代わりのきれいなスタイルが書けるようになった。
デフォルトでは背景が薄いグレーなので、オプションでcolback=whiteをつけると良いかも。ということで今使っている基本形は以下の通り。

\begin{tcolorbox}
[title=タイトル,colback=white]
本文
\end{tcolorbox}

色指定の書式がtikzと似ているなと思ったら、tcolorboxはtikzで描いているらしい。

さて後輩がわざわざ来てくれたので、少し議論した。
以前から調べてみたかったことをやることになった。優秀な後輩がいると 便利 研究が捗るなぁ。

350びぼーろく; 出張

大阪出張が決まったものの、依然として進展はなし。ちょっとまずい気がしてきた。
今回は向こうが全額負担してくれるので、なにか結果を持っていかないと。
久しぶりにdot/ undot  記法が出てきてかなり面食らった。結構忘れてるなぁ。


さて、最近シェルをbash からfishに変えてみた。linux 11年目の初心者だけどそろそろbashを卒業してもいいかなと思ったのが理由。

とりあえずこれまで書いたシェルスクリプトはちゃんと先頭に #!/bin/bash と入れてあるのでシェルを変えても動くはず。
(効率とかは一切考慮しない。初心者なので。)
全部変えるのは(初心者なので怖いので) ログインシェルはbashのままで、bashからfishを呼び出すことにした。


まずはfishをインストール。
aptitude install fish
その後、~/.bashrcの先頭部分を編集。(ここを参考にした。)
case $- in
    *i*) ;;
      *) return;;
esac

case $- in
    *i*) exec fish;;
      *) return;;
esac
と書き換え。

後はfishでPATHの設定をしておく。(ここを参考にした。)
~/.config/fish/config.fish を編集して(なければ作成)
set -x PATH $PATH $HOME/bin
を書いておく。

今までは--help とかman とか見てたけど、tabで使用方法が参照できるのが嬉しい。
しばらく使ってみよう。
ただbashと若干違うところがちらほらあるので、なれるまでがちょっと大変かも。

349びぼーろく; rclone

最近、googledriveを同期するためにrcloneを使い始めた。
以前と違って、debianのリポジトリに登録されたのでとっても便利。
aptitude install rclone
設定は前回と同じなので割愛。syncの使い方がいまいちわかっていなかったのでメモ。

まず、ドライブ名がGOOGLEDRIVEであったとして、手元にgoogledriveというディレクトリがあるとする。
手元にgoogledrive/hogeがあったとして、GOOGLEDRIVEと同期したいときには
rclone sync googledrive/hoge GOOGLEDRIVE:
とする。逆に、リモートから同期したい場合には
rclone sync  GOOGLEDRIVE:hoge googledrive/hoge
とする。また、同期と言ってもlocalで削除したファイルはドライブ上で削除されることはない。
マニュアルでsyncの項目を見てみると、
Make source and dest identical, modifying destination only.
となっているので、そのあたりは注意が必要。


最近office onlineなるものを初めて知った。もちろんネットワークにつながるところじゃないと使えないけど、出先でちょっと編集するときにはとても便利。
Dropboxを利用していれば、Dropbox上のファイルも編集できる。ありがたい。

ただし、doc等の古いファイル形式のものは開けないので、そのあたりが融通が効かない。
でも今後はこれを使うことになりそう。

348びぼーろく; エキスパート?

以前の計算からちょっと方針転換することになり、只今絶賛勉強中。
途中で、どうやって導出したのか謎(と以前は思っていた)だった部分が見事に再現できた。とてもうれしい。今はこの計算のエキスパートになれた気がする。

そういえば昨日届いたメールで、「あなたはこの分野のエキスパートだろうから、論文を投稿しませんか」といういつもの勧誘メールが届いていたが、その雑誌の対象は僕の専門分野とほとんどかぶってなさそうな雰囲気だった。
どういうつもりで出したんだろうか。とても不思議。


久しぶりにナイトメアビフォアクリスマスを見た。やはりとっても良い。
せっかくなので Oogie  Boogie font をインストールした。使うかどうかわからないけど。
とりあえずlibreofficeで使うことができれば良いので、 ここ からzipファイルをダウンロードして  ~/.fontsに展開した。
いちおう Free for personal use と書いているので、仲間内の非営利使用ならOKということだろうか。
また機会があったら使ってみよう。

347びぼーろく; goa-daemonの再起動

debian stretch がリリースしたので定番の寄付をすることにした。
といって寸志程度だけど。開発者の皆様ありがとうございます。

さて、gnomeではgnome online account でgoogle driveがマウントできたり、google calendar と同期できたりする。
が、起動してしばらく経つと「資格情報が無効です」と言われるようになる。
なぜだろうか。とりあえず、goa-daemon を再起動する。
dbus-daemon 経由で起動するらしいので、dbus-daemonを再起動すると一応同期してくれるようになった。

service --status-all 

でサービス名を確認して、

service dbus --full-restart

で再起動。でもちょっと時間がかかるのが難点。

それから特に理由はないがfcitxをインストール。とりあえずibusからの乗り換え。

346びぼーろく; lilypond復活?@stretch

今日のcron-aptからのアップデート情報によると、lilypond から guile依存性がなくなったようだ。
一応パッケージ情報を確認してみると jessie と stretch-backports  となっていて、stretch-backportsではguile1.8は不要となっていた。
ということでstretchでもlilypond が使えるようになったらしい。開発者の方ありがとうございます!!

さて、昨年初めてふるさと納税をしたら、カタログが送られてきた。去年は寄付(返礼なし)だったので今年は本格的にふるさと納税してみようかと思案中。

345びぼーろく; 祝 debian/stretch リリース

同僚が結婚した。おめでたい。debian/stretchも無事リリース。おめでたい。
頻繁にあったアップデートがなくなったので、不思議に思っていたらいつの間にかリリースされていた。以前にリリース日を調べていたのにすっかり忘れていた。

さて、やり直し途中の計算は途中でうまく行かなくなった。なんでだろう?
これはしばらく寝かすコースに突入しそうな感じ。

344びぼーろく; 祝 stretchリリース(予定)

6/17にstretchリリース予定だそうな。
ま、もうすでに全部stretch(testing)に置き換えているのであまり問題はないけど。
毎度ながら開発者の皆様に感謝。こちらからできることは少ないので、感謝の意を込めて寄付でもしよう。
結局stretchにはlilypondは含まれなさそう。やはり、一時的にパッケージをsidかjessieから借りてくるしかないようだ。


さて、これまでやっていた計算はすべておじゃんになった。悲しい。

343びぼーろく; debiandog のインストール

前から使っているPCがおそすぎてイライラしてきたので、debiandogに乗り換えた。
debiandogはpuppylinuxのdebian版。
本当に早くなったので低スペックのPCはしばらくこれで行けそうな感じ。
ただし、本当にいろいろなサービスが動いていないので、自分でインストールして起動する必要がありそう。

さて、PCをjessie から stretchにアップグレードしたところ、lilypondがインストールされなくなった。
どうやら、guileが1.8から2.0になったおかげでguile1.8に依存するlilypondはstretchから削除されたらしい。
とりあえず、jessieのリポジトリを追加して、lilypondをインストールした後、stretchのリポジトリに戻した。
あんまり対応としては良くは無いかも。


この一月ほどずっと悩んでいた問題が、昨日解けたような気がする。とてもうれしい。
やはり線形代数は偉大だった。

342びぼーろく; lualatex-tikzでgnuplot

debian stretchにアップグレードしてから、 tikzでgnuplotを利用したプロットできなくなった。
( Version 0.95.0 (TeX Live 2016/Debian) )

どうやら、セキュリティ上の問題で外部エンジンを呼び出して実行することができなくなったらしい(ここによると)。
それが原因なのか、いままで表示されていたプロットが表示されなくなった。

そんなときはマニュアルを見れば良いということで、web上に転がっているマニュアルを見てみると、なんと古いバージョンのものしか見つからなかった。
結局英語版のwikipediaを辿って新しいマニュアルを見つけた

そんなこんなで、そのマニュアルによると(P.329あたり)
  1. texを実行すると、tikzの中のidに従って、id_name.gnuplotが生成される
  2. id_name.gnuplotをgnuplotで実行するとid_name.tableが生成される
  3. 再度 texを実行する
ことでプロットできるようになるらしい。とりあえずこれまでのソースをいじる必要はなさそうなので一安心。

大量にgnuplotファイルが生成される場合には、一つ一つ処理するのは面倒なので

for file in ./*.gnuplot; do gnuplot $file;done

とかで、対応するのが良いかも。
ただし、これは図を変更・追加した時だけ実行すれば良いので、以前に比べるとコンパイルが速くなるかもしれない。


さて、以前からsambaを立ち上げていたが、windows機からの接続が微妙なので、思い切ってsambaをやめて、sftpに変えることにした。
windows側でSFTP Net Drive をインストールして後は情報を追加するだけ。
枯れた技術なのか、問題なく繋がった。最初からこうしておけば良かった。

とういことで、今はdebian機を本体としてwindowsへリモートログインをし、リモートログインをしたwiondows機からsftpでdebian機のファイルをいじるということになった。

341びぼーろく; dein.vimへの乗り換え

neobundleを使っていたけど、obsoleteだということでdein.vimに乗り換えた。
やり方はここにあるとおり。

mkdir -p ~/.vim/dein/repos/github.com/Shougo/dein.vim
git clone https://github.com/Shougo/dein.vim  \
 ~/.vim/dein/repos/github.com/Shougo/dein.vim


あとは設定を~/.vimrcに追記。


"---------------------------
 " Start dein.vim Settings.
 "---------------------------
 "

if &compatible
  set nocompatible
endif

set runtimepath+=~/.vim/dein/repos/github.com/Shougo/dein.vim

call dein#begin(expand('~/.vim/dein'))

call dein#add('Shougo/dein.vim')
call dein#add('Shougo/vimproc.vim', {'build': 'make'})
call dein#add('Shougo/neocomplete.vim')
call dein#add('Shougo/neomru.vim')
call dein#add('Shougo/neosnippet')
call dein#add('thinca/vim-quickrun')
call dein#add('Shougo/vimshell.vim')
call dein#add('itchyny/lightline.vim')

" (add plugins)



call dein#end()


     
"-------------------------
" End dein.vim Settings.
"-------------------------
"


その後 vim を起動して、

:call dein#install()

でインストール。vimの起動時間は本当に早くなった。すごい。

さて、最近4次方程式と取っ組み合いを始めた。
複雑なのでmaximaにお願いするも、メモリを13GB程専有しても計算がなかなか終わらない。
きっと大変なんだろうな。

340びぼーろく; plastexその2

plastex2.1がリリースされたのでそちらを使うようになりました。mathjaxにも対応しているので下記の操作は必要なくなっています。debianの公式パッケージからインストールするだけです。




(mathjaxに変換してくれるパッケージを提供してくれていたところが無くなってしまったので、svgに変換に変更 ⇒と思ったらいつの間にか復活していたので引き続きmathjaxを使うようになりました)

前回 に引き続いて数式をmathjaxに変換してくれるplastexのdebian用パッケージ(debファイル)を作る。
まずは、 ここ に書いてあるとおり、関連するファイル(plastex-master.zip、plastex-changes.zip,plastex-renderers.zip)をダウンロードする。
全て展開して、以下の様にファイルの置き換えとコピーをする。

mv plastex-changes/setup.py plastex-master/
mv plastex-changes/Definitions.py plastex-master/plasTeX/Base/LaTeX/
mv plastex-renderers/MathJax plastex-master/plasTeX/Renderers/
mv plastex-renderers/MathJaxS5 plastex-master/plasTeX/Renderers/
次にバージョン番号を変更する。 というのも、このままだとバージョン番号がdebianのリポジトリにあるものと同じなので、apt-get updateの度に保留されるか、上書きされる。
もちろんpin等でパッケージを留めても良いのかもしれないけど、mathjaxを使えるように変更すると、plastexのバージョンが1に上がるようなので、バージョンを1.0.0に変えることにした。

変更方法はplastex-master/setup.py を編集して、version="0.9.2" を version="1.0.0" とするだけ。
(本当はバージョン番号の付け方もルールがあるんだろうけど、手元の環境でしか使わないので、適当に決めた。)

次いでplastexのtarボールを作成する。
cd ./plastex-master/ python ./setup.py sdist

これでtarボール(plasTeX-1.0.0.tar.gz)が、 plastex-master/dist 以下に作成される。
次にdebファイルへ変換。まずdebian用のファイル群を生成する。
cd ./dist
py2dsc ./plasTeX-1.0.0.tar.gz
(2017/6/14追記: py2dscはpython-stdebパッケージに含まれているので、事前にapt等でインストールしておく。)
そうすると、deb_dist 以下にファイルがdebian用のファイルが用意される。
最後にdebファイルを生成する。
cd deb_dist
cd plastex-1.0.0
dpkg-buildpackage -rfakeroot -uc -us
これで一つ上のディレクトリにdebファイル(python-plastex_1.0.0-1_all.deb)が生成される。 後はgdebi等でインストールすればOK。

数式を含むtexファイルでmathjaxを使いたい場合は、rendererにMathJaxを指定する必要がある。
plastex --renderer=MathJax hoge.tex
表示をさせてみて、うまくいけばOK。これで研究室のHPが若干綺麗になった(気がする)。

339びぼーろく; plastex その1

plastex2.1がリリースされたのでそちらを使うようになりました。mathjaxにも対応しているので下記の操作は必要なくなっています。debianの公式パッケージからインストールするだけです。

 

 

今まで一生懸命latex2htmlを使ってたけど、実はplasTeXなるものがあるらしい。
ここ情報によるとMathJaxにも変換もできるらしいので、思い切って使ってみることにした。

生成されたファイルを見てみると、latex2htmlに比べて幾分おしゃれな雰囲気がする。

まずはインストール。幸いなことにdebianのリポジトリに入っているので、いつもどおりインストールする。(もちろん管理者権限で)
apt-get install python-plastex
使い方はlatex2htmlとほぼ同じ。適当なtexファイルを用意して(hoge.tex)、コンパイルするだけ。
plastex hoge.tex
hogeディレクトリが作成されて、以下にindex.htmlを含む諸々のファイルが作成される。
この状態で、例えば
google-chrome ./hoge/index.html
とかやると、作成したページを見ることができる。

ちょっとつまづいたのが、texファイルの中でhtml.styを読み込むとエラーを吐いて終了する問題。リンクを貼るときにはhyperref.styを読み込んで、\href{テキスト}{リンク先}を使う。
これに気づかず、しばらく悩んだ。

肝心の数式はlatex2htmlと同様、画像ファイルに変換される。
結構綺麗だと思うが、せっかくなのでmathjaxに変換したい。一応ここにやり方は書いてあったものの、pythonを使うためdebianのパッケージ管理下にないので、アンインストールが面倒。
(アンインストールするときには、/usr/local/以下の plastex関連のファイルを手で削除する必要がある。結構面倒。)

幸いなことにdebファイルに変換できるようなので、こちらを利用する。
ちょっと長くなるので次回へ。



さて久しぶりにベートーヴェンの弦楽四重奏14番を聴いた。ミーハーなのかもしれないが、後期の作品で最も好きなのはこの14番。
第九のようなスケールの大きさを弦楽四重奏に閉じ込めたような作品で、とても繊細な二重奏があったかと思うと鬼気迫る場面になったりと、とても充実した曲になっていると思う。
wikipediaには、7楽章構成だが古典的な4楽章構成と対応する、とか書いてあるけど、なぜか1から4楽章までが前半で 5から7楽章までが後半というように聞こえてしまう。
この大曲を書いたのはベートーヴェンが死ぬ前年だったらしい。
普通だったら加齢と共に丸くなっていうような気がするのが、最後の最後まで自分の書きたいものを追求したあたり、とてもベートーヴェンらしいと思う。

338びぼーろく; debian freeze予定

debian9 (stretch)が1/7にsoft freezeされたらしい。2/5にfull freeze予定とのこと。
大体、freezeされるとアップグレードしているのでそろそろ準備しておこう。
いまいちfull freezeとsoft freezeの違いがきちんと分かっていないんだけど...。
何れにせよ開発者の方々に感謝。


さて、大学時代の後輩と思いがけず11年振りに再会した。 しかも偶然。大学時代を思い出してとても懐かしくなった。
色々と思い出に浸っていると、大学時代の指導教官の退官記念講演+パーティーの案内が来た。お世話になった人なので行くことにした。
出席の返信を出したけど、2週間経ってもその後の連絡が来ない。こんなもんなのかな?


計算は相変わらず進まず。色々試し始めて半年ほど経過した。これまでの経験によると、そろそろ何か進展があっても良い頃なので気長に待とう。

744びぼーろく; どうやら昨日が

 バッハの誕生日だったらしい。おめでとうございます。