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アクセスになっていました。久しぶりに更新しました。
ラベル Lion の投稿を表示しています。 すべての投稿を表示
ラベル Lion の投稿を表示しています。 すべての投稿を表示

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月23日日曜日

Macはすごい


Macbook Air 13inchを購入した。ハードもソフトも大変すばらしいできである。IBMPCやMicrosoft windowsとは格が違いすぎる。
背景)
windowsとは、win3.1, 95, 98, 2000, XP, win7と長くつきあってきたが、いまだに理解できていない。win8も学会で何度か見てきた。最近でも、今年に入ってwin7を3度installしている。4度目になるVMwareへのinstall(以下)で、再度それを感じた。以下の作業が手間取った前半は、壊れかけたHDDの複製に執着したからであり、かならずしもwindowsの完成度とは関係していないが。 
2011年5月29日日曜日: notePCのHDDが壊れました - 復旧作業の紹介
以下、まだ更新中ではあるが、Macについてご紹介したい。のぼせ上がりやすい性格なので、Macにかなり傾倒してしまっており、主観的なのは、ご容赦願います。ご意見・思い違い等あれば、是非、本blogにコメント願います。

OS-X Lion (10.7.2)は大変進化している。ごてごてと過去の遺産を引きずらずに、切るべきところは、すぱっと切るのが、いつもながらAppleの見事なところである。使いにくいというblogも散見されるが、過去を引きずらずに、シンプルにするのが美学だと思う。
過去のソフト遺産とか、従来のデバイスに縛られる場合にはMacには移行しにくい。過去と決別するのを好まない人はMacよりMicrosoftを選ぶのが賢明かもしれない。win8では、Metro UI (新API対応アプリが必要/registoryも使わない) で決別を試みているが、従来互換は維持している。過去への互換性の考え方の違いは、AppleとMicrosoftを特徴づけているように思う。以下にも考察した。
2011年10月11日火曜日: AppleとMicrosoftを比較すると
さらには、MacにVMware Fusio4を入れて、windows7をinstallしたが、大変だった。世界共通バイナリであり、ユーザ毎にも言語環境を変えられるMac OS-Xを使ってからwindowsをinstallすると特に強く感じる。以下に書いた。。
2011年10月30日日曜日 Macbook AirにVMwareをいれwindows7を入れた。windows7 英語版には難儀した。。
Macbook Airは、MacbookProよりは割安だが、格安IBMPCに比べると、割高ではある。ただし、ソフトの追加購入コストがほとんどかからないし、割高なぶんの性能は持っていると思う。

以下にまとめたい。

