themeを変える。その他導入したプラグインなど

久しぶりに新しいテーマに変更してみました。

Platformとうテーマの無料版です。アプリのウィンドウサイズを変えるように、各パーツのサイズも変えることが出来るので気に入っています(もちろん管理画面で。読者は変えることは出来ません)。デザインもシンプルなので、読みやすくなったと思います。

また、新しいプラグインも10個ほど導入しました。以下の頁を参考にしました。

http://vanilla-rock.com/blog/wordpress/45-absolutely-install-wordpress-plugin/

最も変わったのは、各記事の後に関連記事がリストアップされた点でしょうか?これはsimilar postsというプラグインで記事中のキーワードの基づいて自動的に生成されるリンクで、私が設定しているわけではありません。

自分で自分の記事を読み返すきっかけにもなっています。

プラグインの数を一気に増加させたが、表示が重くなったという印象はない。WordPress、良く出来たplatformである。

今週は大学院入試、その他連休の雑感

大学の節電のための強制的な休暇(笑)で4連休だったわけだが、月曜から熱を出していた長女が高熱を出し、小児科へ。続けて妻も体調を崩し、そして生後2ヶ月の次女も高熱を出して、小児科へ。その前後、妻子の体調が良いときに妻の実家に行ったりしたのであるが、今年の連休は基本的には自宅と小児科でおとなしく家事をしながらすごした。連休が明けてようやくみんな健康体に戻りつつあるので、ひと安心。

改めて専業主婦の方々に敬意を表す。
ーーー
本日、保育園に娘を送り届けてから(久々に泣いた)、青葉区役所に住民票を取りに行く。

炎天下の中、徒歩30分程度のコース。

藤が丘から市ヶ尾までは線路沿いに、人工ではあるが、かわいらしい小川があって、さらに遊歩道が整備されている。

以前、妻と歩いたときには、子供と散歩するのに良い道だね、と話していて、その時はお互いまだずっと先の話と思っていたのだが、もう既に二人子供がいるというのだがら、時がたつのははやい。

この遊歩道は鶴見川に繋がり、市ヶ尾側へ渡る細い橋があったのだが、この橋は取り壊され、新しい橋が出来る予定だ。

この橋の直下には鳥やカメが休むコンクリートの岩場があって、「子供が喜ぶね」と話していたのだが、その岩場は辛うじて残っているようで良かった。

Mac OS X Lion ServerにはMySQLは付いてこない


7/20に発売されたMac OS X Lionを導入しました。私はMacBook Pro 13 (Early 2011)とMacBook Air (Mid 2010)を使っていますが、様子を見ながら1台ずつアップデートしました。(主要なアプリが動かなくて、仕事が止まってしまうのは困る)

結論から言うと過去のMac OSのメジャーアップデートと比べると最もトラブルが少ないアップデートであったと思います。

一方、Mac OS X Lion Serverの方は少々苦労している。
Lion ServerにはMySQLが付いてこないとのことでした。

デフォルトのデータベースはPostgreSQLとのことなので、MySQLを自分でインストールして、データベースを移行するか、PostgreSQLにデータベースを移行するかになります。

本サーバ、私の駄文blogだけでなく、妻の子育てブログ、その他大量のデータの受け渡しなどにも常時使用しているために、迂闊にサーバを止めてアップグレードすることは危険なのです。(もちろん実際のアップグレードor新規インストールは別HDDを用いて行いますが・・・)

ということで、Mac OS X Lionへの移行は冬休みくらいになると思います。

Igor Pro上でのプログラミング入門(一体どこから始めれば良いのか?)

Igor Proは単純なデータ処理、グラフ描画だけではなく、自分でスクリプトを書く事によってデータの入出力、様々な加工・統計処理、グラフ処理までを自動で行うことが可能である(実際Igor Proのメニューのコマンドもスクリプトで行われている)。

また、スクリプトを駆使すれば測定装置(USB, GP-IBを用いて)を制御可能で、Igor Proで測定装置の構築が可能となる。このことから、Igorに精通していれば、研究開発においてかなりデータ処理が楽になる事は間違いは無い。

一方、Igor ProはExcelなどのグラフ描画アプリと比べると敷居が高いことは事実で*、Igor Proの使用経験が無い学生が最初戸惑う事も多い。ということで、うちの研究室で用いているIgor Proの基本操作、簡単なスクリプト作成までを短時間でマスターするためのマニュアルを以下に公開しておく。
ーーー

