投稿

2010の投稿を表示しています

風呂掃除

風呂用洗剤をきらした.特に自然派お掃除にこだわるわけでも,節約志向でもないが,買いにいくのも面倒だったので,重曹水で代用.
水 200 cc をメジャーカップに入れ重曹大さじ 1 を加える.そのままではすべて溶けないので,電子レンジで1分.よくかきまぜて,残りも溶かす.霧吹きに移す.
浴槽に吹きかけて軽くこする.泡が立たないので地味だ.でも,実際入浴時にとてもきれいになったと感じた.

Mac OS X ServerでMacPortsを共有

MacPortsを使うと,フリーウェアのインストール手間が大幅に軽減される.しかし台数が増えてくると,アップデートも手間に感じられるようになってくる.そこでMacPortsを共有することを考えた.

MacPortsのインストールされたXserveで/optを共有しようとしたら,サーバ管理の共有には表示されなかった.表示されないディレクトリに移動するときは,Finderで移動>サーバに接続...を選ぶところだ.サーバ管理には隠しディレクトリを表示するオプションは見当たらない.アップルの記事によると,コマンドラインを使う必要があることが分かった.

以下を実行すると共有ポイントとして表示される./optが格納されているボリューム(たとえばServer HD)には表示されない.


sudo sharing -a /opt


AFPで思ったところ(/opt/local)にマウントできなかったので,上記の方法は中止.

昔ながらのNFSでエクスポートとマウントすることにした.
サーバ側で/etc/exportsに記述.NFSを起動 (sudo nfsd enable).クライアント側でマウント (sudo mount_nfs サーバ:/opt/local マウントポイント)クライアント側で/etc/fstabに記述.

XserveにSSを追加できない

イメージ
SSDを起動ディスクにしたXserveは起動が速いと同様に進めていたからか,
同僚がSSDを搭載したXserveを発注しようとしたところ,
SSDを追加できなくなっていた.

アップルに問い合わせをしたが, カスタマイズでのSSDの追加は終了とのこと.

どうも1週間くらい前に密かに終了していたようだ.
写真はXserveのSSD周辺. iPhone 3Gで撮影した最後の写真.

Octaveで2Dグラフ

Octaveのマニュアルなどの入門では, sinのような組込函数を描く例が多い.

描きたいのはsinではない. 論文に出てきた式を図にして確認したい.

例として描いてみるのは, CALIPSO搭載CALIOPセンサを使って見積もられた過冷却水の気温に対する依存性 (Hu et al. 2010のFig. 6dの赤い線) である.

pやfを函数定義 (function endfunction) してもよいが, ここでは単にx軸に対応する値を計算するにとどめる.

tの階乗は要素毎なので, スカラの階乗**に.をつけて.**とする. %のあとの文字はコメントである.

MacPortsでインストールしたばあい, AquaTermがデフォルトなので, 描かれた図はPDFかEPSで保存できる.

t = -40:0.1:0; % -40°Cから0°Cまで0.1°C刻み
p = 7.6725 + 1.0118*t + 0.1422*t.**2 + 0.0106*t.**3 + 3.39e-4*t.**4 +3.95e-6*t.**5; % 式(4)
f = 1./(1+exp(-p)); % 式(1)
plot(t,f)

zencoding.vim

HTMLやCSSを手早く書くためのvimスクリプトzencoding.vim

~/.vim/bundleにpathogenをclone.

~/.vim/autoload/にautoload/pathogen.vimのリンクを張る.

.vimrcの設定.

call pathogen#runtime_append_all_bundles()
call pathogen#helptags()

Xserve 2010年1月31日で販売終了

Xserveの新製品がでないないので, 予感はしていたが, 2010年1月31日で販売終了が発表された.

Mac ProかMac miniへの移行が示されているので, Mac OS X Serverは継続して販売するようである.

Mac Proの方が拡張性があり, 製品の更新が早いので, パフォーマンスも上である.
Mac OS X Serverは社内の情報共有にカスタマイズされていると思われるが, その用途であればMac miniで十分かもしれない.
したがって, 大して売れていなかったと思われるし, 困る人も少ないのだろう.

