タイトルリスト
0 | 1 | 2 | 3 | 4 | 5 | 6
 2005/02/19
テンプレート機能などいろいろ追加!
機能がどんどん重装備になっていくさくら日記帳。
今度は左テーブルだけテンプレート化してみました。





変換エンジン死にそう。_no





つかマジで s/// 使いまくりでガスガス変換しまくり。
これでパフォーマンスちゃんと出るんだろうか?

ちなみに日単位出力の時の表示速度が遅いのは原因不明。
カテゴリ単位表示だと平均 0.7秒で初期レスポンス (ブラウザに対してはぢめてのパケット着弾) 有り。
これが日単位になると 1.9秒くらいに延びるから問題だ。

計測はかいちょに教えて貰った lori (Life-of-request info) を使って表示したものを参考に。
  - NO COMMENT -
TrackBack URL:[]
 2005/02/16
ついにトラックバックPing受信機能搭載!
ますます blog化。_| ̄|○

トラックバックを自分に対して打ってみた感じでは正常に登録されてるっぽい。
主要な機能は実装できたから、あとは細かいところの調整かな。

ついでに同一サイト内でのトラックバック受信テスト。

あ。左バーは一部プラグイン化してるので詰まったり順番違ったりしてるのは(゚ε゚)キニシナイ!!でください。

っと。
トラックバックの追撃テストで文字コード変換は OKっぽい。
さっきまで保存後、出力する際に変換をしていたが、保存する前に変換をしないと phpMyAdmin や mysql 倉で化ける罠。orz
という事で前段階で変換するように変更。

