2015/05/06

Igorで画像のロード

Igorで画像をロードするのにQuickTimeが必要ということでインストールしたがQTCF.dllが見つからないと文句を言われた。仕方ないなぁとQuickTime\QTSystemにあるQTCF.dllをIgor.exeと同じフォルダにコピーしたところうまくいった。このdllだけで処理してるならQuickTimeをアンインストールしても良いかな?と期待したがさすがにそれはダメだった。ただ、インストールすべき項目は別のプログラムからライブラリをたたくessentialなんちゃらだけで良いので、viewerなどのインストールは不要みたいだ。

という備忘録。

2015/02/22

計算尺から学ぶ

計算尺についてちょっと気になったので[計算尺推進委員会]というサイトでお勉強。昔の人にとってlog(xy)=log(x)+log(y)の関係がどれだけありがたいものだったかが身に染みてよくわかりました。対数の概念を理解するのにもすごく役に立つし、高校で対数を教える際の教材として使うとよいんじゃないだろうか、という気がします。昔は教えてたらしいですが、少なくとも僕が高校生の頃はやってなくて、当時の僕は対数は「何でこんなことせにゃならんのか」という感じで今にして思うと概念がさっぱりわかってませんでした。多分、概念が分かり始めたのは大学の授業で片対数グラフを使ってからではないかと(もちろん、数学の人に言わせたら全然わかってないかもしれませんが…)。
なので、学校での数学・理科の授業はもう少し歴史的な経緯とか織り交ぜると「いかに役に立つのか」がよく分かって良いような気がします。この手の科目は利用するイメージができないと単なる作業でつまらないですし、概念を理解する手助けにもなると思うので。そうすれば、僕も色んなことをもっと深く理解できたのになぁ、ということを計算尺から学んだ日曜の朝でした(「今はパソコンで計算できるからそんなの要らないよ」とか毒づいてた可能性も高いですが…)。

2015/02/11

achemsoパッケージ

ACSの雑誌に投稿しようと構想してる論文をぼちぼち書きはじめるかなぁと決意。そういえばACSからtexパッケージが新しくなりましたと余計なお世話ありがたいお知らせが来てたのでしぶしぶインストールしたのだが、ちょっと面倒だったので、備忘録を残しておく。
  1. CTANのachemsoからachemso.tds.zipを落としてに解凍。
  2. コマンドラインで"texhash"を実行。
  3. その他、マニュアルに記載された必要になるパッケージ(caption,float,geometry,natbib,setspace,xkeyval)をCTANからzipでダウンロード。
  4. captionを解凍してフォルダに移動し、"tex caption.ins"を実行。できた一連のスタイルファイルを\tex\latex\achemsoに移動。
  5. floatを解凍してフォルダに移動し、"tex float.ins"を実行。既にシステムにあると言われたので上書きせずに途中停止。
  6. geometryを解凍してフォルダに移動し、"tex geometry.ins"を実行。できたスタイルファイルを\tex\latex\achemsoに移動。
  7. natbibを解凍してフォルダに移動し、"tex natbib.ins"を実行。できたスタイルファイルを\tex\latex\achemsoに移動。
  8. setspaceを解凍したらスタイルファイルが入ってたので\tex\latex\achemsoに移動。
  9. xkeyvalを入れようとしたら「これはkeyvalのextensionだ」と抜かすのでリンクをたどるとkeyvalというのはgraphicsパッケージで使われてるもので、これは最初から入っておるという。じゃあ、どうやってインストールするのだとpdfを読むがよくわからんのでとりあえずスキップ。
  10. 色々入れたので念のためもう一度コマンドラインで"texhash"を実行。
  11. うまくインストールされているか確認するためにachmso-demo.texをタイプセットするも"mhchem.styが必要"と言われたので、前回投稿したさいに使ったファイルを\tex\latex\achemsoに移動。念のためもう一度コマンドラインで"texhash"を実行。
  12. もう一度タイプセットしたら今度は「\mciteSubRefなどしらん」と言われる。web検索したところmciteplus.styというのを入れれば良いとのことなのでzipを落として解凍。スタイルファイルが入っていたので\tex\latex\achemsoに移動する。bstファイルが入っているのが気になるが、natbibとコンパチだと書いてあるので無視する。
  13. あと、mciteplusの情報を探した際に「スタイルファイルが古かったからACSフォーマットが通らなかった」とあったので念のためmhchem.styも念のため更新。こちらもzipを落として解凍したらスタイルファイルが入っていたので\tex\latex\achemsoに移動。他にもスタイルファイルがあったがこれもとりあえず無視する。
  14. いよいよ、ともう一度タイプセットしたらまた「\mciteSubRefなどしらん」と言われる。そういえば"texhash"してなかった、ということでコマンドラインで実行したらようやく通った。
