IPアドレスから国を判別
Ajaxのformが見えてないのにせっせと続くスパムのアクセス。こないだ書き込まれてしまったURLを起点に、獣道のごとく決まった順番で無意味にリンクを叩いている。IPアドレスを変え、domainも変えて次々と。…formが見えていないし書き込まれる心配はないんだけど、うっとーしー。
apnicのデータを元にJP以外はしばらくシャットアウト。と思って調べるとIPアドレスのrangeの表現がよくわからん。こんな面倒そうだけど計算一発ですみそうなことは、きっとすでにだれかが作ってるに違いない。
で、あっさり
/usr/ports/net/p5-IP-Country
FreeBSDのportsはほんといろいろ揃ってんなあ。
さっそくインストールして仕込んでみた。国を取得できないケースもあるみたいなので、とりあえず国がわかってそれがJPじゃなければ404を返す。ついでに起点にされているURLに対するリファラのない飛び込みアクセスも404を返すようにした。
しばらくして、アクセスログを見てみると、起点になっていたURLで404を返されると、その後の巡回ルートに流れず諦めている。
とりあえずこれでいっとくか。
不毛だなあ。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
簡単が一番だ
世間はすっかり夏休みモードなのか。電車がガラガラで親子連れも目立つ。
sql一発でデータを引っ張り出すのがなにかと便利で安全、なのはよくわかる。でも、副問い合わせが入って重くなるんだったら、そこはスクリプトを挟んだほうが良くないか、と。あいかわらずSQLとスクリプトの関係というか、よくわかってないんだよなあ。そこんとこperlで連想配列使った方が早くないか、とか、それ引っ張ってくるならSQLでしょ、とか。
ここんとこウチでは脱データベース、ていうかDBを使うほどでもない量で作りも単純なテキストデータが対象。perlだけでごにょごにょしていて、気楽でいいなあ、と改めてしみじみつくづく。たいしたことをしてるわけでもないのに、意図どおりに動かない・見えないのは、perlなのかSQLなのか、Javascriptなのかcssなのか、とあれこれ絡んでめんどくさいんだよね、WEBサイトって。
なんとかもっと簡単にできないものかしらん。
いろんなことが面倒になってきてるような気がするのは歳のせいなのかなあ。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
めも
簡単なパズルで現実逃避。
データを、表示順で並べて、同じ表示順の中ではID順で並べる、てのは当たり前のありがちで、SQL文だとたぶん
order by displayorder asc, id desc
てな感じでさくっと書ける、のかな。
これをどうしたもんかとちょっと悩んで。…hashに放り込んでループすればイケる。
foreach (keys %{ $ref } ){
$pos->{ $ref->{$_}->{displayorder} }++;
$disp->{ $ref->{$_}->{displayorder} }->{$_} = 1;
}
foreach my $display ( sort {$a<=>$b;} keys %{ $pos } ){
foreach ( sort {$b<=>$a;} keys %{ $disp->{$display} } ){
print $ref->{$_};
}
}
でも、なんかダサい(死語)
並べかえたい、というのはよくあることなのに、こんな書き方してしまうと、バリエーションの数だけ同じようなことを書かなきゃいけないじゃん。…うううむ。
とはいえ、忘れないうちにメモっておこう。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
小説引用文データもUTF8に
なんか強烈にだるくて、バテバテのへろへろ。なんでだ。…てな週末。お言葉データベースもUTF8に移行した。ついでにpostgresqlを使ってたところ、ただのテキストデータのcsv形式に。
お言葉データベースを表示させてるトップページもシンプルに変更。って、面倒だったんで、この程度、だなぁ。夏だしさっぱりした、ってことで。
にしても、ほんと暑くて気持ちが悪いなぁ。
[08/03 23:26:47]
と、見直してみると。うちのポンコツサーバーでDB(postgresql)を使ってるは、これで読書SNSだけ、となった、かな。読書SNSに使ってるものは、多少なりとも無駄な負担は減らす方向で。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
めちゃだらける
うー。暑さなのか湿気なのかゆうべの飲みすぎなのか、原因はともかく、今日はいちんち全身だるくて頭が回らずなんもする気もせず。身体の芯と外の世界の間にぼわーっと靄がかかったような感じというか。
なもんで、今日は。
チャリで昼間、猫缶を買いにユニバーサル、ついでにかねふじで揚げ物(しょうがボールというのが絶品だった)を。
だらけたままミケさんが涼しげに転がってるのを見て、一緒に転がり昼寝。
チャリで夕方。駅前の銀たこを買い、東急ストアのちよだ寿司で買いだし、ヤマニでシメイとデュベルを。
と、まあほんとなんもしないいちんちだった。(ひらがなばかりだと読みにくいなぁ)
とりあえず。
読書SNSの、使い捨てセッションIDとajax部分のフォームの問題は、面倒なんでajaxコンテナごとに使い捨てセッションIDを設定することで強引に解決してしまおうか、と。ほかにもっとうまいやりかたがありそうなんだけど…。となると後残るは力仕事。現状のサイトからの移植作業をするだけ、かな。ううう。面倒くせえなぁ。
んで、ふらふら、ふと思いつきで、データベースを使わないでテキストファイルをデータとしてSQLっぽく扱えれば面白いよなぁ、と。この雑記帖なんかもずいぶん前に作ってそのまんま。文字コードeuc-jpで、データはcsvのテキストファイル。データベースはsns専用にしておきたいから、このまんま使い続けるんだけど、もうちっと気の利いた使い方ができればなぁ、と。p5-DBD-AnyDataとかp5-DBD-CSVとかp5-SQL-Statementとか、ちょっと気になって調べもの。データベースに比べると当然速度なんかは見劣りするけど、それなりに使えるっぽい。
おもしろそうだなぁ。…けど、んなことやってるヒマあったら、先に読書SNSリニューアルだろ、だよなぁ。
にしても、ほんと、湿気と暑さにまいっちんぐ(死語)
[07/13 21:26:32]
簡単に使えるんだ…。
my $dbh = DBI->connect('dbi:AnyData(RaiseError=>1):f_dir=.');
$dbh->func( 'zakki', 'CSV', 'zakki.csv', 'ad_catalog');
これだけ、だ。
あとはフツーにsql書けばいいだけなのか。びっくり。
…DBの使えない(postgresqlなんかあるんだけどメモリとディスクの容量的に苦しい)zaurusにインストールできればちょうどいいんだけどなぁ。
[07/14 22:00:20]
てなこと思ったけど。
CPANのモジュールをインストールするのにgccやmakeをzaurusで使えるようにしなきゃいけない。どう考えたってたいそうおおげさ。うーん。今のままでいいかなぁ。うちのサイト、euc-jpのページとutf8のページが混在していて、どうせならutf8に統一したいところなんだけどねえ。
うー。だりい
[07/15 09:07:02]
日付が変わってる記事に追加するのは好きじゃないんだけど、といいつつ。
ここの書き込みをとりあえずutf8に変換してひとつのファイルにまとめてみてびっくり3M超えてるじゃん。最古が2000年で、まだそのころはcgiにしてなかったから書き込み頻度はそれほどでもなかった。cgiにしてからは、まあなんというか、ネットにゴミ、生ゴミ、燃えないゴミ、各種ゴミを撒き散らしてるなぁ。有益有用な記述がひとつもないことに、今さら呆れる。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
遅々として
7月になってしまった。平日仮死状態なのはあいかわらずだ。
3年目になる読書snsのリニューアル。データ取得と表示のひな型を最初に作ったんで、閲覧系は、欲しいデータさえ決めれば思ったよりよりもすんなり形になる。
SQLで引っ張り出したデータはほとんど以下の形で梱包。
$cols=$sth->{NAME}
while(my $p=$sth->fetchrow_arrayref){
my %hash;
@hash{@{$cols}}=@{$p}
push(@buf,¥%hash)
}
return ¥@buf
fetchrow_hash...より早い、らしい。で、表示の方はコンテナ2種類用意したんで、そこに流し込むようにdivタグとかブロック要素で囲って、受け取ったらデータを整える。
テンプレートを使えば、この部分もphpのように、htmlに変数の形で埋め込める、のかな。ちょっと調べたところテンプレートも種類があるし、依存関係が面倒っぽかったんで見送り。
てことで表示閲覧の部分はやっとメドがついた。(cssの調整に時間がかかりそうだけど)
更新編集になると検証に時間と手間がかかりそうなのでまだまだ先は長い。
ページ使い捨てのセッションID
Ajaxによる書き込み
が今回リニューアルで追加になった部分。こいつらがひっかかるようだとリニューアル公開はかなり遠くなる。
うーん、今月中には公開したかったんだけどなぁ。
メモ
変なアクセスがある。ロボット・クローラーじゃなさそう。リンク元が不明のまま、あちこちにアクセスしていて、気持ちが悪い。
なのでアクセスブロック。
150.70.84.
↑これ。コバンザメ系かなあ。なんだろう。
…て、検索してみたら出てきた。また、トレンドマイクロかよ。URLフィルタってなんだよ。まったく迷惑な話だ。ユーザーエージェントぐらい名乗れ糞。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」