Home > Latest topics

Latest topics 近況報告

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

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

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

Page 73/248: « 69 70 71 72 73 74 75 76 77 »

年賀 ミク - Dec 02, 2008

って書かれるとmixiの方じゃなくてVOCALOIDの方をつい想像してしまうんですが、これは運営の思う壺でしょうか?

鈴木先生 - Dec 02, 2008

ふと思い立って鈴木先生の1巻を買ってみたのだけれども、処女非処女云々の話題の事でモヤモヤしている今のタイミングにこの話(「@教育的指導」前・後編)が来たというのは何か運命じみた物を感じてしまうよ……!

なんか……不思議なマンガだなあ。妙におどろおどろしい絵柄で、読んでると全然気が抜けない、読んでるこっちが緊張するような…… 架空の小中学校を舞台にしたマンガなんて他にもいくらでもあるのに、何が違うんだろう。

もしかしたら、本気度合いみたいなのの違いなんだろうか? キャラクター達がストーリーを繰り広げるための舞台、大道具としての学校、というのではなく、シミュレータとして用意された学校の中で各人が汗水鼻汁たらして半べそかきながら死ぬ気で生きてる、みたいな。

また処分しづらい漫画シリーズが部屋に増えていく……

鈴木先生 (1) (ACTION COMICS)
武富 健治
双葉社

コンテキストメニュー拡張の機能を減らした - Dec 02, 2008

コンテキストメニュー拡張を久しぶりにアップデートした……けどアップデートの内容は実質デグレードみたいなものだ。外部アプリケーションでソースを表示する機能、mailto:のリンクをメールソフトやWebメールのサービスに渡す機能、ユーザスタイルシートを編集する機能、任意のスタイルシートを登録して切り替える機能、あたりをゴッソリ削除した。

  • ソースを他のアプリケーションで開く機能はFirefox 3本体にあるし、ソース表示タブあたりを使えばGUIで設定できる。もはや用済み。
  • mailto:の処理をコントロールする機能もFirefox 3に標準で付いてる。オプション→プログラム→mailtoで、外部アプリケーションを指定することもYahoo!メールやGmailを指定することもできる。もはや用済み。
  • スタイルシート関係の機能は、そもそもまともに動かなくなってからだいぶ経ってた。今ではStylishもあればuserstyle.orgもあり、そっち使った方が絶対にいい。

できれば無駄にRDFを使ってるバックエンドも全部捨てたいんだけど、これを捨てると旧版の設定が全部失われてしまうことになるというのが痛い。

Minefield 3.1b3preの、タブのドラッグ&ドロップへの対応 - Dec 02, 2008

ツリー型タブマルチプルタブハンドラで、Firefox 3.1からの「ウィンドウ外にタブをドロップしたら新しいタブを開く」機能に対応した。子タブを持っているタブをウィンドウ外にドロップしたら子孫タブまで含めて新規ウィンドウに分離され、複数のタブを選択してウィンドウ外にドロップしたら選択されたタブすべてが新規ウィンドウに分離される。という感じ。ちょっと前の分割ブラウザの更新もこれに関係してる。

Minefield 3.1b3preでは、ブラウザのタブをドラッグした時はapplication/x-moz-tabbrowser-tabという型のデータがドラッグデータのリストの先頭に加わるようになった。今までは、ドラッグセッションの「ドラッグを開始した要素」をその都度参照していたようだったので、やっとまともな実装になったなーという感じだ。

分割ブラウザやツリー型タブでは、この型のデータも受け入れ可能なように修正した。そうしておかないと、「application/x-moz-tabbrowser-tab型のデータはドロップできないんだな」と判断されて、タブをタブバーや分割された領域にドロップできなくなってしまう。

Minefield 3.1b3preでの「ウィンドウ外へのドロップ」はどのように実装されているのかを調べてみた所、dragendイベント(ドラッグが終了した時に、「ドラッグが開始された要素」で発行されるイベント)のタイミングで、ドロップ操作に失敗した(ドラッグ操作終了時点でポインタの状態が「ここにはドロップできません」のポインタになっている)場合には「ウィンドウ外へドロップされた」と判断して、新しいウィンドウを開きそのタブとドラッグ元のタブを入れ替える、という風にして実現していた。