私の職場では, Mac OS X Serverを導入したMac Proも使っているが, ここ数年複数のXserveを導入した. Xserveは, RAIDの頭として使っている. ラックに据え付けるには, 1UのXserveが最適なので, 販売終了は残念だ. Mac Proは12Uもあり, ラックには向かない. Mac miniは1Uだそうだが, インターフェースが不足している.

Xserveはラックマウントキットのできがすばらしい. レールは手を傷つけない塗装がしてある. 金具にはマグネットがついているので, 一人でも簡単に設置できる. ついでに箱もすばらしい.

Cybershot DSC-HX5V

SONYのGPS付デジカメDSC-HX5Vを購入.

位置取得時間を短縮するために,GPSアシストデータを更新する必要がある. マニュアルによると, カメラを専用ケーブルでPCにつなぎ, Windows版しかないPMBから更新することになっている.

Kakaku.comのクチコミ掲示板にメモリカードの所定の場所にファイルを保存しているだけだとあったので, シェルスクリプトを作成した. このスクリプトを使えば, 専用ケーブルもWindows PCも不要だ. 引数にはカードの名前を指定する. DSC-HX5Vはメモリースティックだけでなく, SDカードも使える. 最近のMacBook Proには, SDカードスロットがあるので, カードリーダもいらない.


