1月 062021
 

以前のエントリで、「Nginx + quiche パッチで HTTP/3 にチャレンジ。」と、いうのを書いています。このエントリの『続編』を書いてみたいと思います。

と、いうのも色々あったからです。

簡単に書くと、あっという間にこのエントリは終わってしまいますf(^^;;。
ネタ的なモノを箇条書きにしてみると

  • nginx + quiche パッチでは SSI は動作しません
  • nginx + quiche パッチを利用した場合 RTMP モジュールが利用できないです

の二つになります。これが解れば詳細はどうでもいー。と、いう人はここでおしまいです。
『なんで?』と思った方は読み進んでくださいf(^^;;。

 
まず、上の部分の SSI についてですが、perl による index.cgi で SSI で吐き出すことと同じ動作をするモノを作成すると、無事に動作します。

以下はサンプルです。これは index.cgi 。

#!/usr/local/bin/perl
use strict;
print "Content-type: text/html\n\n";
print "<html>\n<head>\n";
print "<META HTTP-EQUIV=\"Content-type\" CONTENT=\"text/html;charset=utf-8\">\n";
print "<TITLE>IPv6 HTTP/3 Access Web page.</TITLE>¥n";
print "</head>\n<body>\n";

print "<br><h2>Hello HTTP/3 World.</h2><hr>\n";

my $word = "";
if ($ENV{'REMOTE_ADDR'} =~ /:/) {
    $word  = "===> ";
    $word .= "$ENV{'REMOTE_ADDR'} から IPv6 パケットを受け取りました。";
} else {
    $word  = "===> ";
    $word .= "$ENV{'REMOTE_ADDR'} から IPv4 パケットを受け取りました。";
}
print "$word<br><hr>\n";;

print "===> Protocol: $ENV{'SERVER_PROTOCOL'}<br>\n<hr>";
print "===> Access Port: $ENV{'SERVER_PORT'}<br>\n<hr>";

exit;

 
似たようなのを index.shtml と access.cgi でやるとこんな感じ。

こちらは index.shtml。

<HTML>
<HEAD>
<META HTTP-EQUIV="Content-type" CONTENT="text/html;charset=utf-8">
<TITLE>IPv6 HTTP/3 Access Web page.</TITLE>
</HEAD>
<BODY>
<ht>
Hello HTTP/3 World.<br>
<hr>
<!--# include file="./access.cgi"-->
<hr>
</BODY>
</HTML>

 
こちらは access.cgi。

#!/usr/local/bin/perl
use strict;
print "Content-type: text/html\n\n";
my $word = "";
if ($ENV{'REMOTE_ADDR'} =~ /:/) {
    $word  = "===> ";
    $word .= "$ENV{'REMOTE_ADDR'} から IPv6 パケットを受け取りました。";
} else {
    $word  = "---> ";
    $word .= "$ENV{'REMOTE_ADDR'} から IPv4 パケットを受け取りました。";
}
print "$word<br><hr>\n";;
print "===> プロトコル: $ENV{'SERVER_PROTOCOL'}<br>\n<hr>\n";
print "===> アクセスポート: $ENV{'SERVER_PORT'}<br>\n";
exit;

 
index.html (index.shtml) に include があると、 Nginx + quiche パッチではまともに動作しないようです。 quiche パッチを詳しく追ってはいないのですが、どうやら include 部分がそげ落ちているようです・・。 orz

まぁ、今の段階では SSI を利用しないコンテンツを用意する必要がありそうです。

 
二個目。

テレワークなどで、PC にカメラを接続する機会が多いのですが、せっかく購入したカメラ。もっと色々な用途で使ってみたい。などと思うわけです。 USB Video Class 、俗に USB な UVC カメラを FreeBSD に接続し、 webcamd や obs-studio をインストールして『ストリーミングなどしてみんべ。』などと思うわけです。
このブログでも以前に「NotePCに付いているカメラを FreeBSD で使う。」と、いうのを書いていたりしますが;-)。

更に一歩進んで obs-studio をイントールした場合、配信先に RTMP サーバが必要になります。
Nginx はモジュールとして RTMP モジュールや Stream・Stream SSL モジュールなどを利用可能ですが、HTTP/3 を有効にする quiche パッチを適用した Nginx ではこれらのもジュールは利用できません。

以下は nginx.conf の設定の抜粋です。

load_module /usr/local/libexec/nginx/ngx_stream_module.so;
load_module /usr/local/libexec/nginx/ngx_rtmp_module.so;

rtmp {
    server {
        listen 1935;
        chunk_size 4096;

        access_log /var/log/nginx/access_rtmp.log;

        application webcam {
            live on;
            record off;
            wait_video on;
        }
    }
}

 
load_module のところで早くもエラーが出ます。

# service nginx start
Performing sanity check on nginx configuration:
nginx: [emerg] dlopen() "/usr/local/libexec/nginx/ngx_stream_module.so" failed (/usr/local/libexec/nginx/ngx_stream_module.so: Undefined symbol "SSL_set_tlsext_host_name") in /usr/local/etc/nginx/nginx.conf:7
nginx: configuration file /usr/local/etc/nginx/nginx.conf test failed

 
もしくは

# service nginx start
Performing sanity check on nginx configuration:
nginx: [emerg] dlopen() "/usr/local/libexec/nginx/ngx_rtmp_module.so" failed (/usr/local/libexec/nginx/ngx_rtmp_module.so: Undefined symbol "HMAC_CTX_new") in /usr/local/etc/nginx/nginx.conf:7
nginx: configuration file /usr/local/etc/nginx/nginx.conf test failed

 
みたいな感じ。

最初、どうして、SSL 系でエラーが出るのか解らなかったのですが、ports の www/nginx/Makefile とかソースを眺めていたら解りました。以前のエントリで、Nginx + quiche パッチを適用する場合 configure オプションに –with-openssl=/usr/ports/www/nginx-http3/quiche/deps/boringssl を指定しているんですね。
RTMP や Stream モジュールを利用する場合、ベタな openssl のソースのパスを指定する必用があるのですが、 quiche パッチを適用した場合、quiche 独自の SSL のコードを参照する必用があるので、 RTMP や Steram モジュールのコンパイルが通ったとしても、いざ動作させようとすると色々とシンボル名がなかったりするのですな。

 
と、いうことで、 Nginx に quiche パッチを適用した場合は、 HTTP/3 でのアクセス可状態なサーバで、SSI を利用しないウェブサーバとして利用するみとになります。

あ。Nginx + quiche パッチを適用したウェブサーバでも HTTP/2 や HTTP/1.1 、そして HTTP/1.0 (今では w3m くらいか?) でアクセスがあった場合 (それは、つまりは TCP でアクセスがあった場合かぁ?) には SSI は動作します。あくまで HTTP/3 でアクセスがあった場合のみ SSI の記述がある index.html がまともに表示されない状態になります。

SSI 使ったり RTMP・Strerm モジュールを利用したい場合は別にコンパイルしたサラの Nginx を用意する必用があります。 quiche パッチを適用しない Nginx では SSI や RTMP のサーバとして利用できるので、仮想マシンやコンテナで別立てするのがよろしいかと思われます。

 
ちなみに、Firefox は 72 から、 macOS や iPhone は Safari 14 から HTTP/3 がサポートされるようになりました(詳細については gugu ってください;-)。 macOS や iOS から HTTP/3 でアクセスできるようになると、ウェブサーバ担当者としてもいよいよ HTTP/3 の設定をしてサーバを起動してみたくなりますなぁ;-)。 ファイアーウォールの UDP Port:443 を開けるときが、今っ!! 来ましたっ!! ;-)。