基本操作

Igor Proのgetting startedに書かれている事柄を全て行う。(冊子でも良いし、Helpメニューから辿っても良い)
これで、waveの概念の理解、データの入力、グラフ作成、データ処理、fittingなど基本的作業をマスター出来る。

特にExcelなどとは異なり、グラフの細部までカスタマイズ可能で、仕上がりが美しくなることを実感して欲しい。
また、コマンドウィンドウ(Ctrl +J, command + Jで現れる)に現れるをチェック。例えばグラフのデザインに関しては個々に現れたコマンドをスクリプトに貼り付ければ、そのデザインを再現できる。

プログラミングの基礎

どのプログラミング言語(あるいは技術)でも当てはまると思うのだが、初心者が新しい言語を学ぶときは
1. “入手しうる最も簡単な入門書”に基づいて基本的な操作を理解
2. インターネットなどで”最も自分の目的に近い”ソースコードを入手し、動作確認の後、各コマンドの意味の理解
3. 1.2を繰り返す
4. その他のソースを当たる(2のソースコードで足りない部分を探すため)
5. 4のソースの解析
と繰り返していくといつの間にかある程度のことは出来るようになっている。

肝心の”最も簡単な入門書なのであるが、私の研究室では以下を最初に奨めている。
HelpにあるChapter IVのprogrammingを読めば良いのであるが、結構な分量があるので、以下を参照されたし。
これに沿って、作業していくことでwave間のデータの受け渡しなどの基本的なルールを習得できる。

また、コマンドの用法などは
で随時チェックしながら進めると、スムーズだろう。

さらに、 親切にもIgor Proのマクロ、functionについて書いてくれた個人ページが多数存在するので以下に紹介する。
http://www.nips.ac.jp/huinfo/documents/IGOR/igor01.html
また、私はGP-IB接続の測定機器をIgor Proで制御する際(Asylum AFMはその典型だが)、以下のsiteを参考にさせてもらった。

*ちなみにこんな事を書いているが、私はExcelでグラフを描いたことは人生で数回しかない。

夏休み

Labのクリーニングを終えて、大学による強制的な休暇(笑)に入りました。

最近はLabの研究の基礎的な部分をサポートする作業に明け暮れていたので、休み中、子供が寝ている時間にひたすら残務処理を進めるわけです。論文、メールの返信、その他の仕事の順番に少しずつ片付けています。こんな作業の中にも色々と、研究のアイデアなどとりとめも無く頭に浮かび、一人でニヤニヤしているわけですが、これも研究者人生の醍醐味と思い、楽しんでおります。

昨日は千葉の妻の実家に家族4人で、車で行ってきました。後部座席にチャイルドシート2つを載せて、真ん中に妻が座るフォーマットはかなりきつそうで・・・。まあ、あと2年くらいはこういう状態が続くのでしょう。

まだ3ヶ月になっていないにもかかわらず、周りに反応して笑顔を振りまいている次女は長時間のドライブでもぐずることなく、同じ姿勢で寝たり起きたり。一方、頑固者の2歳の長女はiPadでYouTubeで幼児番組を見たり、寝たりとしてくれていたので、スムーズに移動することが出来ました。(移動中の子供の世話が一番の心配事)

以下備忘録:

横浜ではガソリン147円/lが千葉北インター付近では140円。結構な差が有る。

 

Mac OS X Lion Recovery Disk Assistant

つい昨日まで研究室の学生とも話題になっていたMac OS X Lionのリカバリーディスクに関してであるが、ついに復旧のための物理メディアの作成方法が提供されました。

http://support.apple.com/kb/DL1433?viewlocale=ja_JP

何が問題かというと、如何に現在のシステムが壊れてしまってリカバリー領域から復旧出来るとしても、そのドライブが物理的に故障してしまったら、全く手が出ないと言うこと。つまり手元にTime Machineのバックアップが残っていて、マシンのメインドライブを交換したとしても、リカバリーのためのシステムが無い、という点で不安であったユーザは多いと思う。これでこの問題は解決。

1GBの容量のUSBメモリ、SDカードがあれば良いとのことなので、少し古いデジカメのメディアの再利用方法として最適だと思う。早速私も古いUSBメモリをこいつに当てることにした。

