投稿

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

注音符號

臺灣で子供向けの地球科学・地理の本を買ってきた.漢字には,注音でルビがふってある.注音は発音を表す記号で,臺灣で使われている.Wikipediaによるとカタカナを参考に作られたそうだ.たしかに,カタカナの「ム」,ひらがなの「く」「せ」「さ」に似た記号がある.しかし,日本人には,カタカナやひらがなの音が邪魔をしてしまう.

カタカナを参考にしたのなら,元の漢字があるはず.元の漢字の音を参考にすれば,少しは覚えやすくなるはずだ.

 Wikipediaの中文版には,元の漢字が書いてある.古字や変体を採用したものもあり,すべてがなじみのある字とは限らないが,参考にはなりそうだ.

子音

ㄅ b 包 baōㄆ p 扑 pū かるく卜(ポクッ)と打つ.ㄇ m 冪 mì ベキだが,注音の下は幕(まく)ㄈ f 匚 fāng(ほう)ㄉ d 刀 daōㄊ t 突 凸 tūㄌ l 力 lìㄍ g 澮 kuài 水が集まっている様子ㄎ k 考 kaōㄏ h 厂 hăn がんだれㄐ j 糾 jiūㄑ q 田の間を流れる水を表す.その音?ㄒ x 下 xiàㄓ zh 之ㄔ ch 彳chì 左足の歩みㄕsh 尸 shī しかばねㄖ r 日 rìㄗ z 節 jié(尖音)ㄘ c 七 qī(尖音)ㄙ s 私 sī 母音
ㄚ a 丫 yā ふたまたㄛ o 呵 hēㄜ e ㄛにてんをつけて変形したものㄝ ê 也 yĕㄞ ai 亥 hàiㄟ ei 丿 piě をひっくり返したものㄠ ao 幺 yāoㄡ ou 又 yòuㄢ an 「ㄢ,艸木之華未發圅然。」意味が分からないなぁ.「ア」と「ン」の合体?ㄣ en 隱 yĭnㄤ ang 尢(古字)尪(俗字)尩(正字) wāng 歩行の不自由な人ㄥ eng 肱 gōngㄦ er 兒ㄧ yī

ソースとシンク

ソースに対応する日本語はみなもと(源)だが,シンクの良い訳が思いつかない.國立臺灣大學の教授に中国語ではなんと言うか聞いてみた.「滙」だそうだ.iPhoneの大辞林や新漢語林を引いてみたが,見当たらない.紙の漢語林を部首で調べていたら,見出しの字は,「匯」だった.「滙」は同字.漢音は「カイ」呉音は「ガイ」で,めぐる,集まるという意味.為替という意味もある.ちなみに,HSBCが「滙豐」.シンクに対応する,やまとことばは何だろう.

MacPortsでTeXLive 2012をインストール

ずっとMacPortsでptexを使ってきた. blahtexmlのPortfileを書いているときに,manual.pdfの生成にucs.styが必要となった.ちょっと調べてみると,texlive-latex-extraに入ってることが分かった.MacPortsのTeXLiveパッケージの中身は,このページにまとめられている。ついでにTeXLive 2011でptexが含まれるようになったことが分かった.

$ sudo port -d install texlive-lang-cjk
とするとtexlive一式とtexlive-lang-cjkがインストールされ,platexで日本語が扱える.さらに,uptexも入っている.テストとしてhello.texを準備し,
$ platex hello $ dvipdfmx hello
とするとhello.pdfが生成される.ただし,ヒラギノは埋め込まれない. ptex同様にヒラギノを埋め込むようにする.TexLiveでは,カスタマイズは${prefix}/share/texmf-local以下にするのが流儀だそうだ.ここを参考に以下のようにする.


ヒラギノのシンボリックリンクを作成.データベース更新 (mktexlsr)フォントマップの選択
$ sudo mkdir -p /opt/local/share/texmf-local/fonts/opentype/public/hiragino/ $ cd /opt/local/share/texmf-local/fonts/opentype/public/hiragino/ $ sudo ln -fs "/Library/Fonts/ヒラギノ明朝 Pro W3.otf" ./HiraMinPro-W3.otf $ sudo ln -fs "/Library/Fonts/ヒラギノ明朝 Pro W6.otf" ./HiraMinPro-W6.otf $ sudo ln -fs "/Library/Fonts/ヒラギノ丸ゴ Pro W4.otf" ./HiraMaruPro-W4.otf $ sudo ln -fs "/Library/Fonts/ヒラギノ角ゴ Pro W3.otf" ./…

