pie001's room

about PC, etc...

XML-RPC 使ってみた

2005-11-29 03:01:54 | パソコン
XML-RPC が公開されたとのことで、ちょっと使ってみました。


まず、XML-RPC が使える環境を整えることにしました。

言語は Java を使うことにしました。

ここから Apache XML-RPC をダウンロードして、xmlrpc-2.0.jar をクラスパスに追加。

で、ここを参考に簡単なテストプログラムを書いて実行してみると、、エラー。
メッセージは以下のとおり。
 Exception in thread "main" java.lang.NoClassDefFoundError:
 org/apache/commons/codec/DecoderException

デコーダーが無いのね。。ということで、ここから commons-codec-1.3.jar
ダウンロードしてクラスパスに追加。

でテストプログラムを実行してみると、、、成功!


環境が整ったところで、勢いに乗って goo ブログから記事を取得するプログラム
を書いてみました。

参考にしたのはこちら

実行すると、、日本語が文字化け。( ̄□ ̄;)!!
なんで、、テストプログラムでは日本語通ったのに。。。

レスポンスを調べたところ、テストプログラムでは日本語が
XML のエンティティで表現されているのに対し、
goo ブログは UTF-8 で返ってくるからだと判明。

XML を読み込むときに UTF-8 と指定できればよいのね。
けど、そんなパラメータないぞ。。
ぐぐってみたけど、解決には至らず。。

仕方ない、、ソースコードを改ざんするか、、と思い、ソースをのぞいた
ところ、ちゃんと文字コードを指定できる部分があることが判明。
static メンバを参照してるので、
 XmlRpc.setDefaultInputEncoding("UTF-8");
を早めに呼び出すことで、UTF-8 の XML を読み込めるように
なります。 (日本語表示できるようになります。)

実行結果がこちら↓。

 % java XMLRPCTest "pie001" "password"
 goo RSSリーダーで「ココだけの話」の更新に気づく方法
 DVD スターウォーズ・エピソード3
 Firefox インストール
 マイルール
 普天王関 復帰!

タイトルしか表示してませんが、記事の内容とかもちゃんと取得できて
ます。

サンプルソースコード XMLRPCTest.java はこちら↓。
// --- ここから ---
import java.util.Iterator;
import java.util.Vector;
import java.util.Hashtable;
import org.apache.xmlrpc.XmlRpc;
import org.apache.xmlrpc.XmlRpcClient;

public class XMLRPCTest {
    private static String getBlogid(XmlRpcClient client, String username, String password)
    throws Exception {
        Vector<String>  params = new Vector<String>();
        params.add("appkey");   // appkey は何でもよいらしい
        params.add(username);
        params.add(password);
        
        // ブログリストを取得
        Object  result = client.execute("blogger.getUsersBlogs", params);
        
        if (result instanceof Boolean) {    // ブログリストが取得できなかった場合、false が返る
            throw new Exception("can't get UsersBlogs");
        }
        
        // 1 件目のブログの blogid を返す
        return (String) ((Hashtable) ((Vector) result).get(0)).get("blogid");
    }
    
    public static void main(String[] args) throws Exception {
        String  username = null;    // gooID
        String  password = null;    // 投稿専用パスワード
        if (args.length > 1) {
            username = args[0];
            password = args[1];
        } else {
            System.err.println("usage: java XMLRPCTest username password");
            System.exit(-1);
        }
        
        XmlRpc.setDefaultInputEncoding("UTF-8");
        XmlRpcClient client = new XmlRpcClient("http://blog.goo.ne.jp/xmlrpc.php");
        
        // blogid を取得する。
        String  blogid = getBlogid(client, username, password);
        
        Vector<Object>  params = new Vector<Object>();
        params.add(blogid);
        params.add(username);
        params.add(password);
        params.add(new Integer(5)); // 5 件取得
        
        // 記事を取得する。
        Vector  result = (Vector) client.execute("metaWeblog.getRecentPosts", params);
        
        if (result.size() == 0) {   // 記事が取得できなかった場合
            throw new Exception("can't get RecentPosts");
        }
        
        Iterator    i = result.iterator();
        while (i.hasNext()) {   // 記事の数だけループ
            Hashtable   hash = (Hashtable) i.next();
            System.out.println((String) hash.get("title")); // タイトルを表示
        }
    }
}
// --- ここまで ---

Firefox インストール

2005-11-24 02:22:39 | パソコン
Firefox 入れました。

普段から RSSリーダーとして goo RSSリーダーを使っていましたが、
少々不満があるので、それが解決できないかなぁと思いまして。

Firefox に RSS リーダー拡張機能 Sage をインストール。

使ってみると、、、けっこういける。
goo RSSリーダーでは、ブログを読んでいると、そのうち動作が重くなって
動かなくなるというメモリーリークっぽい症状が出たのですが、それが
なくなりました。

あと、タブ機能はやっぱり便利。
netscape7.1 にもあって、そのときも便利だなぁと思っていたのですが、
でも netscape7.1 は起動するのが遅くて、使うのをあきらめてました。
それに比べると、Firefox は起動するのが速いです。動作も軽快(^.^)

Firefox には、DOM インスペクタなるツールが付いてきます。
(インストールするときに「カスタム」で選択する必要あり)
これは、HTML などの構造を表示してくれるツールなのですが、
他人のホームページのレイアウトを参考にしたいときとかに、
直にソースを解析するよりも、簡単に HTML の構造がわかって便利です。

