tak0kadaの何でもノート

発声練習、生存確認用。

医学関連は 医学ノート

2017-01-01から1年間の記事一覧

boost::serialization::singleton

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

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

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

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

病院で学術用途で匿名化された画像ファイルの出力を依頼すると、 /run/media/tak0kada/dvd/DICOM |--00000000 | |--00000000 | |--00000001 |--00000001 ... |--_DCM_INF | |--00000000 | | |--_DCM_IDX.txt | | |--overlay.txt ... というディレクトリ構成…

Rでのダックタイピング

R

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

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

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

vimプラグイン作り方

Pythonでvim pluginを書く - Qiita Vimプラグインが出来るまで - ぼっち勉強会 Big Sky :: モテる男のVim script短期集中講座 neovimのプラグインをpythonで作る - Qiita

chrootなど

chroot Dockerとchrootを組み合わせたシンプルなコンテナデプロイツール - ゆううきブログ: chrootでいいじゃんという考え schroot: root権限なしでも使えるchroot fakeroot: debianのパッケージをビルドするときに使われる docker tail-island: 今更だけど…

Antergosのインストール後にやることリスト

何でもaptで入る訳ではなくてpacmanとyaourtを使い分けないといけないようなのでパッケージ名だけではなくコマンドごと記録した。pacmanの使い方はarch wikiを参照する。

2値、2次元でのMarching Cubes実装

Polygonising a scalar field (Marching Cubes)、http://users.polytech.unice.fr/~lingrand/MarchingCubes/algo.htmlを見つつ実装した。ただし2つめのページにあるように表面に穴が開く場合がある。

electron-packagerの使い方

devdocsのスタンドアロンなアプリが欲しいと思い探したところ、electronを利用したものとしてragingwind/devdogsとegoist/devdocs-appを見つけた。electronはnodejsとchromiumを使用しているのでjavascriptを書くだけでデスクトップアプリケーションを作成で…

npmの使い方

npm = Node Package Manager npm install package: ローカルにインストール npm install –save package: package.jsonのdependencyに追記される 開発する場合に必要な知識っぽい npm uninstall 違いが分からないもの npm remove npm unlink sudo npm install…

lilytermでショートカットに複数キーを割り当てる

lilytermは設定が簡単で、default.confを少しいじるだけで良くて気に入っている。デフォルトの例だとcopy_clipboard = Ctrl Deleteのような2キーによる設定しかないので3キー使うことが出来ないかと思いきやcopy_clipboard = Ctrl+Shift Cのようにすれば設定…

libnssを静的リンクできなかった

ubuntu15.10からantergosに移行したわけだが、先日書いたプログラムがlibboostの特定のバージョンに依存していたため動かなくなってしまった。今後は–staticにしたかったわけだが、最終的にはlibnssへの依存のためできなかった。とはいえ今後のためにメモ。

バイオイメージング動画

かなり綺麗な顕微鏡画像が見られる。 研究内容|自治医科大学 分子病態研究部 バイオイメージング静止画・動画集|自治医科大学 分子病態研究部

テンプレートで任意の多次元の配列を出力する

任意の次元の配列をprintする関数が欲しくなったが、単純にベタ書きする方法だと次元が決まっている場合しか対応できないのでテンプレートの再帰を用いたプログラムを書いてみた。

boost::asioメモ

boost::asioを使ったhttps通信 http://pragmaticjoe.blogspot.jp/2015/02/boostasio-https-client.html GitHub - alexandruc/SimpleHttpsClient: A simple HTTPS client based on Boost Asio.

pythonのクラス

メモ(podhmoさんのツイート) pythonのクラス関係のこと知りたいならtypeobject.cを読むのおすすめです。PyBaseObject_Typeがobject、PyType_Typeがtypeということがわかるとある程度普通に読めます。— po (@podhmo) 2017年2月27日

Windows向けにクロスコンパイル

極めてつまらないプログラムを書いた。Windowsユーザの弟も利用すると考えたので少しだけ工夫をした。 参考 https://arrayfire.com/cross-compile-to-windows-from-linux/ C言語 マクロ コンパイル 判定 OS コンパイラ - 山口屋~活動日誌~ mingw-w64があれ…

C++での時間の取り扱い

C++で日時を取り扱うプログラムを書いている。Cスタイル、C++スタイルの両方が存在しているほか、相互に変換するための関数、計測精度ごとに複数の関数が存在するなど非常にややこしい。以下は簡単なまとめとして、具体的にインクルードすべきヘッダ、型に関…

KLダイバージェンス、JSダイバージェンス

# Kallback-Leiblerダイバージェンス def kld(p, q): p = np.array(p) q = np.array(q) return np.sum(p * np.log(p/q)) # Jensen-Shannonダイバージェンス def jsd(p, q): p = np.array(p) q = np.array(q) m = 0.5 * (p + q) return 0.5 * (kld(p, m) + kl…

OCR (OSS、ウェブサービス)

レシートの読み込みやスキャンした配布物のテキスト化に使えそう。種類は色々あるが個人用途としては安価に見える。性能が満足できるものがあるかまた調べたい。

PaaSいろいろ

常時運用しているサーバーを持っているわけではないのでPaaSというものが便利そうに見える。 PaaS(Platform as a Service): OS、データベースなどが最初から提供されているものらしい 参考: 第4回 プラットフォームを作るPaaSを理解する――PaaSとIaaS,SaaSの…

LINE Messaging API

部活で使っているLINEグループの会話履歴を取るのに便利そう。 LINE Developers - Messaging API - Overview Messaging APIのご紹介 | LINE Business Center LINE API Reference LINEの新しいMessaging APIを試してみた - やらなイカ?