この時ドラッグ元のウィンドウでは、tabbrowser要素の_replaceTabWithWindow()メソッドにおいて、新規ウィンドウの第1引数にtab要素を渡して開くだけで処理を終えている。そこから先の「ドラッグ元のタブと新しいウィンドウの内容の入れ替え」は、新しく開かれたウィンドウの初期化処理(BrowserStartup()関数)の方でやってる。

なので、ツリー型タブとマルチプルタブハンドラでは、その両方の処理に割り込むようにした。_replaceTabWithWindow()を呼び出している_onDropEnd()メソッドで、_replaceTabWithWindow()メソッドを呼ぶ直前に割り込んで、切り離されようとしているタブの収集結果がそのウィンドウのタブ全部だった場合には操作をキャンセルしている。また、BrowserStartup()の方では、ウィンドウの第1引数がtab要素だった場合はまずツリー型タブとマルチプルタブハンドラに処理を渡して、何も行われなければ(渡されたタブが子タブを持っておらず、選択もされていないならば)Firefox本来の処理(単一タブの切り離し)に入る、という感じにしている。

ドラッグ元のタブ自身の上にドロップした時までウィンドウの切り離しになってしまうなど、Minefield 3.1b3preの当該機能自体がまだまだ作り込みが甘い感じなんだけど、そういう所にまで手を出すと収拾がつかなくなる&Firefox 3.1正式版までの間に手を入れられたらまた作業のやり直しになるので、そこら辺は基本的に放置してる。ただし複数のタブを同時に閉じようとした時の問題だけは、閉じるのに失敗したタブが永遠に閉じられなくなるなどの致命的な問題を引き起こすので、ツリー型タブの側で対処している(提出したパッチと同じ事をやってる)。

初パッチ - Dec 02, 2008

だいぶ前に報告した、TabCloseイベントの前後でタブの数が変わることを想定してないせいで複数タブを一気に閉じられない問題は、他のバグにおける変更の影響で結果的にFIXEDになったようだったんだけれども、今日あたりのビルドで試してみたらまた同じ問題が……「何故そうなるのか」と「何が問題なのか」が開発者に理解されてないとこうなるってことですかね。

とりあえずMozillaBuild入れて最新のソースをチェックアウトしてパッチ書いてモジュールオーナーと思われるmconner氏のメールアドレスをreview欄に書いてみた。

どっかで聞いたけど、こういうのって結局IRCで本人を突っつかないと放置食らう事が多いんですって? 英語チャットか……気が重いなあ。

ルーラーバーでエンコーディングの違いに対応したよ - Dec 01, 2008

英語で書かれた障害報告のメールに返信する時にルーラーがひどくずれていたのが気になってたけど放置してた件について、ルーラーバー 0.3.2008120101で修正した。

今まで、ルーラーの表示サイズの基準には編集領域のdocument.documentElementfont-sizeを使ってたけど、こちらはエンコーディングが変わっても値が変化しない。それに対して、document.bodyfont-sizeは、エンコーディングごとのフォントサイズの違いの影響を受ける。ということでbodyの方の値を参照するようにしたら、ルーラーの間隔はおおむね正しいものになるようになった。

ただ、これでもカーソル位置の強調表示のずれは残る。フォントサイズだけでなくフォント自体もエンコーディングによって変わる可能性があり、フォントサイズだけ合わせても、実際の編集領域とカーソル位置検出用の非表示のフレームとでフォントが違ったら、ピクセル単位で位置を拾った時に微妙にずれが発生する可能性がある。そこで、非表示のフレームの方にもエンコーディングの変化を適用させるために、SetDocumentCharacterSet()のタイミングで非表示のフレームの方のエンコーディングも変更するようにした。エンコーディングの動的な変更の方法はこんな感じ。

// this.calculator は非表示のフレームのbrowser要素
var docCharset = this.calculator.docShell
      .QueryInterface(Components.interfaces.nsIDocCharset);
docCharset.charset = aCharset;
var webNav = this.calculator.webNavigation;
webNav.reload(webNav.LOAD_FLAGS_CHARSET_CHANGE);
var self = this;
this.calculator.addEventListener('DOMContentLoaded', function() {
   self.calculator.removeEventListener('DOMContentLoaded', arguments.callee, false);
   // 読み込みが終わった段階でルーラーの表示を更新する(カーソル位置の検出をやり直す)
   self.updateRulerAppearance();
}, false);

最後にリロードしないと表示が変わらない、のかな?(リロードしなかった場合の挙動については未検証)

マイミク整理します - Nov 30, 2008

