2021年11月2日火曜日

SciDAVisのdark modeが見づらい

 MacPortsでインストールされていたSciDAVis,現在のバージョンは2.4らしいのですが,どうにもDarkModeが見づらい。

しかも,コマンドラインからの起動に戻ってしまった。

そこで,古いバージョンをアクティベートし直すことにした。


 % sudo port installed scidavis

Password:

The following ports are currently installed:

  scidavis @2.1.4_0

  scidavis @2.4.0_0

  scidavis @2.4.0_1 (active)



2.1.4の時まで遡ることに。

% sudo port activate scidavis @2.1.4_0

--->  Computing dependencies for scidavis

--->  Deactivating scidavis @2.4.0_1

--->  Cleaning scidavis

--->  Activating scidavis @2.1.4_0

--->  Cleaning scidavis


無事に古い方で起動が可能に。

現在の環境。
macOS 10.15.7
MacPorts version 2.7.1

2021年8月31日火曜日

macOSでパスワードつきzip圧縮

 これまでパスワードつきzipファイルを作るときは,

1. Finder上で右クリックして圧縮

2. terminalで

$ zipcloak <対象zipファイル名>

としていたのですが,最近このやり方で作ったパスワードつきzipファイルがうまく解凍できないトラブルが発生しました。

どうやら,ディレクトリをzip圧縮した際に起こるようです。

よくよくみてみると,zipcloakでパスワードをかける際に,

zipcloak warning: Local Entry CRC does not match CD: <ファイル名>

という警告が出ています。


結局古典的に,

$ zip -r -e <作りたいzipファイル名.zip> <対象ディレクトリ>

でパスワードつきzipファイルを作ったらうまく解凍できました。

理由はよくわかりませんが,今のところディレクトリを圧縮するのに右クリックは使わないほうがいい,ということのようです。

2021年1月24日日曜日

SciDAVisのインストール

 うっかりしていました..SciDAVisはてっきりソースからインストールしないといけないと思っていたのですが,念のためMacPortsで確認すると...



ありました...
Versionは2.1.4ですが,コンダラ引かないでインストールできるならそれに越したことはありません.
インストールしてみたのですが,はてどこにインストールされたのか...
探してみても,/opt/local/bin以下にいない模様.
そういうパターンの時は,~/Applicationsなどにインストールされることもあるので確認しますが,いません.
まさかと思って,/Applicationsを見てみると,/Applications/MacPorts/scidavis.appにありました.


バッチリです.
相変わらず拡張子.sciprojのファイルをダブルクリックしてもファイルは開きません.
右クリックの「開く」メニューから/Applications/MacPorts/scidavis.appを選択しても開きません.
一回/Applications/MacPorts/scidavis.appを起動したのちに,FileメニューのOpenから開かないと開きません.

また,version1.x.xでは既存のファイルを開くとプロットの色が反映されないバグがありましたが,そこは改善された模様.




2021年1月17日日曜日

SciDAVisのインストール準備

 研究室の学生に,グラフ作成はEXCELではないものを使いましょうと言っていて,無料で使えるグラフソフトとして昨年度からSciDAVisを推奨していました.

WinでもMacでも使えたので良かったのですが,どうやらMac版は今はsourceからビルドしないといけない模様...

重いコンダラを引きたくないので最近はなるべくバイナリインストールできるものをと言ってきたのですが,ここへきてインストールしてあった古いMacBookの調子が悪く,あたらしいMacBookにもインストールしないといけなくなってきました.

SciDAVisの現在のバージョンは2.3.0.

ソースをダウンロードしてtarを解凍すると,いくつかの書類が...

INSTALL.mdに従うと,MacPortsが推奨の模様.

事前に必要なパッケージは,

qt4-mac
qwt52
qwtplot3d
boost
gsl
py27-pyqt4
py-pyqwt
py27-sip
muparser

これらをportでインストール.

Qt4メインであることとPythonが2.7ベースであることが少し不安.

次に,以下のように管理者権限でsip-2.7のシンボリックリンクを貼る.

