iPhone用ファームウェア2.2.1リリース

iPhone用のファームウェア2.2.1がリリースされましたね。

2.2.1

図1. 2.2.1

どうも、主にバグ修正みたいですね。さっそくインストールしてみました!

iPhone 2.2.1

図2. About画面

どこがかわったか、といわれるとよくわかりません… ^^;

WordPressで保存された履歴を削除し、さらに履歴を保存する数を制限もしくは無効にする方法

WordPressから記事をExportして、さらにImportすることがあります。WordPressでは、Exportすると
xmlのファイルになるのですが、これがサイズが大きいことがあります。中を見てみると、過去の版(履歴)も含まれています。
これは、exportしてimportしたときに、前のサイトでの編集の履歴までインポートできるので、便利な機能ではあるのですが、
記事を書いている最中にマメに「保存」「保存」とするとどんどん版がふえて、エクスポートファイルのサイズも
どんどん大きくなってしまいます。そこで、サイズの削減のために過去の履歴を削除することを考えてみます。

削除は簡単で、mySQLのサーヴァーに接続して下のコマンドを実行します。

DELETE FROM wp_posts WHERE post_type="revision";

テーブル名「wp_posts」は該当するものにかえてください。「接頭辞_posts」の形式です。重要なデータの場合は、念のため
実行する前にテーブルをバックアップしたほうがいいでしょうね。

ちなみに、あるサイトでこれを実行したところ、18MBあったエクスポートファイルが3.4MBになりました。1/6!

そもそも、なんでこんなにたくさんリビジョンを保存するのであろうか。必要あるのかしら? と思われた向きには、
保存する履歴の数を指定する機能があります。ただしWordpress 2.6以降のみ? 調査はしていません。

その方法は wp-config.phpに次のような行を追加するだけ。

define('WP_POST_REVISIONS', 数);

「数」に数字をいれると、その数だけにリビジョンが制限されます。0やfalseにするとリビジョンを保存する機能が
無効になるようです。

いやー、こんな定数があるなんて知らなかった…WordPressにはまだまだおもしろい機能がたくさんありそうです。

参考文献

  1. How to delete existing WordPress post revisions stored/saved, My Digital Life, 2008
  2. Disable and turn off post revisions tracking in wordpress 2.6 or above, My Digital Life, 2008
  3. How to store every post revisions on each auto save in wordpress with limit on versions count, My Digital Life, 2008

Blogger(blogspot.com)をよそへリダイレクトする方法

ウェブのURLを変更する場合、301リダイレクトをすると検索エンジンが「URLが変更になったんだな」と認識してくれることになっていますが、Bloggerからよそへひっこす場合、定番の.htaccessを使った方法やPHPのスクリプトを使う方法がつかえません。かわりの方法を試してみたのでメモしておきます。