そこで疑問なのだが、このリカバリーメディアを使用すれば無制限にLionをインストールできてしまうのでしょうか?それともApple IDなどでLionのライセンスの有無を確認しているのでしょうか?興味がある。明日研究室のMacで試してみることにする(笑)。

追記: Lionインストール時にディスクイメージを取り出す技があったので、私もそれでディスクイメージをいざというときのために保存しておいたのですが、これを基にSDカードをリカバリーメディアにしてみたのだが、あるところから進まなかったので、実はハードウェアのクラッシュを今日まで恐れていました・・・。

About Lion Recovery Disk Assistant

Built right into OS X Lion, Lion Recovery lets you repair disks or reinstall OS X Lion without the need for a physical disc.

The Lion Recovery Disk Assistant lets you create Lion Recovery on an external drive that has all of the same capabilities as the built-in Lion Recovery: reinstall Lion, repair the disk using Disk Utility, restore from a Time Machine backup, or browse the web with Safari.

Note: In order to create an external Lion Recovery using the Lion Recovery Assistant, the Mac must have an existing Recovery HD.

To create an external Lion Recovery, download the Lion Recovery Disk Assistant application. Insert an external drive, launch the Lion Recovery Disk Assistant,  select the drive where you would like to install, and follow the on screen instructions.

When the Lion Recovery Disk Assistant completes, the new partition will not be visible in the Finder or Disk Utility. To access Lion Recovery, reboot the computer while holding the Option key. Select Recovery HD from the Startup Manager.

 

雑記

今週末はShadeを使って3D CG作成の練習。これができると申請書、プレゼンの図が格段ときれいになる。

過去に所属していた研究所ではきれいで見栄えが良い画像を作る専門の方がいたのだが、大学の研究室では基本的にメンバーで何もかもやらなければいけない。しかし完全に”町工場”となっている我が研究室にはその方が合っている。

また、今週末は長女が高熱を出しました。保育園で様々な病原菌に曝されているにもかかわらず、熱を出すのは4ヶ月ぶり。丈夫な方だと思います。

スペクトル描画スクリプト

先程のスクリプトにグラフの描画機能を加えたもの

スペース、tab, commaなどで区切られた2つのデータファイルを基にスペクトル、差スペクトルの描画を行います。

 

#pragma rtGlobals=1		// Use modern global access method.
// simple macros for unit conversion 1st Aug 2011 by T.Hayashi
// A Macro for Data analysis implemented on 1st Aug 2011 by T. Hayashi

Menu  "Raman"
	Submenu "Calc"
			"WL2WN"
			"WN2WL"
	end
	Submenu "Analysis"
			"Draw"
			"Add"
			"Dif"
			"BGsub"
	end
End

function  WL2WN()
	variable laser=488,wl=500
	Prompt laser, "Laser(nm)"
	Prompt wl, "wavelength(nm)"
	DoPrompt "Wave length to Wave number",laser ,wl
	Print  wl, "nm  corresponds to Raman shift of",(1e7/laser)-(1e7/wl)," cm-1","(LASER:", laser,"nm)"
End

function  WN2WL()
	variable laser=488,wn=1400
	Prompt laser, "Laser(nm)"
	Prompt wn, "wavenumber(cm-1)"
	DoPrompt "Wave length to  Wave number",laser ,wn
	Print " Raman shift of",wn,"cm-1 appears at",1/((1e7/laser)-wn)*1e7," nm","(LASER:", laser,"nm)"
End

Function Draw()
	LoadWave/g/n/a=data
	spec1()
// Use "spec1" as a test script
end

Function Add()
	LoadWave/g/n/a=data
	spec2()
// Use "spec2" as a test script to append new data to the existing grapha
end

Function Dif()
	LoadWave/g/n/a=data, "signal + BG"
	LoadWave/g/n/a=bg, "BG"
	spec3()
End

Function BGsub()
	LoadWave/g/n/a=data, "signal + BG"
	LoadWave/g/n/a=bg, "BG"
	spec4()
End

//
// spec1 draws an initial graph
Function spec1()
	string  name
	variable laser=488
	Prompt name, "Data name"
	Prompt laser, "Excitation Laser"
	DoPrompt "Enter the data name",name,laser
//
	string int="_int",cm="_cm"
	Duplicate data0,wn_temp; duplicate data1,int_temp
	wn_temp=(1e7/laser)-(1e7/wn_temp)
	Duplicate wn_temp,$(name+cm); duplicate int_temp,$(name+int)
	killwaves data0,data1,wn_temp,int_temp
	AppendToTable  $(name+int),$(name+cm)
