Home

日記
脳関係だろうか (00:30)Edit

昼頃に突然目の焦点が合わなくなった。視界の中央に、もやもやと不特定の方向に光を屈折させる、直径5センチほどの透明の雲のようなものが浮いている感じ。全体としてはそれなりにちゃんと見えるんだけど、どこかを見ようとするとそこを中心とした部分だけが見えなくなる。

花粉症で目がかゆくて目を洗いすぎたからか、それとも我慢できずにちょっと目をこすっちゃったからか、とか思っていたんだけど、これってもしかして脳溢血とかその手の症状の前触れだったりするのかも、という可能性が強い気がしてきた。で、そう思ったらなんだか頭痛がしてきた。

このまま治らなかったらどうしたもんだろうなーとドキドキしつつも、1時間ほど半分目をつぶって過ごしているうちに少しずつ回復してきて、2時間ほどでほぼ元通りに焦点が合うようになった。ただ、頭痛はまだ残っていたんで今日はほとんど仕事にならず。

ここしばらくものすごく不健康な生活をしていたからなー。今までで一番不健康な状態である自信がある。ということで、何が原因かわからないけど、健康対策を真面目に考えることにしよう。病院に行くべきかどうかはちょっと迷うなー。もうすぐ健康診断だからそれで相談してからにするか。

Published At2005-03-19 00:00Updated At2005-03-19 00:00

日記
似た傾向のメモのインデックス更新が止まっていた (14:55)Edit

サーバーを転々と移動しているうちに、更新プロセスが置き忘れられてしまったらしい。っつーか、.phpという拡張子で#!/bin/shなスクリプトを書くのはやめようよ、俺。というわけで、久しぶりに(ユーザー数が二桁中頃の頃から止まっていたらしい)「似た傾向のメモ」表示がまともになってます。

Published At2005-03-19 00:00Updated At2005-03-19 00:00

日記
Edit

Published At2005-03-19 16:54Updated At2005-03-19 16:54

日記
『自分で作るblogツール(PHP編)』目次Edit

以下に『自分で作るblogツール(PHP編)』の目次の内容を掲載します。

第1章開発環境の準備

1-1 Webアプリケーション開発環境いろいろ

  • Webアプリケーション環境を構成する要素

1-2 Apacheのセットアップ

  • ローカルに実行環境を用意する理由
  • Apache1系と2系
  • まずは余計なサービスを止める
  • 最新版のダウンロードとインストール
  • 【Column】Apacheのミラーサイト
  • Apacheの動作確認

1-3 PHPのセットアップ

  • PHPのバージョン
  • ダウンロードとインストール
  • Apacheモジュールとして動作するようにする
  • 【Column】httpd.confに記述する位置は重要
  • PHPの設定を調整する
  • PHPの動作確認

1-4 そのほかの環境整備

  • PHPのマニュアル
  • 入力環境(エディタ)と文字コード
  • データベース

第2章基本的な機能の実装

2-1 blogツールってなんだろう

  • blogツールってなんだろう
  • 作成するblogツールの概要

2-2 記事データファイルの読み込み

  • 記事のデータフォーマットはどうしよう
  • 記事データファイルを読み込んでみる
  • 【Column】ロックの解除は不要?
  • 変数の内容表示とHTMLエンコード
  • 【Column】クロスサイトスクリプティング脆弱性

2-3 本文の整形とテンプレートファイル

  • 本文記述フォーマットの検討と整形処理
  • HTML出力のコーディングスタイル
  • HTML出力処理のテンプレートファイルへの分離
  • 【Column】「endforeach」や「endif」を使った表記法

2-4 Webブラウザからの入力

  • Webブラウザからの入力方法
  • Webブラウザからの入力は信用するな!
  • 記事ファイル一覧の表示

2-5 Webブラウザからの投稿

  • HTMLフォームからの入力とファイルへの保存
  • 投稿内容のチェック
  • 既存の記事を編集する
  • 【Column】PHPの三項演算子
  • コマンド分岐で複数の処理をまとめる
  • BASIC認証でアクセスを制御する

