2010年
3月
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31

setup diary

2007|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|06|08|11|
2015|01|02|03|04|05|06|07|08|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|

2010-03-05 SCSI機器の接続

_ 電源を切らずにSCSI機器を接続、切断

久しぶりにMOを使うことになったが、MOを読めるPCが無かったので、SCSIを積んだlinuxマシンでMOを認識させることにした。MOの電源を入れて再起動すれば、使えるのだが、できれば電源を切りたくない。Windowsの場合には、ハードウェアの再認識をさせれば良いのだが、linuxでどうやるのか知らなかったので、調べてみたら、やはり方法はあるようだ。 まずは、scsiaddとlsscsiをインストール。
sudo scsiadd -s
を実行すると、
Host: scsi0 Channel: 00 Id: 01 Lun: 00
で認識された。そこで、
sudo scsiadd -a 0 0 1 0
とすると、無事MOの認識に成功した。取り外すのも簡単である。まずはlsscsiを実行すると、
[0:0:1:0]    *************  /dev/sda
などと表示されるので、
sudo scsiadd -r 0 0 1 0
を実行して、MOの電源を切れば良い。 これでMOを手軽に使えるようになった。

2010-03-14 Rとlatex

_ latexの式をepsに

グラフを書くときにはRを使っているが、Rで書いたグラフの欠点の一つに、数式などの表記が美しくないという点が挙げられる。expressionとpasteを使えば、いろいろな式を表現することができるが、見栄えがあまり良くない。psfragを使うとRで書いたグラフにlatexの文字を埋め込むことができるようなので、試してみた。まず、比較のためにRでグラフを書いてみる。
x<-seq(from=0, to=7, by=0.01)
y<-sin(x)
xl<-c(0,2*pi)
yl<-c(-1,1)
X11(width=100/25.4,height=80/25.4)
par(bg=rgb(0.99,0.99,0.99),fg="black")
par(tcl=0.5,xaxs="i",yaxs="i")
par(mar=c(3,4,1,1))
par(las=1,ps=11)
plot(x,y,type="l",xlim=xl,ylim=yl,ann=FALSE,axes=FALSE)
box()
axis(1,at=c(0,pi,2*pi),labels=c(0,expression(pi),expression(2*pi)),padj=-1)
axis(2,labels=TRUE)
axis(3,at=c(0,pi,2*pi),labels=FALSE)
axis(4,labels=FALSE)
mtext(expression(italic(x)),side=1,line=2)
mtext(expression(italic(y)),side=2,line=3)
text(4,0.5,expression(paste(italic(y),"=",sin," ",italic(x))))
dev.copy2eps(file="sin.eps")
最近は、こんな感じで書いたグラフをepsにして、latexに取り込んでいる。いよいよpsfragで処理するために、もとになるepsを作る。
x<-seq(from=0, to=7, by=0.01)
y<-sin(x)
xl<-c(0,2*pi)
yl<-c(-1,1)
X11(width=100/25.4,height=80/25.4)
par(bg=rgb(0.99,0.99,0.99),fg="black")
par(tcl=0.5,xaxs="i",yaxs="i")
par(mar=c(3,4,1,1))
par(las=1,ps=11)
plot(x,y,type="l",xlim=xl,ylim=yl,ann=FALSE,axes=FALSE)
box()
axis(1,at=c(0,pi,2*pi),labels=c("l1","l2","l3"),padj=-1)
axis(2,labels=TRUE)
axis(3,at=c(0,pi,2*pi),labels=FALSE)
axis(4,labels=FALSE)
mtext("x",side=1,line=2)
mtext("y",side=2,line=3)
text(4,0.5,"title")
dev.copy2eps(file="sintex.eps")
これはほとんど同じなのだが、文字は置き換えるために、単純な文字列にしている。そして、このepsをpsfragを使ってlatexで処理する。
\documentclass[11pt]{jarticle}
\usepackage[dvips]{graphicx}
\usepackage{psfrag}
\pagestyle{empty}
\begin{document}
\psfrag{title}{$y=\sin x$}
\psfrag{x}{$x$}
\psfrag{y}{$y$}
\psfrag{l1}{$0$}
\psfrag{l2}{$\pi$}
\psfrag{l3}{$2\pi$}
\includegraphics{sintex.eps} 
\end{document}
このファイルをplatex, dvips, ps2epsで処理すると、文字がlatexの文字で置換されたepsファイルができる。このdiaryには基本的には図は載せないことにしているので、見せることができないが、出来上がった二つの図を比較してみると、やはりlatexの文字は綺麗だと感じる。ただし、y軸の数字は置換していないので、Rのフォントになってしまっていて、少し違和感がある。picture環境で図と文字を配置しても同じようなことができる気もするが、psfragも有用な手法だと感じる。

