Google App Engineのhelloworldで、いきなり躓く

Mac, Python, Web No Comments »

ClipMenu 0.3.2のリリースも済んだので、Google App Engineの勉強を開始。ClipMenuのウェブサイトを、GAEを使って作成しようと計画中なのです。Djangoを利用すれば、多言語化したサイトができそうなので。

まずは、スタート ガイドのチュートリアルをしようと、App Engine SDKの1.1.7をインストール。helloworldで必要なファイルを作成し、dev_appserver.pyを実行したら、いきなり躓きました。

AttributeError: 'module' object has no attribute 'HTTPSHandler'

初っ端からエラーが出ると、テンション下がっちゃうよ。

たぶん同じ問題に遭遇した人がいるだろうと、Google Groupsで検索。予想通り、解決策が示されていました。

どうやら、必要なPythonのライブラリが足りていないようです。MacPortsでpy25-socket-sslをインストールすると、無事にdev_appserver.pyでウェブサーバーが起動しました。

そのサーバーの出力を見てみると、まだImportErrorが出ている模様。

Could not initialize images API; you are likely missing the Python "PIL" module. ImportError: No module named PIL

ついでにpy25-pilもインストールしておこうと思ったら、今度はインストールの途中でエラーが。

unable to execute -DNDEBUG: No such file or directory
error: command '-DNDEBUG' failed with exit status 1
Error: Status 1 encountered during processing.

またググってたどり着いたのがこちらのページ。

leopardにtrac – studio suncrest

ただ、言及先を見てみても、よくわからない。Pythonをインストールし直したりするのも、ちょっと嫌だし。とりあえず、もう一度試してみようと、zshの履歴からコマンドを再実行してみたら、なぜか成功しちゃった!

% sudo port install py25-pil                                               
Password:
--->  Building py25-pil with target build
--->  Staging py25-pil into destroot
--->  Installing py25-pil 1.1.6_0
--->  Activating py25-pil 1.1.6_0
--->  Cleaning py25-pil

どこが問題だったのか、ちょっと釈然としないんですが、ともかくApp Engineのチュートリアルが進められるようになって助かりました。

有益な情報、ありがとうございました!

ClipMenu 0.3.2 リリース

Mac, ソフトウェア 1 Comment »

クリップボード履歴定型文を利用できる、Mac OS X用ユーティリティ、ClipMenuのバージョン0.3.2をリリースしました。

「修飾キー + クリック」に、アクション割り当て

履歴のメニュー項目上で、修飾キーを押しながらのクリックに、さまざまな機能を割り当てられるようになりました。

修飾キー + クリックの設定

環境設定の「アクション」から、設定を変更できます。

初期状態では、Control + クリックに、「アクションメニューをポップアップ」だけが割り当てられています。上のスクリーンショットでは、そのほかの修飾キーにも、それぞれアクションが割り当てられています。

アクションメニューのポップアップは、従来は、Shift + クリックに割り当てられていました。以前のキーの組み合わせがお好みでしたら、こちらで設定を変更してください。

また、マウスの右ボタンクリックは、Control + クリックとして機能します。

スニペットの読み込み/書き出し

登録したスニペットを、まとめて読み込み/書き出しできるようになりました。

スニペットの読み込み/書き出し

環境設定の「スニペット」画面の左下、フォルダの削除ボタンの右隣にある、歯車のアイコンをクリックすると、メニューが表示されます。このメニューから、読み込みと書き出しを行えます。

フォーマットはXML形式なので、エディタやスクリプト言語などで簡単に加工できます。文字列の一括置き換えなどは、こちらの方法で行うと便利だと思います。

スニペットの読み込みは、既に登録したスニペットに追加する形になります。

主な変更点

  • メニュー項目上での「修飾キー + クリック」に、アクション割り当て機能を追加。
  • アクションメニューの呼び出し方法の初期設定を、「右クリック」、「Control + クリック」、「Control + Enter」の3種類に変更。
  • XML形式でスニペットを、読み込み/書き出しする機能を追加。
  • 履歴数の初期値を、50から20に変更。
  • キー入力でアクションメニューがポップアップされなかった問題を修正。
  • ステータスバーのアイコンを非表示にする際の問題を修正。

ダウンロード

ダウンロードはこちらからどうぞ。

» ClipMenu – naotaka.com

Command + V の送信の仕方を変更

Cocoa, Mac, ソフトウェア 9 Comments »

ClipMenuでメニュー項目を選択すると、ペーストするために、Command + v を送信するようになっています。これまでは、Cocoabuilderで紹介されていたCarbon APIを使っていました。

CGPostKeyboardEvent( (CGCharCode)0, (CGKeyCode)55, true );      // command key down
CGPostKeyboardEvent( (CGCharCode)'v', (CGKeyCode)9, true );     // 'v' key down
CGPostKeyboardEvent( (CGCharCode)'v', (CGKeyCode)9, false );    // 'v' key up
CGPostKeyboardEvent( (CGCharCode)0, (CGKeyCode)55, false );     // command key up

