Home > Latest topics

Latest topics 近況報告

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

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

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

Page 106/248: « 102 103 104 105 106 107 108 109 110 »

タブのツリー表示 - Oct 17, 2007

ようやく手を着けることにしました。TBEの機能を分割してFirefox 2向けに移植する作業の続きの中で一番めんどくさそうな、タブのツリー表示。Tab KitとかTab Treeとか、すでに新しくて素晴らしい物がどんどん出てきてるんだけど、まあ、マイペースで行くことにします。

(現状のスクリーンショット) サムネイルは情報化タブのもの。タブの縦置きは現在はVertigo任せ。公開版ではもちろん自前で縦置きするようにする予定だけど、今は「ツリー表示」のための部分に集中して開発するために敢えて放置してる。

親子関係の構築にあたっては、TBEでは「タブを開く」処理を乗っ取って引数でゴチャゴチャやってたんだけど、Tab Treeの発想が物凄くシンプルだったので、試しにそれベースで実装してみている。

TODO(優先順位が高い物から順に):

  1. targetwindow.open()で開かれたタブも親子関係の中に組み入れる→実装した
  2. タブを閉じた時の、次にフォーカスするタブの制御→実装した
  3. タブの親子関係をセッションをまたいで保持する(開き直したタブについても親子関係を自動的に復元する)→実装した(多分)
  4. ツリーの折り畳み→実装した
  5. 畳まれたツリーを閉じたら子孫のタブも全部閉じる→実装した
  6. 開かれたツリーで親のタブを閉じたら、子孫のタブのレベルを一つ繰り上げる→実装した
  7. Windowsエクスプローラのツリーのような自動開閉→実装した
  8. マルチプルタブハンドラとの連携(畳まれたツリーに対応するために特別な処理を書かないといけない)→実装した
  9. 畳まれたツリーについて、子孫に含んでいるタブの数を表示する→実装した
  10. ドラッグ&ドロップでの、ツリーの動的な変更→実装した
  11. タブの縦置きの自前提供(動的な幅変更も含む)→実装した
  12. タブを右に表示する機能→実装した
  13. インデント幅の設定機能→実装した:ユーザがいちいち人力で変更するなんてあほらしいので、インデント幅を自動調整するようにした(初期値は変更可能)
  14. 画面外にタブが開かれた場合の自動スクロール→実装した
  15. ウィンドウをまたいだタブのドラッグ&ドロップ

TBEに存在した、別のドメインのページを読み込んだ時にタブの親子関係を自動的に破棄するとかの細かい部分については、実装してみてはいたものの自分が使ってる限りでは全然役に立ったことがないので、サクッと省略の方向で。

- Oct 16, 2007

亀のように耐えるで思い出したけど、亀田一家はこの先どうなるんだろ。

ああいういわゆるDQNな人というのは僕のような人間にとっては天敵と言っても良くて、それが非難されるのは下衆な感情ではあるけれども気分爽快スカッといい気味だぜてなもんなんですが、TBSとか(またTBSか)と共犯関係だったのに一人(一家)だけワリ食わされて放逐されるという様子にはなんとも言えない後味の悪さを感じる。

キモくて駄目なヲタとTBSと初音ミク - Oct 16, 2007

アッコにおまかせで初音ミクがとりあげられたけど酷い内容だったという話のトラックバック一覧から辿った先にあった、映像中でキモヲタの代表という感じで映されていた人の発言のまとめを見て思ったこと。(ちなみに「事件」のあらましはGIGAZINEのまとめがほどよくまとまっていて読みやすい。)

でぶこんだのMozilla 24だのにプレゼンテーターとして参加していながらもえじら組の活動を性懲りもなく続けていたりする僕なんかは、こういう話を見ると戦々恐々とせずにはおれません。いつ僕のせいでFirefoxユーザ全体がキモヲタ扱いされてもおかしくない状況。とかいいつつもえじら組を捨てる気はさらさらなかったりするんですけどね! ロリフォックスという前例もあるしね! いつかふぉくす子テーマを配布することが夢です!(そのまま夢で終わらせるべき)

