AHL の FAQ にも書いてあるのですが、
W3C のサーヴィスは、HTML を DTD 的に検証するだけです。しかし、W3C の策定している HTML の仕様書中や、DTD のコメント中には、DTD では表現できない多種多様な制約事項が述べられています。W3C の検証ではそのようなチェックは一切行なわれません。従って、W3C の validator が問題無いと言おうが、問題ある記述である可能性は有ります。
cite: scratch leaf
ども、指摘ありがとうございます。 XHTML 1.0 でのname/idに使える文字に関する 記述 があったのは初めて知りました。感謝。
恥ずかしながらDTDを(解説サイト越しの断片的にではなしに)直接読んだことはないのですが、
使える文字集合等に関する規定はDTDのレベルで既に定まっているものかと考えているので、
昨日のような発言になりました。実際Validatorでは、HTML4.01 の文書に対しては
id="_xxxx"
にチェックが入りますし、例えば iso-2002-jp 海賊版で
無理矢理JIS X 0201 カナを使おうとすると、そもそも判定不能と言われてしまいます。
Script-Typeに関しては、引用された箇所は
should specify
止まりで
Documents that do not specify default scripting language information and that contain elements that specify an intrinsic event script are incorrect.
cite: The default scripting language (強調筆者)
としか書かれていないので、無しでも不正ということははないだろう、 と判断して憤っておりました。が、今改めてAHLのエラー解説を見るとこのエラーは
文法的にもHTMLとしても正しいが、WAIやRFCで推奨されていないもの。 *3*
cite: エラーについて
に分類されるものだったですね。それなら納得。失礼しました。
冗長なものは推奨されてても書きたくないのですが…、うむ、 文書中でJavaScriptが使われていることを暗示する役には立つかなぁ。
下の lmd.h は gcc ではコンパイルできませんでしたが、 試行錯誤していた名残の無駄な typename を全部消せばOKです。 次はintに依存しないように書こうと思って苦戦中…。 変数として X と Y を両方使うと二変数関数になるような仕組みも書けたら楽しそう。
やたー出来たよー! 3で割ると2余るか、5で割ると4余る数のみ表示。
// 上で作った数のうち、指定条件を満たすものを列挙 for( vector<int>::iterator i=fib.begin(), e=fib.end(); i!=e; ++i ) { i = find_if(i,e, X%3==2 || X%5==4 ); if( i==e ) break; cout << *i << ' '; }
ソースは lmd.h と lmd.cpp。 Borland C++ Compiler 5.51 にて動作確認。まだ、intを取ってintで返す計算式しか使えません。 つーかこれをgenericにするってどうやればよいのだ。ちなみに
int n = (X*10+2) (5);
で n に 52 が入ったりもします。
…こんなことして喜んでるヤツがいるからJavaで演算子の多重定義が切られたのだと思った今日の早朝。
裏 Iser へリンクすることで、 ここも is2002er のウェブサイトであることを消極的に主張しておきます。
このtalkのページを Another HTML Lint にかけると
の、何でそれがエラーになるのか理解できない3点セットで随分と減点されて悲しい気分なのですが、 自分の知識とW3Cのvalidatorが問題ないと言っているので問題ないということにします。 前者は猛烈に怪しいけれど。
昨日のlambda、別に関数形で生成しなくても、演算子から直接関数オブジェクトを 返してしまうことも可能ではなかろうか? 例えば operator% と operator== を オーバーロードして
using lambda::X; find_if( a.begin(), a.end(), X%100==0 );
なんて書けるようにできないかな。
boost のまとまった日本語の資料がどっかにないかー、 と検索しているうちに何だか猛烈に変態的なtemplateと演算子オーバーロードの世界へ 迷い込んでしまったので、ついでに他人を引きずり込もうと、ここに書いてみる。 読んでくれてる人の99.9%を置いてけぼりにしてる気もしないでもないですが気にしない。
LL(inf) 文法のパーサージェネレータ Spirit。
group ::= '(' expr ')' expr1 ::= integer | group expr2 ::= expr1 (('*' expr1) | ('/' expr1))* expr ::= expr2 (('+' expr2) | ('-' expr2))*
これを
group = '(' >> expr >> ')'; expr1 = integer | group; expr2 = expr1 >> *(('*' >> expr1) | ('/' >> expr1)); expr = expr2 >> *(('+' >> expr2) | ('-' >> expr2));
こう書いて C++コンパイラに 通すと吉だそうな。
次、An Expression Template aware Lambda Function。
vector<Car> cars(5); // We can use a lambda expression and foldr to count // the number of elements in the list. // Notice, that the lambda expression returns a function // of type * -> ** -> ** . // The first parameter (x) gets ignored. cout << "There are " << foldr(lambda(x,y,y + 1),0,cars) << "cars in the list." << endl;
lokiとか見ていて、templateでやるメタプログラミングは関数型言語っぽいな、 と感じてはいたのですが、コイツはなんでC++の地の文に foldr とか lambda が 出てくるんでしょうか。もう最高。
まぁ確かに考えてみれば、foldr( f(x,y), z, list )
というのは確か
「list の長さが0ならzを返して長さ0でなければf( list[0], foldr(f,z,list[1..]) )
を返す」というシンプルな再帰関数だったと思う。ので、これは記述は何の問題もなく出来るはず。
lambda も無名関数だとか関数オブジェクトだとか言う概念に関してはOKだろう。
としても、「引数に式を式として式のまま渡す」のと結果的に同じことを実装してるのが凄い。
y + 1
の式の値は 'y + 1'
そのものを表すオブジェクトに
なってるってことかぁ。
こんな風なのが一般的に使われるようになることはたぶん無いだろうし、 書いたコードで他人と意志疎通するのがエラく大変になりそうなので 実用に向けようとは自分でも思わないけど、プチ言語ヲタクにとっては かなり面白いのであります。
話は最初に戻ってその boost ですが、あんまり情報が集まらなかったので、 自分で使いながら自分用に書いてみることにしました。ちゃんとしたものが書けたら 正式に公開するかもしれない。lbst
Google Web APIs サービスによって、ソフトウェア開発者は自分のプログラムから直接、 20億以上のWebページの情報を取り出すことが可能となります。 SOAPとWSDLを用いて好みの開発環境 - 例えば Java, Perl, Visual Studio .NET など - から利用できます。
おもしれー。
それはそうと query ってどう訳せばいいんだろう?問い合わせ?
7-lha を作ろうとして失敗。逆に圧縮率下がってもうたヨ。
Unrarのソースが、ver 3.0 対応版に1ヶ月くらい前に更新されていたようですね。 とっととXacrの更新せにゃ。しかし旧版のrar対応には昔かなり苦労した覚えが…。
花冷えと申しまして、この季節は陽気も定まらず、暑さ寒さの隔たりの 大きな時でございます。どうぞ皆様お風邪など召されぬようご自愛下さいませ。 と、自分のことを100%棚に上げて言ってみる。ていうか頭痛ぇ。
NETI。 P2Pのサーチエンジン…というか要するに「お気に入り」を共有してどうのこうのというもの。
上中下、と3冊の文庫本があるわけです。行き帰りの電車の中ででも読もうと思って、 朝出がけに上と中の2冊くらいをカバンに放り込んで家を出るわけです。 そして席に座って落ち着いてから本を取り出そうとしてみると、何故か 入っていたのは中と下だったわけです。そこで私はどうしようもない 脱力感にとらわれるわけです。。。
自分用スタートページを改造。
学校の Solaris に Internet Explorer for UNIX が入ってた。 割とアンチMSなところかと思ってたから(偏見)驚き。 とりあえずうちのトップページの表示確認、っと見てみたら「フリーウェア」とか「色々」とかの タブっぽい部分と本体が切れてたけど、気にしないことにしよう。
よーし、ちょいと単体テストとやらについて知っておくか、ということで 「eXtreme Programmingテスト技法」 を買ってみた。まだ秒速4ページくらいで流し読んだだけなのでさっぱりわかってないのですが、 そもそもUnitTest可能なクラス切り分けにするのが私にとって第一のハードルというよな印象。
月曜日から新学期が始まるらしいので、今日はガイダンスとやらがありました。 とりあえず新キャンパスから御茶ノ水駅周辺地域への徒歩経路を実地確認。
vectorのホームページ用スペース(5MB)が限りなく限界に近くなって参りましたのですがどうしましょ。 配布ファイルだけ別サーバ…ってのはあんまり好きじゃないんだよなー。
jcom 様にサーバ立てるのは禁止とか 言われてしまってるので事実上使えないのだが、ちょっと遊んでみちゃおうということで Apacheを入れて遊んでたら2chに書き込めなくなった。 80とか8080番のポートが開いてるとプロクシと仮定されてしまうようで。なるほど。実験終了。
やらにゃならんことは多いのにやる気が全く出ない一日。
マンモス本の青いのが
出てるっ、て今日昨日気付いた。
タイムトラベルの哲学、を読了。
『「動く今」の上に「私の今」が乗っていて、何かの拍子に別の「動く今」に飛び移るのが
タイムスリップ』という想定が、1ランク
というか私の感覚では、「時間」も含めて凍り付かせた「フリーズワールド」が 唯一つ、いつまでも変わらず同じ状態で存在し続ける…というものである、と 直感的には思いたいのだ。[いつまでも]とか[し続ける]とかいう語は明らかに不適切だけど その辺はコトバの綾ということで。
時間、というのは皆が過去→現在という同じ方向の記憶を持っているらしいという不思議 …であって。「人間は後ろ向きに未来に向かって歩いている」、とかそういう、その、なんというか。
今気付いた versionup.org さん閉鎖。おつかれー。
Noahのアーカイブを作ったらサイズが前回と比べて突然倍増…してたので何かと思ったら Thumbs.db がっ! あー面倒い。
「ちょっとだけカッコよく find(1) を使う」 ってのを読んでやっとfindの使いこなし方がわかったヘタレな私。
今日初めてやってみて、スパイダソリティアにちょっとはまる。でも4組のが解けない。
Studying HTTP という良さげなサイトを発見したのでメモ。
今年も桜の葉がいい塩梅であります。
月末休館日で凹む。
あ、改装。
眠。
ひでぇ。 間違ったことしてるわけじゃないけどさ。
何故か今週一週間くらい、3月は30日までだと思いこんでいたのだが、よく考えたら 「西向く士」じゃないか。 危うく 独りエイプリルフール に突入するところだったぜ。ふぅ。 去年はJavaScriptで何かやった覚えがあるけど今年はそんな気力無いなぁ。
よっしゃDelphiやるぞDelphi!
…てなわけでかなり久しぶりに起動してみました。そしたらいきなり
'System.pas' が見つかりません とか言い出して、全く手を触れてない
まっさらなフォームのコンパイルが通らない。早速 google。
「なんと!インストールしたユーザと使用するユーザが違うとうまく動かないんだと.
」
っという物凄く適切な日記ページが引っかかって解決。てゆーか一体なんなんだその仕様は。
さて、全く右も左も上も下も何もかもわからないので入門ページを探すべく、また google。 3番目に「Delphi 6 Personal 入門」というピッタリな名前のページがあったのでそこを読みつつやってみることに。 ありがたやありがたや。
…しばらくカチカチカタカタと作業を進めてたんですが…フリーカーソルは嫌いなんじゃゴルア、 ということで、エディタ設定でも変え方がわからないのですかさず google。
「Delphi/BCB5 フリーカーソル無効化アドイン」なんてのを発見。 ただ、このエディタに慣れておくのも悪くないかな?とか思ってとりあえず保留中。 [Home]とか[End]とか、普段全く使わないキーが活用できるかもシレン。
Shared Source CLI Now Available
… CLIとか、C#やJScriptのコンパイラとかのソース。
C# で書かれたアプリを初めて見ました。(笑
VS.NET はまだ持ってないので、しゃーないから FreeBSD 入れていじってみようか。
最近のワームはIEのキャッシュ辺りから適当にメールアドレス拾ってきて From: に入れる、らしい。 しかしそうわかってはいても、 「Don't drink too much」 という件名のメールが info@aojiru.com というアドレスから送られてくると、 「青汁なんか飲み過ぎねぇYO!」と思わず突っ込んでしまうのであった。
erangeて実行ファイルの名前で、つまるところ「解凍レンジ」。 ちなみにこの e は Expand や Extract のではなく Easy の頭文字っぽいぞっ! という豆知識を 持っていても何の役にも立たないので、要注意です。
伝言板の方に、小中学校の頃の友人が出現してびっくり。
そう、あの頃は「バナナ」というあだ名だったのです。イナバを逆さから読むと何かそれっぽいから、 という理由で同級生のO島君(当時6歳)という輩が2秒くらい考えて決めてたような 覚えがあります…っていうかよく考えるとめっちゃ安直だなおい。
一昨日のことですがクラス会。あんな何も起こらな具合も嫌いじゃないな、俺は。
Info-Zip の 5.5 を見つつ zlib をちょこちょこと書き換えてdeflate64形式の展開を可能にしようと挑戦、 したけれども上手く行かない。従来のdeflateとの違いって辞書サイズと単語長のMAXが 増えただけに見えるんだけど…。やっぱり真面目に理解してから取りかからないとダメですネ。
やっとBeでLANの設定が完了したぞ記念スクリーンショット。 でもDHCPを使うように出来なかったので色々IPアドレスを直で書くという妥協済。
最近まで半角の「デスクトップ」で作業してたので気付かなかったこと。 Dependency Walker が2バイト文字入りの パスを渡すと化けてしまって困った。 「デスクトップ」→「デベハトップ」ってどういう間違い方をしたらこう化けるんだろう。
某氏の プロジェクト名「最後の楽園」
って z:最後、seven:heaven ということで、
諸般の事情を考慮に入れるにもしや 7z32.DLL 開発中か! と閃いたつもりになって
独りわくわくしていたのですが、外れていたら恥ずかしいので今日も伏せてしまうのであった。
今日の午後は「MのM」の方に我が家を来襲されておりました。 取材だったそうなんですが、私よりむしろ相手の方が絶対多くしゃべってました。 とゆことで、色々話が聞けて楽しかったです。月アスの4月号についてとか(笑)。 えーと、詳細は来月の今頃。
しかし、デスクトップが萌えてない人は珍しいと言われたんですけど、実は上に乗ってるものが。。。
壁紙はほとんど、CG/写真は気にせず AUROGRAPH とか ExtractNowの作者さんの とか northern lights みたいな 系統のを使ってますね。なんとなく和む。
BeOS Developer Edition Release 5.0.4。 新しいドライバが集められてたり、OpenTracker やら Mozilla やらが最初から入っていたりする模様。 早速入れてみよう。
アーカイバ希望。
- コマンドラインから展開先の初期値を指定できる
- 展開する前に展開先を問い合わせてくる奴。
- 展開するファイルを個別に選択できる
cite: 日記。
lhmelt "e:\archive.lzh" "c:\some destination\"
erange +v -m -d="c:\some destination\" "e:\archive.lzh"
noah -x -cx "-dc:\some destination\" "e:\archive.lzh"
あたりで一つ。問い合わせてはこず、代わりにファイル一覧表示画面に展開先を 入力する欄がついてるものが混じってますケド。
Noahって相対パスでファイル名渡されても反応できなかったりする。
私のサイトで利用させていただいてるOTDの無料掲示板で、4/1 から 過去ログダウンロード機能が無くなるとの通知メールが届きました。 ということで今のうちに落としておくか…と思って管理ページに入ったら
過去ログのダウンロード 現在休止中です。ご了承ください。
なぬぅ。