でも、これだと、Shiftキーを押しながらメニュー項目を選択すると、Command + v ではなく、Command + Shift + v が送信されてしまいます。CGPostKeyboardEventを呼び出した時点で押し下げされているキーと混ざってしまうんですね。

これまでは問題なかったんですが、新しく、「修飾キー + クリック」にいろいろな機能を割り当てられるように変更したので、問題が生じるようになりました。

そこで、Xcode 3.1のAPIリファレンスを検索してみると、どうもCGPostKeyboardEvent関数の利用は非推奨になっていて、代わりにCGEventCreateKeyboardEvent関数の利用がおすすめのようです。

こちらを使えば、キーボードイベントの作成と、そのイベントをカスタマイズしてからイベントシステムへの送信ができるようになるそうです。対応環境は、Mac OS X 10.4以降と、新しめのAPIですね。

早速試してみました。CGPostKeyboardEventと同じように、command down → v down → v up → command upという手順で呼んでみると、うまく動かない?そこで、CocoabuilderでCGEventCreateKeyboardEventを検索してみると、Dave DeLongさんの質問から始まった二つのスレッドを発見。

DeLongさんは、数時間悪戦苦闘し、思いつく限りググった末に質問を投稿されたようです。お陰で、この関数の使い方が解りました。感謝です!

修飾キーの入力はそれ用のイベントを作るのではなく、CGEventSetFlags関数を使って、文字キーの入力イベントに追加する形にすれば良いんですね。修正したコードは、こうなりました。

CGEventSourceRef sourceRef = CGEventSourceCreate(kCGEventSourceStateCombinedSessionState);
if (!sourceRef) {
    NSLog(@"No event source");
    return;
}
CGEventRef eventDown, eventUp;
eventDown = CGEventCreateKeyboardEvent(sourceRef, (CGKeyCode)9, true);      // v key down
CGEventSetFlags(eventDown, kCGEventFlagMaskCommand);                        // command key press
eventUp = CGEventCreateKeyboardEvent(sourceRef, (CGKeyCode)9, false);       // v key up
CGEventPost(kCGSessionEventTap, eventDown);
CGEventPost(kCGSessionEventTap, eventUp);
CFRelease(eventDown);
CFRelease(eventUp);
CFRelease(sourceRef);

同じスレッドに、CGPostKeyboardEvent関数を使った方法も掲載されていました。Keyboard Maestroの作者さんの投稿?

Cocoabuilder – (Peter N Lewis) Re: Posting Keyboard Events

CGEnableEventStateCombining関数で、キーやマウスの状態を、アプリケーション側で生成するイベントに混ぜ合わせるかどうかを切り替えられるようです。ただ、こちらの関数も、今は非推奨の扱いになっているようで、Mac OS X 10.4よりも古いバージョンに対応させる必要がなければ、積極的に使わない方が良さそうです。

Quartz Event Servicesのリファレンスをざっと眺めてみましたが、キーボードやマウスに関するイベントが作れるので、結構重宝しそうです。

日本のアマゾンの4割引で洋書が買えた

No Comments »

先日Amazon.co.ukで注文した洋書。日本のアマゾンと比べてみたら、差額が9,245円と、なんと4割も安く買うことができました!

Amazon UKで購入した洋書

今回イギリスのアマゾンで購入した洋書は、以下の5点。

洋書の合計価格が£72.55、送料の合計が£19.94の、総計£92.49。一部ギフト券の割引を使ったんですが、クレジットカード会社の請求予定額から計算してみると、1ポンドが約146.14円のレートのようです。このレートで総計を日本円に換算してみると、13,516円で、Amazon.co.jpで買った場合の合計金額22,761円よりも、9,245円もお得になります。

日経新聞で英ポンドが対円で急激に安くなっているとの記事を見て、ブックマークしておいた購入希望の洋書をBookFind.jpでチェックしてみると、Amazon UKで大幅に安い値段になっている本が結構見つかりました。

ただ、いくら円高でも、安くなりすぎな気がして、Amazon.co.ukにアクセスしてみると、理由が判明。洋書が最大半額セールを実施中で、売れ筋の本はさらに最大65%オフと、大バーゲンセールになっていました。

そんなわけで注文した洋書ですが、もう本日到着しました。あちらから発送されたのが、11月17日、日本到着が11月22日ですから、なんと5日で届いたことになるんですね。

Amazon UKの梱包箱

選んだ発送方法は、もっとも安価なAirmail。Amazon.co.ukのヘルプページの説明によると、5-7 daysになってますから、まさに表記通りの到着時間みたいです。「2-4 days」となっている、最速のPriority Expressにしたら、本当にあっという間に到着しそうな勢いですね。

