_ Safari 1.0 Beta を試してみた。
_ 起動が速いな。 レンダリングやスクロールも結構速い。 機能はかなりシンプルでいい感じ。
_ 日本語の表示はちょっとおかしいな。 一部の文字が化けたり,重なったり,行の折り返しがおかしかったり。 ASCII と日本語が混在してると文字が消えたり。
_ スタイルシートでフォントファミリーを指定しても日本語フォントが変わらないな。 スタイルシートの実装は IE のほうが若干ましな感じ。
_ 日本語ページ内のリンクの中の "~" が化けるな。 "~" を U+203E OVERLINE に変換して, UTF-8 にしてから URI エスケープしてるみたいだ。 日本語ページでも最初から UTF-8 で書いてあるページなら問題なし。
_ Chimera と同様に Safari も Rendezvous に対応しているのか。 Rendezvous のテストのため, RubyCocoa で簡単なプログラムを作ってみた。 Web サーバ の動いている Mac OS X 10.2 マシンの上でこのプログラムを動かしておくと Rendezvous を使って LAN 内からその Web サーバを発見できるはず。
#! /usr/local/bin/ruby
require 'osx/cocoa'
DOMAIN = ""
TYPE = "_http._tcp";
NAME = ""
PORT = 80
OSX::NSNetService.alloc.initWithDomain(DOMAIN,
:type, TYPE,
:name, NAME,
:port, PORT).publish
sleep(1000000)_ なぜか WSDL4R の質問メールがきた。 こんな感じかなぁ。
--- soap4r-1_4_7/lib/wsdl/xmlparser.rb Wed Sep 18 01:57:02 2002
+++ soap4r-1_4_7.new/lib/wsdl/xmlparser.rb Fri Jan 10 00:35:07 2003
@@ -45,11 +45,11 @@
characters( data )
when XML::Parser::XML_DECL
if data[ 1 ]
- encoding = Charset.getCharsetStr( data[ 1 ] )
- if encoding != Charset.getXMLInstanceEncoding
- raise FormatDecodeError.new( "Unsupported encoding: #{ data[ 1 ] }/#{ Charset.getXMLInstanceEncoding }" )
+ encoding = ::SOAP::Charset.getCharsetStr( data[ 1 ] )
+ if encoding != ::SOAP::Charset.getXMLInstanceEncoding
+ raise FormatDecodeError.new( "Unsupported encoding: #{ data[ 1 ] }/#{ ::SOAP::Charset.getXMLInstanceEncoding }" )
end
- Charset.setXMLInstanceEncoding( encoding )
+ ::SOAP::Charset.setXMLInstanceEncoding( encoding )
end
else
raise FormatDecodeError.new( "Unexpected XML: #{ type }/#{ name }/#{ data }." )_ Carbon で Rendezvous のテスト。 Cocoa のほうがかなり簡単だ。
/*
* cc -o rendezvous rendezvous.c -framework Carbon
*/
#include <Carbon/Carbon.h>
#define NS_DOMAIN ""
#define NS_TYPE "_http._tcp"
#define NS_NAME ""
#define NS_PORT 80
static void
registerCallback(CFNetServiceRef service, CFStreamError* error, void* info) {
printf("error = %ld\n", error->error);
}
int
main() {
CFNetServiceClientContext clientContext = { 0, NULL, NULL, NULL, NULL };
CFStreamError error;
CFNetServiceRef service =
CFNetServiceCreate(kCFAllocatorDefault, CFSTR(NS_DOMAIN), CFSTR(NS_TYPE),
CFSTR(NS_NAME), NS_PORT);
if (service == NULL) {
printf("create error\n");
return 1;
}
CFNetServiceSetClient(service, registerCallback, &clientContext);
CFNetServiceScheduleWithRunLoop(service, CFRunLoopGetCurrent(),
kCFRunLoopCommonModes);
if (CFNetServiceRegister(service, &error) == false) {
CFNetServiceUnscheduleFromRunLoop(service, CFRunLoopGetCurrent(),
kCFRunLoopCommonModes);
CFNetServiceSetClient(service, NULL, NULL);
CFRelease(service);
printf("error = %ld\n", error.error);
return 1;
}
sleep(100000);
return 0;
}_ 既に mod_rendezvous を作っている人がいたのか。 一応作業開始前には検索してみたんだけどな。 無駄な努力をしてしまったようだな。
_ ソースを見ると child_init ハンドラで pthread を起こして, CFNetService を同期モードで動かしているようだ。 エラーチェックをしてないし, なんとなくリソースがリークしまくりな気がするけど,大丈夫なのかな。
_ 先日の正体不明 virus, NAV でスキャンしてみたら Sobig だった。 Virex for Mac OS X はパターンの更新が遅くて役に立たないなぁ。
_ JIS X 0213 改正原案 の UCS の変更表, 括弧付きコードのUCSが確定しただけだと思ったら, 2-93-27 のマッピングも U+9B1D から U+9B1C に変更されているのか。
_ Mac OS X 10.2 は既に対応しているみたいだな。 2-93-27 は U+9B1C にマッピングされているみたいだ。
_ X11 for Mac OS X のソース に XIM パッチ をあててビルド, libX11.dylib を入れ換えたら XIM で日本語入力ができるようになった。