FC2 ソーシャルスパム対策の API を扱う Services_FC2 を作りました

  FC2 がスパム情報を共有するソーシャルスパム対策なるサービスを始めたので,公開されている API を利用して結果を取得するライブラリ Services_FC2 をつくりました.

- FC2 ソーシャルスパム対策
  http://seo.fc2.com/spam/

  Services とついていますが,PEAR パッケージには全くなっていません.
  バージョンも 0.0.1 となっていますが,今後バージョンアップされるかどうか不明です.

- Services_FC2
  http://pocari.org/tools/php/Services_FC2-0.0.1.tgz

- サンプル
  上記ライブラリを展開して,Services_FC2-0.0.1 を Services にリネームして,以下のサンプルでとりあえず使えます.

<?php
require_once 'Services/FC2.php';

$fc2 = Services_FC2::factory('SPAM');

// URL を指定してスパムサイトに登録してあるかどうか取得
// オプションを個別に設定する
$fc2->setURL('http://example.com');
$fc2->setCharset('EUC-JP');
$fc2->setData(1);
$result = $fc2->execute();

echo $result, "\n";

// スパムリストの取得
// オプションを一括で設定することもできる
$fc2->setOptions(array(
    'm' => 'ul',
    'chr' => 'EUC-JP',
));
$result = $fc2->execute();

echo $result, "\n";
?>


- API のヘルプ
  http://seo.fc2.com/spam/spamapi.php?m=h

  使ってみるとすぐ分かりますが,この API はまだ発展途上のようです.

o 結果がどのような形で返って来るのかよくわからない
  XML でもなんでもないただの CSV っぽいもので返って来るのですが,戻り値が仕様に明記されていないのでよくわかりません.

o キャラクターコードを指定しても,エラーメッセージは Shift-JIS 固定っぽい

o オプションの data に 1 を指定して,スパム情報詳細を返すようにするとなぜか <br> のように HTML のタグが含まれて返って来る.

o 最新のデータが返されないっぽい (現在は 1 件だけしか返ってこない?)

SunOS 5.10/5.11 の in.telnetd に欠陥が

- SunOS 5.10/5.11 in.telnetd Remote Exploit by Kingcope
  http://www.st.ryukoku.ac.jp/~kjm/security/memo/2007/02.html#20070212_SunOS

  SunOS 5.10/5.11 の in.telnetd にリモートから認証なしでログインできる欠陥が見つかったということです.
  カンタンに手作業で入れてしまいます.

  手元の Solaris 10 1/06,06/06 でも再現しました.
  とりあえずの対策は in.telnetd を disable にすることでしょうか.

# svcadm disable telnet

  以下の記事も参考に

- ref.: SunOS 5.10/5.11 in.telnetd に認証迂回の脆弱性
  http://diary.sytes.net/solaris/?20070212#12-1

- 追記 (2007-02-21)
  パッチが出ました
o 120068-03 SunOS 5.10: in.telnetd patch
o 120069-03 SunOS 5.10_x86: in.telnetd patch

SEO SEM Technique vol.1

  4798112615
  http://www.amazon.co.jp/o/ASIN/4798112615/todaysnonsenc-22/ref=nosim/
  SE編集部 (編集)
  翔泳社
  ISBN: 4798112615
  2007/3/2
  1,554 円

検索エンジン対策、インターネットマーケティング対策を網羅したウェブマーケティング専門誌

デザイニング・インターフェース - パターンによる実践的インタラクションデザイン

  4873113164
  http://www.amazon.co.jp/o/ASIN/4873113164/todaysnonsenc-22/ref=nosim/
  Jenifer Tidwell (著), ソシオメディア株式会社 (監修), 浅野 紀予 (翻訳)
  オライリー・ジャパン
  ISBN: 4873113164
  2007/01
  3,990 円

本書『デザイニング・インターフェース』は、ウェブアプリケーション、インタラクティブなウェブサイト、デスクトップアプリケーション、携帯電話などのインターフェースをデザインするデザイナーとプログラマーのために、デザイン上の問題に対するすぐに使える解決策を「パターン」として体系化した書籍です

- oreilly.co.jp -- Online Catalog: デザイニング・インターフェース
  http://www.oreilly.co.jp/books/9784873113166/

情報セキュリティ技術大全 - 信頼できる分散システム構築のために

  4822281426
  http://www.amazon.co.jp/o/ASIN/4822281426/todaysnonsenc-22/ref=nosim/
  ロス アンダーソン (著), Ross J. Anderson (原著), トップスタジオ (翻訳)
  日経BP社
  ISBN: 4822281426
  2002/09
  6,090 円

情報セキュリティの世界的権威が,ハード/ソフト/制度の側面から技術を体系的に整理した教科書

elxl0 を full duplex にする方法

- 注意:
  以下の情報は,正確なものではありません.この設定をしても,スイッチを確認すると harf duplex でしか通信していませんでした.
  解決策は末尾に追記しています.


  Solaris 10 で elxl0 なインタフェースを搭載した機械との scp がやたら遅いので調べてみました.
  

