タイトルリスト
 2005/08/05
さくら日記帳 2.0.0 BETA-71.1
超久しぶりに更新、といっても一部見た目を変更しただけです。
コメントを行った際に現在誰がコメントを書いたのかという表示形式に変更してみました。
sub tsukkomi_update_list ブロックをまとめて これ に置き換えてください。
バージョン番号は sakura.ver を適当に書き換えておいてください。(´ω`;

sakura.cgi のバックアップはお忘れずに。

  • あぞっち:72.1たんは、あっしがもらった (ぉ
    なかなか、よさげ (ぉぉ
  • G兄:おぉ、そりゃーよかった。
    日記のタイトルも取れるようにしたかったけど、それするとファイル読み込む処理が増えるからやってません。
  • 山銀:うちも導入してみたんですが・・・ツッコミ更新時刻の表示場所を変えてあるので今のレイアウトだと使えない事が発覚。(^^;
  • G兄:バージョン番号間違えていたので変更。(・∀・)
  • あぞっち:> バージョン番号間違えていた
    (;°;Д;°;) エェェェェェ!!
  • G兄:(゚ε゚)キニシナイ!!
TrackBack URL:[]
 2005/08/04
さくら日記帳 for MySQL Rev-20050803.0000
日記エディタ部にタグ挿入ボタンを追加してみた。

タグ挿入ボタン

うほっ、良い使い勝手!!
このボタンは設定画面で追加・削除が出来るようにしてあり、ソースを直接書き換えなくても良いよいにしているが、これが結構便利。
今までだと手打ちだったが、手打ちってやっぱり面倒くさい。
で、頻繁に使う物だけボタンにしておけばかなり楽なんじゃないかな〜とか思ったわけだがこれが大正解。

あ〜、便利すぎ。('A`*

  - NO COMMENT -
TrackBack URL:[]
 2005/06/13
さ:ブラックリストにぶちこみましたっ! う:南無ー。
トラックバックpingの受信、しばらくの間ブラックリストプラグインが誤動作していた模様。orz
でもつっこみ記入の時は動作してなかったなぁ・・・?

記述をちょっとミスっていたようだ。orz

  - NO COMMENT -
TrackBack URL:[]
 2005/06/12
カラー変更
待機中暇すぎるので、夏用に少しばかりカラー変更。
背景とヘッダは家に帰ってから・・・。

左右のサイドバーも少し変更を加え、スタイルシート定義ファイルは定義そのものを少し整理。
半分以上消えて無くなった。(w

  - NO COMMENT -
TrackBack URL:[]
 2005/06/04
さくら日記帳 for MySQL の HTML 分割 #2
別に CGI を用意して作成中。
現在はこんな感じ。
月別
カテゴリ別

カテゴリ別はサブカテゴリのみ分割。
メインカテゴリは出力できてない。
ページ分割リンクは一番下の中央に。

  - NO COMMENT -
TrackBack URL:[]
 2005/06/03
さくら日記帳 for MySQL の HTML 分割
毎日変更しまくりwwwwwwww

今回は HTML の分割をしてみようとおもふ。
で、できればプラグイン化したいのだが、どこにどうプラグインとして突っ込めばいいのやら・・・。
サンプルは出来ているのでこういうことをやろうと。

http://griffonworks.net/sakura_mysql/archive/2005-05.php

いっちばん下に "1 | 2 | ALL" というリンクがあるのでそれを使用する。
中は php で書かれていて、一部抜粋するとこんな感じ。
<?php
  $mynum = "2005-05";
  $num = $_REQUEST{'page'};
?>

<?php
  include("top_bar.html");
?>
<div id="nikki-block">

<?php
  $max = 2;
  if ($num == 0) {
    for ($i = 1; $i <= $max; $i++) {
      include("${mynum}_$i.php");
    }
  }
  else if ($num < 1) { $num = 1; }
  else if ($num > $max) { $num = $max; }
  if ($num > 0) { include("${mynum}_$num.php"); }
?>

<?php
  for ($i = 1; $i <= $max; $i++) {
    if ($i == $num) { print "$i | "; }
    else { print "<a href=\"?page=$i\">$i</a> | "; }
  }
  if ($num == 0) { print "ALL"; }
  else { print "<a href=\"${mynum}.php?page=0\">ALL</a>"; }
  print "<br>\n";
?>

<?php
  include("bottom_bar.html");
?>
超強引www

いや、オレ php わかんねーし・・・。
Perl と似てるっちゃー似ているが。

  • 蝦兄:ソースを見て何が強引なのかわからない自分が情けない・・・(汗)
    自分でも信じられないくらいに開発言語は何やっても頭に入ってくれず,挫折する繰り返しなんですよねぇ.
    むーん.
  • G兄:あぁ、なんかプラグイン呼び出し部分もかなり強引すぎるコードになってきた・・・。
    つか「そのプラグイン専用呼び出しコード」って時点で逝って良しwwww
    プラグインの呼び出し部分って滅茶苦茶むずかしいな。

    >頭に入らない
    自分が必要としないから頭に入らないんですよ。
    オレの場合はPerlが必須だったから覚えられたニダ。
    php もそうなるんだろうか。
    >強引
    結果良ければすべて良し。(謎
  • Toshix:phpって強引に書いて動かす物だという認識が(まて
TrackBack URL:[]
 2005/06/02
さくら日記帳の設定画面とプラグイン更新
こんなんなりました。(・∀・)

小綺麗に小綺麗に(w

アイコンは自分で描くのもだるいので Web で探しているのだが、設定とログアウトのアイコンでよさげなものが見つからない・・・。



&img:() 変換プラグインを更新。
今回は _NB オプションを増設。
&img_NB のように使うことで画像周りのボーダーラインを 0 にすることが可能で、_R や _L と共存可能。
共存させる場合は _L_NB のように使用する。

  • 窓枠:先生ー!
    突っ込み入れた後「戻る」を押すと/nikki/sakura.cgiに飛んでユーザー名とパスを要求されるですー!

    #多分性^H静的HTMLの辺り関連の変更と合ってない気が。
    #.cgiだと編者ログインへ、/nikki/だとhtmlへってなってるのに戻り先が.cgi向いてる、と。
    ひょっとして編者投稿後の表示と突っ込み後の表示を共通にしてません?
    別々なら単に「戻る」のリンク先いじるだけですが。
  • G兄@会社:絶対つっこみ入ると思ってたwwww
    現在そのあたりは調整中で、どういうふうにリンクをいじろうか考えてます。
    効率とコード削減を考えてるので、使い回しできるところは使い回ししまくってますが、その弊害がこれです。

    ちなみに php 化したさくら日記帳、表示爆速wwwwっうぇwwwwww
  • 真吾:俺の設定画面はピンク色にならねーーーーーー
  • G兄@会社:そりゃならないよ。
    さくら日記帳 for MySQL 限定版だから。(ぉ
    # しんごちゃんのは NOT MySQL 版。
TrackBack URL:[]
 2005/06/01
Redirect と CGI のオプション
sakura.cgi?num=XXXX という型式で記事に飛べなくなったので、MT の php 化でよく採用されている
Redirect permanent で静的 HTML ファイルに飛ばす
という手法を使おうと少し実験。

.htaccess に
Redirect permanent /nikki/sakura.cgi?num=1 http://griffonworks.net/nikki/archive/1.php
と書いて実際に num=1 にアクセスしてみた。
普通だとこれでリダイレクトされるだろうと思っていたのだが、何故かリダイレクトされない。
そこで "?" が悪いのかと思って "&" に置き換えてみたらリダイレクトされた。
ならばと .htaccess の方を "\?" として sakura.cgi?num=1 にアクセスしてみたのだが、これでもやっぱりダメ。

どうやら "?" 以降の文字列は見ない仕様になっているのかはわからないが、とりあえず "?" が付いているとリダイレクトしてくれない。

それならばと強引な手法でリダイレクトしてみた。
というのも、sakura.cgi ロードの初期部分で条件分岐があるのだが、そこで
num=* もしくは date=* かつ、mode=null であれば Redirect permanent する
という perl スクリプトを挿入、HTML ヘッダで 302 permanent でリダイレクトさせるようにした。
とりあえずこれでトラックバックした分と日単位での表示は今の静的 HTML にリダイレクトさせられたが、他の分に関しては諦めるか。

ちなみにこのリダイレクトコードは、条件分岐用プラグイン (redirect.pl) に追加してあるので、使わないときはプラグインのファイル名を変更するだけで外せるというお手軽仕様。
submit_check のプラグインがここで使うとは思っても見なかったり。

  - NO COMMENT -
TrackBack URL:[]
さくら日記帳 for MySQL の静的 HTML 化 #4
静的 HTML 化やっと完了。orz
これでもう後には引けなくなった。

というのも、トラックバックすると記事に対して直接リンクが張られるわけだが、この URL が静的 HTML ドキュメントになる。
そうすると、.htaccess でリダイレクトするとか諦めるとかしなければならないのだが、このあたりが非常にマンドクセので、一度静的 HTML 化をしてしまうと後には引けないというわけ。

とりあえず、大幅に負荷が下がったのでこれはこれでよしとしよう・・・。

  - NO COMMENT -
TrackBack URL:[]
さくら日記帳 for MySQL の静的 HTML 化 #3
多少 SQL の最適化をして軽量化。
と共に、以前から設定インターフェイスを作成しようと思っていたのでこんなものを作成。

無駄に小綺麗な設定画面

無駄すぎ・・・。_| ̄|○

  - NO COMMENT -
TrackBack URL:[]
 2005/05/30
さくら日記帳 for MySQL の静的 HTML 化 #2
順調に進んでまふ。
月別、日別、カテゴリ・サブカテゴリ別、記事別の全てに対応できたので、あとは編集したときの適時構築の部分と連携させるだけ。
問題は今までに TB したところの番号をどうするか・・・だな。
それ以外の外部からのリンクはあきらめる。(w

  • Toshix:うちも、php化したときに同じ問題にぶちあたったんだけど、.htaccess使ってリダイレクトさせとります。
    トラックバックしている記事は
    Redirect permanent /mt/archives/2005/01/post_110.html http://to-6.com/mt/archives/000161.php
    こんな漢字で。
    あとは、まだエントリー数が少なかったのでほかの記事は全部トップへ飛ばすように記述してるけど、5000以上ある場合はかなりしんどい作業になるかも。
TrackBack URL:[]
 2005/05/27
さくら日記帳 for MySQL の静的 HTML 化
いやほんとまじで勘弁してくだつぁい(つд`)っつーほど頭が痛くなりますた・・・。orz
php で include 使ってサイドバーとヘッダ・フッタを結合すれば静的 HTML の生成負荷はかなり減るんだが、問題はサイドバーとヘッダ・フッタの扱い。
これらのテンプレ (一度きりテンプレ) と本文テンプレ (繰り返しテンプレ) の中には共通のテンプレ変数という物があるが、これをいったいどうやって変換させようかというもの。
今のところ、共通テンプレ変数は別エンジンでまとめて変換をかけているが・・・。

内容をまとめるためにあえて日記として残しておこう。



やっぱり難しいよママン。。・゚・(ノД`)・゚・。
HTML 構築部分を 1から仕様決め直したほうがいいかもしらん。

  - NO COMMENT -
TrackBack URL:[]
 2005/05/25
さくら日記帳 for MySQL Rev-20050525.2338
日付単位で抽出する際の SQL 発行回数の減少とコメント入力時の自動リターン。
自動リターンは一応変数クリアして戻ってるけど障害になる可能性も・・・wwwwww

ちまちまちまちまと SQL の最適化と無駄なループを行わない地道な努力・・・疲れる。('A`;

  • 山銀:>入力時の自動リターン
    さくら日記帳通常版と違って・・・やたらと高速ですな。(^^;
  • G兄:つっこみをログに書き込んだ後、HTML 構築ルーチンを直に呼び出しているからです。
    通常版は META タグで sakura.cgi をリロードするので最低でも 1sec. はかかりますが、MySQL 版は直接呼び出しなのでタイムラグがありません。
    ただし、変数クリアができないので何が起こるかは・・・。
    一応確認はしてるんですが。('A`;
  • たわし:>ちまちまちまちまと SQL の最適化と無駄なループを行わない地道な努力
    ・・・極普通の作業なんですが(ぉ
    テーブル結合の仕方でも所要時間が変わりますな
TrackBack URL:[]
MySQLでのリレーションの使い方
さくら日記帳 for MySQL でリレーションを使ってみようかな〜とか考えていたわけだが、どこで使えばいいのかいまいちよくわからないというかリレーションすべきことでもないので今まで見送っていたが、会社で少し時間がとれたのでテストテーブル作って実験してみたところ、以外と簡単っつーか簡単すぎた・・・。orz

ちょいとテーブル構造を修正するか?

  • 山銀:リレーションも良いんですが・・・出来ればツッコミを入れた後に自動的に日記に戻って欲しいなぁと。(^^;
  • たわし:・・・SQLの書き方なら教えるのに(ぉ
  • G兄:>日記に戻る
    これでどうかな?
    >SQL
    テーブル構造を教えるのがマンドクセ(笑)
TrackBack URL:[]
 2005/05/22
クエリ実行速度
category.pl で時間を食っていたのはわかっていた。
そこで、連日流石に 2sec を越える時間をかけて日記を表示させるのもしゃくなので、どうすれば時間短縮できるかを考えてみた。
結果、
SELECT category_en,COUNT(category_en) FROM diary GROUP BY category_en
→ 0.1633 sec.

SELECT category_en FROM diary GROUP BY category_en
→ 0.0780 sec.

SELECT category_en FROM diary
→ 0.0018 sec.
という驚くべき(?)結果に。('A`;
そこで、COUNT と GROUP BY を使わなければ早いのでは?ということで、早速 "SELECT category_en FROM diary" を while でループさせてみた。
while (my $TMP_HASH = $mysql_sth->fetchrow_hashref) {
    $CATEGORY_COUNT{$TMP_HASH->{category_en}}{$TMP_HASH->{subcategory_en}}++;
}
→ 0.14367 sec.
0.02 sec. だけ早くなったが、こうすることで今まで主カテゴリと副カテゴリの 2回クエリを実行していたのが 1回で済んだので、0.16 x2 sec. が 1/2 になったので無問題。

ただ、どうやっても 1sec. は切れないので、これはもう鯖のマシンパワー依存かと思っているが、はたしてそうなのかどうかは不明。



cles::blogのチューニングというところで "query_cache_size を使う" というのがあったので調べてみたところ、おなじく 0 になっていた。('A`;
ということでこれを 20M にして実験してみたところ、最短で 1.0 sec. 近くまで短縮することに成功。(゚∀゚)アヒャ
しかし、バッファ関係の値を弄るとなぜかパフォーマンスが落ちるという現象に遭遇しているので、今のところは query_cache_size 以外の設定を触る必要はなさそうだ。
これにあわせて while でループさせていた修正箇所を元に戻した。



主・副カテゴリの 2回ループのうち、主カテゴリの COUNT クエリを実行しなくても主カテゴリの件数を取得できるようになったので、そのループを除去。
で、現在は
SELECT category_en,subcategory_en,COUNT(category_en) FROM diary GROUP BY category_en,subcategory_en
→ 0.00063 sec.
となりキャッシュ効きまくり。
表示時間も 1.2 sec. くらいと早くなったので静的 index.html の出力をやめようかと。

  - NO COMMENT -
TrackBack URL:[]
0 | 1 | 2 | 3 | 4 | 5
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
ツーリング ドライブ兼野外撮影予定リスト