I live in TOKYOを過去形にしろ→I live in EDO
9回の裏「この回で逆転しないともう後がありませんよ」
他人の100円玉を持ち帰り、後日「ごめん、私の100円玉によく似ていたから」
超簡単にして最高においしい唐アゲ。
1、一口大に切った鳥ももをビニール袋の中に
2、胡椒少々+袋内に肉に吸収されて液が見えないくらいの量の日本酒を入れて揉む
3、20分放置(肉はジューシーに&臭みが消える)
4、醤油をいれてモミモミ(袋を傾けた時に多少液が見える程度)
5、10分〜15分放置(カットした大きさによる)
6、片栗粉を入れてよく揉む

余計なものを入れない方が美味しい。
日本酒だけで少し置くのが最大のポイント。
弁当屋から中華料理屋まで、色々な所で唐アゲを食べまくった私ですが、
これ以上にうまい唐アゲには出会った事がない。
京都の最底辺高校 南京高校の入試問題

 第一問(社会) 次のうちから日本人を選べ。
 1.小泉首相 2.ブッシュ大統領 3.ハリー・ポッター

 第二問(化学) 炭素が完全燃焼すると何という物質になるか?
 1.二酸化炭素 2.二酸化炭素 3.二酸化炭素

 第三問(数学) あなたは二次方程式を解くことができるか?
 1.できる 2.できない

 第四問(国語) あなたの名前を漢字で書きなさい。

 第五問(歴史) 徳川家康とは何か?
 1.犬  2.人間  3.鳥

 第六問(英語) How are you?
 1.I’m fine  2.I’m tired  3.I’m hungry
日本人にとって今回のリリースのもうひとつうれしい点は、オープンソース版のGoogle日本語入力であるMozcが公式に導入可能になったことです。従来は「リポジトリの追加」というちょっと面倒な作業が必要でしたが、今回からはソフトウェアセンターからクリックするだけで利用可能になります。「Linuxもいいけれど、日本語入力がダメで…」とお感じの方は、ぜひ試してください。

産経新聞のiPhoneアプリのパケット解析してみた

勉強, パケット解析

産経新聞(iPhone版)というのがあります。

これは無料で産経新聞が紙の紙面の構成のまま読めるというとても便利なアプリです。

今回、暇だったので、WireSharkというバケット解析ソフトでiPhoneのウェブとの通信を盗聴?してみました。

産経新聞iPhoneアプリの仕組み

最新の新聞データを得る(current_edition.xml)

バケット解析の結果、産経新聞アプリを起動するとまず、決まったURLにアクセスする。ここには最新の紙面の情報があるxmlURLが書いてある。

http://www.sankei.co.jp/netview/iphone/current_edition.xml

<CurrentEdition Root="2010_04_10_i" XMLFileName="2010_04_10_i.xml"/>
その日の新聞の目次(日付/日付_i.xml)

上のxmlを見て、この日の新聞の何面にどの情報が書いてあるかとかの情報を得る。なんかxmlだと新聞社のウェブサイトよりとてもセマンティックって感じ。

http://www.sankei.co.jp/netview/iphone/2010_04_10_i/2010_04_10_i.xml

<Edition Newspaper="iphone" Name="2010_04_10_i" Date="2010/04/10" Version="1.01" FrontPageURL="" PageWidth="38" PageHeight="51.5">
 <Sections>
  <Section Name="総合" Index="3"/>
  <Section Name="国際" Index="4"/>
    ...
  </Sections>
 <Pages>
  <Page ID="12984" XMLLocation="pages_xml/page12984_netviews1958.xml" PageNumber="1" ThumbnailURL="thumbnails/page1.jpg" Section="総合"/>
 </Pages>
</Edition>
ページ情報

次は上のxmlからページの画像の格納されているURLを示すxmlにアクセスする。

http://www.sankei.co.jp/netview/iphone/2010_04_10_i/pages_xml/page12984_netviews1958.xml

<Pages ID="12984" PageTitle="" PageNumber="1">
 <LevelImages Level1Partitions="1" Level2Partitions="2" Level3Partitions="4" Directory="pages_images/page12984_netviews1958/" FileType="jpg" BasePixelWidth="372" BasePixelHeight="504"/>
 <Articles/>
 <Regions/>
 <RichMedias/>
 <Titles/>
 <Links/>
</Pages>
新聞紙面の画像データ

