Notes: AppleScript による XML-RPC で、受信した日付情報が勝手に変更される

ひとつ前の記事 でご紹介した対策を施しても、Kaku での WordPress の記事の日付表示が一向に直らないので、さらに調べてみたところ、AppleScript で行う XML-RPC で受信した日付情報がおかしくなってしまう不具合を見つけました。

問題

  • (舞台裏での XML データの受信は問題ないようだが、)受信した XML データを AppleScript 内で使えるよう変換を行う際、すべての日付情報("«data isotXXXX...»" という形のデータ。中身は ISO 8601 形式)に、UTC であることを表すためのタイムゾーン指定子 Z を付加してしまう。
  • かと言って、前述の記述情報を date 型に変換("... as date")しても、UTC の指定が考慮されるわけではなく、ローカルタイムとして(Z が付いていないときと同じように)扱われる。

対策

  • 直接的なものはない。XML-RPC に AppleScript を使わないようにするしかない。

date 型に変換したとき UTC の指定が考慮されないのはまだしも(もともとそんなのには対応していなさそうだし)、isot が受信されたデータを忠実に保持してさえいてくれれば、文字列に変換して、いくらでも処理できるのですが…。もとの情報は正確に送られてきている(後述)ので、もったいない不具合です。

以下では、(ここまで読めば分かる人もいるかもしれませんが)なぜ WordPress だけ直らないのかを説明しておきます。

“Notes: AppleScript による XML-RPC で、受信した日付情報が勝手に変更される” の続きを読む

【Kaku 開発】ほぼ完成。でも…

以前 Kaku のスペックとして、「Panther 対応」を 掲げて いましたが、そこだけは守れそうにありません。申し訳ないです。

「Panther 対応」を掲げた理由は、以前公開させていただいた「 l2i 」が、どうも(恐らくOS が)Panther (であることが原因)で動作しない、という ご報告(記事後半) を受け、「Tiger 専用である必要のないソフトが Tiger でしか使えないのはイカンなあ」と思い直した(当たり前ですが)からです。

そして、ソフトに広い互換性を持たせる方法として、ビルド設定を調整すればよい、というところまでは分かってきたのですが、ビルドし直そうとしたときにエラーが出まくって、とても難しい、といったことを以前書いたと思います。

しかし、それは非常に単純な勘違いであることに最近気付きました。仕組みをよくわかっていないためよく間違えるのですが、「プロジェクト設定とターゲットの設定は別」ということをすっかり忘れていて、プロジェクト設定だけをいじっていたのです。

そして、ターゲットの設定もきちんとしてビルドを実行すると、すんなりビルドが完了します。それを Panther 上で起動すると、やはり起動してもすぐ終了してしまうのですが、コンソールのエラーメッセージを読むと、Cocoa Binding で Panther では用意されていないパラメータにバインドしているために、エラーが発生しているケースがほとんど(これまでに公開した他のソフトも)ということがわかりました。これで(バインディングが使えないとちょっとツラいですが)、Kaku どころか、これまでに公開した他のソフトの互換性も確保できそうな気がしてきました。

…しかし、Kaku にはひとつ落とし穴があって、Cocoa Binding やらなんやらの前に、ツールバーを使ってしまっているのです。AppleScript Studio でツールバーを使えるのは、Tiger に搭載されている バージョン 1.4 以降 。たいして便利なツールバーを作れるわけでもないのに Tiger からしか使えない、というのはなんともアホらしいですが、これが AppleScript Studio の仕様です。

なんとなく、ツールバーの部分を Cocoa/Objective-C で書き直せばいけそうな気がしますが、それにもちょっと勉強が必要なので、今回は早く公開することを優先したいと思います。すみません。汗

【Kaku 開発】やりすぎなメインカテゴリ設定機能

最近よく「Mac ソフトらしい」という、微妙な発言を連発している気がしますが、そのくせ、先日 公開 させていただいた「Kaku」の開発中の画面は我ながら何とも言えない感じだったので(汗)、かなり修正を加えました。ちょっとは Mac ソフトらしくなったのではでしょうか…?


通常画面


オプション画面をすべて表示

