Flickr に雪を降らす - soundscape outより。Flickrのtips、というかイースターエッグみたいな感じ。
http://www.flickr.com/photos/19431561@N00/2635347967/?snow=1みたいな感じで、FlickrのURIの最後に?snow=1を付けると画面に雪が降ってきます。
たったそれだけで他には何もありませんが、こういうちょっとした遊び心は好きです。
Flickr に雪を降らす - soundscape outより。Flickrのtips、というかイースターエッグみたいな感じ。
http://www.flickr.com/photos/19431561@N00/2635347967/?snow=1みたいな感じで、FlickrのURIの最後に?snow=1を付けると画面に雪が降ってきます。
たったそれだけで他には何もありませんが、こういうちょっとした遊び心は好きです。
アップルが"iTunes 2008" 年間トップソング全100曲をまとめてプレゼントキャンペーンをやってます。抽選で10名に今年のトップ100曲(1曲200円として20,000円相当)のダウンロードコードがプレゼントされるようです。これは応募しないと損でしょう。
昨日5限の授業をサボって西武対SKの試合を見に行きました。シリーズ全戦を4000円で見られるお得なパスポートがあったので、これを使いました。西武は初回にチャラ尾さんのタイムリーで先制、先発帆足も1回裏を完璧に押さえるピッチング。
で、問題の2回裏。SKの4番の打球はどうみてもファール、なのに平然とベースを駆け巡る打者走者。そして審判が手をぐるぐる回す本塁打のジェスチャ。完全なる誤審に、サード中村が猛抗議。手を大きく広げて「ファールだろ」と主張。審判団が集まるも、球審が再び本塁打のジェスチャ。渡辺監督が飛び出してきて、通訳なしで抗議。ああ、そういえばナベQは台湾にいたから中国語が話せるんですね。うらやましい。
結局、西武は1点差で負け。残念で仕方ありません。今日は勝ってくれることを願うばかりです。
先月公開したMixiMeは、PyObjCを使って作ったものです。PyObjCってのはObjective-CとPythonを結ぶブリッジの役割を担っていて、これを使うとCocoaアプリケーションをPythonで書けるようになります。うれしいことに、PyObjCはLeopardで標準搭載されていて、Xcodeからも簡単に使うことができる。
もちろん、1つのCocoaアプリケーションの中でObjective-CのコードとPythonのコードを共存させることもできる。実際にMixiMeでは、日記をmixi側に送信する部分はPythonで書いてるけど、パスワードをキーチェーンに保存したりする部分はObjective-Cで書いてある。PythonオブジェクトをCocoaオブジェクトのように扱うこともできるので、両方の言語のコードで上手く連携して作業することができる。
Pythonコード中のIBOutletなインスタンス変数もちゃんとInterface Builderで認識してくれるし、かなり便利。
少し前の話だけど、Yahoo!がYahoo! Open Strategy (Y!OS)を公開。次の3つのコンポーネントから構成されたプラットフォームらしい。
このなかで注目なのはYahoo! Application Platform (YAP)。これは自分で書いたアプリをYahoo!のインフラ上で公開できるってもの。そう、GoogleのGoogle App EngineのYahoo!版みたいな感じ。ちなみにGAEがPythonなのに対し、YAPはPHPを使ってアプリを書く。すでにSDKも公開されている!。まだドキュメントを詳しく読んでないから細かいところはよくわからないけど、どうやらブラウザベースのオンライン開発環境も提供されるみたい。これは期待できるかも。
mixi日記を投稿するための個人的便利ツール、MixiMeを公開します。
MixiMeはステータスバー(画面右上のいろいろ並んでるところ)常駐型のアプリで、メニューから日記投稿画面を呼び出すことができます(投稿画面は上スクリーンショット参照)。機能は至ってシンプルです。
ダウンロード(Leopard専用)
前のエントリでクリックボタンがなくなったのは残念って書いたけど、どうやら新MacBookシリーズのトラックパッドはそれ全体がクリックボタンらしい。なるほど、そうきたか。
ドラッグ操作も、トラックパッドを押し下げながらもう一つの指でパッドをなぞってカーソルを動かす。感覚的には旧モデルと同じように操作できそうです。
MacBook、MacBook Air、MacBook Proが揃ってアップデートされました。デザインはいろいろと言われてるみたいですが、個人的に一番気になるのはすべてのモデルでマルチタッチジェスチャがサポートされたこと。しかも新ジェスチャ「4本指スワイプ」も追加されたとか。
普段MacBook Pro Early 2008を使ってるので、マルチタッチの素晴らしさはよくわかってます。とくにスワイプはSafariの履歴操作がすごく楽になるので重宝してますし、Thousandでもスワイプでタブ切り替えができるようにしています。4本指スワイプが追加されるということは、スワイプ操作に2つのアクションが割り当てられるってことでしょうから、これは歓迎すべき。標準では横4本指スワイプはアプリ切り替えに割り当てられてるらしいです。
ただ、クリックボタンが廃止されたのはいただけない。トラックパッドによるドラッグ&ドロップは今でもしっくりこないので、システム環境設定でオフにしてクリックボタンでやってる。トラックパッドはそんなに大きくなくてもマルチタッチは充分できるんだから、クリックボタンはつけてほしかった。
ディスプレイの解像度を(dpiで)取得しようと思ったんだけど、なんかそれっぽいAPIがない。CocoaもCore Graphicsにもない。ググってみても、なかなか見当たらないと思ったら…。ADCのTechnical Q&Aに載ってました:How can I programmatically determine the DPI of the current video mode?。
読んでみると、ディスプレイの物理的なサイズ(mm)をIOKitで得て、スクリーンのサイズ(pixel)からdpiを求めるという、なんとも言えない荒技にでてます。解像度を得るためだけにIOKitをリンクするのはなんか躊躇ってしまう。ていうかこういうのって単一のAPIとして提供さるもんではないんでしょうかね…。
Google Updater経由でGoogle App Engine 1.1.3をインストール。Google App Engine Blogによると、zipimport、zipserveモジュールがサポートされたり、アプリのコンソールからMemcacheの内容が見られるようになったり、URLFetchのリダイレクトを回避できるようになったらしい。
このうち、zipserveってのはzipアーカイブ内にあるファイルを静的ファイルとしてアクセスできるようにするもの、らしい。ということは、画像リソースを全部zipにまとめておいて、/images/foo.pngみたいなリクエストがあればそのzip内からfoo.pngを探し出して返すことができるようになる。まだドキュメント読んでないから間違ってるかも。
iTunes 8の目玉機能、Geniusによるプレイリスト生成機能を試してみた。もともとライブラリが少ないので(500曲いかないくらい)なかなか適用できる曲が少ない中、みつきの『ひとつだけ』がヒットした。選曲はこんな感じ。
うーん、すごく微妙な組み合わせ。ライブラリが小さいので、Geniusも選ぶのに必死なんでしょう。ちなみに100% (hundred percent)
はiTSでフリーダウンロードだった曲。ほとんど聞いてないけど、この機会に聞いてみます。
Safari 3.1の隠し設定として、シングルウインドウモードがあることを知りました。target="_blank"が指定されてるリンクをクリックしても新しいウインドウを開かずに新しいタブで開くようになります。設定方法はplistを設定するだけ。下のコマンドをターミナルから実行すればオッケー。
defaults write com.apple.Safari TargetedClicksCreateTabs -bool true
Safari 4 Developer Previewでできるかどうかは未確認。
HMDTの木下さんの新しい本、たのしいCocoaプログラミング[Leopard対応版]が出ていました。前にこの本のTiger版を読んだのですが、そのときに気づいたのがプログラミング初心者でも抵抗なく読めるところ。今までのCocoa入門本だと、Cの知識を既に持っていることを前提としているものがほとんどだったのに、たのココではCの説明も(必要なところだけ)本の中に含んでいて、前提知識なしで読み進められるので、プログラムを書いたことのない人にはピッタリなんじゃないかなと思いました。そして何より軽かった(内容がじゃなくて、体重計に置いたとき)。
Leopard対応版はまだ買っていませんが、LeopardではInterface Builder周りが完全に新しくなったので、そのためだけにも買う価値はあるかも。もうだいぶ慣れたとはいえ、まだまだ戸惑うし。
世間ではGoogle Chromeで騒いでおりますが、For Macはまだらしいです。一応ベースの部分はできてるらしいですが、UI周りがまだまだということらしいです。できてる部分のビルド方法は公式Wiki内のBuild Instructions (Mac OS X)に載ってます。コードのチェックアウトに1時間以上かかった上、ビルドしたらエラーが1万個以上でましたが。
さて、そんなことはどうでもよくて、ちょっと前にgaedtってのが登場しました。Google App Engine開発のためのEclipseプラグインです。GAEの開発をEclipseでガシガシやろう、ということらしいです。リンク先のWikiにできることがスクリーンショット付きで書かれていますが、ざっとこんなところです。
ちなみに、普段使ってるAptana Studioでは使えませんでした。素のEclipseではもちろん使えます。ただ、今のところそれほど便利ってわけでもないような。GoogleAppEngineLauncherを使えば同じようなことができますし、わざわざAptana Studioを捨ててまで使うようなことはなさそうです。
Google App EngineのMemcache APIのドキュメント(めっちゃ量少ない)を読もうとしたら隣の部屋で妹が騒ぎだした。どうやら見ていたドラマ「太陽と海の教室」が中断して臨時ニュースに入ったらしい。なんでも福田首相が辞めるとか。まだ会見聞いてないから何にも言えないけど、とりあえずうちのことえりが「福田主将」って変換するのはそういう仕様なのかどうなのか…
SafariでGearsが使えるようになったみたいなので、早速入れてみた。で、気づいたことをちょっと書きます。
まず、Safari 4 Developer Previewでは使えないっぽい。普通にインストールできるし、一見問題なく動いてるようだけど、Google Readerで試してみたらフィードのダウンロードが0%のまま動かなかった。Safari 3.1.2に戻したらちゃんと動いた。
あと、これInputManagerから侵入してる。Internet Plug-insとダブルで攻めてる。深く検証してないけど、このInputManagerプラグイン(GearsEnabler.bundle)は他のバンドルを読み込むだけっぽい。中にはGearsEnablerとGearsLoaderっていう小さなクラスが2つあるだけだしね。
Google Readerをオフラインで使ってみてるけど、過去に取得したフィードをオフラインで閲覧できるのはなかなか便利。ただ、オフラインにするとフィード検索ができなくなる。これじゃあReaderの魅力半減だよね…
Yahoo!(米国の方。YJは使わないので)にログインしたら、左側のサービス一覧のメニューの一番上になぜかY! Korea(Yahoo!韓国)が出現。一応Yahoo! IDの住所はJapanになってるし、なんでこんなのが出てくるんでしょうか…
LeopardからはNSMenuItemにsetView:
メソッドが追加されて、任意のNSViewをメニューに追加できるようになりましたが、ここで1つはまりました。
メニューアイテムにNSTextFieldを設定してみたら、テキストフィールドは表示されるものの、テキスト入力ができない。そういう仕様なんだろうか、と思ってリファレンスを覗いてみても何も書かれていない…。と思ったら、Application Menu and Pop-up List Programming Topics for Cocoa : View in Menu Itemsにしっかりとkeyboard events are not supported
って書かれてました。だめじゃん。メニュー内でテキストフィールドを使いたければ、これまで通りウインドウを生成して偽メニューでがんばるしかないのかも。がっくし。
いまさらながら、Google App Engineを使ってみました。なかなかネタが思いつかなかったんですが、急上昇キーワード - 思いつき Lab.のGoogle急上昇ワードの非公式APIを使ってランキング表示するアプリを作ってみました。ホットなトレンドを提供するから名前はHotrend。
PythonもDjangoも初めて使ったんですが、なかなか使いやすくていい感じです。今回のアプリはユーザ認証もデータストアも使ってないんですが、Djangoホスティングサービスとしても価値があるんじゃないでしょうか。
追記:ドメイン取りましたので、URLを書き換えました
少し前の話になりますが、Yahoo!が運営するソーシャルブックマークサービスdel.icio.usがDelicious.comとしてリニューアル再登場しました。
自分はdel.icio.usのNetworkやSubscriptionsをよく利用していましたが、新しいDelicious.comではこれが日付ごとに分けて表示されるようになっていて、とても見やすくなっています。保存数の表示のされ方も変わって、多ければ多いほど濃い青になっていくので一目でわかりやすい。なかなかいいリニューアルなんじゃないでしょうか。
ただ、Delicious.comのトップからワンクリックでNetworkやSubscriptionsに飛べなくなったのは痛い。Networkは「People」、Subscriptionsは「Tags」を一度クリックしてからじゃないと選べないってのは改悪じゃないかなー、と思ったり。
慣れの問題もありそうなので、もうすこし様子を見てみることに。
iPhoneもiPod touchも持ってないのに無料アプリをダウンロードしてるのは俺だけじゃないはず。iPhone Simulatorで動いたらいいなーとかほんの少しだけ思ってたけど無理でした。
……touch買おうかしら。
Safari 4 Developer Previewがいつの間にか出てた。ADCから(Onlineメンバーシップでも)ダウンロードできるので、ちょっと試してみました。
まず、FileメニューにSave as Web Application...
ってメニューが増えた。その名の通り、Webページをアプリケーションとして保存できる。
試しにGoogle リーダーを保存してみた。SafariでGoogle リーダーを開いて、さきほどのメニューを選ぶだけ。保存ダイアログで付けた名前がアプリケーション名になる。保存されたアプリケーションを起動すると、ウインドウいっぱいにGoogle リーダーが表示された。ツールバーとかタブバーのないSafariのような感じ。使い勝手はSafariと一緒。
少し試した感じだと、同一ドメイン内(この場合だと*.google.com)へのリンクは保存されたアプリケーション内で開かれ、それ以外のリンクにはデフォルトブラウザで開かれるみたい。今回の例だと、画面左上のGmail
をクリックするとアプリケーション内の新規ウインドウでGmailが開かれるけど、外部へのリンク(登録しているRSSの記事など)をクリックするとSafariが起動して開かれる。なかなか便利かもしれない。
ちなみに、保存したアプリケーションのアイコンはそのページのスクリーンショットになっています。ただ、小さくてわかりづらい。
動きとしては、Mozilla Prismに似てます。こういうのとGearsみたいなのを組み合わせれば面白くなりそうなんですが。
Baseball Boss:野球が大好きじゃなくても大好きになるゲームを読んで、Baseball Bossっていう野球のオンラインゲームを試してみた。一言で言うと、野球チームのオーナーになってチームを強くするゲーム。選手は実在するメジャーリーガー(2007年データ)で、自分のチームを作ると最初からある程度の人数が登録されてる。英語だけど、なかなか楽しめます。
で、その最初から登録されてる選手の中に、Hiram Bocachicaってのがいるじゃないですか。あの現西武のボカチカです。多分。打撃能力はやたら低くなってます。守備走塁はそこそこ高め。大好きな選手だけど、残念ながらもっと優秀な右翼手がいたので使ってあげられません。
ちょっとIKImageBrowserViewが使ってみたくてImage Kitをいじってみた。IBのライブラリパネルからImage Kitを選んでImage Browser Viewをぺったんこすればはい完成。すばらしい。
ただ、IKImageBrowserViewは背景が白色なのでHUD Windowに貼付けるとちょっとダサい。というわけで背景を透明にしたいんですが、リファレンスを眺めてもそれらしきメソッドが見当たりません。でもImage Kitをclass-dumpしてみると、setBackgroundColor:っていうビンゴなメソッドが見つかったので、これに[NSColor clearColor]みたいな透明色を渡してあげれば一丁前に仕上がります。
あと、IKImageBrowserViewにはズームのためのスライダをつけるのがお約束ですが、これもやっぱりHUD Windowの上にそのまま載っけるとアレなので、格好良くいたしましょう。さっきdumpした中身を眺めると、IKGraySliderっていうこれまたわかりやすい名前のクラスが見つかるので、IBからスライダのクラスをIKGraySliderに設定すればHUDにピッタリなスライダが出来上がります。
このIKImageBrowserView、URLを渡すと自動的に画像を読み込んでくれたりして便利なんですが、今のところiPhotoのようなマルチタッチ操作には対応していないようで、そこは残念。これは自前で実装しろってことなのかな。
こんなところでしょうか。意外と少ない。前のマシンでずっとFirefoxを使ってたので新しいMBPにも入れてみたんだけど、なんかSafariのほうが使いやすいんで最近使ってないです。QuicksilverはランチャとしてだけならSpotlightで代用できそうなのでとりあえず見送ってみました。
あと、AIR。まだまだアプリが少ないけど、面白そうだから入れてみた。AdobeのサイトでいくつかAIRアプリが公開されてますが、なかなか面白いっす。まだまだ数は少ないけどこれから増えていくことでしょう。SDKもダウンロードしてみたけどまだ中身は見てない。
DockにiChatとAdiumとSkypeが並んでるとなんか悲しさを感じて仕方ないんですが…。同じようなアプリが3つあるって無駄だよなあ。
注文していたMacBook Proが予定より早く、23日に到着しまして、それからいろいろと触ってみたんだけど、すばらしい。
まず速い。PowerMac G4 400MHzからの乗り換えなので、格が違うって言葉がぴったり当てはまるくらいに速い。iTunesがこんなに軽快なアプリだなんて知らなかったよ。Xcodeの補完候補が虹色グルグルなしで出てくるなんて信じられない。
ついでにマルチタッチもすばらしい。3本指によるナビゲーションは一度使うとやめられなくなってしまう。SafariやFinderではもう3本指操作がないと使えないわ。逆にXcode使ってると3本指が使えないのでイライラしてしまってしょうがない。
あと、Leopard。Pantherからの乗り換えなので、Tigerからの新機能だって新鮮に感じるんです。DashboardとかSpotlightとか。Spacesはあんまり出番なし。Time Machineはオフ。新しいInterface Builderはなんか変わりすぎてまだ慣れてない。Xcodeはめっちゃ使いやすくなってる。リファクタリング機能なんていつの間についたんですか。
あと、QuickLook。買う前は「便利なんだろーな」って思ってたけど、実際あんまり使わないわ。ファイルはとりあえずCotEditorにドロップするっていう癖が抜けないせいだけど。
フレームワークも充実してる。ImageKitは面白い。今更だけど、Core Dataも面白そう。
おとといMacBook Proの梅を注文しました。HDDを50GB分プラスして、学割で22万ちょっと。あとApple Remoteもつけた。いつの間にか別売りになってたんですね。
で、昨日出荷された。ヨーロッパからはるばる飛んでくるらしいんで、到着は24日頃らしい。コイツがくれば、Thousandの最新版が使えるよーになるわけですよ。