1. まず,インタフェースの確認.

$ ifconfig elxl0
elxl0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
       inet 192.168.1.xxx netmask ffffff00 broadcast 192.168.1.255

2. モジュールの情報を確認

$ modinfo | grep elxl
133 f9a36000   58e8  39   1  elxl (3Com 90XX LAN driver 1.34)

  elxl は 3Com の NIC ということがわかります.

3. 現在の通信方式と接続速度を確認

$ kstat -p :::duplex :::ifspeed
elxl:0:elxl0:duplex     harf
elxl:0:elxl0:ifspeed    0

  通信方式は半二重方式で,接続速度は 0 (???) ということがわかりました.
  これを全二重方式 (full duplex) で接続速度を 100000000 (100M) にしてあげればよさそう.

4. man を見てみる

$ man elxl
Devices                                                  elxl(7D)

NAME
     elxl - 3Com Ethernet device driver

SYNOPSIS
     /kernel/drv/elxl

    :

FILES
     /dev/elxl                       Special character device
     /kernel/drv/elxl.conf           Configuration file for  elxl
                                     driver

  /kernel/drv/elxl.conf が elxl の設定ファイルということがわかりました.

# vi /kernel/drv/elxl.conf

#ident  "@(#)elxl.conf  1.4 00/07/17 SMI"
#
# Copyright (c) 1998, by Sun Microsystems, Inc.
# All rights reserved.
#
# Driver.conf file for the 3Com 3C90x
#
# To force full duplex operation, uncomment the following line:
full-duplex=1;
#
# To force half duplex operation, uncomment the following line:
#full-duplex=0;
#
# To force 10Mbps operation, uncomment the following line:
#speed=10;
#
# To force 100Mbps operation, uncomment the following line:
speed=100;


  これで OK...と思ったら大間違いです.この設定をするとインタフェースが起動しなくなります.
  ですので,先に下の 5 を行うのがいいでしょう.

  注: ndd でテストしてみるのが王道でしょうが,なぜか elxl は ndd で値をセットできませんでした...?

5. 3c90xcfg.exe で通信方式と通信速度を変更する

  3c90xcfg.exe というのは 3Com の NIC の DOS 用 診断プログラムです.
  これをダウンロードしてきて,Boot 可能な FD にコピーして DOS で起動します.

- 3c90x2.exe (含 3c90xcfg.exe)
  ftp://ftp.3com.com/pub/nic/3c90x/3c90x2.exe

  診断プログラムで通信方式を full duplex に,通信速度を 100M に設定します.

6. ブートして確認

  うまくいけば,ちゃんとブートしますので,ここで通信方式と通信速度を確認してみます.

$ kstat -p :::duplex :::ifspeed
elxl:0:elxl0:duplex     full
elxl:0:elxl0:ifspeed    100000000

  無事,全二重方式で 100M に設定されました.もちろん scp も劇的に改善しています.
  環境は Solaris 10 x86 でした.

- ref.: Re: Full duplex with elxl0: 3Com 90XX LAN driver on Solaris x86
  http://www.dbforums.com/showpost.php?s=f058de31a8eb53479a1effb026633668&p= ...


- 追記
  上記の情報は,正確なものではありません.この設定をしても,スイッチを確認すると harf duplex でしか通信していませんでした.

  解決策は単純に /kernel/drv/elxl.conf の speed のみを 100 に設定すれば OK です.

# vi /kernel/drv/elxl.conf

#ident  "@(#)elxl.conf  1.4 00/07/17 SMI"
#
# Copyright (c) 1998, by Sun Microsystems, Inc.
# All rights reserved.
#
# Driver.conf file for the 3Com 3C90x
#
# To force full duplex operation, uncomment the following line:
#full-duplex=1;
#
# To force half duplex operation, uncomment the following line:
#full-duplex=0;
#
# To force 10Mbps operation, uncomment the following line:
#speed=10;
#
# To force 100Mbps operation, uncomment the following line:
speed=100;


  上記手順 5 の 3c90xcfg.exe を使った通信方式と通信速度を変更は必要ありません.

  この設定をしても,kstat の表示は harf duplex のままですが,スイッチで確認すると問題なく full duplex になっています.

$ kstat -p :::duplex :::ifspeed
elxl:0:elxl0:duplex     harf
elxl:0:elxl0:ifspeed    0

  おそらく,ドライバの表示が間違っているのではないかと思われます.

TracWebAdmin を日本語化する

  ブラウザ経由で Trac の設定を行う TracWebAdmin プラグインを日本語するパッチを作りました.

- パッチ: webadmin-r4429-ja.patch
  http://pocari.org/tools/trac/webadmin/webadmin-r4429-ja.patch

- 日本語化した egg ファイル
  egg ファイルは python のバージョンにあわせて作るものらしいです.
  python 2.3 で作ったものをおいておきます (でも,これで動くかどうか分かりません).