手順は以下のとおり。

  1. 移転元のBloggerから、移転先のWordpressへ記事をインポートしておく。パーマリンクも同じにしておく。
  2. Bloggerの「レイアウト」「HTMLの編集」で、<header>と</header>の間に下記の2行をいれる。
    <meta content='0;url=http://your.new.blog.domain.com/newdir/' http-equiv='refresh'/>
    <meta name="ROBOTS" content="NOINDEX, NOFOLLOW"/>
    
  3. 同じくBloggerの「レイアウト」「HTMLの編集」で、「<b:section class=’main’ id=’main’ showaddelement=…」のすぐあとに以下のコードをいれる。
    <b:widget id='Redirector' locked='true' title='Blog Posts' type='Blog'>
    <b:includable id='main'>
    <b:if cond='data:blog.pageType == "item"'>
    <b:loop values='data:posts' var='post'>
    <script type='text/javascript'>
    var new_page=&#39;your.new.blog.domain.com/newdir/&#39;;
    var permalink = &#39;<data:post.url/>&#39;;
    var timestamp = &#39;<data:post.timestampISO8601/>&#39;;
    timestamp = timestamp.split(&#39;-&#39;);
    timestamp = timestamp[0]+&#39;/&#39;+timestamp[1];
    new_page = permalink.replace(/youroldblog.blogspot.com/20[0-9]{2}/[0-9]{2}/,new_page+timestamp);
    document.location.href = new_page;
    </script>
    </b:loop>
    </b:if>
    </b:includable>
    </b:widget>
    

このコードでは移転元と移転先のパーマリンクがwordpressでいうところの「/%year%/%monthnum%/%postname%.html」であるということを前提としています。ちがう場合は、timestampあたりを適当に修正してください。このコードは参考文献[1]をベースに、おかしいところを多少変更しました。

「1.」が案外むづかしい。ふつうにインポートすると、パーマリンクが保存されません。記事の数が多い場合は困るね。要検討です。

「2.」の meta http-equiv=’refresh’は正確には301リダイレクトにはなりませんが、Yahoo!やGoogleは転送前の時間が0または1の場合は301として、それより大きい場合は302として扱うそうです(参考文献[2])。なので、これでよしとしよう。

というわけで、ためしにやってみました。http://unixjp.blogspot.com/2006/05/blog-post.htmlにアクセスすると、http://narak.jp/wptest/2006/05/blog-post.htmlへリダイレクトされるようにしました。Google/Yahoo!が301扱いを
してくれているかどうかはわかりませんが….

参考文献

  1. How To Redirect Blogger Beta To WordPress.Com, laffers.net, 2007
  2. 301 Moved Permanentlyでウェブサイトを転送する方法, たんきゅうラボ, 2006

2008-2009年末年始の移動

このブログの読者の皆さん、あけましておめでとうございます。本年もどうぞよろしくお願い申し上げます。

というわけで、今年も年末年始は実家めぐりをしてきました。例によってガーミンのハンディGPSでとった移動の軌跡はこちら。

driving route: okayama - tottori - nagoya

図1. 2008-2009 移動の軌跡

いつのまにかGoogle Earthでgpxファイルが読めるようになっていたので、gpsbabelでガーミンからMacに取り込んだgpxファイルをそのままGoogle Earthに読み込まて、ゴニョゴニョしてできたのがこの画像です。青が2008年12月29日の岡山→鳥取、赤が2009年1月2日の鳥取→名古屋、オレンジが2009年1月5日の名古屋→岡山です。赤い線が琵琶湖の北から米原あたりまでとぎれているのは、ガーミンの電池がきれちゃったからです!

去年の年末年始の移動と比較すると、
多少経路がちがいますね。いちばんちがうのは愛知県から岡山県へ帰る経路で、今年は新名神が開通しているのでそちらを通りました。
経路で言うと、東名阪→新名神→名神→京滋バイパス→名神→中国道→山陽道です。新名神は設計速度がちがうので、大変快適でいいです。
去年とちがって途中で食事をしなかったのもあって、1時間以上短縮の3時間10分ぐらいで到着できました。青の岡山→鳥取は昼食込みで4時間弱、赤の鳥取→名古屋はトイレ休憩のみで7.5時間です。

ことしも鳥取では雪が降りましたが、去年と比較すると少なめ。

car and snow

写真1. デミオに雪

そんなわけで、今年は(も?)道中の積雪はまったく問題ありませんでした。しかし、今年はカメラをもって行くのを忘れたので写真があまりない! iPhoneしかなかったので…

stuffit.comが消滅、smithmicro.comへのリダイレクトに

今日気がついたんですが、いつのまにかstuffit.comがなくなっていました。で、smithmicro.comへのリダイレクトになっていて、
なんだそれ? 社名はAlladinじゃないの? とおもったら、Aladdin Systemsは2004年にAladdin Knowledge Systemsという他の会社から
なまえがかぶってるで! と言う訴訟を起こされて、Allume Systems
って言う名前に変更になってたらしい。知らなかった。さらにAllume Systemsは2005年にSmith Micro Softwareに買収された。えー、ぜんぜん知らなかった ^^;

Smith Micro Softwareってのは、FAXstfを作ってた会社らしい。これまた懐かしいかんじ。いまはもうMac OS Xの標準機能でFaxがついてますから、そういうソフトウエアは必要ないですね。

そんなわけでRARをMac OS Xで展開(解凍)する
内容が古くなっていたので、アップデートしておきます。ときどきチェックしないとダメだな ^^;

参考文献

  1. Smith MicroがAllume Systemsを買収, MAC REVIEW, 2005

autopagerize + firefoxが動かなくなった時の対処法

どうもここのところとっても便利なautopagerize(参考文献[1])が動かなくなっているようです。
うーん、なんで動かない!? のかなー? とおもっていたのですが、autopagerizeするための(次のページを取得するための)情報を
書いてあるサイトが落ちているのが原因のようです(参考文献[2])。

というわけで、対処しよう! 参考文献[2]によると、ご親切な方が問題のファイルを1日に1回コピーして置いておいてくれる
サーヴァーを作ってくださっているようなので、それを使わせていただきます。どうもありがとうございます。

修正のしかたですが、まずはメニューから「Tools」 -> 「Greasemonkey」 -> 「Manage User Scripts…」を選んで、
出てくるダイアログで「Edit」ボタンを押します。

autopage

図1. 「Tools」 -> 「Greasemonkey」 -> 「Manage User Scripts…」を選び

autopage2

図2. 「Edit」ボタンを押す

初めての場合は、編集するのに使うエディタをどれにするのか決めろ、と言われるので、適当に指定します。私はEmacsにしました。すると、「autopagerize.user.js」が指定したエディタで開くのでこれを修正します。31行目にあるここの部分

var SITEINFO_IMPORT_URLS = [
    'http://wedata.net/databases/AutoPagerize/items.json',
]

これを、以下のように修正します。

var SITEINFO_IMPORT_URLS = [
    'http://wedata.net/databases/AutoPagerize/items.json',
    'http://utatane.appjet.net/databases/AutoPagerize/items.json',
]

「http://utatane.appjet.net/databases/AutoPagerize/items.json」というのが、追加の行です。
参考文献[2]では、元のwadata.netをコメントアウトするようにしていますが、ソースの695行付近をみるとforeachしているので、
上記のように複数指定しておけば大丈夫です。修正が終わったらセーブします。

これでまたautopagerizeが動くようになりました! have fun!

参考文献

  1. Firefoxでしたまでスクロールすると自動でページをめくってもらえるスクリプト(AutoPagerize), がんちゃんのブログ, 2007
  2. thx !!! Constellation and negipo, The Whole World is peaceful., 2008

Mac OS X ソフトウェアアップデートがうまくいかない時の対処法

Mac OS X 10.5.6のソフトウェアアップデートが出ましたね。早速インストールしてみたのですが、どうもうまくいかない!
具体的には、ソフトウェアアップデートの適用のためにリブートしたあと、「インストールを構成中」 で止まってしまいます。
こんなときはどうしたらいいでしょうか? 結論は「ソフトウェアアップデートが自動でダウンロードしたファイルを消せばよい」です。
簡単ですが、ちょっと悩みました。

まず、ソフトウェアアップデートのログを見てみます。

Dec 17 13:17:43 amaterasu Software Update[228]: Calculated need 1373 MB; 171000 MB free.
Dec 17 13:18:04 amaterasu installdb[539]: started (uid 96)
Dec 17 13:18:04 amaterasu installdb[539]: Opened receipt database on '/' with schema 17.
Dec 17 13:18:09 amaterasu /System/Library/CoreServices/Software Update.app/Contents/MacOS/Software Update[528]: Calculated need 1086 MB; 171000 MB free.
Dec 17 13:18:12 amaterasu runner[540]: Administrator authorization granted.
Dec 17 13:18:12 amaterasu /System/Library/CoreServices/Software Update.app/Contents/MacOS/Software Update[528]: -[IFDInstallController(Private) _buildInstallPlan]: location = file://localhost
Dec 17 13:18:12 amaterasu /System/Library/CoreServices/Software Update.app/Contents/MacOS/Software Update[528]: -[IFDInstallController(Private) _buildInstallPlan]: file://localhost/Library/Updates/Mac%20OS%20X%20Update/Packages/MacOSXUpd10.5.6Patch.pkg
Dec 17 13:18:12 amaterasu /System/Library/CoreServices/Software Update.app/Contents/MacOS/Software Update[528]: -[IFDInstallController(Private) _buildInstallPlan]: file://localhost/Library/Updates/Mac%20OS%20X%20Update/Packages/MacOSXUpd10.5.6.pkg
Dec 17 13:18:12 amaterasu /System/Library/CoreServices/Software Update.app/Contents/MacOS/Software Update[528]: _installNextPackage of 1
Dec 17 13:18:12 amaterasu /System/Library/CoreServices/Software Update.app/Contents/MacOS/Software Update[528]: Software Update is intentionally skipping missing package: file://localhost/Library/Updates/Mac%20OS%20X%20Update/Packages/MacOSXUpd10.5.6.pkg
Dec 17 13:18:12 amaterasu /System/Library/CoreServices/Software Update.app/Contents/MacOS/Software Update[528]: Starting installation:
Dec 17 13:18:12 amaterasu /System/Library/CoreServices/Software Update.app/Contents/MacOS/Software Update[528]: Preparing volume "Macintosh HD" for installation
Dec 17 13:18:12 amaterasu /System/Library/CoreServices/Software Update.app/Contents/MacOS/Software Update[528]: Configuring volume "Macintosh HD"
Dec 17 13:18:13 amaterasu /System/Library/CoreServices/Software Update.app/Contents/MacOS/Software Update[528]: Preparing disk for local booted install.
Dec 17 13:18:13 amaterasu /System/Library/CoreServices/Software Update.app/Contents/MacOS/Software Update[528]: Free space on "Macintosh HD": 166 GB (179307053056 bytes).
Dec 17 13:18:13 amaterasu /System/Library/CoreServices/Software Update.app/Contents/MacOS/Software Update[528]: Create temporary directory "/private/tmp/MacOSXUpd10.5.6Patch.pkg.528TVUmz6"
Dec 17 13:18:13 amaterasu /System/Library/CoreServices/Software Update.app/Contents/MacOS/Software Update[528]: Running install actions
Dec 17 13:18:13 amaterasu /System/Library/CoreServices/Software Update.app/Contents/MacOS/Software Update[528]: Processing MacOSXUpd10.5.6Patch:
Dec 17 13:18:13 amaterasu /System/Library/CoreServices/Software Update.app/Contents/MacOS/Software Update[528]:  Determining files to install
Dec 17 13:18:18 amaterasu installdb[539]: done. (0.007u + 0.006s)
Dec 17 13:18:28 amaterasu /System/Library/CoreServices/Software Update.app/Contents/MacOS/Software Update[528]: /System/Library/Frameworks/WebKit.framework (version 5525.18.1.5525.18.1.55251801) was not installed because a newer version (5525.27.0.5525.27.1.55252701) already exists.
Dec 17 13:18:50 amaterasu /System/Library/CoreServices/Software Update.app/Contents/MacOS/Software Update[528]: /System/Library/CoreServices/RawCamera.bundle (version 2.0.10.2.0.10.4070000) was not installed because a newer version (2.0.11.410.0.0.4100000) already exists.
Dec 17 13:18:53 amaterasu /System/Library/CoreServices/Software Update.app/Contents/MacOS/Software Update[528]: /System/Library/CoreServices/CoreTypes.bundle/Contents/Library/RawCameraTypes.bundle (version 2.0.10.2.0.10.4070000) was not installed because a newer version (2.0.11.410.0.0.4100000) already exists.
Dec 17 13:19:11 amaterasu /System/Library/CoreServices/Software Update.app/Contents/MacOS/Software Update[528]:    ./Applications/iChat.app installed to /Applications/iChat.app
Dec 17 13:19:11 amaterasu /System/Library/CoreServices/Software Update.app/Contents/MacOS/Software Update[528]:    ./Applications/iCal.app installed to /Applications/iCal.app
Dec 17 13:19:11 amaterasu /System/Library/CoreServices/Software Update.app/Contents/MacOS/Software Update[528]:    ./Applications/Utilities/System Profiler.app installed to /Applications/Utilities/System Profiler.app
Dec 17 13:19:11 amaterasu /System/Library/CoreServices/Software Update.app/Contents/MacOS/Software Update[528]:    ./Applications/Utilities/Remote Install Mac OS X.app installed to /Applications/Utilities/Remote Install Mac OS X.app
Dec 17 13:19:11 amaterasu /System/Library/CoreServices/Software Update.app/Contents/MacOS/Software Update[528]:    ./Applications/Utilities/RAID Utility.app installed to /Applications/Utilities/RAID Utility.app
Dec 17 13:19:11 amaterasu /System/Library/CoreServices/Software Update.app/Contents/MacOS/Software Update[528]:    ./Applications/Utilities/Podcast Capture.app installed to /Applications/Utilities/Podcast Capture.app
Dec 17 13:19:11 amaterasu /System/Library/CoreServices/Software Update.app/Contents/MacOS/Software Update[528]:    ./Applications/Utilities/Migration Assistant.app installed to /Applications/Utilities/Migration Assistant.app
Dec 17 13:19:12 amaterasu /System/Library/CoreServices/Software Update.app/Contents/MacOS/Software Update[528]:    ./Applications/Utilities/Keychain Access.app installed to /Applications/Utilities/Keychain Access.app
Dec 17 13:19:12 amaterasu /System/Library/CoreServices/Software Update.app/Contents/MacOS/Software Update[528]:    ./Applications/Utilities/Console.app installed to /Applications/Utilities/Console.app
Dec 17 13:19:12 amaterasu /System/Library/CoreServices/Software Update.app/Contents/MacOS/Software Update[528]:    ./Applications/Utilities/Boot Camp Assistant.app installed to /Applications/Utilities/Boot Camp Assistant.app
Dec 17 13:19:12 amaterasu /System/Library/CoreServices/Software Update.app/Contents/MacOS/Software Update[528]:    ./Applications/Utilities/Bluetooth File Exchange.app installed to /Applications/Utilities/Bluetooth File Exchange.app
Dec 17 13:19:12 amaterasu /System/Library/CoreServices/Software Update.app/Contents/MacOS/Software Update[528]:    ./Applications/Time Machine.app installed to /Applications/Time Machine.app
Dec 17 13:19:12 amaterasu /System/Library/CoreServices/Software Update.app/Contents/MacOS/Software Update[528]:    ./Applications/System Preferences.app installed to /Applications/System Preferences.app
Dec 17 13:19:12 amaterasu /System/Library/CoreServices/Software Update.app/Contents/MacOS/Software Update[528]:    ./Applications/Spaces.app installed to /Applications/Spaces.app
Dec 17 13:19:12 amaterasu /System/Library/CoreServices/Software Update.app/Contents/MacOS/Software Update[528]:    ./Applications/Preview.app installed to /Applications/Preview.app
Dec 17 13:19:12 amaterasu /System/Library/CoreServices/Software Update.app/Contents/MacOS/Software Update[528]:    ./Applications/Photo Booth.app installed to /Applications/Photo Booth.app
Dec 17 13:19:12 amaterasu /System/Library/CoreServices/Software Update.app/Contents/MacOS/Software Update[528]:    ./Applications/Mail.app installed to /Applications/Mail.app
Dec 17 13:19:12 amaterasu /System/Library/CoreServices/Software Update.app/Contents/MacOS/Software Update[528]:    ./Applications/Image Capture.app installed to /Applications/Image Capture.app
Dec 17 13:19:12 amaterasu /System/Library/CoreServices/Software Update.app/Contents/MacOS/Software Update[528]:    ./Applications/Front Row.app installed to /Applications/Front Row.app
Dec 17 13:19:12 amaterasu /System/Library/CoreServices/Software Update.app/Contents/MacOS/Software Update[528]:    ./Applications/Expose.app installed to /Applications/Expose.app
Dec 17 13:19:12 amaterasu /System/Library/CoreServices/Software Update.app/Contents/MacOS/Software Update[528]:    ./Applications/Dashboard.app installed to /Applications/Dashboard.app
Dec 17 13:19:12 amaterasu /System/Library/CoreServices/Software Update.app/Contents/MacOS/Software Update[528]:    ./Applications/DVD Player.app installed to /Applications/DVD Player.app
Dec 17 13:19:12 amaterasu /System/Library/CoreServices/Software Update.app/Contents/MacOS/Software Update[528]:    ./Applications/Chess.app installed to /Applications/Chess.app
Dec 17 13:19:12 amaterasu /System/Library/CoreServices/Software Update.app/Contents/MacOS/Software Update[528]:    ./Applications/Calculator.app installed to /Applications/Calculator.app
Dec 17 13:19:12 amaterasu /System/Library/CoreServices/Software Update.app/Contents/MacOS/Software Update[528]:    ./Applications/AppleScript/Script Editor.app installed to /Applications/AppleScript/Script Editor.app
Dec 17 13:19:13 amaterasu /System/Library/CoreServices/Software Update.app/Contents/MacOS/Software Update[528]:    ./Applications/Address Book.app installed to /Applications/Address Book.app
Dec 17 13:19:14 amaterasu /System/Library/CoreServices/Software Update.app/Contents/MacOS/Software Update[528]:  It took 60.33 seconds to create the install plan for MacOSXUpd10.5.6Patch.
Dec 17 13:19:14 amaterasu /System/Library/CoreServices/Software Update.app/Contents/MacOS/Software Update[528]:  Configuring deferred files
Dec 17 13:19:14 amaterasu /System/Library/CoreServices/Software Update.app/Contents/MacOS/Software Update[528]:  Assembling temporary receipt
Dec 17 13:19:14 amaterasu /System/Library/CoreServices/Software Update.app/Contents/MacOS/Software Update[528]:  Performing pre-extraction actions
Dec 17 13:19:14 amaterasu /System/Library/CoreServices/Software Update.app/Contents/MacOS/Software Update[528]:  run preinstall script for MacOSXUpd10.5.6Patch

この最後の「run preinstall script for MacOSXUpd10.5.6Patch」というところが「インストールを更生中」に相当します。
よーくみてみると、途中に「file://localhost/Library/Updates/Mac%20OS%20X%20Update/Packages/MacOSXUpd10.5.6.pkg」
を参照しているところがあります。そのファイルを見てみると、

$ cd /Library/Updates/Mac OS X Update/Packages/
$ ls -l
-rw-rw-r--  1 iwa  admin       4677 12 16 09:07 MacOSXUpd10.5.6-10.5.6.dist
-rw-rw-r--  1 iwa  admin  159590776 12 16 09:12 MacOSXUpd10.5.6Patch.pkg

あれっ、ソフトウェアアップデートの画面では190MBだったのに(画像はとり忘れた!)、このMacOSXUpd10.5.6Patch.pkgはちょっと小さい感じですね。約150MB。というわけでこれを消します。

$ rm /Library/Updates/Mac OS X Update/Packages/*

そして、ふたたびソフトウェアアップデートにダウンロードさせてみると、

$ cd /Library/Updates/Mac OS X Update/Packages/
$ ls -l
total 390928
-rw-rw-r--  1 iwa  admin       4677 12 17 14:50 MacOSXUpd10.5.6-10.5.6.dist
-rw-rw-r--  1 iwa  admin  200142930 12 11 08:37 MacOSXUpd10.5.6Patch.pkg

やはり…サイズがちがいます。一度ダウンロードしたソフトウェアアップデートのファイルが壊れていると、手動で削除してやらない限り回復できないようです。つまり、サイズのチェックも、チェックサムによる内容のチェックもしていない? ちょっとお粗末な気がしますが…

というわけで、じゃーん。というほどでもないけど!

About This Mac 10.5.6

あー、ちゃんと10.5.6になってよかった…

ソフトウェアアップデートがちゃんと適用できない時の対処法まとめ

  1. /Library/Updates/Mac%20OS%20X%20Update/Packages/の下にあるソフトウェアアップデートのダウンロードファイルをすべて消す。
  2. もういちどソフトウェアアップデートをかける。

Tap Defence攻略法

iPhone/iPod touch用のゲームアプリケーションで「Tap Defence」というのがあります。けっこうおもしろくてしばらくやっていたのですが、「画期的な攻略法」(というかネタバレ?)を思いついたのでメモしておきます。楽しくゲームしたいひとは見ない方がいいかも。いや見た方がいいかも。どっちだ。よくわかりません。クリアするだけなら簡単です。

tap defence

図1. Tap Defence

ゲームはよくある「Defenceもの」(というのがあるかはわかりませんが)です。敵はスタート地点から出てきて道にそって歩いていくので、その周りに攻撃用の施設をつくってやっつけます。敵がゴールにたどり着くまでにぜんぶやっつければOKです。20匹の敵にゴールを許すとゲームオーバーです。一定数的をやっつけるとレベルが上がります。全部で43レベルあります。

tap defence

図2. Tap Defenceプレイ画面

敵を一匹やっつけるごとに幾ばくかのお金がもらえますので、そのお金を使って攻撃用の施設をつくります。手持ちのお金には毎レベル終了時に利息がつきます。利率は始めは10%ですが、特定のレベルをクリアするともらえる「halo」というのを使って利率を上げることができます。始めにつくることのできる攻撃用の施設は3種類ですが、「halo」をつかってより強力な武器を開発することもできます。スコアのつき方はよくわからないのですが、基本的にはレベル終了時に持っているお金の1/20ぐらいがスコアとして加算されるっぽいです。

要は「いかにお金を稼ぐか」がポイントになります。敵をやっつけてもたいしたお金は得られないので、利息狙いになります。

というわけで、作る設備が弱すぎては敵にゴールされてしまうし、かといってたくさんつくりすぎるとお金がなくなるし、というトレードオフに悩むのがこのゲームのキモなのです。しかし、じつは、「ARROWS」のレベル3をつくるのに必要なお金は「12+30+65=107」なのですが、そのレベル3のARROWSを売ると108ゴールド手に入るのです…

Tap Defence

図3. ARROWSのお値段

というわけで、レベル2以降はステージ開始時にARROWSのレベル3をつくって、敵を全部やっつけると同時に全部売り払うとよいです。暇な人は、3万回ぐらい売り買いを繰り返すといきなり3万ゴールドぐらいになりますから、利息がつけば雪だるま式にスコアがふくれあがって、あこがれのネットスコアにも載ることができますね!

クリアするだけならば、レベル30ぐらいまでは「ARROWS」を大量につくれば難なくクリアできますから、そこまでの「halo」は全部「利率」につっこんで、十分お金が貯まったら道の始めの方に「STORM」のレベル3を4個ぐらいおけば残りのステージもオッケーです。簡単ですね!

Tap Defence

図4. たわむれに「MAGIC」と「EARTHQUAKE」をおいてみました!

まとめ:Tap Defence攻略のコツ

  1. ステージのはじめに「ARROWS」のレベル3をつくり、ステージが終わる前にぜんぶ売る。
  2. ハイスコアを狙わずにクリアするだけの場合、適当なところで「STORM」レベル3をたくさんつくると楽。
  3. ハイスコアを狙う場合は、ごく初期のステージ(レベル2)で何回もARROWSを売り買いしてお金を貯め、「halo」はすべて利率につぎこむ。

というわけで、お楽しみあれ!

2008/12/12追記: Version1.1になってarrowsの売却価格が変更になってこの技は使えなくなったみたいです。残念?

installation error with cocoa emacs

MacPortsでcocoa版emacsをインストール…できない?

よくみてみたら、手元のマシンにMacPortsのemacsが入っていなかったので、何となく入れてみることにした。
ほかのemacsがインストールされてるから、emacsそのものはもう入ってるんだけど。いまはいってるのは
どうやってインストールしたものだったかはわすれた。たしか、MacPortsじゃなくて、gnuからもってきて自分で
コンパイルしたやつだったかな?

インストールは簡単。「$ sudo port install emacs-app 」だもんね。ちょーかんたん。って….あれ?

$ sudo port install emacs-app
--->  Fetching emacs-app
--->  Verifying checksum(s) for emacs-app
--->  Extracting emacs-app
--->  Configuring emacs-app
--->  Building emacs-app
Error: Target org.macports.build returned: shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_aqua_emacs-app/work/emacs-23.0.0_NS-9.0rc3/nextstep" && ./compile " returned error 1
Command output:       _tty_raw_cursor_to in term.o
      _tty_raw_cursor_to in term.o
      _tty_clear_to_end in term.o
      _tty_clear_to_end in term.o
      _tty_clear_to_end in term.o
      _tty_clear_frame in term.o
      _tty_clear_frame in term.o
      _tty_clear_frame in term.o
      _tty_clear_end_of_line in term.o
      _tty_clear_end_of_line in term.o
      _tty_clear_end_of_line in term.o
      _tty_clear_end_of_line in term.o
      _tty_ins_del_lines in term.o
      _tty_ins_del_lines in term.o
      _tty_ins_del_lines in term.o
      _tty_ins_del_lines in term.o
      _tty_ins_del_lines in term.o
      _tty_ins_del_lines in term.o
      _tty_ins_del_lines in term.o
      _tty_ins_del_lines in term.o
      _tty_ins_del_lines in term.o
      _reset_sys_modes in sysdep.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
make[1]: *** [temacs] Error 1
make[1]: *** Waiting for unfinished jobs....
make: *** [src] Error 2
*** Compilation failed. ***
Please examine the above output to determine what went wrong,
edit the configure options in this script ('compile') to fix it, and rerun.

Error: Status 1 encountered during processing.

いやん、なんでコンパイルできないのかしら…? ほかのマシン(iMac G5, MacBook Air)では問題なくできたんだがなあ。
考えられるのは、成功したマシンははじめから10.5、今回失敗したマシンは10.4からアップグレードした10.5ってことぐらいかな?
まあ、emacsがないわけじゃないからいいかとりあえず… ^^;

参考文献

  1. GNU Emacs, The GNU Operating System
  2. The MacPorts Project

「Apple 超コンパクト USB 電源アダプタ交換プログラム」の対策品が来ました

というわけで、9月24日に申し込んだ「Apple 超コンパクト USB 電源アダプタ交換プログラム」ですが、ちゃんと10月10日に発送されて、10月11日土曜日に配送されました。なかなかすごい。届いたパッケージはこんなの。

Apple iPhone 3G USB Charger

写真1. 届いたパッケージ

本当は、対策済みの品物を配送する同時に古いものを回収したかったようですが、わたしが不在で家人が対応したので、当然なんのことかわからず、荷物だけおいていったようです。中身はこんなかんじ。

Apple iPhone 3G USB Charger

写真2. 過剰包装…?

なんか、過剰包装じゃないかって気もしますが、これ以上小さくても運送会社もこまるのかなあ? たいていの荷物は60サイズが最小ですしね。はかってみたらこの荷物は49cmでした。

せっかく新旧ふたつの電源アダプターがあるので、並べて写真を撮ってみました。

iPhone USB Power Adapter

写真3. 新旧電源アダプター

よく似ていますが(当然?)、よく見ると差し込み部分の形状がちがいますね。

Apple iPhone 3G USB Charger

写真4. 左が新、右が古いもの

緑の●がついていて、差し込みプラグ部分の先端が細くなっている左側が新しいものです。型番は新旧でかわらず「Model No. A1265」です。この緑●印はあとからステッカーを張ってあるわけじゃなくて、はじめから印刷されているようです。製造番号などの文字の改行位置が変更されていますね。なかなかこっているというか….?

プラグの金属部分を手でちょっと引っ張ってみましたが、対策品とそうでないものとのあいだに強度の違いは感じられませんでいた。でもたぶん、内部の構造が変更されているんでしょうねえ。誰か分解してみた人はいませんか ^^; ちなみに古いほうは10日以内に返送しないといけないそうです。まだ交換を申し込んでいない人は、感電する前に交換してもらいましょうね!