iBooks Author 2

2012年10月23日のKeynoteでiBooks Author 2が発表された.このバージョンからLaTeXまたはMathMLでの数式の入力が可能になった. 数式を入力するには,メニューから挿入>方程式...を選ぶか,キーボードでショートカットキー Command + Option +Eをタイプする.最初から数式モードになっているので,ダイアログにLaTeXのコマンドを打てばよい.¥は\の代わりには使えない. ドキュメントによると,iBooks Authors 2の数式機能はblahtexを使用している.blahtexのマニュアルによると,デフォルトはdisplaymath(独立数式).文中の数式にするには,$$か\(\)で囲めばよい.

iPod touch 5th generation

アップルストアでメッセージ入りで注文したiPod touchが上海から来日。クロネコさんが3日かけて、東京経由ではこんでくれた。出張も成田経由が多いが、貨物も同じなのかもしれない。

携帯卒業も視野に入れているが、電話の代わりにするのは難しい。050plusには、携帯の番号が必要。携帯を解約するときは050plusも解約しなければならない。Skype inやFusion ip-phone Smartなど代替サービスの検討が必要。

緊急電話、フリーダイヤルなど、IP電話からかけられない番号もある。遅延があり、音質も劣るような気がする。

iPod touchのハードウェアとしての制約もある。電話として作られていないため、マナーモードのスイッチ、バイブレータ、耳に当てているか検知するための近接センサがない。リモコンマイク付きのヘッドホンは別売。ついでに言えば明るさの自動調節も省略されている。

インターネットに接続され、通信状態がよければ、SkypeなどIP電話やFacetimeからの発信は問題ない。着信には、通常IP電話のアプリを起動しておく必要がある。着信音量には、配慮が必要。設定>サウンド>着信音と通知音のボタンで変更をオンにしておけば、音量ボタンで着信音や通知音の調整ができる。Bluetoothバイブレータを使えば、着信には気づくことができるだろう。

情報端末としては、iPhone 4と比較して格段に使いやすくなっている。体感速度は向上しているし、画面は長くなって見やすい。薄くて軽い。今更ながらSiriは遊べるし、文字入力には便利。Siriが見せてくれる地図は、iOS6標準のマップなので、Google Mapsなどで代替はできない。改善を待つばかり。


NCLの隠しオプション

NCLを-hオプションを付けて起動させれば,オプション一覧が表示される。
$ ncl -h Usage: ncl -hnpxV -n: don't enumerate values in print() -p: don't page output from the system() command -o: retain former behavior for certain backwards-incompatible changes -x: echo NCL commands -V: print NCL version and exit -h: print this message and exit ソースncl_ncarg-6.0.0/ni/src/ncl/Ncl.cを読むと, 二つの隠しオプションがあることが分る。
/* NOT ADVERTISED! Will override "no echo" and print EVERYTHING! */ case 'X': NCLoverrideEcho = 1; break; /* NOT ADVERTISED! Will not echo copyright notice! */ case 'Q': NCLnoCopyright = 1; break; -Xは何でも書き出すオプションで,デバッグ時に有効。-Qはコピーライトを表示しない。-nQとすれば,nclで計算したデータをテキストに書き出すときに便利。

Mountain LionでMacPorts

AppStoreからXcode 4.4をダウンロード.
Xcodeを起動.Xcode > Preferences > DownloadsでCommand Line Toolsをインストール.
Xcodeのライセンスを確認.

$ sudo xcodebuild -licenseXquartzをインストール. MacPorts-2.1.2をインストール. インストールしてある場合は更新.
$ sudo port -d selfupdate
OSが更新されたら,全て入れ直す
port -qv installed > myports.txt $ sudo port -f uninstall installed $ sudo port clean all
myports.txtを見ながらパッケージを再インストール.7/29現在Mountain Lion用のバイナリがないので,ソースからコンパイルされる.