8月 132013
 

僕は Firefox というのはドドドとバージョンが激しく上がっていくヤツではなく ESR 版を利用しているのですが FreeBSD の ports 的に言うと www/firefox-esr になるわけですけども。

現在の最新の ports-current では firefox-esr-17.0.8,1 と、いうバージョンが利用できます。しかし、確か 17.0.8 になったときだと記憶しているのですが、メニューなどの日本語表示ができなくなってしまいました。でもって、僕は firefox の起動時には bing.com を表示しているのですが、これがあーた。英語サイトを default で表示してくれるようになったりと、言語環境がぶっ壊れチックになってしまったんですね。

いつも Firefox をインストールするときは以下をインストールします。あ。 potrs 的情報ですけども。

・www/firefox-esr
・www/firefox-esr-i18n
・www/xpi-quick-locale-switcher

日本語言語パックとアドオンの Quick Locale Switcher も合わせてインストールしているのにどうして日本語で表示してくれないのだ?と悩むのであります。

そもそも以下の事象が現れています。

1.アドオンメニューのアドオン一覧に「言語パック」メニューが表示されない。
2.拡張機能の項目の中に ports からインストールしたはずの Quick Locale Switcher が表示されない。

どもう見てもこれはおかしい。ってんで色々調べたのですが「アドオンメニュー」の「アドオン入手」から Quick Locale Switcher 1.7.8.8 をインストールすると表示されるようにはなってメニューにも[言語を変更]ってのが現れるんだけど、しかし、日本語表示できない。

