Home > Latest topics

Latest topics 近況報告

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

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

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

宣伝2。Firefox Hacks Rebooted発売中。本書の1/3を使って、再起動不要なアドオンの作り方のテクニックや非同期処理の効率のいい書き方などを解説しています。既刊のFirefox 3 Hacks拡張機能開発チュートリアルと併せてどうぞ。

Firefox Hacks Rebooted ―Mozillaテクノロジ徹底活用テクニック
浅井 智也 池田 譲治 小山田 昌史 五味渕 大賀 下田 洋志 寺田 真 松澤 太郎
オライリージャパン

Page 69/239: « 65 66 67 68 69 70 71 72 73 »

タブ系拡張機能 - Oct 16, 2008

そんなわけで(?)、TBE3に含まれる4つともアップデートした。

情報化タブの機能として、Firefox 3.1向けに、最後のタブのクローズボックスを強制的に表示させるオプションを加えた。本体の方でまた隠し設定がどうとか色々変わりそうな気もするけど、とりあえず現時点での仕様に合わせておく。不要になったら機能自体削除の可能性もある。

ソース表示タブは、機能は変わってないんだけど、動的に書き換えてるメソッド類がMinefieldでだいぶ変わってるようだったので、その修正が主。

マルチプルタブハンドラは、ツリー型タブの修正で書いたのと同じ要領でMenu Editorとの競合を解消したり、ツリー型タブと組み合わせた時の地味なトラブルを直したり、といった程度。

ツリー型タブ - Oct 15, 2008

ツリー型タブ 0.7.2008101501。前の版から4ヶ月も経ってた。使ってて見つけたバグはちまちま直してたんだけど他のユーザの人から英語で寄せられるバグ報告を放置放置でほったらかしてる間にまたずいぶん溜まってしまったのでちょっと頑張って処理してみた。FireGesturesの仕様変更への追従なんてもう何ヶ月も前の変更だから、もう意味が無くなってるかもしれないけど……まあ誰かに言われたら直そう(ぉぃ)。

Menu Editでタブのコンテキストメニューの項目が無限増殖する問題は、多分、分割ブラウザとの組み合わせを見越して各tabbrowser要素ごとにポップアップメニューの項目に一意なid文字列を生成するようにしていたせいだと思う。<tabbrowser id="content"/>なやつだけ特別に固定のidにするようにして、手元で試した限りでは無限増殖の問題は起こってない。マルチプルタブハンドラでも同じ問題が起こってるはずなので(報告すでに受けてたかも。あまりに多すぎて埋もれてしまってる可能性大。)、これは次のリリースで同じ修正を入れます。

Tab Mix Plusとの組み合わせで色々問題が起こってるという報告を受けてるけど、設定項目が多すぎてどの組み合わせで問題が起こるのか分からないのでお手上げです。とりあえず簡単に手元で試して再現しなかった物は放置。

カレースープ - Oct 13, 2008

このところコンビニ飯かスーパーの弁当かカップラーメンかレトルトカレーかという酷い食生活が続いていたので、一念発起して昨日タマネギとニンジンとジャガイモとカボチャを買い込んできた。味噌汁にしようと思って冷蔵庫の中を見たら、味噌がちょっとしかない(買い忘れてた)。ブイヨンは開封済みの箱の中身が1袋しかない。というわけで(?)、親が以前送ってくれて少しだけ使ったけどそれっきりになっていたカレー粉を使ってカレースープにしてみることにした。カレーライスにするつもりは最初から無いので、ブイヨンが足りない所を埋める感じ。

切った野菜とブイヨンとカレー粉と水を鍋にぶち込んで煮ること10分ちょい。できた。カレー粉の袋を見たら、カレーの作り方としては一度野菜類に全部火が通った後で火を消してから入れろ書いてあったんだけど、入れた後に気がついたのでもう後の祭り。

カボチャに皮は一応そぎ落とした後「でももったいないな」と思ったので結局全部入れた。緑黄色野菜の「緑」の部分だし。

肉っ気は皆無です。いつもそう。

