You can read this blog in any language using google translate as follows:

Goto http://translate.google.com/
Paste URL in the box and select "Japanese for From Language" and "To Language". Then click "Translate".

English translated pages are here:
http://bit.ly/xPuXoy

你可以閱讀這個博客,在任何使用“Google”的語言翻譯

本ブログのアクセス統計: 60万アクセスを達成しました。ご訪問ありがとうございました。

60万アクセスまでの経過

2009年12月に始めた本blog。2011年7月ごろに10万アクセスを達成し、2011年12月13日には15万アクセスを達成。
その後、私も更新しておらず、アクセスは少し減りましたが、3月1日には18万アクセス。2012/4/18に20万アクセス、2012/8/21に25万アクセス、2013/1/18に30万アクセス、2013/12/17に40万アクセスを達成しました。しばらく見ていなかったら、2015/5/1に50万2584アクセスになっていました。またまた、しばらく更新しないうちに、2017/6/11に60万7197アクセスになっていました。2018/7/7 .. おお七夕 .. には63万0656アクセスになっていました。久しぶりに更新しました。
ラベル OS-X の投稿を表示しています。 すべての投稿を表示
ラベル OS-X の投稿を表示しています。 すべての投稿を表示

2013年10月8日火曜日

MacでLaTeXを使う。

Wordでは、長い文章を書くと、フォーマットが崩れます。また、学会等では規定のフォーマットがありLaTeX/Texのテンプレートを用意しているところもあります。

そこで、Mac OS-X Mountain Lion (10.8.5)にLaTeX (正確にいうと、pTeX / pLaTeX) をインストールすることにしました。大体上手くいったので,以下に記載します。

参照した、リンクを掲載します。
  1. 「MacTeX 2013 + TeXShop 3.23 で日本語」
    http://www.clas.kitasato-u.ac.jp/~fujiwara/MacTeX/ 
  2. 「Max OS-X Lionで、Tex環境を整えるのに一番簡単な手順(たぶん)」
    http://d.hatena.ne.jp/lucky_pool/20120209/1328758735
  3. 「Mac OS X Mountain Lion でのpLaTeX環境構築」
    http://mkdir.g.hatena.ne.jp/ymrl/20121105/1352166717
  4. 「初心者がutf8でLaTeXとBibTeXを使うための一通りの準備(Mac編)
    http://hnsn1202.hateblo.jp/entry/2012/08/15/193627
どれをみても、MacTeX と、TexShopを使うのが良さそうである。
おもに、上記3, 4を参考にやった。
3を参考に、GhostscriptとImagemagick も入れようと思ったが、Homebrewが不明なので取りやめた。

グラフィック環境やOutlineエディタに関しては、以下の記事に書いた

2013年10月22日火曜日: Latex用のEditor、グラフィック環境


漢字コード)
はたして、日本語文字コードはMac標準のUTF-8で書くべきなのか、Unix標準のJISないしはEUCなのか、windowsの世界のShift JISなのか。。。日本語の文字コードはいろいろ乱立していてややこしい。
詳しい方に聞くと、Unix/Linuxは今やMac OS-XやiOSと同じUTF-8に統一されているらしいので、Macで作業する分には特に問題はなさそうである。

インストール)
上記、3に従い、コマンドをインストールして、2にしたがってTexShopを設定した。
圧縮されたMaxTeX.pkgだけで、2.36GBもあるので、相当にstorage spaceが必要。
TexChipのインストールパッケージは59.6MBと割と小さい。

コマンドラインから使えるように、/usr/texbinにパスをはる。
つまり、~/.bashrcの
export PATH=の最後にコロンをデリミタとして、:/usr/texbin/: を追加。

terminalから、which ptexで、/usr/texbin//ptex と表示されればOK。
UTF-8にする設定法は上記4に出ている。

設定)
上記、2からリンクされている http://www.misojiro.t.u-tokyo.ac.jp/suribt/#unzip_target から論文用のStyle file: jsclasses-061106.zip と suribt-20070118.zip .を取得。2を参考に、以下の場所にStyle fileを展開。これらのdirectoryは、インストールによって既に作られていた。
  • styファイルの置き場所:/usr/local/texlive/texmf-local/tex/latex/local
  • bstファイルの置き場所:/usr/local/texlive/texmf-local/bibtex/bst/local 
それぞれの場所にコピーしたら、ターミナルで以下のコマンドを実行。
sudo mktexlsr
とあるので、/usr/local/texlive/texmf-local/tex/latex/local に2つのzipファイルをコピーして展開。terminal windowのコマンドラインでsudo以下を実行すると以下の様に表示される。
Satoshi-MacBA:~$ sudo mktexlsr
Password:
mktexlsr: Updating /usr/local/texlive/2013/../texmf-local/ls-R...
mktexlsr: Updating /usr/local/texlive/2013/texmf-config/ls-R...
mktexlsr: Updating /usr/local/texlive/2013/texmf-dist/ls-R...
mktexlsr: Updating /usr/local/texlive/2013/texmf-var/ls-R...
mktexlsr: Done.
TexShopの設定)
これは、冒頭リスト4のやり方:

「初心者がutf8でLaTeXとBibTeXを使うための一通りの準備(Mac編)
http://hnsn1202.hateblo.jp/entry/2012/08/15/193627

でうまくいった。ベースはdefaultのregularでよく、特に、以下のところに注意。

  • 「BibTeXエンジン」を「pbibtex」に変更
  • TeX + dvips + distiller」内の「LaTeX」を以下のように変更*4
simpdftex platex --mode dvipdfmx --extratexopts "-synctex=1 -kanji=utf8"

私の場合、英語設定なので、「内部設定」のタブは、「Engine」となっており、以下の様な設定した。


他は、
Source Tabにて、
  • エディタの文字コードを変更。「UTF-8」を選択(忘れると文字化けの原因になるので注意)
Typesetting Tabにて、
  • デフォルトのコマンド」は[LaTeX]を選択
  • 「デフォルトのスクリプト」は[Tex + DVI]を選択
Misc Tabにて、
  • 「utfパッケージ対応」「UTF-8-MACをUTF-8に自動変換」にチェック
ここまで終わったらTeXShopを再起動すればよい。
テスト実行)
上記リンクから、骨組み見本 ([2005/12/09] 以降用)をTexShopへコピペした(以下)。


実行結果)  「Typeset」ボタンを押すと、以下の様に結果が表示される。styleファイルのデフォルトで「卒業論文」や「東京大学工学部計数工学科」になってしまっているが、これは修正しないと ...  orz....

srribt.cls を見ると分かるが、\documentclass[doctor]{suribt} のように、引数として、masterやdoctorをいれれば、修士論文、博士論文のテンプレートが適用される。これらテンプレートファイルをいじることで、体裁もいじることができる。


2ページ以降10ページまで美しく作成される(以下に一部掲載) さすがは、Latex... (数学の論文を書くために、これの元のツールTexを1980年初頭につくった、Don Knuth, Stanford名誉教授 http://bit.ly/sTdN5u は偉大である!!)




ソースファイルからの文字エンコードの変更)
TexShopでUTFにエンコードを変える方法は、上記リストの2に説明がある(以下に引用)


その後) - 2013/12/26追記
Latex2e 日文書作成入門 改訂第六版 3,200円  http://amzn.to/K8gEKt を購入した。本の顔は以下。


付属のDVDにMacとWindows用の簡単インストーラがついているので、Mac版をインストールした。

これによって、Macでは、以下にインストールされる。
  • /Applications/TeXLive 以下
  • テクスト系ツールは、/Applications/TeXLive/Library がベースdirectoryになる
  • texmfは、 /Users/Shared/TeXLive/ に置かれている。
    ここは、/Applications/TeXLive/Library/texlive/2013/texmf.conf  で指定されているが、このlatexのインストールに組み込まれた必要なファイルも入っている。
ドキュメント)
ドキュメントもインストールされて、以下のURLからブラウザで日本語を含む各国語のdocumentがよめる。

file:///Applications/TeXLive/Library/texlive/2013/index.html

上記からリンクされている日本語版のTeXLiveドキュメント先にはファイルがない。英語版は以下からアクセス出来る。

file:///Applications/TeXLive/Library/texlive/2013/texmf-dist/doc/texlive/texlive-en/texlive-en.html

オリジナルのスタイルファイルの設定)
結局のところは、上手くいかないので、texのソースがある文書フォルダの中に、Styleというフォルダを作り、そこにオリジナルスタイルファイル一式を置き、以下の様に相対パスでスタイルファイルを指定することで解決している。
¥documentclass[doctor]{Style/suribt}
共通置き場作成には未成功)
従来、suribtがおかれていた

/usr/local/texlive/texmf-local/tex/latex/local