しかしこのtaskという人のグダグダぶりもまた他人事とは思えないなと思った。というか同じ状況に置かれたら十中八九同じことをする自信がある。多分僕とこの人は似たようなタイプの人間なんじゃないかなあと思う。どうしてそういう風にしてしまうのか我が事のように心情を推測できてしまう。この人は明日の僕かもしれないのだ。

「スタッフが置いていった台本」について「アップしろアップしろ」と散々言われてもグズグズと出し渋ったのは、テレビで自分のキモいヲタっぷりを晒してしまったという「大失態」にビビってしまって、これ以上「罪」を重ねることを恐れたからだろう。その「罪」が誰に対しての物で、その「罪」の重さと「出さないことの罪」の重さとを正しく比較することもできなくなっていたんだろう。

「僕が『抗議』をしないことによって迷惑を被る人」は存在しないでしょ。
そうではなく「僕がいたことによって被害を被った人」が存在するのは認識してるけど。

こういう論理の破綻した言い訳を延々続けるのも、つまりは「自分自身はこれ以上何のアクションも起こしたくない」という風に心底ブルってビビってしまってるからこそだろう。あらゆる現実を「自分が動かなくても良い方向」に向けてねじ曲げて解釈している。動かなければこれ以上罪を重ねることはない。自分一人が叩かれ続けることが罪の償いである。そういう、自己満足の考え。

そうして亀のようにひたすら耐える。そのうち脳内麻薬が出てきて神経が麻痺してきてハイになってくる。だから

>>207 VIPで・・・・マジメ・・・・・・?

こんな開き直りもしてしまう。

そもそもこんな「大失態」を演じてしまったのも、褒められておだてられて調子に乗ってしまったからだ。僕自身がそうだから分かる。僕らはいつも鬱屈した感情を心に秘めている。自分がやっていることが世間から何ら評価されないことに苛立ちを感じている。ショボい「ナンチャッテ自己表現」しかしていないくせにいっぱしの表現者を気取っていやがる。卑屈なことを言うフリをして内心では「俺様はもっと賞賛されるべきだ」とおこがましくも考えている。不健全な状態。膨れあがる自尊心と欲望で高まる内圧を、「現実は冷たいんだよ」という理屈で無理矢理フタをして押さえ込んでいる状態。そこにかけられる甘いセリフ。高まりきった自尊心がピーと音を立てて一気に吹き出す。

そう。たった一カ所だけ認められた、ほんのそれだけで、ああこの人は俺のすべてを認めてくれるんだ、だなんて勘違いをしてしまう。今まで全然認められていなかった反動がそこに吹き出す。

その結果がああいう醜態に繋がる。

要は、アレだよ。普段無口でロクに会話に乗ってこないくせに、ヲタな話題が少しでもふられると、いや、場の誰かが話題に出しただけでも、途端に元気になって饒舌になって、頼まれてもいないのにベラベラベラベラといつまでも知識自慢を垂れ流す。あれの程度が酷くなっただけで、質としては同じ物だ。

起こるべくして起こった悲劇。避け得なかった悲劇。そんな風に思うよ。

そんな風に歪んだ内圧を高めなくて済む、自尊心を満たしたい時に満たしたいだけ満たせるって事。それが、「非モテ」の文脈で言うところの「モテ」の一側面なのかもしれない。そういう意味において、ある程度の「モテ」を体験できた(ている)お陰で、僕はまだバランスをギリギリ保っていられてるんじゃないかと思う。それらが失われればたちまち僕も「あちら側」に転げ落ちていくことだろう。かつていた場所に戻ってしまうだろう。今ですら、水を向けられれば調子ぶっこいていらんことまで喋る性質は、これっぽっちも直っていないのだから。