2-6 各種の処理を1つにまとめる

  • 共通処理の切り出し
  • 共通設定の切り出し
  • ディレクトリとファイル構成の整理
  • 記事を1件表示する(entry.php)
  • 最新記事の表示(index.php)
  • 記事管理画面の表示(admin.php)

第3章blog的機能の実装

3-1 インデックスによる一覧管理

  • インデックスの意義と用途
  • 記事インデックス管理クラスに必要な機能
  • 記事インデックスの生成と読み書き
  • 記事の変化への対応
  • 記事インデックスからの記事の抽出
  • 記事インデックスの並べ替え
  • HandMadeBlogへの組み込み

3-2 ファイルアップロードと画像の管理

  • ファイルのアップロード
  • セキュリティ上の注意点
  • 画像ファイルの取り扱い
  • HandMadeBlogへの組み込み
  • 【Column】画像ファイルの加工

3-3 コメント機能

  • ファイルフォーマットとファイルの読み込み
  • 投稿の受け付けと保存
  • HandMadeBlogとの連携
  • 【Column】コメントSPAM対策

第4章サイト間連携機能の実装

4-1 PEARライブラリの概要とインストール

  • PEARとは
  • 基本部分のセットアップ
  • 【Column】PEARのディレクトリ構成
  • PEARパッケージの管理
  • 【Column】PEARのドキュメント

4-2 メールを使った記事の投稿

  • 携帯メールで記事を投稿する
  • メール配信の仕組み
  • Mail_mimeパッケージを使ったメールデータの解析
  • POP3プロトコルでメールデータを取得する
  • HandMadeBlogへの組み込み
  • 【Column】定期的にプログラムを実行する方法

4-3 RSSの生成と利用

  • RSSとは
  • 【Column】乱立するRSS規格
  • RSSフィードを出力する
  • RSSフィードを読み込む
  • 【Column】RSS AutoDiscovery

4-4 更新通知pingの送信(XML-RPC)

  • XMLWebサービスとXML-RPC
  • 更新通知pingのプロトコル
  • 更新通知pingの送信
  • HandMadeBlogへの組み込み
  • 【Column】XML-RPCパッケージ

4-5 TrackBack

  • TrackBackとは
  • TrackBack pingの送信
  • TrackBack pingの受信
  • 受信したTrackBack ping一覧の表示
  • 【Column】TrackBack ping一覧のRSS出力
  • TrackBack AutoDiscoveryへの対応

4-6 Amazon Webサービス

  • Amazon Webサービスの概要と申し込み
  • RESTリクエストを使ったデータの取得
  • 【Column】そのほかの検索方法
  • プログラムによるアクセスとXMLのパース
  • HandMadeBlogへの読み込み

『自分で作るblogツール(PHP編)』サポートエントリーに戻る

Published At2005-03-19 16:54Updated At2005-03-19 16:54

日記
Edit

Published At2005-03-19 17:32Updated At2005-03-19 17:32

日記
『自分で作るblogツール(PHP編)』「はじめに」の抜粋Edit

以下に『自分で作るblogツール(PHP編)』の「はじめに」の一部を抜粋します。

一昔前、「パソコンを使う」といえば、「パソコンでプログラムを組む」ことだった。まだパソコンがマニア向けのおもちゃにすぎなかった時代だ。

その後パソコンは性能を上げてゆき、誰かが作ったプログラムを動かすだけの道具へと変わっていった。その上で動作するプログラムはもはや遊びの延長で作れるレベルのものではなくなり、プログラミング環境もわざわざ買わないと手に入らないものになった。

しかし、インターネットの普及によってこの流れが再び変わりつつある。HTMLあるいはCGI、あるいはblog、あるいはWiki。コードを打ち込んで動かしてみるという「プログラミング」の楽しさが、インターネットに場所を変えて復権してきている。