にあるファイルを以下の様にして、ここの下のlatex用のlocalファイルにcopyする。
cd /Users/Shared/TeXLive/texmf
cp -r /usr/local/texlive/texmf-local/tex/latex/local/* tex/latex/local
sudo mktexlsr
(注: sudoで実行すると、、/Users/Shared/TeXLive/texmf/ls-R にsuribt.clsが記載されるはずだが、出てこないので、suでrootになってから実行した。するとls-Rに掲載される。)

これによって、TexShopからlatexソースがコンパイルできようになるはずだが、suribt.cls が見つからずにエラーになる。
ところが、consoleで、suribt.cls をフルパスすなわち
/Users/Shared/TeXLive/texmf/tex/latex/local/suribt.cls
で打ち込むと、正常に結果がビューアに表示される。つまり、style fileのある場所の指定が上手くいっていないようである。mktexlsrないしは、texhash コマンド(これらのpathも /Applications/TeXLive/Library/texlive/2013/bin/x86_64-darwin/mktexlsr になっている) により、 /Users/Shared/TeXLive/texmf/ls-R にsuribt.clsが記載されるのに、おかしな話である。。


スタイルファイルの置き場所については、以下にも情報がある。
http://hnsn1202.hateblo.jp/entry/2012/08/15/193627

TeXLiveの更新)
新しい版が出ているようなので、tlmgrで更新した。
tlmgr --help   でヘルプが出る
tlmgr update --list  をみると、更新されたファイルが沢山あるので、su でrootになって以下を実行
tlmgr update --all
最後にいくつかfailがでたが、同じコマンドを実行するとup to dateとなり更新は終わったようである。
が状況は変わらず。良くも悪くもなっていない。

環境設定の違い)
デフォルトでは、以下のスクリーンショットのようになっている。

pdfTeXのLatexの設定が
lualatex --file-line-error --synctex=1
Tex + dvips + distillerのLatexの設定が、
ptex2pdf -l -ot "-synctex=1"
とptex2 (e-pTeX Version 3.1415926-p3.4-110825-2.6 (utf8.euc) (TeX Live 2013))
なっている。ここはwebからインストールしたものでは、それぞれ以下のようになっている。この違いのせいで、texmfのlocalを読まないのかもしれない。
pdflatex 
simpdftex platex --mode dvipdfmx --extratexopts "-synctex=1 -kanji=utf8"


図表の挿入)
\documentclassのあとに、
¥usepackage[dvipdfmx,final]{graphicx}
をいれ、
本文に、
¥includegraphics[width=5cm]{foo.jpg}
を入れる。すると、foo.xbbが無いとエラーを起こす。
が、これは、http://bit.ly/1c99UVD にあるように、ターミナルウィンドウから、foo.jpgに対して、
extractbb foo.jpg 
を実行しておけば、foo.xbbが作られて、無事jpgファイルを取り込め、プレビューできた。

2012年12月24日月曜日

Mac OS-Xが依然不安定な理由

Talagentの問題は解決し、Google Chromeを使っていて、Macがfreezeするということはなくなった。詳しくは以下。


2012年12月18日火曜日: Mac OS-X Lion系(10.8.2) でのブラウザ不具合はtalagentが原因


まだまだハングしている)
ところが、相変わらず、Macは何度かfreezseしている。状況は以下。冒頭は日付。これぐらいの頻度で起きている。
  1. 2012/12/20, 2012/12/21: SleepしてDisplayが変わって再起動したとき
  2. 2012/12/22: Time machineが起動したとき
  3. (日付失念) : 理由は不明だが、talagent以外の理由でハング
  4. 2012/12/24: Time Machine関係のツールがハング
今後、継続解析して、対策したい。

1の概要)
1は、自宅でDVI接続で外部LCDをクラムシェルモードで使ったあとsleepさせ、本体displayで起動しようとしてハング。強制rebootして使った後、またsleepさせて、自分のオフィスに戻ってThunderbolt displayにつないで起動しようとしてハング。そして強制rebootという具合。/var/log/system.logをみると、Graphic acceleratorが無応答になっているメッセージが沢山あり、talagentは原因ではないが、尋常ではなさそう。

2の概要)
USB接続の外部HDDを繋いでTimemachineが起動した瞬間にハング。長く起動しつづけていない状況で、依然はバックアップできていた。
/var/log/system.logをみると、

Dec 23 12:40:51 Satoshi-MacBA com.apple.backupd[7813]: Backing up to: /Volumes/My Passport/Backups.backupdb

とでたまま、10分以上メッセージがない。timemachineにもメモリーリークがあって、段々不安定になるのだろうか。。。

4の理由)
/var/log/system.log をみると、以下の通り。

Dec 24 16:20:47 Satoshi-MacBA mtmd[70]: Set snapshot time: 2012-12-24 16:20:49 -0800 (current time: 2012-12-24 16:20:47 -0800)
Dec 24 16:20:47 Satoshi-MacBA kernel[0]: nspace-handler-set-snapshot-time: 1356394849
>>> reboot >>>
Dec 24 16:30:41 localhost bootlog[0]: BOOT_TIME 1356395441 0

nspace-handerがsnap shotを撮ろうとしてハングしている。http://bit.ly/TnFQQp によると、nspace-handerは、Mac系のbackup toolである、Time Machine関係のプログラムらしい。

つまり、2と4を考えるとtime machineを無効にすると改善するかもしれない。
2の前にDisk Utilityでdiskの異常はチェックしている。また、4の後にもDisk UtilityでVerify Diskと、Permission checkをやっている。前者は異常なし、後者はcoreのファイルパーミッションがいくつか不正であった。が、これが、time machineをfreezeする原因とは思えない。

起動して直ぐにtime machine backupを行っても問題ないので、これまた、Time machine関係のツールにメモリリークがあり、動き続けるとおかしくなるということかもしれない。
またもや、定期的にtime machine関係のツールをkillして再起動させれば解決するのかもしれない。
とりあえず、再起動直後にTime machineのバックアップを行い、Time machineの設定でTime machineを止めた。これでどうなるかしばらく様子を見たい。

VMware Fusionには罪はなかった)
VMware Fusionを購入してから、Mac OS-Xが不安定になったと思っていたが、どうも関係ない。先日Application folderから消去したが、ゴミ箱に残っていたので、復旧しておいた。
ま、価格性能比が良いwindowsのnotePC(以下リンク)を購入したので、あまり使うとも思えないが。。

2012年7月18日水曜日:windows7のnotePCをMacの様に使う


終わりに)
と、とんでもなく、OSの、できが悪いように思う。windowsやlinuxでは、このレベルの問題は起きてはいない。

2012年12月18日火曜日

Mac OS-X Lion系(10.8.2) でのブラウザ不具合はtalagentが原因

追記)
ATOKを使わなくても、やはりハングした。

バグレポートをしておいた)
Apple developer networkを使って、英語アカウントから2012/12/20にバグをレポートしておいた。Problem ID: 12921400    である。そのうち、修正版がでると期待したい。

原因はtalagent)
talagentというプロセス(daemon) がwindowを制御しようとし失敗して、膨大なメッセージをはき続けており、この状況でGUIを制御しようとすると軒並み巻き添えを食らっていた。Mail,  Evernote, task managerなど軒並みこれに絡んでハング。この章の最後にsystem.logの該当部分を引用する。

たまたま、terminalが起動できた。そして、このtalagentをkill -9 で殺したところ、ATOK、Chrome、Activity monitorなど、ハングアップしていたものが一気に復活した。

昨日、何度かOS-Xがハングしているが、system.logをみると全てtalagentが以下のようにwindowを操作しようとして、エラーを起こして、システムをハングさせている。
talagent[230]: CGSSetWindowSendExposed: Invalid window 0x35
talagent[230]: CGSBindSurface: Invalid window 0x2c
もう少しtalagentについて調べ、以下の実験が上手くいったら別投稿にまとめる。

それにしても、/var/log/system.logには膨大量のエラーメッセージがはき続けられている。OS-X Mountain Lionは、極めて未完成なままリリースされているOSということだろう。。

talagentとは)
http://forums.macrumors.com/archive/index.php/t-1138868.html によると、以下の様にあり、
talagent -- talagent is a helper agent for the Transparent App Lifecycle feature.
DESCRIPTION
The talagent tool provides services related to the Transparent App Life-cycle feature.
上記で言われている the Transparent App Lifecycle というのは、
http://bit.ly/Zg8TI4 に説明がある。マシンが落ちても、データやウィンドウの位置を含めて以前の状態に復活するということだと思う。なので、時々動いて状態を待避していれば十分。多分状態の待避には1分もかからないので、5分ごとに見付けてkillしても問題はないと思う。talagentは、killされても直ぐには再起動しないのだが、かりに相当時間が掛かって再起動したとしても、killするほうと同期しなければ、talagentは平均2.5分は生きているわけなので、とりあえず状態待避には問題はなさそうである。そもそもcrashしなければ、talagentなど必要はない。。

talagentは不安定になったOS-X Lionの途中で導入された、ないしは、改造され不安定になって、そのまま放置されているのかも知れない。

それにしても、状態復活のためのdaemonの性でシステムがハングするというのは、これまたお粗末。。

talagentの動作)
talagentは殺しても、以下のようにしばらくすると復活する。
Satoshi-MacBA:log$ ps -e | grep talagent
 3726 ??         0:00.86 /System/Library/CoreServices/talagent
 5387 ttys000    0:00.00 grep talagent
Satoshi-MacBA:log$ kill 3726    << 殺した
Satoshi-MacBA:log$ ps -e | grep talagent
 5389 ttys000    0:00.00 grep talagent   << もういない
Satoshi-MacBA:log$ ps -e | grep talagent
 5391 ttys000    0:00.00 grep talagent  << もういない
Satoshi-MacBA:log$ ps -e | grep talagent
 5393 ??         0:00.07 /System/Library/CoreServices/talagent <<復活
 5400 ttys000    0:00.00 grep talagent
launchdで 処理する)
http://bit.ly/YfOCky のようにMac OS-X Lion系にはinit.dがない。
ホームディレクトリにある Library/LaunchAgents に、XMLで記述ファイルをつくれば、自動的に実行してくれる。
http://bit.ly/1ggKTwD にサンプルがある。

~/Library/LaunchAgents/com.satoshi.killtalagent.plist として以下のファイルを作ったところ定期的に実行される。実行されていれば、/tmp/Satoshi-KillTalagent.out に以下のメッセージが追記される。
Killing talagent at Mon Oct 14 22:19:58 PDT 2013 
これが一番簡便である。StartIntervalが1800=1800秒=30分なので、30分に1回実行される。
 ~/Library/LaunchAgents/com.satoshi.killtalagent.plist  の記述は以下のようにする。

--
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>com.satoshi.killtalagent</string>

  <key>ProgramArguments</key>
  <array>
    <string>/Users/matsushi/scripts/kill-talagent.sh</string>
  </array>

  <key>Nice</key>
  <integer>1</integer>

  <key>StartInterval</key>
  <integer>1800</integer>

  <key>RunAtLoad</key>
  <true/>

  <key>StandardErrorPath</key>
  <string>/tmp/Satoshi-KillTalagent.err</string>

  <key>StandardOutPath</key>
  <string>/tmp/Satoshi-KillTalagent.out</string>
</dict>
</plist>

--

/Users/satoshi/scripts/kill-talagent.sh は以下のようなシェルスクリプトである。
--
#!/bin/sh -f
echo Killing talagent at `date`
killall -c talagent
--
perl スクリプトでやると)
5分に一度ぐらい起きだして、talagentを探してkillするcron scriptで解決するのではと思う。

昔使っていたperl scriptは以下の通り。
これをバックグラウンドで動かしていた。

オプションは、
     -vでverbose (これを付けないとメッセージは何も出ない)
                    -t 数字 でsleepの秒数指定 (デフォルトで300秒)
                    -dでデバッグモードである。

このスクリプトをバックグラウンドで動かしておくことで、Mac OS-Xがハングアップしても、5分以内に復活してこれば成功である。

状況)
まる2日動かしてもハングしないし、system.logにはtalagentのエラーメッセージは吐かれない。多分talagentがメモリーリークしていて、長期に渡り動かすと、段々おかしくなるのであろう。つまり、ハングして復旧するためにkillするのではなく、メモリリークを起こすまえに再起動すればよいので、30分毎に再起動でも構わないはず。。ということで、30分間隔にタイマを変えて試しているが、多分これでも大丈夫である。

使い方)
以下を、例えば kill-talagent.pl というファイルに書き込み。
chmod +x kill-talagent.pl
kill-talagent.pl &
で起動しておけばよいはずである。

スクリプトのソースコード)
---
#!/usr/bin/perl                                                                                                                      
use Getopt::Long;                                                                                                                    
                                                                                                                                     
$prog = $0;                                                                                                                          
$sleeptime = 5 * 60; # default 5 minutes                                                                                            
GetOptions('verbose!' => \$verbose, 'debug!' => \$debug, 'time=i' => \$sleeptime);                                                  
while (1) {                                                                                                                          
    open(P, 'ps -e | grep talagent |') || die "Cannot creat pipe\n";                                                                
    while () {                                                                                                                    
#       print if ($debug);                                                                                                          
        s/^\s+//;                                                                                                                    
        @f = split(/\s+/);                                                                                                          
        my $pid = $f[0], $pname=$f[3];                                                                                              
        if ($pname =~ "/talagent") {                                                                                                
                                                                                                                                     
            if ($debug) {                                                                                                            
                printf("%s: Found %s: ps $pid ..\n", $prog, $pname, $pid);                                                          
                system("ps $pid");                                                                                                  
            } else {                                                                                                                
                printf("%s: Killing: %d %s ..\n", $prog, $pid, $pname) if ($verbose);                                                
                system("kill -9 $pid");                                                                                              
            }                                                                                                                        
        }                                                                                                                            
    }                                                                                                                                
    printf("%s: sleeping: %d sec\n", $prog, $sleeptime) if ($verbose || $debug);                                                    
    sleep($sleeptime);                                                                                                              
}                                                                                                                                    
--


状況)
丸2日使っているが、ハングしていない。従来は、1日に2-3度強制リブートしていた。また、Thunderbolt displayにクラムシェルモードで接続したり、LCDにdvi接続したときに、ハングする現象も解決した。

system.logをみても、talagentはエラーを吐いていない。

ということは、talagentのエラーはメモリーリークなどが原因の可能性が有り、長期に渡り動作させ続けなければ問題はおきない。ウィンドウ状態の永続化を有効に実現するには、5分に一度よりはもう少し長い間隔でkillしたほうが良いであろう。つまりハングしたら復活させるためにkillするのではなく、ハングするような不正動作に陥る前にtalagentを再起動しするという手法である。

もうしばらく使って問題が無ければ、Appleにバグ報告をして、killする間隔を30分程度に伸ばして試してみたい。

cron化)
http://borg4.vdomains.jp/~goro/diary/2011/1252 や
http://d.hatena.ne.jp/zariganitosh/20090308 
にやり方の紹介がある。OS-Xでは、cronではなく、launchdはxmlで書くようである。

talagentが原因であると判明したsystem.logの該当部分)
---- /var/log/system.log より ----

Dec 18 03:17:45 Satoshi-MacBA com.apple.launchd.peruser.501[198] (com.apple.accountsd[2592]): Exited: Killed: 9
Dec 18 03:17:46 Satoshi-MacBA kernel[0]: memorystatus_thread: idle exiting pid 2601 [QuickLookSatelli]
Dec 18 03:17:46 Satoshi-MacBA kernel[0]: Wake reason: EC.ACAttach EHC2 (Maintenance)
Dec 18 03:17:46 Satoshi-MacBA kernel[0]: AirPort_Brcm43xx::powerChange: System Wake - Full Wake/ Dark Wake / Maintenance wake
Dec 18 03:17:46 Satoshi-MacBA kernel[0]: Previous Sleep Cause: -113
Dec 18 03:17:46 Satoshi-MacBA kernel[0]: The USB device HubDevice (Port 1 of Hub at 0xfa000000) may have caused a wake by issuing
 a remote wakeup (2)
Dec 18 03:17:46 Satoshi-MacBA kernel[0]: TBT W (1): 0 [x]
Dec 18 03:17:46 Satoshi-MacBA kernel[0]: memorystatus_thread: idle exiting pid 2592 [accountsd]
Dec 18 03:17:46 Satoshi-MacBA kernel[0]: The USB device USB 2.0 Hub (Port 3 of Hub at 0xfa100000) may have caused a wake by issui
ng a remote wakeup (3)
Dec 18 03:17:46 Satoshi-MacBA kernel[0]: AppleUSBMultitouchDriver::checkStatus - received Status Packet, Payload 2: device was re
initialized
Dec 18 03:17:46 Satoshi-MacBA kernel[0]: The USB device USB 2.0 Hub (Port 4 of Hub at 0xfa130000) may have caused a wake by issui
ng a remote wakeup (3)
Dec 18 03:17:46 Satoshi-MacBA kernel[0]: The USB device HubDevice (Port 3 of Hub at 0xfa134000) may have caused a wake by issuing
 a remote wakeup (3)
Dec 18 03:17:46 Satoshi-MacBA com.apple.launchd[1] (com.apple.audio.ComponentHelper[2571]): Could not terminate job: 3: No such process
Dec 18 03:17:46 Satoshi-MacBA com.apple.launchd[1] (com.apple.audio.ComponentHelper[2571]): Using fallback option to terminate job...
Dec 18 03:17:46 Satoshi-MacBA com.apple.launchd.peruser.501[198] (com.apple.scopedbookmarksagent.xpc[2572]): Exited: Killed: 9
Dec 18 03:17:46 Satoshi-MacBA com.apple.launchd[1] (com.apple.audio.ComponentHelper[2537]): Exited: Killed: 9
Dec 18 03:17:46 Satoshi-MacBA kernel[0]: The USB device GCS932UBV1.1.10 (Port 1 of Hub at 0xfa134300) may have caused a wake by issuing a remote wakeup (3)
Dec 18 03:17:46 Satoshi-MacBA kernel[0]: HID tickle 682 ms
Dec 18 03:17:46 Satoshi-MacBA kernel[0]: memorystatus_thread: idle exiting pid 2572 [ScopedBookmarkAg]
Dec 18 03:17:46 Satoshi-MacBA kernel[0]: memorystatus_thread: idle exiting pid 2571 [com.apple.audio.]
Dec 18 03:17:46 Satoshi-MacBA kernel[0]: memorystatus_thread: idle exiting pid 2537 [com.apple.audio.]
Dec 18 03:17:45 Satoshi-MacBA talagent[230]: CGSSetWindowSendExposed: Invalid window 0x2d
Dec 18 03:17:46 Satoshi-MacBA WindowServer[105]: CGXDisableUpdate: UI updates were forcibly disabled by application "SystemUIServer" for over 1.00 seconds. Server has re-enabled them.
Dec 18 03:17:46 Satoshi-MacBA hidd[82]: MultitouchHID: device bootloaded
Dec 18 03:17:47 Satoshi-MacBA com.apple.launchd.peruser.501[198] (com.apple.coreservices.appleid.authentication[2529]): Exited: Killed: 9
Dec 18 03:17:47 Satoshi-MacBA com.apple.launchd[1] (com.apple.audio.SandboxHelper[2536]): Exited: Killed: 9
Dec 18 03:17:47 Satoshi-MacBA WindowServer[105]: handle_will_sleep_auth_and_shield_windows: no action for lock state 1
Dec 18 03:17:47 Satoshi-MacBA kernel[0]: memorystatus_thread: idle exiting pid 2536 [com.apple.audio.]
Dec 18 03:17:47 Satoshi-MacBA kernel[0]: memorystatus_thread: idle exiting pid 2529 [AppleIDAuthAgent]
Dec 18 03:17:47 Satoshi-MacBA talagent[230]: CGSBindSurface: Invalid window 0x2c
Dec 18 03:17:48 --- last message repeated 2 times ---
Dec 18 03:17:47 Satoshi-MacBA talagent[230]: CGSSetWindowSendExposed: Invalid window 0x35
Dec 18 03:17:47 Satoshi-MacBA talagent[230]: CGSBindSurface: Invalid window 0x2c
Dec 18 03:17:48 --- last message repeated 3 times ---
Dec 18 03:17:47 Satoshi-MacBA talagent[230]: CGSSetWindowSendExposed: Invalid window 0x2d
Dec 18 03:17:47 Satoshi-MacBA talagent[230]: CGSBindSurface: Invalid window 0x2c
Dec 18 03:17:48 --- last message repeated 3 times ---

----  talagentを殺したあと
Satoshi-MacBA:log$ ps -ael | grep 230
  501   230   198     4004   0  53  0  2599660   7808 -      S                   0 ??        26:47.77 /System/Library/CoreServices/talagent

Satoshi-MacBA:~$ kill -9 230

Satoshi-MacBA:log$ ps -ael | grep talagent
  501  3726   198     4004   0  49  0  2508904   8872 -      S                   0 ??         0:00.17 /System/Library/CoreServices/talagent

---
元記事)

2011年秋にかったMacbookAir 13 inch (4GB RAM, 256GB SSD) のMac OS-X Mountain Lion (10.8.2) ならびに、その前のOS-X Lionの後半から、ブラウザがどれも不安定である。状況は、
  1. Google Chrome: 一日に1度は、ハングする
  2. Firefox: 文字入力ウィンドウがめちゃくちゃになる。blogが書けない
  3. Safari: 突然Safariがクラッシュする。リカバリのplug inをいれてあるが、restartしたときに意味不明なwindowにリカバリする。
下の絵に引用した、FreeRAM boosterで、いつも1GBくらいのメモリを回収しており、空きメモリを表示しているので、メモリ不足が原因ではない。




Chromeの原因がなんとなく判明)
やはり、使い勝手が良いのでGoogle Chromeに戻した。すると、日に2〜3度Macがフリーズする。Chromeがクラッシュするのではなくて、虹色のくるくるマークがでて、システムが無反応になり、強制電源オフするしかなくなる。

システムテストやらdisk checkも正常。Chromeを消去して、再インストールしてみたあとで、/var/log/system.log (以下のスクリーンショットが該当部) をみたら、原因がわかった。上から3行目(青色部)でJUST SYSTEMのATOKがbus errorを起こして、エラーダンプしたりしたあと、17:32分から無反応になっている。

system.log


その後、下から6行目の17:37分にrebootのメッセージがでている。

その後、膨大なエラーも出ているのだが、特に talagent[230]: CGSSetWindowSendExposed: Invalid window 0x35 というものが膨大にでている。Objective-CのAPIの使い方か、ライブラリにバグがある模様。おそらく、AppleがOS-X 10.8.2で勝手にAPIを変えたので、ATOKが時々死ぬのだろう。

でもやはり)
知人は、Google 変換でChromeを使っているが、やはりよく、システムがハングするという。その状況で調べてみる必要はある。Google変換で、どうなるのかも試してみたい。少し試してみたが、私は変換・無変換などでキーをカスタマイズしているのだが、一旦、英数になると、かなに戻らない状況。

ATOK Passport)
ATOKは賢いし、ATOK Passportだと月300円で、iOSを除く自分持ちの全ての端末(win, linux, Mac, Android) にインストール出来、ユーザ辞書や学習履歴も無料のJust drive経由で共有、時事事象も逐次更新されるので好きなのだが。また、日本のソフトメーカで頑張っているJUST Systemも応援したい。

日本はやっぱりIT辺境)
OS-X 10.8.2の標準メイラが、i-modeメイルからのメイルで完全に文字化けしていたのにリリースしていたり、日本のApple地図がめちゃくちゃだったりということを考えると、Appleも米国の製品ならフィードバックはかかるが、日本Appleは無視され、日本のユーザに対するベータテストはほとんどやられていないのではと思われる。

その点では、IMEが悲惨なMSもダメだし、Linuxに浮気するしかないかも。。

ただし、Mac OS-Xは、BSD unix系であり、勝手が分かっているので解析がしやすい。

2012年3月30日金曜日

Mac OS-X Lionでのユーザ移行, win7からの移行

家人のwindows 7のnotePCの調子が悪いので。Macに移行した。
環境設定を英語にしているので、ツールの設定等は厳密に日本語モードと一致していないかもしれない。

Mac間のuserの移行)
私がしばらく借りていたMacなので、まず、Userを作って環境を移した。ググっても出ていなかったが、ここに一連のplistファイルがあったので、当たりをつけてやったら正解だった。そもそもBSD系のUnixだし、追加分もMacとiOSの作りが似ているので大変分かりやすい。

やり方は簡単。${OldUser}/Preferences以下を丸ごとコピーすればよい。${OldUser}は、たとえば、~Hoge/ とか /Users/Hoge とかになる。

  1. Terminal windowを開く
  2. su   をいれ、管理者パスワードをいれて、管理者特権になる。
     標準では管理者アカウント(root) はoff
    http://support.apple.com/kb/HT1528?viewlocale=ja_JP のやり方で、rootが有効化できる。
  3. cd
  4. cp -r ${OldUser}/Preferences  .
  5. chown $USER   Preferences     Preferences/*
これで再ログインすれば、Desktopの設定やDockの設定などがコピーされる。ただし、システム設定で設定されるような、マウスのスクロール機能や言語環境設定はコピーされない。また、Mailのuser設定もコピーされない。

ここからは、windowsからMacへの移行アシスタントというものもあるが、私は手でやった。
移行アシスタントについて) http://support.apple.com/kb/HT4796?viewlocale=ja_JP

iTunesの移行)
ここからは面倒なので、まずは英語モードの表示のまま書くことにする。

メディアファイルの移動)
  1. Preferences -> Advancedから、Mediaファイルの置き場所をNASにする
  2. Keep iTunes File Organizedにクリックをいれる
  3. File -> Library -> Organize Library をやると、ローカルなファイル(Music, Movie, アプリ) がNASに移動する
  4. ここで、アプリの保存フォルダ等を他のマシンからマージしたので、手でやる必要があった。
管理ファイルの移動)
  1. MacのiTunesの版がwindowsのそれと同じか新しければ自動変換されるので問題はない。
  2. win7 のマイミュージック/*.{itdb,xml,itl} を ~/Music/iTunesの下にcopy。これも、NASにコピーしてから再コピーすると楽かもしれない。
  3. MacのiTunesを開いて、先のメディアファイルの移動で書いたのと同じようにMacのiTunesも設定。
  4. これで、NASのファイルが見えるようになる。
ただし)
  1. 昔のiTunesで変換したメディアファイルは64bit版のiTunesでは開けない。
    http://bit.ly/Hmz9Bj を参照して、iTunesを32bitモードで起動すれば、問題はなくなる。
また、YouTubeのダウンロードツールでダウンロードしたmp3が、マイドキュメントのダウンロードの下に残っていた。これが、NASに転送されないので、見えなくなった。
これは、iTunesをquitしておいて、さきの iTunes Music Library.xml のパスを変更すれば良い。ただし、m4v すなわちmpeg4ビデオのデータは、ここに有るパスを変更しても変わらない。なぜだかわからない。

NASのマウントパス) 

2011年12月1日木曜日: Macの便利なツールなど

に書いた通り、MacでのNASのマウントポイントの名前 /Volumes/の下は適当に決められてしまう。たとえば、Landiskのitunesというvolumeをマウントしようとすると、通常は/Volumes/itunes-1 と-1のサフィックスがつくが、-1の調子が悪く、場合によって2回目のマウントになったりすると、-2のサフィックスでマウントされたりする。ところが、iTunesは、パスを絶対名で参照するので非常に都合が悪い。

これは、上記の記事にあるように、

http://www.wizard-limit.net/mt/pc/archives/004459.html  を参照して以下のように対処した。
  1. 特権ユーザになる
  2. /etc/auto.smb を作成して以下の行を追加。Guestがユーザ名。私のNASはゲストなので、パスワードは不要。
  3. itunes -fstype=smbfs ://Guest:@LANDISK-02/itunes
  4. /etc/auto.master を編集し、以下の行を追加
   /Share                  auto.smb 
automount -vc では設定がおかしくなったので、shutdownして立ち上げ直した。これは、最初、/Shareではなく、通常のマウントポイントと同じ /Volumesを指定したからなのかも知れない。


Mailの移行)
Outlook 2007なので、データフォーマットはpstであり、http://bit.ly/HmHCV8 を参考に移行した。
  1. http://www.ehow.com/how_6132518_convert-pst-mbox.html のやり方を使う。
  2. Thundebirdをインストールする。
  3. outlookから、アドレスブックとメイルボックスをThunderbirdにimport。全てとやるとなぜかエラーを起こした。個別にやるとメイルの設定のimportで失敗していた。
  4. Thunderbirdのメイルのフォルダを右クリックしてプロパティを表示させると、そこにファイルがある。mboxフォーマットではないが、このプロファイルをLionのMailはimport可能である。
  5. Thunderbirdのメイルboxを右クリックする。プロパティから、Thunderbird\Profileの下のフォルダを探し、ExplorerでNASにコピー
  6. Mac OS-X LionのmailからImportで、Thunderbirdを選択し、上記のプロファイルのフォルダを指定、Continueをするとメイルと設定がimportされる。
以下のやり方でmboxファイルをThunderbirdからはき出そうとしてみたが、mboxのメニューは出てこなかったし、そもそも上記のやり方ができるので必要はない。
  1. http://bit.ly/HmVTkH を参考にimport/exportツールをThunderbirdにinstall
    1. http://bit.ly/HmVLBP からdownload
    2. Thunderbirdを起動。ツール -> アドオン
    3. 右上の検索の横にある歯車を左クリックし ファイルからアドオンをインストールを選択。ダウンロードした xpiファイルを選択し、インストール
    4. Thunderbirdを再起動
  2. フォルダを選択し、右クリックしたメニューから、インポート・エクスポートを選択
  3. フォルダ内の全てのメッセージをexportを選択。が、mboxフォーマットではexportできない。emlとかはある。

2012年1月7日土曜日

Mac OS-X LionをWiFiルータにする, クラムシェルモード

Windowsでは、いろいろトラブルが多いようであるが、Mac OS-X LionをWiFiルータにするのは簡単にできた。使った機種は、USB-Ethernetアダプタで接続されたMacbookAirである。

http://www.kanasansoft.com/weblab/2008/04/mac.html にも紹介がある。

私の環境は、英語にしているので若干違うのをご承知願いたい。手順は。


  1. アップルマークのシステム環境設定から、共有を開く。
  2. Internet sharingにいき。チェックをつけるまえに、設定をする。
    1. 共有元は、USB Ethenet
    2. 共有先は、WiFi (OS-X Lionでは、Mac AirでなくWiFiができた)
    3. WiFi Optionsで設定する。
      1. 接続点名(SSID)
      2. 暗号化: 128bit WEPが良いと思う。WPA Personalは選べない
      3. 13文字の英数字で、passwordを設定 (確認パスワードと一致しないとOKが押せない)
  3. チェックマークを入れて共有
  4. すると、ステータスバーのWiFiの記号が変わる。
  5. iPhoneを設定し、3Gとデータ通信をoffにして、safariでwebが問題なく見られることを確認した。
写真)

設定画面と共有時の状況

接続を試した。iPhoneでの設定
Firewallの設定)
http://techmix.net/blog/2011/05/24/firewall-on-mac-osx-lion/ のようにすれば、MacのFirewallも設定できる。外部からのファイルシェアやアクセスを禁止させるFirewallを有効化できる。知らないでホテルとかにつなぐと、自分のファイルシェアやiTunesライブラリが他の客に丸見えになるのか、ならないのかはよく分からない。

だが、どうもこの設定をしてから、digital DVIで外部ディスプレィをつないで、本体を閉じた状態で、ディスプレイが表示されない。この使い方は、「クラムシェルモード」というらしく、これにすれば、外部ディスプレイの解像度で表示されるし、menu barやDockも外部ディスプレィ側に全部やってくる。つまり、desktopの使い勝手で使える。これが、ただケーブルをつなぐだけで自動起動するのも、Macの良いところ。

クラムシェルモード) http://support.apple.com/kb/HT3131?viewlocale=ja_JP

2012年1月4日水曜日

emacsをMac OS-X LionでコンパイルしてIMEを使う

Emacs23 (Cocoa Emacs) 入門から中毒まで)http://sakito.jp/emacs/emacs23.html#imeのやりかたでIMEパッチをあてる。ここのサイトはemacsについて有用な情報が満載である。

unexecが通らないので、Lionでコンパイルするには以下のパッチが必要。
http://masutaka.net/chalow/2011-07-31-2.html
上記にあるリンクをクリックしてpatchを3つ取得する。

../patch-src_unexmacosx.c.diff は、以下 --- の次の行からをこの名前のファイルにカットアンドペーストすればよい。
* src/unexmacosx.c (copy_data_segment): Also copy __got section. (Bug#8223)
---
ChangeLogにはこのpatchはちゃんと当たらないが、それは気にする必要は無い。

emacs23.3のコンパイル)
上記patchファイルをおいたdirectoryから、以下のような処理を実施する。例えばruncmd.shのような、シェルスクリプトにして、実行時に、
  ./runcmd.sh 1>&2 | tee -a make.log  
とやれば、画面に出つつlogファイルが残って便利。
#!/bin/bash -v -f
/bin/rm -rf work
curl -O http://ftp.gnu.org/pub/gnu/emacs/emacs-23.3b.tar.gz
curl -O http://jaist.dl.sourceforge.jp/macemacsjp/47986/inline_patch-23.2-beta3.tar.gz
tar xvfz emacs-23.3b.tar.gz
tar xvfz inline_patch-23.2-beta3.tar.gz
cd emacs-23.3
patch -p0 < ../inline_patch-23.2-beta3/emacs-inline.patch
patch -p0 < ../patch-no-pie.diff
patch -p1 < ../patch-src_unexmacosx.c.diff
patch -p0 < ../patch-fix-title-bar.diff
mkdir ../work; cd ../work
../emacs-23.3/configure --with-ns --without-x
make
make bootstrap
make install
cp -r nextstep/Emacs.app /Applications/Emacs-23.3.app

これをやると、/Applications/Emacs-23.3.app ができる。
Macの場合 Emacs-23.3.appの下に必要なものが固まっている。finderの右クリック Show Application Contentsで、packageの中身 (実はUnixのdirectory)が見える。Resourcesの下に必要なリソースが詰まっている。emacsの場合には、lisp,site-lisp,infoなど必要なものがここに詰まっている。したがって、アプリを消去したくなれば、トップのEmacs-23.3.appというdirectoryを消去すれば良い。これはfinderからは、Emacs-23.3.appというアプリを消去することに見える。
なんと素直な。。

~/.bash_profile に以下の行を追加して、パスを通し、emacsの名前で、Emacsというバイナリがterminalから実行できるようにする。
export PATH=$PATH:/Applications/Emacs-23.3.app/Contents/MacOSalias emacs="Emacs"
terminalから、which emacsとやって、/Applications/Emacs-23.3.app/Contents/MacOS/Emacsを刺していることを確認する。emacsを立ち上げて、ESC-x versionで、Emacs 23.3.1と出ればOKである。

X11のwindowとしてemacsを立ち上げたくない場合には、emacs -nw を実行する。

ATOK2008を使いたい人は以下のような情報がある) 

IMEの設定)
.emacsに以下の行を入れる。
(setq default-input-method "MacOSX")
(prefer-coding-system 'utf-8)
(global-set-key "\C-j" 'toggle-input-method)
が、これでは、imput modeをUSにすることはできても、ATOKに戻すことができない。さらには、emacsが動いているかぎり、他のウインドウでもUSに強制的に戻されてしまう。
以下のようにしたらできた。
;; C-j の機能を別のキーに割り当て
(global-set-key (kbd "C-m") 'newline-and-indent)
(set-language-environment 'Japanese)

 (prefer-coding-system 'utf-8) 
(global-set-key "\C-j" 'toggle-input-method)
;; (setq default-input-method "MacOSX")
は必要なかった。

prefer...がないと、shellを動かしても、漢字のファイル名(UTF-8)が表示されない。
shellでは、^Jで仮名にはできるが、^Jでは英字に戻らない。.emacsを編集していてもそういう状態になる。

.emacsの中のストリング中の漢字が表示されないのは、"を一つ追加したり、冒頭に; を入れてコメントにすると日本語が正しく表示されるのでバグのようである。これをやっていると、^Jが効くようになったりする。この状態でshell windowにいっても^Jが正しく機能する。が、一旦他のツールのwindowに移動すると切り替えはまた効かなくなる。

表示ルーチンのバグが、英語-日本語切り替え機能にも影響しているのかもしれない。

もう少し調べてみる。

文字やフォントのカラー変更)
後日追記したいが、、
http://www.nongnu.org/color-theme/

からカラーテーマをインストールして、.emacsに以下のなどのように追加すれば良い。ここでは分かりやすくするために、-nwとX11モードで色を変えている。
;; change color themes
;; use it with: M-x color-theme
(add-to-list 'load-path (concat homepath "lib/emacs/color-theme"))
(require 'color-theme)
(eval-after-load "color-theme"
  '(progn
     (color-theme-initialize)
     (if window-system
         (color-theme-subtle-hacker)
       (color-theme-hober))))
使い方については、以下にも解説がある。
http://www.emacswiki.org/emacs/ColorTheme#DoReMiColorThemes

以下では、windowモードの場合に、初期のwindowサイズと、ウィンドウの透過度も設定している。半透明にしておくと下が透けて見えて便利である。半透明化は、Macの通常のターミナルウィンドウでも設定が可能だが、emacsの場合には、activeとnon activeで透明度が変えられる。
(eval-after-load "color-theme"                                                                                                      
 

  '(progn                                                                                                                                  (color-theme-initialize)                                                                                                              (if window-system                                                                                                              
 

         (progn                                                                                                                                  (color-theme-subtle-hacker)                                                                                                           (add-to-list                                                                                                                           'default-frame-alist                                                                                                    
            '(alpha . (95 80))) ;; (alpha . ( ))                                                    
           (setq default-frame-alist                                                                                                                   (append                                                                                                                                '((width . 100) (height . 40))                                                                                    
                  default-frame-alist)))                                                                                                         (color-theme-hober))))                                                                                                     
これらについては、以下に解説がある。http://macwiki.sourceforge.jp/wiki/index.php/MacOSX_WorkShop/dot_emacs_el




2011年12月1日木曜日

Macの便利なツールなど

最近Mac OS-Xに入れた便利なツールなど。

Mac Nativeなもの)
  1. Live Quartz: 画像editor,  1.99ドル - レイヤが使えて、モザイクなどもかけることができる。任意図形で、切り取って上位レイヤに貼り付けてそこでモザイクをかけて、統合すれば、部分的なモザイクが任意にかけられる。無料の画像編集ソフトの一覧は以下:   http://column.nishimula.com/2009/06/mac.html
  2. Clone2go: Mac用のYou Tube downloader
  3. Handbreak: DVDリッピングのソフト: 無料
  4. Finale NotePad: 楽譜作成、演奏も出来る。有料。が、付点音符が入らないみたい
  5. LibreOffice: Open Officeからspin offしたチームが作ったMicrosoft office互換のoffice suites.無料。Power pointは若干配置がずれるが、十分これで使える。扱えるファイルフォーマットも多彩。
ただし、著作権法の改定で、日本では、DVDリッピングソフトの配布は違法行為となった。またYouTubeに上がった動画はどんどん消されている。以下で解説した。
2011年12月1日木曜日: どんどん消されるYouTube, 著作権法はこれでいいのか?
現状、/Volumeにある、NAS等のマウントポイントは、automounterの設定で如何様にも変更できる。以下の解説の最後にある。



非Nativeなもの)

まだ入れていないが、建築用CADであるJWcadを入れようと思っている。自宅設計に使った図面を見るため。


 フォント化けで使えない、WineやWineBotterに変わって、日本語fontを組み込んだAPIコンバータ。Wineは、Emulatorではなく、APIの変換しかやらないので高速。ただし、画面表示がX windowになるので、Mac OS-X Lion NativeであるVMWare Fusion4 ほどの速度は得られないと思う。

他のツールは追って記載する。

膨大なテキストベースのツール群)
OS-XはBSD unix上に構築されている。これはとても便利。テクストベースのツールはファイルサイズが小さいので、OS-Xに沢山標準搭載されている。加えて長きにわたり世界中の研究者が改良してきているし、小回りがきいて使い勝手がよいことが多い。この活用法は以下に書いた。
2011年10月23日日曜日:MacでBSDツールを利用する・大学の電子ブック
windowsとMac OS-Xは格がちがうが、その経緯も以下に考察した。
2011年10月11日火曜日: AppleとMicrosoftを比較すると
2011年10月23日日曜日: Macはすごい

2011年11月1日火曜日

Mac OS-X Lionで従来と変わったこと

OS-X Lion (10.7.2)でいろいろ変わった。多くは、tablet, smartphone時代へという変化への対応かもしれないが、多少の混乱は免れない。

  1. Mailの機能が変わった- 従来互換にするオプションを残しておかないのが、Apple流というか、やや強引なところではある。
    1. 件名のエンコーディングがMIME-JISからQuated UTF-8になった。日本語メイルの本文もJIS(7bit escaped sequenceのISO-2022-JP)ではなく、base64 EncodeのUTF-8 (8bit バイナリ)である。UTF-8コード(以下)での国際化は、世の中の流れかもしれないが、Outlook Expressなど、これに対応できず、replyすると件名が文字化けするアプリも存在する。
      UTF-8) http://ja.wikipedia.org/wiki/UTF-8
    2. 行の自動折り返しがなくなった。SmartphoneやTablet等、1行が短い端末で読む場合に、改行が入っていると、行が途中で途切れ読みにくいからだと思う。また、何度も引用した場合にも、引用部の折り返しが変にはならない。
      すでにi-mode等のメイラは、行の折り返しをいれていない。MS wordなどで文を書いて、Cut and Pasteしたり、テキストで保存しても同じことが起きる。
      だが、表示時に行折り返しをしないメイラも少なからず残っているので、このメイラの人は読みにくくなる。
  2. マウスやタッチパッドのスクロールの向きが逆になった。これは、設定->タッチパッドの「スクロール方向->ナチュラル」のクリックを外せば従来互換に戻る。これが標準で、ナチュラルなのも、Smartphone, Tabletなど、タッチパッド端末との互換性を考慮してのことだろう。
  3. PowerPCのemulationができなくなった。
    http://www.excite.co.jp/News/apple_blog/20110721/Macotakara_13445.html

    以下のやりかたは、仮想マシンを導入し、OS-X 10.6以前を動かして、そこで、Emulatorを動かすというものなので、遅そう。他のやり方を探してみる。
    http://oshiete.goo.ne.jp/qa/7166576.html
  4. MacBookAir用のUSB SuperDriveがMacBookProでは認識されない、HUBを通しても認識されない。回避法があるはず。
  5. Text Editで、Shift JISが読めず、text editが立ち上がらない。Windows等で書いた日本語のtext fileが読めない。http://allabout.co.jp/gm/gc/2172/ によると、これは、text fileの中に、UTF-8に自動変換できない文字コードが入っているためらしい。①とかだろうか。。先のリンクにあるMi (無料)をインストールして、拡張子をこれにリンクしたら問題なく読めるようになった。
    emacsを使えば良いが、標準のemacsでは、ことえりやATOKなどのFEPの制御(英語・漢字モードの切り替え)が面倒臭い。
  6. .txtの拡張子や、pptなどの拡張子のファイルをダブルクリックやopenしてもlibre offceが立ち上がらない。。。http://tokyo.secret.jp/macs/app_change.html のやり方で拡張子を変更すればいいはず。
今後継続的に追加する予定。

2011年10月30日日曜日

Macbook AirにVMwareをいれwindows7を入れた。windows7 英語版には難儀した。。

MacbookAir (OS-X Lion 10.7.2) にレガシのソフトや、TEPRAのドライバを入れて、環境をMacbook Airに全部移行したいので、VMware Fusion4 (4.0.2) $34.99 を導入し、MacbookAirにwindows7英語版64bit Professionalをインストールした。実は、30日間無料で試用できたが、買ってから気がついた。ちゃんと”Buy Online" の上にかいてあるのだが、ググって直接ダウンロードページにいったのが敗因だった。

http://www.vmware.com/products/fusion/overview.html

詳細は追々補充するが、windowsには難儀した。
英語版windows7にはご注意)
  1. 使えるようになるまでに、windows updateを6回、リブートを4回もやり、2日もかかった。.netとかを、ばらばらにinstallしているので時間もかかる。linuxやMacならpatchはまとめて当てられるのではなかろうか。。何度もリブートしないとならないのは、お客の利便を考えていないか、OSの作りが変なのかのどちらかだと思う。
    幸い、後述のようにインストール自体は賢いVMwareのおかげで楽だったが。。
  2. 英語のwindows7では、日本語のTEPRAのドライバも、レガシの日本語アプリも、インストーラのdialog boxの文字が文字化けしている。さらにインストーラが途中でエラーを起こして途中でアボートする。VMwareの性だとも思えないので、言語環境にインストーラが依存するのだろう。windowsの内部構造に詳しい方によると、日本語など2byte系の処理系は、kernelの内部構造から違うという。だとすると言語パックをいれても、日本語アプリはインストールできないことになる。
    Mac OS-Xが世界共通バイナリであり、ユーザ毎に言語環境すら切り替えられるのとは、えらい違いである。日本語・韓国語・中国語はもちろんのこと、右から左に書く、アラビックにでもできるのである。
  3. 2011年10月23日日曜日: Macはすごい  をご参照ください。
  4.  Mac OS-Xのうえで、windowsアプリを動くようにするAPIラッパであるwinebottlerがインストール途中でこけるのも、この言語依存性の可能性がある。以下の方はうまくいっているので、何か私の環境の問題かもしれない。この方のやり方の通りやってみたのではあるが、インストーラのdialog boxの文字は化けていた。
    http://www.semerumamoru.com/wblog/?p=1909
    さらにwinebottlerでは、TEPRAのドライバは本質的に動かせない。
  5. 英語windowsを日本語化するやり方が、いろいろ食い違っているのだが、最終的には、以下にたどり着いた。
    http://windows.microsoft.com/en-US/windows/downloads/languages
    なんと、日本語のLanguage packは、windows ultimateかwindows enterpriseにしか入れられないのである。学会(IDF)で、Microsoftの人が、Language packをいれればちゃんと使えるよと聞いて確認しなかったのが敗因。この辺の価格構成の不思議は、次節に書く。
    せっかく買ったwin7 Professionalはどうすればいいんだろう。。とりあえず、以下のようにした。
    1. shutdownし、snap shotを消し、(virtual) disk clean upをした。30GBアロケートされているうち、食っているspaceは17GBは、これで11GBに減った。
    2. これぎりぎりまでサイズを減らしておこうと思い、変更をかけたら、60GB以上にしか変更できないとのことで、逆に60GBにdiskスペースが増えた。
    3. 60GBに増えたdiskイメージを抹消した。virtual machineは残っているが、disk imageがないので、起動するとbios のnetwork bootになってfailする。所要disk spaceは1GBに減った。
    4. 無駄なので、VMwareの管理メニューから、VM自体を削除した。
  6. しょうがないので、日本から持ってきたwinXPを入れた。こちらもinstall keyをVMwareに伝えて晩放っておいたらsetupが終わっていた。本当にVMwareは賢い。rebootから、確認のEnterまで全部自動化してくれるうえに、米国サイトで買ったVMwareなのに、日本語のwindowsXPにも対応している。仮想メモリ管理のメニューも自動的に日本語になっている。

    Activateは、何度やってもwebにつながらないと失敗する。Ineternet explorerではwebがアクセスできるので、どのみち電話でActivateしないとならないであろう。(他のマシンでActivateされているので、インストールでは自動認証されないだろう。電話で長いこと待ったあげくに、古いマシンは廃棄したから新しいマシンに入れさせてくれと説明しないとならない。)

    Mac OSやVMwareが日本語であるかどうかの問題では無くて、やはり、英語版window7の問題であったと思う。レガシーアプリのスケジューラと、TEPRAのドライバ、アプリはDVD ROM - (これもMacBookProのremote driveが認識される。windows のnotePC用のUSB driveは使えない。)からインストールできた。が、依然、以下のような問題がある。結局、Macだけの環境に移行できないのだろうか。。
    • スケジューラ&メモアプリは起動するがデータが読み込めない。新規ファイルのオープンもできない。windows updateをしてSP3をあててから、uninstallしてinstallしなおしても症状がかわらない。こちらは、スケジューラはすでにgoogle calenderに移行しており、メモもevernote (暗号化も可能)に移行したので、あまり実害はない。
    • TEPRAは、セットアップ途中、USBにつないだTEPRA本体が認識されず、設定が先に進まない。VMwareにはTEPRAのUSBは認識されており、それをwindowsにforwardしている。再度ドライバだけの再インストールをやっても、おなじようにUSBは認識されない。こちらは、アプリは正常に動く。
    • あとは、windows用に買ったAdobe Photoshopや、ビデオエディタのカノープス EDIUS、デジカメについてきた、パナソニックPhotofun browserやソニー PMB、楽譜のエディタ/viewer などをinstallすれば、windowsから離れられるのではあるが。。なかなか遠い道のりでありそう。
  7. 皆さんMacを買って、いろいろなソフトやドライバがMac対応になるように、応援しませんか。。

    Macbook Airはスペックの割に格安だし、必要なものは、電子辞書すらも標準で入っている。
        詳細は、2011年10月23日日曜日: Macはすごい  をご参照ください。

    bash, emacs, gcc,  X11, Perl, Python,  Ruby, PHP, SSH, git など実績のある主立ったツールも標準で入っている。ツール間でユーザーインターフェースが統一されている。Unix BSDベースなので、設定も素直である。ソフトも無料かApp storeで低価格で買える。キーマップも自由に変えられる。セットアップは、結構高度なことをやっても半日もかからない。あとは、各社がドライバなどで対応してくれるように、普及が進めばよい。
10月中旬のNew York Timesに記事がでていたのだが、Appleは、Mac, iPad, iPhoneで低価格路線に切り替えた。もちろん品質はそのままで。。販売台数が増えると、規模の効果で仕入れコストや流通コストが改善する。なので、低価格路線で他社を出し抜けるのである。
さらに考察すると、過去との互換を排除するので、ソフトもハードも開発や製造のコストダウンが進む。性能も使い勝手も改善する。
windowsやofficeは、一番重要なユーザインターフェースをしょっちゅう変更するので混乱するのだが、Appleは、そこは変えないで、ユーザにみえない非効率な部分を変えるのである。

多言語パッケージの価格構成の不思議)

には、
「多言語対応は Windows 7 Ultimate でのみお使いいただけます。多言語対
応については、Windows Update での言語パックのインストールが必要です。」と、計画的に高価な版に誘導しているように見える。が、よくよく考えると変である。

1) 英語版には、MS IMEもついてきて、note padで漢字が入力表示できます。もちろん、ブラウザには日本語も表示できる。それなのに、日本語のソフトのインストーラがこける。
通常多言語対応していなくてもメニューが英語だけで、普通はインストーラがこけるとは
思わないでしょう。

をみると、簡単なものは、安価なHomeやProfessionalで対応し、面倒なものはUltimateにさせているらしい。
本当に多言語対応を商売にするなら、FrenchやSpanishのほうが金が取れるので、そちらをUltimateに誘導するべきだと思う。

3) 価格設定
kakaku.comで見ると、Ultimateの最安値は、35,000円。
notePCがかえちゃう。

またwin7 ultimateのupdate のpackageの最安値が19,000円

このページをみると、英語版ですが、ProとUltimateの元々の価格差は、20ドルしか無いのに。ProfessionalからUltimateへのAnytime アップグレードは$129もする。
なんか妙な価格設定です。ProfessionaからUltimateへのAnytime upgradeが高すぎる。

のように安売り店では、win7 64bitのProは$129.99、Ultimateは$149.99である。
上記のAnytime updateをするくらいなら、新規に買った方が良い。
この価格差なら、Ultimateにしたのに、だまされた感じがする。
個人理由での返品交換自由の原則がアメリカなのにwindowsは返品交換も効かない。

4) まとめ
いずれにしろ、Mac OS-X Lionが、もともと多言語対応で何でも入っていて、フルパッケージが2,600円なのとえらい違いである。http://www.apple.com/jp/macosx/
また、Appleで認証されたMacなら何台でもインストールできる。

からは、EnterPriseは、90日間試用のダウンロードができますが、もはやwindowsには
手間も金もかけたくない。やる気だったお客をそういう気持ちにさせ、アンチwindowsに走らせてしまった時点で、商売は失敗だと思います。

もう二度と、あんな面倒なinstallとくにwindows updateはやりたくない。Macなら、新規のMacbook Airを買ってフルに設定しても2時間程度で終わるのに。。

windows7は、以下の問題もある。どんどん使いにくくなっている。

  1. NASをsamba接続すると、勝手にMediaファイルになる。IPアドレスで指定すれば回避できたり、いろいろ裏ワザがあるが、面倒。
  2. suspendにしておいて電池が無くなると勝手にshutdownする。アプリはすべて強制終了する。Macがsupendで30日持つし、かりにshutdownしてもアプリがすべて元の状態に復旧するのと、大違いである。
  3. TrustedUserという属性が導入され、dllとかを勝手にいじれない。一方で、相変わらずdllが破損することがあり、知らないと再インストールをしないとならなくなる。


VMware Fusion 4)
一方Mac OS-X Lion用のVMware Fusion 4はよくできているのだが、問題がある。sleepしているMacbook AirをThunderbolt displayにつなぐとOSがpanicするようになったのである。(昨日、OS-X Lionの更新がリリースされた、Thunderbolt display対応と説明にあったので、早速、改善されているかもしれない。) 変わったのはVMwareをinstallしたあとなので、これと関係していると思う。さらには、LibreOfficeもcrashするようになった。ただし、VMware自体はよくできている。
  1. desktopが、Macとwindowsで共有される。そこに置かれたフォルダも共有されており、更新は即座に双方向に反映される。これは大変便利である。
  2. MacBookProのremote driveが認識される。windows のnotePC用のUSB driveをUSBでつないでも使えない。何度DVDを入れても、そのままejectされる。Mac用のSuper Driveを買うことにする。
  3. windowsのインストールDVDをいれてVMwareにwindowsのinstall keyを入れて放っておいたら、翌朝にはinstallが全部終わってlogonできるようになっていた。ということは、日本語のwindowsをインストールするつもりだと、冒頭英語サイトのVMwareとの相性がどうなのか、考えないとならないかもしれない。日本語版のVMwareはアクトツーから発表されている。http://pc.nikkeibp.co.jp/article/news/20110916/1036921/
    日本語windowsXPを、英語版VMwareでインストールしてみて、何がおきるか確認したい。→ 前述のようにインストール自体は完全自動で問題なくできた。日本語の追加アプリがなんらかの問題で動いていないのは未解決だが。
  4. sleepが使えるので、windows updateなどで、とんでもなく時間がかかっていても、途中で止めて、あとから再開できる。
  5. 使用メモリ、ディスク容量は適当に設定してくれてさほど、リソースは食わない。disk領域は都合20GBだけである。。このscreen shotを以下に掲載する。シームレスモードなので、ウインドウの中がVMwareで起動した、window7 外側がMac OS-X Lionである。
  6. それほど速度低下を感じない。が、windows7が計算パワーを浪費するので、windows updateが動いただけでも、ファンがフルパワーで回る。
  7. VMwareがちゃんと動くなら、Ubuntu Linuxなども入れておきたい。また、先に書いたようにwinXPもinstallしたい。

2011年10月28日金曜日

Mac でkey layoutを変える

Macは、キーボード毎に配列を指定できる。システムメニューの設定→Keyboardから、Modifier Keys ボタンを押せばcontrolとcapslockの入れ替え等はできる。

私の環境は、英語101キーボードで、自宅では、Microsoft Natural Keyboard Eliteというエルゴノミックキーボードを導入している。AltがOption,に、よく使うCmdがWindowsキーと、本体キーボードと反対に割り付けられていて使いにくい。が、これもこのメニューから変更できる。(windowsでは、ツールの導入が必要になるし、キーボード毎のmodifierの指定はやりにくい。)

(以下)




もうすこし複雑な入れ替えもできる)

以下のサイトの情報に従い。

http://hints.macworld.com/article.php?story=20110113215328810

一番簡単なdouble commandというツールを用いた。

http://doublecommand.sourceforge.net/

これをインストールすると、Appleマークから出るSystem Preference (システム設定)
に、以下のようにdouble commandというメニューが現れる。

これを起動し、Active SettingsのEditボタンを押し、
Command Key act as Option Key

   Option Key act as Command Key
の両方にチェックをいれ、Activeをクリックする。
おそらくはSystemもクリックしたほうがいいのではないかと思う。
 これでも、OptionとCommandキーの位置の入れ替えになることを確認した。
別に、先の方法でやればいいのだが。

このツールを使うと右EnterをControlキーに割り付けられる。本来Enterは、Control-Mとして入力できる。Terminalではそうなっている。back spaceはControl-Hなど。ということなので、頻繁に使うのはControlキー(以下^で示す)であり。Enterをこの機能に置き換えるのは便利。
ちなみにMacでは、emacsのキーバインディングである以下が標準的に使える。

  • 右進む : ^F
  • 左進む : ^B
  • 上進む : ^P
  • 下進む : ^N
  • バックスペース: ^H
  • 行先頭に戻る: ^A
  • 行末に進む: ^E
  • カーソル位置から行末までCut: ^K
  • ペースト: ^Y
  • 半ページ下スクロール: ^V
  • キャンセル:  ^G
  • Enter: ^M
  • 私は、ATOKを使っており、仮名モードのon/offを^Jに割り付けている
    これは、ATOKメニューから「キー・ローマ字カスタマイザ」を起動し、キー設定で、英字入力のon/offを^Jにすれば良い。(以下スクリーンショット参照)

    • ただし、xterm, Terminalは、bashが^Jを食ってしまうように思う。~/.inputrcを設定してもうまくいかない。.inputrcの設定は以下など:  http://superuser.com/questions/269464/understanding-control-characters-in-inputrc

      keyboardの^J入力をterminalのレベルでATOKに送っていないのかもしれない。ATOK標準のControl-Shift-Cが英語モード、Control-Shift-Zが仮名モードの切り替えには使えるが面倒である。さらには、別windowで仮名モードにした状態で、xterm, Terminalに入ると、仮名になっている。これは使いにくい。本来は、window毎に変換モードを維持してもらいたい。

ところが、Controlは、101, 106キーボードでは押しにくい位置にある。一方、ほとんど使わないCaps Lockが一番いい位置にある。なので、Caps LockもControlに割り付ける。これは、一番最初のスクリーンショットにもあるとおり、標準設定でやれる。

しかし、これでも問題が残る。左小指でControlを押すので、^G, ^Bが押しにくいのである。
強引なやり方は、EnterもControlに割り付ける方法。これは、上記double commandでやれる。ただし、これに慣れると、他人のキーボードが打てない。他人が自分のキーボードを打とうとすると混乱するなどの問題が起きる。

また、MacのTerminalでは^Mをリターンとして認識するが、通常プログラムでは認識しないものが多い。これは、末尾に書いたUkuleleを用いてkeymapを編集すればできると思う。

設定ファイルの変更でもやれると思う)
が面倒なので途中まででやめた。

XMLファイルでマッピングを指定してやればいいらしい。キーボード毎の指定になっているのかは、未確認である。

http://hints.macworld.com/article.php?story=20110529094802391

- ターミナルウィンドウを立ち上げる
   ioreg -l | less
 と打つ。

私の場合、ちゃんとMicrosoft Natural Keyboard Elite が認識されており、上記コマンドで以下のように表示される。
 | |   |   +-o Microsoft Natural Keyboard Elite@fa131000      | |   |   | | {
    | |   |   | |   "sessionID" = 122321377430514
    | |   |   | |   "iManufacturer" = 0
    | |   |   | |   "bNumConfigurations" = 1
    | |   |   | |   "idProduct" = 11
    | |   |   | |   "bcdDevice" = 256
    | |   |   | |   "Bus Power Available" = 250
    | |   |   | |   "bMaxPacketSize0" = 8
    | |   |   | |   "USB Product Name" = "Microsoft Natural Keyboard Elite"
    | |   |   | |   "iProduct" = 1
    | |   |   | |   "iSerialNumber" = 0
    | |   |   | |   "USB Address" = 8
    | |   |   | |   "bDeviceClass" = 0
    | |   |   | |   "locationID" = 18446744073610137600
    | |   |   | |   "bDeviceSubClass" = 0
    | |   |   | |   "IOUserClientClass" = "IOUSBDeviceUserClientV2"
    | |   |   | |   "PortNum" = 1
    | |   |   | |   "IOCFPlugInTypes" = {"9dc7b780-9ec0-11d4-a54f-000a27052861"="IOUSBFamily.kext/Contents/PlugIns/IOUSBLib.bundle"}
    | |   |   | |   "bDeviceProtocol" = 0
    | |   |   | |   "Device Speed" = 0
    | |   |   | |   "idVendor" = 1118
    | |   |   | |   "Requested Power" = 50
    | |   |   | |   "IOGeneralInterest" = "IOCommand is not serializable"
    | |   |   | |   "Low Power Displayed" = No
    | |   |   | | }
おそらくは、上記URLに従い、/System/Library/Extensions/IOUSBFamily.kext/Contents/PlugIns/IOUSBLib.bundle/Contents/Info.plistを編集し、

 
 IOKitPersonalities
 のところに、
                        Swap command and alt
                        1
....

をいれれば良いと思う。が、キーボード毎に変わるのかは不明。

Ukeleleによる方法)
Ukelele 2.1.8をダウンロードし、これを使おうとしたが、これは通常キートップで入力されるキーの指定はできるが、modifierキー同士の変更できない模様。(以下)

フリーのキーマップエディタ Ukelele もここにある。
http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=ukelele

keyboardレイアウトファイルの置き場所は三つのうちいずれか。
  1. /Library/Keyboard Layouts (available to all users on the machine)
  2. ~/Library/Keyboard Layouts (available to the user only)
  3. /Network/Library/Keyboard Layouts (available to all users on the network)

まずは1にする。
  1. Ukuleleを起動
  2. インストールセットにあった、System Keyboards/Roman/U.S..keylayout を開く
  3. このviewで、キーを押すと何が、反応するか見える
と、ここまでやって断念。

以上