お問い合わせ
会社概要 ソフトウェア 開発ブログ サポート

« 2005年05月 | メイン | 2005年07月 »

2005年06月25日

MSの次世代OS LonghornでのRSSサポート - Longhorn Browsing and RSS Team

Gnomedex 2005で次世代Windwosの Longhorn 、次バージョンのIE7でのRSSサポートの存在が大々的に公開されました。

以下簡単な要約

RSS 2.0の拡張(Simple List Extensions):RSSをリストにするエクステンション。階層構造というよりListsであり、RSSでの順番は時系列であったが、リストでは異なる。ソート指定がつく。ブログなどの時系列の“記事”ではなく、さらに一般的なリストのデータ。

プラットフォームとしてのRSS Longhorn のいたるところにRSS。プラットフォームとして、開発者向けにも、ユーザーにも。RSSの購読と管理はWindowsがOSとして管理…開発者はRSSを“料理”する事に注力。

Longhornが提供する主機能:
Common RSS Feed List - Simple List Extensionsで拡張されたRSSで記述されたRSSフィードのリスト。
Common RSS Data Store - RSSを通して得られたデータの共通の保存場所。
RSS Platform Sync Engine - 自動的にRSS(及びenclosuresで指し示されたファイル)を定期的にダウンロードするエンジン。

LonghornのIEでのRSS購読デモ:一見、機能的にFireFox似、MacOSXのSafari激似? 検索出来る。キモはRSSとWindowsの統合による、CommonFeedList(APIを使いアプリケーション間で共有できる。Windowsのユーザーリスト。)Outlookのカレンダー、RSSリーダー、IE、写真、ポッドキャスト、アマゾンの(他人の)ウィッシュリスト(wish lists)をRSSで購読。MSNでRSS検索?スクリーンセーバー 等でのCommonFeedListの使いまわしー>RSSプラットフォーム。

「MSによるRSSフォーマットの乗っ取り?意味わからないね。クリエイティブ・コモンズ(Share Alike、Attribution)だし、Dave Winerの許可得てるし。彼がリーダーだし…略」

で、最後の突っ込み、「で、いったいいつになったらLonghornはリリースされるんだっけ? lol」

Longhorn Browsing and RSS Team(Channel9 Video)

http://gnomedex.jot.com/Live(Live音声)

Microsoft, lists, RSS and me(予告)

RSS and Longhorn news coming tomorrow(予告)

追記:最新リンク
Microsoft Bakes RSS into Longhorn(eWeek記事)