で、色々調べた結果「アドオン入手」から入手したアドオン(拡張機能)は

$HOME/.mozilla/firefox/乱数.default/extensions/

にインストールされるんですね。かたや ports からインストールしたヤツは

/usr/local/lib/xpi/

にインストールされます。 で更に調査を進め、色々な firefox のオプションとか指定して試すんですけども、あれー?! ってことは Firefox は /usr/local/lib/xpi/ を参照してないんではないの? という結論に達しました。

と、言うことで ports からインストールした言語パックと Quick Locale Switcher を symlink してあげることにしました。

$ cd ~/.mozilla/firefox/乱数.default/extensions/
$ ln -s /usr/local/lib/xpi/langpack-ja@firefox.mozilla.org ./
$ ln -s /usr/local/lib/xpi/\{25A1388B-6B18-46c3-BEBA-A81915D0DE8F\} ./

 
上の symlinkは 日本語言語パック、下の symlink は UUID ですが Quick Locale Switcher になります。そのまま symlink しました。

あとは Firefox を再起動して各種設定を見なおして完了です。アドオンマネージャにも「言語パック」とか、 ports からインストールした Quick Locale Switche が表示されるようになった(今のところはバージョンでどっちからインストールしたかの判断は付きます)ので一見落着。

20130813_firefox_01

と、いうことでこの作業を行なったおかげで無事に Firefox の日本語表示が復活しました。
しかし、 /usr/local/lib/xpi/ は信用したらアカン。と、いうことかな? 今後はこの symlink をずっと残すことになるかもしれませんが、それはこのエントリを読んだ方の好きにして頂ければと思います;-)。

12月 012011
 

以前のエントリに二回くらい書いているのでのすが、今回は三回目になるかな? mozc の ノラ ports を本日付の最新バージョンにしたものを以下の URL に置いておきます。

http://icmpv6.org/Prog/FreeBSD_ports/ports-mozcs-20111201.tgz

以前のバージョンは 1.1.773.102 ですが、今回のバージョンは 1.3.911.102 になります。だた、どこが変わったのか、いまいち解りません・・f(^^;;。

実は最近、ブラウザに opera を利用するようになったんですね。 ports からの make install も早しい、KDE ライクだし。みたいな感じなのですが。

で、 opera に対して日本語を入力しようとすると Ctrl キーを押した段階で確定してしまうので、それが何とかならないか? とか思い色々調べていたのでありますが・・。

uim-skk でも問題になっているようですね。以下の URL がその参考になるかと思いますが。

http://my.opera.com/japanese/forums/topic.dml?id=950112

この事象は、僕が現在利用している ibus-mozc でも起きていて、なんか回避策はないんかいな? と思い色々調べていたんですけども・・。

とある掲示板には「ubuntu では ibus-mosc で Ctrl キーの制約を受けずに opera に日本語入力ができる。」とあったので、むむむ。とか思い、最新版の mozc の ports を作ってみたんですけどもね。

しかし、結局ダメでした。 mozc の 1.3.911.10 でも opera に対して日本語を入力しようとするとやはり Ctrl キーで入力した内容が確定されてしまいます。残念。ただ、せっかく作った ports なのでここに公開しておきます。

send-pr はしないです。 send-pr してもメンテナが全然全くこれっぽっちも対応してくれないんだもの。

と、いうことで現在は opera で正しく日本語が入力できるように、ubuntu の mozc deb のソース取り寄せてパッチを眺めたりしているところです。まぁ、手元に ubuntu が無いので実際にどういう動作しているのか全くわからないの出ありますがね;-)。

ちなみに opera は www/opera と www/opera-devel の両方を試しましたが ibus-mozc では Ctrl が押された段階で日本語が確定してしまいますね。なので、実際問題として、opera っちゅーのは使えない状態になっている。と、言う感じでしょうか。

8月 242011
 