カレー粉入れた時点で味の方はまあまあ(ジャングルで生き残るのにはカレー粉があればいい、ととある傭兵さんが言ってましたが至言ですね)なんだけど、人にお勧めしたり振る舞ったりする料理ではないよなあこれは。ただ空腹を満たすためだけの料理。

あと親が送ってくれた古々米を炊いて食べていますが、親は「餅米を加えるかなんかしないとおいしくない」と言ってたけど、僕の舌では、違いは分かるけど別にこのままでいいじゃんという感じです。経済的な舌ですね。

はてな投げ銭 - Oct 11, 2008

めさめさ久しぶりにはてなポイントの残高ページを見たら買った覚えもないのに10000ポイント近くあってビビった。履歴を見たら、一人で8000ポイントも投げ銭してくれてる人がいた。何という富豪投げ銭。残りも他の人による投げ銭。自分で買ったのって義援金送る時くらいで、その時も速攻全額寄付に回してたから、今あるポイントは全部貰い物ということになりますな。

対応してるページでは、はてなブックマークでブックマークする時に任意の額のポイントを送信できるので、ブックマークとしてクリップしておこうというつもりがない場合でも、書いた人への感謝とかそういうのを物として送る目的で、今後は僕も積極的に投げ銭していきたいなと思いました(あと寄付とか)。って、偉そうなこと言ってるけど元手は上記の通り貰い物なので自分は一銭も出してないわけですが。

ルーラーバーで折り返された行のカーソル位置を正しく表示できるようになったよ - Oct 11, 2008

ルーラバーだとやっぱり行ったことのある場所に行くあの呪文しか思い浮かばないという声があったので、日本語名をルーラーバーに変えた。

そのルーラーバーなんだけど、Rulerrrrrでもあった「折り返された次の行の先頭にカーソルがある時や行末にカーソルがある時にルーラー上の現在位置表示がおかしくなる(カーソル位置の計算に失敗する)問題」に真面目に取り組んで、0.2.2008101101でだいぶ改善した。

背景

ルーラーバーもRulerrrrrも、現在のカーソルの位置を計算するのには選択範囲を使っている。FirefoxやThunderbirdではカーソル位置をJavaScriptから直接取得することはできないんだけど、現在カーソルがある位置は長さ0の選択範囲として取得できるので、選択範囲が含まれているノードとか選択範囲の開始・終了位置などからどうにかこうにかして「カーソルより前に何文字あるか」を数えて、カーソル位置を割り出している。

行末にカーソルがある時

行末にカーソルがある時にカーソル位置が0(行頭)と判定されてしまっていたのは、この選択範囲から選択範囲が含まれているノードを取得できないせい。どういう事かというと、行末にカーソルがある状態というのは「テキストノード」「改行のBR要素」「テキストノード」という順番にノードが並んでいてBR要素の直前に長さ0のRangeがあるという状態で、「選択範囲が含まれているノード」は前後の要素やテキストノードではなくいきなりBODY要素になってしまう、ということでカーソル位置の求めようがなくなっていた。

そこで、TreeWalkerを使って各行のテキストノードやBR要素を走査し、compareBoundaryPoints()でそのノードがカーソルに隣接しているかどうかを調べる、という風な処理を入れてみた。これにより、行末にカーソルがある時でもカーソルより前にある文字を数えられるようになった。

折り返された行の行頭・行末判別

折り返された行の処理はもうちょっと厄介だった。普通に考えたら、「カーソル位置より前の文字数÷折り返し文字数 の余り」でカーソルの現在位置が分かるはずなんだけど、実際にはこれだけじゃダメだった。FirefoxやThunderbirdのエディタ機能では、折り返された行の行末にカーソルがある時に右キーを押すと、次の文字(折り返された次の行の先頭文字)の後の位置にカーソルが移動するのではなく、次の文字の前・仮想的な改行文字の後にカーソルが移動してしまう。折り返された後の行頭で左キーを押した時も同様。なので、いくら文字数ベースで計算しても、今「折り返された行の折り返し直前にカーソルがある」のか「折り返された後の行の先頭にカーソルがある」のかは分からない。

