Home > Latest topics

Latest topics 近況報告

たまに18歳未満の人や心臓の弱い人にはお勧めできない情報が含まれることもあるかもしれない、甘くなくて酸っぱくてしょっぱいチラシの裏。RSSによる簡単な更新情報を利用したりすると、ハッピーになるかも知れませんしそうでないかも知れません。

萌えるふぉくす子さんだば子本制作プロジェクトの動向はもえじら組ブログで。

宣伝。日経LinuxにてLinuxの基礎?を紹介する漫画「シス管系女子」を連載させていただいています。 以下の特設サイトにて、単行本まんがでわかるLinux シス管系女子の試し読みが可能! シス管系女子って何!? - 「シス管系女子」特設サイト

Page 27/248: « 23 24 25 26 27 28 29 30 31 »

影付きテキストをコピーしても余計な文字列が出ないようにしたよ - Aug 01, 2007

テキストシャドウ原理上、影付きのテキストをコピーしようとした時に、影のために使っているダミーテキストまでコピーされてしまうのが大きな問題だった。フォーカスできなくしたり選択できなくしたりすることはできても、コピーの対象から外すということは、普通にやる限りはどう頑張ってもできない。

で、これをどうやって解決したのかという話なんだけど。

以前XHTMLルビサポートを作った時に、略語のフルスペルをルビで表示するという機能も持たせていて、そうやって表示したフルスペルはどう頑張ってもコピーできないという現象が起こっていたんだけれども、これがヒントになった。

略語のフルスペルの表示のためにルビサポートではバインディングを使っていて、どうやらバインディングで埋め込まれた匿名内容の中のテキストノードは、触れることもコピーすることもできないようだった。そして、XBLの<children/>要素の位置に配置された元々の子要素や子のテキストノードについては、通常通りアクセスできる。

ということは、逆に言えば、コピーの対象にさせたくないテキストはバインディングを使って匿名内容の中に入れてやればよいというわけだ。

ダイナミック疑似クラスの問題はまだ残っているとはいえ、もっとも致命的な問題はこうして解決できたので、やっと胸を張って「Firefoxをtext-shadowに対応させました」と言えるようになったと思う。

一部の疑似クラスと疑似要素に対応したよ - Jul 29, 2007

テキストシャドウを地道に改良し続けている。

  • 一部の疑似要素と疑似クラスに対応
  • インラインで折り返された文字列に対する影の描画を改善
  • 影の表示をSafariの表示に近くなるように調整
  • Firefox 3でも動くようにした

Geckoもtext-shadowに対応してくれ!というバグにこれを貼り付けて煽ってみようかと思ったら、貼られていたテストケースで::first-line疑似要素が使われてて表示できなくてこりゃまずいと思ったんで、元々対応する気の無かった疑似要素と疑似クラスにまで頑張って対応してみた。疑似クラスについてはGeckoすら対応してない物にまで対応してたりして。

続きを表示する ...

拡張機能でtext-shadowを実装してみた - Jul 28, 2007

Text Shadow。名前の通り、CSS3のtext-shadowを無理矢理再現するインチキ拡張機能。もう小学生だなんて言わせないZE!

以下は原理的にどうしようもない問題。

  • 重い重い重い重い重い重い重い
  • 疑似クラス、疑似要素には対応できず(ダイナミック疑似クラス? 何それ? つおい?)ダイナミック疑似クラスと:before, :after疑似要素以外はサポートの目処が付いた。:selection等はこの実装だと実現してもあまり意味がないし、そもそもFirefoxではセレクタ自体が無視されてしまうので、実装はオミットしても良さげ。0.2.2007080702でダイナミック疑似クラスに対応した。
  • 文字選択やソースの表示で、無駄な文字列が大量に出てきてしまう 無駄な文字列までコピーされてしまう問題は0.2.2007080101で解決した。

以下はめんどくさいから実装をさぼってる部分。そのうちどうにかするかもしれないし、しないかもしれない。

  • userContent.css内に書かれたtext-shadowの指定を読めない。 0.2.2007080602で、userContent.cssで書かれた指定も反映するようにした。
  • 名前空間付きのセレクタに対応していない。
  • ウィンドウをリサイズした時に自動で再描画しない。 0.1.2007072902で再描画処理を入れた。重いけど。
  • mm、cm、pt、pcなどの絶対単位に対応していない。絶対単位は72dpi固定でとりあえずサポートした(0.1.2007073101)。ちなみにemとexの算出方法もいいかげんです。
  • @mediaルールやなんかにも対応してません。0.1.2007072801で@mediaに対応した。セレクタの優先順位もまともに評価してません。0.2.2007080101で、セレクタの優先順位も計算するようにした。
  • style属性で指定されたtext-shadowには対応してない。 style属性での指定には0.1.2007072800で対応した。
  • 複数の影の指定に対応してない(まあSafariも対応してないし、そこは許してくださいな) 0.1.2007072802で複数の影の表示に対応した。が、Firefoxの仕様上の問題で3つ以上の指定は正しく認識できない。

セレクタから要素ノードを選択する処理は、selector.jsを丸パクリ。でも組み込んでみたら予想以上にまともに動いてくれなかったので、半泣きになりながら修正してやっとちゃんと使えるようにした。

拡張機能でtext-shadowを実装できないものだろうか - Jul 27, 2007