bnfc

BNFCは, LBNFを入力すると, 字句解析器や構文解析器を生成する. Haskellで書かれているが, Haskellのほか, C, C++, Java, OCamlのコードも生成する.

BNFC-2.4.2.0は, ghc-7.4.1でうまくコンパイルできない.古いhaskell89モジュールに依存しているためだ. 手でモジュールの名前を置き換えてコンパイルできるようにしたが, haskell89に依存するHaskellコードを生成してしまう.

SVNリポジトリ版は, 簡単にコンパイルでき, 問題なくチュートリアルを済ませることができた.

Haskellで並列プログラミング

2012年5月にHaskell Platformの新しいバージョンが出るようなので,待った方がよいかも.→出ました.

Haskell入門5ステップの4.1 初めてのHaskell並列プログラミングでつまづいた.
Most RTS options are disabled -rtsoptsをつけてもエラーが出続ける. 以下の通り, 最新GHCとcabal-installを入れたところうまくいった.
ghc-7.4.1をインストール.cabal-install $ git clone git://github.com/ibtaylor/cabal-install.git $ cd cabal-install $ sudo bash -c 'unset PATH; . /etc/profile; bash bootstrap.sh --global' パッケージ情報の更新. $ cabal update parallelパッケージのインストール. $cabal install parallel

HaskellとXcode 4.3

Haskell-platform 2011.4をインストールした.パッケージをインストール途中,ghcが/Developer/usr/bin/gccがないと言って止まる./usr/bin/ghcはシェルスクリプトで,ここにgccへのパスが書いてある.Xcode-4.3からXcodeはただのアプリケーションになったので,/Developerは/Applications/Xcode.app/Contents/Developerに移動.でも長ったらしいので,/usr/bin/gccとしておいた./usr/bin/clangにしてみたが,コンパイルはうまくいかない.なお,/usr/bin/ghcはシンボリックリンク.

PDFの圧縮

pdfsizeoptでPDFの圧縮を試みる。

jbig2enc, sam2pをMacPortsからインストール。

pngoutとMultivalent.jarはオープンソースではない。pngoutはバイナリを~/local/binに置く。Multvalent.jarのToolsは現在のバージョンには含まれないので、pdfsizeoptのページからダウンロードして、~/Library/Java/Extensionsに置く。デフォルトでCLASSPATHに含まれるが、環境変数に含まれないのでpdfsizeopt.pyからは分らない。

pdfsizeoptをチェックアウト。pythonの在処を書き換えたpdfsizeopt.pyを~/local/libexecに置く。引数とCLASSPATHを渡し、大量の中間ファイルを取り除くために、pdfsizeopt.pyを下記のスクリプトから呼び出す。

サイズは確かに小さくなるが、処理に結構時間がかかる。途中で落ちてしまうこともある。pdftkでつなげた場合はうまくいった。

#!/bin/sh PDFSIZEOPT=${HOME}/local/libexec/pdfsizeopt.py OPTS="--use-pngout=true --use-jbig2=true --use-multivalent=true" MULTIVALENT=${HOME}/Library/Java/Extensions/Multivalent.jar if [ $# -lt 1 ]; then echo "usage :: $0 input.pdf" exit fi INPUT=$1 TMPDIR=`mktemp -d /tmp/pdfsizeopt.XXXXXX` cp ${INPUT} ${TMPDIR} cd ${TMPDIR} CLASSPATH=${MULTIVALENT} ${PDFSIZEOPT} ${OPTS} ${INPUT} mv ${INPUT%pdf}psom.pdf ${OLDPWD} rm -rf ${TMPDIR}

検索可能なPDF作成

論文の多くがPDF化されているが、透明テキストがついていない場合がある。Acrobatがするのが楽だが、フリーウェアでも可能。

MacPortsでは、ghostscript, hocr2pdfが含まれているexact-image, tesseractと辞書 (tesseract-eng, tesseract-jpnなど) をインストールする。以下の手順をスクリプトにまとめた(参考にしたrubyスクリプト)。

