ページ

2016年8月30日火曜日

Qittaへ

最近はマークダウンで書くことが多くなりましたが,Bloggerでもできなくはないけど不便.
お世話になっているQittaに浮気しようと思います.

私の投稿プログラムに関することだし.

時々はBloggerの事も思い出してあげようと思います.

Hello Qitta, Goobye Blogger

2016年8月3日水曜日

ubuntu kernel update + nvidia = black screen になる場合

備忘録

nvidia のグラフィックボードを使っている場合,ubuntu のkernel updateの後にディスプレイは認識されているもののblack screenになる事がある.
nvidia 以外に原因は考えられないという事で対処法の備忘録


詳細はUbuntuでNVIDIAのディスプレイドライバが動作しない場合のチェック項目が非常に詳しく助かりました.

私の場合の症状は起動後メーカーロゴが表示,その後待てども暮らせどログイン画面が表示されないttyも表示されない,でもsshでログインできる状態.

主な原因はkernel updateでnvidiaのドライバーが重複して存在している事の様です.対処療法は以下の通り.

$ ls /lib/modules/カーネルバージョン-generic/updates/dkms/
nvidia_340.ko  nvidia_340_uvm.ko  nvidia.ko  nvidia-uvm.ko

と見るとと複数のnvidiaのドライバが混在しているので

$ modinfo nvidia
filename:       /lib/modules/カーネルバージョン-generic/updates/dkms/nvidia.ko
alias:          char-major-195-*
version:        340.96

よりバージョンを確認.不要なnvidia_340.koとnvidia_340_uvm.koを削除(もしくはホームディレクトリなどに退避)

lightdmを再起動しても認識されないので,rebootを掛ける.
待てども暮らせどshutdown されないので,電源長おしで強制終了を掛ける.

無事login画面が表示される.

うーん忙しい時にこの手のトラブルはご勘弁願いたい.
何も考えずにupgradeを実行するのはよくないのかなぁー

sphinx + ipython notebook (jupyter)

備忘録

ipython notebookで作ったファイルをipython nbconvert --to rst hoo.ipynb
すると
In[1]
Out[1]
などの情報が出力されずに困った.

http://nbsphinx.readthedocs.io/en/latest/usage.html

よりrstにconvertせずにipynbをそのままtoctreeで読み込む事によりこの問題を回避

sphinxの設定はデフォルトの場合,conf.pyがあるディレクトリで

python -m sphinx . _build/html

とすればよい

sphinx-autobuild が超便利

以上

2016年6月29日水曜日

4倍精度対角化

Lapackの前身にあたるeispackという一般複素行列の対角化を実行するfortrunのプログラムが有ります.3年ほど前に4倍精度に拡張して,別のプログラムに間接的にくっつけてgithubにあげていたんですが,需要があるらしい(?)ので単体でgithubにupしました

(追記)gcc4倍精度に関するコーディングは昔のポストが参考になれば幸い

拡張と言っても宣言とリテラルを書き換えた位だった気がする.
もう昔のことで覚えていない.

今はmathematicaで多倍長対角化を実行していて,真面目にテストしてないのでバグが絶対混入していると思いますが,エルミートとユニタリーのクラスの対角化では,意図した計算結果を示すのでとりあえず良しとする.

将来的には任意精度まで拡張したいと考えていますが,速度がどうなることやら.
いやー,4倍精度演算がsoftwareレベルで実装されているので,計算速度が遅くなるのは仕方ないんだけど,やっぱりlapackめちゃくちゃ早くて素晴らしいな

2016年5月15日日曜日

クラウドストレージBoxをubuntu 16.04で使ってみる

Dropboxユーザー(無料)だが容量が足りない
それでも,ベータテスト参加した際の容量アップで9.8GB容量が有るのだが,
限界に近づいては圧縮を繰り返すという非生産的活動に時間を費やしたくない.

と言って有償版(2TB, 1200円/月)を使う程でもない.
50GB 300円/月とかあれば使うのだが・・・(昔はあった気がする)

実はCopy.comというDropboxと同等のサービスを使っていたのだが,
案の定(名前が悪いと思う.SEOの意味で)終了してしまったので,
boxなるサービスを使ってみる.

linuxクライアントが無いので若干のひと手間が必要.
一応dropboxと同様に使えるようになった.
いや正確ではない.このことは後述する
以下その備忘録

1. boxサイトからアカウントを作る

電話番号を要求されるので,若干の抵抗感がある
私の場合デフォルトで10GBまで無料
有料版は100GB で 1200円/月とDropboxより高めな印象

