検証とは関係ないが、init_set()でmemory_limitを一時的に32MBに底上げする事にした。こんだけメモリ使えたら、なんとかなるだろ。サーバを共有しているみなさんにはご迷惑をお掛けしますが、30秒くらい許して下さい。

それでもGD関係のメモリの開放しきれないものが溜まっていくと思うので、残りメモリ量と相談してサムネイル生成処理をする、しないは分岐させたい。以下を取り入れるのがいいかな。

まず上限が32MBなので、まぁその9割を越えないようにしとけばいいかと思う。memory_get_usage()で現在のメモリ使用量を取ってきて、32MBとの差の9割を使用可能メモリ量としよう。もしくは、ini_get("memory_limit")との差でもいいかもしれない。

画像のデータはオブジェクトのメンバーとなっているので、MIMEによって処理を分岐することもできるけれど、なんかそれも面倒。なにしろPNGでもJPEG並にメモリ使う画像があるわけだから。なので、これから使うメモリーの予想量は「オリジナル画像のピクセル数×6」と「サムネイル画像のピクセル数×6」の和としようと思う。

よし、何とかめどがついてきたぞ。4月中にリリースできるかな?

synchronizeのメモリー超過問題、それに関係して、オペレーションシステムのメモリー管理のお勉強、加えてヒューマン・インターフェイス関係でJavaScriptのお勉強などの課題がありまして、現在停滞中です。

いや〜、簡単なアプリケーションとはいえ、完成させるのはかなり大変〜ということを再認識。世のシステム・エンジニアさん(でいいのかな?)はかなりすごいことしてんだなと思う今日この頃です。

さて、synchronizeでファイル毎にその情報をデータベース・テーブルに登録、同時にサムネイルも生成して登録、という作りにしてあるが、ここにはメモリー超過エラーの心配があるというのは前にも書いた。

サムネイル生成にはPHPのGDを利用している。GDというのはGraphics Libraryというのが正式名称らしい。このように書くと、GD関係が理解できていると思えてくるから不思議だ。もちろんそんなことはない、残念だけど。

» 続きを読む

どー考えてもBetaじゃないだろと思ったので、Alphs2にしちゃいました。

NP_NewManager(Alpha2) - 112KB

前のバージョンからの変更は…なんだっけ。あ、そうだった。以下を参照。とにかく、synchronizeが問題なのです。

  • ステータスバーらしきものをつけてみた
  • 投稿画面のボタンを、JavaScriptのDOM操作を使って、イベントハンドラごと上書きしてみた
  • 3種のパネル(ファイル追加、タグ辞書、ディレクトリ・エクスプローラー)のデザイン変えてみた

権限の整理はまだなのであります。ディレクトリやファイルの移動が難あり。それさえ越えたらなんだけれども。。。

永遠のベータかもしれない(笑)

NP_NewManager(Beta3) - 112KB

今回の改善点

  • ユーザ権限の整理(未完)
  • WYSIWYGエディタへの対応
  • 同期モードでのメモリー管理(失敗)

まだまだバグばっか。あーめん。

» 続きを読む

NP_NewManager(Beta2) - 107KB

ベータ2何てものはたぶん定義されていないのだろうけれど、ちょこちょこ修正が入ったので、サーバに保存してみました。
っていうか、まだまだアルファ版なんだな、きっと。

このバージョンから、タグ空間を表示できるようにしてみました。コントロールパネルの操作性がちょっと落ちたかな。
Firefox2以上、Opera9以上、Internet Explorer7以上のそれぞれで動作確認ずみ。

JavaScript部分は落ち着いてきたので、今度はPHP側を修正していかないと。
いよいよ権限分岐という超難問に突入です。ディレクトリ移動、どうしよう。。。

ほえ。いつまでも仮称のままのNP_NewManagerのBeta。かなり向上しました。とくにIE対応できたのがうれしい(涙)

NP_NewManager(Beta) - 108KB

インストールしたらSuper-Adminがsynchronizeボタンを押して下さい。
じゃないとボタン自体が表示されません。

たぶん、以下のブラウザで動作します。いやー、IE対応なかなか大変だった。
Internet Explorer7以上
Mozilla Firefox 2.0以上
Opera 9以上

» 続きを読む

というわけで、新メディア・マネジャーのサンプルができた。PHP5向けです。

NP_NewManager (Alpha) - 75KB

インストールしたら、必ずボタン「synchronize」を押してください!!

データベース内に独自のテーブルを設け、そこで必要情報を管理します。インストール直後はテーブルがからなので、ボタン「synchronize」をクリックして、テーブルのアップデートをしてください。

» 続きを読む

非同期通信を利用するかどうか、悩んでます。

非同期通信を実現する技術群の呼称として、AJAXは流行言葉のように使われている感があるけれど、以下のように簡単に説明することができると思います。

» 続きを読む

きゃしゃさまの協力を得て、Nucleus CMSの仕様が、ファイル管理プラグインに与えている制限をまとめてみた。

» 続きを読む

Nucleus CMSのプラグインとしてNP_ImprovedMedia3.0.0を公開しました。私としては、このプラグインはこれ以降、コードの大幅な変更はしないつもりです。つまり開発終了しようと思っています。

» 続きを読む