2021年12月30日木曜日

Apple silicon (M1 Mac)でGP-IB通信できるのか(情報収集中)

NI488,やっと64bit対応したと思ったらこんどはApple silicon。

あきらかに重いコンダラを引くことになりそうな話ですが,新品でintel macが手に入らなくなる前にどうにかしておきたい問題。


NI488はまだarm64には対応していない様子。

ウェブサイトには対応OSとしてmacOS 11(x86_64)と書かれています。

この場合理屈の上ではRosetta 2の上で動くはず。

あとは,コンパイル時にキチンとarchitectureとしてarm64ではなくx86_64が指定できるのかどうか。


今はHomebrewで開発環境整えているので,まずはHomebrewでインストールするパッケージがx86_64にできるのか。

調べてみると,そもそもx86_64では/usr/local以下にインストールされていたものが,arm64では/opt以下になるなど,その時点で大変な予感しかしない。

Homebrew自身は,まずはterminalをRosettaで起動するよう設定。

ここのチェックボックスをオンにするかオフにするかで,Rosettaかどうかを切り替えられる模様。
Rosetta版とarm64版を切り替えて使うことも可能らしい。

とりあえず今日はここまで。




gthreadの使い方が変わったらしい(C言語)

 最近,卒研生に測定用プログラムのメンテナンスや改良を任せようと思っているのですが,gtkやgthreadの情報があまり日本語で公開されていないので,牛の歩みで進めています。


まず一番困ったのが,最近になって以下のような二つのwarningが出てくるようになったことです。


main.c:503:3: warning: 'g_thread_init' is deprecated [-Wdeprecated-declarations]


main.c:580:12: warning: 'g_thread_create' is deprecated: Use 'g_thread_new'


GLibの仕様変更のようです。

一つ目に関しては,どうやらg_thread_initとはもう書かなくてよくなったようで,単純に削除でOKでした。

二つ目に関しては,本文中では


  thread = g_thread_create ( thread_func, (gpointer)label3, FALSE, &error );


と書いているのですが,これをそのままg_thread_newと書き換えただけではダメみたいです。

オンラインドキュメントを見てみると,

g_thread_new ()

GThread *           g_thread_new                        (const gchar *name,
                                                         GThreadFunc func,
                                                         gpointer data);


と書いてあり,引数が3つになって,しかも第一引数が謎のスレッド名。

とりあえず謎のスレッド名のところは適当に名前をつけて,第二引数に関数名,第三引数に関数に渡すパラメータとして書き直したところ無事にwarningが消えました。


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

まずはここまで.