記事一覧

広告を消すUserScript

探せばありそうなものをあえて作る

以下のサーバの広告を非表示にするUserScriptです。

  • land.to
  • hp.infoseek.co.jp
  • sitemix.jp

Firefox, Opera, Google Chromeの最新版で動作を確認しております。

FirefoxであればAdblockなどのアドオンを使う方がいいと思います。
JavaScriptで正規表現、関数定義やクロスブラウザの練習がしたかっただけです。
追加したいサーバなどあれば今後増えていくかもしれません。

お約束

広告で成り立つものもあるのであまりおおっぴらに使わないようにしましょうね。

SSP公式サイトに開発者向けリンクを追加するUserScript

SSP公式サイト改修に伴って

今月よりSSP公式サイトがリニューアルして大変見やすくなりました。
新規ユーザにも利用しやすく好感が持てますが、開発者向けのリンクが削られて少し寂しく感じたので以下のリンクを追加するUserScriptをJavaScriptの練習がてら作成してみました。

Firefox, Opera, Google Chromeの最新版で動作を確認しております。

09/04/30 追記

SSP公式サイトで上記のリンクが追加されています。
もう必要ないのでアンインストールしてください。

ゴーストセンターのウカニバへのリンクを消すUserScript

JavaScriptを覚えてみる

なんと素晴らしいエントリでしょう。

JavaScriptやGreaseMonkeyには以前から興味があったのですが、どうも取っ付きにくい印象が拭えず断念していました。
そんな私でも一時間ほどさらっと読み流した後に実践してみたところ、ちゃんと動作するUserScriptが書けました。
たいしたものではないですが、初めて書いたUserScriptなのですごく嬉しいです。

機能としては、ゴーストセンターのサイドメニューに表示されるウカニバへのリンクバナーを非表示にするだけです。
Firefox, Opera, Google Chromeの最新版で動作を確認しております。

SofTalkをSAORI-basicとして呼び出す際の注意点

RSSセッティング更新

SofTalkが更新されていたのでRSSセッティングも差し替えました。
一度アンインストールしてからインストールし直し推奨です。

SHIORIからSofTalkをSAORI-basicとして呼び出す際の注意点

色々試してみましたが自分がつまづいたところなどをまとめておきたいと思います。

引数をファイル名/オプションとして処理する

SofTalk.exeをダブルクリックするとGUIで起動します。
「オプション」→「環境設定」→「その他」→「引数をファイル名/オプションとして処理する」にチェック。
これを設定しないとそもそも起動・終了・設定変更などが外部から指定できません。
設定オプション・実行オプションについてはreadme.txtに大変詳しく書かれているので参考にしましょう。

Load時に値が返ってこない

そもそもSAORI/1.0に準拠したものではないです。
SAORI-basicとして無理やり使おうとしているので仕方ないですが、Load時に反応が無いのが致命的です。
里々であればタイムアウトが設定されているのでエラーを返して元に戻りますが、他の栞でSAORI "Basic" Proxy DLLなどを経由しようとするとそこでフリーズして終了すらできなくなります。
「RSSセッティング」は里々をSAORIとして呼び出してそれを経由して使っています。

Unload時はちゃんとcloseする

SHIORIがUnloadされたら明示的にcloseで終了させます。
Windowsタスクマネージャで確認できますが、これを忘れると起動しっぱなしになります。
二重起動はできませんので終了させないと次の起動時に使えません。
デバッグ時にcloseを忘れたらWindowsタスクマネージャから直接終了させるしかありません。

感想

里々は素晴らしいですね。

「きょうの伺か+」配布終了のおしらせ

「きょうの伺か+」を今月いっぱいで配布終了する旨を掲載致しました。

SofTalkでHeadlineを読み上げるPluginを作ってみた

元々はヘッドライン/RSSの選択肢タイムアウトをユーザ側で設定したいという要望に応えて制作したPluginですが、SofTalkによる読み上げ機能を追加してみました。
本体設定の接続(2)の「自動的にチェック」をOFFにしてお使い下さい。
SofTalkの使用にはMicrosoft .NET Framework 2.0以上が必要となります。
デフォルトでOFFなので設定でONにしてください。
その際、里々のタイムアウトエラーが出ますが気にしないで下さい。

09/04/13 更新

ネットワーク更新もできます。

以下のパラメータを変更できるようにしたつもりです。

  • 速度
  • 音量
  • 声色