というタイトルの地雷バトンをmixiで踏んでしまったので書くよ。from marukoさん

  1. お住まいは?→東京
  2. 血液型は?→A
  3. チャームポイントは?→ノドボトケ?
  4. ペット歴を教えて下さい→小学校の頃に家で金魚を飼ってたけど……
  5. 好きな物を教えて
    • 季節→春
    • 場所→布団の中かPCの前
    • 映画→クレヨンしんちゃん モーレツ!オトナ帝国の逆襲、アポロ13、バック・トゥ・ザ・フューチャー3部作
    • 本→何度も読み返してしまう物としては、ディアスポラ、最果ての銀河船団
    • マンガ→最近シギサワカヤ作品をまとめ買いしてしまいました
    • キャラクター→ふぉくす子
    • テレビ番組→たけしの万物創世紀のDVD BOXとか出て欲しい。最近の番組は、そもそもテレビ自体を見ていないので……強いて言うなら実家に帰った時にたまに見る、ためしてガッテン?
    • 色→白
    • 言葉→しない善よりする偽善
  6. 苦手な物は?→コミュ力の高い人全般、「要は勇気が自己責任!」、勝ち負けが絡む物事
  7. 行ってみたい国は?→オーストラリアでエアーズロックを見てみたい。あとナスカの地上絵も見てみたい。エジプトのピラミッドも見てみたい。
  8. あなたの座右の銘を教えて下さい→とりあえずアウトプット
  9. カラオケは好きですか?→マイクを放しませんが何か?
  10. あなたの18番は?→Firefoxのアドオンなら……
  11. 今1番欲しい物は?→新しいPC
  12. プチ野望は?→2冊目のオフセット印刷個人誌を出したい
  13. 有名人や動物に似ていると言われた事はありますか?→無い
  14. 常にそばにある物、手放せないものは?→PC

続きを表示する ...

Adobe AIRでMigemo - Nov 25, 2008

AIRMigemoというライブラリがあることをリファラで知った。AIRアプリにMigemo検索機能を組み込むのに使えるということだろうか。でもライセンスが分からない……

肝心の正規表現の生成処理は、かなり真面目にやってるような印象。XUL/Migemoの現在の実装は長い文字列の一括置換と分割とソートによる擬似的な物なので、「短い入力で長い単語にマッチさせる」という元のMigemoの特徴の一つを損なうことなく持っていると考えられる。

数学で恋愛を語る「数学ガール」 - Nov 25, 2008

Perlの入門書でだいぶ昔にお世話になりました結城浩氏と、もえじら組で参加した何度目かのコミケ会場でたまたま手に取って以来地味に毎回買い続けさせていただいている日坂水柯氏が、コラボレーションとな?! と、第一報を聞いてから気になっていた漫画版数学ガールの単行本が出たということで買ってきた。

うん。じぇんじぇん分かりまへん

教育コンテンツとしてかろうじて僕の役に立った(?)のは、「1は素数に含めない、のは何故なのか」という話くらいでしょうか……

数式部分がプログラムの(特にJavaScriptの)コードだったら、まだ僕にも理解できたんですかね。それとも、モノ扱いというか、対等な人間関係として見ていないと評されるような人間である所の僕には、仮に「JSガール」だったとしてもやっぱり理解できないんですかね。

Ubuntu 8.10でNautilusSvnを使う - Nov 25, 2008

僕はバージョン管理システムのSubversionのクライアントとして、WindowsではTortoiseSVNを使っている。TortoiseSVNはシェル統合型のクライアントで、エクスプローラのファイルアイコンがファイルの状態(競合とか最新とか変更ありとか)に応じて変化したり、フォルダの右クリックからチェックアウトや更新や差分の表示やログの閲覧ができたりと、独自ファイラを使わない僕にとっては実に使い勝手が良い。

TortoiseSVNはWindows専用なので、UbuntuではRapidSVNを使ってたんだけど、Ubuntu 8.04LTSで使うとどーいうわけかコミットしようとすると必ず落ちる(しかもその時作業対象のフォルダをロックしたままで死にやがる)という問題が起こっていて、チェックアウトしかできなくて困ってた。コマンドラインからsvnコマンドを使えばコミットすることはできるといえばできるんだけど、根っからのGUI人間なので、いつもそうするというのは苦痛で苦痛で……

