ブログ

MidnightCarnival

今まで自分だけ解ればいいや、というノリで作ってたフレームワーク『Midnight』ですが 次期バージョンでちゃんとしようと思います。 特にドキュメントがてけとー過ぎました。 使ってもらおう、という努力が明らかに足りてない

アーキテクチャの見直し、基本機能・クラスライブラリの強化、ドキュメントの整理、 サンプルスクリプトの作成(出来れば)。こんな感じですかね。 今まで完全オリジナルで思いつくままに作ってたんですが、他のフレームワークも参考にして 良い部分は取り入れたい所存でありますですよ。

まぁごてごて機能を増やしても重くなってしまうのでほどほどに。 『Midnight』は軽量高速動作が基本コンセプトですから。

MidnightDiver

とりあえずフレームワーク『Midnight』の改定作業を開始しました。 『ZendFramework』とか『Maple』とか『Ethna』とかを参考にしてます。 Midnightは厳密に言うとMVCじゃないんですよね。 どうせViewがメインになる事が多いのでModelと統合してます。 分けると無駄(オーバーヘッドとか)が大きそうなんで。

エラー出力制御、認証、DB接続、プレフィルター、ポストフィルター、 ライブラリの動的ロード、出力バッファリング、とか機能はこんな感じですかね。 ディレクトリの名前とか構成を従来とは大幅に変えてます。

……てゆーかLapisの新バージョンはそれに合わせて書き換えないといけないので リリースはちょっと(?)遅れるかもです。来年になるかな?

Midnight2.4.0Release!

てなわけでフレームワークを更新しました。てゆーかディレクトリ構成を変えてます。 互換性維持の為旧ディレクトリにあるファイルは変更してないので、 現状のスクリプトでは何も変化しないんですけどね。

「Lapis3.8.0」(新バージョン)への伏線です。 「Lapis3.8.0」は「Midnight2.4.0」が必須になります。 「Midnight2.3.1」では動きませんのであしからず。

一番大きい点は出力バッファリングを行うようにした事かな。 ブラウザで見る時にgzip圧縮転送でデータが送られるので素早く表示されます。 はっきり言ってパフォーマンスチューニングは大好きなのだ! コレだけでご飯三杯はいけます。

『Midnight』 改め 『Mint 2.5.0』リリース。

『Mint 2.5.0』ダウンロード

えーというわけでフレームワーク 『Midnight』 改め 『Mint 2.5.0』 リリースです。 といっても対応スクリプトが現時点では一つもありませんので 『Midnight』 もそのまま置いておきます。 『Lapis』 の次期バージョンや他のスクリプトもいずれ 『Mint』 に移行しますので、今のうちに設置しとくと良いかもです。

変更点は旧アーキテクチャの削除とバリデーションクラスの追加。 バリデーションとはなんぞや、というとBBSやblogのSPAM書き込み 防止用のフィルタリング機能です。10種類のフィルタリングがあり、 それぞれに可否設定が可能です。『Aqua』(正式版)で大いに活躍する事でしょう。

普段当サイトに来ない人向けに名前の沿革をば。 『Practica』 ⇒ 『Wistaria』 ⇒ 『Midnight』 ⇒ 『Mint』です。 なんていうか、ひとつだけ名前が長いかな~と思いまして。 多分『Mint』で確定だと思います。 『Midnight』からディレクトリ名を変更するより、 しばらくは(ずっとでも良いですが)同時設置で構いません。

『Mint 2.5.1』 リリース。

『Mint 2.5.1』ダウンロード

エイプリルフールネタやらないんですか? だが断る。 何? 結婚しましたとでも書けばいいの? はいはいワロスワロス、と。 大体こんな下らないイベントなんかに労力を使う暇があったら 国民的行事である佑様聖誕祭の準備を今から入念に行うべきでしょう。

ちなみに TYPE-MOON のネタは毎年楽しみにしてます。 今年は超絶的なサーバー負荷で夕方までまともに見れませんでしたが。 来年はウチもやるよ! やりたいな! ……やれるかな?! ……覚えてたら、ね。……みなさんお暇ですね

というわけで 『Mint 2.5.1』 リリースです。バリデーションクラスを一部仕様変更 &フィルター追加でパワーうpです。SPAM業者は詩ねば良いと思います。 『Lapis 4.2.0 β1』も近日中にリリース予定でありますですよ隊長!

『Mint 2.5.2』リリース。

『Mint 2.5.2』ダウンロード

『Aqua 1.0.0 Beta2』 の為に微調整しました。なので 『Lapis』 には影響無いです。 つーか本当は 『Aqua』の方をリリースする予定だったんですが、 ニコニコ動画の観過ぎで時間が無くなってしまいました。ハハハ。こやつめ。 『Aqua 1.0.0 Beta2』 は来週か再来週にリリース予定ですよ奥さん。

フレームワーク Mint 2.5.3 リリース

Mint 2.5.3 ダウンロード

え~『Lapis 4.2.0』で使う予定の機能に動かないという 致命的なバグがありましたので修正しました。 つーかテストしようよ自分。テンプレートクラスです。それだけ。 違うメソッドを使ってもいいんですけどね。

どーでもよいですがダウンロード数を記録したファイルが逝ってしまいました。 半年間のデータがロスト。バックアップ取っておけばよかったorz。 大体『Lapis 4.0.0』は3000件ぐらい。後は覚えてないですよこんちくしょう。

フレームワーク Mint 2.5.4 リリース

Mint 2.5.4 ダウンロード