洗濯ばさみ - Oct 14, 2007

最近、洗濯ばさみが次々と戦線から脱落している。朝洗濯物を干して夜帰ってきて気がついたら砕け散ってたとか、洗濯物を取り込もうとして洗濯ばさみの端に手をかけた途端に砕け散ったとか。壮絶な最期だなあ。引っ越してきた当初から使ってるものだから1年と半分か。よく頑張ってくれたと思うよ。

MGユニコーンの全貌 - Oct 13, 2007

静岡で行われてるホビーショーで、MGユニコーンガンダムのテストショットもしくは製品版に限りなく近い物がお目見えしたようですね。相変わらず顔の変形が分からない(頭部側面パーツは一旦外して向きを変えて付け直す、ツノは変形しない白バージョンもおまけで付く、という話がどこかに書かれてた)けど、いやあ、たまんないなこれは。マジ買う。絶対買う。

14日追記。リンク先の写真の物はテストショット(金型段階まで進んだもの)ではなく、これも形状試作(ワックス製ラピッドプロトタイピングとかプラ材削り出しとか)なんだそうな……製品版はここからまたプロポーションとか変わるんかな?

15日追記。顔の変形は二つの顔がまるごと入れ替わる形式だそうです。

XULのtoolbarbuttonとCSSのopacityとpositionで嵌った - Oct 12, 2007

昨日XULとCSSであれこれ頑張ってみていて浮き彫りになってきた、XULとCSSのバッドノウハウの話の続き。

前のエントリで書いたことを踏まえて、toolbarbuttonの中のlabelを、XBLとstackを使って影付きテキストに置換するということをやってみたんだけど、そうすると今度は、ボタンを押しても何も反応しなくなってしまったじゃあないですか。こりゃ大変だ。

よーく観察してみると、ボタンのラベル文字列の部分はクリックしても無反応(ボタンの外観はちゃんと「押した」風になるんだけど、commandイベントが発行されない。コードを色々書き換えてみたけど、clickイベントすら発行されなかった。)だけど、それ以外の部分――ボタンの枠線とラベル文字列の間の余白部分あたりをクリックすると、ちゃんとボタンを押したものと認識される、ということに気がついた。ということはやっぱり、stackを使って影付きテキストにしたlabel要素が癌だってことだ。

んで条件を変えつつ色々試してみたら、以下のことが分かった。

  • 半透明にしたlabel要素をクリックしても、親のボタンをクリックしたとは見なされない。
  • 半透明じゃなくても、positionがstatic以外になっているlabel要素は、クリックしても、親のボタンをクリックしたとは見なされない。

言い換えると、「完全に不透明で、且つ、positionがstaticであるlabel要素」をクリックした時にだけ、そのtoolbarbuttonがクリックされたものとして正しく認識されるようだ、ということ。

というわけで苦肉の策として、ボタン上にポインタが乗っている時(:hover状態)はpositionもopacityも初期値(staticで不透明)にする、という風にしてみたところ、やっとちゃんとボタンをクリックできるようになってくれた。positionがstaticということはz-indexでの重ね合わせ順の制御が効かなくなるんだけど、影の方のopacityが1になればstackの原則通り内容は文書中の登場順に描画されるようになるので、トータルでは問題なくなる。:hoverの時だけ影が濃くなる(不透明になる)のは、まぁ、:hover時の特別なハイライト表示にも見えるので、結果オーライと言えよう。

ちなみに、この問題はtoolbarbutton要素だけでなく、menubar要素直下のmenu要素内にあるlabelについても起こる。こちらについても同じような対策で行けるかと思って、事実ほとんどの所はそれで良かったんだけど、:hoverの時だけということにしておくと、展開されたメニューを選択した後に再びmenuの部分にポインタを載せた時に、positionとopacityのリセット用指定が反映されないという現象が起こってしまったので、代わりに[_moz-menuactive="true"]という具合に内部処理用の属性を使ってみることにした。