実はこれでもうすべての画像データにアクセスできるようになった。

まず、画像データの基本のURL

http://www.sankei.co.jp/netview/iphone/2010_04_10_i/pages_images/page12984_netviews1958/lv1_0_0.jpg

である。

あとは末尾のファイル名を変えればよい。

下にファイル名と内容を一覧にしてみた。

ファイル名内容
lv1_0_0.jpgページ全体
lv2_0_0.jpgズームした左上
lv2_0_1.jpgズームした左下
lv2_1_0.jpgズームした右上
lv2_1_1.jpgズームした右下
lv3_0_0.jpgもっとズームした左上
lv3_0_1.jpgもっとズームした中央
lv3_0_2.jpgもっとズームした右上
lv3_3_3.jpgもっとズームした右下

なるほど。ズームのレベルに応じて3つのファイルに分けてるんですね。

まとめ

というわけで、これを利用すれば別にiPhoneアプリ使わなくても産経新聞がPC上で読めるアプリも簡単に作れそうですね。

ウェブアプリとかも作れそうですね。

ここらへんもっとちゃんとガードされてるのかと思いましたが、意外に寛容でした。

まぁどう考えても著作権的にアウトなので、そんなことする人はいないと思ってるんでしょうね。

パスワードはないにしてもアプリによる正規のアクセスかどうか認証する*2ぐらいはすればいいのにという気はします。

まぁそういうのが一切ないので不正アクセス防止法とかにはひっかからないはず。

パケット解析のおもしろさがわかる(?)、産経新聞iPhoneアプリはどういう仕組み?っていう話でした。

追記(10/4/11 05:12)

結局書いちゃった。

これでいいのか!産経さん!紙面データダダ漏れですよ!(PHPで紙面を得てみる) - konisimple log

2010年04月10日

産経新聞が有料会員登録をしなくても無料で紙面と同じように読める件について(PHPで産経新聞紙面を得るスクリプト)

PHP

産経新聞のiPhoneアプリのパケット解析してみた - konisimple logに書いたのはお遊びでした。

でも実は産経新聞は紙面データで金とってるそうです!→||| 産経NetView |||

産経さん、今の状態だと10行ぐらい*1コード書くだけで簡単に紙面見れちゃいますよ!

これでいいんですか!?

そんなわけないだろ、というひとのために実際にかいてみました。

例えばPHP使える環境があるなら下のファイルを置くだけで見れちゃう。

かなりセキュリティ甘いのではという気がするのですがどうなんでしょう。

しかも,過去のデータも見れちゃうんですね。どこまで古い奴までみれるかは調査してないけど、割と古いのも見れる。

ウェブで産経新聞を画像で読むPHPスクリプト

こんな感じで普通に見れちゃいます。以下のファイルをsankei.phpとか名前をつけて保存するだけ。

しかも上の画像ではサムネだけだけど、実は原寸大で普通に読めるレベルの解像度です。