ハードウェア) 仕様 - http://www.apple.com/jp/macbookair/specs.html
  • レガシーとの決別。
    • Ethernetコネクタ (RJ-45)をもはや本体に配置していない。必要ならUSB Ethernetポートか、Thunderbolt displayをHUBにして接続する。通常は内蔵WiFiで十分なので必要ないが、性能向上のためAppleのUSB Ethernetアダプタも購入した。これは、使っているとかなり発熱する。ちなみに、Bluetoothも持っており、これで、周辺機器をつなぐことも、これを用いたファイル転送もできる
    • HDDから決別し、全機種SSD (Flash)  128GB, 256GBとおごっている。おかげで起動がすこぶる速い
    • マウスやトラックパッドのスクロールの方向は、OS-X Lionでは、標準は逆転したが、これは設定変更可能。(ソフトウェアのところでも述べる)  Tabletにあった自然な方向だとの主張だが、OS-X Lionだけ逆の環境になって、レガシな装置と完全には決別できないユーザが混乱しないのかは疑問。タッチスクリーンのように明らかに操作感が違わないと使い分けができるものやら。これは101 keyboard(英語配列)と106キーボード配列の混在(日本語配列)の混在利用でもいえる
  • キーピッチが、19mmであり、desktopの間隔に近いが、薄くするためなのか、ストロークが小さい。トラックバッドが良いのに残念。やはりオフィスには、エルゴノミックキーボードを配置したい。もっともこれを配慮してか、Thunderbolt displayがdocking stationの役割を持っている。この環境を構築し、以下に記載した
    2011年10月23日日曜日:
    エルゴノミックキーボードと外部ディスプレイを使った生産性の高い環境
  • 13inchではスペック上は電池が7時間持つ。残時間表示をonにしていると、実効5時間くらいが表示されている。さらにLi-Ionは満充電で過充電すると電池寿命が下がるので、これも対策している模様
  • PCでは、ホームポジションから手を離すのは生産性が落ちる。なので、タッチスクリーンにはしていない
  • マルチタッチのタッチパッドが広くて使いやすい。マルチタッチでジェスチャーの認識精度も高い。ジェスチャーも4本指まであり、よく考えられている。余計なスクロールエリアだとか、マウスボタンなどがなく、広々と使える。windows noteのような苦痛が少ないので、移動時には、マウスを持ち運ばなくてもよさそうである。
  • Thunderboltディスプレイが秀逸である。27インチで解像度2,560 x 1,440と高く、発色もよい。10Gbps が2linkあり、ディジタルで専用ディスプレイにつながる。これが、ドッキングステーションになる。
  • Macは、IBM PCがアナログVGAに足踏みしている間に、Digital DVI (single link, dual link -- dualなのはMacぐらいでは...),  HDMI、Thunderboltと進化した。Macbook (AirもProも) おなじmini portにアダプタを変えることで、上記すべてのデバイスがつながる。displayというカテゴリで、本体側はたった一つのコネクタに押さえているのが見事である。10Gbps が2ポートなのが、従来のmini display portであり、このコネクタ形式のケーブルから10Wも電源供給ができるのである
  • 厚さは最薄部0.3cm-最厚部1.7cmと薄く、余計な出っ張りが全くないので、すっきりと鞄に収まる。重量は13inchで1.35kg。が、アルミボディで作りがしっかりとしている。普通のnotePCにある送風用やスピーカ用の穴がない。ファンはついているようで、負荷が高まると音はする
  • 本体LCD上にカメラ、本体にマイクがついており、skype等に対応している。カメラは、PhotoBooth等とも連携している。また、カメラを利用して環境輝度を認識してLCDの明るさを変える。急に変えると違和感が出るので、じわじわと変わる
  • 13inchで256GB Flashがついて13.8万円は安い。さらには、core i7 (dual core, 1.8GHz)にもなる。またキーボードはwebでオーダすれば、101配列(英語配列)も選べる。私は、1列少ない英語配列が好きである。メモリは4GBであり、拡張はできない
 私が購入したのは、電池の持ちと画面サイズを考えて、Macbook Air 13 inch, 256GB SSD, core i7 である。

  • Thunderboltディスプレィには、Macのmini displayケーブルしか出ていない。DVIもHDMIもVGAもつながらない。さらには、古いMacbook等の非Thunderboltのmini portにはつながらない。完全にThunderboltのinterfaceしか持たない。なので、返品が多いらしく、店でも何度も何度も確認された。
  • Thunderboltに搭載されているのは、ウーハ付きスピーカ(2.1ch)、マイク、カメラ、1G Ethernet port、USB 3ポート、IEEE1394(Firewire) port,  Macsafe経由でのnotePCへの電源供給機能,  拡張用Thunderboltポート。Thunderboltは10Wの電源供給能力も持つ。
  • Macを、Thunderbolt displayから出ている電源とmini-display portにつなぐと、Thuderbolt displayが、キーボード・マウス・外部ドライブ・Ethernetなどの、ドッキングステーションになる
    • Macは閉じたままでも良い
      • 閉じていれば、メニューバーが全部Thunderbolt display側にいく。電源を切るのは簡単である、display cableを抜けばsleepになる。ハイバネーションか、sleepかを気にする必要もない。sleepで電池が30日と十分持つらしい。http://www.apple.com/jp/macbookair/features.html#longlasting
      • 電源を落として、Thunderbolt displayなしでMacを開くと、ウィンドウは、Macの小さいディスプレィに収まるように集まってきている。アイコンは自動整列にしておけばよい
    • Macを開けていれば2画面になる
      • このときは、メニューはMacbook側に残る。2画面か複製表示にするかも自在に設定ができるし、設定画面がメニューバーにあり、設定も楽
  • MacbookPro 15inch, 17inchなどAMD Radeon GPUを持つ機種ならDual Displayにできる。Thunderboltは非常に高速なので、通信遅延に対策したプロトコルが作れれば、GPUもDisplay側に設置できる。これにより、notePCの本体コストや消費電力をあげずにThunderboltの芋づる接続で何台でもマルチディスプレィにできるはずである。制御ドライバは複雑かもしれないが。。
    今後の進化に期待したい
  • オーディオは良い音がする。が、背面にも上にも横にも溝はない。下部の見えないエッジにメッシュがある。デザインにはこだわりがある。
