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

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年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年11月14日月曜日

ATOK Passportがでた。10台までインストールできる

日本語変換のMS IMEは、とんでもなく妙な変換をする。これを使っている限り、誤字は免れない。どうも中国で開発しているからという噂すらある。先日も、Jobsの追悼のblog記事での「献花」が、MS IMEでは、「顕花」となった。知人に指摘されて、初めて気づいた。顕花は、顕花植物としてしか使わないのに、なんどやってもこれが一番最初に出てくる。ほかにもひどい変換は、数知れない。

ATOKの変換は非常にまともである。人名すらちゃんと変換される。
ATOKは、まずは無料で1ヶ月間試用できる。
封を開けたら最後、絶対に返品できない、MS windowsとはえらい違いである。$120も払って買って、日本語ソフトが一切インストールできなかったwindows 7 Pro 64bit 英語版には、まだ恨みがある。
うれしいことに、ATOK Passportというのができた。月額300円で、10台までインストールできる。Macでも、Windowsでも、Androidでも良い。ユーザが一人きりであり、同時に使わない限り、300円で10台までインストールして良いそうである。

これは、買わない手は無い。Just Systemは、良い会社である。なのに、あまり儲かっていないそうであり、積極的にサポートしてあげたい。
登録は簡単で、試用して届くmailにある購入窓口で手続きすれば自動的にシリアルナンバー等が入力される。が、困ったことに登録ができない。おそらくはアメリカは日本より時差で1日遅れているので、その性かもしれない。まだ試用期限があるので明日試せば分かるが、困る方がいるかもしれないし、他の原因かもしれないので、メイルで、Just Systemに問い合わせを掛けておいた。
翌日、回答が来た、私の試用しているのがATOK for Macであり、ATOK Passport版への乗り換えが必要なようである。以下にFaqがあった。多少カスタマイズしてあるので、IIの以降アシスタントの方法にし、ver24.0.1だったので、パッチ当てから行った。無事製品登録でき、自動updateが有効化し、大量にあった、辞書更新・時事関連の追加辞書を適用した。

http://support.justsystems.com/faq/1032/app/servlet/qadoc?QID=051127

各プラットフォームの正式版ソフトのダウンロードは、以下に説明がある)
https://www.justmyshop.com/camp/atok_passport/dl/index.html

以下、direct mailから抜粋します。

「ATOK Passport」はこんなにオトク!
-------------------------------------------------------------------
【1】ATOK Passportなら スマホでもPCでもATOKを【月300円(税込)】で
使うことができる! お申し込みされた月は無料です。
-------------------------------------------------------------------
【2】いつも最新のATOKを使える!
お客さまがお使いのPC/Android、合計10台まで導入いただけます。
-------------------------------------------------------------------
【3】最新のOS、スマートフォンの新機種に対応予定!
-------------------------------------------------------------------



▼ATOK Passportのお申し込みはこちらから!

▼ATOK Passportについて詳しくはこちら