2013-11-01から1ヶ月間の記事一覧

Canvas を WebGL のテクスチャにする

WebGL では、canvas 要素をテクスチャに使用できる。three.js の fragment shader は、中で gl_FragColor = gl_FragColor * texelColor としているので、ビルボード的なものを作るときは板ポリの色を 0xffffff にしておかないとダメ。どうせテクスチャ貼って…

CSS の RGBA による色指定について

CSS の RGBA による色指定は、 rgba(128, 0, 255, 0.5) のように、整数(0-255)、整数(0-255)、整数(0-255)、小数(0.0-1.0) なので注意。 RGB を小数で書くとエラーがログに出ることもなく無視される。128.0 とかも不可。 α値は 0.0 が透明、1.0 が不透明。な…

明晰な時間

持病のせいで、頭が澄んだ明晰な時間は週にわずかしか得られない。他の時間は、ゴチャゴチャしたものが頭を占拠していて、何も考えられない。明晰な時間には、論文を読み、労を厭わず鉛筆を手にとって計算し、プログラムとして実装できる。試行錯誤も苦にな…

書くわけ

黒歴史になることは確定的なのに、なぜ鬱発言を書き連ねているのか整理しておく。1つは、認知心理療法的な効果があるから。自分の中でもやもやしたものを文章として吐き出して目に見える形にする。書いたものが溜まっていくにつれて、「そういえば、これは以…

スキルが足りない

圧倒的にスキルが足りないのは分かっているが、どうやって訓練したらいいのか分からない。一言でいえば、経験を積むしかないのだろう。経験を積むためには、経験を得られる(=症例豊富な)環境に行かなければならない。だが、そのためには、自分のスキルを実力…

経過記録

先週は恐ろしく具合が悪かった。憂鬱感というよりはイライラが強くて集中困難。24日の日曜日になってようやく復調し、ゴニオメータのモデルとかを WebGL で書いて楽しんだ。25日はやや躁で、いろいろなプログラムのアイデアが浮かんだ。火曜日も順調だったが…

経過記録

今(2013/10/27)は、留学によるテンションの高さでカバーしているが、本質的には一週間前ほどからやや悪い相が始まっている。 http://d.hatena.ne.jp/biochem_fan/20131027/1382883947 のあと、11/5 ごろまで具合が悪かった。その後少し回復して、「自分はク…

スルースキル

ネットでは、「スルースキル」なるものが重要らしい。ギョッとする/ムッとする意見を見かけても、いちいち反論を吹っ掛けたりしない程度の煽り耐性はあるつもりだが、それでも「世間にはこんな攻撃的/差別的/etc な事を言う人がいる」と厭世的な気分になった…

Ruby で文字コードを取得する

前のラボで機器データ解析用に作っておいたプログラムが、Mac OS X を 10.9 (Marvericks) にアップグレードしたところ動作しなくなったという報告を受け取った。どうやら、OS 付属の Ruby が 2.0 にアップデートされたためらしい。Ruby で文字コードを取得し…

初めて触ったコンピュータ その2 - データレコーダのはなし

「記憶をダンプしておく」シリーズ第2号。その1は、こちらからどうぞ。さて、PC-6001 は最近の人から見ると信じられないような低スペックでだったわけだが、おそらく最も驚かれるのがデータの記録方法であろう。PC-6001の発売された1981年、ハードディスクド…

Xcode 付属の clang で C++11 の機能を使う

STL の vector コンテナを、リテラルで初期化する以下のコードを書いた。 std::vector<int> vec = {1, 2, 3}; これを Xcode 5.0.2 付属の g++ (実体は Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn)) でコンパイルしようとしたら、 non-aggreg</int>…

DIALS のビルド

2016/05/04: 今は Installation — DIALS documentation にしたがって操作すればよい。本記事は歴史的な観点から残してある。DIALS のビルド方法はどこにも書いていない(!)のだが、@yam_cpp 氏による 動かしてみたい機能があったのでDIALSをビルドしてみた.c…

cctbxのビルド

最新の cctbx をビルドするには、http://cctbx.sourceforge.net/current/installation.html の一番下のセクションの指示に従えばよい。単純に svn でチェックアウトしてきただけだと、ccp4io を始めとする種々の依存関係が揃わないため、ビルドできない。cct…

substr と substring

R

R の substr と substring は、どの引数がベクトル化されているかで異なる。前者は第一引数(対象の text) 、後者は位置(first, last 引数)がベクトル化されている。両方をベクトル化したものはないので、注意が必要だ。 > substr('ABCDEFG', 1:4, 4:7) [1] "…

乱数の引数

R