2. davfsをインストールする

$ sudo apt-get install davfs2
root以外でも使えるようにするか効かれるのでyesとする.
noを選択した場合
$ sudo dpkg-reconfigure davfs2
から再設定可能.

3. 何はともあれmountしてみる

適当にmount point
$ mkdir ~/Box
を作って,mountする
$ sudo mount -t davfs https://dav.box.com/dav /home/hanada/Box/
username (メールアドレス)とパスワードを入力してmountできたらとりあえず良し.

ただ,root権限でmountしておりユーザーは書き込みできないので修正する.
ここを参考にそのまんま設定すると上手くいったので詳細は省く.

最大ファイルサイズが250MBなのでデカイファイルのバックアップには向かない.
とりあえず,文献データ(5GB)を置いてみると,10MB/sec程度でコピーしてくれる.

課題と問題点

Dropboxよりえらく早くファイルコピーするなーと思って,よくよく考えたら
dropboxはローカルストレージとクラウドストレージ間の双方向同期でありoffline下でも使える.
更に異なるマシーン間の競合も上手く処理してくれる.

しかし上記方法はクラウドストレージのマウント方法なのでoffline下ではそもそもマウントできない.
この違いは大きい,というかDropboxのようには使えない.

offline環境下でも使えるようにするためには,別に母艦を用意しておいて
rsyncなど適当に設定するか?rsyncで双方向同期できるのか?unisonか?
マシーン毎に設定が必要か?
win mac は box syncなるアプリが有るらしいがwineでも試してみるか?
うーん,凝りだすと時間かかりそうで面倒やな・・・

2016年5月7日土曜日

ubuntu 16.04 へアップグレードした際の備忘録


linuxマシーンを何台かubuntu 16.04にする予定なので備忘録を残す.

なお,*マークが有る箇所はhomeを引き継ぎで実際には設定不要だった項目

前置き

ハードウェアーはthinkpad x1 carbon 3rd
ubuntu 15.10 install済みからubunt 16.04(日本語remix)のクリーンインストール
パーティション関係は
/
/home
swap
を分離

・homeをバックアップ
・usb bootable diskはstartup disk creatorから制作
・(NG): ubuntu 15.10を削除して16.04をインストール的なものを選択
   これをやると /のパーティション上にhomeがつくられて
   旧 /home パーティションが宙ぶらりんになっていた^^;
・インストール画面でその他を選びマウントポジションを指定して再インストール(OK)
無事終了

インストール自身は5分くらいで終わった.
昔はアップデート一日仕事だったけど3時間くらいに短縮されたなー
パーティション関係の失敗がなければ30分くらいで終わりそう
次のOS update 5年後になることを期待

以下インストール後の設定備忘録

いつもお世話になっているubuntu インストール直後に行う設定を参考に必要な設定を行う
wi-fiは非表示のネットワークから接続を構成しないと何故か繋がらない

システムの言語環境を英語に,特定のアプリを日本語環境で立ち上げる

ubuntuは日本語remix版をinstallしたが(オリジナル版はzipファイルに日本語名があると文字化けするらしい)が,ターミナルの出力が日本語だと,なんかエラーが出た際にstackoverflowなどでの検索に不都合.
またプログラムを書く際に,メニュー等やエラーを英語でどのように掛けばよいか悩む場合があるので,日頃から英語環境にしておく.

システム環境設定から言語サポート(?),使用する言語(English)を最上部に設定.

ただこれだと全てのアプリケーションが英語環境で立ち上がるので時に不便.

特定のアプリケーションを日本語でたちあげたい場合はlocale -a で ja_JP.utf8があることを確認して
$ locale -a | grep ja
ja_JP.utf8

$ env LANG=ja_JP.utf8 application_name
みたいな感じて起動すれば日本語環境で起動可能.メーラーとかeclipseとか設定ファイルが巨大なアプリは日本語で開いたほうがミスが少なくてすむ.

日常的に使うアプリはショートカットを自作し設定.
なお,現在の言語環境の設定はターミナルより確認可能.
$ locale
LANG=en_US.UTF-8
LANGUAGE=en
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC=ja_JP.UTF-8
LC_TIME=ja_JP.UTF-8
LC_COLLATE="en_US.UTF-8"
LC_MONETARY=ja_JP.UTF-8
LC_MESSAGES="en_US.UTF-8"
LC_PAPER=ja_JP.UTF-8
LC_NAME=ja_JP.UTF-8
LC_ADDRESS=ja_JP.UTF-8
LC_TELEPHONE=ja_JP.UTF-8
LC_MEASUREMENT=ja_JP.UTF-8
LC_IDENTIFICATION=ja_JP.UTF-8
LC_ALL=