そんな感じで、現行Geckoにはこういういやーなバグがまだまだ潜んでいて、案外苦労してしまうことが少なくない。そこら辺が改善された新しいバージョンっていつ出るのかなあ……

XULのstackとCSSのopacityで嵌った - Oct 12, 2007

昨日XULとCSSであれこれ頑張ってみていて浮き彫りになってきた、XULとCSSのバッドノウハウいくつか。

  1. XULのstackとCSSのopacityの微妙な関係について
  2. XULのtoolbarbuttonとCSSのopacityとpositionの微妙な関係について

まず一つ目。一般的なWebページ制作では、要素同士を重ね合わせるにはCSSのポジショニングを使うのが一般的で、XULでも同じ方法を使えるんだけど、もう一つの方法として、XULにはstackという要素がある。

通常、XULではhbox(内容が横に並ぶボックス)またはvbox(内容が縦に並ぶボックス)の2つのボックスをコンテナとして使い、縦横二方向のボックスの並びだけでGUIを作る、というのが原則となっている。この原則を覆すのがstackというコンテナ要素だ。多くのXULのコンテナ要素においては、内容に含めた要素のボックスが縦または横に並ぶのに対し、stackは、内容に含めた要素のボックスが同じ座標に重ねて表示される、という特徴がある。

チュートリアルではこれを使って影付き文字を作る例を示しているけれども、これを見て当然思いつくのが、影を半透明にして背景に自然に馴染ませたいという要求だろう。


<stack>
  <description value="Shadowed"
               style="color: black; opacity: 0.5;"
               top="1" left="1"/>
  <description value="Shadowed"
               style="color: white;"/>
</stack>

ところが、この例は実際には意図通りに表示されてくれない。Geckoのバグだと思うけど、stackの中に一つでも半透明の要素があると、stack全体が半透明になってしまうのである。つまり、ここでは影だけを半透明にしたいのに、実際には前景の文字まで半透明になってしまって却って字が読みにくくなる。

で、色々試してみた結果、stackを二重にするとこの問題を回避できるっぽい、という事が分かった。


<stack>
  <stack>
    <description value="Shadowed"
                 style="color: black; opacity: 0.5;"
                 top="1" left="1"/>
  </stack>
  <description value="Shadowed"
               style="color: white;"/>
</stack>

こうすると、内側のstackは全体が半透明になってしまうけど、外側のstackにはその影響は及ばないので、影だけを半透明にできる。(ここでは影のテキストが一つだけしかないけど、実際にはText Shadowと同様の方法で複数の薄い影をずらしながら重ねたかったということなので、stackを二重にしている。)

ただ、今度は入れ替わりに、要素の重ね合わせの順番がおかしくなるという問題が起こってしまった。XULのstackは先に入っている要素ほど下に、後に入っている要素ほど上に描画されるはずなんだけど、どういうわけか、半透明にした要素は不透明の要素よりも上に強制的に描画されてしまうようだ。

(……と思ってたんだけどもしかしたらこれは勘違いかもしれない。stack内の要素はtop属性とleft属性で場所を動かせるんだけど、もしかしたら、これらの属性がある場合は強制的にその要素がposition: relativeにされてしまって、通常のposition: staticな要素の上に表示されるようになってしまった、ということだけなのかも……これはまだ検証してない。)

そこでさらに、z-indexを使って重ね合わせの順番を指定してみたところ、やっと「半透明の影の上に不透明の文字を重ねる」という結果を得ることができた。


<stack>
  <stack style="position: relative; z-index: 1;">
    <description value="Shadowed"
                 style="color: black; opacity: 0.5;"
                 top="1" left="1"/>
  </stack>
  <description value="Shadowed"
               style="color: white; position: relative; z-index: 2;"/>
</stack>

