b-mobile fair また購入

去年の夏,少しだけ安く購入したb-mobile fair.
今回は80MB程度を残して期限が切れた.
この80MBを10円でも8円でも売れる手段があればいいのに.

さてこいつをまた購入するにあたり,(どうしても,クレカを日本通信に登録し,同じ SIM を継続して使うチャージは嫌なので,)どこが安いか探してみたところ……やはり新規 SIM の購入で,amazon より安いところを見付けられなかった.
amazon の価格はコロコロ変わるが(メールの安売り紹介を開いたら値段が20%以上も釣り上がっていることがよくある amazon),他との価格が開いているので,まぁここでいいのかな.
私の購入時点の単価は,およそ1ヶ月あたり2,200円程度なので,夏に買った時と殆ど価格差なし.

しかし,服みたいにコーディネーターがつく商売ならともかく,直販より高い値段で直販と全く同じ品(SIM)を並べているオンラインショップは,何を考えてんだろうか.
ポイントを 100% 還元できたとしても直販に価格で勝てないし,送料はかかるし,商売する気がないとしか思えない……不思議だ.

VAIO TYPE-C (VGN-C61HB) に WinXP を入れてみた

追記
FeliCa ポートのドライバは,誤ったものを入れると削除もロールバックもできなくなるので,注意されたい.
復元ポイントを有効にしていれば,戻せるのかも知れないが,私は有効にしていないので手遅れ.
これからトライする人は要注意.

Vista がやたら重いので,Win XP を入れた.
基本的には,XP のインストール CD をドライブにつっこんで,クリーンインストールし,ドライバを入れるだけ.
問題は,ノートPCの場合,適切なドライバに何を選択すべきかよく分からないこと.
一応,VAIO のダウングレード情報は,1つ前の機種になるが, SONY VAIO type C part4 の >>15 を参考にした.
いくつか動かないものがあるので,デバイスマネージャのデバイスを右クリックし,
詳細タブから「PCI\VEN_xxxx&DEV_xxxx」をそのまま入力し,検索する.
driver-id.info とか devid.info とか,色々出てくるので,罠driverではないことを祈りながらインストールする.
一番肝心の Ethernet ドライバが先のスレの情報で当たらない上,XP SP2 で WPA 対応してないために,自宅の環境では,よく分からないドライバを入れざるを得ない.

ちゃんと当たれば,Vista 時代と比べればとても軽快な使い心地が待っている.

幸運を祈る

元利均等返済方式

計算の理屈については,元利均等返済方式における割賦金の算定についてを参照のこと.
返済シミュレータは,元利均等返済方式の返済シミュレータを参照のこと.

シミュレータの使い方.
割賦回数指定のシートと,割賦金指定のシートがあるので,目的に応じて選択する.
シート内の薄黄色のセル(借入条件)にパラメータを入力する.
繰り上げ返済の効果を見るには,繰上返済金欄へ金額を入力する.
頭金は,繰上返済金欄の返済月0ヶ月の欄に入力する.
実返済回数の欄が,頭金や繰上返済の効果を盛り込んだ実際の割賦回数となる.

注意.
割賦金指定のシートの返済予定総額の欄は,割賦金と割賦回数からのみ算定しているため,誤差が入る.
泣かないこと.

SSL でアクセスするページ(https) のエラー

Internet Explorer 9 で,「https://...」というURLにアクセスすると,「Internet Explorer ではこのページは表示できません」というメッセージが表示される場合がある.
色々と原因が考えられるが, Firefox など他のブラウザでアクセスできるのに IE でアクセスできない場合は,インターネットオプションに問題がある場合がある.

「インターネットオプション」>「詳細設定」のタブを選択して,
「TLS 1.1 の使用」
「TLS 1.2 の使用」
のチェックボックスを外すと,問題が解決することがある.
一方で,TLS 1.2 に対応したページが表示できなくなることもあった.

ということで,面倒ながらアクセスしたサイトでエラーが出る度に,オプションを変えてアクセス仕直すなどの試みが必要となるかも知れない.

Android で MP3 の ID3 タグが文字化け

Shift-JIS で書かれた ID3 タグは文字化けするらしい.
解決するには,MP3tag で mp3 を開いて,タグを保存し直せばOK.

注意:Windows 7 で mp3tag の日本語用 lang ファイルをインストールフォルダ配下の lang フォルダへコピーする時, Windows 標準のエクスプローラでコピーしないと,オプションで選択できない.
UAC 絡みっぽいけど,詳しい原因は知らない.