あとは左バーの「情報」をプラグイン化。
  • Toshix:あんれ、壮絶に文字化けしてるな(汗

    もしかして文字コードが違うから?
  • Toshix:やっぱり文字コードが違うせいらしい。
  • G兄:そういや文字コード変換入れてないな。
  • G兄:できた。(・∀・)
  • G兄:暇なときにもう一度同じTB飛ばしてくれぃ。_no
  • Toshix:OKやねん。
Track Back
  1. SIGMA 10-20mm F4-5.6 EX DC HSM 発表 from 見た目blogっぽい日記
  2. linkキタ━━(゚∀゚)━━!!!シグマえらい!よくやった!!タムロンの 11-18 買おうかなとか思ってたけど絶対こっち買おう。実はでっかいレンズ萌えのシグマファン。DC だから小さいけど(゚ε゚)キニシナイ!!
    2005/02/16 12:31:02 Registed.
  3. ちょいとトライ from 見た目blogっぽい日記
  4. link>確か、一般配布はしないと宣言されていたと思うんですが・・・残念ですな。>まぁ、仮に公開されたとしても私が設定出来るかは別なんですがね。(^^;との事だったのでlink。今の山銀さんのデザインに無理矢...
    2005/02/16 12:31:27 Registed.
  5. あえて from existence Uhheri Edition
  6. 以前私も使っていたさくら日記帳。 ソレをMySQLを使う仕様にしてフルスクラッチ...
    2005/02/16 15:52:13 Registed.
TrackBack URL:[]
 2005/02/15
改行変換って結構強引やね。
さくら日記帳に限らず掲示板などでは必ず使われる改行タグ BR。
これ、s/\n/<br>\n/ だけすりゃぁいいとか思ったら大間違い。
たとえば HTML タグの後ろで改行した場合、普通は入れないはずの BR タグが入れたくもないのに入ってしまう。
それを正規表現一発でどう変換しようかと考えていたらいつの間にか頭から煙が出ていたのだが (ぉ、ぐぐる先生に聞いてみたところ有力な情報をゲッツ。




やっぱり考えることはおなじくごり押しかよ。_no




で、そのことをチャットで話してたらかいちょもそのコードを適用したらしく。
つーわけでネタも似たようなもんなのでトラックバックしてみる

で、さくら日記帳 for MySQL で使っているごり押し部分。
前作のさくら日記帳 Rev-2.0.0 BETA では PRE タグ処理が分離していたが、今回は BR タグ変換と統合。
PRE タグは BR タグを付けると二重改行になるのでこうした小細工が必要なり。
ちなみに二重改行は BR の連続になるが、P タグに変換するのがマンドクセ('A`)ので諦めた。(ぉ

# PRE タグ検知フラグ
my $pre_tag_flag = 0;
# バッファ
my $wd_tmp;

# \n (LF) でぶつ切りにする
# \r? は \r (CR) が無くてもおkという事
foreach my $line (split(/\r?\n/, $wd)) {
# <PRE> タグの扱いは特殊。この順序と if の使い方が大事。
# まずは <pre> もしくは <pre style=""> などが含まれる文字列を見つけた場合は PRE タグ検知フラグを立てる。
    if ($line =~ /<pre( .*?)?>/) { $pre_tag_flag = 1; }
# PRE タグ検知フラグが立っているか、もしくは $regex で指定したタグが見つかれば BR タグは付けない。
    if ($pre_tag_flag || $line =~ /<\/?($regex .*?|$regex)>$/) { $wd_tmp .= "$line\n"; }
# そうで無い場合は BR タグを付ける。
    else { $wd_tmp .= "$line<br>\n"; }
# もし /PRE タグが見つかれば PRE タグ検知フラグをクリア。
    if ($line =~ /<\/pre( .*?)?>/) { $pre_tag_flag = 0; }
}
# バッファの内容をメインバッファに移す。
$wd = $wd_tmp;

  - NO COMMENT -
TrackBack URL:[]
またまた更新@さくら日記帳 for MySQL
左側に投稿記事の最新版リストを投稿日付順に表示
日付でジャンプできないのでディレクトリツリーは OPEN タイプを選択。
ちなみにこの JavaScript、基本は CLOSE のセッティングにしてあるので初めだけ閉じるときは 2回クリックしないとだめなのが非常に残念。

カテゴリの統廃合実施
Perl が PC 関連にぶら下がってるし、UNIX 系 OS も同じ所にぶら下がってるから共に「言語系」「OS 系」と分けた方がいいかな?と思ったが、そんなに細切れに分けてもしかたないなぁとふと気が付いた。
なにしろメインカテゴリにぶら下がる数が少なくなる。(笑)

さくら日記帳のカテゴリ作るか。

というわけでさっさとカテゴリ分けた。(笑)
「プログラム、スクリプト」カテゴリを増設、その下に Perl とさくら日記帳ネタを格納。

一番下の前後ページ移動リンクの修正
どうせ使わないからとのばしのばしにしていた移動用リンクだが、このバージョンでやっと修正。
今まではなんと最後のページにたどり着いても次のページが有るかのようにふるまっていた。(笑)
つか面倒だっただけだが。


  - NO COMMENT -
TrackBack URL:[]
 2005/02/14
ちょいとトライ
◇山銀さん
>確か、一般配布はしないと宣言されていたと思うんですが・・・残念ですな。
>まぁ、仮に公開されたとしても私が設定出来るかは別なんですがね。(^^;

との事だったので簡単にサンプルを作ってみた

今の山銀さんのデザインに無理矢理合わせるとお気に入りリンクとカテゴリリストがあぶれます。(笑)

で、いつも改造してらっしゃるようですが、仮にお気に入りリンクを消したとしても、カテゴリリストはどうしようもありません。
これ、縦に延びますから上に配置は出来ませんね。

ちなみにカテゴリリストも表示させないとなると全部上に収めることは収められますが、はたしてそれだと MySQL 版を使う意味があるのかどうかという疑問も。
各日記に記述されているカテゴリリンクをクリックしたら、そのカテゴリに該当するもの全部表示するから無くて困るということもないんですが。
表示速度はさくら日記帳 Rev-2.0.0 BETA:70 入れてもらえれば 3倍速になりますし。(笑)

MySQL 版は表示速度に目を奪われがちですが、カテゴリを主として記事の区分けをきっちりできる・するという利用を想定してますので。

かいちょからは

blog じゃん。(素

と言われたし。

日記帳らしくないですよーだ!ヽ(*`Д´*)ノ プンプン (w
  • たわし:>カテゴリを主として記事の区分けをきっちりできる・するという利用を想定してますので。
    ってことはマスタ系とトランザクション系のテーブルを作ってテーブル結合で出力するんですな・・・と言ってみるテスト(ぉ
  • G兄:そこまで出来たら苦労はしないと思うッス。(ノ∀`)アチャー
  • たわし:テーブル 正規化 ・・・(ボソ
  • 山銀:>サンプル
    拝見しました。
    何気なく・・・そんなに不定期でもないというツッコミがありましたが。(笑)
    最近は不定記ではなくて日記状態なんですよね・・・タイトル変更か不定期にするかですかね。(ぉ
TrackBack URL:[]
 2005/02/13
さくら日記帳 Rev-2.0.0 BETA:70 公開
例の単語変換エンジンを MySQL 版だけに採用するのももったいないので Rev-2.0.0 BETA:70 としてリリース。
たぶん問題ないでしょ。
ダウンロードは暫定的に右のお気に入りリンクに。

ちなみに RSS 配信情報にも一部間違いがあったのでそれの訂正もしてます。
& を &amp; にし忘れ。
  • 山銀:>Rev-2.0.0 BETA:70
    ダウンロードしました。

    ところで、update.txt なんですが・・・ディレクトリに入って IE で見ると上の方が横長に見えますな。readme.txt は普通に見えるんですがね。
    まぁ、ダウンロードしてからローカルで見れば問題なく見る事が出来ますけどね。
    特に問題はないんですが・・・何となく気になったので。(^^;
  • G兄:たぶん途中にタグが入ってるから、text/plain と帰ってきてもかってに HTML と解釈してるんじゃないかと予想。
    火狐で見たらちゃんと改行されて見えますね。

    IEを窓から投げ捨てろ!(AAry
TrackBack URL:[]
さくら日記帳 Rev-2B の単語リンクエンジン
さくら日記帳 Rev-2B、新型の単語置換エンジンに交換してみた。

以下は旧型と新型で 7日間のログを表示させたときの処理時間をテーブルにしてみた。

旧型新型
1.35 sec0.45 sec
1.35 sec0.43 sec
1.34 sec0.44 sec
1.38 sec0.46 sec
1.34 sec0.45 sec
1.35 sec0.45 sec
1.00 倍3.03 倍

3倍速か。_| ̄|○

  • 山銀:>3倍
    シャア?
    とツッコミの練習をしてみる。(ぉぃ
TrackBack URL:[]
RSS出力追加
やっとというか RSS 配信する部分を追加。

現在テスト中なり。





テスト完了っつーか修正完了か。('A`)
わさび醤油に上がりっぱなしでスマンカッタ。

ちなみにこのさくら日記帳 for MySQL、完全 CSS 対応です。
CSS 外したらあられもない姿に。

↑から↓までずどーん(ぉ

# CSS 作るのが大変なんだけどね。

>引用符テスト #1
>引用符テスト #2

引用符テストうまくいってるみたい。

で。
肝心 (?) の単語置換エンジンだが、コレが一番のネックとなるだろうと思っていたら案外簡単な方法で解決。
Perl正規表現雑技」の「タグの外側だけ対象に置換する」を使ったら即変換 OK に。
検索する前に wd_conv で放り込んでみたけど前回と比べてかなり高速に。

さくら日記帳 (否 for MySQL) にも追加しておかないと。
  • Toshix:ばっちりRSS取得。
    sageにて完璧に読み込みできておりますばい。
TrackBack URL:[]
 2005/02/12
うpろだとトラックバックping送信機能設置
やっと設置完了。
うpろだ:
どうしてもファイル名を拾ってくれないと思ったら、どうやら sakura.pl の最上部で呼び出しているフォームデータ取得部が悪さをしていた模様。
しかしどうしてもここで拾わないとだめなので、フラグ立ってるときは sakura.pl 側でフォームデータを拾わないようにという無理矢理手法で。

トラックバックPing送信機能:
トラックバック技術仕様書を元にサンプルとかいちょんとこの blog を借りて送信機能を追加。
次はトラックバック受信機能を追加する予定。

かいちょさんきうー。
そして ImageMagick が使えなくなった。orz

事の発端は JPEG ファイルをリサイズでうpしようとしたとき。
500 エラーでうpできなかったのでおかしいなと調査したらどうやら JPEG ライブラリが使えなくなっていたようで。
use Image::Magick した時にそのまま終了してしまうっつーのもおかしな現象だったので思い切って再インスコ。



全滅。_no



というわけで今現在、既にもう12時間けいかしようという今もインスコできていない。ヽ(`Д´)ノ
とりあえず Image::Magick は入ったが PerlMagick で今度は GIF と PNG が入らなくなった。(汗)



やっと完全復帰。
結局 10数時間かかってやっと復旧できたわけだが。
6.x がだめだったのでソースを展開してあった 5.x を make してインスコしてみたところ無事完了。
その前にライブラリの更新とかいろいろあったけどね。
  - NO COMMENT -
TrackBack URL:[]
 2005/02/10
がりがりと更新中
さくら日記帳@MySQL、現在もがりがりと更新続けております。

今回対応したのは結構あるけど、主な物はテーブル構成をちょっと変更してカテゴリを「マスター・サブ」関係としたこと。
これで「バイクカテゴリの中のツーリングカテゴリ」という風にカテゴライズできるようになった。
ちなみに、メインカテゴリに属する記事全部を見ることも出来るし、サブカテゴリにのみ属している記事だけを見ることも可能。
状態はカテゴリ一覧からどうぞ。
  - NO COMMENT -
TrackBack URL:[]
MySQLって奥が深い?
  • データをフォームに表示するときに "&" を "&amp;" で変換しないとだめぽ。
    → s/&/&amp;/g;
  • "」を書くときは DB に入れる前に自前で「""」としないとだめぽっつーかエラーになる。(汗)
    → s/"/""/g;

このあたりの仕様ってどっかに書いてあるんだろうか・・・。
書いてありそうだが見つけられない、というのが正直。

で、以下はその再現性用サンプル。
まさかこんな事でひっかかるとは。(汗)

    # まずはつっこみの新しい順にグループ化したターゲット番号を 10個拾う
    my $mysql_query = "SELECT target FROM tsukkomi GROUP BY target ORDER BY lastupdate DESC LIMIT 0,10";
    my $mysql_sth = execute_query($mysql_db, $mysql_query);
    my @TARGET_LIST;
    while (my $TMP_HASH = $mysql_sth->fetchrow_hashref) {
        push(@TARGET_LIST, $TMP_HASH->{target});
    }
    $mysql_sth->finish;
    
    # 次にそのターゲット番号の記事タイトルを取る
    $mysql_query = join(', ', @TARGET_LIST);
    $mysql_query = "SELECT num,title FROM diary WHERE num IN ($mysql_query)";
    my $mysql_sth = execute_query($mysql_db, $mysql_query);
    my %TITLE_LIST;
    while (my $TMP_HASH = $mysql_sth->fetchrow_hashref) {
        $TITLE_LIST{$TMP_HASH->{num}} = $TMP_HASH->{title};
    }
    $mysql_sth->finish;
    
    # 最後に配列として保存。連想配列にしてしまうと順序がわからなくなる。(汗)
    my @RET_LIST;
    foreach (@TARGET_LIST) { push(@RET_LIST, "$_<>$TITLE_LIST{$_}"); }
    
    # 最後の締め。
    $mysql_db->disconnect;
    
    return @RET_LIST;

書いてあった。_| ̄|○
というわけでこうしてみた。
s/("|'|\\)/\\$1/g;
ちなみにこの変換用ルーチンをブロック単位で作っているが、フォームデータをそのまま利用する場合もあるので get_formdata() にそのまま放り込むわけにも行かず。
クエリー発行前の部分にでも入れるか。

その後、エラートラップの良い方法も見つけたので試しに実装してみる。
なかなか良い感じ。
ただしこのエラートラップ、上手いこと回避させないとレコードが取れなかったときもエラーになるので要注意。
  • G兄:ちなみにつっこみの部分はまだ未対応。(ぉ→変換
TrackBack URL:[]
 2005/02/08
意外な事実@MT
さくら日記帳@MySQL の DB の扱い (主に接続方法) で激しく悩んでいたんだが、参考にしていた blog CGI で Movable Type っつーのがある。
それの DB R/W を参考にしてみようということでかいちょに聞いてみた。






いや、そんな方法でセキュリティ大丈夫なんすか?('A`|||






っつーほどの安易な方法。
それ、同じ鯖にいたら簡単にパスワードばれる CGI 作れるぞ。

というわけで実証実験。





見れた。(゚Д゚|||) @リヴァ鯖


  • Toshix:完全に見れないようにするってのはやっぱり不可能なのかなぁ…。
    当然しっかり対策は必要だけどもう本当キリないなぁ(滅
TrackBack URL:[]
 2005/02/07
さくら日記帳 for MySQL
かな〜〜〜り出来上がってきた。
今回は MySQL をログサーバーに使ってるのでめっさ早い。
しかもログの読み込みと書き込みに凝ったことをせずに SQL のクエリー一発で呼び出せるので凄楽。
更新するときも番号指定さえすれば UPDATE で更新できるから、今まで苦労してきたことがいったい何だったのかと・・・。(w

ログインはユーザー ID とパスワードで先に認証しておき、認証が通っていなければ新規投稿・既存記事更新へのリンクが表示されず、GET メソッドで
mode=edit&num=15
などとして編集画面に入ろうとしても、「ログオン認証が済んでいない」と警告を出すようにした。
更に、このログオン認証はブラウザが終了するか、任意でログオフをするまでの Cookie セッション保持としたので、一度認証を通ればあとは気兼ねなく編集が行えるというもの。

ちなみにテーブルの自動作成機能はないのですぐにサービス開始を出来るわけでもなく。
つか これ MySQL の勉強用だから一般公開するつもりないし。:P


  - NO COMMENT -
TrackBack URL:[]
 2005/02/05
さくら日記帳@MySQL
書き込みフォームとつっこみフォーム、検索フォームが完成。
あとは修正フォームやね。

うーん、SQL でごり押しするだけだからかなり簡単すぎ。


といったところで問題発生。
日付のグループ単位で切り出す方法がわからん。(汗)
普通に
SELECT * FROM diary LIMIT *,5
とやったら日付を跨いで切ってしまうことも。
かといって
SELECT * FROM diary WHERE date BETWEEN 'YYYYMMDD_start' AND 'YYYYMMDD_end'
とやろうとすると、抜き出し開始の日付の部分を取り出さないとだめだが、MySQL はサブクエリーをサポートしてないので結構大変かも。

まぁ MySQL 化したことでオーバーヘッドは死ぬほど減ったので、1つくらいクエリーの発行回数が増えてもなんともないか・・・。


  • 坂の松:いや、マジメールおくれん・・・
  • G兄:ん?なんかあった?
    問題なく出せるみたいだけど、どこからどこに送ろうとしてる?
  • G兄:すまん、Perlのバージョンアップでamavis死んでた。_no
TrackBack URL:[]
 2005/02/04
MySQLで日記
簡単にフロントエンド作ってみた。
さくら日記帳2
日記の内容は既存のログをコンバーターで話題単位で分割、それをタブ区切りの CSV にして phpMyAdmin からぶちこみ。

もしかしたら早いかも〜。

* 早いねぇやっぱり。
おっひょっひょっひょっひょ!!ヽ(゚∀゚)ノ

楽ちぃ〜〜〜!ヽ(゚∀゚)ノ

なんつーか SQL クエリ書くだけだからデータの抜き出しがすげー楽すぎーーーーーーー!!

でも鯖依存高杉。_no


  • Toshix:phpMyAdminですぜ〜。
    ちなみに、MovableTypeもエントリー数が増えれば増えるほど重くなるのでSQLと連携させて使うのが激しく推奨っぽいです。
  • 坂の松:G兄にメールがとばせん・・・
TrackBack URL:[]
0 | 1 | 2 | 3 | 4 | 5 | 6
QRコード
携帯サイト試験運用
https://griffonworks.net/nikki/cgi-bin/k.cgi
1行板

備忘録
  • 無し
物欲リスト
  • Canon RF50mm F1.2L USM
  • SIGMA 20mm F1.4 EF Art
  • ニンバス チヌーク
  • OCB-1 ST II
ツーリング ドライブ兼野外撮影予定リスト