これまで、古書以外の洋書の個人輸入は、もっぱらAmazon.comを利用していました。でも、あちらは一番安い「Standard Shipping」が「18 to 32 business days」です(実際は、もっと早く届いたりもしますが)から、値段と到着までの日数を考えると、Amazon UKも結構お得かもしれませんね。

Amazon UKの梱包箱 2

梱包も、外箱はちょっと傷んでましたが、中身の方は無事で安心しました。内容物が揺すっても動いてしまわないように、緩衝材でしっかり固定されているのが良かったようです。一つだけ、Outliersの帯にしわが寄っていましたが、日本のネット書店でもあることなので、このくらいは許容範囲でしょう。

Amazon.co.ukで洋書を買うのは初めてだったんですが、こちらでは米国のアマゾン(最安送料の場合)にない利点がありました。オーダーのページにある「Track your package」ボタンを押すと、日本でできるのと同じように、発送した荷物の追跡ができるのです。今まで注文した洋書が届かなかった経験はないんですが、やはり荷物がどうなっているかを確認できるのは安心できて良いですね。

今はかなりお得な時期みたいですから、洋書購入をお考えの方は、Amazon.co.ukもチェックしてみてはいかがでしょうか?

その際は、日米英のアマゾン洋書価格を比較できる「BookFind.jp」が便利です ;)

» BookFind.jp – 洋書価格比較サイト

Win2MacでClipMenuが紹介されてました

Mac, ソフトウェア No Comments »

MACお宝鑑定団 blogさんで、Win2Macという新しいMac情報サイトができたとの情報を拝見し、早速アクセスしてみました。

Q&AやITmediaのニュースの他に、オンラインソフトの紹介記事もあるようです。運営会社がVectorなので、Vectorライブラリに登録してあるものしか掲載されていないのかと思いましたが、ライブラリ登録ソフト以外もちゃんと紹介されているんですね。

まだスタートしたばかりなので、オンラインソフト一覧のページ数も少なくて、全ページを読み進めていると、最後のページでClipMenuを発見!

どなたのお陰かは存じませんが、ご紹介ありがとうございました。 :)

もう少しバージョンが上がったら、Vectorライブラリへの登録申請もさせてもらう予定です。

メニュー項目上で、右クリックが補足できた

Cocoa, Mac, Slicehost, ソフトウェア, ハードウェア No Comments »

ClipMenu 0.2 のリリース以来、アクションメニューを右クリックで呼び出せないのが不満でした。

これまで何度試しても、ClipMenuの履歴項目上での、マウスの右ボタンクリックや、Controlといった修飾キーを押しながらのクリックが全く補足できませんでした。

今日もいろいろと試行錯誤しても解決せず、一応捕捉できるNSEventの情報だけでも確認しておこうとしたところ、なんと、きちんと右クリックの入力が捕捉できているではないですか!修飾キーの検出の方も、問題なし。

以前書いて、コメントアウトしていたコードなので、使い方が間違っていたわけでもなさそうですし、ちょっと驚きました。思い当たることといえば、TigerからLeopardに開発環境を変えたからでしょうか。

何はともあれ、これでアクションメニューの呼び出し方法を、これまでの「Shift+クリック」から「マウスの右クリック」や「Control+クリック」に変更することができます。

以前Travellers TalesのHiroさんも仰っていましたし、こちらの方が自然な入力方法だと思います。

クリックの方は shift+クリックではなく、ctrl+クリックにしたら、マウスの右クリックやトラックパッド2本タッチ+クリックで呼び出せるようになるでしょうか。

CLCLにも近づけますしね :)

テスト版をアップしましたので、興味のある方はお試しください。

» ClipMenu 0.3.2a

ClipMenu 0.3.1 リリース

Cocoa, Mac, ソフトウェア 7 Comments »

Mac OS X用クリップボード・ユーティリティ、ClipMenuのバージョン0.3.1をリリースしました。

前回リリースしたClipMenu 0.3.0には、PowerPC搭載機で環境設定が開けない重大な不具合がありました。Power Mac、PowerBook、iBookをお使いの方は、お手数ですが、問題の修正された、新しいバージョンへの更新をお願いします。

また、ご要望いただいた設定項目も追加してあります。

通常なら、履歴項目上でアクションを呼び出すと、登録したアクションがメニューとしてポップアップされます。新しく追加した設定をオンにし、アクションを一つしか登録していなければ、メニューのポップアップなしにアクションを即実行できます。

「プレーンテキストとしてペースト」など、いつも特定のアクションしか使用する予定がない場合などにご利用ください。

主な変更点

  • PowerPC搭載のMacで、環境設定画面が開けなかった問題を修正。
  • 登録したアクションが一つだけだった場合は、メニューをポップアップせず、即座にアクションを適用できる設定を追加。
  • ツールチップの表示/非表示を選択できる設定を追加。
  • 環境設定画面の設定項目の整理。

ダウンロード

ダウンロードはこちらからどうぞ。

» ClipMenu – naotaka.com

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS ログイン