2010-03-17 epsの切り出し

_ Imagemagickでのepsへの変換

latexで図が必要なときには、epsを用いる。自分で図をつくる場合は、出力形式をepsにすれば良いが、別のところから図を取ってくる場合には、epsに変換する必要がある。画像を扱うときに非常に便利なのがImagemagickである。pdfからepsを作るときには、しばしばconvertを使っていたのだが、なぜか画質が落ちてしまうので、苦労していた。ようやくその理由が分かった。デフォルトでは、解像度が72となっているらしい。何も指定しなければ、元の画像の解像度を利用するのかと思っていたのが間違いらしい。pdfから直接だと不安だったので、psに直してから、こんな感じで解像度を指定して切り出したらうまくいった。
convert -density 288 -crop 960x680+1200+400 original.ps output.eps
pdfやpsの中に含まれている図の解像度を調べる方法が分かれば、その解像度を指定して切り出すと、元の情報を失わないようにできるのだが。

2010-03-26 the new element

_ コペルニシウム

知人から新しい周期表を頂いたので、いろいろと調べていたら、約5年ぶりに新しく元素名が決まったらしいことが分かった。112番元素で、coperniciumという名称になった。ちなみに、ハングルでは코페르니슘である。元素記号はCnである。このことについて話をしていたら、有機物質と紛らわしいのではないかという意見があった。つまり、CnH2nとなっていたときに、CnH2nなのか、CnH2nなのかということである。2n個水素のついたコペルニシウムというのもなかなか無いだろうが。

新しい元素名が決まると、Homepageに載せているすべての周期表を書き換える必要がある。現在は14種類だが、今回は15種類にする予定である。まだ、いくつかの言語での元素名が分からないので、調べなければいけない。


2010-03-30 linuxでdmgのmount

_ dmg2imgを使う

新しいプリンターが来たので、linuxから印刷できるようにしようとしたら、なかなか難しい。まず、PPDファイルが見つからなかったので、OSX用のdriverをdownloadしたら、dmgだった。まずは、
file file.dmg
でフォーマットを調べると、
VAX COFF executable not stripped
というように表示された。これは圧縮されているdmgファイルらしい。これを展開するために、dmg2imgをdownloadして、windows用しか見つからなかったので、
wine dmg2img.exe file.dmg temp.dmg
として変換すると、ようやくマウントできるようになる。
sudo mount -t hfsplus -o loop temp.dmg mntpath
としたら、無事中身を見ることができた。ppdファイルを見つけて、よしと思ったら、
Unsupported format 'application/postscript'!
と出てしまった。どうすればよいんだ。プリンタはcannonのMF8350Cdnというものなのだが、cannonのサイトにはUNIX用のドライバーは無い。しかし、いろいろと探していたら、canon-europeのサイトに、UFRII/UFRII LT Printer Driver for Linuxというものがあって、cndrvcups-common_2.00-2_i386.debとcndrvcups-ufr2-uk_2.00-2_i386.debをdpkgでインストールしたら、無事に印刷できるようになった。日本のlinuxの普及率はまだまだ低いが、ヨーロッパではlinuxのdriverの需要があるということなのだろうか。

2010-03-31 new PC

_ 6年ぶりのmain PCの更新

本日、新しいPCが届いたので、早速OSのインストール等をした。前のPCは6年以上前に買ったもので、Pen4だった。Linuxを使っていると、別に遅くなったと感じることはないので、なかなか更新する気にならないのだが、ようやく更新する運びとなった。次のPCはAMDにしようと思ってはいたが、6年もするとCPU事情も随分変わったので、どうしようか迷ったが、コストパフォーマンスの良いAMDにすることにした。CPUとしては、125WのAMD PhenomⅡX4 965 BEを選択した。これにdebianをインストールできるのか心配で、いろいろと調べたがよく分からなかったので、試してみることにした。OSはDebian Lennyのamd64のLXDEを選択した。64bitもまだ少し心配ではあるが、使っているうちに慣れるだろう。インストール自体はあっさり終わったが、Xだと画面が表示されない。どうやら解像度が高すぎて、displayに写らないようだ。xfree86からxorgになってからは、適当な解像度を選んでくれるようで、最近は特に苦労しなかったのだが、今回は/etc/X11/xorg.confを書き換えるしかないようだ。Section "Screen"のところに以下を追加して、使っているdisplayの最高解像度にした。
        DefaultDepth    24
        SubSection      "Display"
                Depth   24
                Modes   "1280x1024"
        EndSubSection
あと、ビープ音がうるさいので、/etc/modprobe.d/blacklist に
blacklist pcspkr
を追加して、スピーカーを殺した。あとはrubyをインストールすれば、通常の使用には問題無い状態になった。