#!/bin/sh
URL=http://control.d-imaging.sony.co.jp/GPS/assistme.dat
CURL=/usr/bin/curl
CURLOPTS="--create-dirs -o"
if [ $# -lt 1 ]; then
echo "Usage:: $0 Volume"
exit
fi
VOL=$1
OUT=/Volumes/$VOL/PRIVATE/SONY/GPS/ASSISTME.DAT
$CURL $CURLOPTS "$OUT" $URL

リソースフォーク

Safariでデータをダウンロードしたら,リソースフォークがついてしまった.tarしたときに気がついた.過去の遺産, そろそろ廃止してほしい.

tarするときは分離されるが, ゴミが含まれてしまう.
環境変数を設定すると, データだけがアーカイブされる.

export COPYFILE_DISABLE=true


MacWiki: リソースフォーク

atlasなしのoctave

Accelerate.frameworkには,問題があるために,octaveは行列ライブラリとしてatlasに依存させている.

atlasはコンパイルに時間がかかる上に, g95のvariantがない.gcc44のコンパイルも加えると,かなり長い時間かかる.

そこでarpack, octave用にパッチを作成した.

arpack用
octave用


2010-11-21追記: mkoctfileがうまくいかなかった問題を修正.
octaveのビルド中に一時的なディレクトリに生成されるdotwrp.oへの
パスが残ってしまった.
以下のラッパは独立したportとしたので, 下記にあるように,
filesに入れておく必要はない.

g95を使う場合は, octaveのPortfileパッチをあてるだけでなく,
filesの中にdotwrp.f90を入れておく必要がある.

gfortranの場合は

sudo port -d install octave +no_atlas

g95の場合は

sudo port -d install octave +g95

とする.

Accelerateのcdotu, cdotc, zdotc, zdotuで出るsegmentation faultを回避する

MacPortsのOctaveがATLASに移行してしまい, Accelerateを使わなくなった.
ATLASはコンパイルに時間がかかる上, g95がサポートされていない.
ATLASがg95サポートするようにしてもよいのだが, OSに添付され最適化されているAccelerate frameworkを使いたい.
そこでAccelerateを復活させようとしている.

問題となるのは, OctaveのconfigureでCDOTU, ZDOTUのテストにSegmentation faultなどが出て失敗することである.

原因は, AccelerateはCBLASなのでCやg77のABIに従い, 返り値が複素数を指すポインタであるのに, g95, gfortranは浮動小数点レジスタファイルであること. gfortranでは-ff2cとすることで解決する. g95ではラッパが必要. Appleが示したラッパをちょっとだけ改変して関数名に_をつけたので, ラッパは-fno-underscoringをつけてコンパイルするが, 呼び出し側ではオプションは不要.

2010-11-20追記: githubにて公開. MacPortsを使ってインストール


!g95 -fno-underscoring dotwrp.f90 -c
double complex function zdotc_(n, zx, incx, zy, incy)
double complex zx(*), zy(*), z
integer n, incx, incy

call cblas_zdotc_sub(%val(n), zx, %val(incx), zy, %val(incy), z)

zdotc_ = z
return
end

double complex function zdotu_(n, zx, incx, zy, incy)
double complex zx(*), zy(*), z
integer n, incx, incy

call cblas_zdotu_sub(%val(n), zx, %val(incx), zy, %val(incy), z)

zdotu_ = z
return
end

complex function cdotc_(n, cx, incx, cy, incy)
complex cx(*), cy(*…

pandocで日本語epub

pandocでepubを作る時, metadata.xmlに言語を指定できるが, content.opfに書き込まれるだけで, 個々のxhtmlには言語は指定されない. このままだとAdobe Digital Editionsでは文字化けしてしまう. 横浜工文社のbatスクリプトを参考にpandocが生成したepubを解凍, xhtmlを編集, 再びepubにまとめるスクリプトを作成した.

#!/bin/sh
epub=$1
bname=`basename ${epub}`
base=${bname%.*}
epubo=${base}_jp.epub
TMPDIR=/tmp/${base}

if [ -d ${TMPDIR} ]; then
rm -rf ${TMPDIR}
fi
if [ -f ${TMPDIR}/../${epubo} ]; then
rm -f ${TMPDIR}/../${epubo}
fi
if [ -f ${epubo} ]; then
rm -f ${epubo}
fi
mkdir ${TMPDIR}

unzip ${epub} -d ${TMPDIR}

cd ${TMPDIR}
for f in *.xhtml; do
g=${f}j
sed -e 's|html xmlns="http://www.w3.org/1999/xhtml"|html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"|' ${f} > ${g}
mv -f ${g} ${f}
done

zip -0 ../${epubo} mimetype
zip -r ../${epubo} * -x mimetype

mv ../${epubo} ${OLDPWD}
rm -rf ${TMPDIR}
rm -f ${TMPDIR}../${epubo}

連番画像をQuickTimeに

MacWikiにあるものを少し修正. Snow LeopardではQuicktime PlayerではなくQuickTime Player 7とする.

tell application "QuickTime Player"
activate
set firstFile to choose file with prompt "連番の最初のファイルを選択"
display dialog "1秒あたりのフレーム数" buttons {"OK"} default answer "2" default button 1 with icon 1
-- open image sequence firstFile seconds per frame 2
open image sequence firstFile frames per second text returned of result
save document 1 as self contained
end tell


2011/1/17追記. Snow Leopardでは上記スクリプトはコンパイルできず.Leopardで書いたスクリプトをSnow Leopardで開いたら,以下のようになっていた.

tell application "QuickTime Player"
activate
set firstFile to choose file with prompt "連番の最初のファイルを選択"
display dialog "1秒あたりのフレーム数" buttons {"OK"} default answer "2" default button 1 with icon 1
-- open image sequence firstFile seconds per frame 2
«event MVWRopis» firstFile given «class fpsc»:text returned of result
save document 1 as «constant savkflat»
end tell

pandocでepub

さまざまな形式の文書が作成できるpandocが1.6からepubに対応.
残念ながらMacPortsのpandocは古く, ビルドにも問題があるようだ.
pandocはHaskellで書かれている. Haskellは, コンパイラghcだけでなく, 独自のパッケージ管理システムcabal等を含む包括的なプラットフォーム.
まず, Mac OS X用のHaskellをインストール. ghcは/usr/bin, cabalは/usr/localにインストールされる.
次にpandocのインストール. cabal update
cabal install pandocバイナリは~/.cabal/binに, マニュアルは~/.cabal/share/manにインストールされる.
MacPortsのptexにはunicodeパッケージは含まれないので,別途入手し~/texmf/texなどに置く(置いたらmktexlsr).
Mac上ではAdobe Digital Editionsでepub形式のファイルを読むことができる.

多言語ウェブサイト

同僚に教えてもらったことを糸口に, ウェブサイトの日本語と英語となど言語の切り替えについて調べた.

言語やエンコーディングなどの処理は, mod_mimeが担当. 言語, 文字セットと拡張子との対応は, MacのApache2の場合/etc/httpd/extra/httpd-languages.confに定義されていて,特に設定の必要はない. もしhttpd.confで読み込みがコメントアウトされている場合は, コメントアウトを外す. またOptionsにMultiviewsが必要なのでうまくいかないときは確認する.

順序は何でもよさそうなのだが, MacのApache2では, ja.htmlではうまくいかずhtml.jaだとうまくいった

Safariの場合, ブラウザ自体の言語設定はなく, システム環境設定の「言語とテキスト」で設定. Safariを再起動すると有効になる.

2013/04/01追記

DirectoryIndexをindexとするとhtml.jaでもうまくいく.DirectoryIndexがindex.htmlだとindex.html.en, index.html.fr, index.html.jaから選ばれ,index.ja.htmlは対象にならないためうまくいかなかった.

2013/04/02追記

Lion Serverは複数のサイトをホストできるようになっている.デフォルトのサイトの設定ファイルは/etc/apache2/sites/0000_any_80_.confで,こちらにDirectoryIndexが指定されているので,ここを直さないと403 (Forbidden) エラーが発生する.

iPad最大の問題点

かな入力がなくローマ字かな変換だけ.中国語にはあるのに,日本語には手書きをどうして用意してくれないんだろう.

ncarg 5.2.0

MacPortsのncargを5.2.0に更新. 変更点は,
HDFEOS5ファイルが読めるようになる. PNGでの書き出しがサポートされた.サイズの小さいPDFが作られる (newpdf).カラーテーブルが充実.UDUNITSをやめてUDUNITS-2を採用.などなど.

JRA25

JRA25のGRIBファイルをMacPortsで入れたGrADS, GrADS2で読もうとしたが, Bus errorやSegmentation faultが出る.
先のTigerでのコンパイルとは別のマシン.

nclではうまく読めるようだ.

alloc: invalid block

Tigerで更新したportsのチェックをしようとしたところ,
alloc: invalid block
というエラーが出た.Tclから出ているらしい.
export MACOS_DEPLOYMENT_TARGET=10.4
としたらエラーは出なくなった.

しかしコンパイル時にバスエラーが出る.
TigerはもうMacPortsではサポートしていないが,明らかに何かおかしい.

upc

Unified Parallel Cは,Co-array Fortran同様にメッセージ交換ではなく,PGAS (partitioned global address space)ブログラムモデルに基づく言語. 1ノード用のgccupcをMacPortsに登録. 複数ノードで実行するには, Berkeleyのラインタイムが必要. 連休中にこちらのコンパイルもできたが, パッケージとして調整中.

szip

szipのdecoderはフリーだが, encoderは営利目的にはライセンスを取得することが必要.MacPortsのszipのデフォルトではencoderは無効. +encoderを付けて有効化する必要がある. HDF4などからszipによる圧縮を利用したい場合は注意.

第110回地球情報館公開セミナー

公開セミナーには,寒い中たくさんの方が集まってくださいました.話が長くなってしまい,測候所の廃止,アイスランドの火山の噴火,寒い春と北極振動の関係に関する質問をいただきました.お答えになったか分かりませんが,聴衆の皆様の気象に対する強い関心を感じることができました.セミナースライドをアップロードしました.

掃除機の回転ブラシ

3年ほど前に, SHARPの縦型サイクロン掃除機を購入した. ずいぶん安いが, 母がくれたTupperwareと共同開発したという掃除機と似た構造. 洋服のほこりとりのような部品やスパチュラないしはスクイージーのようなの羽根がついている回転ブラシもよく似ている. いかにもゴミがよくとれそうな構造だ.

ところが, このところヘッドの回転ブラシが回らなくなっていた. 先日ブラシを外して掃除した. ゴミ, とくに糸や髪の毛がからまっていた. きれいにしたのだが, 回転しなかった.

ヘッドの交換が必要かもしれないと思ったが, ベルトは切れていないし, モーターで回しているようにも思えなかった. 気流で回しているのなら, どこか詰まっていない限りブラシは回転するはずだが, 詰まっているところはない. ねじが見えたので思い切って分解してみることにした. ねじは6本. 前の方にツメがあり, ふたを外すときにいやな音がしたが, 折らずにすんだ.

ふたを開けてみると, 内部にごみが溜っていた. 想像通り, 羽根のついた回転軸でブラシは回転する構造. ブラシ回転のスイッチは, 気流の流れを変えるだけの簡単なもの. 外からは見えない回転軸の歯車の部分にも髪の毛が絡まっていた. これでは回るはずがない. きれいにそうじをして元に戻す.

ふたを閉めてねじを元通りに締める. 掃除機のスイッチを入れると, 回転ブラシが勢いよく, 「ウィーン」と音を立てて回った.

Time Capsule導入

AmazonでAPPLE Time Capsule 2TB MC344J/Aを購入.

自作PCの外付HDDでのTime Machineには成功したが,PCとHDDの電源を入れっぱなしにしておくことには抵抗がある.

サードパーティのNASでもTime Machineは可能だし,NAS対応のケースに安価なバルクHDDを入れても良い.実際PCにつないだのは,ロジテック クレードルタイプ HDDリーダーライタ eSATA&USB2.0接続タイプ LHR-DS01SAU2.

Apple AirMac Extremeベースステーション MC340J/Aに,現在使っているハードディスクをNASケースに入れてつなごうと考えた.

電源内蔵のハードディスクケースは現在製造物責任法のため,手に入りにくいようだ.しかも安いとはいえない.

Time Capsuleは割高だと言われているが,無線LAN, ギガビットの有線ハブ (3つ), 2TBハードディスク,電源内蔵ハードディスクと考えると決して高くないように思われる.

Ethernetケーブルと電源をつなぐとAirMacユーティリティがTime Capsuleを自動的に検出. AirMacユーティリティの更新を求められる. 添付のCDからイントールすると,1) 新たなネットワークを作るか, 2) 既存の無線LANを置き換えるか, 3) 既存の無線LANに接続するか聞かれる. プロパイダから借りているルータに差している無線LANカードを置き換えるので, 2) に該当. 無線LANカードを抜くと, 設定がすべて引き継がれている. すばらしい.

