運用方針
2005/08/26/移行作業その2の変更によって、 Sageなどを使っていると、しょっちゅうページを改変することで、 RSSの本文がdiffだらけになってしまうので、 ネタを書くのは1回きりにしておいて、変更点は[ノート]に追記するようにしよう。
2005/08/26/移行作業その2の変更によって、 Sageなどを使っていると、しょっちゅうページを改変することで、 RSSの本文がdiffだらけになってしまうので、 ネタを書くのは1回きりにしておいて、変更点は[ノート]に追記するようにしよう。
RSSの<content:encoded>をdiffにするか全文にするのか、 悩んだあげく、選択できるようにした(wiliki-rss.scm.diff)。
ただし、wiliki.scmの<wiliki>のスロットに
;; RSS content output is ALL, not diff (rss-content-all :accessor rss-content-all-of :init-keyword :rss-content-all :init-value #f)
を追加しなければ動作しない。
こちらのひとり遊びページは:rss-content-all #tで。 HSPWiKiは#fで運用してみることにしよう。
とりあえずWiLiKiのRSS出力まわりをイジイジ。 rss.scmの出力は貧弱すぎるので、強化(wiliki-rss.scm.diff)。
変更点は3点。
<content:encoded>は変更点の前後も出力したほうがいいのかなあ。ちょっと面倒そうだ。 とりあえずW3CのRDF Validatorもパスしてるみたいだし、 これ以上深追いはしないでおこう。
次はCSSでも書き直しますかね。
結構嫌う人も多いらしいです。なんででしょうね。
ちょっと凝ったことをするときは、OpenBSD-man:snprintfの方がいろいろ楽かもしれません。 といっても、こちらは返り値が0以下を返すこともあるので、 このときの処理を忘れたらいけないのが少しだけ面倒です。
strlcpy,strlcatはANSIでもPOSIXでもありませんが(OpenBSD-man:strlcpyのHISTORY参照)、 *BSDに入っているTodd氏の実装はANSIで書かれたISC BSD Licenseなコードなので、 勝手に組み込まれて困る人は少ないでしょう。 autoconfでチェックして、無いなら自前のコピーをぶち込むのが常套手段です。 OpenBSDの版のコードの最終更新もすでに2年前ですし、 安定しているといっていいと思います(OpenBSD-cvs:src/lib/libc/string/strlcpy.c)。
int main_function(int argc, char **argv) { ... unsigned char Buffer[MAX_CHUNK_SIZE]; ... char *bufptr; ... bufptr = Buffer; bufptr+=sprintf(bufptr,"GET %s HTTP/1.0\r\n", proxy == NULL ? file:full_path); ... bufptr+=sprintf(bufptr,"Accept: */*\r\n"); bufptr+=sprintf(...); bufptr+=sprintf(...); bufptr+=... ...何が起こるのか想像が付かない。やばすぎる。 他にもツッコミどころ満載。 1関数あたりの行数が異様に長いところとか、 ちょっとやそっとでは修正不可能なくらいグチャグチャです。 作者はどうやってC言語を学んだのでしょうか。 とても興味深いですね(棒読み)。
strcat(strcat(strcpy(x, y), z), w);こういうコードなんか見つけるとlispかよ! と、いつも心のなかでツッコミをいれてしまうのですが。