R で、確率分布から乱数をサンプリングする runif や rnorm の引数はベクトル化されている。 > runif(10, min=c(0, 100), max=c(10, 110)) [1] 7.046310 103.526202 1.910480 103.118722 3.107876 102.799656 1.802613 109.406715 1.984414 [10] 102.594984 …

整数の一様乱数を得る

R

Rで一様乱数を得るには runif 関数を使う。ヘルプに、 runif will not generate either of the extreme values unless max = min or max-min is small compared to min, and in particular not for the default arguments. http://stat.ethz.ch/R-manual/R-d…

プロキシ設定をコンソールから変更

Mac

システムのプロキシ設定をコンソールから変更するには、networksetup コマンドを使う。プロキシサーバのアドレスを変更することももちろん可能だが、自分が使うのはオン・オフの切り替えのみ。 alias poff='sudo networksetup -setwebproxystate "Thunderbol…

dials.import で処理の準備をする

dials.import *.osc とすると、画像のヘッダを元に sweep.json と param.phil が作られる。sweep.json は { "__id__": "imageset", "template": "#####.osc", "beam": { "direction": [ 0.0, 0.0, 1.0 ], "wavelength": 1.5418000221252441, "divergence": 0…

dials.analyze_background を動かしてみる

MeanAndVarianceFilterMasked を MeanAndVarianceFilterMaskedDouble に修正。 BOOST_ADAPTBX_FPE_DEFAULT=1 dials.analyse_blank 00*.osc で、画像が表示される。

dials.background_lookup を動かしてみる

C++ 側がエクスポートする名前と Python が import する名前が一致していないのでdials/algorithms/image/filter/boost_python/ にある fano_filter.cc と mean_and_variance.cc を修正(3箇所)。その上で、 BOOST_ADAPTBX_FPE_DEFAULT=1 dials.background_lo…

scitbx と numpy

scitbx はビルド時に SConscript (scitbx/array_family/boost_python/SConscript )で numpy の有無を検出しており、ない場合は RuntimeError: numpy API not available を生じるコードにコンパイルされる。したがって、scitbx のビルド後に numpy を入れても…

dials.spotfinder を使ってみる

覚え書き: $ dials.spotfinder test-000[123].osc Configuring spot finder from input parameters Finding strong spots Finding spots in image 0 to 3... Extracted strong pixels from images........................................1.45s Merged 3 pi…

numpy の導入

Mac

一昔前までは、Mac OS X 付属の Python に numpy を入れるのは困難で、Python 自体を入れなおす必要があり、そうすると OS 付属やら fink 由来やら独自ビルドやらの python が混在して、ごちゃごちゃになっていくのが常であった。今は状況が整理されたようで…

シングル・サインオンの仕組み

Cambridge 大学の学内限定Webサイトは、IPアドレス認証ではなくて、学生IDとパスワードによるシングルサインオンになっている。仕組みが気になったので勉強した。最近流行りの、Twitter や Facebook を使ったシングルサインオンも似たような仕組みだと思う。…

rsync が余計な上書きを繰り返す

大学の Linux 環境で、ホームディレクトリ(実態はファイルサーバ上)から、FAT32 でフォーマットされたUSBメモリに rsync -av でファイルをバックアップしている。すると、ファイルスタンプが同じであるにも関わらず、決まって上書きされるファイルがあること…

GDB メモ

これだけ知っていれば、一仕事できます(実話)。 基本コマンド bt backtrace バックトレース i r info registers レジスタ b breakpoint ブレークポイント設置 d bre 1 delete breakpoint 1 ブレークポイント1を削除 c continue ブレークポイントから復帰 fin…

手作業の魅力

X線結晶学の解析のステップには、手作業で人間が操作・介入する職人芸的なところが残っているのが嬉しい。積分でのちょっとしたコツでデータが綺麗になったり、分子置換でのモデル選択や探索順序の指定といった調節で、今まで見つからなかった解が見つかった…

bcで小数点以下の計算

bc コマンドで小数点以下も表示するには、scale 変数を設定する。入力を小数にしても無駄なので注意。 10 / 3 3 10.0 / 3 # これでは小数にはならない 3 scale = 3 # 小数点以下3桁まで表示と設定 10 / 3 3.333

隠された関数のコードを読む

R

#説明が雑!R では、関数名だけをタイプするとそのコードが表示される。例えば apply 。オブジェクト指向で多態になっているものについては、UseMethod を呼び出す総称的関数 (generic function) が表示されるだけだ。こういう時は、methods で一覧を取得で…

初めて触ったコンピュータ その1

「記憶をダンプしておく」シリーズ第1号。最初に述べたように、これは主観的な記憶であって、正確性は保証しないし、いろいろ美化されていると思う。懐古厨が嫌いな人にはオススメしない。私が最初に触れたコンピュータは、1981年発売の NEC の PC-6001 であ…