幸い、選択範囲の変更(=カーソルの移動)を監視する時にはその選択範囲の変更が発生したユーザの操作の種類がある程度分かる。なので、マウス操作でのカーソル移動については、行の左の方でのクリックでカーソルが移動した時は行頭、そうでなければ行末と判定するようにした。また、キー操作でのカーソル移動については、「直前にいた位置が行頭・行の中程・行末のどれだったか」と「どのキーが押されたか」の組み合わせを元に、今カーソルがどの位置にあるかを推測するようにした。

英単語等があるせいで予定の文字数より前で折り返しが発生した時や、HTMLでプロポーショナルフォントが使用されている時、画像がある時などについてはもう完全にお手上げです。カーソルの位置をピクセル単位で取れるようなAPIが付いてくれないことには、もうどうにもなりません。

Thunderbirdにルーラーを表示する「ルーラーバー」を作ったよ - Oct 10, 2008

このサイトの方にまだ配布ページ作ってないのでとりあえずMozilla Add-onsに置いてみました。「ルーラ」と書くか「ルーラー」と書くか迷って「ルーラ」にしてしまいました。知ってる土地まで戻る魔法ではありません。→0.2で「ルーラーバー」に名前を変更したのでこのエントリの表記も「ルーラー」に統一しました。

見ての通り、Rulerrrrrのクローンです。公開終了しちゃってる上に特にオープンソースなライセンスが設定されていたわけでもないので、Rulerrrrrの改造ではなく一応フルスクラッチです。以下の点がちょっとだけRulerrrrrよりパワーアップしてます。

  • 折り返されたテキストの2行目以降にカーソルがある時は、ルーラー上の強調箇所も折り返し後の位置になります(設定でRulerrrrrと同じ動作にもできます)。
  • 改行箇所でテキストノードが分割されるせいでたまにルーラーの強調表示の位置がおかしくなる問題については対処済みです。
  • 設定ダイアログから目盛りの表示間隔とかをカスタマイズできます。フォントによってルーラーと文字がずれる場合は、適当に拡大率を調整してください。

空行から左キーを押して一つ前の行の末尾に移動する時に、ルーラー上の強調表示がちゃんと追従してくれないとか、右キーを押して行末→行頭に移動しても強調表示は行末側に残ってしまうとか、Rulerrrrrでも見られた問題がこいつにもあります。そのうちなんとかしたいですね。→0.2.2008101101で改善しました

ていうか誰かすでにクローンを作ってるんじゃないかと思ったら案外誰もやってなかったみたいで驚いた。

メソッド名は三人称単数形にするべきかどうか - Oct 08, 2008

例えばW3C DOMでは、子ノードがあるかどうかを調べるメソッドの名前はhasChildNodes()(三人称単数形)だけど、子ノードを追加するメソッドはappendChild()(不定形、原形)となっている。どうしてこのようにバラバラなのか? どっちかに統一しないのか? という話。

Matz氏はRubyのメソッド名から三人称単数形を廃して原形に統一したいらしい。上に挙げたような例なら、hasChildNodesではなくhaveChildNodesという感じ。

日本語で書かれた命名規則の文書としては、ググってみたらOkapi Projectの命名規約というのが引っかかった。ここではブール値を返すメソッドは三人称単数形で始めるようにとされている。でも、「何故そう決めたのか」は書かれていない。

そもそも英語圏の人はどう考えてるんだ? と思って「naming convention verb method」とかでググってみたところ出てきたセントラルワシントン大学のドメインで公開されているJavaの命名規則のページには、こう書かれてた。

Begin method names with a strong action verb (for example, deposit).

(snip)

If the method returns a boolean value, use is or has as the prefix for the method name.

何の説明もなく、ブール値を返す物は三人称単数形で、そうでない一般的なメソッドは原形で例が挙げられている。何故そうなのか、ということが全く述べられていない。ネイティブスピーカーの人にとってこれらの使い分けはあまりに自明すぎて、敢えて説明する必要が感じられないということなのだろうか。

僕の場合は、自分でメソッド名を考える時も、Okapi Projectの規約とだいたい同じようなルールで考えてる。そしてこのルールは上記のセントラルワシントン大学のルールとも同じだ。深く理由を考えたことはなかったけど、どうしてこれで違和感が無かったのか、改めて考えてみた。

