ばぐとらぶごる

開発者もすなるぶろぐといふものを、エンバグ野郎もしてみむとてするなり。

伺かアドベントカレンダー2010 超非公式怠惰まとめ

アドベントカレンダーだって!リア充爆発記念日がこんなに待ち遠しい年はいままでなかったよ!!


以下各記事リンクとツッコミ。指定日に書けないひとはワタクシが代理でボッシュートの上起動不能にいたしますわよオホホホホホ。

20101205 Nikola Tesla

http://home.384.jp/evidence/cgi-bin/archives/98.html

「エラーログを見ないと損するよ!」

ツッコミ:超簡単に言うとエラーログの左側のアイコンは「信号機」です。とりあえずせめて赤いのだけは悪いことは言わないから今すぐ直しておきましょう、ホント。

  • 緑はまあどっちでもいいよ的な通知
  • 黄色は何か妙なところがあったけどとりあえずよきにはからっておきましたということ
  • 赤は何か大事なものを失ったからすぐ見やがれ!とガチで文句言ってる

20101206 Wiz★

http://d.hatena.ne.jp/wiz-stargazer/20101206/1291568897

華和梨で\wを自動挿入してみた」

ツッコミ:スコープが変わる瞬間(\0\1が来たところ)はウエイトを多めに仕込むよう機能拡張すると良いかもね。うちもこういう簡易自動挿入コードはいっぱい書いた記憶があります。AYAならうちや整備班のゴーストの中の辞書をとっちらかしてみると幸せになれます。たぶん。

20101207 Fine Lagusaz

http://blankrune.sakura.ne.jp/blog/archives/12136

「各種入力への反応のしかた」

ツッコミ:どうしてもシステム系イベントへの反応が無理っぽいならもうメニュー無効にして非対応とするしかないのかな…。ネットワーク更新反応を除いて全無効とか。もっとも、個人的に私はあまりいい顔はしませんが。

たとえばひとつのアイデアとして、メールチェックイベントにはヘッダ情報が流れてきてるので、spamくさいメールに反応して「マンションの郵便受けに突っ込まれた多量のチラシに悪態をつきながら分別するキャラ」とか生活感あふれるひどい仕込みもできますよ。

20101208 普通人みかん(渦音P)

http://d.hatena.ne.jp/fm7743/20101208/1291814352

http://d.hatena.ne.jp/fm7743/20101209/1291842513 (補足)

「いま話題の低画像サイズダイエットがすべてわかる」

ツッコミ:画像を切ってエレメント合成する操作は、その昔「ぺたぺた」で自動だったんですよね…。仕組みは画像を比較して違う部分を自動抽出、それを囲む矩形を計算し、左上の合成座標と共に割り出してsurfaces.txtとPNGファイルに書きこむ、と。

画像再圧縮は私はコマンドラインの自作ツールでやってます。PNGの場合単にデータ領域を掃除するだけでなく要らない「チャンク」を切るのもわずかですがサイズが小さくなるので。

20101209 ユスラ -> 20101224へ

ボッシュート!)

20101210 そずべねぐ

http://d.hatena.ne.jp/sozubenegu/20101210

「OnUpdateOther対応」

シャザイ:うちのゴーストは全面的に対応してないぜいえやっふー!!!!!

20101211 yasi

http://members2.jcom.home.ne.jp/mydimension/ukatips.htm

「便利機能盛り盛りゴースト」

ツッコミ:計算式は任意精度演算(多倍長演算)したいんですけどねー。うちの技術力のなさでまだ実現できてません…。ちなみにWindows標準の電卓は実はすげえぞ。

キッチンタイマーhttp://ghost-dev.g.hatena.ne.jp/ponapalt/20080927 を利用するとOnSecondChange依存なしにできてもうちょっと幸せになれます。

20101212 しまりす

http://nekonekofc.blog85.fc2.com/blog-entry-747.html

「画像入りメニューを作ってみよう」

ツッコミ:テキスト以外の要素を選択肢にする\__qがミソですね。実際この記事と同じことをするために実装した仕様ですから。もっとも、アンカーと同じ様式で選択肢を書けるのは覚えやすいかもしれません。

20101213 NOB

http://d.hatena.ne.jp/nobml/20101213/1292174411

「AYAのarrayとparallelで楽々特殊ランダムトーク