# ln -sf /opt/local/Library/Frameworks/Python.framework/Versions/2.7/share/sip /opt/local/share/py27-sip

続いてqtのパスを通す.zshなので,.zshrcに以下を書き込む.

PATH=/opt/local/bin:/opt/local/libexec/qt4/bin:$PATH

まずはここまで.


2020年6月10日水曜日

catalinaになってしまった

5年使ってきたMacbookがそろそろ色々な意味で手狭になってきたので,リプレース.
ところが,catalinaはちょっと厄介な様子.
色々使えなくなる予定,その一つがIgorPro
サポートしないとうたっていますが,サードパーティのXOPなどを使わなければ動く模様.
現状ではKaleidaGraphも動かない予定.
そして,GPIBはまだまだNIが対応していない様子.

絶対必要なのはTeXなので,TeX環境をどうするか.
もう10年以上Finkを使ってきたのですが,流石に少々疲れてきて(TeXで必ずトラブる)Homebrewも一瞬考えたのですが,musrfitがうまく動くかわからなかったので,試しにMacPorts経由でTeXLiveを入れることに.

噂で,bashからzshに変わったらしいということも聞いていたので,まずはzsh関係のお勉強.
Qiitaを参考にしました.

2019年4月20日土曜日

macOS MojaveでmakeしたときにFrameworkが探せなくなった<解決済み>

十年近く使ってきた測定用のmacbookを新調しました。
今しかないと思って,あえてのMacBookAir(非Retina)です。
税込約10万円で,旧USBポートが備わっていて,GPIBとserial通信両方同時にできそうなすばらしいハードウエア,と思ったのですが,罠が。。。。。

以前からつかっていた測定用のコードがコンパイルできません。 


小一時間,というかもう少し悩んで,いろいろ試しました。
NI4882は/Library/Frameworks以下にあります。
まずはni4882.hがみつけられないのだから-Iで探させてみたのですが,それでも次はldがNI4882をFile not foundと言ってきて,泥沼の様相。
NI4882の場所がいけないのかと思い,ldのmanやappleのdocを読み込んでみても,/Library/Frameworksで良さそう,っていうか/Library/Frameworksにしろと書いてある。
それこそHighSierraにダウングレードしようかなど考えていたのですが,どうやら-Fというオプションがある模様。
そこで,makefileに-F/Library/Frameworks を加えてみたところ,あっさり成功。



ちょっと苦労したので忘れないようにメモ。

2019年2月14日木曜日

pythonで超伝導マグネット電源から磁場の値を読み込む。closeの方法も。

先日メモしたように,Cryogenicの超マグ電源から,シリアル通信で現在の磁場の値を読み込むと,

>>> import visa
>>> rm = visa.ResourceManager()
>>> instr1 = rm.open_resource('ASRL1::INSTR')
>>> cmd = instr1.query('get o\n')
>>> cmd
'OUTPUT: 0.0000 TESLA AT 0.0 VOLTS \r\n'

のように,余計な文字列がたくさんついてきます。
どうやら,pythonはこういうときの処理がとても得意みたいです。

split()で空白で区切ると単にlistになるのですが,

>>> cmd.split()
['OUTPUT:', '0.0000', 'TESLA', 'AT', '0.0', 'VOLTS']
>>> type(cmd.split())
<class 'list'>

このままでは当然strのままです。

>>> type(cmd.split()[1])
<class 'str'>

これをfloat()にしてあげればよくて,

>>> field = float(cmd.split()[1])
>>> field
0.0
>>> type(field)
<class 'float'>
>>> 

のようにみごとに分割した文字列から一発で磁場の値を浮動小数点に変換できます。
ちなみにcloseの方法は簡単で,

>>> instr1.close()
>>> exit()
bhoona:~ yishii$ 

のように,ResourceManagerから持ってきたデバイス名に.close()をつけるだけです。
前回のエラーはすっかり消えました。

pythonすごいです,おどろくほど短いコードで済みます。