なんとなくだけど、何かをする系のメソッドを使った文、例えばparentNode.appendChild(newChild)だったら、これに対応する英文というのは Hey, you "parentNode"! Append "newChild" to yourself as a child! みたいな「命令文」で、状態を尋ねる系のメソッドを使った文、例えばsomeNode.hasChildNodes()だったら、対応する英文は He "someNode" has some child nodes. みたいな「普通の文」なんじゃないのかなー、と思ってる。逆に言うと、これらの英文を思い浮かべてコードを書くと、自然に、普通のメソッドは原形で状態を尋ねる系のメソッドは三人称単数形になるんじゃないのか、と。He "someNode" have some child nodes. とは書かないし。

そう考えると、Matz氏は「対応する英文」をイメージしないで単純に単語レベルでメソッド名を認識していて「原形と三人称単数形が混在してるのは統一感がない。メソッド名から三人称単数形を廃して原形に統一したい。」という風に考えてるんじゃないかなー、と、僕には思える。その発想が、ネイティブスピーカー的ではないんじゃないかなー、と。

僕は、メソッド名とかで英語を使うんだったらそれを母語としている人達の発想に一番しっくりくる命名規則を使うのが筋なんじゃないかと思う。ネイティブスピーカーがこれでイイって言ってんのに母語にもしてない日本人が「こうあるべきだ」と言っても説得力がない、と思ってる。日本人的・日本語的発想にこだわるんであればそれこそなでしこみたいに日本語ベースの言語にするのが筋なんじゃないの、と。

まあ、ここで参照した命名規則はJavaのものだから、上記の発想はあくまで「Java使いの英語ネイティブスピーカーの発想」とまでしか言えなくて、「大多数の英語ネイティブスピーカーの発想」がそうであるかどうかってのは分からないんだけども。

絵を描くことへのスタンスの変化 - Oct 06, 2008

Jinkunさんに言われたこと。

僕は、JNK Worldに顔を出していた10年前くらいが一番たくさん絵を描いていた時期だと思う。今では、年に2回、コミケに合わせてもえじら組の活動をやってるくらいだ。当時色々と偉そうなことを言ったりしたりしていた僕が、今そんな体たらくであることを知ったら、Jinkunさんも川家さんも僕を軽蔑するんじゃないか。そんな風に思っていた。

でも、Jinkunさん曰く、今の僕の方が楽しそうだという。

そういう風に言われたことの理由は、多分、絵を描くことに対する意識の変化があるんだろうと思う。

当時の僕は「これしかない」と思っていた。絵を描くこと以外で、世界に確かに自分が生きたという足跡は残せないと思っていた。だから自分で色々縛っていた。右向きの顔を反転無しで描けなくてはならない。エロに頼ってアクセス数や販売部数を稼ぐのではなく、絵の質や世界観やそういったもので支持を得なくてはならない。誰からも認められる物を目指さなければならない。高尚でなければならない。そんな風な拘りがたくさんあった。今から思えば、下らない拘りばかりにも思えるけれども、当時は、真面目に拘っていた。

でも、興味の中心がWeb標準とかWeb技術とかに移ってしまって以降、絵を描くことに対して割く時間が減ってしまった。いや、もしかしたらそれは逆で、自分より下の世代で自分よりずっと情熱がありずっと絵が上手い人達がどんどん出てくるのを見て、「もう敵わない」と悟ってしまい、絵の世界から逃げてしまっただけなのかもしれない。

転機になったのは、もえじら組の活動だったと思う。

哀さんの勧めでIRCNetの#汚れの巣や#順列都市に常駐するようになり、いつかの「CSSコミュニティ」の人達と気軽に連絡を取れるようになり、Junさんとinugamixさんの結婚があり、inugamixさんのふぉくす子がその界隈である種のアイドルとなり(良い子はW3C子の事には触れちゃダメ!)、界隈内外のいろんな人がふぉくす子の絵を発表するようになり、ここは誰かが音頭を取って同人誌でも一発作るべきなんじゃね?という空気になって、コミケ出展経験があり自分で絵も描いており一番時間的に余裕があった僕が首謀者となって、成り行きでプロジェクトが始まって。ネトランがふぉくす子をフィギュア化し、気合いの入ったコスプレ衣装まで制作されて、祭りの空気はどんどん盛り上がり。僕は物凄く久しぶりに、ファン活動として絵を描くことの楽しさというものを感じていたのだと思う。

