iframeを利用して訪問者に無理やり任意のページを取得させるという一昔前に流行った手法である。
しかし単純にHTMLファイルにiframeを挿入するだけでは簡単にバレてしまう。

そこで運営に見つからず上手くやる方法を考えていたところ少し妙案が浮かんだので
実験的にその手法をペラサイトに仕掛けてみた。
強制と言っても従来の稚拙な方法とは全く異なり、考え方によっては規約に違反していないようにも取れる今回の手法。

設置から一週間で今のところ500uuで1日100ポイントほどの成果。
3000ポイントを超えた辺りから運営の監視がなされるようなのでしばらく様子を見てみようと思う。

 

2ch過去ログ保管サイトに貼っているクリック報酬広告の成果が伸びてきた。
サイト自体は特に更新していないのだが、広告の表示位置を変えたことと
アイモバイル側のフィルタを少し変更したことが吉となったようだ。

具体的には、広告位置は今までページの上部と下部に1個ずつ設置していたのだが
今回思い切って右端に縦長の広告を固定表示することにしたのだ。
position:fixedってやつ。
あとは広告のフィルタリングだが、これまではクリック保証では鉄板と言える「コンテンツマッチ」を意識して広告を選定してきたが、自分が実際にページに訪れた訪問者としてクリックしたくなるようなものを選ぶことにした。
サイトのジャンルやコンテンツに合っているかどうかは二の次で。

するとこれまでクリック率が0.2%ほどだったのが0.6%になり、多い時には1%を超えるにまでになった。
クリック率そのものは小さく感じるが、アイモバでは平均0.3%ほどらしいし、
単純計算で成果が3倍になったのでとりあえず今回の実験は成功したと言える。

クリック報酬は成功報酬とは全く違ったアプローチだという事を再認識できた。
広告の表示位置に関してはこれからも色々と研究してみようと思う。

 

Firefoxを2chブラウザ化できるアドオンChaika。
非常にお世話になっているアドオンの1つであるが、前々から仕様にちょっとした不満があり、
今回ソースコードを改変させて頂くことにした。

画像リンクにマウスオーバーするとまず縮小画像がポップアップし、
更に画像をクリックすると原寸大で表示されるという機能がある。
2chにおいてはヤバめな画像もしばしば貼られるため、縮小表示にはいつも助けられている。
(画像が小さければグロさ、怖さも半減)

ただここからが問題なのだが、14インチぐらいの糞モニタを使用しているため、
現在の環境ではほとんどの画像をオリジナルサイズで見ることはできないのだ。
かと言って縮小画像だけでは満足できないので、少し仕様を変更することにした。

具体的な流れは以下の通り。
画像リンクマウスオーバー

縮小画像ポップアップ

縮小画像をクリック

ブラウザ表示領域を考慮して出来る限り大きく表示

さらにクリック

新しいタブでオリジナルサイズ表示

こんな感じ。

1. とりあえず本家サイトからxpiファイルをダウンロード
2. xpiの実態はzipなので普通に解凍
3. defauls/skin/script.jsをテキストエディタで開く
4. 以下のように改変