Firefox が 12 週間に一回バージョンアップするというとんでもない所業に出て、つい最近 Firefox6 が出たんですが、こいつがなんかむちゃくちゃ CPU を食いまくる。起動直後なんて一人で一個の CPU を使いやがる。ってんで Firefox の利用は最近断念しつつあります。

と、言うことで何か別のブラウザを捜すべ。とか思って色々調べてみたのですが、 QT ベースのブラウザってのは結構色々あるんですね。 arora だとか rekonq とか QtWeb (これは ports になってない) とか。

けど、結局 QT ベースブラウザってどうあがいても emacs キーバインドが利用できないみたい。

ちょっと話はそれますが KDE4 のアプリケーション群の中で emacs キーバインドが設定できるのは kwrite だけなんですよね。で、こいつの設定の「ショートカットを設定」を見ると 「Kateコンポーネント」ってのがあって、これが編集時のショートカットキーの変更を可能としている。

ちゅーこって KDE4 ではショートカットの設定のところで「Kateコンポーネント」を全てで編集できるようにすれば emacs キーバインドが可能になるのになぁ。と思うのでありました。どっかで呼びたせたりしないのかなぁ。

 
で、ここで話はブラウザ全般のネタに戻るのですが、以下ちょっと色々書いてみます。

 
・chromium
QT ベースのブラウザは emacs キーバインドが利用できないので www/chromium をインストールしてみました。 Chrome のオープンソース版と言えば良いのかな? こいつは Firefox6 よりも CPU 利用率が低いみたいなのでまぁ常用できるかもしれない。

それにしても chromium で emacs キーバインドはできないのかな?とか調べたら GTK2 側で emacs キーバインドの設定をすれば良いと言うことが解ったので早速やってみました。

% cd /usr/local/share/themes/Emacs/gtk-2.0-key/
% cp gtkrc ~/.gtkrc-2.0

 
これだけ。普段 KDE4 とか利用していると GTK2 のこととかほんとにわかんない。僕だけかもしれないけど。で、この設定を入れるとほぼ全ての GTK2 アプリは emacs キーバインドになるみたいです。Firefox の場合はアドオンで firemacs 入れているので気にならないのですが、 Thunderbird3 とかも emacs キーバインドになってくれたりします。すげー;-)。

 
・midori
GTK2 的なブラウザとしてはもう一個 www/midori を試してみました。インストールしてから起動すると・・。ふむー。随分と前時代的な雰囲気を醸し出していますf(^^;;。細かい設定は「設定」→[エクステンション]として全て項目にチェック付けてと・・。とかします。

ツールバーの設定などはブラウザではできなくて、~/.gtkrc-2.0 に項目を追加していくと言ういかにも UNIX ライクな設定方法ですf(^^;;。そして、見かけは本当に”GTK2 ベース”って感じです。多分常用はしないと思われますが pkg_delete もしていません;-)。

 
・arora
QT ベースのブラウザです。まぁ、非常に質素である意味 midori に通じるものがあるかもしれません。konqueror の不要な部分を全部削ぎ落して軽量化したって感じのブラウザです。けどもまぁ、QT ベースなので KDE4 上で利用する分には割としっくり来ますかね。

フツーに問題なく利用できます;-)。

 
・QtWeb
QT ベースのブラウザです。Windows 版もバイナリで配布されています。arora と一緒で本当に質素・軽量なブラウザです。 FreeBSD では ports になってないので自分で make して、チロッと起動して動作確認などをしただけです。

FreeBSD で make するには QT4 の CJK なプラグインが必要になります。 japanese/qt4-codecs-jp 相当の中国・韓国・台湾版をインストールします。まぁ、ソースを変えて libqjpcodecs.so しか呼ばない(リンクしない)ようにすれば良いだけなんですけどね。 一応 make は通って起動はできます。ただ、 ports する意味あるの?って感じがするので僕は ports を作ってませんが;-)。

 
・rekonq
僕的には本命のブラウザですなぁ www/rekonq 。名前的に「konqueror よ再び。」みたいな感じ、車輪の再開発とか。 konqueror の悪いところを削ぎ落して再度作り直しましょう。みたいな感じのブラウザらしいです。

とりあえずキャプチャなどを。下が konqueror 、上が rekonq です。

rekonq.png

見た感じ・使った感じは Safari と Chrome の良いところを取り込んで konqueror の悪いところがちょっと残った。と言うような感じでしょうか;-)。