ツッコミ:さて、if文で複雑にフラグ分岐させたい場合が実はさらにひとひねりが要ります。ちゃんと分岐させたい、でも各トーク共に同じ確率で出るようにしたい場合、


RandomTalk : nonoverlap
{
parallel NormalTalkArray
if ユーザーが変態さん {
parallel AbnormalTalkArray
}
}

たとえばこうすると「NormalTalkArrayの要素全部」+「AbnormalTalkArrayからランダムに1つ引き抜いたもの」 からランダムに選択されることになり、変態さんが満足できません!中括弧内が先に処理されることを忘れないでください。

確実に処理するならこうなります。


RandomTalk : nonoverlap
{
_talk_array = IARRAY
_talk_array ,= NormalTalkArray
if ユーザーが変態さん {
_talk_array ,= AbnormalTalkArray
}
parallel _talk_array
}

条件分岐が増えた場合は、 _talk_array ,= ごにょごにょ という部分を適当にparallelの前に増やしていけば良いです。

20101214 深瀬

http://tricross.seesaa.net/article/173227477.html

「イケてる"ランダム"トーク

ツッコミ:やー、どこいつの組み立てで昔泣きそうなぐらい悩んだなあ。何もかも懐かしい。無駄に一応意味の通るトークを組み立てようとして1回しか使わないような単語群がてんこもり増えてみたりして。

華和梨はこの点でも一歩進んでまして、単語群を樹状にカテゴリ分けできるというか…そういうイケてる"どこいつ"トークを積むのに適した機能が大昔からついているのが特徴です。もっとも、このカテゴリ分けを適当にするとやっぱり後で辞書がカオス化して泣きそうになるわけですが…

20101215 jumei

http://lovecom.blog.shinobi.jp/Entry/767/

里々ゴ製作時のTipsまとめ」

ツッコミ:先生!これ2〜3件で十分です!

辞書フォルダ切替時の挙動

実際本体と里々の間でどのようなやりとりが行われているかを考えると深く理解できます。書いたトークは一旦里々の関与しない本体に投げられて、選択肢やアンカーが押された時点で里々に戻ってきます。この一旦投げている間に里々側はすでに新しい辞書に切り替わって、古い方の内容を完全に忘れているので、選択肢やアンカーの飛び先は「切替後」に書かないといけないわけです。

それが直感的でないと思う場合は、\![raise]などを使って工夫して、一旦辞書切替の際に「本体側に一度回してやる」ことで、切替時に関連するトークを全て切替後の辞書に書くことができます。

かまってもらう

OnSecondChangeのReference4(R4)、「放置秒数」も参照のこと。逆にほったらかされている場合、というのも検出できますから、何かそれで一工夫できるのでは。……別アプリの裏にまわっている状態などは今のところ取れませんが。

20101216 avery

http://d.hatena.ne.jp/avery_goya/20101215/p1

フローチャートでロジック整理」

ツッコミ:実は私、ゴーストどころかSSPのロジック組む時でさえフローチャートやらマインドマップやら一切使っていません。その代わりに「この関数/オブジェクトに丸投げしておけばとりあえずよきにはからってくれる」「処理はざっと見渡せる程度の長さしか書かない」ようにして、頭の中に読み込む情報量を減らしているわけです。

もっとも、複雑・大規模になってくると当然収拾がつかなくなるので、その時は書きます。ただ、紙を使いますね。

20101217 ウエ紙

http://d.hatena.ne.jp/hakuma/20101217/p1

「胸見反応」

ツッコミ:マウスカーソル動的変更(=SERIKO定義ではなくSHIORIを毎回呼んでカーソルのファイル名を取る)の実装が要りそうな内容が最後のほうに書いてありますが…。同じようなことを考えたものの呼び出し回数が壮絶なことになるので諦めました。OnMouseMoveだけでも正直えらいことになってるのに積み増しはマズイネ。

…で、マウスじゃなくタッチパネルならどうするんだろう。

20101218 yuunyan

http://d.hatena.ne.jp/yuunachan/20101218/1292665957

(ぺちぺち)

20101219 とわ

http://www.towano.net/Junk-Box/Lunalight_.cgi?no=1307

「イベントカウントはとりあえずしておこう」「テンプレダイエット」