spammer counter v4 と viewer v2

当サイトでは, spammer と思しき IP アドレスからのアクセスを禁止している.しかし,禁止後もアクセスを続けるしつこい spammer が多い.
特にしつこい spammer は何か,あっさり消えた spammer は誤爆かも知れない,という観点から,アクセス禁止後も引き続き継続するアクセスを, IP アドレス毎にカウントしたい.
ということで,前回の spammer counter v3 では, MySQL を使って簡易に実装した.

今回は, IP アドレス毎にソートできるようにした.
これは,

  • ある程度の IP アドレスのレンジでアクセスを繰り返す spammer をネットワークアドレスで弾いて,.htaccess をスリムにしたい.
  • ネットワークアドレスによる指定で,過剰に絞りすぎているレンジがあれば,アクセス禁止を解きたい.

という狙いから, IP アドレスでソートをかけ,可読性を高めるためだ.

spammer counter v4

ソースコードに入る前に注意

.htaccess へ ErrorDocument 403 を追記する場合,その飛ばし先のファイルへのアクセスは可能とすること.
さもなくば, 403 の転送で無限ループが発生する.
具体的には,.htaccess へ下記を追記.hogehoge.phpの部分は,設置したphpファイル名に変更すること.

ソースコード

<?php
header('HTTP/1.1 403 Forbidden');
header('Content-Type: text/html; charset=iso-8859-1');
?>
<!DOCTYPE HTML PUBLIC '-//IETF//DTD HTML 2.0//EN'>
<HTML><HEAD>
<TITLE>403 Forbidden</TITLE>
</HEAD><BODY>
<H1>Forbidden</H1>
<?php printf('You don't have permission to access %s\non this server.',
             htmlentities(strip_tags($_SERVER['REQUEST_URI']))); ?><P>
<HR>
<ADDRESS><?php
$e = explode(' ',$_SERVER['SERVER_SOFTWARE']);
printf('%s Server at %s Port %d',$e[0],$_ENV['SERVER_NAME'],$_ENV['SERVER_PORT']);
?></ADDRESS>
</BODY></HTML>
<?php
// MySQL
$mySqlHost = 'xxx.xxx.xxx';
$dbname    = 'database_name';
$user      = 'user_name';
$password  = 'password';
$table     = 'spam_counter';

// connecting
$mobj = mysql_connect($mySqlHost,$user,$password);
if ($mobj == FALSE) { die('broken');}

// count IP addr
$addr    = $_SERVER['REMOTE_ADDR'];
$addr_pt = explode('.',$addr);
if (count($addr_pt)<4) { die('wrong address...');}

$sql_str = sprintf('insert into %s (ipaddr,number,ip1,ip2,ip3,ip4) '
                   .'values ('%s',1,%s,%s,%s,%s) on duplicate key update number=number+1;',
                   $table,$addr,$addr_pt[0],$addr_pt[1],$addr_pt[2],$addr_pt[3]);

mysql_select_db($dbname,$mobj);
$done=mysql_query($sql_str);
mysql_close($mobj);
if ($done == FALSE) { die('no response...');}

?>

説明 (前回からの差分)

IP アドレスを分割して,格納しているだけ.
カウントさせるために,主キーたる IP アドレスは保持.

spammer viewer v2

当然,テーブルが変更になるため, viewer にも変更が加わる.

ソースコード

<?php require_once './php/head.inc.php'; ?>
<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN'
    'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>
<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='ja' lang='ja'>
 <head><title>spammer viewer v2</title></head>
 </body>
 <h1>spammer viewer v2</h1>
 <table style='border: black solid 1px;'>
 <tr>
  <th>IP addr
   <a href='<?php echo $_SERVER['PHP_SELF'];?>?mode=ip&order=asc'>▲</a>
   <a href='<?php echo $_SERVER['PHP_SELF'];?>?mode=ip&order=desc'>▼</a>
  </th>
  <th># of access
   <a href='<?php echo $_SERVER['PHP_SELF'];?>?mode=num&order=asc'>▲</a>
   <a href='<?php echo $_SERVER['PHP_SELF'];?>?mode=num&order=desc'>▼</a>
  </th>
 </tr>
<?php
// MySQL
$mySqlHost = 'xxx.xxx.xxx';
$dbname = 'database_name';
$user = 'user_name';
$password = 'password';
$table = 'spam_counter';

