tak0kadaの何でもノート

発声練習、生存確認用。

医学関連は 医学ノート

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

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

vimプラグイン作り方

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

chrootなど

chroot schroot: root権限なしでも使えるchroot fakeroot: debianのパッケージをビルドするときに使われる

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を試してみた - やらなイカ?

「Sleep as Android」の睡眠アドバイスが過学習している件

Sleep as Android、フリーで試用できてサポートも丁寧で良い。何でも改善を試みる場合は計測することで思わぬ発見があるが、睡眠も同様であり、同じアプリを使用している弟より睡眠の効率が悪いことが明らかになった。 ところで、このアプリには睡眠へのアド…

jarファイルの逆コンパイル

jar xvf test.jar jad -o -r -sjava -dsrc **/*.class jadはhttp://varaneckas.com/jad/からダウンロードする。扱いやすそうなのでstatically linkedなファイルを選択した。 日本語は\uから始まる文字列になっているのでpythonならline.encode().decode('uni…

pythonのデコレータ(setter, getter, property, staticmethod, classmethod)

nd2readerのソースコードを見ていたら@staticmethodが散見された。文法を知らなかったので調べた。

正規表現

正規表現についてのメモ(随時更新)

Rでビット演算

R

Rでビット演算をしてみたい。2進数表記にはR.utilsを使うと良さそう。

GIMPのプラグイン

卒業アルバムのために少し写真を編集するのにGIMPを使った。GIMPはプラグインが色々あって画像処理のプログラムを自分で書けなくても利用することが出来る。以下プラグイン名のみメモ。

合成関数

$f(g(x)) = f \circ g (x) $ (完全に老化が進行している...)

C++での可視化

C++のコードから簡単にmatplotlibを使ってグラフを作成する方法 - MyEnigma CinderでiPadアプリを実装してみた | Preferred Research でらうま倶楽部 : cinder を含む記事 VTK - The Visualization Toolkit VTK/Tutorials - KitwarePublic

球面調和関数関連の論文

調べたものの読み切れないのでリストを放出する。良さそうな論文はリンク先に有用そうな実装情報があったりする。(読んでいないと明記されているものは全く読んでいないが、それ以外もきちんと読んだわけではないことに注意)

vispyで.objファイルをプロットする

OpenGLを使わずに.obj形式のメッシュの可視化を自由にしたい。vispyを試してみたところ、簡単だがOpenGLなしでは自由な表現が出来なかった。開発中で実装が充実している最中なので今後もっと使いやすくなるかも。以下メモ。

不連続な関数f(θ, Φ)の球面調和関数展開

球面上に分布する不連続な値を球面調和関数展開するコードを書いた。

mikutter

Linux上のmikutterでリンクをクリックしたらMac上のブラウザで表示する方法 - かーねる・う゛いえむにっき mikutterプラグインメモ - Togetterまとめ

Rcpp参考資料

Rcpp: Seamless R and C++ Integration: Rcpp本家サイト。Rcppを利用した便利なパッケージのリストもある。 Introduction to Rcpp - GitBook: 教科書

RのC実装(資料)

少し理解度が上がったのでggり直したら日本語の分かりやすい資料が出てきた。 http://www.slideshare.net/abicky/r-15350295: SEXPREC構造体とGC http://qiita.com/R_Linux/items/05e1848eee064c25cd1e: gdb http://qiita.com/kohske/items/a7a1f51726ea2cb2…

RのオブジェクトのC実装

以下https://cran.r-project.org/doc/manuals/r-release/R-ints.htmlとコードを眺めながら書いた駄文。ドキュメントは充実しているので良い。その他書き足す気力が失われたがmode、typeof、is.XX関数は重要と思われる。コードを読んでいると結局Rのオブジェ…

Rのクラス(S3~R6)

R

Rのオブジェクト指向について。細かい表現(=が入るかどうかなど)についてはリンク先で確認する。

Rの関数コールグラフ

Rのオブジェクト指向について調べていて、S3はlistだという表現が比喩なのかlistを使って実装されているのか気になった。ついでにS4クラスなどの実装も軽く調べておく。

Doxygenで生成されるdotファイルの種類

doxygenを実行すると、htmlディレクトリの下にdotファイルが複数生成される。シェルスクリプト弱者なので import glob dotfiles = glob.glob('*.dot') としてdotファイル名のリストを得て、ソートしたりなどして分類した。

pydotplusでdoxygenで生成したdotファイルを操作する

dot言語はグラフ構造をテキストファイルで表したもの。pydotというライブラリが有名だそうだが、手元で動かなかったためpydotplus(pydotplus 2.0.2 : Python Package Index)というライブラリをインストールした。dotファイルを読み込んだあとは基本的にgette…

MAプロット、RAプロット、Bland-Altmanプロット

抄読会でRNA-seqのデータ処理についての話を聞いて、その中で出てきたプロットが気になったのでpythonでやってみた。実際に可視化するときはRのパッケージを使ったほうが楽だと思う。

Point Cloud Library

3次元の点群を扱うライブラリ PCL - Point Cloud Library (PCL) PCLを触ってみよう! | DERiVE コンピュータビジョン ブログ Point Cloud Library (PCL)の各モジュールの概要 - MyEnigma 法線推定 Documentation - Point Cloud Library (PCL) 【シリーズ】「…

Poisson Image Editing

以前の記事で利用したPoisson Surface Reconstructionのアルゴリズムを調べる前に2次元でポアソン方程式を解く手法について調べたところ、Poisson Image Editingを見つけた。この手法を3次元に拡張すると3次元メッシュも変形できる。

CGALのサンプルを実行する(その3)

http://doc.cgal.org/latest/Point_set_processing_3/index.html#Point_set_processing_3NormalOrientation を少し変更して実行した。

CGALのサンプルを実行する(その2)

前回の記事に続いてCGAL 4.8 - Point Set Processing: User Manualを実行してみる。aptで拾ってきたcgalだとバグがあるようで型エラーが取れなかったのでgithubからダウンロードしたソースコードをビルドして利用した。

CGALのサンプルを実行する

CGAL 4.8 - Poisson Surface Reconstruction: User Manualを実行した。以下概要。

Rの並列化

R

Rも並列化で高速化することが可能らしい。使うパッケージとしてはRmpi、snow、pforeachがある。pforeachが一番後発なので多分使いやすいのだろう? Rmpi MPI Tutorial for R (Rmpi) MPIクラスタとRstudioを併用した中規模データの分析レポート作成の実際 snow…

ガウス曲率K、平均曲率Hの計算

Differential Forms with Applications to the Physical Sciencesのp.48の6番でz=f(x,y)と表せるような曲面についてガウス曲率Kと平均曲率Hを求める問題がある。これをsympyでやってみる。

プロの仕事とは

定められた時間内、制約内で確実に結果を出すのがプロフェッショナルである。今研究室でしている作業は他人の研究成果をコードに落とし込んでデータを解析するというエンジニア的なことなのだが、どうにも作業が進まない。というのも、自分には完璧主義的な…

「幾何学的に理解する物理数学」を読んだ

サイエンス社SGCライブラリの幾何学的に理解する物理数学を微積分を理解するために読んだ。初心者に分かりやすく、浅く広く勉強するのには便利な教科書だが、誤植(と初学者並に思う)が所々あるので証明の間を埋めるのに少し時間を要した。テンソル、複素解析…

PySideについての調べもの

GUIアプリケーションを書こうと思い、PySideについて調べた。

メッシュ上の数値積分

実際にはメッシュの頂点上に与えられた離散的な関数を球面調和関数で展開する 球面調和関数は連続なのでできる限りその情報を失わないようにしたい 連続関数のメッシュ上での積分はガウス求積が一般的に用いられる ガウス求積 - Wikipedia ガウス=クロンロ…