もう一度やれと言われたら嫌なのでachemsoフォルダをzipして保存しておくことにする。やれやれ。

(150216追記)
achemsoパッケージは\includegraphicsで.pdfや.pngを埋め込む際のBoundingBox指定で、.bbファイルをうまく読み取ってくれない模様。仕方が無いので、コマンドラインで
ebb hogehoge.pdf
などしてbbファイルを作った後、.bbファイル中に書き込まれてる値をオプションで直接打ち込むとうまくいった。具体的には、
%%BoundingBox: 0 0 1417 1000
という感じの行が.bbファイルにあるはずなので、それを参考に
\includegraphics[width=\textwidth,bb=0 0 1417 1000,keepaspectratio]{hogehoge.pdf}
のように指定すればOK。いつもはebbするだけで良いので多少手間は増えるが、まぁ仕方あるまい。
ちなみにpdfcropというpdfファイルの余白をクロップするプログラムがW32TeXにはついているが、Perlで書かれてるので別途環境が必要。Pealを入れてないので面倒だなぁと思ってたら「バッチで作る、劣化版pdfcrop」というのがあったのでありがたく使わせていただく。

2014/11/15

装置監視用自動電子メール送信スクリプト

装置監視用に自動で画面をキャプチャーしてメールを送り付けるスクリプトを作ったので、誰かの役に立てばとログを残しておく。 

OSはwindowsで、メール送信はOSに標準装備のWSH/VBscriptとバッチファイル、画面のキャプチャーはスクリーンショットというフリーソフトを使用。 スクリーンショットの本体であるPrtScrn.exeと以下のファイルを同じフォルダに置いてsendmail.batを実行すればOK(メールアドレスとsmtp設定は各自変更のこと)。

作成に用いた引用元を示したかったのだが、色々なページからソースを引っ張ってきたのでどれがどれかわからなくなってしまった…

sendmail.bat
@echo off

:LOOP

REM 3600sに1回送信。間隔を変えたければ3600を変更する。
timeout /T 3600 /NOBREAK >nul
PrtScrn.exe -f screenshot.png
cscript sendmail.vbs your@mail.address.jp screenshot.png
del screenshot.png

REM 永遠に自動ループするので、終わるときはCTRL+Cで強制終了。
goto LOOP
sendmail.vbs
'引数より送信先アドレスと貼付ファイル名を取得
Set args = WScript.Arguments
strAddress = args.item(0)
strAttachment = args.item(1)

Set oMsg = CreateObject("CDO.Message")

'メール送信元アドレス
oMsg.From = "my@mail.address.jp"
oMsg.ReplyTo = "no-reply@mail.address.jp"

'メール送信先アドレス
oMsg.To = strAddress
'oMsg.Cc = "cc先メールアドレス"
'oMsg.Bcc = "bcc先メールアドレス"

'メール本文
oMsg.Subject = "件名"
oMsg.TextBody = "本文" & vbCrLf & Now
oMsg.AddAttachment strAttachment

'SMTPサーバとサーバポートの指定
oMsg.TextBodyPart.Charset = "ISO-2022-JP"
oMsg.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/" + "sendusing") = 2
oMsg.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/" + "smtpserver") = "smtp.mail.address.jp"
oMsg.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/" + "smtpserverport") = 25

'SMTP認証が必要な時はコメントを外しユーザーネームとパスワードを記入
'oMsg.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/" + "smtpauthenticate") = true
'oMsg.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/" + "sendusername") = "ユーザーネーム記入"
'oMsg.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/" + "sendpassword") = "メールパスワード記入"

'SSL送信が必要な時はコメントを外す
'oMsg.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/" + "smtpusessl") = true