ファイルクラスを一部改定しました。記述の最適化です。 あと、ファイルロックのメソッドで「exit」を入れてたのを削除しました。 基本的に二重にロックしてるので確率的に問題ないと判断。 「Lapis」のデータ取得漏れってコレが原因の一つだったのかも。

フレームワーク Mint 2.5.5 リリース

『Mint 2.5.5』 ダウンロード

DBクラスに1つ機能を追加しました。セキュリティに関する機能なので地味ですが重要な更新です。 『Lapis』の次期バージョンでは必須になりますので、今のうちにダウンロードしておけば後が楽です。 つーか例によって最初から入れとけという感じですが。

ついでに関係ないですが『Lapis 3.5.4 Extra』(DB不要版)の開発は 中止とさせて頂きますよ真に勝手ながら(倒置法)。色々考えたんですが、 やっぱりアクセス解析とファイルログは相性が悪いんですよね。 頻繁に書き込み処理をしなきゃいけないし。 そんなわけで期待してた人、すいません。

Mint 2.6.0 リリース

『Mint 2.6.0』ダウンロード

え~最初は「2.5.6」にしようと思ってたんですが結構いじったので「2.6.0」にしました。 前回から結構間もあいたことだし。Fileクラスのread,writeを大幅に変更。 ファイルロックの強化と処理を高速化しました。あとはTemplateクラスのメソッド名が あまりにも適当だったので直しました。その他色々修正。

変更に伴い、古いバージョンのPHPはあえて対象外としました。具体的には「PHP4.3以上」対応。 今まで「PHP4.1以上」対応としてたんですが、今どき「PHP4.1/4.2」を使ってるサーバーも無いだろう、と。 むしろそんな古いバージョンを使ってるセキュリティ意識の低いサーバーは激しく非推奨です。 乗り換えてしまいましょう。てゆーか「PHP4.x」自体サポートが終了しています。

ちなみに『Lapis 4.4.0』は『Mint 2.6.0』以上必須となりますのでよろしくです。

Mint 2.6.1 リリース

『Mint 2.6.1』ダウンロード

色々調べた結果「.htaccess」の上手な書き方が見つかったので 「さくらインターネット用オプションファイル」を統合しようかと思います。 『Mint 2.6.1』+『Lapis 4.4.0』で「CGI版PHP」でも オプションファイル無しで動作するようになります。

まぁこの間から二転三転してますが気にしないで下さい。 いつものことですから。迷走は。orz

フレームワーク『Mint 2.6.2』リリース。

フレームワーク『Mint 2.6.2』ダウンロード

殆どというかまったく使ってなかったクラスを削除しました。 あと一旦削除していたコードのコメントを復活。「ほぼ全行コメント」という 無茶な苦行は『Lapis』だけにしようかと思ったんですが、 もうこのサイトのデフォルトってことで。

主な変更点は以下の通り。

フレームワーク『Mint 2.6.3』リリース。

フレームワーク『Mint 2.6.3』ダウンロード

え~先日の『mod_rewrite』対応版です。てゆーか結局上手くいかなかったんですけどね。 ハハハ。こやつめ。特定のサーバー向けには作れるんですけど、不特定多数のサーバー向けには ちょっと無理でした。実際に複数のサーバーで試してみたんですが、 同じ書き方でも動作が挙動不審になるサーバーがありました。

なのでデフォルトでは『mod_rewrite』は使わないで、お好みにより(サーバーに問題がなければ) 使ってみてもいいかもね? な感じです。まぁ『Mint』単体では『mod_rewrite』は動きません。 スクリプトディレクトリに置く『.htaccess』に専用の記述を入れて初めて動作します。 なので今回は準備段階ってところですね。変更点は以下の通り。

フレームワーク『Mint 2.6.4』リリース。

フレームワーク『Mint 2.6.4』ダウンロード

というわけでロリポップで Lapis がエラーになる件に対応しました。 結論から言うと、ロリポップのサーバーが環境変数に間違った値を設定しているのが原因です。 ユーザーが多いのでさくらインターネットの時みたいにオプションファイルにはしませんでした。 こういったサーバーに対するフォローもしなくちゃならないというのは馬鹿馬鹿しいのですが。

サーバー側の問題でもスクリプト側の問題と見なされるのが一番辛いです。 ユーザーは技術的なことは何も分からない、というのは理解してますが……やりきれないですよマジで。 こういう可能性もあるってことを知っておいて欲しいです。 以前も言いましたが、何でもかんでもスクリプトが悪いって考えは浅慮ってもんですよ奥さん!

フレームワーク『Mint 2.6.6』リリース!!

フレームワーク『Mint 2.6.6』ダウンロード

さくらインターネットなど一部環境において、MySQLの新しいバージョンだと文字化けする ケースがあるようで。ついでにPostgreSQLと併せて文字コード用の記述を入れました。 SQLiteは問題ないみたい。テストしてないので(マテ)エラーが出るようでしたら報告お願いします。

Mint 2.6.7 リリース

Mint 2.6.7 ダウンロード

というわけで去年作ってたヤツです。公開するのをすっかり忘れてたので今更ですが。 公開日とか去年の日付になってますが修正めんどいのでそのまま。 内容は

・XREA無料版の環境変数バグに対応

ってだけです。XREA無料版のサーバーには環境変数に間違った値をセットする というバグが昔からあり、運営も修正する気がないようです。それをスクリプト側で 正しい値に直すようにしてみました。Lapis だとトップページ以外が表示されないという状態が解消されます。

ついでに(?)Lapis の「猫でも解る設置方法」 というページの情報が古かったので新しく作り直しました。スクリーンショット14枚も撮り直し。