ひとつ前の記事 で書いた通り、Kombine 社 の、ロイヤリティフリーのツールバーアイコン を採用しています。お陰で、実際よりすごいソフトに見えます。このぶんだと、自作するであろう、アプリケーションアイコンが負けること必至です(涙)。

“【Kaku 開発】やりすぎなメインカテゴリ設定機能” の続きを読む

ブログクライアント「Kaku」を作ってます。

ソースどころか、このサーバにアップロードしていたバイナリファイルまで紛失(あるいは元々アップロードできてなかった?)したブログクライアントソフト「 Kaku 」を、いちから開発し直し中です。もちろん、紛失したといっても、当時の Kaku はほぼ実験バージョンと言ってよく、ダウンロードされた方はほとんどいない(!)と思いますので、影響は大きくないと思っていますが…

こんどの Kaku は、(以前のものと比べると多少は)ダウンロードする価値のあるものになると思います。はじめにスペックや特徴を挙げると:

  • 対象 OS:MacOS X 10.3(Panther)以降(対象 OS バージョンを引き下げ)
  • 対象 ブログシステム:Movable Type・WordPress(そのほか、Movable Type で使える API: Blogger/MetaWeblog/Movable Type に対応しているシステムなら、動作可能かも)
  • マルチアカウント・アカウント内の複数ブログ(Movable Type など)対応。
  • プレビュー, WYSIWYG 編集機能, 画像アップロード支援機能などは、今のところなし(涙 まあ自分はこれでもいいのですが)
  • 世界で稀にみる AppleScript で書かれたブログクライアント(これは名誉か? それとも…笑)

そして画面デザインは、(今のところ)こんな感じです:


基本画面。なんもなし


全てのオプションを表示

いまなぜわざわざ自分でブログクライアントを作っているかというと、Kaku の紹介ページ にも書いたように、単純に一つ「Movable Type の記事の『出力ファイル名』をデスクトップから変更したい」というのが最初の動機ですが、それ以外にも:

  • (現在使っている) ecto の新バージョンがなかなか出ない ※しかし、「まもなく」出ることは出るようです。作者さんは ウェブサイト で、最新バージョンである 2.4.2 が、バージョン 2.x 系の最後のバグフィックスリリースになる、と おっしゃって います。期待しています。

  • ecto の動作があやしい。 ちゃんと投稿できているのに「処理中」表示が止まらなかったり。これは実害はないのですが、通信が成功すればただポジティブなレスポンスが、成功しなければネガティブなレスポンスがかえってくるだけのはずであり、どうしてこんな状態になるのか理解に苦しみます。また、WordPress への移行後は、記事のカテゴリの取得に失敗して止まってしまいます。WordPress の XML-RPC 実装に問題がある、というようなことも聞きますが、Kaku のテスト版では問題なく取得できます。

  • Qumana が Java だから (ごめんなさい)省略せずに書くと、「Mac で使えるブログクライアントとして、 Qumana という選択肢もありますが、『クロスプラットフォーム』を謳うソフトによくある Java プログラムで、無理に『Aqua スキン』を被せたユーザーインターフェースは、好き嫌いが分かれる。」そして僕は「嫌い」のほうです。普通に Windows 版と同じデザインにできるようにしてくれれば、使ってみたいです。ちなみに、これもカテゴリを取得できません(通信エンジンの問題?)。

で、Mac 用のブログクライアントといえば、もう一つ忘れてはならないのが「 MarsEdit 」ですが、あれ…? 最近 ecto の画像アップロード機能を使ってないから特に不便を感じない…むしろ調子いい! やっぱり自作する意味なしか(涙) …いや、さんざん不満を言っても、彼らを超えることは全くできないでしょうが、ちょっとやってみます。

開発の進み具合は、通信部分はだいぶ前から出来上がっているのですが、それをどういう形で GUI につなげるか、というところで、自分の能力をかなり超えることをやろうとして、しばらく開発が滞っていましたが、それではいつまでたってもリリースできず、つまらないことになってしまいますので、自分の分をわきまえて(涙)できる範囲でやろうと思っています。

Kaku は、現時点では BathyScaphe プロジェクト開発覚え書き で出会った、RBSplitView を採用しています。何も知らずに NSSplitView を自力でコントロールしようとしていたので、ひときわありがたみが分かります(涙)。作者さんに感謝します。