「つもり」というのは、実は私の環境では速度と音量に変化が無いんですよね(´・ω・`)
そういえばVistaに変えてからdsaudio.dllの音量調整も効かなくなったのです。
OS依存でしょうか…XPでも変化無かった場合は私のミスだと思います。

SofTalkでGHOSTに喋らせてみた

AquesTalkの音声ライブラリを利用した音声合成読み上げソフト。

これを使ってGHOSTに喋らせる試みを持たれた人がいたので私も挑戦。
特徴をまとめると以下のような感じです。

  • 漢字・アルファベットが読める
  • 第一引数に文字列を指定するとそれを読み上げる
  • オプションでファイルパスを指定するとその中身を読み上げることもできる
  • Microsoft .NET Framework 2.0以上が必要

SAORI-basicとして使えるので里々であればsatori_conf.txtの@SAORIに登録するだけですぐに使えます。
漢字やアルファベットも読めるので、ヘッドライン等の未知の文字列が渡される場合でも対応できそうです。
ただSAORI-basicなので若干遅い印象。

AquesTalkを利用したSAORIは現在AquesTalkSaoriがありますね。
ひらがな以外での用途が必要な時はSofTalkを使ってみるのも面白いかもしれません。

Twitter上ゴースト感想まとめサイト

噂と評判TW(仮)tukatter

(仮)としているのはどうもネタっぽいので今後変更が予想されるためです。
tukatterに名称が変更された様子です。はてなハイクの投稿も合成している模様。(09/04/12 追記)

プラグイン「きょうの伺か」で投稿されたゴーストの感想をtwitter検索を利用して収集したまとめサイトのようです。

twitter検索を利用しているので検索すれば発言者なども勿論わかりますが、匿名掲示板風のレイアウトであまりそのことを意識させない造りになっています。

また、他の人のコメントに対するコメント、いわゆる「レス」に該当するのものが見受けられないのも特徴的に感じますが、純粋なゴーストに関する感想のみ拾ってきて並べて表示しているだけなので当然と言えば当然ですね。

ゴーストの特徴をよくとらえた感想が多いようです。
実際にゴーストを起動してそのゴーストのバルーンを拝借して投稿している訳ですから、思い入れのある投稿がたくさん見受けられます。

現在twitter検索はTwitterの規制強化によりpostの回収率が10%程度まで落ち込んでいるようです。
別の方法により回収率を向上させる試みが行われているようですので、今後に期待していきたいと思います。

プラグイン「きょうの伺か」の利用にはTwitterアカウントが必要になりますが、はてなアカウントをお持ちの方であればはてなハイクの方にも投稿することができますので、どうぞご利用ください。

プラグインがインストール済みかどうか調べる

名前とIDどちらでも検索可能な関数を里々、YAYA、華和梨で書いてみます。
(YAYAはそういった関数がテンプレートに用意されています)
戻り値はBOOL値です。

里々

# [b1]プラグイン名(1)[b1]プラグインID(1)[b1]プラグイン名(2)[b1]...[b1]プラグインID(n)[b1]というリストができます。
@installedplugin
(set,プラグインリスト,)(loop,プラグインリスト作成,0,(Rの数))
@プラグインリスト作成
(set,プラグインリスト,(call,プラグインリスト)(バイト値,1)(R(プラグインリスト作成カウンタ)))
@IsPluginExist
(count,(call,プラグインリスト),(バイト値,1)(A0)(バイト値,1))

#--■使い方■--#
*ラベル
(call,IsPluginExist,PlaylistMaker)#=> 0 or 1

YAYA

// 「はろーYAYAわーるど」yaya_tmpl_util.txtに記述済み
On_installedplugin : void
{
  _n = ARRAYSIZE(reference)
  AYATEMPLATE.installedplugin_name = IARRAY
  AYATEMPLATE.installedplugin_id = IARRAY

  for _i = 0 ; _i < _n ; _i++ {
    _a = RE_SPLIT(reference[_i],'[,\x1]')

    AYATEMPLATE.installedplugin_name ,= _a[0]
    AYATEMPLATE.installedplugin_id ,= _a[1]
  }
}

AYATEMPLATE.IsPluginExist
{
  if _argc == 0 {
    0
    return
  }

  if ASEARCH(_argv[0],AYATEMPLATE.installedplugin_id) >= 0 {
    1
    return
  }
  if ASEARCH(_argv[0],AYATEMPLATE.installedplugin_name) >= 0 {
    1
    return
  }
  0
}

//--■使い方■--//
foo
{
  AYATEMPLATE.IsPluginExist('PlaylistMaker')// => 0 or 1
}

華和梨

# ミドルウェアによって接頭辞の書き方などは異なる
resource.installedplugin : $(
  clear System.InstalledPlugin.Name;
  clear System.InstalledPlugin.ID;
  setstr @i 0;
  while $[ ${System.Request.Reference${@i}} != $(NULL) ] $(
    clear @a;
    split @a ${System.Request.Reference${@i}} $(chr 1);
    adddictstr System.InstalledPlugin.Name $@a[0];
    adddictstr System.InstalledPlugin.ID $@a[1];
    inc @i;
  );
)

=kis
function IsPluginExist $(
  if $[$[$(find System.InstalledPlugin.Name $@arg[1]) >= 0] || $[$(find System.InstalledPlugin.ID $@arg[1]) >= 0]] $(
    return 1;
  ) else $(
    return 0;
  );
);
=end

#--■使い方■--#
エントリ : $(IsPluginExist PlaylistMaker)#=> 0 or 1

SakuraScriptでインストールを実行する

LRさんのところでも以前触れられていた仕様のおさらいです。
GHOST自身が作成したghostやballoonをインストールすることもできます。
他のお勧めのGHOSTを紹介したい、でもいいですし、スタンプ帳などのPLUGINにせっかく対応したのでそれをインストールしたい場合などが考えられます。

仕様

\![execute,install,path,C:playlistmaker.nar]

ローカルでファイルへのpathを指定するとインストールを実行します。
相対パスの場合はSSP本体の実行ファイル基準だと思うのですが、私の環境では実行するとインストールに失敗してしまいました。絶対パスの方が確実そうです。

\![execute,install,url,http://home.384.jp/evidence/ghost/playlistmaker.nar,nar]
\![execute,install,url,http://home.384.jp/evidence/cgi-bin/wdp_diary.cgi?mode=rss,feed]

URLを指定するとアーカイブをDLしてインストールを実行します。
RSSの場合は自動でdescript.txtを作成してRSSセンサのインストールを実行します。
(最後の引数nar/feedは省略可)

「nar/zipアーカイブ」「RSSセンサ」をURL指定でインストールする場合の許可範囲

nar/zip
  • 自作のnar
  • 他の作者さんのnarでローカルから直にインストールの許可が明示されているもの

これなら大丈夫でしょう。
此処のサイトで配布しているnarファイルはご自由に直でインストールしてください。

上記に該当しない場合は

  1. 作者さんに直接許可をもらう
  2. ゴースト著作権意識についての質問「11.ゴーストアーカイブへの直リンク」が許可されているものをローカルから直接ダウンロードも許可されているものと解釈する
  3. 何かゴーストマネージャを使用してローカルから直接ダウンロードが可能な状態にあるnarファイルは作者さんがそれを容認・黙認しているものと解釈する

などが考えられるでしょうか。上に行くほど確実そうですね。

(此処のサイトで「11.ゴーストアーカイブへの直リンク」が不可になっていて矛盾を感じたので可に変更しました。09/04/06)

RSSセンサ

RSSを配信しているサイトでRSSセンサのインストールを容認しない人はいないでしょう…。

余談

PerlのCPANやPHPのPEARはサイトを訪れることなくコマンドラインから直接モジュールをインストールできて便利ですね。伺かでは何かゴーストマネージャがこれにあたるのでしょうか。
PLUGINとか公開している身としてはそういうのも直接ダウンロードできるようになれば便利かなと思います。
上記で紹介している通り、GHOSTでクライアントを作ろうと思えば作れますが、Webにそういうデータベースサービスが今のところ無いですね。

拍手レス(04/08)

>ローカルのアーカイブと直リンクはかなり違う気がしますが…
(一部引用させて頂きました)

ですよね。
私も直接作者さんに許可を得た方が良いと思います。
予めインストールする際のあり方について明示されていれば理想ですが、配布物そのものについての扱いについてはよく言及されるものの、配布物の入手の仕方についてまで言及されているものはなかなか見かけませんので、多くの場合は直接連絡する以外に方法がなさそうです。

そういった意味でも、アーカイブ登録制のデータベースサイトなどがあればGHOSTがもっと自由に他のGHOSTやモジュールと組み合わせて様々なことが可能になるのではないか、と空想したりしております。