触れちゃダメ、と書いたけどやっぱり触れる。W3C子での失敗はやはり大きかったと思う。ビジュアルイメージが無かったものにビジュアルイメージを付ける、キャラクターをデザインする、という事における「敗北」。僕のやり方が色々まずかったのだと思うけれども、僕がビジュアル化したW3C子は僕のせいで死んでしまい、inugamixさんがビジュアル化したふぉくす子はいろんな人に愛された。その時悟った。僕には、広がりを生み出すオリジンを作ることはできない。そういう才能がない。だから、誰かが作ったオリジンにぶら下がって、それをネタにして楽しむことしかできない。僕は無力だ。僕にはそもそも無理な事だったのだ。いいかげん、身の程を知り、分をわきまえるべきだ。

それからは、気負いがだいぶなくなった、と思う。下手でもいい、上達してなくてもいい、絵柄が古くてもいい。下品でもエロでも全然構わない。好きなキャラを好きなように描いて、同じようなことをしている人達の祭りに参加し、祭りの空気を楽しむ。自己表現のための・自己顕示欲を満たすための手段、生贄としてではなく、それ自体が目的である、絵を描くこと・漫画を描くこと・そしてそれを発表することの、そのものの楽しさ。そういうことを今は感じられているんじゃないか、と思う。

JNK Worldの集い - Oct 06, 2008

今から10年近く前、僕がネットの利用を始めて、当時のISPのWebスペースでWebサイトの公開を始めたばかりの頃に、どういう経緯でかよく行くようになったサイトがあった。その名はJNK World。管理人のJinkun氏が運営する、掲示板や画像素材等コンテンツが盛りだくさんで、2DCGをやる人達の情報交換やコミュニケーションの場として多くの人が出入りしていた、大規模なサイトだった。と記憶している。

そのサイトを通じてロック君や飛鳥と知り合い、それ以前から交流があった人達と共に、僕にとっては初めての「オフ会」をして、サークル「堕」を作ることになったきっかけになった。川家さんなどの実力のある人との交流もあった。絵を描く人としての自分について、漫画研究部と同じかそれに次ぐくらいのウェイトを占めていた存在だった。そんなサイト。

興味の中心がWeb標準やWeb技術に移った頃から僕はそこに行かなくなってしまったけれども、僕以外の人達の中には、当時からの夢を叶えた人達もいる。上で名前を挙げたロック君は絵描きの人に弟子入りして修行し、今では某ゲーム会社でキャラクターイラストを描いたりムービーを作ったりするプロフェッショナル。飛鳥はプロの元でアシスタントとして修行し、もうすぐ漫画誌で商業デビューするらしい。彼ら以外にも、当時JNK Worldにいた人達で、そんな風に努力を重ねて成功した人は他にもいるんじゃないかと思う。

川家さんが人生の転機を迎えることになって、かつてJNK Worldに集まっていた人達の飲み会というのが先月行われたらしい。参加したロック君曰く、川家さんもJinkunさんも(会ったことはないけど)僕のことを覚えていたそうだ。びっくりだ。当時僕のことを買ってくれていた人達の目に、年に2回程絵を描いたり描かなかったりしているエセ絵描きになってしまっている僕は、どう映るんだろう。そんなことを思ってしまった。

ロック君が話をまとめてくれて、彼とJinkunさんを含む少人数で、僕も混ざって飲み会をする事になった。

参加者は僕を入れて5人。僕が直接覚えていた・当時から交流があったのはJinkunさんとロック君だけで、もう二人は当時は交流がなかったのだけれども、すぐに打ち解けた。昔話に花を咲かせたり、皆や当時のJNK Worldにいた人達の近況で盛り上がったり。僕が話の種にでもと持って行ったもえじら組の本を回し読みしたり。結局3次会の徹夜カラオケまで全員参加で、途中落とし物をするというトラブルもあったけれども、とても楽しい時間を過ごせた。ナイスタイミングで石河君から連絡があったりもして、いつか石河君も入れてまた集まろう、という話にもなった。