- python 2.3 で作った egg ファイル
  http://pocari.org/tools/trac/webadmin/TracWebAdmin-0.1.2dev-py2.3.egg

- 動作確認環境
o Trac 10.2
o Python 2.3
o Solaris 10

  パッチの適用方法は以下のようになります.

1. TracWebAdmin の最新版を取得する

  http://trac.edgewall.org/browser/sandbox を見てみたところ最新リビジョンは 4429 のようですので,このリビジョンを取得します.

$ svn export -r 4429 http://svn.edgewall.com/repos/trac/sandbox/webadmin/
A    webadmin
A    webadmin/webadmin
A    webadmin/webadmin/web_ui.py
A    webadmin/webadmin/htdocs
A    webadmin/webadmin/htdocs/css
A    webadmin/webadmin/htdocs/css/admin.css
A    webadmin/webadmin/htdocs/img
A    webadmin/webadmin/htdocs/img/collapsed.png
A    webadmin/webadmin/htdocs/img/expanded.png
A    webadmin/webadmin/htdocs/js
A    webadmin/webadmin/htdocs/js/admin.js
A    webadmin/webadmin/plugin.py
A    webadmin/webadmin/__init__.py
A    webadmin/webadmin/perm.py
A    webadmin/webadmin/ticket.py
A    webadmin/webadmin/basics.py
A    webadmin/webadmin/logging.py
A    webadmin/webadmin/templates
A    webadmin/webadmin/templates/admin_perm.cs
A    webadmin/webadmin/templates/admin_basics.cs
A    webadmin/webadmin/templates/admin_enum.cs
A    webadmin/webadmin/templates/admin_version.cs
A    webadmin/webadmin/templates/admin_plugin.cs
A    webadmin/webadmin/templates/admin_milestone.cs
A    webadmin/webadmin/templates/admin.cs
A    webadmin/webadmin/templates/admin_log.cs
A    webadmin/webadmin/templates/admin_component.cs
A    webadmin/setup.py
A    webadmin/COPYING
A    webadmin/setup.cfg
Exported revision 4429.

2. パッチを当てる

$ cd webadmin
$ patch -p0 < ../webadmin-r4429-ja.patch

  これで日本語化されます.

3. egg を作る

$ python ./setup.py bdist_egg

  これで,dist の中に TracWebAdmin-0.1.2dev-py2.3.egg のような egg ファイルが出来上がります.

4. プラグインをインストールする

  /usr/lib/share/trac/plugins とか /path/to/project/plugins とかにコピーして,trac.ini に以下のように記述します.

[components]
webadmin.* = enabled


- スクリーンショット



- 注意事項
  日本語化といっても,説明の文章は翻訳していませんので,ご注意ください.
  あと,私は python については全くの素人ですので,egg ってなに?とか聞かれてもよく分かりません.

Solaris に swap 領域を増やす方法

  Solaris では,普通のファイルを swap として使用することができます.
  これを利用して,swap 領域を増やす方法.

1. まず,現状の swap の確認

# swap -l
swapfile             dev  swaplo blocks   free
/dev/md/dsk/d3      85,3       8 1060280 1060280

2. mkfile でファイルを作成して,swap 領域に割り当てる

# mkfile 256m /usr/swap
# swap -a /usr/swap

3. 再度確認

# swap -l
swapfile             dev  swaplo blocks   free
/dev/md/dsk/d3      85,3       8 1060280 1060280
/usr/swap             -        8 524280 524280

  無事 swap 領域が増えていることがわかります.

4. 次回ブート時にも有効にする場合

# vi /etc/vfstab
/usr/swap   -   -   swap   -   no   -

  /etc/vfstab にこのように追記します.

- ref.: WARNING: /tmp: File system full, swap space limit exceeded
  http://docs.sun.com/app/docs/doc/805-5837/6j5gpcgb5?l=ja&a=view#msgs-880

- ref.: Not enough space
  http://docs.sun.com/app/docs/doc/805-5837/6j5gpcgas?l=ja&a=view#msgs-631

smpatch が Response code was 403 で終了する

  Solaris 10 で smpatch でアップデートしようとしても,Failure: Response code was 403 のメッセージを出力して終了してしまう件.

# smpatch analyze
Failure: Response code was 403

1. まず登録情報を一度削除する.

# cacaoadm stop
# cacaoadm status
# /usr/lib/cc-ccr/bin/eraseCCRRepository
# rm /var/scn/persistence/SCN*
# reboot

2. その後,再登録.

# cp /usr/lib/breg/data/RegistrationProfile.properties .
# vi RegistrationProfile.properties

userName=Sun Online のユーザ名
password=同パスワード

# sconadm register -a -r /tmp/RegistrationProfile.properties
sconadm is running
Authenticating user ...
Collecting asset ...
Registering asset ...
sconadm has been completed successfully

  以上で smpatch が再度使用可能になるはず.

- ref.: update tools: Response code 403 errors
  http://forum.java.sun.com/thread.jspa?threadID=5118256