Month: December 2012

サイトの移転とhomeurl

 - by Don

これは伺かアドベントカレンダー2012の10日目の記事です。

理想のサーバを求めて

昨日このブログを移転しました。前使ってたサーバ(PHP Fog)がリニューアルするとかで、リニューアル後のサーバ(AppFog)も試したのですがうまく動かなくて、途方に暮れて他のクラウドサービス(dotCloud)を試したのですがこれもよくわからなくて、やっと動いたここ(Heroku)にとりあえず落ち着きました。

WordPressも何とか動いているのですが、動的ファイル書き込みができないので、画像などのファイルが管理画面からアップロードできません。ローカル環境で画像を生成して一々全ファイル上げなおししないといけないみたいで、環境が整うまで画像なしで運用していきます。

サイト移転時にしておきたいたったひとつのこと

本題です。諸事情によりサイトを移転する方も多い今日この頃ですが、前のサーバにゴーストの更新ファイルを置いていた方は新しい更新URLを記述した辞書一式を最後の更新として残されてきたことと思います。そうすれば一度目の更新でゴーストのhomeurlが書き換わり、二度目の更新で新しいサーバを参照しに行きます。

ゴーストとしてはこれでいいのですが、もうひとつ、最後に仕上げておきましょう。

テキストファイルを作成し、以下の通りに記述します(行末に改行が必要です)。そしてファイル名を.htaccessとします。

Redirect permanent / http://new.example.com/

http://new.example.com/ は移転先のURLに読み替えてください。これを旧サーバのトップディレクトリに転送します。こうしておくことで旧URLにアクセスすると自動的に新URLにリダイレクトされます。

リダイレクトされて便利だね、っていうだけではなく、他にもこれだけで結構なメリットが享受できます(参照:SiReFaSoの登録情報を更新する)。テキストファイル一枚アップロードするだけですので、ぜひお試しください。

MD5不一致エラーが出た時の対処法

 - by Don

これは伺かアドベントカレンダー2012の9日目の記事です。

MD5不一致エラーが出たら

ユーザさんの場合

作者さんに報告してあげてください。

作者さんの場合

ユーザさんから報告を受けたら、まず自分の環境で再現するか試します。他のことは一切考えすに、ひたすら「再現」させることに集中することが大事です。

再現さえすれば、「直さなきゃ」って気持ちになれます。逆に再現しないと、そういう気持ちになれません。「そっちの環境がおかしいんじゃないの?ウチではちゃんと更新できるよ?」みたいな気持ちになります。

ユーザさんはウソついたりしませんし、仮にエラーを確認したとしても報告してくれる人はかなり稀なので、その好意を無駄にしてはいけません。一番やってはいけないのが、「最新のアーカイブで上書き更新してください」です。何の解決にもなりません。報告者の環境に対して問題を解決することはできますが、報告しなかった/ブログとか見ない他の数十、数百のユーザの環境ではエラーが解決しないままになってしまいます。

再現手段

SSP 2.2.00 Fullsetを用意します(最新のはダメです)。そこにghost/master/descript.txtだけのゴーストを用意します(SHIORIもシェルも要りません)。そのdescript.txtに以下のようにhomeurlを記述します。

homeurl,http://www.example.com/update-dir/

Emilyを立ち上げ、ゴーストエクスプローラからそのゴーストをネットワーク更新します。全てのファイルが降ってくるはずですが、いずれかのファイルでMD5不一致エラーが確認できるはずです。

修正する

再現さえすればこっちのものです。該当のファイルをアップロードし直せば、普通は直ります。または、エラーとなるファイル数が多い場合はサーバ上のファイルを一度全部削除して、FTPで上げ直すのも良いです。

何故SSP/2.2.00なのかとかは長くなるので尺が余ったら別の記事にしようと思います。

MD5って何?

 - by Don

これは伺かアドベントカレンダー2012の8日目の記事です。

ネットワーク更新に潜む魔物