ツッコミ:要りそうなイベント系は標準で適当にカウントする仕組みがあっても良いんですが…。起動カウントとか延べ起動時間とかがとりあえず後で使いたくなる筆頭でありまして。あまりに後悔しすぎたので常に使いまわしできるようにyaya_system.dicに書いちゃったドアホウがここに居ますがそりゃ駄目だろ!

20101220 うみほたる

http://d.hatena.ne.jp/Umihotaru/20101220

「日付・時間計算の基準……とおまけ悪ノリ」

ツッコミ:プログラマな人々にとってはUnix Time(POSIX Time)、あるいはCライブラリのtime関数の返り値と言った方がいい何か、の一択ですね。すべての日付時刻を全部それに変換して引き算足し算、その後また日付表現に戻す…というのが定石です。ただし2038年問題縛りがつくのが難点。

……なお、超変態さん向けにWin32 FILETIMEの64ビット値に全部変換するというひどい方法もあります。SSPの内部処理がこれです。

20101221 あやち ぎん

http://ncsp.sitemix.jp/blog/?p=45

IME爆発しろ!」

ツッコミ:実はIMEネタと聞いて調べていたのですが、Google 日本語入力に「zコマンド」なるものがついているそうです。SakuraScriptやらHTMLやらにはあまり役立たなさそうですが……

要は紹介されているあまり使わない「@」を頭につけるのと理屈は同じです。ローマ字入力でろくすっぽ使わないzを頭に何かするコマンドです。

その他ごにょごにょいろいろあるようですが……

http://www.tokyohacker.com/business/google-ime/

うちは「…」なんかは普段「てん」でユーザー辞書登録して使っていたり。それ以外のカスタマイズは特にしてません。F7キー(カタカナ)はよく叩きますが。

20101222 神夜みゅん

http://d.hatena.ne.jp/kamiya777/20101222

「README無精禁止令」

ツッコミ:適当にコピペして適当に置いてる無精大魔王登場<私のこと

このへんをあわせてお楽しみ下さい。

とりあえず二次創作許可したいならライセンスかそれに準じた何かの明示が最適です。もちろんその自由度を持たせるほど「他の人にいじくりまわされる」覚悟も要るのでちゃんと把握しておくこと。

すでに何度も書いてますが、EmilyはCC by-ncつけてますね。

20101223+2 ヒノハル

http://d.hatena.ne.jp/hinoharu/20101223

「完全攻略!AYA自動アンカーリンク」

ツッコミ:より里々らしく実装するためには、YAYAで実装したGETFUNCLISTで特定の接頭辞の関数をリストアップして、その関数名に書かれた単語に自動リンクする(名前の例:「アンカーぬるぽ」)、などの細工も便利です。うちではこの手法ですね。

発展編…「戻る」リンクを実装してみよう!絶対死ぬぞ!

20101223B 糸電話

http://d.hatena.ne.jp/itodenwa

「ゴースト公開に必須なツーポイント」

ツッコミ:とりあえずメニューリストに「ゴースト」か「伺か」で見やすいところにリンク貼っておけば良いでしょうね……ってうちがだめじゃないか!

あと、ダウンロードさせたくなるような記述……やっぱりうちがだめじゃないか!

出直してきますorz

多段ツッコミ:http://www7.atpages.jp/yuina/nicky.cgi?DT=20101225A#20101225A

20101224 ユスラ

http://aoha.s2.coreblog.jp/archives/787
http://aoha.s2.coreblog.jp/archives/796

「キャラ立て3分(+何百分)クッキング」

ツッコミ:弟子にしてください!!!!!

すげえ。うちが実践できてないものばかり。ブックマークして100回読んできます。ぐふぅ。あとジャージ妖精吹いた。

20101225 ぽな@ばぐとら

https://ponapalt.hatenablog.com/entry/20101225/1293369498

あなうめ:ユスラさん

http://aoha.s2.coreblog.jp/archives/842

里々使いのための定石記述例」

ツッコミ:マーカー表示の条件分岐をきちんと入れてるのには脱帽。ただこれだとSAORIコール何度もすることになるので、起動時に「マーカーに使うタグ用変数」を初期化して、それを毎回埋め込む形式にすると高速になります。鬼畜な機能でも使わない限り起動から終了まででベースウェアが変わることはありませんからね。