お知らせ: にーやんのブログ 2 に移転しました。こちらのブログは、2009 年末までに削除します。

スポンサード リンク

Google App Engine に登録してみた

秋元@サイボウズラボ・プログラマー・ブログ: Google App Engine SDKを使ってみたを見て、早速、Google App Engine に申し込んでみました。とくに今何か作りたいものがあるわけではないのですが、とりあえず……。

事始め

  1. http://appengine.google.com/ にアクセス。
  2. google アカウントでログイン。
  3. 空きが出来たらメールしてくれるということで、Definitly をクリック。
  4. Download the SDK - Google App Engine - Google Code から、プラットフォームに合わせて Google App Engine SDK (Windows なら GoogleAppEngine.msi)をダウンロードしてインストール。
    • デフォルトでは、「C:\Program Files\Google\google_appengine\」にインストールされる。
    • Python 未インストールなら、別途ダウンロードしてインストール。
  5. Google App Engine のドキュメント(Developer's Guide とか Google App Engine Articles 読む(予定)。

リンク

関連記事

mojimoji 関数を更新

テキストの移動と拡大縮小を行うための関数 mojimoji を更新しました。変更点は、以下のとおりです:

変更点

  • 複数行の文字列に対応(2.57 以降の場合のみ。Subtitle 向けの書式に変換する必要あり)
  • x/y が -1 の時に中央寄せされてしまう問題に対処(回避策)
  • グローバル変数名の変更(変数名の衝突をなるべく回避するため)
  • パラメータの順番の変更(x2, y2 が指定されていない場合は移動なしが可能に)
  • mojimojiOvr 関数(テスト版)を追加。

ダウンロード

mojimoji関数: テキストの移動と拡大縮小からダウンロードできます。

変更点に関する補足説明

複数行の文字列への対応

lsp パラメータが指定可能になっています(デフォルトでは lsp = 0)ので、文字列内に \n が含まれていれば、そこで改行されます。以下の記事も参照。

x/y が -1 の時に中央寄せされてしまう問題

Subtitle では x と/または y を -1 に設定すると中央揃えされるので、x と/または y が -1 の時は強制的に 0 になるようにした。

mojimojiOvr 関数(テスト版)

ConditionalReader を使ってテキストを移動させるバージョン。移動、ズームのほかにフェードにも対応。

実験目的で作っただけのものです。ConditionalReader の使用例として参考になるかもしれません。

注意

  • パラメータの順番を変更したため、以前の書式で記述されたものはそのままでは使用できません。ご注意ください。
  • mojimojiOvr はテスト版であり、ちゃんと動作するかどうかもわかりません。また、今後更新する予定もありません。

Subtitle フィルタにとって -1 は魔法の値

Subtitle フィルタで x と/または y の値を -1 に設定すると自動的に中央揃えされるという話。少し古いネタですが、整理していたら出てきたのでメモ。

IanB 氏曰く、この -1 は「魔法の値」だそうです。

What is causing a glitch at frame 294 in my script? - Doom9's Forum

Originally Posted by documentation

... The parameters x and y can be set to -1 to automatically calculate and use the horizontal or vertical center coordinate.

Ahhhgggg magic values

このことは Subtitle フィルタのマニュアルにも書かれていますし、Subtitle 単独で使用する場合にはすぐに気づくと思います。ただし、Subtitle を Animate などと組み合わせて使用する際には、意図せず x と/または y に -1 が入ってしまうケースもあるかと思います(逆に偶然 -1 が入らないケースもあるでしょう)。

BlankClip(5, 320, 240)
Animate(0, 4, "Subtitle", "'-1' is a magic value.",2,-1, "'-1' is a magic value.",-2,-1)

このスクリプトを VirtualDub や AvsP を使ってコマ送りしてみてください(5 フレームしかないので、再生すると一瞬で終わってしまいます)。ちょうど x の値が -1 になるフレーム 3 で、テキストが急に中央に移動します。y の値は -1 で固定させていますので、そちらでも -1 がどういう働きをするかを確認できると思います。

対処法

いくつか対処法が考えられます。

  • メッセージの頭にスペースを付け足して、-1 よりも大きい値をスキップし、直接 -2 から開始する(What is causing a glitch at frame 294 in my script? - Doom9's Forum より IanB 氏のアイデア)
  • ラッパー関数を用意して、x または y が -1 の場合は、0 または -2 にする(完全な解決にはなりませんが、簡単な次善の策として)。
  • Animate ではなく、Overlay と ConditionalReader の組み合わせにする(ConditionalReader で ol_x_offset/ol_y_offset を定義して移動させる)。
  • 絶対に -1 にならないようにする(例えば、大きめのクリップを用意して最小値が -1 より大きくなるようにし、あとでいらない部分を Crop する、など)。

対処例

2 番目のラッパー関数を使う方法を示します。

まず次のような関数を用意します。

# 簡単な Wrapper 関数の例
function SubtitleWrapperTest(clip input, string moji, int x, int y) {
    # x が -1 なら 0 に設定、それ以外ならそのまま
    x = (x == -1) ? 0 : x # 0 でなく -2 にしてもよい
    # y が -1 なら 0 に設定、それ以外ならそのまま
    y = (y == -1) ? 0 : y # 0 でなく -2 にしてもよい

    # 新しい x と y を Subtitle の引数に指定
    output = input.Subtitle(moji, x, y)

    # output 返す
    return output
}

ここでは簡略化のために size や font などの設定は省略しています。よって、このままでは実用的ではありません。Animate との併用時にはフォントなどは固定でしょうから、関数の中でデフォルト値を設定してしまってもいいでしょう。

BlankClip(5, 320, 240)
Animate(0, 4, "SubtitleWrapperTest", "'-1' is a magic value.",2,-1, "'-1' is a magic value.",-2,-1)

Subtitle の代わりに用意した関数を指定します。コマ送りしてみると、フレーム 3 で少し停止したような印象を受けるかもしれません。しかし、中央揃えされるよりはいいでしょう。

これはあくまでも回避策ですので、他の方法も試してみてください。ちなみに mojimoji 関数: テキストの移動と拡大縮小の mojimoji ではこのラッパー関数を利用する方法を、mojimojiOvr では 3 番目の Overlay と ConditionalReader を併用する方法を使っています。

関連記事

ラッパー関数について

「ロベールのC++入門講座」を買ってみた。

ロベールのC++入門講座を読んで C++ を初歩の初歩から再入門するよ - 前編 - ひげぽん OSとか作っちゃうかMona-で紹介されていた「ロベールのC++入門講座」を買ってみました。

この本は、ロベールの部屋のC++講座を本にまとめたものだそうです。ロベール本の解説 - Cozy Ozy を見て、その厚さに多少のためらいを覚えましたが、半ば衝動的に amazon.co.jp でポチッとな。ちょうど「独習C++」が読み終わりかけだったというタイミングの良さもありました。

まだ読み始めたばかりなので、とくにこれといった感想はありません。とりあえず年内には読み終われるようにしたいと思います。

あまびき開発日誌 #34, #35, #36

あまびき開発 34 日目、35 日目、36 日目。

34 日目

これまでは検索フォームの角を丸くするために jQuery の corner.js プラグインを使用していたが、CSS と画像を使って角を丸くすることにする。JavaScript を使わなくてもいい部分はなるべく使わないようにするためと、画像を使ったほうがより凝ったデザインにできるため。

いろんな方法があるようだが、とりあえず Another attempt at CSS rounded-corner dialogs using the sliding doors technique を試してみる(via. CSSで角をもっと丸くする方法いろいろ - GIGAZINE)。

今日は画像を作成したのみ。

35 日目

  • お取り置き欄に取り消しボタンとクリアボタンを追加。
  • ヘルプメニューのリンクを JavaScript で後から生成するようにした。

36 日目

34 日目(上記参照)の続き。

画像は、廉価版が出た時に買った Paint Shop Pro 7 を使って作成。幅を短めにしてしまったせいで何度か作り直したりした末に、何とか完成。

代わりに corner.js の使用を停止。


この記事は、Amazon.co.jp 商品検索サイト「あまびき」の開発中につけていたメモを、ブログ用にまとめ直したものです。

Page 6 of 78: « 2 3 4 5 6 7 8 9 10 »