Project "Site Samper"
↑hpSampler page
アルファな日々 (更新履歴)
November 11, 2003:
先日公開した Site Sampler Ver. 0.10 α ですが,どうやら Xcode をインストールしていない環境では実行できなかったようです。
development モードでゼロ・リンクが有効な状態でビルドされていたため,実行時リンクが必要だったためだと思われます。
さっそく deployment モードでビルドし直しました。ダウンロードは以下からどうぞ。
download Site Sampler Ver.0.10α
ちなみに Ver. 0.10 α に移行する人に注意点。
新バージョンでは初期設定 (plist) ファイルの扱いが変わったため,旧バージョンでの設定が継承されません。
これはタグ・ライブラリも同様で,さらに初期設定ファイルが上書きされるため,以前のライブラリの内容は消えてしまいます。
したがって,旧バージョンでライブラリ構築した人は旧バージョンで一度ライブラリを export し,新バージョンで import し直すことをお勧めします。
前回記事を読んですでに消しちゃった人はごめんなさい m(_ _)m
October 29, 2003:
SiteSampler Ver. 0.10α 公開。
今回は (Panther になって) 見た目がちょこっと変わったので,久しぶりに画像付き。
Ver. 1.0 になると思っていた方,残念でした 。
別に 10 進法なんて決まってないよね?
というか,そもそも最初からナンバリングがおかしい気がするし。
Ver. 1.0α10 とかってするのが正しいのかな?
今回から,待望の Panther & Xcode に移行しました。これ,いいです。
何がいいかって,インタフェイスが一新されて扱いやすくなった・・・かというと,そうでもない。
Project Builder も Xcode も使い勝手について云々言えるほど使い込んでないし。
Cocoa の API が機能アップ・・・したらしい。
でも,まだまだ勉強中の僕にとっては,まだあんまりありがたみは感じられない。
結局,僕にとってうれしかったのは,パフォーマンス向上。
今まで PB はちょっと反応鈍かったりしたところがあったんだけど,Xcode はかなり軽快に動いてくれてる気がする。
とは言っても,Panther になって OS もアプリも全般的に軽快になった気がするから,Xcode のおかげかどうかはよく分からないけど : P
ただ,ビルドの時間も確かに短縮されてる気もする (予測コンパイルとかまだあんまり試してないけど)。
この辺は,素人にも素直に嬉しいところ。
今回のメインは初期設定の処理。
今まではDocument-Based Application が標準で作るファイル (たぶん) のほかに,自分で property list 形式のファイルを保存してた。
調べてみると,標準の初期設定ファイルに保存するには NSUserDefaults クラスにアクセスすればいいらしいことが判明。
さっそくそれを使うように変更してみた。
といっても,もともとの自前のコードを引きずってるから,ちょっとごちゃごちゃしてるかも・・・。
初期設定ファイルの名前を変更するのも1つの壁だった。
これは info.plist ファイルの中で CFBundleIdentifier に設定しておけばよかったらしいことが判明。
これで無事,初期設定ファイルが1つにまとまった!
ただし,旧バージョンの初期設定ファイルが残ってる場合に Ver.0.10α を実行したときどうなるかは未テスト。
たぶん問題ないと思うけど,心配な人は先に削除しといてください 。
Stop Rendering 機能の実現にもがんばってみた 。
どうも,レンダリング中に Stop Rendering のコマンドを受け付けないといけない訳で,マルチ・スレッドにしないとダメな気配。
う〜ん・・・,できたらいいなぁ・・・ 。
キャッシュをクリアする機能も付けようとしてみた。
実は,CSS を適用する設定にしてる場合,参照先の CSS を変更してレンダリングし直しても,CSS の変更が反映されない。
これ,キャッシュに記憶されてるせいなのかなと思ってる。
で,WebKit にキャッシュをクリアするメソッドがあったような気がしたんだけど,探してみると見つからない・・・。
という訳で,はりぼてのメニューだけ追加されてる状況です。
もう一つ。
Panther の Safari (1.1, v100) は,DTI のカウンタにも反応してる!
さて,これからカウントがどう変わることやら・・・。
ダウンロードはこちらから。
download Site Sampler Ver.0.10α
download Site Sampler Ver.0.10α source files
Fixed Problems
これまであった問題のいくつかは解決されました。
- Preferences フォルダに,設定ファイルが2つ保存される。
上記の通り,解決されました。
う〜ん,最近,長いな (^^;
October 17, 2003:
今回は,September 4 の回で解決した viewer ウィンドウまわりの扱いについて,もう少し解説してみましょう 。
初期のバージョンでは,ドキュメントから editor と viewer 両方のウィンドウ・コントローラに対して addWindowController: を実行して,両方に対して setDocument:self を呼び出してた。
これでも editor ウィンドウの方は問題ない (setDocument: は addWindowController: から自動的に呼び出されるので重複してはいるけど)。
ただ viewer ウィンドウがドキュメントに関連づけられてしまうのが困る。
テキストが編集されると,クローズ・ボタンにぽっちが付いて,viewer ウィンドウを閉じようとするとドキュメントまで閉じようとしてしまう。
もっとまずいのは,ウィンドウのタイトルがドキュメント名になって,アイコンまで付いてしまうこと。
ウィンドウ・タイトルにはやっぱり <title> タグの内容が反映されないとね。
そこで,NSWindowController クラスのメソッドを眺めてあたりをつけて,SWViewWindowController クラスで -(void)setDocumentEdited:(BOOL)flag と -(void)synchronizeWindowTitleWithDocumentName を何もしないメソッドでオーバーライドしてみた。
無謀やね (^^;
結果は一見よかったんだけど・・・。
クローズ・ボタンのぽっちはなくなったし,viewer ウィンドウだけ閉じれるようになったし,タイトルも勝手に書き換えられなくなったし・・・。
しかし,しばらく作業してる間にプログラム自体が異常終了するようになった。
どうも webView やウィンドウのポインタの参照が切れてしまってるような気配・・・。
やっぱり勝手にオーバーライドするのはまずいってことかな・・・
というわけで方針変更。
そもそも何故 setDocument: や addWindowController: を使ってたかというと,ドキュメントが閉じた時に viewer ウィンドウも一緒に消えてほしかったから。
つまりそれが実装できればいいわけで,結局,ドキュメントの close メソッドをオーバーライドして,viewer ウィンドウも close させるようにしたのでした。
ま,とても当たり前な解決法なわけだけど,ウィンドウの close をどこに入れたらいいかが分からなくて無茶な方向に走ったのでした。
今でもほんとにこれで合ってるのか自信がないんだけど,ちゃんと動いてるみたいだから大丈夫なんでしょう (^^;
ときどき思うけど,(アプリ/ドキュメント/ウィンドウ) の (起動/open/close/終了) のとき,どのクラスのどのメソッドがどんな順番で呼び出されるか,っていう分かり易い解説ってないかな?
Apple のサイトの Cocoa のドキュメントを追ってるだけでは正直しんどい。
ま,開発環境に関してまったく投資してないから,偉そうなことは言えないんだけど (^^;
October 9, 2003:
SiteSampler Ver. 0.9 α 公開。
なんだかんだとバージョン・アップを重ねて,とうとう次は大台に乗ってしまいますね。
あと1回でそれなりの形にまとめるなんてことが可能でしょうか?
大いに疑問ありです・・・
今回の変更はタグ・カラーリングがメイン。
実は前回あたりのバージョンから,コメントと Generic Tag 以外色分けされないバグがあったりもしました。
いずれやろうとは思ってましたが,この機会にカラーリング部分はほとんど全部書き直しました。
いままで NSString の検索/比較メソッドに頼ってましたが,それらは極力減らして,パフォーマンス向上にも期待。
今回から
- パフォーマンス向上 。
タグ・カラーリング off 状態でのパフォーマンスは劇的に向上しました。文字入力の度に黒に塗り直すのをやめたおかげ 。
- カラーリングがちゃんとタグに対応するようになりました 。
いままでは先頭の文字列だけ比較していて,たとえばアンダーラインの "<u" タグの色が指定されていると,"<ul" タグも同じ色になる,というようなエラーがありました。
今回からはちゃんと「タグ」を認識してるので大丈夫。
ただ,僕自身が HTML の仕様をちゃんと理解してる訳ではないので,カラーリングとレンダリング結果が違ってることがあります。
HTML の文法に正しく従ってない時だけだと思うんだけど。
コメント "<!--" がちゃんと "-->" で閉じられてない時とか。
この辺,大変な割りに実りが少なそうなので,真剣に改善するつもりはあまりありません。
正しい文法で HTML を書くようにしましょう 。
今回も,見ため的には変わってないので,画像はなし : P
ダウンロードはこちらから。
download Site Sampler Ver.0.9α
download Site Sampler Ver.0.9α source files
September 16, 2003:
今回も Site Sampler のアップはなし : P
1週間ほど New York に行っていました。
ちなみに,プログラミングにはまったく関係ありません。
単なる自慢です (^^
今回はちょっと別の話題。
このページにもカウンタを付けてますが,カウントはぼちぼち増えているようです。
ありがたいことです。
決して多くはありませんが。
ここで1つ問題あり。
この DTI のカウンタ,Safari では見れませんし,Safari のアクセスには反応しないみたいです。
しかし,このページの内容って,Safari が使える人じゃないとまったく意味ないんですよねぇ。
いったい誰が見てるんだろう? & アクセスの実数っていったいどれぐらいなんだろう?
ちょっと気になる今日この頃・・・。
September 4, 2003:
Site Sampler Ver.0.8α 公開。
えっと,前回も書きましたが,タグ挿入メニューにショートカット・キーが設定可能になりました。
ただし modifier key は command + option に固定。
理由は,設定用のインターフェイスをつくるのが面倒だから (^^;
ま,それでも大小文字を区別するので 52 文字,それに加えていくつかの記号も使えるはずなので,個数的には十分でしょう。
ちなみに,modifier key の command key マークは入力できたんだけど,option key マークが入力できない。
あれって,どうやって入力したらいいんだろう?
今回も,見ため的には変わってないので,画像はなし : P
ダウンロードはこちらから。
download Site Sampler Ver.0.8α
download Site Sampler Ver.0.8α source files
Fixed Problems
これまであった問題のいくつかは解決されました。
- 起動しない
Tag Library のクラスを init するところで無限ループになってた。
修正済み (当然)。
- ウィンドウまわりが不安定
実は viewer ウィンドウだけ閉じて再び開くだけで,アプリまで落ちたりもしてた。
今までは viewer ウィンドウをドキュメントに持たせてて,しかし,ウィンドウ・タイトルとか,ドキュメント変更した時のクローズ・ボタンとかを勝手に変えさせないためにちょっと無茶なことしてた (^^;
真っ当なやり方に変えて安定した様子。
Auto Rendering オフ状態で落ちる問題も直ってればいいけど・・・もうちょっと様子見状態。
- テキストの終わり近くにタグがあるとき,タグ・カラーリングさせようとすると固まることがあった
NSString の compare メソッドを使う時,本文テキストの範囲を指定して比較するわけだけど,その範囲が比較する文字列 (この場合,タグの文字列) よりも短いときにおかしくなるらしい。
その辺のチェックをちゃんとやるようにして解決。
August 28, 2003:
今回は,タグ挿入メニューにショートカット・キーが設定可能になりました。
なりましたんですが,アプリ自体が非常に不安定になり,ついには起動もしなくなりました (T T
というわけで現在,全面的に見直しております。
しかも,どうも最近,生活リズムが狂って,あまり時間をとれていません。
次回更新はいつになることやら・・・。
August 12, 2003:
Site Sampler Ver.0.7α 公開。
前回あった問題のいくつかが解決されました。
今回はあまり進んでません。
やっぱり夏ですからね・・・ (?)
見ため的には変わってないので,画像もなし : P
ダウンロードはこちらから。
download Site Sampler Ver.0.7α
download Site Sampler Ver.0.7α source files
Fixed Problems
前回の問題のいくつかは解決されました。
- メニュー・バーからのタグ挿入が動作しない
sharedAppDelegate クラス・メソッドを初めて呼び出した時と,nib ファイルから呼び出された時で,SWAppDelegate が二重に init されていたらしい。
そのせいで,メニューの内容を保持していた array がクリアされてた。
その辺に注意して修正。
- "Window" メニューの "Show/Hide Insert Tag Palette" 項目のタイトルを変えられない
いつの間にか直ってた (^^;
これも SWAppDelegate の二重 init のせいだったかも。
August, 4 2003:
Site Sampler Ver.0.6α 公開。
HTML Tag Library が保存されるようになりました。
これでこそ,思う存分ライブラリ構築する意欲も湧くというものです (誰に?)。
ついでに HTML Tag Library の import/export 機能も追加。
これでバックアップも万全。
export されたファイルは ".tlib" という拡張子になってますが,単に property list 形式のテキスト・ファイルなのでエディタ等で加工することも可能です。
ただし,import 時のエラー・チェック等はしてませんので,不完全なファイルを読み込んだ時の動作は保証できません (それ以外なら何かについて保証できるというわけでもありません : P)。
それから,タグ・インサートのメニューを editor ウィンドウからフローティング・ウィンドウに独立させました。
・・・と,この辺でやめとけばよかったんだけど・・・
タグ・インサート・メニューをメニュー・バーにも追加しました。
内容はフローティング・ウィンドウのと同じ。
ただ,原因不明でちゃんと動作しません。
ま,害はないと思います (^^;
ダウンロードはこちらから。
download Site Sampler Ver.0.6α
download Site Sampler Ver.0.6α source files
July, 28 2003:
Site Sampler Ver.0.5α 公開。
今回は HTML Tag Library を追加。
前回追加したタグ挿入やタグ・カラーリングのためのタグ情報を登録・編集できます。
ただし,保存できないのでまだ使い物にはなりません : P
それから,プリファレンス・パネルにタグ・カラーリングの On/Off スイッチが付きました。
ダウンロードはこちらから。
download Site Sampler Ver.0.5α
download Site Sampler Ver.0.5α source files
なお,サーバ容量の都合上,過去バージョンおよびそれらのソースはサーバから削除しました。
ところで,
下記のサイト HAPPY Macintosh Developing Time! で Hydra というエディタが紹介されていました。
これも WebKit を使って HTML をリアルタイムでプレビューできます。
試してみてビックリ。下記の Known Problems で書いている問題のうち2つ,「base URL に "http://" で始まらないパスを指定するとおかしくなる」と「レンダリングするたびに,ページのトップに戻る」が解消されてる!
WebKit のせい,なんて責任転嫁したのはやっぱり素人の勇み足だったかな? (それ以外何がある?)
でも,どうやってるんだろ??
ページ・トップに戻らせないのは,一度ファイルに書き出して reload するようにすればできそうだけど,パフォーマンス悪過ぎそうだし・・・
Fixed Problems
前回の問題のいくつかは解決されました。
- ソース中で文字列に引用符 " を指定できない。
以前は @"¥""と書いて " をエスケープしようとしてた。
たぶん,¥ と \ (本当は半角。半角バックスラッシュって HTML コマンドないのかな?) が別扱いなんだろうとは思ってたけど,その通り。
オプション押しながら ¥ 入力で \ が入力できて無事解決。
- 検索パネルで,チェックボックス型のボタンの状態を変えられない。
nib ファイルのロードが完了する前に setState しようとしていたのが原因らしい。
ロード完了を待つように,awakeFromNib メソッドの中で setState するように書き換えて無事解決。
- "Auto Render" メニューも同様に state を変えられない。
どうやら NSMenuItem を指定する outlet 変数名がおかしかったらしい??
変数名を "autoRenderMenu" にすると setState できなくなり,他に変えると直った。
それって Cocoa の予約語なのか?
July, 21 2003:
Site Sampler Ver.0.4α 公開。
今回は待望 (誰が?) の HTML 作成サポート機能を2つ加えました。
まず1つ目は,HTML タグのカラーリング。
力任せで,マシン・パワーを必要とする仕様になっております : P
On/Off の切り替えとか,色の設定とか,できるようになったらいいなぁ・・・。
2つ目は,HTML タグ挿入機能。
新たに Editor ウィンドウの上に付いたプル・ダウン・メニューでタグを挿入できます。
"Single Tag" と "Paired Tag" では,テキストが選択されている場合の動作が違います。
"Single Tag" は選択されたテキストを置き換えますが,"Paired Tag" では前後にタグを挿入します。
ま,サポート機能というほど大したものではありません。
ただ,これまではタグを書き始めるとそれ以降の部分が化けるまたは消えるという問題があってかなり鬱陶しかったですが,それらが解消されます。
実はそっちがメインの目的です。
だから本当は引用符ペア " " も挿入できないといけないんだけど・・・
これも,登録されたタグが充実したり,カスタマイズなんかできたら便利になるかもね・・・。
ダウンロードはこちらから。
download Site Sampler Ver.0.4α
download Site Sampler Ver.0.4α source files
July, 15 2003:
Site Sampler Ver.0.3α 公開。
主な変更点は以下の通り。
- 検索・置換機能の追加
- プリファレンス・パネルで,"Cancel" がキャンセルするようになった。設定が ~/Library/Preferences/jp.WorkshopCocam.SiteSampler.plist ファイルに保存されるようになった (まさかとは思うけど,同名のファイルを使用している人は注意してください)
- メモリ管理をちゃんとやった (つもりな) ので (前はちゃんとやってなかったのか? (^^; ),速度と安定度が向上した (はず)
ほんとはもうちょっと進んでるつもりだったんだけど,いろいろ手を加えてたら動かなくなって焦ってたり (^^;
そんなとこ触ってないぞ,っていうとこで落ちたりするし。
これぐらいのスピードが初心者プログラマーの限界やね。
とりあえず release とかちゃんとやってみたら (まだいまいち理解しきれてないけど),今まで原因不明で落ちてたようなところも直ったような気がする。
やっぱりメモリ管理って,ほんとに大事なんだなぁ (しみじみ)
ダウンロードはこちらから。
download Site Sampler Ver.0.3α
download Site Sampler Ver.0.3α source files
July, 8 2003:
July, 6 2003:
Site Sampler のソース・ファイルも公開することにしました。
リンクは下で,実行ファイルへのリンクとまとめています。
コメントも付いてないですし,変なことしてるかも (というか,きっとしてるはず) なので,とてもお手本になるようなものではないですが・・・。
それに,なんだかプロジェクト名が違っていたりしますが,気にしない気にしない・・・ (^^
July, 2 2003:
下記の HAPPY Macintosh Developing TIME! でご紹介いただき,さっそくいくつか反響をいただきました。
ありがたいことです m(_ _)m
で,さっそくですが,ダウンロード・ファイルのリンクにしくじっていたようです。ご指摘いただいたかたがた,ありがとうございました m(_ _)m
すでに修正しましたので,問題なくダウンロードしていただけるはずです。
Ver. 0.2α は近日公開・・・と私も信じたいです・・・。
July, 1 2003:
すでにいろいろ紆余曲折がありましたが,いちおう期待通りに動作する状態になりました。
バージョンは 0.1 α。
editor ウィンドウの HTML テキストが,レンダリングされて viewer ウィンドウ内に表示されます。
そのまんまです。
viewer ウィンドウ内に base URL を設定できる text field がありますが,まだハリボテです (^^
"Auto Rendering" (editor の内容をリアルタイムで viewer に反映) の on/off を切り替える機能があります。
まだまだ使い物にはなりませんが,ぼちぼちと進めていきたいと思います。
download Site Sampler ver. 0.1α
download Site Sampler ver. 0.1α source files
June 25, 2003:
Workshop Cocam, 2003