$mode      = $_GET['mode'];
$order     = $_GET['order'];

if ($mode == 'num' and $order=='asc') { $oby = ' order by number ASC;';}
elseif ($mode == 'num') { $oby = ' order by number DESC;';}
elseif ($mode == 'ip' and $order=='desc') { $oby = ' order by ip1,ip2,ip3,ip4 DESC;';}
elseif ($mode == 'ip') { $oby = ' order by ip1,ip2,ip3,ip4 ASC;';}
else { $oby = ';';}

// connecting
$mobj = mysql_connect($mySqlHost,$user,$password);
if ($mobj == FALSE) { die('broken');}

mysql_select_db($dbname,$mobj);

$done=mysql_query('select * from '.$table.$oby);
//$done=mysql_query('select * from '.$table.' order by CAST(ipaddr AS SIGNED);');
mysql_close($mobj);
if ($done == FALSE) { die('no response...');}

$total = 0;
$num_host = 0;
$ostr = '';
while ( $row = mysql_fetch_row($done)) {
    $ostr .= sprintf('  <tr><td>%s</td><td style=\'text-align:right;\'>%d</td></tr>\n',$row[0],$row[1]);
    $total = $total + (int)$row[1];
    ++$num_host;
}
$ostr .= sprintf('  <tr><td>total</td><td style=\'text-align:right;\'>%d</td></tr>\n"
                 .'  <tr><td># of hosts</td><td style=\'text-align:right;\'>%d</td></tr>',$total,$num_host);
print $ostr;

?>
 </table>
 </body>
</html>

説明 (前回からの差分)

分割した IP アドレスの前から 1Byte 毎の値で,複数キーによるソートをかけているだけ.

おまけ

SQL文

テーブル作成.

create table spam_counter
(
ipaddr varchar(16) not null,
number int unsigned not null,
ip1 tinyint unsigned not null,
ip2 tinyint unsigned not null,
ip3 tinyint unsigned not null,
ip4 tinyint unsigned not null,
primary key (ipaddr)
);

スパマーの REMOTE_ADDR

spammer の中でも,頻繁にアクセスのあるホストをアク禁にしているのは,トップページからもリンクしているアクセス禁止リストの通りだが,
その集計結果を spammer viewer | hadacchi blog に出力させてみた.
このうち,どの程度が踏み台にされている一般PCなのかは,よく分からない.
1つ1つ,whois を引けば分かるように思うが,時間がない.

これだけ弾いていても,現在なお 100件/日 の spam 投稿がなされる.
特に今月に入って, Akismet が検出できない記事が増えている (2件/日) ので,困っている…

逆に,投稿したハズなのに表示されないということがあれば,誤検出している可能性が高いので,右下にあるフォームから苦情を飛ばして欲しい.
これだけスパムが届くと,誤検知がないか,チェックしていられない.

Android カスタマイズ

Android のメモリを増量(?)する.
compcache 使ってもイマイチだったので,マニアックなことをしてみることにした.

前提.
root 化済. (rooted phone)
過去記事では Android 1.6 に戻しているが,その後に Android 2.2 にまた戻している.
カスタム ROM として, CyanogenMod-6.1.0-DS を導入済.
操作する PC は Windows 7 Prof. SP1 で, ADK とか adb は導入済. (adb version 1.0.26)

やること概略

hboot 書き換え.
kernel 変更.

###用意するもの

  • rootが取れていて, recovery を書き換え済な HT-03a .ない人は,手順書/Recoveryの変更 | Android Custom Cookbookとか見てやれば,なんとかなると思う.
  • Android SDK を導入済で, android-sdk-windows (win の場合) の tools と platform-tools に path を通した PC . Android マーケットのツールから root を取った人は,導入してないかも知れない. eclipse なんて複雑で重いソフトはいらない.全部 DOS で叩く.
  • microSD -> SD なるアダプタ.だいたいの microSD にアダプタはついてくるので,手元にあると思う.
  • SD カードが差さる,カードリーダ/ライタ.持ってない場合は,必ず,最初に下記の手順を全部読んで,必要なデータを microSD に入れておくこと.それでも,必ず何か入れるべきものを漏らすので,素直に用意しといた方がいいけど.

具体的手順