10年。もうそんなに経ってしまうんだ。当時16歳とか17歳で、今はもう26歳だ。今ここでこうしてるなんて、あの頃には全く想像もしなかった。絵の道から離れてSEとかプログラマとか言われるような仕事をしているなんて事も、思いもよらなかった。ブログが大流行してWebがこんな風に変わってしまうということも、考えもしなかった。

あの頃に比べて、僕は少しでも大人になれたんだろうか?

ハンズで霧吹きを買った - Oct 05, 2008

元々あった霧吹き?は100円ショップで買ったもので、目が荒いというか大量の水がドバドバ出るため、アイロンがけに使おうとしたら乾いたはずの洗濯物がビショビショになってしまった。ということでもっと目の細かい霧吹きが欲しくて、池袋まで行ったついでに東急ハンズでそれらしい物を探してみた。

売り場を見てみたら、詰め替えボトルのコーナーにそれらしい物がたくさんあったのだけれども、目が細かいかどうかまでは分からなかった……一種類だけ「ミスト状になります」と書いてあったのがあって「これかな?」と思ったけど確証が持てなかったので、ダメ元で店員さんに声をかけて聞いてみた。「アイロンがけの時に使うような目の細かい霧吹きを探してるんですが、一番目が細かいのはどれですか?」と。そしたら、そのうちの一つを「自分が試した中ではこれが一番細かかった」と教えてもらえたので、それを買うことにした。

買ったのは、ノズルを押すとプシューと中身が吹き出してくる普通のヘアスプレーみたいな形をした奴。タグにはthe SCENTPUMPとか書いてあった。892円。輸入物らしい。市販のヘアスプレーの入れ物と違ってキャップに長い足が付いていて、キャップを押したり引いたりすると自転車の空気入れみたいに空気が入っていって圧縮される。で、キャップを外してノズルを押すと、圧縮空気の圧力によって中身がプシュート吹き出す、という物だった。面白いことを考える人もいるもんだなあ。実際に水を入れて試してみたら、確かに目の細かい霧状になって水が出てきた。これはいい買い物をした。

聞いた店員さんがたまたま「当たり」だったのかもしれないけど、商品知識が豊富な人が売り場にいるというのは素晴らしいことだと思った。またここで買い物をしたいなと思った(乗せられてます)。

あと、今までの自分だったら、こういう場所で右も左も分からない状況になったら、悩みに悩んでカンで選んで買って帰って期待外れで後悔、というオチになっていたんじゃないかと思うけど、自然に人を頼ることができたという事実を改めて意識して、深い感慨を覚えた。

ここに来るまでにどれだけの事があっただろう。自分のホームでない、アウェーの場所に飛び込むという事。恐怖を乗り越えて人に話しかけるということ。したいこと・求めていることをきちんと伝えて、自分から相手にできる限り協力して、相手の協力を引き出して、一番いい結果を得られるようにするということ。

自分一人で全てを抱え込んで、人の手を借りずにパーフェクトにこなせるようになることを目指すのでなく、(人の手を借りないとどうにもならないことから目を背けて、その時の自分にできることの範囲が世界の全てだと思い込む、のではなく、人の手を借りないとどうにもならないことも含めての世界だと認識して、自分にはコントロールできない事がたくさんあるのだと認めて、)必要に応じてアウトソーシングすることで自分も相手も利益を最大化し、閉じた「個」として生きるのではなく流動的な「状態」として生きるということ。

自分一人じゃここまで来れなかった。ゆずほさんとかいろんな人が手助けしてくれてやっとここまで来れたという気がする。

Page 69/239: « 65 66 67 68 69 70 71 72 73 »

Powered by blosxom 2.0 + starter kit
Home

カテゴリ一覧

過去の記事

1999.2~2005.8

最近のつぶやき

オススメ

Mozilla Firefox ブラウザ無料ダウンロード