ここ最近、作りたいものがなくなったので仕方なくらいつべバルーンの改造に着手してみた。

が、コードを番組表フォームをメインの構造に書き換えたまではよかったのだけれど、
新しい機能の追加となつとパッタリと手が止まる。

なんというか、個人的にはもう機能追加する必要無いんだよなぁ……
若干メモリは食うけれど、せいぜい30MB程度。
メモリ4GB載せてる自分の環境では殆ど誤差にしかならない。

ヘビーに使ってるわけでもないので、バグにも遭遇しないし。
が、番組が1024個を超えると落ちる仕様なのでそこは直しておいた。
けど、これだけの為にリリースするのもねぇ……

というわけで、機能追加しないままに作業終了。
無為に時を潰すのでした。

最初に断っておくと、今回の記事は正直道義的にはどうかと思う自分もいる。
けれど、作業の省力化、自動化とそれに付随するプログラマの存在意義としては実に真っ当なあり方であると思う。

閑話休題。
今のkonata.netでは、Amazonアソシエイトのいわゆるアフィリエイトのリンクを張っている。
とりあえず、月の鯖の電気代くらいは稼ぎたいなぁ……という消極的な理由だけれど。
使っているのは、Amazonから提供されている標準的なリンクなのだけれど、これが滅法訴求力がない。
お寒いkonata.netのアクセス状況で3000PVあって月のクリックは僅かに一桁である。
そこから発生する売上など考える必要すらない。

しかし、これも考えて見れば妥当な事で、そもそもAmazon提供のデフォルトのリンクに訴求力が有るのなら、大手のブログやらまとめサイトなんかはこぞってそれを採用するはずであるし、現状を見渡して、少なくとも日本のサイトではそんなことはない。
つまり、Amazon提供のリンクはいらない子なのである。

ではどうすればいいか?
大手のブログやらまとめサイトなんかと同じリンク方式をとれば良い。
が、いちいち旬のものを探してリンクつくってhtmlやらphpを書き換えてというのはいかにも面倒くさいし、商品選びにセンスが問われる。

ここでもう一歩進んで考える。
結局のところ、流行りのAmazonアソシエイトのリンク方式というのは、htmlのaタグとimgタグ+品物名のシンプルな物だ。
htmlを弄ってみれば判ることだけれど、これは誰がつくってもほぼ同じものが出来上がる。

つまり、大手のブログやらまとめサイトに同じものがいっぱいある。
なら、リンク作成は彼らに任せてしまえばいい。

プログラムでそこらのサイトのhtmlからAmazonのリンクを抜き出して、アソシエイトのIDを変更し自サイトで動的に読み込むようにしてしまえばいいのだ。
これで、手間をかけずにAmazonリンクを更新することができる。
後は適当なランダム要素でも入れておけば良い。

ここまで書いて気がついたのだけれど、この記事にはオチがない。
しかも、微妙にイメージが悪い。
どうしたものか。

すっかり、自分専用ラノベ感想投稿サイトになってしまっているラノベを語れ
konata.netの中では割と作るのに時間のかかった機能なのだけれど、技術的には難しいことはさっぱりやっていなかったりする。

強いて挙げれば、アカウント登録の際に、まずは仮登録メールを発行し、メールに記載されたアドレスをクリックすることで本登録が完了する仕掛けがあったくらい。
が、ぶっちゃけるとこの機能、プログラムを作る側には楽しいが、ユーザーから見ればめんどくさい上にいわゆる個人情報の類を入れなければならないため非常に敷居が高い。

正直、ただでさえアクセスがないのにお客さんを追い払っているようなもんである。

なので、すっぱりその辺の昨日は削除してしまうことにした。

変更自体は、DBにALTER TABLEをいくつか発行して、PHPのスクリプト側での変数名を変えたくらいなので30分程度で完了。
まぁ、これでアクセスが増えるわけではないのだけれど。

2chの書き込みプロクシに、早速利用者がいたらしい。

ごめんなさい……
バグ作り込んでました、

長大な書き込み荒らしの予防策として Content-Length ヘッダを見て、一定以上の長さの場合アクセスを拒否するようにしていたのだけれど、Content-Length はURLエンコード後のサイズを指しているので、結果として「埋め」位しか書き込む余地がなかったという……

いかにもテストしてません的なバグでした。
全部のPOSTがサイズエラーでログに記録されてた訳だよ。orz

このほかにも、NGワード機能も作りこんでいたのだけれど、そっちでもバグがあったのでプチプチ潰す。

テスト、面倒だなぁ……
誰か代わりにやってくんないかなぁ……

というわけで、前回の続き。

やりたいことは、以下。
・いわゆるApacheの「allow from xxx」を動的に変えたい。できればDBなんかでアクセス許可リストを作りたい。
・許可したIP以外は拒否。
・許可したIPでも、荒らし防止のため連続投稿はさせない。
・許可したIPも永続的に使えるわけではなくて、一定時間を過ぎると使えなくする。
・でも自分は制限受けずに利用できる。(ここ大事)
・アクセス許可リストは、ユーザに更新してもらう。自分は基本メンテしない。

上記を満たすのはApacheのモジュールを自作するしかない。(と思う)
というわけで、モジュールの作り方を知らない状態から数日試行錯誤して作りました。
左メニューの「臨時用2ch串」から利用可能です。

が、この機能を発端のこのスレで告知しようか正直迷っている。

なんだかんだで、荒らしは出てくるだろうし、そのとばっちりでアクセス規制されたら面倒だしなぁ……