いったんTime Machineの設定は後回しにしたが, 後で有線で接続し, Time CapsuleのDataを選択してバックアップ実行.

なお,比較的最近 (2010/2/28) 付のユーザーレビューで最悪との評がある.
買ったばかりなので分からないが, 旧製品の問題はアップルが対応している. また有線がギガビットでないことで躊躇したとのコメントも目にしたが,現在の製品はWANx1, LANx3ポートすべてギガビットになっている.新旧製品の情報が入り乱れているので注意.

f2py

f2pyは, numpyに含まれF77/f90のサブルーチンをpythonから利用するために用いるスクリプト. F77の場合どれが出力となるかをコメントに書く必要が生じることもあるが, 簡単に共有ライブラリの生成ができる. Eigen2やmkoctfileくらい簡単だ. NCLには独自のWRAPITがあるが, PyNGLではnumpyのf2pyを使う.

PyNGL

NetCDFなどのファイルを読み書きするPyNIOとNCLをPythonから使えるようにするPyNGLをMacPortsに追加した (py26-nio.py26-ngl). NCL (ncarg) 同様, 入手には登録が必要なのでEarth System Gridから手動でソースを取得する必要がある. NCLで描ける絵のほとんどに対応しているようだ. Pythonのテキスト処理や辞書などのデータ構造や, numpy, scipyを使った数値処理が利用できるようになる. 依存するNCL等のコンパイル時に用いたコンパイラがg95のときは, インストールするときに+g95をつける.