基本的には,とりあたまさんのおぼえがき: HT-03Aでまだまだ戦う (RAM増量編)を適用するだけ.
ただし,単に rooted なだけでは,fastboot が動作しないため,ちょっとハマる.
というか, fastboot を調べる所から,ハマる.
なので,具体的に書く.

  1. 手順書/SPL変更手順 | Android Custom Cookbook の通り,update.Engineering-SPL-HBOOT-1.33.2005-signed.zip をSDカードへコピー.
  2. 一旦電源を落としてから,Home+電源ボタンで,リカバリーモードに入る.
  3. RA のバージョンに依るけど, backup っぽい選択肢を選ぶ→ nandroid の backup っぽいのを選ぶ.
    hadacchi の導入している 1.7.0 の場合,
    [Backup/Restore] -> [Nand backup] -> Homeを押して実行
  4. 結構時間をかけて終わったら,さっきコピーしたzipを適用する.
    flash zip っぽいのを選ぶ.
    hadacchiの場合,
    [Flash zip from sdcard] -> [update.Engineering-SPL-HBOOT-1.] -> Homeで実行
  5. Home+戻るボタンで,reboot させる.トップメニューからの reboot では正しく反映されない.
  6. またリカバリーモードに入るので,[Power off] -> Home
  7. microSD へ, hboot-1.33.0013d.img と radio-2.22.27.08.img をコピー
  8. microSD を HT-03a に差して,ボリュームダウン+電源ボタンで起動
  9. USB で PC と接続する
  10. 戻るボタンで fastboot モードに入る
  11. コマンドプロンプトでとりあたまさんのおぼえがき: HT-03Aでまだまだ戦う (RAM増量編)にある hboot と radio の img を置いたフォルダに移動し,
    fastboot flash radio radio-2.22.27.08.img
    fastboot flash hboot hboot-1.33.0013d.img
    fastboot reboot-bootloader

    を実行.
  12. 同様に,
    fastboot erase system -w
    fastboot erase boot

    して端末の menu ボタンで電源断.
  13. microSD へ,とりあたまさんのおぼえがき: HT-03Aでまだまだ戦う (RAM増量編)にある Kernel 2.6.35.11 とやらをコピー.
  14. Home+電源 ボタンでリカバリーモード起動
  15. バックアップした nandroid のリストア.
    hadacchi の場合,
    [Backup/Restore] -> Nand restore -> なんかバージョンを選ぶ -> Home
  16. kernel 2.6.35.11 の zip を適用.
    hadacchi の場合,
    [Flash zip from sdcard] -> [boot-cm_2635.11_ds_32b_radio270] -> Home
  17. 再起動しておしまい.
    hadacchi の場合,
    [Reboot system now] -> Home

関係ないけど知ったこと

CM6.0 導入端末で,/sd-ext を書き込みできるよう / をremountしてからsd-extにuserinit.shを入れても,次回起動時に消される.
対処法として考えられるのは,init.dに入れてしまうことだが,なぜかcompcacheのサイズは変更されなかった.
adb shellで,compcache start <size>(KB単位) とすれば,サイズは変更できる.

Windows 8 Developer Preview

Windows8 Desktop
Windows8 Desktop

Windows8 Start menu
Windows8 Start menu

Windows8 Internet Explorer
Windows8 Internet Explorer

Windows8 Explorer
Windows8 Explorer

あふw on Windows8
あふw on Windows8

Windows8 を Windows 7 Prof. x64 上にゲストOSとして入れてみた.
Windows Virtual PC にはうまく入れられなかったので,VirtualBox へ入れた.
環境はこんな感じ.

ホストOS Windows 7 Prof. SP1
ハード AMD x64 アーキテクチャ
VM VirtualBox 4.0.12
インストール時の設定等
VBox の OS 選択 Windows 7 (x64)
RAM 1024MB
グラフィックカードの設定 RAMは30MB 2D/3Dアクセラレーション ON

これで動いた.

その他,メモ.

  • Windows 8 のインストールには,Windows Live ID を準備させられた.アカウントは Live ID と連携する.Androidをインストールするのに似ている気がする.
  • Windows 8 搭載のブラウザは, IE 10.
  • Windows 8 のエクスプローラでは,Office 2007 以降に採用されたリボンが使われていた.
  • 愛用の あふw (afxw) は動いた.
  • Firefox は,2011/9/23 現在ではインストールできない.OSが未対応とエラーが出る.バイナリ入れたら動きそうな気もするが,試してましぇん.
  • Winキー+○ のショートカットは健在. Win+Rshutdown /s /t 1 でシャットダウン