というわけで、本書は、インターネット関連技術、特にblog周辺の技術を使って、「パソコンでプログラムを組む」ことを楽しむための本だ。あまり初歩的な話は面白くないので、「基本はある程度身につけた人が、実用的なツールを作って遊べるようになる」あたりをターゲットとしている。プログラミング経験がまったくないという人は、まずは初心者向けの書籍などを読んで基本を身につけておいてほしい。

本書を読むことで、あなたにとってのパソコンがただのお仕着せの道具ではなく、思い通りに形を変える万能の道具になることを祈ろう。

『自分で作るblogツール(PHP編)』サポートエントリーに戻る

Published At2005-03-19 17:32Updated At2005-03-19 17:32

日記
PHP関連専用にしてみた (17:20)Edit

gonzuiを0.8にアップデートしたら、DBの互換性がなくなっていたんで、どうせだからとhttp://gonzui.ishinao.net/の内容をPHP関連専用ソースブラウザとして使えるようにしてみた。gonzui-importでCVSを直接取り込めるのは楽だなー。

現在PHP 4.3.10、PHP 5.0.3、PEARのCVSレポジトリ丸ごと、PECLのCVSレポジトリ丸ごと、Smarty、Mojavi、Mapleがつっこんである。他に入れておいたら便利そうなものあるかなー。

ところでCVSからつっこんだソースに対して、gonzui-updateって効くんだろうか? ダメだったら、いったんローカルにチェックアウトしてから作業した方が更新作業が楽だってことになっちゃうなー。まあ更新するかどうかわからないけどさ。

Published At2005-03-21 00:00Updated At2005-03-21 00:00

日記
PHP用の汎用WikiParser作り中 (19:31)Edit

いろんな自作ツールで手軽に使える汎用的なWikiParserが欲しかったんで、RandomNote/PHPのWikiパースコードをベースに作り中(thanks to ninjinさん、yaktyさん)。以下のような感じでWikiテキストをHTMLにレンダリングできる。

$parser =& new WikiParser();
echo $parser->parse($text);

オプション等で、ある程度挙動(WikiNameの有無とか、改行を生かすかPタグに変えるか、とか)を変えられる。あとキーワードリンクやInterWikiの設定、プラグインによる拡張(結果をその場に埋め込み系)が可能。これを使ってYukiWikiMiniレベルのシンプルなWikiEngine(WikiEngineとしての機能はシンプルだけどWiki記法的には結構リッチ)を作ってみたんで、詳しい情報はそこに書いておいた。現状のソースも置いてある。

Wiki記法はtDiary Wikiスタイルのもの(というかオリジナルWikiのもの)にできるだけ準拠しつつ、RandomNoteで使われていたブロック系の拡張も残し、独自の拡張(主にプラグイン)も用意している。

現状でも一応動いているんだけど、WikiParserクラスの仕様として、現状以上の拡張性を持たせるかどうか、持たせるとしたらどういうインターフェースがいいか迷い中。

パース中のドキュメントのn箇所が連携するような拡張を、スマートに記述できるようなやり方ないかなー。コールバック関数+イベントで一応実現できたけど、いまいちスマートさが足りなかったんだよなー。

Published At2005-03-23 00:00Updated At2005-03-23 00:00

日記
エロ雑誌の撮影? (14:39)Edit

さっき、超ミニスカを履いたねえちゃんが、渋谷駅前の歩道の柵を乗り越え(パンチラ)、それを低く構えたカメラマンが撮影していた。リテイク風景がちょっと笑えた。

Published At2005-03-24 00:00Updated At2005-03-24 00:00

日記
注目URL、メディア情報ページを作りました (16:22)Edit

作りかけで放置していた注目URL、メディア情報をページを作りました。ユーザー数が増えてそれなりに有意なデータが出るようにしてから作ろうと思っていて、すかーり忘れていたよ。

ところでblogmapのランキングと、MMのランキングって、どういう風に融合させるといいんだろうなー。それぞれの似ている部分と違っている部分をうまく生かした統合ランキングが作れるといいんだけど。

Published At2005-03-24 00:00Updated At2005-03-24 00:00