LZW圧縮してもファイルサイズ大きい3倍くらいになる。圧縮しないと10倍くらい。Acrobatだと元のファイルより小さくなっている。-dPDFSETTINGS=/screenだと解像度はともかく、画像が乱れて使い物にならなかった。


gsの-sDEVICE=tifflzwはモノクロなので、一旦非圧縮の24bitカラーに出力してからconvertで変換している。

追記: pdftkでまとめるのが良い。MacPortsではgcc-4.5のバグ?のため、コンパイルできないのでバイナリをインストール。サイズはpdfsizeoptでAcrobat並みのサイズになった。
ghostscriptでPDFのページを分解してtiffにする。tesseract-ocrでOCRしてhocr2pdf用のHTMLを作成。convertでtiffをLZW圧縮。hocr2pdfで透明テキストとLZW圧縮したtiffをまとめてPDFを作成。pdftkghostscriptで一つのPDFにまとめる。#!/bin/sh PDFTK=pdftk GS=gs RES=300 TIFF=tiff24nc GSOPTS="-q -dBATCH -dNOPAUSE" TESSERACT=tesseract CONVERT=convert CONVERTOPTS="-compress lzw" HOCR2PDF=hocr2pdf PDFQUALITY=/ebook if [ $# -lt 2 ]; then echo "Usage :: $0 input.pdf lang (eng|jpn)" exit fi FNAME=$1 LANG=$2 TMPDIR=`mktemp -d /tmp/pdfocr.XXXXXX` cp "${FN…

TeXのソースを分割してTeXShopでタイプセット

長い書き物をするとき、TeXのソースはいくつかのファイルに分割することが多い。ルートファイルroot.texに\input{foo}を使って、foo.texの中身を取り込む。
コマンドラインだとMakefileに依存関係を書いておくと楽。でも、ちょっと面倒。omakeで更新のたびに自動的にタイプセットすることもできる。
TeXShopでは、foo.texを編集しているときにタイプセットをクリック、またはCommand+Tしてfoo.tex自体をコンパイルしてしまうことがある。
foo.texの冒頭に
%!TEX root = root.tex と書いておくと、foo.texの代わりにroot.texをコンパイルする。
root.texには
%!TEX TS-program = pdflatex のようにどのコマンドでタイプセットするか書いておくとよい。
どちらもTeXShopのヘルプに書いてある。

起動ディスクを抜いても起動したLionの魔法

仕事のメインマシンであるMac Proは,いつからかファイル共有もリモートログインもできなくなった.共有はもちろんオンだし,ファイアウォールも使っていない.hosts.allowを書いてみたりして,tcpwrapperを起動させたりしたのがいけなかったのかもしれないが,結局よく分からない.セーフモードで起動して,Mac OS X 10.7.3 comboを再適用したがこれもだめ.Lionの再インストールを決断した.
でも,バックアップは面倒なのでこの機会に起動ディスクを大きいもの(2TB)に入れ替えることにした.Mac Proのディスク交換は至って簡単.蓋を開けてディスクトレイを引き出す.ディスクを入れ替えて戻す.電源を入れる.
こんなときのために,あらかじめ用意しておいたインストールDVDで起動しなくてはと思っていたが,起動中はWireless Keyboardが認識されずディスクのトレイが空かない.USBキーボードを探しているうちに,なんとLionのインストーラが起動していた.OSの入っているハードディスクもDVDもUSBドライブもないはずだ.魔法だ!
ちゃんと確認していないが,どうやよTime Machineとして使っている2番目のディスクの隠しボリュームから起動したようだ.それにしても起動ディスクを空のディスクに入れ替えたのに起動するのには驚いた.
OSのインストール中に追加コンポーネントをダウンロードしていたのだが,起動してみると最新のMac OS X 10.7.3になっている.これまでの常識では,OSを入れ替えたらアップデートしなければならなかった.
iOSばかり注目されているが,Mac OS Xも心地よい進化を遂げている.

追記: diskutil listしても、起動ドライブ以外にはApple_Boot Recovery HDはないので、インターネット復元のだろうと思います。

MacでNFS

Mac OS XでもMac OS X Serverでも同じ。