oMsg.Configuration.Fields.Update
oMsg.Send

2011/09/11

サマーチャレンジ

更新が滞ってます。
ごめんなさい。
今回は8/19-28に行われたKEKサマーチャレンジのあれこれを書きたいと思います。

このKEKサマーチャレンジですが、毎年夏休みに開かれている(確か今年で5回目)主に大学3年生を対象としたイベントです。
最初は素粒子・原子核のグループだけで行っていたのですが、昨年度から我らが物構研も参加を開始。
昨年度は私の所属している中性子からの参加はなかったのですが、今年はお鉢が回ってきました。
個人的にこういうイベントは好きなのでちょっと興味はあったのですが、実際に演習をやるとなるとなかなかこれが大変そう。
それに加え、私が普段いる東海キャンパスではなくつくばキャンパスで開催されるということでいつもの実験装置は使えません(輸送も不可能ではないが、高価な実験機器が破損するリスクを考えると…)。
どうしたものかと頭を悩ませつつも、周りの方にアドバイスをいただきながら「実験機器が無いなら作ってしまおう作戦」ということで、高分子の薄膜を測定するのによく使われるエリプソメーターを作ることにしました。
また、作るだけではおもしろくないかなと思い、試料に使う高分子の薄膜でしばしば起きる「脱濡れ」という現象についても顕微鏡で観察することに。
協力を要請する大学の先生にも了解を取ってようやく実習として成立するめどがつきました。

が、当然ながら本当の準備はここからです。
色々と障害はあったのですが、最大の問題は「実はエリプソメーターを使ったことがない」ということでした(無謀?)。
というわけで、まずは教科書を購入して原理の理解を進めつつ必要になりそうな機器の吟味。
実習では装置の組み立てからやりたかったので、なるべく市販品の組み合わせでできるように部品を選んで発注。
時間があまりなかったので納期の問題が生じたりもしつつも、8月頭に何とか部品をすべて確保。
その間、TA等をお願いした九大の皆さんに試料の選定に関する予備実験を平行して行ってもらい、実際に測定するであろうテストサンプルも確保。
部品を組み立てた後にとりあえずテストサンプルを測定し、生データに違いが出ているしちゃんとワークしてるっぽい、ということを皆で確認。
ここまでを何とかお盆直前に済ませることができました。

その後、講義資料などを作りつつ、サマーチャレンジが始まる8/19につくばへと移動です。
結局、持って行った機材はエリプソメーターの部品、高分子の薄膜を作るスピンコーター、試料を準備に使うこまごました実験機器などで、車の後列シートを倒して輸送することができました。
初日は学生さんが丸一日講義ということで、スタッフ向けのオリエンテーションを受けた後に機材の搬入と物品の確認を行いました。
ただ、抜けがないように気をつけたつもりでも足りない部品は出てくるもの。
特に今回のようにばたばたしている場合は当然その点数も多くなります。
ありがたいことにつくばのスタッフの皆さんが色々と協力してくれたのでそれなりに部品は調達できたのですが、実習が始まってどうしても必要な機材が足りないことに気づき、泣く泣く東海に取りに戻りました(その間、学生さんは待ちぼうけ)。
また、エリプソメーターは偏光した光の性質を利用して膜厚を測定するのですが、これをちゃんと理解するのはなかなか難しく、準備不足も相まってなかなか演習は進みません(今にして思うと、試料の作成など色々と詰め込みすぎたのも問題だったかも)。
挙げ句の果てにはサマチャレが無事(?)始まって気が抜けたのか私が風邪を引いてしまう始末。

そんなカオスな状況でしたが、それでもきちんと演習を終えることができたのは、ひとえにサポートしてくれたのは演習アシスタントの皆さんと学生さんの頑張りの賜だと思います(もちろん裏方の事務スタッフの方々も)。
特に主役の学生さんは本当によくがんばっていて、最終日の前日、僕は少しでも休むように言った(少なくとも言ったつもり)にもかかわらず、演習成果の発表準備に向けて自主的に貫徹でスライド作成に取り組んでいました。
発表内容もしっかりしていて、その数日前にあった中間発表と比較して見違えるほど良くなったとの感想も聞かれるほどでした。
ただ、その頑張りに刺激され、徹夜明けの朝に僕が出した微修正の指示は「泣きそうだった」という声もあったりなかったり…

