tak0kadaの何でもノート

発声練習、生存確認用。

医学関連は 医学ノート

C++コンパイラの名前修飾

コンパイラは最終的にはバイナリの実行ファイルを生成するわけだが、少なくともCやC++の場合は分割コンパイルができるので複数のオブジェクトファイルをリンカで結びつけることになっている。リンカはC言語の形式でしか名前を処理できないので、コンパイラC++の場合でもマングリングと呼ばれるC言語形式への書き換え処理を行ってくれている。

続きを読む

Gnome 3.28でデスクトップのアイコンが表示されなくなったらしい

アップデートしたら見た目が変わっていた。Gnome 3.28 removes the option to display desktop icons. / Applications & Desktop Environments / Arch Linux Forumsによると、とりあえずCarlos Soriano / org.gnome.desktop-icons · GitLabからプラグインをインストールするか、nemoに乗り換えることを推奨されている模様。

Raspberry Pi Zero WHを買った

モデルの比較を見て値段が安いので選んだ。正規代理店の方が全体的にamazonより安い感じだった。一緒にケースとブレッドボードとジャンパーワイヤを買って送料込み3,834円、LEDは単品では売っていなかった。Pi3 ModelBは性能が良さそうだけど高い。。GPIOという入出力ポートから外部へ接続するらしく、C++で使えるライブラリはWiringPiやpigpioがあるそうな。買っただけでまだ届いてもいないし届いたらLED点滅させるくらいはしないと。

ロボットアームの運動の行列表示など

ロボットアームを使って実験動物の手術をしてみたい人がいる。市販のものは少し大きいのと、自由度が足りないように見え、小さくて細かい動きが出来るものがあると便利だろう。

調べてみると自作している人はいるようで(リンク)、パルス波の周波数を変化させて角度を制御できるサーボモーターというものがあり、それで腕の角度を変化させるらしい。自作するとなるとモーター、アームの素材選びも必要だが、そもそもどう制御するかが分かっていないと手術をできるレベルのものは難しいだろう。以下はロボットアームの運動について調べものをしたメモ。

続きを読む

boost::serialization::singleton

メモ: static変数の初期化のテクニック
boost::serializationにおけるsingletonの内部の仕組み - redboltzの日記

Cでのプログラミング作法

リンク先も含めて安全なコードを書くための情報が多く参考になる。コード例も多い。ただノンプログラマがどこまでやるべきかという問題が...そもそも安全なプログラムが必要ならルールベースではなくてコンパイルの段階で弾かれるようになっていそうなRustを勉強したほうが良さそう。

qiita.com

dicomファイルをまとめて変換するスクリプト

病院で学術用途で匿名化された画像ファイルの出力を依頼すると、

/run/media/tak0kada/dvd/DICOM
|--00000000
|  |--00000000
|  |--00000001
|--00000001
...
|--_DCM_INF
|  |--00000000
|  |  |--_DCM_IDX.txt
|  |  |--overlay.txt
...

というディレクトリ構成のDVDをもらえる。dicomファイルは00000000、00000001と連番になっており、画像/動画データである。スクリプトでまとめて変換したい。pydicomだと難しそうだったがsitkとopencvで動画も出力できた。以下詳細。

続きを読む

Rでのダックタイピング

先日参加した1細胞RNAseq解析勉強会は基本的なRプログラミングとシーケンサーから少し前処理したあとのリード数データの取り扱いについての講義であった。司会の先生が格好良くライブコーディングを披露されていたのでそれを観察していたのだが、一般的なオブジェクトに対してcolSumsを適用する場面があり面食らった。

続きを読む

研修ローテーションをプログラムで決める

初期研修医が8人いる某病院にて、彼(女)らが色々な診療科を回る順番を決めることになった。珍しいことに、そのうちの1人がプログラムで決めると言い張ったためパソコンによる厳正なマッチングが行われた。以下はプログラム片とコメント。

続きを読む

vimプラグイン作り方