機能も konqueror 程度にはあるし、何よりも konqueror よりも安定している感があります。 kubuntu では rekonq が default ブラウザになったんだっけか?

FreeBSD では ports からインストールしても日本語対応していません。 ja な mo ファイルが無いんですな。あいや・・。しょーがないので kubuntu のを持ってきてしまいましょう;-)。

以下の URL から language-pack-kde-ja-base_10.10+20110618_all.deb を拾ってきます。

http://pkgs.org/ubuntu-10.10/ubuntu-proposed-main-i386/language-pack-kde-ja-base_10.10+20110618_all.deb.html

そのあとは以下の要領でインストールすると rekonq の日本語化ができます。

% mkdir deb
% cd deb/
% mv ~/language-pack-kde-ja-base_10.10+20110618_all.deb ./
% ar -vx language-pack-kde-ja-base_10.10+20110618_all.deb
% tar xvzfp data.tar.bz2
% cd usr/share/locale-langpack/ja/LC_MESSAGES
# cp rekonq.mo /usr/local/kde4/share/locale/ja/LC_MESSAGES/

 
一部翻訳されていないところも有りますがほぼ問題ないほどに利用できるでしょう。

利用した感想ですが、konqueror よりは遙かに良いと僕は思います。これが default ブラウザでも問題無いと思います。「KDEシステム設定」の中の「デフォルトのアプリケーション」のブラウザとして設定しましたが、各アプリの URL をクリックするとスルスルっと konqueror よりも軽やかに起動するみたいな感じでしょうか。

ただ、本当に KDE4 のアプリと言うか QT ベースなのでやはり emacs キーバインドは利用できないですね。長文書く時、僕はダメです。

と、言うことで Firefox6 と言うか、 Firefox がこれからドンドン変な方向に進んで行きそうなのでそろそろ潮時かぁ? とか思いブラウザを試してみましたが、サイトを見るときは rekonq 、文章を書く時には chromium 。って感じになりそうです。

あ。最後にですが、筆者は Flash などいうのはまるで見ません。プラグインインストールしていません。ブラウザの設定で「プラグインはロードしない。」をわざわざ選択しています。iOS ユーザにとって Flash プラグインは必要無い。みたいな;-)。

2月 212009
 

前回「KDE-4.2良いよぉ。」と、ちろっと書いたのだけど、その上で konqueror を使っていたら「あれ?Safari と表示が一緒だぞぉ。」などと思えてきたので、今回キャプチャしたものを比較してみたいと思います。ちなみに Safari は konqueror のレンダリングエンジンである KHTML から派生した WebKit がベースで qt4+KDE4 には qt4-webkit なんて言う ports もあったりするので konqueror への期待は大いに高まったりするのです;-)。

今回のブラウザのキャプチャは以下の通り。Windows では日本語のアンチエイリアスが有効にならないので、Windows 自体は全く使う気にならない。WindowsXP 上の Firefox3 でメイリオフォントを指定した場合、どうしてあんな汚い表示なんだぁ?と驚いてしまう。 Windows ユーザは素早く IE も Firefox も捨てて Safari を使ったほうが良いのでは。と、僕個人的は思う;-P。(僕は WindowsVistaは常用していない;-)

・FreeBSD/amd64 7.1-STABLE+kde-4.2.0 の konqueror
・MacOSX Leopard 上の Firefox3.0.6
・MacOSX Leopard 上の Safari3.2.2

Firefox3 は WindowsXP と FreeBSD、そして MacOSX 上で動作しているけど、 MacOSX 上のヤツが一番きれいに表示できるのでそこからのエントリです。全てのキャプチャ画像はクリックすると大きくなります。

まずは kde-4.2.0 の konqueror から。


続いて Firefox3。


最後に Safari3。


全てのブラウザでアンチエイリアスが効いていてフォントがきれいに表示されています。まぁ、多少、フォントの誤差はありますが、その点についてはお許しください。

今回はこのサイトをキャプチャしましたが、konqueror と Safari はタイトルとブログのタイトル文字にうっすらと影があるのが見えるでしょうか?それに引き替え、Firefox3 にはその影が表示されていません。

このブログのテンプレートはもともと Mac ユーザの方が作ってくれたのを利用しているので、MacOSX に最適化され、きれいに表示してくれるようになっています。