キーボード入力関係*

・macっぽい日本語/英語の切り替えにする
Mozc(fcitx)/入力メソットの設定/ホットキー
変換, カタカナひらがな:入力メソットオン
無変換:入力メソットオフ
全角半角: オフ

・句読点をコンマ,ピリオドに
  dash からmozcの設定を起動.基本設定から変更
・ここを参考にCuplock をctrlに

覚書:fcitx-mozcの辞書(ユーザー辞書)でコメント内容を見るためには変換候補を選んだ際に(Ctrl+Alt+H)でコメント内容を表示させる事が可能

touch padのon/offショートカット*

$ xinput list
⎡ Virtual core pointer                     id=2 [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer               id=4 [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad               id=11 [slave  pointer  (2)]
⎜   ↳ TPPS/2 IBM TrackPoint                    id=12 [slave  pointer  (2)]
でidを調べて
$ xinput set-prop 11 "Device Enabled" 0 # disable
$ xinput set-prop 11 "Device Enabled" 1 # enable
あとはショートカットを設定

tex関係

ここを参考にパッケージをインストール

$ sudo apt-get install texlive texlive-lang-cjk xdvik-ja dvipsk-ja gv texlive-fonts-recommended texlive-fonts-extra
$ sudo apt-get install texlive-publishers
2番目はrevtexとのスタイルファイルが入っている.日本語及びrevtexは問題なく動く.

python 関係*

anaconda3をinstall

ノートのバッテリの電力制御

充電するタイミングを制御する為tlpをインストールする.
$ sudo add-apt-repository ppa:linrunner/tlp
$ sudo apt-get update    
$  sudo apt-get install tlp tlp-rdw  
thinkpad userなので別途
$  sudo apt-get install tp-smapi-dkms acpi-call-dkms 
をinstall.バッテリー情報を
$  sudo tlp-stat -b 
より確認.電源プラグを接続した際に充電するかどうかの制御は
$  sudo tlp setcharge 30 80 BAT0
のようにすれば良い.意味はバッテリーレベルが30%になると充電を開始し,バッテリーレベル80%まで充電する.

プリンター関係 (canon LBP5000を動かす)

Canonからlinux用のinstallerをダウンロードして install.shを実行
The install procedures are the following:
extract the downloaded tar file
  $ tar zxvf filename.tar.gz
The containing files in the extracted directory are
  $ ls
  64-bit_Driver  Documents  install.sh
In this directory, run
  $ sudo bash install.sh
then type [y] to answer some questions.
ここで
 OK: libglade2-0
 OK: libstdc++6:i386
 OK: libxml2:i386
 OK: libjpeg62:i386
 NG: libbeecrypt7:i386
 NG: libbeecrypt-dev:i386
を入れろと言われるのでOKはaptからinstall.NGはpackageが見つからず.

Then
 $ sudo lpadmin -p LBP5500 -P /usr/share/cups/model/CNCUPSLBPCSERIESLJ.ppd -v lpd://192.168.64.68/LBP5500 -E

That's all for printer setting. 

一応使えるので良しとする.

Evernote クライアント

nixnote  (evernote linux クライアント)を入れる.
debは動かなかったのでtarからinstall.sh を実行.
起動するとopencvが無いと怒られる
ibopencv-dev (もしかしたらlibopencv-core-devも必要かも)をインストール
syncからevernoteにloginすればok

Ricty fontのインストール

ここを参考

その他install した(する) packages

  • dropbox:公式の配布を利用
  • unity-tweak-tool: UIの拡張に
  • emacs, yatex, emacs-mozc
  • conky (gcal, lm-sensors, acpi)
  • gnuplot5-x11
  • duplicity :  backup tool
dejadup-monitorが暴走しなくなったので,システムbackupで十分かも.遅いけど
  • gparted: パーティションエディタ
  • zotero  : ここからPPAを利用した
  • gufw (+ python-gi) :ファイヤーフォール
  • eclipse: IDE
  • geany: IDE 
  • kate: 
editorは何が良いかいつも悩むんだけど,用途によって使い分けています. 
  1. 中,大規模のプログラミング: eclipse
  2. 小規模,使い捨てプログラミング,tex(スペルチェック込): emacs
  3. プレゼンスライド作成(reveal.js, html, 要スペルチェック): kate
geditではなくkateを使う理由はショートカットを設定が楽なので.emacsのキーバインド(Ctrl-a= Home button, Ctrl-e: End button)を恒常的に使用しているので必須. 
  • okular: pdf viewer
  • gfortran: fortrun コンパイラー
  • nkf: 文字コードの変換
  • libav-tools: (= ffmpeg) 動画の変換,作成に
  • pandoc: (ipython convertで必要)
  • gnome-sushi : nautilus でスペースキーを押すとサムネイルをpopup表示
(gloobus previewのほうが良い感じ).macのquick lookのような機能.epsだろうがsvgだろうが表示させることができる.
透明画像が暗転してしまうが・・・
  • gloobus preview: 複数枚のファイルをquick lookできる
透明画像が暗転するが,preview中に左右のキーを押せば次のファイルをpreviewするので非常に便利
参考: http://www.webupd8.org/2015/01/quick-file-previewer-gloobus-preview.html 

  • php:
php5からphp7になり,ブラウザからアクセスしてもソースコードが表示されるのでここを参考に再設定

 

Mathematica Benchimark

Benchmarkingパッケージを使ったMathematicaのベンチマーク

私物laptop
Intel(R) Core(TM) i7-5500U CPU @ 2.40GHz
# Core: 2
# Threading: 4
{"MachineName" -> "--", "System" -> "Linux x86 (64-bit)",
"BenchmarkName" -> "WolframMark", "FullVersionNumber" -> "10.3.1",
"Date" -> "January 31, 2016", "BenchmarkResult" -> 1.392,
"TotalTime" -> 9.945, "Results" -> {{"Data Fitting", 0.537},
{"Digits of Pi", 0.341}, {"Discrete Fourier Transform", 0.68},
{"Eigenvalues of a Matrix", 0.608}, {"Elementary Functions", 0.567},
{"Gamma Function", 0.467}, {"Large Integer Multiplication", 0.467},
{"Matrix Arithmetic", 0.334}, {"Matrix Multiplication", 0.754},
{"Matrix Transpose", 1.61}, {"Numerical Integration", 0.676},
{"Polynomial Expansion", 0.092}, {"Random Number Sort", 1.16},
{"Singular Value Decomposition", 0.765}, {"Solving a Linear System", 0.887}}}

------------------------------------------------------------------------------------------------
とあるサーバー1:
Intel(R) Xeon(R) CPU X5550 @ 2.67GHz
# Core: 4
# Threading: 8
{"MachineName" -> "--", "System" -> "Linux x86 (64-bit)",
"BenchmarkName" -> "WolframMark", "FullVersionNumber" -> "10.0.2",
"Date" -> "January 31, 2016", "BenchmarkResult" -> 1.332,
"TotalTime" -> 10.388, "Results" -> {{"Data Fitting", 1.059},
{"Digits of Pi", 0.507}, {"Discrete Fourier Transform", 0.545},
{"Eigenvalues of a Matrix", 1.001}, {"Elementary Functions", 0.389},
{"Gamma Function", 0.66}, {"Large Integer Multiplication", 0.668},
{"Matrix Arithmetic", 0.536}, {"Matrix Multiplication", 0.408},
{"Matrix Transpose", 1.022}, {"Numerical Integration", 1.002},
{"Polynomial Expansion", 0.136}, {"Random Number Sort", 1.159},
{"Singular Value Decomposition", 0.651}, {"Solving a Linear System", 0.645}}}

------------------------------------------------------------------------------------------------
とあるサーバー2:
Intel(R) Xeon(R) CPU E5607 @ 2.27GHz
# Core: 4?8?
# Threading: 8
{"MachineName" -> "--", "System" -> "Linux x86 (64-bit)",
"BenchmarkName" -> "WolframMark", "FullVersionNumber" -> "10.0.2",
"Date" -> "January 31, 2016", "BenchmarkResult" -> 1.056,
"TotalTime" -> 13.103, "Results" -> {{"Data Fitting", 0.962},
{"Digits of Pi", 0.648}, {"Discrete Fourier Transform", 0.6},
{"Eigenvalues of a Matrix", 1.076}, {"Elementary Functions", 0.481},
{"Gamma Function", 0.874}, {"Large Integer Multiplication", 0.916},
{"Matrix Arithmetic", 0.706}, {"Matrix Multiplication", 0.541},
{"Matrix Transpose", 1.485}, {"Numerical Integration", 1.342},
{"Polynomial Expansion", 0.14}, {"Random Number Sort", 1.542},
{"Singular Value Decomposition", 0.878}, {"Solving a Linear System", 0.912}}}

------------------------------------------------------------------------------------------------
Model Name: iMac
Processor Name: Intel Core i7
Processor Speed: 3.1 GHz
# Core: 4
# Threading: 8

{"MachineName" -> "--", "System" -> "Mac OS X x86 (64-bit)",
"BenchmarkName" -> "WolframMark", "FullVersionNumber" -> "10.3.1",
"Date" -> "January 31, 2016", "BenchmarkResult" -> 1.985,
"TotalTime" -> 6.975, "Results" -> {{"Data Fitting", 0.689},
{"Digits of Pi", 0.295}, {"Discrete Fourier Transform", 0.369},
{"Eigenvalues of a Matrix", 0.474}, {"Elementary Functions", 0.506},
{"Gamma Function", 0.353}, {"Large Integer Multiplication", 0.33},
{"Matrix Arithmetic", 0.632}, {"Matrix Multiplication", 0.259},
{"Matrix Transpose", 0.726}, {"Numerical Integration", 0.62},
{"Polynomial Expansion", 0.086}, {"Random Number Sort", 0.819},
{"Singular Value Decomposition", 0.435}, {"Solving a Linear System", 0.382}}}

------------------------------------------------------------------------------------------------
Model Name: iMac
Processor Name: Intel Core 2 Duo
Processor Speed: 3.06 GHz
# Core: 2
# Threading: 2(?)

{"MachineName" -> "--", "System" -> "Mac OS X x86 (64-bit)",
"BenchmarkName" -> "WolframMark", "FullVersionNumber" -> "10.0.2",
"Date" -> "January 31, 2016", "BenchmarkResult" -> 0.613,
"TotalTime" -> 22.586, "Results" -> {{"Data Fitting", 1.713},
{"Digits of Pi", 0.67}, {"Discrete Fourier Transform", 1.548},
{"Eigenvalues of a Matrix", 1.356}, {"Elementary Functions", 2.113},
{"Gamma Function", 0.768}, {"Large Integer Multiplication", 0.769},
{"Matrix Arithmetic", 2.632}, {"Matrix Multiplication", 1.646},
{"Matrix Transpose", 1.804}, {"Numerical Integration", 1.949},
{"Polynomial Expansion", 0.267}, {"Random Number Sort", 1.669},
{"Singular Value Decomposition", 1.992}, {"Solving a Linear System", 1.69}}}

-----------------------------------------------------------------------------------------------
raspberry pi 2
Coretex-A7
# Core: 4
# threading: 4(?)
{"MachineName" -> "--", "System" -> "Linux ARM (32-bit)",
"BenchmarkName" -> "WolframMark", "FullVersionNumber" -> "10.0.2",
"Date" -> "January 24, 2016", "BenchmarkResult" -> 0.029,
"TotalTime" -> 475.891,
"Results" -> {{"Data Fitting", 10.904}, {"Digits of Pi", 4.805}, {
"Discrete Fourier Transform", 30.977}, {
"Eigenvalues of a Matrix", 35.914}, {
"Elementary Functions", 25.479}, {"Gamma Function", 6.437}, {
"Large Integer Multiplication", 6.735}, {
"Matrix Arithmetic", 6.07}, {"Matrix Multiplication", 151.389}, {
"Matrix Transpose", 7.202}, {"Numerical Integration", 11.684}, {
"Polynomial Expansion", 1.086}, {"Random Number Sort", 8.376}, {
"Singular Value Decomposition", 75.031}, {
"Solving a Linear System", 93.802}}}

----------------------------------------------------------------------------------------------------
とあるサーバー

Intel(R) Xeon(R) CPU E5-1680 v3 @ 3.20GHz

{"MachineName" -> "--", "System" -> "Linux x86 (64-bit)",
 "BenchmarkName" -> "WolframMark", "FullVersionNumber" -> "10.4.1",
 "Date" -> "June 1, 2016", "BenchmarkResult" -> 2.06, "TotalTime" -> 6.721,
 "Results" -> {{"Data Fitting", 0.568}, {"Digits of Pi", 0.293},
   {"Discrete Fourier Transform", 0.274}, {"Eigenvalues of a Matrix",
    0.78}, {"Elementary Functions", 0.209}, {"Gamma Function", 0.395},
   {"Large Integer Multiplication", 0.389}, {"Matrix Arithmetic", 0.214},
   {"Matrix Multiplication", 0.282}, {"Matrix Transpose", 0.611},
   {"Numerical Integration", 0.705}, {"Polynomial Expansion", 0.098},
   {"Random Number Sort", 0.984}, {"Singular Value Decomposition", 0.589},
   {"Solving a Linear System", 0.33}}}