position: relative を指定しておかないとz-indexの指定が効かない(z-indexはpositionがstatic以外の要素にしか効果がない)ので、それもセットで指定してある。

これでやっと問題を解決できたか、と思ってたんだけど、あろう事か今度はまたさらに別の問題にぶち当たってしまった。というところで、話は次のエントリへ続きます。

機動戦士ガンダムUC - Oct 11, 2007

MGユニコーン展開状態のデザイン画が出た時から買う気満々なんだけど、いいかげんストーリー知らないのにメカだけ追っかけてるってのもどうかと思ったので、買ってきたよ小説。

機動戦士ガンダムUC(ユニコーン) 1 ユニコーンの日(上)Amazon.co.jp

マンガ単行本と同じサイズなので字が大きいというのは、近視の僕には地味にありがたい。本棚を占領して困るのはマイナスだけど。

過去のガンダムシリーズ本編で語られていないような設定だけの話とかが色々盛り込まれているだけでなく、さらに補強されてたりして(クロスボーン・バンガードのロナ家の元になったブッホ・コンツェルンがU.C.0096時点ではまだブッホ・ジャンク・インクという一介のジャンク屋でもうコンツェルンでしたごめんなさい(後で資料を確認したらU.C.0080年代初頭に既にコンツェルン化してたわ)、アナハイムの下請けをやってるとか、考えてみたら確かにそういう関係にあってもおかしくないよなあ)、ニヤリとせずにはおれませんね。僕みたいな設定ヲタ系のガノタには、情景描写の細かい小説はやっぱ楽しい。オフィシャルサイトを見てみたらスペースコロニーの作り方の図付き解説なんかもあったりして、大喜びですよ。

2巻も読む。

12日追記。2巻も読んだ。平和があっけなく崩れ去り、恐ろしい速度で混乱が場を支配していく様子に、ドキドキハラハラ(古)しまくり。3巻が待ち遠しいわ。

XPIの生成とハッシュ値の取得とRSSの生成の自動化 - Oct 10, 2007

XPIパッケージ生成用のバッチファイルとかシェルスクリプトとかを更新した。

  • プラットフォームごとのファイルを含めた拡張機能に対応。
  • 調べてみたらLinuxとCygwinには最初からファイルのSHA-1ハッシュを取得するsha1sumというコマンドがあったので、それを使って、XPIパッケージの生成時に同時にSHA-1ハッシュも出力するようにした。
  • Split BrowserのページなどのHTMLからRSSを自動的に生成(更新)する秀丸マクロについて、SHA-1ハッシュの値も取り込むように改良して、リポジトリに追加した。
  • sedを使って、Mozilla Add-ons用のXPI(updateURLとupdateKeyをinstall.rdfから削除した物)も同時に生成するようにした。

Windows用のバッチファイルはCygwinにおもくそ依存してます。Bash用シェルスクリプトは最初の行のパスさえ直せば多分他の環境でも普通に使えると思う(Ubuntu 6.06ではそのまま動いてる)。使い方は前に書いた解説を参照してください。

秀丸マクロ(Sync.macxul_updates.macxul_updates2.mac)はいずれもパスやファイルの構成を決め打ちで作ってるんで汎用性はないけど、まあ、似たようなことをやりたい人の参考になれば幸いです。(この辺もそのうちもっと汎用的なバッチファイルなりシェルスクリプトなりに置き換えたいんだけど……)

sedの使い方が少し分かってきたので、もうちょっと複雑なことができるようになりそう……かも?

処女 - Oct 08, 2007

アクセスログを見るとこのサイトへのアクセスの中で一番多い検索キーワードが「処女」なんですけど、それってどうなん?

Page 106/248: « 102 103 104 105 106 107 108 109 110 »

Powered by blosxom 2.0 + starter kit
Home

カテゴリ一覧

過去の記事

1999.2~2005.8

最近のコメント

最近のつぶやき