Google App Engine に登録してみた
秋元@サイボウズラボ・プログラマー・ブログ: Google App Engine SDKを使ってみたを見て、早速、Google App Engine に申し込んでみました。とくに今何か作りたいものがあるわけではないのですが、とりあえず……。
事始め
- http://appengine.google.com/ にアクセス。
- google アカウントでログイン。
- 空きが出来たらメールしてくれるということで、Definitly をクリック。
- Download the SDK - Google App Engine - Google Code から、プラットフォームに合わせて Google App Engine SDK (Windows なら GoogleAppEngine.msi)をダウンロードしてインストール。
- デフォルトでは、「
C:\Program Files\Google\google_appengine\」にインストールされる。 - Python 未インストールなら、別途ダウンロードしてインストール。
- デフォルトでは、「
- 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 が含まれていれば、そこで改行されます。以下の記事も参照。
- Project N: 025 - Subtitle フィルタの複数行サポート(AviSynth v2.57 以降)
- 複数行の文字列を Subtitle フィルタ形式に変換する JavaScript
- 複数行の文字列を Subtitle フィルタ形式に変換する AvsP 用マクロ
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++入門講座」を買ってみた。
毎日コミュニケーションズ
2007-11-15
ロベールのC++入門講座を読んで C++ を初歩の初歩から再入門するよ - 前編 - ひげぽん OSとか作っちゃうかMona-で紹介されていた「ロベールのC++入門講座」を買ってみました。
この本は、ロベールの部屋のC++講座を本にまとめたものだそうです。ロベール本の解説 - Cozy Ozy を見て、その厚さに多少のためらいを覚えましたが、半ば衝動的に amazon.co.jp でポチッとな。ちょうど「独習C++」が読み終わりかけだったというタイミングの良さもありました。
まだ読み始めたばかりなので、とくにこれといった感想はありません。とりあえず年内には読み終われるようにしたいと思います。
翔泳社
2002-11
あまびき開発日誌 #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 商品検索サイト「あまびき」の開発中につけていたメモを、ブログ用にまとめ直したものです。