あとは、ソースを表示するときに秀丸で表示できたら・・と思ったら、
同じようなことを考える人がいるんですね、ありました、
任意のアプリでソースを表示できる拡張機能が。

ViewSourceWith

これで不満がほぼなくなりました。
IE から乗り換えようかな。。

Windows XP 再インストール

2005-11-08 18:13:06 | パソコン
家のパソコン、FMV-BIBLO NB16C の Windows XP を再インストールしました。

なぜ思い立ったかというと、最近ハードディスクの残りが少なくなってきてたし、
消せないアプリとかあったし、ちょっと前Linux の入れ替えを行った
ときに Windows 領域もバックアップしてて 'ついで' というやつで。


リカバリディスクを使って再インストール。

こういうとき、MBR に LILO を入れなくて良かったと思う・・。
入れてると、リカバリディスクに削除されちゃうから。
(ひょっとして最近のは大丈夫なのかな?以前はされた)
今回は、ここの方式でデュアルブートさせてたので、比較的容易に
デュアルブート環境を復元できました。


再インストールも終わり、「今回は簡単だったな」なんて思ってたころ、
ちょっと問題が

画面の「FMV ユーザー登録」や @nifty の広告等が、、消えない!

どうやって消すんだ!?と思い、探りました。

・終了ボタン無し
・右クリックしてもダメ
・タスクバーにもそれらしいアイコンは無し
・アクティブデスクトップ系か?と思い、画面のプロパティを探るも
 それらしいものは見当たらず。

以前は、どうやって消したんだろう・・・そういえば、、
レジストリを弄った気が。(-_-;;)

今回も regedit るか、、と思ったけど、その前に起動スクリプトを
GUI で見れるツール
があったのを思い出しました。

[スタート]-[すべてのプログラム]-[アクセサリ]-[システム ツール]
-[システム情報] で「システム情報」ダイアログを起動。
そのダイアログで[ソフトウェア環境]-[スタートアップ プログラム]を開く

すると、それっぽいのがありました。「FMVランチャー」。

こいつか、と思い削除しようと regedit 、、、する前に、ちょっとした
気まぐれで「FMV ランチャー」のフォルダー (c:\\fjuty\\wallbtn) を
見てみることにしました。

そこにあったのは、「FMVLauncherManager.exe」!
いかにもあやしい。。起動すると、なんと「FMVランチャー 設定」ダイアログが!!

・・広告類を、無事削除できました。\(^O^)/


以前はレジストリを直接弄った (ちなみに起動スクリプトは、たいてい
HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run
にある。。)
ので、それに比べると進歩したなぁ (!?) なんて思いつつ、、
でも設定ダイアログなんてものは、もっと分かりやすいところに
置いておいてほしい
ものです。

----------------------------------------------------------------

このことを記事にするにあたり、どっかに書かれてるかなと思って
「FMVLauncherManager」をぐぐったところ、、0 件
やっぱり、この存在を知ってるのは私だけねっ!とちょっとうれしくなりました。

でも念のためと「FMVLauncher」でぐぐったところ、何件か引っかかりが。。

見てみると、、

[スタート]-[すべてのプログラム]-[FMVランチャー]-[FMVランチャー設定]
で設定ダイアログが開く


とある。
起動してみると、まぎれもなく、私が苦労して発見した
FMVLauncherManager.exe

・・・そんなところにあったんかい!!

 ・・レジストリまで手を出してた私って一体。。


でもね、こういう設定ダイアログは、ちゃんと右クリックから表示できる
ようにしようよ、、オブジェクト指向的じゃないよ、、と思った
Windows XP 再インストール編でした。

Linux 入れ替え

2005-11-03 18:13:49 | パソコン
家で使ってるパソコンは、富士通の FMV-BIBLO NB16C です。

このパソコン、デュアルブートするようになっていて、Windows XP と
Linux が入っています。

この Linux を Red Hat Linux 8.0 から Vine Linux 3.2 に入れ替えました。


Vine が付いてる本を買ってきてインストール開始。

インストールは、GUI で出来るか不安でしたが、問題無く起動し、インストールできました。


問題は、デュアルブートの部分。

ここを参考に作業を行ってましたが、

 また、Linuxをインストールする際は、必ずブートディスク(起動FD)を作成すること。
 そうしないと、Linuxを起動するすべがなくなってしまい、Windows XPとLinux
 を共存させるためのLinux上での作業ができなくなってしまう。


Vine のインストーラでは、インストール過程で起動ディスクが
作成できなかったんですね。

よって、

 ・・・見事に Linux が起動できない。。

こんなことなら、MBR に LILO をインストールするんだった、、
なんて思っても後の祭り。


なんとかして Linux を起動せねば・・。

ということで、ここを頼りに GRUB 起動ディスクを作成

そのフロッピーディスクを入れてパソコンを起動。

Linux はハードディスクの 3 つ目のパーティション (/dev/hda3) に
入れたため、表示された GRUB のプロンプトに以下を入力。

grub> chainloader (hd0,2)0+1
grub> boot

すると、ようやく Linux 起動

あとはデュアルブートするよう設定して、作業完了。
Vine に生まれかわりました。


使ってみた感想は、
Red Hat Linux 8.0 と比較して Vine Linux 3.2 は、

・ソフトが全般的に新しい。 (当たり前か)
・カーネルを再構築しなくても ntfs をマウントできる。
・shutdown すると自動的に電源も落ちてくれる。
・apt が便利

といったところでしょうか。 (その他にもあるんでしょうけど、それは追々)


1 日仕事でした。ふぅ~、やれやれ。。。