FlightGear 最新版とオブジェクト指向

たいへんご無沙汰しております。

FlightGear Alterenative をダウンロードしにお越し下さった方はご存知かもしれませんが、Win / Linux 環境ではすでにリリースされている、FlightGear v0.9.10 の正式版が、そう遠くないうちにリリースされそうです。

これは、Mac ユーザーも最新バージョンの FlightGear をプレイできる、というほかに、私が作ってきた FlightGear Alternative が、あんまし意味がなくなる、ということでもあります。それは、RubyCocoa という開発環境を使って、これまでとてもシンプルだった、Mac 版の起動ランチャが改良されているからです。

といっても、まだ機能的にかぶらない部分もありますし、現在 MacOS X 版公式サイトで配布されている開発途上版や、旧バージョンをお使いの方もいるかもしれないので、完全に意味がなくなるのはまだ先かもしれませんが、これから FlightGear Alternative をダウンロードされる方は、頭の端にでも置いておいてください。

“FlightGear 最新版とオブジェクト指向” の続きを読む

サイトの変改造を試みる

最近このサイトを改造しようと、インデックステンプレートやスタイルシートの一部をちょこちょこ書き換えたり、あるいはデフォルトのものを全部消して、一から書き直してみたりしていたのですが(ちょうどそういう時にお越しいただいた方、すんません…汗)、挫折してしまいました。

一番いいのは、テンプレートもスタイルシートも、すべて自分の手で、納得がいくように作ることだと思いますが、それだと、私の技術力では何年かかるか分かりません。またその場合、最初からサイト全体の完成イメージを持っていなくてはなりません。しかし私はサイトづくりに限らず、途中であれもしたい、これもしたい、ところころ気が変わってしまう方なので、それは一番苦手な分野…。

かといって、デフォルトの状態から少しずついじっていくのも、自分の思っているようなデザインにするために、あの複雑なテンプレートやスタイルシートのどこを変更したらいいのか探す手間がかかるし、すべてをコントロールしきれていない感じがしてイヤなのです。

そこで(要は自分の精神衛生の問題なのですが)、「基本はデフォルトだが、自分の変更した部分をみどりいろに染める」という、変な改造をすることにしました。サイトがみどりに「侵食」されていくイメージ。実際、みどりの部分は、新しいクラスを作って、デフォルトのスタイルシートの設定をキャンセルするようにしてあり、みどりの部分はデフォルトの部分とは存在となっています。で、サイト全体がみどりに染まったら(いつになるかは分かりませんが)、それを最終版として仕上げればよいと(途中でこれ自体がこのサイトのスタイルになってしまう可能性もありますが…)。

というわけで、少しはサイトの改造が軌道に乗りそうです。

Developing simpl.icio.us…

昨日、del.icio.us クライアント「simpl.icio.us」を開発しているというお話を書きましたが、今朝、ようやく検索窓を追加してみました。きのうスクリーンショットは掲載しませんでしたが、こんな感じになっています:

Screenshot Simpl.Icio.Us Searchfeatureadded-1

…まあ、まさにシンプル、ほぼ何もない状態ですが、検索機能を追加しただけでも、自分にとってはかなり使える感じになってきました。

“Developing simpl.icio.us…” の続きを読む

脱線

先日リリースさせていただいた FlightGear Alternative v1.3.7 ですが、「ドロップされた機体/シーナリを所定のフォルダに入れる」という、シンプルな機能の追加でありながら、前回のアップデートから1ヶ月以上も費やしてしまいました。このひと月のあいだ、私があちらこちらに脱線していたせいです。

何に脱線していたかというと:

  • レンタルサーバーを借りてみた
  • レンタルサーバーに Movable Type をいれてみた
  • Subversion を使い始めてみた
  • del.icio.us を使い始めてみた
  • さすがにデフォルトのままでは公開できないので、Movable Type のカスタマイズ方法を最低限勉強してみた

そして、この脱線の中から、ひさびさに2本新作アプリを作っています。まだ公開できる状態ではありませんが…

“脱線” の続きを読む