なので、最近の僕は(写真の編集などもあるけど)ほとんどのブログの書き込みと確認は MacOSX 上で行っていたのでありました。けど、KDE-4.2 の konqueror が Safari に非常に近いデザインでコンテンツを表示してくれていると言うのに感動しました;-)。さすがは KHTML と言うか WebKit だなぁ。と。

けど、KDE-3.5 の konqueror は見るも無残な状態であったために Firefox3 をずっと使っていたのだけど、KDE-4.2 になったらその出来と言うか、コンテンツ表示のすばらしさにちょっと関心してしまいました。

後、FreeBSD 上では Firefox3 で利用する nspluginwrapper 経由の各種プラグインを konqueror が「mozilla プラグイン」として認識するので linux-flashplugin-9 も動作します。これはこれで大変嬉しいことです。

KDE-4.1.2 は plasma がしょっちゅうぶっこけて全ての KDE アプリを道連れにしていたのだけど、KDE-4.2.0 になって、まぁ、時々 plasma は落ちるけど、自己修復型で再起動してくれるので随分と楽になりました。

やっぱえぇなぁ。qt4+KDE4 は。

ただ、人に言わせると c++ はいらん。だそうです。確かに ports をコンパイルすると膨大な時間が掛かることは確かではありますが・・(^^;;。

皆さんも是非使ってみてください。ちなみに僕は JKUGスタッフです。布教活動には余念が無いであります;-)。

あ、最後にですが、MacOSX 用の KDE4 は未だ 4.1.2 のままです。早く 4.2.0 がでないかなぁ;-)。MacOSX 上で konqueror を起動してみたいものです;-)。

11月 282008
 

FreeBSD、僕は7.1-STABLE を利用しているのだけど、ちょっと前に Users-ML で話題になった。

FreeBSD-users-jp 91899 からのスレッド ですねぇ。

このスレッドの中で ume さん が、その対処法を書かれているのです。

作業内容は以下みたいな感じですかねぇ。

元々 linux_base-fc4 が入っていたので /etc/make.conf に

OVERRIDE_LINUX_BASE_PORT=f8

 
と設定します。続いて、

# sysctl compat.linux.osrelease=2.6.16

 
してからいよいよバージョンアップです。

# portupgrade -o emulators/linux_base-f8 linux_base-fc4
# cd /usr/ports/emulators/linux_base-f8
# make install
# portupgrade -f linux-\*
# cd /usr/ports/www/linux-flashplugin9
# make install

 
最後にプラグインのコマンドを実行します。

$ nspluginwrapper -v -a -i

 
これで良いはずなんですけど、これで確かに flash9 が動作するのですが、遅い・・。yahoo.co.jp とか watch.impress.co.jp は最近、flash の CM があるのだけど、これを表示する時にむちゃくちゃ遅いっ!! 記事を真ん中クリックして別のタブに表示させるんだけどそこに flash があると平気で 10 秒以上凍りつき、応答がなくなる firefox3。

もうウンザリ・・。flash7 に戻すべや。とか思っていたら、回避策を教えていただきました。ありがとうございます。 ume さん;-)。

原因は linux-glib2 です。linux_base-fc4 で利用していたこれを削除して、再度インストールしなおせば劇的に速く動作するようになります。

その手順は以下のような感じ。

# pkg_deinstall -f linux-glib2
# portupgrede -f linux_base-f8
# pkgdb -F

 
これをやることにより劇的に速く表示してくれるようになります。いやぁ。良かった。flash7 と同じ位の動作で、ストレスも感じません。

ちにみに /usr/ports/devel/linux-glib2 はインストールする必要は無いみたいです。linux-glib2 は fc4 用で、fc5 以降は自前で glib2 を持っているので必要無いみたいです。
#だけど、インストールできちゃうんだよなぁ・・。

良かったです。ありがとうございました。

2月 042008
 

NotePC で KDE3 を使っていて、Firefox を利用すると、メニューバーのフォントや Submit ボタンのフォントがでかすぎて全然美しくない。

なぜ、NotePC 上でかと言うと、デスクトップで KDE3+Firefox の場合だと、画面が広いので普段から大きなフォントを使っているので気にならないんだけど、NotePC の場合、画面が狭いのでついついコンテンツを表示するフォントを小さくしてしまう。

そーなるともー、メニューバーのフォントの大きさがきになってしかたがない。なので小さく表示してくれるように設定することにした。Google で探したらそれなりに見付かったけどねぇ;-)。

