Taka's blog

Techネタなど

Jupyter notebook (IPython notebook)をリモートサーバ,ワークステーションで動かした

アブスト

Pythonでシミュレーションを組んで回すとき,メモリの関係でワークステーションで回す必要があった.普段使ってるJupyter notebookをワークステーション上で走らせ,自分の端末のブラウザから使えたら便利だなと思った.調べてやったらできた.

気をつけること

Jupyter notebookは,IPython以外も使えるように拡張されたものであり,設定ファイルはIPython notebookのものとは異なります.

環境

Anacondaで一式を入れて,Python3.5を使用
自分の端末もワークステーションMacで,同一サブネット内に接続

手順

qiita.com

これを大いに参考にして設定.
インストールはすでに終わっているので,鍵の設定からやりました.
ブラウザを立ち上げない設定は入れず,ポートも49999にしました.

おまけにqtconsoleも接続する

qtconsoleはIPythonのコンソールですが,すでに起動しているカーネルに接続することができます.これが何を意味するかというと,notebookでは決まった形で結果を表示しておいて,途中の変数や配列の一部を見たい時にqtconsoleでチョロっと眺めることができます.Jupyter notebookには選択部分を実行ってのがないので,「すぐ下にセル追加→ちょこっと実行→セル削除」ってやってた部分がなくなり捗ります.

bashで書く

#!/bin/bash
scp ユーザー名@ワークステーション名:/Users/ユーザー名/Library/Jupyter/runtime/kernel* /tmp/qtconsole.json
jupyter qtconsole --existing /tmp/qtconsole.json --ssh ユーザー名@ワークステーション名

実行するときは,上のコマンドをテキストエディタで書いてqtconsole.shとして保存し,ターミナルで

bash qtconsole.sh

とするなど.ファイル名は自由

何をやっているのか

scpでワークステーションからカーネル接続情報のJSONファイルを/tmpにダウンロードします.そしてsshを介して接続するオプションをつけてqtconsoleを起動します.

使用感

どの端末からもJupyter notebookを開ける(iPhoneからも開けることは開ける)ので便利です.端末側はブラウザさえあればいいので環境も汚れません.

PythonのNumpyで複素数の相関係数を計算したかった

アブスト

Python3.5で@演算子による行列計算ができるようになった(y=A@x)

のを機に,Pythonで研究を進めた.

複素数をバリバリに扱う内容で,numpy.corrcoefに複素数を適当に突っ込んだら全く意図しない挙動を示した.

corrcoefが複素数に対応していないのかと思って自力で実装したりしたが,結局Pythonが悪いのではなく,自分が突っ込んだ数列がマズかった.

 

問題の挙動

以下のコードで確認できます.

import numpy as np
s1=np.array([1+1.0j,1+2.0j])
s2=np.array([1+1.0j,1+1.0j])
cor = np.corrcoef(s1,s2)
print(cor) 

 

# [[  1. +0.j  nan+nanj]
#  [ nan+nanj  nan+nanj]]

 

原因

信号のエネルギーが0だと,分散が0になり,結果0除算になってNaNになる.

上記の例ではs2が直流(信号のエネルギーは0)となっている.

MacでaccountsdとsecuritydがCPUを食う問題

アブスト

最近,アクティビティモニタを見ていたら,accountsdとsecuritydがCPU使用率を20%ずつくらい消費していて,とても気になっていました.解決はできてないですが,原因はメールアプリのようです.

症状と原因

Macを起動したら,時折CPU使用率が上がって,accountsdとsecuritydというプロセスがCPUを無視できないレベルで消費している状態が見られる.常に出るわけではないが,それなりに頻繁に起こる.タイミング的には,Gmailの2段階認証が始まった頃か,Appleアカウントのメールアドレスを変更したあたりな気がしている.Mac標準のメールアプリを終了するとこれら2つのプロセスは息を潜めるので,原因はメールアプリにありそう.

解決策

解決方法が分かりません.検索しても,同じ症状の記事すら見つけられません.

 

追記(2016/02/03)

上記の症状はOSがYosemiteのときでしたが,El Capitanにアップグレードしたら使用率0.0%に戻りました.

ACM SIG Proceedings Templatesで図がずれる

アブスト

某国際会議に投稿しようと思って,Call for paperに従ってテンプレートを落としコンパイルしたら図がずれた.コマンドをdvipsに変えたら直った.

図がずれた原因

acm_proc_article-sp.clsの中で,epsfigをusepackageしている.テンプレの図の挿入はこの\epsfigで行っているが,これとdvipdfmxが相性が悪いらしい.

テンプレートのクラスファイルはできるだけ書き換えたくないので,dvipdfmxを使わないことを考えました.

各種コマンドで実験

以下の3パターンを試した.

まとめ

Bodynetsに投稿するとき,テンプレートはいつもの環境でコンパイルすると図がずれるので,ターミナルからlatex→dvipdfで生成しましょう.

 

追記

MacTeXShopのプレビューでは図はずれていたのに,印刷プレビュー画面・実際に印刷した紙面では図が正しい位置に挿入されていた(!?)

JapaninoのUSBでAndroidとシリアル通信がしたい

数年前、大人の科学magagine Vol.27を買いました。その付録がArduinoの一種であるJapanino(ジャパニーノ)。今になって少しずつ遊んでいます。

USBシリアル通信

今、JapaninoとAndroidを連携させたい、USBシリアル通信させたいと思って色々いじっています。でも、サンプル動かしてみても動かない。接続されてるデバイス数は1って取得できたので、惜しいところまではきてるのかなって。そんな中、こんな記事を見つけました。

 

JapaninoReflection – スイッチサイエンス

 

USBドライバ、FTDIじゃなかった...

 

けど、ライブラリ的にはどっちも動くはず...?ちょっとよく分からない。

もう少し対策がないか調べるか、いっそ新型のArduinoを買うか、迷うところ。

 

 

以下、自分用のリンク。


Japanino特設サイト | 大人の科学.net


8ビットマイコン Japanino(ジャパニーノ) まとめ @wiki 学研 大人の科学マガジン Vol.27 - Tipsや裏技や技術情報などなど

OS X yosemite

昨日、Mac製品の新バージョンOSであるOS X yosemiteが正式リリースとなりました。
さっそくAppStoreからダウンロード、インストールをしました。

本当はクリーンインストールがしたくて、一旦新OSにアップデートしてからリカバリーディスクを使うという手法を取ろうとしたのですが、リカバリーディスクがMavericsのままで失敗に終わりました。
USBメモリインストーラーを展開して、システムのパーティションを削除→新規インストールをしなくてはならないようです。
Macの動作が重くなってきたら、また試したいと思います。

MacのInkscapeでTexTextが起動しない場合

論文の画像編集にはInkscapeというフリーソフトを使っていますが、TexTextというエクステンションを導入する際にすごく頭を悩ませたので、メモ。TexTextが起動しないときにお試しください。

 

各所に書かれている普通の方法でTexTextを導入しましたが、pythonのlxmlがないというエラーが出ました。portでpy25-lxmlを入れてみたり、ウェブサイトからdmgイメージを落として入れてみたりしましたが、どうも上手くいかない。

 

たくさん検索した結果辿り着いたのが、以下のサイト。

http://goingmyway.net/?p=677

 私の使っていたInkscapeはバージョン0.48.2で、このpythonのバージョンが合っていない現象が起きていたと思われます。解説のとおりバックアップをとってパッチを当てたら使えるようになりました。

 

ただ、今度はmd5に関するエラーが出るようになりました。エクステンションは一応機能していますが^-^