RSS拡張の仕様:
Longhorn loves RSS!IEBlog
RSS in Longhorn (MSDN文書)(仕様直リン

投稿者 BlogWrite担当 : 04:30 | コメント (0) | トラックバック

2005年06月24日

BlogWriteII 安定版

正式版公開後にも、幾つか不具合の御報告を頂いておりまして、御報告いただいたのはすべて修正したつもりなので、これをもちまして安定板としたいと思います。 (本当は正式版公開の時にはすでに安定しているべきだったのですが...直前でプラグイン追加とかしたり、色々事情がありまして...スミマセン)

大変お手数ですが、今一度新しいファイルをダウンロードして、インストールしてくださるようにお願いいたします。

今すぐダウンロード:
BlogWrite 2.1.1
BlogWrite 機能制限無料版 2.1.1

以下、変更点・修正点

デザインモードをまったく使わないでHTMLソースで編集後、そのまま投稿した時、画面を閉じると「保存しますか」の問い合わせダイアログが表示された件。

日本語が含まれるフォルダ名に保存されてる画像を貼り付けて、「HTMLソース」にした状態で、記事を投稿すると、画像がアップロードされない不具合。あと、追記編集に画像を貼り付けて記事をアップロードする際、画像のパスにスペースが含まれていると、見つかりませんのエラーになってしまう不具合。

他にも、細かい点ですが、「アカウンをト削除」ー>「アカウントの削除」へ字句修正や、無料版のインストーラーで、無料版の制限の記述漏れがあった件や、NowListeningプラグインのファイルアップロードに失敗して、ファイルが欠損していたため動かない件も解消しています。

御報告していただいた皆様、ありがとうございました。今後ともどうか宜しくお願いいたします。

 

投稿者 BlogWrite担当 : 21:09 | コメント (2) | トラックバック

2005年06月23日

最新のAtom フォーマット ID-09と...(updated)

本日(といってもあちらの時間ではまだですが23日のことです)、IESG(The Internet Engineering Steering Group)のミーティングにて、Atomフォーマットの正式なレビュー結果が明らかになります。結果によって変更が必要となるか、IETF( Internet Engineering Task Force )のRFCとしての公開へ向けて最後のドラフト公開へと進むか、という段階です。

Update:どうもIESG委員の一人が延期の申し立てをしたらしく、あと2週間ばかり待たなければならなくなった模様です。残念。特に問題があったからというわけではなく、おそらく単にレビューする時間が取れなかったからゴメン延期、と言う感じみたいです。

最新のAtomフォーマットのドラフトは:
http://www.ietf.org/internet-drafts/draft-ietf-atompub-format-09.txt

参考リンク:
IETFとは
  IETFにおける標準化プロセス

AtomはTCP/IPなんかと同じ、RFCになっちゃんだと、感慨深げ...。というほどでもないけれど、とにもかくにも早く作業がすすんでほしいものです。

追記:Atom APIの方はまだのようですね。

投稿者 BlogWrite担当 : 14:29 | コメント (0) | トラックバック

2005年06月18日

BlogWriteII正式版公開

BlogWrite

当ブログExclusiveでBlogWriteの正式版を一足早く公開いたします。ベクターでは更新申請中なのでベクター経由では現在の所まだダウンロードも購入も出来ません。

旧BlogWriteをお使いのユーザーの方へ:バージョンアップは無料なので、絶対BlogWriteIIをお使いになった方が便利です。ぜひご利用ください。

What's New

BlogWriteIIで新たに導入・改良・強化された機能

[画像関連]
画像の追加がウィザード形式になり簡単に。
サムネイル画像作成時、画像のポップアップ表示・リンク先の作成を指定出来る。
画像のリサイズがマウスのドラッグで出来る。
画像縮小処理時に、新しいアルゴリズムを用いてより高画質なサムネイル画像を生成するように。
エクスプローラーからの画像ファイル(複数可)のドロップに対応。
画像のアップロード時、誤ってサーバー上の異なるファイルを上書きしてしまうことのないように、上書き確認をするようにしました。

[アカウント管理]
アカウントの追加がウィザード形式になり簡単に。
アカウント管理が、メールソフトのようなツリー形式になり、記事ログの閲覧もより洗練された。
アカウント・ブログごとの設定がより細かく出来ます(ファイルのアップロード先ディレクトリや、コメント可・不可などの規定値など)

[編集機能]
ファイルの関連付け(*.entryのファイルをBlogWriteに関連付け可能)記事ファイルからBlogWriteのエディタを開けます。
編集画面を複数開けるため同時に異なる記事を編集。
オフライン時でも記事の作成・画像の追加が可能に。
下書きとして保存・管理出来ます。
雛型を登録して、雛型を元に記事を新たに作成出来ます。
表を作成・編集が出来るようになりました。
リンク先の再編集・削除を追加。
打ち消し線ボタンも追加。

[その他]
AtomAPIでの通信でSSL+Basic認証に対応(WSSEとの切り替え可能) 。
よりXPフレンドリーな見た目。
プラグイン対応
多数の不具合を解消。

BlogWriteIIでなくなったけれど、復活する予定の機能

外部エディタでのHTML編集
HTMLエディタの自動挿入、補完候補、他エディタオプション設定
全般的オプションの設定

BlogWrite 機能限定無料版の復活

□非営利で個人利用のみ
   個人による、私的利用かつ非営利目的(*1)で運営し、且つ企業・法人・団体・機関等に属さないブログでのみ利用出来ます。
    (*1)個人で行なうアフィリエイトは営利とは見なしません。
□広告が入ります。
   文末に、一行の広告が入ります。<-ちょと悩んでます。
   一例:「このエントリーはBlogWriteで投稿されました。」
□機能制限があります。
   WYSIWYGのデザインモード編集のみで、HTML編集がありません。
   管理出来るアカウントは一つだけです。<-ちょと悩んでます。
   雛型を利用できません。

ダウンロード

BlogWriteII 正式版のダウンロード(Ver: 2.0.0.26) (Ver 2.1.0.3)
BlogWriteII 機能限定無料版のダウンロード(Ver: 2.0.0.26) (Ver: 2.1.0.3)

プラグイン(BlogWriteをインストールしたフォルダ内のPluginsフォルダに入れてください)
NowListeningプラグインのダウンロード
説明:今聴いている音楽の曲情報(アーティスト - 曲タイトル - アルバム名)を記事の文末に挿入します。対応プレーヤーはWinAmpとiTunesです。

投稿者 BlogWrite担当 : 12:02 | コメント (4) | トラックバック

Pluginの作成(第二回)

第一回に続いて、もうちょっと詳しいプラグインのサンプルです。実際的なケースを想定しています。雛形としてお使いください。このサンプルは、NowListeningプラグインとして作ったものを元にしています。 基本的に、BlogWriteのエディタ画面でボタンをクリックすると、編集中の文章にプラグイン側から文字列が追加されます。

プロジェクトファイルは前回と同じく、一行だけ変更します。ユニットは下記に全部載せています。

#PluginNowListening.pas

unit PluginNowListening;

interface

uses
    Windows, Messages, SysUtils, Classes, Dialogs, Forms, Controls,JvPlugin,
    SynEdit,(*BlogWriteでSynEditコンポーネントを利用しているため、キャスト時に使います*)
    SHDocVw_TLB,MSHTML_TLB,ActiveX,ComObj,(*IEのHTMLコンポーネント用*)
    StdCtrls,(*TCheckbox*)
    ComCtrls(*TPageControl*);

type
    TPluginNowListening = class(TJvPlugin)
        procedure JvPlugInInitialize(Sender: TObject; var AllowLoad: Boolean);
        procedure JvPlugInConfigure(Sender: TObject);
        procedure JvPlugInPluginMessage(Sender: TObject; APluginMessage: Integer; AMessageText: String);
        procedure PluginNowListeningCommands0Execute(Sender: TObject);
    private
        { Private declarations }
    public
        { Public declarations }
end;

function RegisterPlugin: TJvPlugin; stdcall;

implementation

{$R *.dfm}

// IMPORTANT NOTE: If you change the name of the Plugin container,
// you must set the type below to the same type. (Delphi changes
// the declaration, but not the procedure itself. Both the return
// type and the type created must be the same as the declared type above.

function RegisterPlugin: TJvPlugin;
begin
    Result := TPluginNowListening.Create(nil);
end;

procedure TPluginNowListening.JvPlugInInitialize(Sender: TObject;var AllowLoad: Boolean);
begin
    //初期化時の処理。BlogWriteでは新規記事作成で、エディタ画面がCreateされる時に呼ばれる。
end;

procedure TPluginNowListening.JvPlugInConfigure(Sender: TObject);
begin
    //プラグイン設定画面を表示できる。BlogWrite側でまだプラグイン管理画面を作っていないため、現在は表示されない。
end;

procedure TPluginNowListening.JvPlugInPluginMessage(Sender: TObject;APluginMessage: Integer; AMessageText: String);
begin
    //ShowMessage(Format('Plugin Message number %d received. MessageText: %s', [APluginMessage, AMessageText]));
    //BlogWrite側から特にメッセージを送る事は今のところしていませんが、今後投稿時や、特定のタイミングでMessageを飛ばすことがあるかもしれません。
end;

procedure TPluginNowListening.PluginNowListeningCommands0Execute(Sender: TObject);
var
    Comp0 : TComponent;
    Comp1 : TComponent;
    Comp2 : TComponent;
    s: string;
begin

    s:='プラグインから追加';//追加する文字列

    Comp0:= Manager.Owner.FindComponent('PageControlEx1'); //Pageコントロール取得
    if not Assigned(Comp0) then exit;

    if TPageControl(Comp0).ActivePage.Name = 'TabSheetMain' then begin //本文編集タブ表示中である

        Comp1 :=Manager.Owner.FindComponent('SynEditMain'); //HTMLエディタを取得

        if Assigned(Comp1) then begin
            if TSynEdit(Comp1).Visible then begin //HTMLエディタを表示中である

                Comp2:=Manager.Owner.FindComponent('CheckBoxLineBreaks'); //オプションの「自動改行」チェックボックス
                if Assigned(Comp2) then begin
                    if TCheckBox(Comp2).checked then begin //「自動改行」がオンである
                        TSynEdit(Comp1).lines.Add(s); //HTMLエディタに文字列を追加
                    end else begin
                        TSynEdit(Comp1).lines.Add('<p>'+s+'</p>'); //HTMLエディタにHTML文字列を追加
                    end;
                    //Dont't forget!
                    TSynEdit(Comp1).Modified :=true; //文字列を変更したら、変更フラグを立てる

                    end else begin
                        TSynEdit(Comp1).lines.Add('<p>'+s+'</p>'); //念のため
                        TSynEdit(Comp1).Modified :=true;
                    end;

                end else begin //デザインモードで編集中である
                    Comp1 :=Manager.Owner.FindComponent('MyWebBrowser1');
                    if TWebBrowser(Comp1).Visible then begin
                        if Assigned(TWebBrowser(Comp1).Document) then begin
                            if IHTMLDocument2(TWebBrowser(Comp1).Document).readyState = 'complete' then begin
                                IHTMLDocument2(TWebBrowser(Comp1).Document).body.innerHTML := IHTMLDocument2(TWebBrowser(Comp1).Document).body.innerHTML+#13#10+'<p>'+s+'</p>';

                            end;
                        end;
                    end;
                end;

            end;


    end else if TPageControl(Comp0).ActivePage.Name = 'TabSheetExtended' then begin

        Comp1 :=Manager.Owner.FindComponent('SynEditExtended');

        if Assigned(Comp1) then begin
            //以下本文編集とほぼ同じ
            //.....

            if TSynEdit(Comp1).Visible then begin //HTMLエディタを表示中である
                //.....

            end else begin //デザインモードで編集中である
                Comp1 :=Manager.Owner.FindComponent('MyWebBrowser2');
                //.....

            end;

    end;

    end else if TPageControl(Comp0).ActivePage.Name = 'TabSheetOption' then begin

    end else if TPageControl(Comp0).ActivePage.Name = 'TabSheetPreview' then begin

    end else begin

    end;


end;

end.

ご覧のように、ある程度コンポーネント名とか分かっていないと作れない所があると思います。どんな機能のものを作るかによってどこまで知る必要があるかが異なると思いますので、個別に問い合わせていただけるとお手伝いできるかと思います。


以下、NowListeningプラグインの実行結果サンプル

今聴いている曲:Lynyrd Skynyrd - 「Sweet Home Alabama」 (Skynyrd's Innyrds - Lynyrd Sky)

今聴いている曲:Outkast - 「Im Sorry Ms. Jackson...」 (Stankonia)

投稿者 BlogWrite担当 : 08:03 | コメント (0) | トラックバック

Pluginの作成(第一回)

前回紹介したBlogWriteのプラグイン作成方法の解説第一回目です。早めに公開しておきます。

対象は、Delphiにある程度慣れている方です。

プラグイン作成に必要なもの

Borland Delphi Studio ver 6,7(注1) (注2)
ライブラリ:JEDI Visual Component Library ver 3.00 (注3)

(注1) Delphi6 PersonalEdition は無料でダウンロード出来ます。
(注2) Borland C++ Builder6でも可能です。
(注3) JVCL3には、大量のコンポーネントが含まれています。

手順

「新規作成」ー>「その他」、新規作成ダイアログで、「Projects」内の「Jv Plugin Wizard」 を起動します。

「Setup Plugin Parameters」という画面が表示されますので、そこで、プラグイン名、プラグインの説明、作者、著作権、ホストプロジェクト名(BlogWrite)を入力し、最後に、「DLL plugin」にチェックを入れます。

PlgPluginName.dprというプロジェクトファイルと、PluginPluginName.pasというユニットファイルが生成されます。幾つか変更点がありますので、それらを色付で表示します。

ソース

#PlgPluginName.dpr

library PlgPluginName;

uses
    //ShareMem コメントアウトします。代わりにメモリ効率とスピードが早い下のFastShareMemを使います。
    FastShareMem,(* 「ここ」 からダウンロード*)
    PluginPluginName;

{$R *.res}

exports
    RegisterPlugin;

begin
end.

次はユニットの方の編集です。PluginPluginName.pasを表示し、オブジェクトツリーの「Commands」右クリックで「項目の追加」を行うと、「Command1」が生成されます。オブジェクトインスペクタでこのプロパティを入力していきます。このコマンドはBlogWrite側でユーザーがクリックするボタンおよび、メニューとして表示されます。出来るだけアイコンも登録してください。ついで、OnExecuteで実行される処理を書きます。


#PluginPluginName.pas

unit PluginPluginName;

interface

uses
    Windows, Messages, SysUtils, Classes, Dialogs, Forms, Controls,JvPlugin;

type
    TPluginPluginName = class(TJvPlugin)
        procedure PluginPluginNameCommands0Execute(Sender: TObject);
    private
        { Private declarations }
    public
        { Public declarations }
end;

function RegisterPlugin: TJvPlugin; stdcall;

implementation

{$R *.dfm}

// IMPORTANT NOTE: If you change the name of the Plugin container,
// you must set the type below to the same type. (Delphi changes
// the declaration, but not the procedure itself. Both the return
// type and the type created must be the same as the declared type above.

function RegisterPlugin: TJvPlugin;
begin
    Result := TPluginPluginName.Create(nil);
end;

procedure TPluginPluginName.PluginPluginNameCommands0Execute(Sender: TObject);
begin
    ShowMessage('クリックされました');
end;

end.

または、BlogWriteのエディタのHTMLを取得したい時は、基本的には下のようにします。(実際には他にも気にしなければならない点があります。例えばデザインモードではなく、HTMLエディタで編集中の場合などを考慮しなければなりません。これについては第二回以降で)

ユニットのUses節に、SHDocVw_TLB,MSHTML_TLB,ActiveX,ComObjを追加します。(MSHTML_TLBあたりのタイプライブラリは新たに生成する必要がある場合があります)

procedure TPluginPluginName.PluginPluginNameCommands0Execute(Sender: TObject);
var
    Comp1 : TComponent;
begin
    Comp1 :=Manager.Owner.FindComponent('MyWebBrowser1'); //Managerはホスト側のPluginManagerで、Manager.Ownerがいわゆるエディタ画面、呼び出し元のTFormとなります。MyWebBrowser1は本文編集タブのTWebBrowserのコンポーネント名です。
   
if Assigned(Comp1) then begin
        if TWebBrowser(Comp1).Visible then begin //デザインモードで編集中かどうか
            if Assigned(TWebBrowser(Comp1).Document) then begin
                if IHTMLDocument2(TWebBrowser(Comp1).Document).readyState = 'complete' then begin
                    ShowMessage(IHTMLDocument2(TWebBrowser(Comp).Document).body.innerHTML);
                end;
            end;
        end;
    end;
end;

基本的には以上で簡単なプラグインの完成です。コンパイルしたDLLをBlogWriteのPluginフォルダに入れて、BlogWriteのエディタを開くとプラグインを読み込みます。

(「画像の追加」ボタンの横に新規にボタンが追加されます。)

投稿者 BlogWrite担当 : 07:55 | コメント (0) | トラックバック

BlogWriteII Plugin unleashed

BlogWriteのプラグイン機能ですが、基本的にこのPluginアーキテクチャを元に作ろうかと思っていたら、JEDI Visual Component Libraryに含まれる、JvPluginコンポーネントがこれを元にしているようなので、使ってみたらあらら...。コンポーネントをドロップするだけで、プラグイン対応です。Delphiバンザイ。

という事で、調べものしてるつもりが、小一時間でNowListeningプラグインも出来ちゃいました。早速このプラグイン機能をベータ機能として、BlogWrite正式版に含め、どなたでもプラグイン開発が出来るようにしたいと思います。追ってBlogWriteでのプラグイン作成の解説とサンプル公開もしたいと思います。

PerlもCPANのように、オープンソースライブラリとコミュニティが充実していますが、Delphiコミュニティも文化的に非常によく似ていると思います。 他の言語使いの方ごめんなさい。

Delphiをご存知ない方のために:DelphiとはObjectOrientedなPascal言語で、Borlandの製品です。MSのC#言語を設計した人が以前Borlandで開発しました(なのでC#とDelphiは言語的に似てる)。最新のバージョンでは、Win32のネイティブなアプリと.NET上で動くアプリの両方を開発でき、付属のKylixを使えばLinux環境でもネイティブに動くアプリを作れます。Delphiの特徴は、RAD環境と強力なOOP、爆速なコンパイル、ランタイム不要なExe。簡単に言うと、C++とC#の良い所取り、といった感じです。確か、海外で有名なRSSリーダ、FeedDemonの作者の方もDelphi使いだそうです。

Delphiには、
・Javaや.Netアプリのように巨大なランタイムは要らないし、ネイティブにWindowsAPIを扱えるため軽くて高機能なアプリが作れる。
・C/C++にはないRAD環境がある。(同じBorlandから出ているC++BuilderはRAD環境あり)
・Win32以外のOS・環境に対応している。
・将来的には、Delphi・C#・C/C++が一つのIDEに統合される。
・膨大なオープンソースライブラリーをコンポーネントとして簡単に利用できる。
という利点があります。

Winデスクトップアプリケーション開発環境では現状これに対抗できるのはおそらくないんじゃないかと…(ただ、PythonももしIDEやライブラリが充実してくれば、今後ある程度有望になってくると思って注目してます)

投稿者 BlogWrite担当 : 05:29 | コメント (0) | トラックバック

2005年06月17日

Googleの新たなランキング手法が明らかに

GoogleのUS特許申請から、新たなランキングアルゴリズムの幾つかが明らかになったそうです。

Google'sSite Ranking Secrets(Slashdot.org)
Great Site Ranking in Google The Secrets Out

例えば、Googleはあるサイトが登録されてからどのぐらい経っているかを見て、期間が長いサイトであればよりランクを上にする判断材料にするそうです。例えばあるサイトが立ち上がって(ドメイン名の登録日から)一年未満であると、ランキング的には不利な条件となります。

他にも、サイトへのリンク数などが重要な要因だとされていますが、それが順位付けにおいて実際どういう役割をもっているかも解説されています。

例えば、あるサイトへのリンク数の増加率というかスピードまでもが、アルゴリズムのパラメーターとなっているようです。これは、スパムとかを利用して、一気に多くののリンクを一日で作ったりすのを判別してるのでしょうか...推測ですけど。

SEOに詳しいと称する人たちは残らず上記リンクサイトに掲載されているリポートを研究する必要があると思われます。

余談ですが、個人的には小手先のSEOでなくて(ゴテゴテした見た目でもなく)、大事なのは中身かと思っています。過去、いくらSEOに凝ってもだめなサイト、まったくSEO無視して有益な情報を載せただけで4年間Google検索結果のトップをキープしているサイト、個人的に両方作りました。(といっても別にSEO軽視しているわけではなく、記述はXHTMLでちゃんとしてますし、長年やってるので無意識にキーワードを意識した文章とかをそれをHタグでくくったりしてしまう^^;のですが、騒ぐほどの小手先な事はしていません)

ですから、順番的に、SEOより、まず中身を用意すべきだ、といつも(声を大きくして言いたいけれど)心の中で思っているんですよね...。

投稿者 BlogWrite担当 : 01:12 | コメント (0) | トラックバック

2005年06月16日

総務省による子供総ブロガー計画

子どもはみなブログを持て!」(読売新聞)
 総務省は14日、小中高校生のだれもがブログ(日記風の簡易ホームページ)を書くような環境をづくりをめざす方針を決めた。同省が設置した「情報フロンティア研究会」(座長=國領二郎・慶応大学教授)が、日本の「IT(情報技術)力」を強化する方法として、「あらゆる児童・生徒がブログを持つべき」と報告書で提言したのを受けたものだ。

物凄いことになってますね。なんというか、コメントする言葉が見つかりません...。

投稿者 BlogWrite担当 : 02:57 | コメント (2) | トラックバック

AutoPageも一部のXML-RPC APIに対応

AutoPage:「投稿用XML-RPC APIを実装しました」 (ITmediaの記事)

という事で、一部の機能に限られますが、BlogWriteからも投稿出来ます。ただ、

・投稿とカテゴリの設定のみ。

現在の所、画像やファイルのアップロードは出来ませんでした。過去記事の取得も再編集後の更新も出来ません。どうせなら、これらの機能も実装してもらいたい所...。

あと、XML-RPCのエンドポイントの指定が、ちょっとトリッキー。固定アドレスではないので、アカント追加ウィザードで「その他」を選んで自分のブログに合わせて入力する必要があります。

また、技術的に細かい所で言うと、metaWeblog.newPost の返り値のXMLが、微妙に違うので、RC以前のBlogWriteではPostIDが取得出来ないでいます。

AutoPageはPostIDがInteger型で返ります。
//methodResponse/params/param/value/i4
他のブログはすべて文字列型です。
//methodResponse/params/param/value/string

Integer型で返るのが正しいのかどうか知りませんが、とりあえずBlogWriteIIではIntegerで来てもOKにしました。

投稿者 BlogWrite担当 : 02:50 | コメント (0) | トラックバック

2005年06月14日

BloggerのRate Limit

どうもBloggerでは「Rate Limit」というのが導入されていたらしく、ある特定の回数Bloggerに記事を投稿すると、”Rate Limit”に達して、一度Bloggerのサイト上でログイン+人間にしか読めない(という事になっているが時には人間にも読めないという噂の)画像に表示された文字を打ち込まないといけないらしいです。これはAPI経由の投稿だけでなく、Webベースの投稿も同様だそうです。

これにより、スパマーによる悪用を防ぐという効果があるからだそうです。では何回ごとにこのリミットに達するのか、というのはナイショらしいです。つまりは、ここまで対策をしなければならないほどひどく悪用されているという事でしょう。

とっても危ういと思うのは、日本ではExcite(なぜか独自APIですが)とかS*e***さんのブログのように、API経由でプログラミング的に自動でアカウント作成からブログの作成、記事の投稿、トラックバックまで打ててしまうと、スパマーに悪用される危険が非常に大きい(Bloggerよりも)のではと思います。 (BloggerではアカウントもブログもAPIでは自動で作れないようになっている)

スクリプトでちょちょいとやると、あっというまに...。数千のアカウントに万のゾンビーブログが手当たりしだいトラックバックスパムを連射しまくり、という悪夢を想像してしまいます。

各サービスの対応はどうなんでしょうか...

以下考察...

IPアドレスで弾くのも無理があるし...。関係ないネットワーク丸ごと弾くというリスクもあるし...

クッキー食べさせるー>そのたびにクッキー破棄されたら無効

...結局、ExciteブログとかS*e***ブログさんとかは、BloggerのまねしてRate Limitのようなものを導入するか、アカウント作成する独自APIを捨てるしかなくなるんじゃないか、と...。少なくともこれ読んでなにかしら対策をしてくれると少し安心かもしれません...

もっともAPI使わないでやる方法もあるにはあるので、悪用される可能性があるのはどのブログサービスでも同様かとは思いますが、悪用し易さというか敷居の低さは大きいと思います。

投稿者 BlogWrite担当 : 18:13 | コメント (0) | トラックバック

ベクターへBlogWriteIIの差し替え申請

オンライン ソフトウェア ショップのベクターでBlogWriteを取り扱ってもらっているのですが、そのベクターのカテゴリー別一覧 「Windowsソフト > インターネット&通信 > インターネット >」で、「人気順」で122件中、上から3番目です。子供向けの フィルタリングソフト、ダウンロード高速化ソフトについで、紙 copiやOperaより上らしいです..。そこまで人気、という実感はないんですが...いや頑張ります。

追記:現在BlogWriteIIへの更新作業中のため、リストから取り下げられてます。金額も変わったので、別ソフトの扱いになると思うので順位もリセット。
http://shop.vector.co.jp/service/list/category/win/net/internet/

パッケージ化した方が良いのかしら…

ええと・・・本題は、ベクターさんにBlogWriteII正式版として旧バージョンと差し替えてもらうように申請しています。通常公開まで数日から一週間はかかるので、早めに申請しました。近いうちにBlogWriteIIがベクター経由で購入出来るようになると思います。それと同時に、ここのウェブサイトの方も切り替えたいと思います(まだページ作成していないとも言います^^;)。大変お待たせしております..。

追記:差し替えの作業のため、現在ベクターで申し込むことが出来ない状態です。申し訳ありません。

投稿者 BlogWrite担当 : 13:40 | コメント (0) | トラックバック

2005年06月11日

BlogWriteII RC

前回、「ベータ版最後」と表現しましたが、正式版までに、まだ一段階あったりします。

RC (Release Candidate)、つまり 「正式版候補」というやつです。^^;

今回のバージョンでは、以前のBlogWrite1.xバージョンの設定ファイルや記事ログをBlogWriteII用に変換する機能が追加され、ヘルプが追加されました。以前のバージョンをインストールしたフォルダに上書きインストールすれば、設定ファイル等を更新するはずです。不具合が無ければ、これで行きたいと思っています。

設定やログの変換手順
(0.テストはかなりしましたが、万が一ログが吹っ飛ぶ事もありえますので、BlogWriteのフォルダのまるごとバックアップを取ります。)
1.もし以前のバージョンのBlogWriteがインストールされている場合は、削除してもしなくてもどちらでも構いません。(アンインストールしても、ログや設定ファイルは残ります)
2.BlogWriteRCを以前のバージョンと同じフォルダにインストールします。
3.BlogWriteの初回起動時、もし古い設定ファイルを見つけたら、変換画面が表示されます。その画面で「変換」ボタンを押し、終わったら、「閉じる」ボタンを押します。
4.BlogWriteが起動します。

BlogWriteII RCのダウンロード

ご注意:
正式版候補ですので、不具合等が残っている可能性があります。また、すでにBlogWriteをインストールされている方は、以前のバージョンの設定ファイルやログファイル等をバックアップをしてからご利用ください。上書きインストールすると、設定ファイルとログファイルを変換します。インストールはダウンロードしたインストーラを実行しウィザード形式でインストールします。アンインストールは、コントロールパネルの「アプリケーションの追加と削除」より削除してください。

上記について了解された方は、BlogWriteII RC版のダウンロード

追記:
なお、機能を限定した無料版については、
同時に公開する予定です。

追記2:
変換時における、以下の不具合を修正しました。
「アップロード先ディレクトリの指定」 の引継ぎがされていなかった。
ログ保存フォルダを既定以外に指定していた場合、ログが表示されなかった。

投稿者 BlogWrite担当 : 22:35 | コメント (10) | トラックバック

XML-Atom

XML-Atom 0.12 - blog.bulknews.net
CPANに登録されている、AtomフォーマットやAPI用のPerlモジュールのXML-Atom。マルチバイト関連のバグが解消され、オリジナル作者(MTの人)から引き継いだmiyagawaさんがメンテする、とのことです。

TypePadやMovableType(あとLivedoor Blogも?)でのAtomAPI利用とかで、色々改善されるんじゃないかと思いつつ、XML-Atomモジュールに関するより多くの文書・サンプルとか色々期待しちゃいますね。

一つ現実的な要望なのですが、レンタルサーバーとかにもインストールできるように、XML::LibXMLやMIME::Base64 をはずしてファイルコピーでインストールできるPurePerl版のXML-Atomって出来ないんでしょうか。

AtomAPIを利用して、ちょっとしたサイト連携サービスを行いたい時、XML::Atomを使いたいと良く思うのですが、管理者権限のないPerl5.6とかのレンタルサーバーでは簡単に設置できないため不便に思っています。かと言って一からAtomAPIサーバーを作るのもひどく効率が悪く...。きっとこういった需要もあるのではないかと思いますが...って自分が使いたいとも言う...。

投稿者 BlogWrite担当 : 04:04 | コメント (0) | トラックバック

2005年06月02日

BlogWriteII Beta v8 last!

BlogWriteIIベータ最新版であり、不具合が無ければこれをもってベータ版最後としたいなバージョンを公開いたします。

新規追加
リクエストにより、
・「名前を付けて保存」
・「打ち消し線」
・「画像の上書き確認」 の追加。
・インストーラー(セットアップ)による頒布開始
・「ファイルの関連付け(エクスプローラーより、エントリーファイルのダブルクリック等)により開く」開始

バグ修正
・画像のリンク追加、編集が出来なかったバグ修正
・下書きの保存が一時出来なくなっていたかもしれないバグ修正
・他多数

残りの作業
・マニュアル・ヘルプ文書作成
・BlogWrite 1.x系列の投稿ログをBlogWriteIIに移行する変換ツール作成

ダウンロード

ご注意:
ベータ版ですので、ご利用はテストなどにとどめてください。まだ不具合等が残っている可能性があります。また、すでにBlogWriteをインストールされている方は、上書きインストールしないでください(ログ形式やフォルダ構成が変わりました)。インストールはダウンロードしたインストーラを実行しウィザード形式でインストールしてください。アンインストールは、コントロールパネルの「アプリケーションの追加と削除」より削除してください。

上記について了解された方は、BlogWriteIIベータ8のダウンロード

追記:
バージョンアップにおける金額に関するお問い合わせをポツポツ頂くので、念のためお知らせですが、すでにユーザー登録されている方のバージョンアップは無料です。
 ただ、現ベータ版のBlogWriteIIが正式版になった時の新規の値段はすこーしあがるかもしれません。まだ未定ですが、そういう事はいきなりやらないポリシーなので、一応あらかじめ...かもしれないとだけ。

投稿者 BlogWrite担当 : 17:59 | コメント (8) | トラックバック