/etc/exportsを書くとnfsdが自動起動する。書き方はFreeBSD式でLinuxとは異なるので注意。詳細はman exports参照。


システムがあるディスクは/Volumes/ディスク名でなく、/からの絶対パス (/Library/..., /Users/...)などを記述。それ以外は/Volumes/ディスク名を書く。

sudo nfsd updateで/etc/nfsdを再読み込み。その他はman nfsd参照。


showmount -eでNFSエクスポートを確認できる。


Mac OS Xからは、Finderの移動>サーバへ接続 (Command+K) でNFSサーバに接続できる。

BibDeskのbibファイルをMendeleyに取り込む

Mendeleyはクラウド対応の文献管理アプリケーション。Wordでの引用、文献リスト作成にはMendeleyが便利。
ToolsメニューからInstall Word pluginを実行するとAppleScriptがインストールされる
引用箇所でCommand+Control+iを叩いて引用を作成。文献リスト作成箇所ではCommand+Control+b。
PDFから適宜データを取り込んでくれるというふれこみだが、うまくいかなかった。不完全なデータの手直しは不便に感じられた。
試しに、BibDeskのbibファイルをDrag&DropでMedeleyに取り込んでみる。省略記号(例:MWR)で記入していたjournal名が落ちていた。定義をbibファイルの冒頭に書いてあるものは、置き換えられる。Mendeleyでは、journal名の略記(例: Mon. Wea. Rev.)中の\ 、title中の{}が不要である。そのまま取り込むと\や{}が残ってしまう。そこで、Mendeleyの取り込みに適した形にbibファイルを加工した。加工内容は
Journalの定義とデータベースを結合Journal名の略記中の\を削除Title中の{}を削除 である。3はTitle = {を[に},を]に一旦置き換えて{}を削除し、[,]をそれぞれTitle =と},に戻している。
bibdesk2mendeley.sh
#!/bin/sh bibdir="${HOME}/Documents/Bibdesk/bib" abb=$bibdir/ametsoc.bib ref=$bibdir/references.bib tmp=./tmp.bib cat $abb $ref > $tmp sed -e 's/\\\ / /g; s/Title = {/[/; s/},/]/' $tmp | \ awk '/^[ \t]*\[/{gsub(/{/,""); gsub(/}/,""); print}; !/^[ \t]*\[/{print}' | \ sed -e 's/\[/Title = {/;s/\]/},/' rm -f $tmp

iPadでフリック入力

iOS5では、iPadでもフリック入力ができる。「日本語かな」で右下のキーボードキーを長押して、キーボードを分割すると現れる。今迄気がつかなかった。iOS5になってからも、よく知らずにアップルにフリック入力を要望してしまった。五十音の並びは「あ」が右上から始まるように改善して欲しい。

Bluetoothキーボード

ELECOM TK-FBP014BKを購入。9台に接続し、切り替えて使える。

配列で不満な点。右shiftの左がpage up。Macに繋いで「ろ」や長音記号が入力できないときは、キーボードの設定が必要。その際、右shiftの左を聞かれたら、page upでなく、もうひとつ左の「ろ」をタイプする必要がある。
Fn+F12がMacとWindowsのキー配列の切替に割り当てられている.Caps LockとCtrl,AltとWindowsとの入れ替えはMacでできる.
iPadやiPhoneに繋いだときは、英語はUS配列となる。これはiOS側が原因のようだ。日本語を入力するときに、JISが指定されているかな入力になる。かな入力派としては一瞬喜んだが、それも束の間「ろ」や長音記号「ー」の入力ができない。Apple純正だとできるのだろうか。

GNU enscriptをMacPortsでインストール

新・OS XハッキングでGNU enscriptが紹介されていた.MacPortsで探してみる.
$ port search enscript enscript @1.6.4 (print) Replacement for Adobe's 'enscript' program variantsを確認. $ port variants enscript enscript has the variants: mediaA4: use A4 universal: Build for multiple architectures +mediaA4を指定した方が良さそうだ. $ sudo port -d install enscript +mediaA4 デフォルトではF77のみ対応.F90用のファイルを紹介する記事. ~/.enscriptの下に配置.