外部ディスプレィ等を活用した環境は、以下に別記していく)
2011年10月23日日曜日
エルゴノミックキーボードと外部ディスプレイを使った生産性の高い環境
ソフトウェア) OS-X Lion (10.7.2)
  • 必要なものが、ほとんど最初から入っている。私が、追加で有料で購入したのは、いまのところATOK(まだ30日間の試用中だが)と世界時計だけである
  • App Storeには優良なソフトがきわめて安価でそろっている。iPad, iPhone等から、優良なソフトがさらに増えることを期待したい
    • windowsの高機能な世界時計はsharewareで、1,000円以上もしたが、今回のは1.9ドルであった。他にもApp Storeの品揃えは多い。必要機能はこれで十分である
  • 設定がきわめて簡単。基本的にはOSがSSDにセットアップ済みで、カスタマイズのみなので、2時間もあれば、凝ったものを除いて、ほとんどsetupは終わる
  • 最初から多言語対応である
    • 米国製Macでも、すべてのツールが最初から日本語対応、というか、韓国語でも、アラビア語でも、優先度をつけて対応できる模様
    • 何語の設定にも自由に行き来できるし、ユーザごとに言語設定を変えられる。米国人への説明が便利なようにメニュー等を全部英語にしているが、これで問題なく日本語は使える
    • blog用に日本語環境のユーザも作った
    • 残念ながら、ログインしたままユーザを移動できず、一旦ログアウトする必要がある。 ←これは誤り。上部のコマンドバー右から2番目にある、ログインネームをクリックすると、メニューが現れ、複数ユーザ間を移動できる。もちろん移動時には、移動先ユーザのパスワードが要求される。この移動は、立体が回転するようなアニメーションになっており、なかなか格好が良い。
    • ユーザ間screen shot等のファイルを移動することも可能。管理者設定にしておけば、Unixのdirectoryツリーが全部見えているからである
    • ユーザの環境は、/Users/$USER_NAME に保存されている。
      • /Users/$USER_NAME/Library以下に設定情報が保存されているが、このフォルダは、通常はfinderでは表示されない
      • https://discussions.apple.com/thread/3301036?start=0&tstart=0 でrootを有効化する。若干やり方が違うができた。
      • rootになりtar で、内容をcopyしてchownする。userが違うのでdirectoryのsymbolic linkは効かないと思うが、fileのhardlinkはできるのでは。そのうち、shell scriptかperlで処理してみたい。
    • 言語セットがUTF-8に統一されている。UTF-8ならば、S-JISと異なりバイナリ検索がつかえるし、EUCのように、言語環境にも素直に通る。MailのencodingまでもISO-2022-JPではなくUTF-8にしてしまっているのは、ちょっとやり過ぎ。

      RFC2822によればヘッダを構成していいのはUS-ASCIIと改行文字(CR/LF)なので、UTF-8は一見ルール違反だが、実際に は、UTF-8をQuoted-Printableでエン
      コードしてあるので、これは、MTA的には US-ASCIIでRFC compliant。本文は、UTF-8をbase64でencodeしている。本文は圧縮度のため、件名は英文だけならRFC-8非対応のメイラでも見えるようにするため、エンコードを買えているのだと思うが、この不一致のため、Outlook expressなど、混乱するメイラが多い。

      相変わらず、すっぱりと過去を断ち切るのは、Appleらしい。
  • rebootする前の状態を保存しており、再起動すると同じツールが全部立ち上がる。デバイスドライバ等によっては再起動が要求されるものもあるので、これはきわめて便利。Reboot時間を測定してみた。13個のアプリが開いており、うち1つは14タブを開けたGoogle Chromeである
    • 再起動を指定して、落ちるまで:  6秒
    • そこから、ログイン画面が表示されるまで: 20秒
    • そこから、パスワードをいれて、Chromeやターミナルウィンドウなどアプリが立ち上がるまで' 16秒
    • Chromeのtab等の読み込みが終わるまで: 15秒 (やや怪しい)
    • 13個のアプリが復元した。
  • 一方sleepからの復帰は、以下のようにパスワードを入れている時間のほうが長い。ここまで速いと、指紋認証とか、なにか別な認証が欲しい。iPhoneのような数字4桁は心もとない
    • パスワード入力画面がでるまで3秒 (Sleepに入ってからの時間経過でも、多少ばらつく気がする。最大7秒ぐらいのときもある。)
    • パスワードを入れ終わってから、アプリが復元するまで1秒以内
    • WiFiには、すでにつながっている。電波が弱いときには接続に時間がかかることもある
    • Sleepに入るのは一瞬
  • ツール間のインターフェースが統一されており、有機的に連携している
    • ほとんどのツールが、Emacsのキーバインディングで編集操作ができる。キーから手を離す必要がないので、きわめて生産性が高い。
    • どのツールからもマウス位置の単語が、付属辞書(Oxford 英英、Oxfordシソーラス、プログレッシブ英和・和英、類語、大辞泉、wiki)でひける。これだけの辞書が最初からついてくるだけでもお得である。タッチパッドなら、3本指タップでいける。Chromeは対応していないので、2本指タップでポップアップメニューを出して選択する必要がある
    • どのアプリもCommand /+/-でフォントサイズが変えられる。ウィンドウの大きさは変わらないでフォントだけが拡大縮小する
    • SSHやFUSEでネットワークにつないだまま、sleepに入っても、別段エラーもなく接続が切れるだけである。再開したときに操作が速い
    • 音声読み上げ機能が標準でついている。MailでもEvernoteでも同じように、textを選択して、右クリックメニューないしはEditメニューからSpeechをセレクトすると、音声読み上げができる。Chromeは対応していない。日本語があるとそれは無視しえ、半角数字とか半角アルファベットとか英語で読めるところだけを読む。抑揚もあって、かなり流ちょうな英語である
    • ログインでパスワードを間違えるとwindowが震える。余計なメッセージもなく簡潔でわかりやすい。本体デザイン同様にセンスが良い
  • タッチパッドのジェスチャーの認識精度が高い
    • 特にタップ=クリックの誤認が少ない。windowsのnotePCのタッチパッドでダブルタップをクリックにしていると、勝手にクリックになり操作がめちゃくちゃになることがあるが、Macbookではそういうことは起きない
    • ジェスチャーは、設定画面からそれぞれon/offできる
    • ときどき間違えて、シングルタップを2本指タップにしてしまうが、標準設定では、幸い2本指ではメニューがでるだけなので、悪影響が小さい
  • システム設定も直感的
    • windows系のように設定が分散していない。networkの設定はたった一つのアイコンからできる
    • Userの設定変更等間違うと困るものは、鍵がかかっており、passwordを再入力して解除する必要がある。このインターフェースは直感的でわかりやすい
  • アプリは、Registoryとか、dllとかで、システムを不安定にしない。
    • mail.app は実はフォルダになっており、その下に必要なものが入っている。folderから「構成要素を表示」とやると簡単にいじれる。もちろん、Terminalのbashからはtextベースで操作できる。通常は、xxx.appをゴミ箱にいれるだけで、きれいさっぱりアンインストールできる。
    • http://guides.macrumors.com/Uninstalling_Applications_in_Mac_OS_X
      によると、一部、以下にファイルを残すものがあるらしい。
      • /Library/Preferences/
      • /Library/Application Support/"

  • 退化しつづけるOutlook (outlook 2007はスレッド表示や、引用の制御もしにくくなっている)と違い、添付のMailツールは着実に進化している。(後半に記載した)
  • キーボードのカスタマイズも標準サポート。CapsLockにもControlをmapしたり簡単にできる
    • ちなみにwindows7では、英語配列(101配列)の外部キーボードを接続して英語配列に認識させるのに、registoryをいじりrebootする必要がある。windows系では、悪いことにキーボードごとに配列を変えられない。外部に101(英語配列)をつけ、これように101配列に設定すると本体が106(日本語配列)の場合でも、本体のキートップが英語配列で認識されてしまう。
    • Macは、当然keyboardごとに配列を認識するし、この認識も、指定通りに両シフトキーの内側のキーを2回押すだけで自動認識である
  • マウスのスクロールが従来とは逆になった。が、「設定 →トラックパッド」の「Scroll direction」での「Natural」のチェックを外せば従来互換に戻る。本来、タッチパッドと、マウスで別々に設定できると慣れるのに楽かもしれないが、「下にこする=スクロールバーを下げる、画面が上がる。」というのが、TabletやiPhoneなどの動きの反対で不自然なので、もうやめてしまえよ。。というAppleの主張なのだと思う。(既存インフラをそこまで否定するのか。。とも思うが。。)
  • MS-IMEは変換精度がどんどん悪化しているが、ATOK for Mac を使うことで、変換ミスがかなり減り、入力が楽になる。
    (Windowsでも同じだが)。ATOKは、流行対応した辞書が定期的に追加されるし、定額制ならアプリ本体も更新していく。無料のCloud Storageを使って、他のATOKと辞書を共有できるらしい。Functionキーや矢印キーを使わないATOK標準のキー設定は、操作性をかなり向上させる。もちろんカスタマイズも可能なので、私はひらがな/英語の切り替えを Control-Jに割り付けている
  • OS本体がBSD系UNIX なので、Unix, Linux系のツールが最初からついてくる。コマンドシェルはbash (v3.2.48)であり、/usr/binには、gcc (v4.2.1),  git (v1.7.5.4), emacs (v22.1.1),  perl (v5.12.3),  python (v2.7.1),  ruby  (v1.8.7),  php (v5.3.6), vim, ssh, x-server, rsync, yacc, lex などが最初から入っている。そもそも、unix系のツールはサイズが小さいので、/usr/binには1082コマンドも入っているのに、disk容量は122MBしかない。これもwcやduというコマンドで簡単に調べられるのが、unix系のツールの素性の良さである。
    無いツール (たとえば、wgetやgnuplot)もmac port等で取得するか、source forge等で取得してコンパイルすれば使える。(Unix系ツールの整備については、別記事 :
              2011年10月23日日曜日 MacでBSDツールを利用するに記載する)
  • OSの設定が、BSDなので大変楽。ps, killでjobを殺すこともできるし、使いやすいGUIのツールもついてくる。
  • Terminalが進化した。半透明にできるので下に何があるか透けて見える
    • TerminalやX11のterminalで、ATOKのひらがな/カタカナ切り替えキーが通らない。ATOK標準のCtrl+Shift+C ないしはCtrl+Shift+Zは通る。私がカスタマイズしたCtrl+Jを通したい
    • 変換モードはwindowsごとに持っておらず。グローバルらしいので、一旦他のwindowに出てから、terminalに戻ると仮名入力になっている。それはそれでつかいやすいのだろうか?私には使いにくいが。
  • 無料のwinbottlerを使えば、windowsのソフトが走るはずであるが、win95時代のレガシーツールのインストールには成功していない
    • winebottlerの状況は、別記事に書く :  2つのソフト(一つは、CravingExplorer-1-1-0.exe) を試したがどちらもうまくインストールできていない。日本語フォントへの対応は、以下にあるものを試したが、インストーラは文字化けしている。
      http://www.semerumamoru.com/wblog/?p=1909
    • VMware Fusion 4(有料) は、Mac OS-X Lionに対応した。
      http://www.mdn.co.jp/di/newstopics/19925/
       これを使えば、windowsをOS-X Lion上でひとつのwindowとして走行されられる。費用もかかるし、あえてwindowsを導入したくはないのだが、過去の互換性を確保する一つの方法だろう。
    • 標準添付のBootcampで、Mac OS-X, Linux, windowsのトリプルブートにもできるが、Linuxを入れなくてもかなり類似ソフトは動くし、Mac OS-Xを毎度シャットダウンし、起動の遅いwindowsを起動し、連携していないwindowsツール群をつかうのも癪である
  • Xcodeなど、開発環境はAppleから無料で入手できる。iPhone,iPadのデバイスにダウンロードするには、有料のライセンスが必要である。デバイスが脱獄してあれば、これも無料になる
  • Office系ソフトは、無料のLibreOffice (Openofficeからspinoutした技術者が作ったもの) で十分使える。日本語も問題なく表示・編集できる。PowerPointで、既存のファイルを表示させると、若干、図形が乱れることはあるが、だいたいは正しく表示される。もちろん、pptxなどにも対応し、html, pdf, jpg 出力など、MS Officeよりも多彩なファイル出力を持つ。表計算は、こちらの方が使い勝手が良い
  • iCloudで、iOS5.xとMacのデータが、cloudを通じて同期できるようになるらしい
    • メイルをiCal(カレンダー)にはりつけ、スケジュール化できる模様
    • これがiCloudで他のデバイスと共有できると最強である。現状はgoogle calenderを使っているのだが
  • ireless lanの検出がかなり速い。windows7は、networkがつながらなくなってrebootすることが、時々あるのに
  • MacbookProとMagicmouseがつながっているときに、今度のMacbook Airとマウスの関係はどうなるのかと思った。あるMacとつながっているBlueToothマウスは、他の機器とはつながらないようである。MagicMouseは、MacbookProでは、自動認識されず、手でメニューバーから認識させないとならないことが多かった(Snow Leopardの問題かも...)。今回は、ロジテックM305 Mouseにした
  • Tabletのような、Launch padが導入された。win8でいうところの、Metro UIであるが、従来のMacアプリがアイコンとして表示される。別アプリだけが表示されるMetroとは違う。
  • windowsと異なり、開いているアプリはDOCKに表示されない。4本指までのタッチパッドのアクションを使って、Exposeにしたり、Launch padを起動したり、いろいろなことができる。single fingerのdouble tap(=左クリックの機能)の誤認識も少ない。マウスより便利かもしれない。。。 
  • OS-X Lionの初期設定等は、以下のwikiにも書かれている。
ということで、私は、すべての環境をMacに移そうと思っている。もうかなりレガシーソフトから移行した。後日報告したい。

また、広い画面と、エルゴノミックキーボードを使うことで生産性があがることがわかった。特に、キーストロークが最適で、形状も打ちやすい、エルゴノミックキーボードは、体への負担が軽く、かなりのスピードで打てる上に、体への負担も軽く肩こりにもなりにくいように思う。アメリカでは、大学院生はもちろん、役所などでも、エルゴノミックキーボードを使う人は多い。これも別途レポートする。

進化したMail) 
MailのView→Organize by conversation (日本語モードでは、未確認。)


マウスオーバの辞書検索)

 Mailの場合) touchパッドから単語を3本指タップで、以下の画面になる。wiki-pediaを含めて4つの辞書が一気に検索される。標準添付のブラウザであるSafariでもだめである。


Google Chromeの場合) 単語を選択して、マウス右クリックメニューないしは、タッチパッド2本指タップで出るメニューから辞書検索を選ぶ。


とにかく、なにも買い足さなくて、これが標準機能だけでできるのはすばらしい。