伺かユーザなら誰もが経験したことがある、ゴーストのネットワーク更新時のMD5不一致エラー。ゴーストマスタさんでもこのMD5不一致エラーが直らなくて困ったことがあると思います。

あまり本質(ゴースト製作)と関係ないことに時間を割くのは望ましいことではないですし、こういった悩みを抱える人に対しては「ユー、GDM使いなYO!」と一言声をかけて頂ければ解決するので、MD5とは何者かなんて調べる必要はないです。

ただ、厄介者扱いされるMD5ですが、実は結構大事な役割を担っているので、明日からはもっと優しく接してあげて欲しいと願って紹介してみます。

updates2.dauを見てみよう

ネットワーク更新をする時に作成するupdates2.dauというファイル。拡張子がイミフですが、メモ帳で開けば中身がただのテキストファイルであることがわかります。

スペースに見えるのはバイト値1というやつです(伺かは区切り文字にバイト値1使うの好きですよね)。ファイル名の右に書かれた英数字32文字がMD5ハッシュ値です。これは左の更新対象ファイルから生成されるユニークな文字列となっています。仮に更新対象ファイルの末尾に改行一つ加えただけでも、生成されるMD5ハッシュ値は全く別物となります。

つまりこのupdates2.dauには、「このゴーストの更新対象ファイルはこれだけありますよ。それぞれのMD5ハッシュ値はこうですよ。間違えないでね。」という情報が書かれているのです。仮にゴーストマスタが更新ファイルを1つアップロードし忘れたとすると、サーバに残っている古い更新ファイルから計算されたMD5ハッシュ値とupdates2.dauに書かれたMD5ハッシュ値が一致せず、更新エラーとなるわけです。作者が意図しないファイルがユーザの元に届けられてしまうのを防ぐ役割を持っているのです。

MD5不一致を招く原因は作者の「うっかり」だけではありません。レンタルサーバではWebページに広告を挿入するものがありますが、サーバの不具合でテキストファイルにまで広告が挿入されてしまう事態も考えられます(過去にland.t○で実際にありました)。辞書に広告など入れられてしまったら、里々ならおかしなトークが出るくらいで済むかもしれませんが、YAYAなら起動すらできなくなってしまいます。

こういった事故を防ぐためにもMD5ハッシュ値を比較するという作業はゴーストにとって非常に大事な役割を占めているのです。

次回予告

過去に何度かゴースト配布系自動化システム(GDM)のステマ記事を書いてきましたが、これはもっと普及させるべきだと思うので、MD5不一致エラーの解決法と合わせてGDMの宣伝を続編で書きたいなと考えています。

デスクトップを揺らす

 - by Don

これは伺かアドベントカレンダー2012の7日目の記事です。

デスクトップを揺らすSAORI

effect.dllというSAORIを使うと、画面全体を振動させることができます。演出で採用しているゴーストさんも結構いらっしゃるので見たことがある人もおおいはず。

#satori_conf.txtの@SAORIにeffect,saori/effect.dllとか登録してあるものとする
*揺らす
:ゆれろー(effect,3,100,100,100)

第一引数は効果の種類。振動は3です。他に1:画面2分割、2:画面4分割とかあります。

第二引数は時間、第三引数は回数、第四引数は幅。

手軽に効果的な演出が可能なSAORIなので大変オススメなのですが、今配布元を見たら2007年からはSAORIとしてのサポートはしてないみたいですね。残念。

このDLLをコールするラッパーSAORIとか、サンタさんにお願いしてクリスマスを待ちましょう。

バルーンのサイズを取得する

 - by Don

これは伺かアドベントカレンダー2012の6日目の記事です。

プロパティシステム

バルーンはトークを表示するだけのものにあらず。時には画像を表示したり、フォントを変えて装飾を施したりもできます。しかしバルーンにも大きさが様々あるため、バルーンのサイズに合わせて表示を調整したい場合があります。