CSS2からCSS3に移ったtext-shadowは、どうやらFirefox 3ではサポートされない事がほとんど確定したようだ。これでモダンブラウザでドロップシャドウを実現できないのはFirefoxだけになったな(Opera 10とSafariは対応、IEもfilterを使えば可能)。

ということで拡張機能でtext-shadowを実現するという可能性を勝手に模索してみる事にしたよ。

アルゴリズムとしては以前須藤さんがcairoで不透明度を下げた物をひたすらずらして並べるというアレです。

続きを表示する ...

XUL/Migemo 0.7.0 - Jun 28, 2007

XUL/Migemo 0.7.0公開した。このバージョンから「Forked Edition」を外して、おこがましくも本家XUL/Migemoの後継とさせていただくことにした。

前のバージョンからの最大の変更点は、ローマ字と平仮名の相互変換処理部分にRuby/Romkanを移植して採用したこと。これはMigemoの大本であるRuby/Migemoが使用しているライブラリでもある。今までは元の処理に増築に増築を重ねたみたいなややこしい物になってたけど、これで、平仮名からローマ字への逆変換も含めて大部分のコードを共通化できて見通しが良くなった、と思う。ただ、速度面で若干遅くなってないかどうか心配ではある。体感できる程の差は無いと思うんだけど。

Ruby/Romkanのコードって無駄がない感じですごいなーと思った。Ruby自体、エレガントにそういう物を作れる言語なんだな、とも。Rubyでたった7KBちょいの物がJavaScriptへの移植で30KB近くにまで膨れ上がってしまうとは……いや、これは単に僕の技術力がヘボいだけか。

あと、Ruby/Romkan自体はRubyのライセンスに準拠していて、RubyはGPL2ということで、XUL/Migemo全体もこの際だからGPL2にしてみた。

拡張機能の名前と説明文の多言語化 - Jun 27, 2007

のりさんの伝える所によると、Firefox 3ではアドオンマネージャに表示される拡張機能の名前と説明文のローカライズ方法が変わるらしい。新しいやり方の解説がMDCにある。

方式実際の手順とメカニズム利点欠点
現状各ロケール内のpropertiesファイルに名前と説明文をローカライズした物を置いておき、デフォルトの設定ファイル(defaults/preferences/*.js)でそれを参照する。各言語ごとのローカライズ済みリソースが言語ごとに一ヶ所にまとまるので、作者にとっては管理がしやすい。拡張機能を無効化すると、名前や説明文がデフォルトの物(一般的には英語)になってしまい、削除や再度有効化する際に、どれが目的の拡張機能なのか分からなくなる。
今後install.rdfに各言語へローカライズ済みの名前と説明文をまとめて書く。拡張機能を無効化した状態でも、自分が現在使っている設定の言語で名前と説明文が表示される。各言語ごとのローカライズ済みリソースが分散するので、作者に取って管理の手間が増える。

現状の問題を目にする人はあまり多くないかもしれないけど、例えばSplit Browser/分割ブラウザのように英語と日本語のロケールそれぞれで名前を変えているアドオンを使うと、この問題が表面化する。新方式では作る手間や管理の手間が増えるのが気になるが、この問題を解決するためには仕方がないのか。めんどくさいと思う奴はinstall.rdfもビルドスクリプトで自動生成するようにしやがれってことなんだろう。

第5回ブログメディア研究会に参加してきたよ - Jun 22, 2007

ITmedia Biz.ID 第5回ブログメディア研究会に行ってきた。

参加者の簡単な自己紹介の後、最初はMozillaがどういう組織であるかやFirefox登場の経緯などの説明が一通りあって、次に、Firefox 3で検討されている様々な新しいUI、特にダンさんが担当しているPlaces関係の話が、モックアップのスクリーンショットを交えてなされた。

DevConとかに参加してたり最新情報を追っかけたりしてると、このあたりの事はだいぶ「まあ、前にも聞いたよね」な部分があったので、僕は置いてあったコーラやらお菓子やらを一人つまんでた。

その後でやっと、自由質問の時間になったわけなんだけど。

皆さんがまともな質問をする中、一人だけひねくれた質問しまくって浮きまくってた気がする。主賓のダンさんがFirefox 3(のGUIに関わる部分の)開発の担当であって全体の統括だとかXULRunnerだとかGeckoエンジンだとかの担当ではないということだったんだけど、そんな事はお構いなしに全然関係ない事を聞きまくった。まったく迷惑極まりないですね。

続きを表示する ...

XUL/Migemo [Forked Edition] 0.6.xでAPIまわりがゴタゴタしてる件 - Jun 21, 2007

うあああやっちまった。既にAPI使ってくれてる人がいたにもかかわらずAPIを予告なしに変更するというを…… 一応、本家XUL/Migemoと互換のAPI(xulMigemoCoreオブジェクト)も備えていて、そちらは動作を変えないようにしているので、XPCOMを叩かずにそっちを使ってもらっていれば今回の変更の影響は受けなかったと思うんだけど、そんなことを言っても後の祭りというやつで。

なぜこうもグダグダになってしまっているかというと、どうすれば国際化を楽にできるか、サービス同士の絡みを最小限に抑えられるか、という点で自分の中で考えが固まっていなかったからだ。

続きを表示する ...

Page 27/248: « 23 24 25 26 27 28 29 30 31 »

Powered by blosxom 2.0 + starter kit
Home

カテゴリ一覧

過去の記事

1999.2~2005.8

最近のコメント

最近のつぶやき