そんな時に、Nautilus向けのシェル拡張としてNautilusSvnというTortoiseSVNクローンが存在するということを教えてもらったので、是非入れよう! すぐ入れよう! 幸いページの一番下に.debなパッケージもあることだし! と思ってダブルクリックしてみたらパッケージマネージャに蹴られて撃沈して僕涙目。Python関係のパッケージの依存関係が壊れてるだかなんだかでインストールすらできなかった。

それ以来すっかり諦めてたんだけど、先日Ubuntu 8.10にアップグレードしたので今度はうまくいくんじゃないか? と思って再挑戦してみた。.debをダブルクリックしてパッケージマネージャから入れてみると、今度はインストールには成功したんだけど、再起動してもちっともそれっぽい変化が現れない。

Google検索したらUbuntuのフォーラムのトピックGoogleコード上のプロジェクトページが紹介されていたので、これがダメだったらもう諦めよう、という気持ちでそこのWikiに書いてあったインストール手順に従って操作してみた。そしたらうまくいった。やった!!!

以下、すべてコマンドライン操作。

  1. 必要なパッケージ一式を先にインストールする。sudo apt-get install python-nautilus python-wxgtk2.6 python-svn meld
  2. Nautilusの拡張機能?フォルダを作成して、NautilusSvnのファイルを配置する。
  3. ファイルの上にオーバーレイ表示する小さなアイコンをインストールする。
    • mkdir -p ~/.icons/hicolor/scalable
    • ln -s ~/.nautilus/python-extensions/NautilusSvn/icons ~/.icons/hicolor/scalable/emblems
    • ln -s ~/.nautilus/python-extensions/NautilusSvn/icons ~/.icons/hicolor/scalable/icons
  4. Nautilus起動時に初期化させるためのスクリプトを配置する。ln -s NautilusSvn/NautilusSvn.py NautilusSvn.py

で、ログアウトしてログインし直した後にNautilusで適当なフォルダを開いて右クリックすると、メニューの中に「SVN Checkout」という項目が増えてた。Subversion管理下のフォルダだとフォルダやファイルのアイコンの上に状態を示す小さなアイコンが表示されるようになってて、管理下のフォルダで右クリックすればログや差分も見られる。

.debでやった時にうまくいかなかった理由については結局分からずじまいなんだけど、最初に入れる必要なパッケージの中の一つがWikiには「python-wxgtk2.6」と書かれていたのに対して、.debではpython-wxgtk2.8が入っていたので、もしかしたらこのバージョンの違いが原因だったんだろうか?

あと、この件について調べてる中でnautilus-script-collection-svnというパッケージがあることも分かった。こちらはSubversion用のシェルスクリプトをNautilusの汎用的なユーザスクリプト呼び出し機能を使って起動して使うというもののようで、パッケージをインストールした後に sudo ln -s /usr/share/nautilus-scripts/Subversion ~/.gnome2/nautilus-scripts/Subversionとしてシンボリックリンクを作成すると、次回起動時以降、Nautilusのフォルダ内での右クリックメニューの「スクリプト」サブメニューからそれぞれのシェルスクリプトを呼び出せるようになる。こちらはコミット前の「やっぱりやめとこう」みたいな取り消しができないっぽかったりSubversion管理下のファイルやフォルダの状態が特に表示されなかったりという問題があるので、NautilusSvnが使える環境だったらNautilusSvnを使った方が良さそうだ。どうしてもNautilusSvnが動かないという時のために一応メモしておく。

余談。NautilusSvnでもTortoiseSVNでも微妙に不便な点として、まあこれは仕様上当たり前なのかもしれんけど、ある場所にチェックアウトしたSubversion管理下のフォルダに対するシンボリックリンク(Windowsだったらジャンクション?)からはコミットできないという問題がある。Windowsの場合はフォルダのショートカットがあるから別にいいんだけど、Linux(GNOME)だとGUIからは簡単には「フォルダのショートカット」を作れない(アプリケーションのランチャを作って、コマンドに「nautilus "パス"」と書けば、擬似的にフォルダのショートカットを作ることはできる)ようなので、そこだけ地味に困ってる。

2009年2月9日追記。日本語のメッセージを付けてコミットできない問題に対処してみた。

Page 73/248: « 69 70 71 72 73 74 75 76 77 »

Powered by blosxom 2.0 + starter kit
Home

カテゴリ一覧

過去の記事

1999.2~2005.8

最近のコメント

最近のつぶやき