バルーンのサイズを取得するにはプロパティシステムと呼ばれるものを使用します。詳しくはリンク先を見てもらうことにして、ここでは里々でバルーンのサイズを取得する例を書いてみます。

*バルーンのサイズ取得
:![get,property,φ
OnGetBalloonSize,φ
currentghost.balloon.scope(0).validwidth,φ
currentghost.balloon.scope(0).validheight]

*OnGetBalloonSize
:幅φ:(R0)、高さφ:(R1)

これでバルーンのサイズが取得できます。プロパティシステムではこの他にもベースウェアが知り得る様々な情報が取得できます。覚えておくと色々アヤシイことができるのでオススメです。

大きいバルーンのサイズは?

直前にb[2]で大きいバルーンを表示しておきましょう。

*大きいバルーンのサイズ取得
:b[2]![get,property,φ
OnGetBigBalloonSize,φ
currentghost.balloon.scope(0).validwidth,φ
currentghost.balloon.scope(0).validheight]

*OnGetBigBalloonSize
:幅φ:(R0)、高さφ:(R1)

おすすめサイトのバナーを表示する

 - by Don

これは伺かアドベントカレンダー2012の4日目の記事です。

ポストのウソ

里々ゴーストマスタの人なら、「ポストと狛犬」の辞書のdic06_String.txtに以下のような記述があったことを覚えている人も多いと思います。

 URL一覧は……

 1行目がサイト名
 2行目がジャンプ先URL
 3行目がバナーURL(省略可)
 4行目以降はジャンプ時に表示される会話文(省略可)

律儀に3行目にバナーURLを書いていた私ですが、一向に表示される気配がありません。

*sakura.portalsites
Disc-2
ttp://disc2.s56.xrea.com/
ttp://disc2.s56.xrea.com/image/disc_2.gif
:伺かのポータルサイトだよ。

正しいバナーの表示の仕方

ghost/master/ の中に banner ディレクトリを掘って、その中にバナー画像を入れておきます。 ghost/master/banner/disc_2.gif みたいな感じ。そして、3行目にはファイル名を記述します。

*sakura.portalsites
Disc-2
ttp://disc2.s56.xrea.com/
disc_2.gif
:伺かのポータルサイトだよ。

これで表示されるようになります。

ゴーストを手前に表示する

 - by Don

これは伺かアドベントカレンダー2012の3日目の記事です。

ゴーストあるある

ゴーストをインストールするとき、ブラウザからNARへのリンクを直接ゴーストにドラッグするとダウンロードからインストールまでやってくれます。

GHOST: Emily/Phase4.5

私はブラウザをフルスクリーンモードで使っており、ゴーストには常に手前にいてもらわないとNARをドラッグすることができないので、そのように設定しています。

これでDnDできます。

・・・・・・

呼んでみる。

・・・・・・

・・・・・・

・・・・・・

あ、後ろで起動してるんだ、と慌ててタスクトレイのアイコンクリック。

Ghost: とらふぃっく☆とれいん

初回トーク終わってるじゃないですかー!やだー!

・・・とまあ、こんな悲しいことが時々あります。

手前に表示するSakuraScript

SakuraScriptには、vとか![set,windowstate,stayontop]とかいう、そのトーク中だけゴーストを手前に表示するというものがあります。

というわけで、初回起動の時にこのSakuraScriptを使うのが流行るといいと思います。具体的には私が幸せになります。

(※本体設定でデフォルトで常に手前に表示にすることもできます。ただ、さすがに煩わしい。)

伺かリンク集

 - by Don

これは伺かアドベントカレンダー2012の1日目の記事です。

伺かリンク集

リンク切れが多いと嘆かれる伺かまわりで、2012-12-01現在生きていると思われるリソースをまとめてみます。

導入

ポータルサイト

ベースウェア

Windows

Linux

Android

iOS

開発

SHIORI

Wiki

仕様書

コミュニティ

ゴーストを探す

データベース

レビュー