難しいこと

やっとレンダリングエンジンを書き直したバージョンをリリースしました。まだアルファ版の扱いですけど。一部のページでは前より再現性が下がっているとの報告も受けているので、人柱カモンって人お願いします。違うディレクトリにインストールすれば、複数のバージョンを同時に動かせますので。

肝心のフレームは中途半端で、とりあえず表示でくるというレベルです。フレームで残っていることはというと・・・。

  • 履歴移動が出来ない
  • フレームの枠が表示されない
  • フレームのサイズ変更が出来ない

実際、言うより難しいなぁ。そんなわけで、手元では全然別の修正を加えていたりして。現実逃避ですけど。そうそう、Windows 版のインストーラを作りました。次の版ではこのインストーラで配布します。Inno Setup (http://www.jrsoftware.org/) を使いました。InstallShield を使ったことがあるので、似たようなものかと身構えましたが、思ったより簡単ですぐに出来上がりました。将来的には、インストールの途中で J2RE をダウンロードさせたり出来るといいなとか思っていますが、これは遠い将来の話です。

一応 0.4a3 に向けて、フレーム対応をまともにしたいので、履歴移動(戻る、進む)を実装しだしているのですが、これが思ったより難しい。うぅ。最初は、履歴情報に、どのフレームに対しての履歴か持たせればいいかと思っていたのだけれど・・・。言葉で説明するのは難しいのですが、たとえば上下に分かれたフレームの場合、あるリンクをクリックされたときに、「どのフレームがどの URL に変更されたか」だけを持てばいいかと考えたのです。

でも、はたと気づきました。一度に複数の履歴を移動したら? 例えば「フレームの無いページ - フレームに分割されたページ - フレームの一部を変更」という履歴で、フレームに分割するページを飛ばして移動された場合です。フレームの一部を変更しようにも、そもそも画面がフレームに分割されていません。あぅ。

ということで、すべての履歴にフレーム構成情報ももたせる必要があることが判明しましたが、さてどういう風にデータを持たせればいいでしょう。考えていて「難しいなぁ」と思わずため息。

そういえば最近は難しいと思うことがあまり無かったのです。「めんどくさい」と思うことは多々有るのですが。どうしてでしょう。実際は難しくても、プライドが邪魔をして、面倒だと思っているような気もします。

ああ、現実逃避に書いてる文章もツマランねぇ。もっともここは、愚痴をこぼすためのページだから許してね。がんばれ>俺

3月になってしまった

言い訳するネタもなく・・・。フレームの実装中に、レンダリングのメインの部分が破綻しだしちゃって、書き直しています。というのも、フレームをサポートすると、描画の途中で縦幅が変わる場合があります。なぜなら、スクロールバーの表示が auto の場合、最初は影鷹の横スクロールバーは存在しませんが、途中で左いっぱいまでレンダリングされた際にスクロールバーが追加されます。そうすると縦幅が狭くなってしまいます。

このときに、既に描画済みの部分も、再レンダリングしないといけませんが、今までは HTML を読み込み直さないとできませんでした。これがなかなか問題で、たとえば POST(GET でもだけど)の場合など、2重送信とかしてしまう危険もあります。

でま、そんなこんなでメインの部分を全面書き直しに・・・。これで、レンダリング部分は、影鷹作り出してから3回目の書き直しかな。うーん、なかなかうまく行かないね。で、将来のことを考えて、なるべく後で CSS を実装しやすくしてみようかと思って、まじめに CSS のドキュメントを読んだのだけど。いままで流し読みでしか読んでいなかったけど、まじめに読むとへこむねぇ。正気じゃないよ、あれ。日本語訳読んでるけど、そもそも意味がわからないの有るし。訳のせいじゃなくて、僕の頭が悪いせい。だれか9章と10章の解説希望。

気を取り直して、とりあえずテーブルだけでもまともに、とか思ったのだけど。いやぁ、これも正気じゃないねぇ。% の指定って本当に難しいね。列を足して 100% では無いときや、一部で % だけを指定した場合など、どういう式で求めているかわからないのがあったり。でも大体わかってきました。

と思っていたら、colspan と rowspan の指定によっては、セルが重なるケースもあるの? 聞いてないよ・・・。

待ち望んでいる人(いるのか?)、ごめんなさい。まだまだかかります・・・。

明けましておめでとうございます

と言っても、もう一月も後半です。年明けすぐに風邪を引いてダウンしたせいもありますが、影鷹はぜんぜん進んでいません。困ったことです。

本業もちょっと忙しくて、なかなか時間が取れないのですが、そろそろ再開しようかなと。去年末には HTTP の独自実装は終わっていたのですが、HTTPS の実装は全然手をつけていなくて、これの対応を考えると頭が痛いです。

で、風邪が良くなってから、Content-Encoding 対応の下準備と称して(本当は現実逃避)、compress を解凍する部分を作っていました。compress ってちょっと昔の UNIX でおなじみの、拡張子「.Z」の圧縮ですね。多くのブラウザでは、gzip、deflate、bzip2、compress あたりのエンコーディングに対応しています。Java だと gzip と deflate に関しては標準で解凍できるので、bzip2 と compress を用意しようかなと。なんで compress からしたかというと、bzip2 より簡単そうだったからです。

ところがですねぇ、compress ってあの悪名高き LZW アルゴリズムを採用していて、なんか Java で実装したやつが見つからないのですよ。大体、圧縮アルゴリズムとか良くわかんないし(こらこら)。

ともかく、四苦八苦して、一応完成したので、公開したいところですが、例の特許が日本で切れるのが今年の六月だから、それ以降ですね。一応 gzip、deflate 対応は早めにしたいのだけど、たぶん次のメジャーリリースには入らないだろうなぁ。

この現実逃避はなかなか楽しかったので、この調子でフレームの対応に着手しだしたところです。でも本当は、frameset タグの説明を読んでうんざりしました・・・。

窓の杜大賞ノミネート

うれしいことに、窓の杜大賞にノミネートされました。皆様のおかげです。ありがとうございます。

http://www.forest.impress.co.jp/prize/2003/

まあ、他のソフトを見ると大賞にはほど遠い気もするのが残念ですが。とにかくこれからも、少しずつ前進していくしかないかなと。そうそう、Beta 2 はそろそろリリースできそうです。プロキシ対応の強化が中心になっています。

ノミネートで喜んでいると、なんか売れない映画みたいだけど・・・。

影鷹 0.3 ベータ 1 リリース

やっとというか、リリースできました。使ってみてください。

オプション画面ですが、ほとんどの項目は再読込しないと反映されないです。仕組み的には、自動で再読込できるのですが・・・。キャッシュを持ってないため再読込はコストがかかるので、ユーザの任意選択と言うことで。

タブの動作(追加を右側にするかとか、右端にするかとか)も内部的には変えられる様に作ってはありますが、テストが済んでいないのでタブ関連のオプションはありません。

まあ、他のブラウザに比べると、圧倒的に設定項目が足らないですね。あと前から気になっていた部分で、画像の回転。gif と jpeg は指定できますが、png が全然無視されているような。って、自分で作ったソフトの話だろ。例の gif 問題も特許が切れて(日本ではまだかな?)やっぱり gif に戻っちゃうのでしょうか。mng はなんか評判良くないみたいだし。

影鷹で png が表示できるのは単に J2RE がサポートしているからだったりして。他の言語だと、ライブラリーをかき集めたりして大変だったでしょうねぇ。まあ、Java ならではの苦労もあることはありますが。そういえば、今回からオプション画面やブックマークエディタで使っているツリービューが新しくなりました。作ったよ・・・。

11月になってしまった

えー、10月中にリリースしたかったのですが、イマイチ開発が進まず、11月に突入してしまいました。すみません。開発は続いているので心配なく。

まあ、予想通りなんですが、昼間勤めているとなかなか思うように時間が取れませんね。仕事から帰って、さあ始めようと思っても、メールを読んでニュースサイトをチェックして、とかやってるといつの間にか時間が。こらこら

ところで、久しぶりに、Excelsior JET(http://www.xlsoft.com/jp/products/jet/)を試してみました。なんか前よりかなり良くなってますね。このソフトは、Java のプログラムを、ネイティブな実行形式にコンパイルしてしまう物です。インストール時に、時間がかかるのと、バージョンアップの度に再コンパイルしないといけませんが、なかなかの速度アップが図れます。個人使用なら無償で使えるのも魅力です。

影鷹 0.3 リリースにあわせて、Excelsior JET を使った方法の説明ページとか付けるといいかな? 影鷹にキャッシュ機能がないのに目をつぶると、かなり快適にブラウジングが出来るようになります。

で、現行の 0.2 でこれを試そうとした方には残念。0.2 はなんかコンパイルが途中で異常終了してしまいます。たぶん、Excelsior JET 側の問題ですが、影鷹のコーディングを変えたら大丈夫になったので、0.3 までお待ちください。

早くリリースしろよ・・・>俺

アンケートありがとう

影鷹のアンケートに答えてくださった方々ありがとうございました。アンケートの結果に基づいて、オプション画面を作っています。

なんですが、ツリーコントロールの作成から入っているため、全然進んでいないというのが実情です。まだまだかかりそうです。リリースの間を開けたくないので、10月中にリリースしたいと思っているのですが・・・。

いやね、ツリーコントロールなんて、Swing 使えばいいのだろうけど、ここまで来ちゃったからねぇ。awt で作ろうかと。いずれにせよ、ブックマークエディタのツリービューもどうにかしないといけないと思っているので、最終的には自作になってしまうわけです。

そんなわけで、もう少しお待ちください。