<?php
	$date=$_GET["date"];
	if(strlen($date)==0 OR !checkdate($date[5].$date[6],$date[8].$date[9],$date[0].$date[1].$date[2].$date[3])){
		$url1="http://www.sankei.co.jp/netview/iphone/current_edition.xml";
		$xml1=simplexml_load_file($url1);
		$date=substr($xml1->attributes()->Root,0,10);
	}
	$url2="http://www.sankei.co.jp/netview/iphone/{$date}_i/{$date}_i.xml";
	$xml2=simplexml_load_file($url2);
	foreach($xml2->Pages->Page as $item){
		$html.="<h2 id='p{$item->attributes()->PageNumber}'>{$item->attributes()->PageNumber}面 ({$item->attributes()->Section})</h2><div>";
		for($i=0;$i<=3;$i++){
			for($j=0;$j<=3;$j++){
				$url="http://www.sankei.co.jp/netview/iphone/{$date}_i/";
				$url.="pages_images/".substr($item->attributes()->XMLLocation,10,22);
				$url.="/lv3_{$j}_{$i}.jpg";
				$z=0.7;
				$w=372*$z;
				$h=502*$z;
				$html.="<img src='{$url}' width='{$w}' height='{$h}'>";
			}
		$html.="<br>";
		}
			$html.="</div>";
		$thumb.= "<a href='#p{$item->attributes()->PageNumber}'><img src='http://www.sankei.co.jp/netview/iphone/{$date}_i/{$item->attributes()->ThumbnailURL}' width='182' height='252'></a>";
	}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="ja">
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
		<meta http-equiv="Content-Script-Type" content="text/javascript">
		<meta http-equiv="Content-Style-Type" content="text/css">
		<style type="text/css">
			body{margin:10px;}
			div{margin:0;}
			h2{margin:0 10px;border-bottom:1px dotted #000;padding:5px;}
		</style>
		<title>俺専用産経新聞</title>
	</head>
	<body>
	<h1>俺専用産経新聞 </h1>
	<form>日付指定(YYYY_MM_DD形式):<input type="text" value="<?=$date?>" name="date"><input type="submit" value="見る"></form>
	<h2><?=$date?>の目次</h2>
	<?=$thumb?>
	<?=$html?>
	<p><a href="http://d.hatena.ne.jp/konisimple/">konisimple log</a>  <a href="http://twitter.com/koni">@koni</a>
	<p>2010/4/11 04:59ver
	</body>
</html>

注意

  • このスクリプトを悪用しないこと。このファイルを公開領域に置くと、あんまりよくないことがおこる気がします
  • 上のスクリプトは公開することを想定していないのでXSS脆弱性とかは対策してないです。他にも何か脆弱性があるかも。あしからず。
  • 著作権侵害とかの意図は一切ないです。

さすがにこのファイルを公開するのは怖いからしないけど、簡単に再現できちゃうはずです。

WiFi 無線LANの設定

Ubuntu のバージョンは最新 (Jan 31現在)の9.10デスクトップ版をインストールした。
これはなかなか優れものでDHCPの環境下で使用するのならイーサネットケーブルを接続するだけで何もせずともネットワークに参加できる。
ところがどっこい、無線LANモジュールの認識は全くしないのだ。簡単に利用できる、Intelの無線LANモジュールに入れ替えている人も多数いるよう だ。
わたしゃ元々、Linuxのエンジニアであり著書もあるのだ… 「だからなんなんだ?」と言う向きは、正解だな(笑) それは置いておいて、 Ideapad S10eに使用されているのはBroadcomのBM4321だと思われる。このドライバソフトはソースコードでChip MakerであるBroadcomから入手可能だ。
今の時点で入手したのは http://ja.broadcom.com/support/802.11/linux_sta.php からで32bit driverを使用する。

ドライバーの使用

ダウンロードしたファイルは自分のホームディレクトリーなどでカーネル モジュールを構築するのだが、構築例は以下のコマンド実行で構築可能だ。もちろんこれも Ubutu 9.10上でおこなう。

ソースの展開
$ mkdir hybrid_wl
$ cd hybrid_wl
$ tar xzf <ダウンロードしたパス>/hybrid-portsrc.tar.gz

コンパイル
$ make clean (初めて実行する際は不要)
$ make

もし b43-fwcutter をインストーしていたら削除
$ sudo apt-get remove b43-fwcutter

ドライバーモジュールをインストール
$ sudo make install
$ sudo echo "blacklist ssb" >> /etc/modprobe.d/blacklist.conf
$ sudo echo "blacklist b43" >> /etc/modprobe.d/blacklist.conf
$ sudo depmod -a

ここまでで modprobe wl とすればとりあえず利用はできるのだが、もう1ステップおまじない(?)が必要である。
ここでメニューバーの 「システム - システム管理 ー ハードウエアドライバ」で今、作成したドライバの登録を行う。これは modprobe wl 実行後、行ったが自動検索して容易に行えた。画面は次のようなものだ。

click to enlarge
これで再起動してもバッチリ使用できる。

XPとLinuxのデュアルブートにすることに。選んだOSは最近何かと話題性のあるubuntu。何はともあれライブCDを作って、PCの下準備。

 元々、うちのノートPCは二つのパーティションを作ってて、それぞれ20GBと30GB。うち、30GBのパーティションを管理ツール使って削除して空き容量を作りました。
  そして、ライブCD突っ込んでBIOSからCDでブート。しばらくしたら、インストール画面が出てきます。ほとんどは、地域の設定とかだけなので淡々と選 んでいけばいいのですが、5番目くらいに出てくるインストール方法については、慎重に「最大の連続した空き領域を使う」の項目ををチェックします。普通に インストールしてしまうと、XPが完全になくなってしまいます。