289行目のimage.click(function()のところ

		image.click(function(){
//			$(this).toggleClass("small");
//ここから
			if($(this).hasClass("small")){
				$(this).removeClass("small");
				var maxWidth = document.body.clientWidth*0.8;
				if($(this).width() > maxWidth)
					$(this).width(maxWidth);
			}else{
				$(".popup").remove();
				window.open($(this).attr("src"),'_blank');
     return false;
			}
//ここまで追加
		});

5. chrome、compornents、defaults、modules、chrome.mainfest、install.rdfをまとめてzip圧縮
6. 拡張子をxpiに変えてfirefoxで開くとインストールできる
(バージョン情報などは変更してないので勝手に上書きされるようだ)

以上。
使いやすいかどうかは別として改変作業は割と面白い。
jqueryのバージョンが1.3と古いため初めエラーが出まくって焦ったが
作業中は何と言うか、リバースエンジニアリングのような感覚。
アセンブリとか全然わからないし経験も無いのだが

今度オリジナルのアドオンでも作ってみようかな。

 

よくある規約違反事例
http://affiliate.rakuten.co.jp/guide/rule/

楽天アフィリエイトの規約変更により、肖像権侵害の恐れのある画像の使用は規約違反となった。
また画像だけでなくYoutubeなどの動画の引用も禁止事項に含まれるようだ。

これにより現在管理している画像掲示板、画像サイトには楽天アフィが貼れなくなってしまった。
もともとアドセンス→楽天と流れてきたサイト達だが、さてこれからどうしよう。
とりあえずi-mobileでも貼っとくか。
アドセンス以外のクリック報酬ではアイモバはかなり優秀な部類に入ると思う。経験的に。

まあこれらのサイトがグレーであるということは認識していたし、
いつか灰色から黒に変わる日が来ることも予測できていたが、実際になってしまうとやはり痛い。
収入的にもかなりの痛手だ。

とりあえず今年の目標はいろんな意味で健全なサイトをつくること。
目先の利益にとらわれず、安定した収入を確保できるサイトを目指すことにしよう。

 

全自動のまとめサイトを公開して1週間がたったがいまいちアクセス数が伸びない。
ボットを除くと228uu/dayといったところ。

ただ今のところランキングサイトや相互リンクなどのSEO対策は何も施していない。
とりあえず1ヶ月はこの状態でどこまで伸びるのか様子をみようと思う。

 

多分プログラム初心者は全員この同じ壁にぶつかると思う。
人のソースを読むことは出来ても、いざ自分で設計するとなると途端に自信がなくなる。

だが最近設計段階でオブジェクト指向を取り入れるための方法を思いついたのだが、
それが不思議と今の自分の中ではとてもしっくりきているのだ。
もしかしたら全く見当違いなやり方なのかもしれないが、現状を記録という意味でここにメモしておく。

まず何といってもメインルーチンのフローチャートは必要。
ここで具体的な変数などは記載せず、「これをして次にこれをして…」ぐらいに大雑把にしておく。

次に「これをして」の部分のみを取り出して再びフローチャートを作成。
この処理を何度か行っていくと変数がみえてくる段階があるのでそこで終了。

ここで変数や処理をどのクラスに含ませるのかでいつも悩んでしまうのだが、
もっと馬鹿馬鹿しいぐらい現実的な事柄をイメージすればよい。

「この変数はどのクラスに入れるか」→「これは誰に聞けば教えてくれるか」
「この処理はどのクラスが実行するか」→「この仕事は誰の責任か」

上の変換をすると非常に分かりやすいし、ほとんど悩まないで済む。
共感はしてもらえないかもしれないが、とりあえず今日も私はこんな感じでプログラミングしている。

 

PEARのパッケージを使う方法が一般的のようだが、レンサバでは環境を整えるのが面倒。
ライブラリファイル単体で動作するものを探していたところ、調度良いライブラリが見つかったのでその使用方法をメモしておく。

The Incutio XML-RPC Library
おそらく公式サイトなのだが現時点では全く接続できなかった。

Google Project Hosting
ライブラリ本体はこちらのGoogleのサイトで見つけた。

使い方は非常にシンプルだが参考資料が無いため苦労した。
他人のソースを見直すのは好きじゃない。

require 'IXR_Library.php';
$xmlrpc_path = 'http://erminn.sakura.ne.jp/wp/xmlrpc.php';//今回叩くAPI
$user = '';//ユーザ名
$passwd ='';//パスワード
$appkey = '';//よくわからん

$c = new IXR_Client($xmlrpc_path);
$c->query('blogger.getUsersBlogs',$appkey,$user,$passwd); //これでクエリが実行されている
if($c->isError())//エラー処理
  exit($c->getErrorMessage());

$blogs = $c->getResponse();//成功すればブログ情報が得られる
$blogid = $blogs[0]["blogid"];//投稿の際に必要なblogidなるものをここで取得

$title = 'たいとる';
$description = "ほんぶん";
$categories = array("かて1","かて2");//カテゴリは配列で
$content = array('title'=>$title,'description'=>$description,'categories'=>$categories);
$publish = 1;

$c->query('metaWeblog.newPost',array($blogid,$user,$passwd,$content,$publish));
echo $c->getResponse();//投稿に成功すれば記事ページの番号が返ってくる

上のは最低限のスクリプト。
画像のアップロードもできるらしい。
投稿時間やタグなどを設定したければ$contentに含まればいい。たぶん。

 

完全自動構築型2chまとめサイトの話。
[面白い]レスを機械に抽出させるのはやはり難しいようだ。

人間が無意識に判断していることを形式化して機械に教えてやらねばならない。
とりあえず現段階で思いつく処理とその問題点をメモしておく。

ある記事内容が与えられた時、まずはどのような話題なのかを判定する必要がある。
Yahooのテキスト解析APIなどを使えば重要度の高い用語を抽出できるので、
例えばあるコメント中に先程抽出した用語が含まれていれば、
そのコメントは記事内容に関連した文章であると判断できる。

しかし、このようなコメントばかりだとおそらく全体としては退屈な内容になってしまう。
何の脈絡も無しに発せられるコメントはしばしば話題を展開し、
そのようなコメントこそが今回コンピュータに選んでもらいたい[面白い]コメントに他ならない。

ただし、奇抜なコメントばかりではもちろんちぐはぐになってしまい、まとまりがなくなる。
話題に準じたコメントと奇想天外なコメントのバランスが難しい。

無意味であるかどうかの判定はこれまた難しい。
「ww」を多用したレスは流れを逸脱した面白いレスであることが多いが、
表面的な部分しか捉えていないいかにも頭な悪そうなものも多々ある。
とりあえずは簡単だがアンカーの数で判断する方針でいく。

あとはオチ。
これが最もやっかいかもしれない。
有名なまとめサイトの中でも思わず「ん?」となってしまうような締めくくりをするサイトをいくつか見かけるが、
おそらくそれらのほとんどは自動化されたサイトであると考えている。
同じようなサイトを作る側からすると、非常に参考になる例かもしれない。
大手のまとめサイトは人が手間暇けかけてレスを選んでいる為非常に完成度が高い。
そんなサイトには到底敵わないだろう。それは承知の上である。
上で挙げたような自動化の疑いがあるサイトに勝つというのが当分の目標となりそうだ。

 

2chまとめサイトをつくろうと思う。
ただし更新作業は完全自動化にする。
機械的な処理は文字通りプログラムに任せられるが、人間でないとできないような柔軟な処理をどう扱うかが課題。

  • スレを選ぶ
  • 画像リンクなどの整形
  • アンカー処理
  • レスを抽出

スレッドとレスの選定アルゴリズムは現在検討中。
その他の処理はおそらくすぐ実装できるだろう。

 

初めてのwordpressだがインストール簡単過ぎわろた。

これからXMLRPCを使った自動投稿などのテストをしてみようと思う。

© 2012 16進法シンドローム Suffusion theme by Sayontan Sinha