実は他にもエリプソメーターに使う検出器が原因不明の突然死とかいっぱいトラブルはあったのですが、挙げるときりがないこの辺にしておきます。
とにかく、私の側から見てもこのサマーチャレンジはチャレンジだったし、学生さんと一緒にチャレンジを終えることができて本当に満足しています。
もちろん、色々と問題点はあったのでそれは来年のチャレンジで克服してきたいと思います。
関係者の皆さん、本当にお疲れ様でした!!

2011/05/25

オレオサイエンス誌総説

日本油脂学会の学会誌「オレオサイエンス」に総説が掲載されました。
山田悟史, 菱田真史, "添加剤により誘起される巨大単層膜ベシクルの形成メカニズム", オレオサイエンス 11 (6), 205-211 (2011).

「界面膜を分子レベルで分析する分光学的手法」という特集で中性子散乱の記事を寄稿することになり、いい機会なのでちょっと前に中性子反射率、X線小角散乱を使って行った巨大単層膜ベシクルに関する研究をまとめることにしました。
今日、無事掲載されたと言うことで別刷りの代わりにオレオサイエンスの見本誌が送られてきたのですが、「酵素入りの洗剤を使用するとき、冷水より温水の方が効果があるのですか?より効果的な方法を教えてください。」というQ&Aがあったりとなかなかおもしろそうです。
あまり、応用寄りの雑誌って見たことがないので、あとでじっくり読んでみようかと思います(ちなみに先ほどの質問ですが、温水の方がずっと良いそうです)。

2011/05/17

自力でwordの相互参照

皆さん、論文は何で書いてますか?
数学、物理系ならTexの方が多いんじゃないでしょうか。
そういう私も普段の原稿はTexなのですが、普通にWordファイルが添付されてくるこのご時世、そういうわけにはいかないことがしばしばあります。
ところが、悲しいことにTexよりも簡単であってしかるべきWordに悩まされることは多いのではないでしょうか。
私の場合、やりたいことは分かっているのだが、それをどのような操作で実現したらよいのか分からない、というケースが多いような気がします。

今日もまさにそんなことがあって、色々と恨み辛みを書き連ねたいところですが、そんなことをしても時間の無駄なのでやめます。
代わりに、忘れないようにちゃんとlogを残します。
こんな解決の仕方をする人は珍しいような気がしますが、ひょっとしたら誰かの役に立つかもしれませんので。

[目的]
wordでreferenceの参照をする。

[問題]
"引用文献の挿入"というボタンはあるのだが、なぜかdisableになっている(当方word2010)。

[失敗事例]
"図表番号の挿入"というボタンでごまかそうとしたが、1行まるまる引用されてしまう。
山田により、…が報告された[2] N. L. Yamada et al., hogehoge Journal 1 (2011) 111.。
↑こんなことになる。

[解決策(力業)]
1.何でも良いので「フィールド欄」というのを作る。
例えば、"図表番号の挿入"をすると、番号部分が「フィールド欄」になっている。

2.右クリックで「フィールドの編集」というのを行い、以下のフィールドコードを記入する。
SEQ ref

すると、refという変数の連番が作成できるので、これをreferenceの文献に並べていく。
コピペでやるとフィールド更新というのをやる必要がある(全選択+F9で一度に更新できる)。
※ひょっとしたら、先ほどの"図表番号の挿入"でrefというラベルを定義しないとダメかもしれない。

3.このフィールドを選択した状態で「ブックマーク」というのを定義する。
Word2010の場合、「挿入→リンク→ブックマーク」で定義できる。
これに、文献の識別名を入力する。

4.引用したい場所でフィールドコードを以下のようにした「フィールド欄」を作成すると番号が引用される。
SEQ ref "識別名"

これもコピペでやるとフィールド更新というのをやる必要がある。


多分、もっと賢い何かしらのやり方があるのでしょうが、調べきれませんでした。
このやり方も十分面倒なので正直使いたくないところですが、レポートをとりまとめているので、この機能がないと番号を取り違えることが目に見えているので、とりあえずこれで我慢します。

誰かの参考になることを祈って。