設定に必要なファイルは二つ。~/.mozilla/firefox/乱数ディレクトリ/chrome/ の下に以下の二つのファイルを用意する必要があります。

・userChrome.css 主にメニューバー・ツールバーを設定するファイル
・userContent.css 主に Submit ボタンなどコンテンツ上の設定をするファイル

では早速設定を見て行くことにしましょう。まずは userChrome.css です。

@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); /* set default namespace to XUL */
* {
    font-size: 12px !important;
}

 
全てのメニューのフォントを 12 ピクセルにすると言う設定です。”*” が「全ての」と言う意味です。個別に toolbar とか urlbar とかも指定できますが、まぁ、良いでしょ「全て」で(^^;;。

また、普段は [表示]→[ツールバー]→[カスタマイズ] で表示される画面で自分好みのツールバーにカスタマイズすると思いますが、その設定もこのファイルに記述できます。ただ、ここには書きませんけど・・(^^;;。

このファイルを作成し firefox を再起動すると設定が有効になったかと思います。けど、Submit ボタンはまだまだ大きいままでかっちょ良くないんですよー。

なので、次に userContent.css を用意します。このファイルはコンテンツの中で firefox が制御する部分の設定を行います。

.searchbar-textbox {
    font-size: 12px !important;
}
input {
    line-height:1.0 !important;
    font-size: 12px !important;
}
select {
    line-height:1.0 !important;
    font-size: 12px !important;
}
textarea {
    line-height:1.0 !important;
    font-size: 12px !important;
}

 
まぁ、FORM 入力部分の表示の制御がメインになるかと思うのですが、select タグや textarea タグなどのフォントサイズが変更できたりします。Submit ボタンは INPUT タグなので input 項でそのサイズを指定してあげることになります。

さて、再度再起動してみましょう。これで十分にきれいで均等の取れた firefox になったでしょうか。

僕はなりました。めでたいことです;-)。

4月 132007
 

emacs22+mew と言うのがぼくのメールを読む環境なんだけど、 Mew version 5.2.50 で Punycode に対応したみたいです。試してみるとこれがまた・・。

メール本文(mew では message バッファと呼んでいます)にある http://xn--w8j2bze0962a.jp/ が、ちゃんと http://もつ焼き.jp/ と表示されるようになった。すごいなぁ。その URL をクリックするとちゃんとブラウザも起動する所が偉い;-)。

ただ、From:・To:・Cc: などの takachan@xn--w8j2bze0962a.jp は変換してくれないみたい・・。ちょっと ML で かずさん に聞いてみよう。

で、話は自然と「国際化ドメイン名」に行くんだけど、firefox ってすごいなぁ。と再確認。

「もつ焼き。JP」とか、「もつ焼き.JP」って言うのをちゃんと変換して表示してくれるのね。これには驚き。技術的には NAMEPREP による正規化をしてから、Punycode による変換を行い ASCII コードで DNS に問い合わせられる。でもってちゃんと表示してくれる。すごいなぁ。

もつ焼き。JP (firefox でクリックしてみてください)

↓ NAMEPREP による正規化

もつ焼き.jp

↓ Punycode による変換

xn--w8j2bze0962a.jp

Punycode ってのは知っていたけど、 NAMEPREP ってのは今回初めて知りました。すごいぞ。これ。

ちなみに konqueror は Punycode に対応しているけど、NAMEPREP には対応していないみたいで、「もつ焼き。JP」は不正な URL として扱われるみたい。しくしく。

4月 112007
 

Firefox 用のユーザエージェント切り替えアドオンらしい。

http://firefox.geckodev.org/index.php?User%20Agent%20Switcher

FreeBSD-users-jp な ML で見つけたネタなんだけど・・。

僕は普段から KDE3 を使っているのでメインのブラウザは konqueror なんだけど、konqueror には default でこの機能を持っている。www.dell.co.jp DELL のホームページで PC の見積もりとかする時に有用な機能なんだけどねぇ。

しかし、上記 URL の Firefox のアドオンはサイトごとに設定できないのね・・。konqueror の場合、DELL サイトだけは IE にして他のサイトはフツーに KHTML で見に行けるようにとか設定ができるのだけど・・。

なんか、普段から「あ、IE 使ってんじゃん。こいつ。」とか思われるの、ヒジョーにシャクに触るんですけど;-P。