//Draw Graph
	display $(name+int) vs $(name+cm)
	Label bottom "Wavenumber (cm-1)"
	Label left "Intensity (total counts)"
	Legend/C/N=text0/F=0/A=MC
	ModifyGraph width=400,height=300
End

Function spec2()
//
	string  name
	variable laser=488
	Prompt name, "Data name"
	Prompt laser, "Excitation Laser"
	DoPrompt "Enter the data name",name,laser
//
	string int="_int",cm="_cm"
	Duplicate data0,wn_temp; duplicate data1,int_temp
	wn_temp=(1e7/laser)-(1e7/wn_temp)
	Duplicate wn_temp,$(name+cm); duplicate int_temp,$(name+int)
	killwaves data0,data1,wn_temp,int_temp
	AppendToTable  $(name+int),$(name+cm)
	AppendToGraph $(name+int) vs $(name+cm)
	Legend/C/N=text0/F=0/A=MC
End

Function spec3()
//
	string  name
	variable laser=488
	Prompt name, "Data name"
	Prompt laser, "Excitation Laser"
	DoPrompt "Enter the data name",name,laser
//
	string int="_int",cm="_cm"
	Duplicate data0,wn_temp; duplicate data1,int_temp
	Duplicate bg0,wnbg_temp; duplicate bg1,intbg_temp
	wn_temp=(1e7/laser)-(1e7/wn_temp)
	wnbg_temp=(1e7/laser)-(1e7/wnbg_temp)
	int_temp=int_temp-intbg_temp
	Duplicate wn_temp,$(name+cm); duplicate int_temp,$(name+int)
	killwaves data0,data1,bg0,bg1,wn_temp,int_temp,wnbg_temp,intbg_temp
//
	display $(name+int) vs $(name+cm)
	Label bottom "Wavenumber (cm-1)"
	Label left "difference in spectra (counts)]"
	Legend/C/N=text0/F=0/A=MC
	ModifyGraph width=400,height=300
End

Function spec4()
//
	string  name
	variable laser=488
	Prompt name, "Data name"
	Prompt laser, "Excitation Laser"
	DoPrompt "Enter the data name",name,laser
//
	string int="_int",cm="_cm"
	Duplicate data0,wn_temp; duplicate data1,int_temp
	Duplicate bg0,wnbg_temp; duplicate bg1,intbg_temp
	wn_temp=(1e7/laser)-(1e7/wn_temp)
	wnbg_temp=(1e7/laser)-(1e7/wnbg_temp)
	int_temp=int_temp-intbg_temp
	Duplicate wn_temp,$(name+cm); duplicate int_temp,$(name+int)
	killwaves data0,data1,bg0,bg1,wn_temp,int_temp,wnbg_temp,intbg_temp
//
	display $(name+int) vs $(name+cm)
	Label bottom "Wavenumber (cm-1)"
	Label left "Intensity (BG subtracted ) counts"
	Legend/C/N=text0/F=0/A=MC
	ModifyGraph width=400,height=300
End

wave numberをwave lengthに変換するプログラム

Igor Proで動作する波長(wave length)と波数を相互に変換する単純なマクロです。

Raman shiftをnm(またはその逆)に変換するために作りました。

プロシージャファイルにコピーしてコンパイルして使ってください。

#pragma rtGlobals=1		// Use modern global access method.
// simple macros for unit conversion 1st Aug 2011 by T.Hayashi

Menu  "Raman"
             Submenu "Calc"
                                     "WL2WN"
                                     "WN2WL"
             end
End

function  WL2WN()
	variable laser=488,wl=500
	Prompt laser, "Laser(nm)"
	Prompt wl, "wavelength(nm)"
	DoPrompt "Wave length to Wave number",laser ,wl
	Print  wl, "nm  corresponds to Raman shift of",(1e7/laser)-(1e7/wl)," cm-1","(LASER:", laser,"nm)"
End

function  WN2WL()
	variable laser=488,wn=1400
	Prompt laser, "Laser(nm)"
	Prompt wn, "wavenumber(cm-1)"
	DoPrompt "Wave length to  Wave number",laser ,wn
	Print " Raman shift of",wn,"cm-1 appears at",1/((1e7/laser)-wn)*1e7," nm","(LASER:", laser,"nm)"
End