« 2009年02月 | メイン | 2009年04月 »

2009年03月 アーカイブ

2009年03月01日

リンク先のHTTP Status Codeを調べ、あらかじめ表示するUserScript

リンクをクリックする前にリンク先の状態である「HTTP Status Code」を取得して表示するUserScriptです。リンク先のServerがダウンしている事等を素早く知る事ができます。
制限
リンクでCRUD全てを行なうようなシステムやRESTFulなものだと、全リンクへアスセスすると何が起きるか予想がつきません。また、広告等のリンク先に無条件にアクセスするのも個人情報保護・セキュリティの観点からよろしくないので、HTTP Statusの取得は各Serverのrootに対してのみ行なっています。例えば、「http://www.kanasansoft.com/Kanasansoft/UserScript/status_prefetch.user.js」へのリンクがあった場合、「http://www.kanasansoft.com/」へアクセスしHTTP Statusを取得しています。
特徴
Status Codeの大項目別に、背景色を変えて表示しますので、一目で状態を把握できます。rootにしかアクセスしないため、リンク別にStatusを確認していては非常に非効率です。調査するServerが重複する場合は、一度しかアクセスしないようになっています。同一Serverへのリンクが多いsiteでは特に高速に動作します。逆にリンク集等のリンク先がバラバラの場合は、高速化の効果は発揮できません。
欠点
リンク元ページのHTMLへリンク先の状態を挿入表示しますので、レイアウトがよく崩れます。上記の制限の為、rootにアクセスする事を意図していないようなServer(常にサブディレクトリを使用している等)の場合、常にErrorCodeが帰ってくる場合があります。また、Redirectを前提としたリンク先も転送のStatusしか返さない場合もあります。

2009年03月03日

IEの印刷機能の不具合

詳細は上のリンクを参照して下さい。
"`"以降がtextboxに入るのなら最後にもう一度"`"を追加して、かつtextboxを非表示にしたら全く表示されないんじゃないかと考えた。
手元にIEがないので知り合いに下のコード(正確には下のコードをもとにしたBookmarklet)を実行してもらったら、本当に何も印刷プレビューにヘッダとフッタ以外は何も表示されなかったらしい。
でも、これを利用して印刷制御を行なおう等という愚行はお勧めしない。
var x=document.createElement("input");
x.style.display="none";
x.value="`";
var y=x.cloneNode(true);
var b=document.body;
b.insertBefore(x,b.firstChild);
b.appendChild(y);

2009年03月07日

Google Groupsを使う時はスパムとメールアドレス収集に注意

Google Groupsはディスカッションという掲示板を作れたり、WYSIWYGでページが作れたり、ファイルを共有できたり便利です。
ディスカッションはメールからも投稿可能で、投稿されたディスカッションはメールで受信できるので、メーリングリストとして使えます。
便利なGoogle Groupsですが、問題がないわけではありません。
Google Groupsを使っているとスパムが送信されはじめます。
スパムに対応する為にやりがちなこと
スパムが送信されると、オーナーやマネージャは次のようにやりがちです。
スパムが送信される。
  『メッセージの投稿をメンバーのみ』に変更。
新規メンバーからスパムが送信される。
  『全てのメッセージを管理対象とし承認されるまで表示されない』ようにする。
  『新規メンバーからのメッセージを管理対象とし承認されるまで表示されない』ようにする。
この時点で管理作業が少々面倒になってきます。
しかも、メールアドレスが収拾されてしまう問題が残っています。
実は、ディスカッション内に含まれるメールアドレスは、表示する時にはCAPTCHAによる認証が必要ではありますが、参加メンバーではない第三者による閲覧が可能です。
(今は直っているかどうかわかりませんが、『ページ編集のお知らせをディスカッションへ投稿した際にそれに返信があるとCAPTCHA不要でメールアドレスが表示される』不具合もありました。)
お勧めの設定は?
スパムが送信される以前にやっておきたい設定があります。
グループを新設した時点でできればやっておいた方がいいと思います。
そもそもスパマーはどのようにしてメーリングリスト用のアドレスを知るのでしょうか。
それは、Google Groupsで作成したグループは、『Google Groupsのトップから閲覧や検索が可能』となっているからです。
まず、これをやめた方がいいと思います。
『グループ設定』=>『アクセス』=>『ディレクトリ リスト』=>『このグループ リストしない』にしてください。
(ちょっと日本が変ですが...。)
これだけで、スパムが来なくなります。
グループの存在は、自分のblog等からリンクをはってお知らせすれば良いでしょう。
海外のスパマーに見つかりませんし、国内のスパマーもいちいち外部からのリンクを探してまで送信してくるような手間はかけないでしょう。
そんな手間をかけるぐらいなら、他のグループをGoogle Groupsから探す方が楽です。
仮にそこまでの手間をかけてやってくるスパマーがいるのであれば、そのグループを名指しにしている可能性が非常に高いので、Google Groupsの設定や、メーリングリストの開設場所の問題ではないと思います。
上記で書いたメールアドレス収集の問題は、『グループ設定』=>『詳細設定』=>『このグループへのメッセージをアーカイブしない』で解決するはずです。
(やった事がないので詳細は不明です。これをやってしまうと、メーリングリストではなく同報メールのような動作になるはずなので、新規メンバーが過去のメッセージを参照できなくなりますので勉強会としては問題でしょう。)
他の設定は?
とにかく説明をよく読んで、その設定がどのように影響してくるのかよく吟味して下さい。
Google Groupsの挙動は、個々の設定よりも設定の組み合わせで大きく変わってきます。
アクセス権を細かく指定する事で、上記のようにメーリングリストとしても使えますし、SNSのようにも利用できます。
セキュリティ:他のGoogleのサービスとの違い
他のGoogleのサービスでも色々セキュリティのリスクが報告されていますが、Google Groupsは少々血色が違うのではないかと思っています。
他のサービスは既定の設定がまずいとか、URIにアクセスするだけで認証されたり閲覧できてしまったり等、比較的リスクが理解しやすいと思います。
しかし、Google Groupsの場合、上記した通り、その動きを設定で大きく変更できます。
その設定・挙動が管理者や意図したものかどうかわかりませんし、そもそも設定がわかりにくくなっています。
しかも、その挙動は情報の公開範囲や方法に影響します。
適当な設定をしていると、Google Groups経由のスパムだけでなく収拾されたメールアドレスにもスパムが送信されはじめるかもしれません。
管理者はどのような設定をすべきかだけではなく、参加するメンバー側も管理者がどのような設定にしているのか気をつけるべきかもしれません。
あとがき
Google Groupsのこの問題はあまり語られていない気がするのですがどうなんでしょう。
セキュリティの専門家の詳細な報告が見てみたいですね。

2009年03月08日

利用しているFirefoxのアドオン一覧

普段利用しているFirefoxのアドオンを紹介します。せっかくなので無効にしているアドオンも紹介し、何故使っていないかも説明してみました。全てのアドオンを同時に使おうとするとFirefoxが信じられないぐらい遅くなります。「Firebug」と「NoScript」等そもそも同時利用に向いていないアドオンもあります。Firefoxにはプロファイルをわけて利用する機能がありますので、普段用・開発用等、用途別にプロファイルをわけてアドオンをインストールしています。

All-in-One Gestures
マウスジェスチャという機能を追加します。マウスの右ボタンをプレスした状態でマウスを動かしコマンドを入力するだけで、Firefoxを操作する事が可能になります。マウスでFirefoxを使う時には欠かせません。「戻る」を使うためだけでも入れる価値があります。

Bookmark Previews
(無効)
ブックマークの一覧を、MacやiTurnsのCover Flowのように表示させる事ができるようになります。楽しいですがCPUが遅ければ使い物になりません。

Calc
(無効)
計算機を追加します。Googleツールバーに数式入れるとそのまま計算結果を候補に表示してくれるので、最近は使っていません。

ColorfulTabs
ドメイン別やランダムにタブの色を変更できます。使用する色を指定できたり、ドメインから自動的に色を生成したりも可能です。「ツリー型タブ」と組み合わせると、子タブに別のドメインのウィンドウがあるのも一目瞭然です。

Cooliris
ユーザスクリプトのAutoPagerizeはGoogle画像検索には対応していないのですが、「Cooliris」を使うと同じような事が可能になります。見た目のインパクトが非常に注目される「Cooliris」ですが、実はかなり実用的です。

DOM Inspector
(無効)
元々標準機能だったものがFirefox3からアドオンになったそうです。「Firebug」があれば不要という話も聞きます。

Downloads in Tab
ファイルをダウンロードする度に最前面に表示されるダウンロードマネージャをタブ化してくれます。残念な事に最新のFirefoxでは使用できません。個人的にバージョンアップを待ち望んでいます。

Extension List Dumper
インストールしているアドオンの一覧を出力できます。動作対象のFirefoxや開発者のURLも出力可能なのは、環境をドキュメントとして保存する時に重宝します。

Find Toolbar Tweaks
(無効)
検索バーの動作を変更したり、レイアウトの変更ができるようになります。検索結果の協調表示が便利すぎます。ただ、『Migemo』を入れている場合には不要かもしれません。

Firebug
Web系の開発者には必須のツール。Firefox以外のブラウザも「Firebug」クローンと言えるぐらいの機能を標準搭載しはじめました。

Firemacs
Firefoxのキーバインド(ショートカット)をEmacs風に変更してくれます。もちろんカスタマイズも可能です。ちなみに「Vimperator」というアドオンもありますので、vi派の人はそちらをどうぞ。

FireScope
HTMLやCSSのリファレンスが参照できるようになる「Firebug」用のプラグインです。英語ですが、忘れてしまったCSSの値のスペル等をすばやく調べられるようになります。

Fission
ページの読み込みの進捗状況を表すプログレスバーを、Safariのようにアドレスバーの背景色で表すようにします。

Google Toolbar
Googleの各種機能をFirefoxのツールバーから利用できるようにします。Googleの各サービスへのショートカットとしても便利。Googleへの依存度が高くなる原因かもしれません。

Google ノートブック
(無効)
Googleのサービス見直しの対象になってしまった「Google ノートブック」用のアドオンです。「Google ノートブック」の既存ユーザは継続してノートブックを利用できますが、新規ユーザ登録は終了するようです。このアドオンもサポートを終了の予定との事です。GoogleはGoogleの他のサービスを利用するように促しているようですが、「Google ノートブック」ぐらい機能を絞ったサービスはあるのでしょうか。大は小を兼ねるは時代に反していると思うのですが...。

Greasemonkey
各サイトをユーザスクリプトにより拡張することができるアドオンです。「Firebug」と同様に、同じような機能がOperaに標準搭載され、Chromeにも実装されるようです。また、Mac版のSafariにはSafariStandというツールで同様の事が可能になります。但し、「Greasemonkey」にしかできない事が多数(開発者向けにいうと、[GM_]で始まるAPIや実行するURIの指定等)ありますので、現状では完全な代替策とはならないでしょう。有志がつくったユーザスクリプトを共有しているサイトがあります。

Hatena Star
(無効)
はてなの『はてなスター』というサービスをどこでも使えるようになるというアドオンです。有効になるサイトの条件があるらしくいつでも使えるとは限らないようです。最近は面倒なので『はてなブックマーク』から『スターを追加』するようにしているため利用していません。

hatenabar
はてなユーザには必須かもしれません。はてなの各種サービスをツールバーから利用できるようになります。そもそもはてなユーザにはこんな説明は不要ですね。わからない人ははてなにユーザ登録して『はてなダイアリー』を書いて『はてなブックマーク』を利用し始めるとわかるようになると思います。

IE Tab
(無効)
Firebox内でIEのレンダリングエンジン(Trident)を使いサイトを表示できるようになります。ウィンドウズでのみ利用可能です。仕組を考えると仕方がないのかもしれませんが、エンジンの切り替えのときに再読み込みが発生します。最近はFirefoxとIEを同時に起動しています。

JSView
(無効)
見ているページで使っているJavaScriptを参照できるアドオンです。「Firebug」をインストールしていると正直言って使いません。なんらかの原因で「Firebug」が使えなくなった時に使う程度です。

Leak Monitor
JavaScriptでリークの発生を検知する事ができます。但し、リークが発生するページが多いので通常利用は避けて、開発用のプロファイルでの利用がお勧めです。

More Tools Menu
アドオンがメニューのあちこちに好き勝手に追加する項目をひとつにまとめる事ができます。実行しようとしている機能が、標準なのかアドオンによるものなのかを把握できている場合、メニュー内を探すことがなくなります。

NoScript
安全なネット閲覧を支援してくれます。様々な機能を切ってくれるので、逆に開発中だと煩わしいかもしれません。普段用のプロファイルにインストールしています。

OPIE
アドオンの設定をインポート/エクスポートできるようになります。新規にプロファイルを作成しするときに使っています。

Options Menu
アドオンの設定画面を開くためのメニューを追加します。勝手にメニュー項目を追加するアドオンのための「More Tools Menu」に対して、メニュー項目を追加してくれないアドオンに対しての「Options Menu」と思っています。

Screen grab!
ページのスクリーンショットを撮る事ができます。OSのスクリーンショット(プリントスクリーンやハードコピーとも言います。)の場合、縦に長いページを再現する為には、画像処理ソフトに頼らなければなりませんが、このアドオンの『Complete Page/Frame...』を使えば不要になります。

SQLite Manager
SQLiteをFirefox上から操作できるようになります。開発者向けです。アドオン上でSQLを書いてそれを実行できることに非常に驚きました。

Stylish
FirebugのCSS版と言ったところです。ユーザスタイルシートをサイト別に定義できます。Firebugに比べ普及していないのは、ユーザスタイルシートの配布方法が面倒なためでしょうか。

SwitchProxy Tool
接続するネットワークが多くてそれぞれのネットワークがプロキシが必要な場合、必須かもしれません。プロキシの設定を全部覚えている人は少数派かと思います。OSのネットワークの設定と連動してくれるような仕組みがあればもっと便利なんですが、多分無理でしょう。

Tab Mix Plus
タブに関連する色々なことを設定できます。機能が多すぎて書ききれません。例えば、新規ウィンドウを開いてしまうようなサイトがあっても新規タブで開くように設定する事もできます。

Tamper Data
開発者向けです。RequestヘッダやResponseヘッダを見る事ができるようになります。また、Requestを書き変える事が可能です。以前はRequest/Responseを書き変える事のできるローカルプロキシ『Achilles』と「SwitchProxy Tool」を常用していましたが、「Tamper Data」と「Firebug」が入っている環境では使わなくなりました。

TinEye Image Search
『TinEye』という似ている画像をインターネットから検索するサービスがあります。これを、Firefox上から直接利用できるようにするアドオンです。切り取られた画像や一部修正された画像の元画像を探す事もできます。

Tombloo
もともとはTumblrというリブログサービスに特化したアドオンだったらしいのですが、今ではクロスポストツールと言うのが相応しいかもしれません。ショートカットでソーシャルブックマークやマイクロブログへのクロスポストができるのは素敵すぎます。(掲示板やメーリングリストのクロスポストは嫌われるのでやめましょう。)唯一の難点はログインしていないサービスへの対応です。再投稿が可能だったり、投稿前にログイン状態を把握できればもう言う事はないんじゃないでしょうか。

Ubiquity
コマンドライン風にFirefoxを操作するアドオンです。個人的には多機能すぎてわかりにくいのですがどうなんでしょうか。一時期盛り上がって、その後はあまり話題にはなっていないように感じます。ユーザスクリプトで言えば、『Minibuffer』と方向性は同じだと思います。

User Agent Switcher
開発者向けのアドオンだと思いますが、ユーザエージェントを判断してサイトの挙動を変更しているようなサイトを見る時にも便利です。

XUL/Migemo
ページ内検索機能を拡張します。一番の利点は、検索条件にローマ字を入力しても日本語を検索してくれる事です。IME変更を忘れて入力してしまった場合でも検索できますし、同音異義も検索できます。『「すべて強調表示」をより強く強調する』の『ヒット箇所のアニメーション』を『拡大』にしていると、非常に重くなるようです。

Web Developer
「Firebug」でサイトのHTMLを書き変えて調べたりする事があると思いますが、DOMを書き変えるのが煩わしく感じる事があります。よく使われるような調査項目がすばやく実行できます。CSSを一時的に無効や画像のサイズを表示、select要素をinput要素に変更等、たくさんの機能を持っています。日本語版もあります。

YSlow
開発者向けです。「Firebug」を拡張しサイトを表示する時の各ファイルのダウンロードにかかる時間を調べる事が可能になります。

タブカタログ
(無効)
開いているタブを一覧表示してくれます。前は少し使っていたのですが、「ツリー型タブ」と「ColorfulTabs」を入れた後はタブの一覧性が向上したため使っていません。

ツリー型タブ
ツールバーをたくさんインストールしていたり、タブを折り返して表示させていると、サイトを表示する領域が横長になってしまいます。「ツリー型タブ」を入れると、タブの表示位置を左右に移動ができるようになります。また名前が示す通り、タブをツリーで表示させる事もできます。親タブを閉じると小タブも閉じるようにすることも可能です。検索エンジンで検索一覧親タブにして検索結果を小タブで開くようにすると一気に閉じる事もできますし、折りたたむこともできます。

分割ブラウザ
(無効)
ウィンドウを分割して別々のページを開けるようになります。複数のページを同時に見たい時やワイドディスプレイの表示領域を有効活用したい時に有用です。ディアルディスプレイだとあまり必要ないかもしれません。

2009年03月12日

アイーン

2009年03月13日

マンションと情報のセキュリティについての妄想

今回はかなりえらそうな事を書くことになるが、あくまで妄想なので妄想は妄想として対処して頂きたい。
マンションのセキュリティ
マンションの防犯と言って思いつくのは、防犯カメラとオートロックである。防犯カメラは古いマンションにも設置してあることが多く、入居後にも設置が可能で比較的安価であることが容易に想像できる。オートロックは、インターホンと自動ドア、自動施錠による許可された者しかマンション内に入れさせないシステムであり、私の知る限りにおいては、必ず防犯カメラが併設されている。オートロックは、侵入困難な構造である必要があるが、ほとんどのマンションは侵入できないのではなく、侵入しにくいだけである。これは侵入の困難さを求めれば求めるほど、コストに跳ね返ってくるからだと思われる。壁が多少低くても許容されているのは、ドア以外から内部へ入るものを侵入者と見なせるため、そのような行為を防犯カメラで見張る事で侵入そのものを防止しているからである。内部に侵入して犯罪を犯す事は比較的容易ではあるが、侵入者が誰なのかを特定される事、言い換えると捕まるリスクが防犯の役割を果たしている。『侵入するならここよりも証拠の残りにくいマンションにしなよ』と言うことである。しかし、このようなセキュリティでは、特定の部屋の中にある何か特別な物を狙っているのであれば、あまり意味をなさない。更にいうと、『特定の誰かを殺したい』等と考えており、なおかつ捕まっても良いと思っている侵入者にとっては全く意味がない。このような場合を想定するのであれば、コストを充分かけて本当に侵入しにくい構造にし、仮に侵入されても警備員等が駆けつけるまでの時間を充分稼げるようでなければならない。『目的を果たす前に捕まえてしまう』ような防犯方法である。前者を『回避型』、後者を『保護型』とでもしておこう。一般的な人にとって、名指しで狙われるような状況というのは、ストーカー等の特殊事情を除いてまずありえないので、『保護型』で充分なのである。
情報のセキュリティ
マンションの例を踏まえて情報セキュリティのついて考察をしてみる。結論を先に言うと、徹底的に保護しなければならないような情報は全情報量と比較するとそれ程あるとは思えない。例えば、個人情報や企業の機密事項等を除けば情報流出は対した損害ではない。物とは違い、情報は漏れたとしてもなくなりはしない。情報の入った記録媒体等が全て盗まれたというのなら話は違ってくるが、情報そのものは外部に知られたとしても手元には残る。物の場合は『盗まれる事』と『手元からなくなる事』は直結しているが、情報は『盗まれる事』があったとしても『手元には残る』のである。整理すると、盗まれてはならない情報というのは、『決して外部に知られてはならない情報』となる。家庭内や企業内にある情報が、全て外部に漏れてはならない情報とはとても思えないのだが、現在の情報セキュリティというのは全ての情報を遮断しようとしているように見えてならない。知られる事そのものがリスクであったり、知られると不利益を被ったりしない限り別に問題ないのではないかと思う。本当に重要な情報であれば、備え付けの金庫のように、家庭内・企業内の特定の物にしか触れられないようにしておけばよい。内部では不安というのであれば、銀行の貸金庫のように、情報を守るべく存在するデータセンターがある。必要な部分だけ『保護型』を採用し、後は『回避型』で充分なのではないのか。はたまた、『漏れても手元には残る』という特性を考えると『漏れても良い情報』もあろうかと思うので、このような情報の管理方法を『開放型』と呼ぶとしよう。わざわざ、『開放型』で充分な情報まで、膨大なコストをかけて作った鉄壁のような壁で守る必要があるのだろうか。全ての情報を『保護型』で守ろうとすると、いったいどれだけのコストがかかるのか。本当にそれはかけないとならないコストなのか、熟考が必要な時期が来ているのではないかと思う。
妄想と断った上で暴論を振りかざしてみたが、皆さんはどのようにお考えになられているのだろうか。
2009/03/13 追記
セキュリティを重要視し過ぎた場合に起きる弊害について書き忘れていたので追記する。
マンションの場合、高い塀であればある程セキュリティは高くなるが、高すぎる塀は日常生活に悪影響を及ぼす。陽が当たらなくなるかもしれない。息の詰まるような住環境をさけるため、陽を当てるようにすると、壁から建物を離さなくてはならなくなり、より一層の土地を必要とする。情報に関しても同様に、情報を漏らさないでおこうとするあまり、どれほど動きにくくなるのか。そもそも企業であれば、日常の業務に多大な影響を及ぼすのではないだろうか。情報が漏れるリスクだけでなく、情報が漏れないように努力する際に発生してしまうデメリットも、合わせて考えていくべきではなかろうかと思う。

2009年03月16日

はてなブックマークのUsersを増やすgreasemonkey

あいかわらず、ニッチなグリモンを作った。
ニッチだとUserScriptの名前に非常に困る。
特に英訳せざるを得ない状況だと顕著。
とりあえず、「HatenaBookmarkAddUsersFilter」と命名。
効能はscreen shotを見てもらった方が早い。
適応前
適応前
適応後
適応後
はてぶを前回見てから時間が経っていればhotentry、時間がほとんど経っていない時にはentrylistを見たりする事が多いんだけど、ちょっとこのふたつって両極端なのでなんとかしたいと思って作った次第。
2009/03/17 追記
車輪の再発明でした。
2009/03/18 追記
作者本人のblogを見つけたのでトラックバック。

2009年03月20日

GitHubやTracでGreasemonkeyが変に反応して困るのでグリモン書いた

GitHubで管理しているUserScriptのレポジトリをFirefoxで見てたら、source表示のリンクでダイアログが出てきて驚いた。
なんだこれ?
Tracでも同じようにダイアログが表示される。
調べてみたら、「http://www.kanasansoft.com/?.user.js」でも「http://www.kanasansoft.com/#.user.js」でも反応するし、「?.user.js」でも「#.user.js」でも反応する。
greasemonkeyは、リンク先のURLが「.user.js」で終わっていれば、install用のダイアログを表示するみたい。
ちゃんと対応しようと思ったらリンク先のファイルを取得して、中身をチェックしないといけないから仕方がないのかな。
TLDが自由化されて、「http://www.user.js」なんてのが出てきたらどうするんだろう。
普通のサイトはともかく、trac見る時にダイアログが反応するのはうっとうし過ぎるので、インストールを阻止するグリモン書いた。
とりあえずこれをインストールにしておくと、インストールのダイアログは表示されず、直接Firefoxがファイルを開く。
不注意でグリモンをインストールすることもなくなる。
インストールする時は、このuser scriptを一時的にOFFにして再読み込みして下さいな。
GitHubだけ有効にするのなら、ユーザスクリプトの管理で、実行するページから「*」を削除すると、GitHubにしか反応しなくなる。
自分でtracたててるのなら実行するページを調整してください。
バージョン管理使ってグリモン管理するような人なら説明はいらないと思うので詳細は割愛。
Anchorにはちゃんと対応できないのはご愛嬌...。

2009年03月21日

JTPA シリコンバレー・カンファレンス 2009

JTPAのシリコンバレー・カンファレンス 2009が間もなく開催される。
何人もの知り合いが数日前からシリコンバレーに向かっているのをblogやTwitter、Skype等で報告しているのを眺めてる。
大変羨ましく思う。

行くとなれば、少なくとも数日、前日までに到着する事を考えると4,5日も日本を離れなければならないだろう。
折角、シリコンバレーに行くのなら、カンファレンスだけではなくあちこち見てまわりたいと思うのが心情だと思う。
そうなると一週間は必要だ。

しかし、申込受付開始が年末で、開催が年度末。
申込受付開始から開催日まで四ヶ月以上もあるので、年度末納期のプロジェクトがまだ始まっていない場合もある。
年度末と言えば納期だ何だで基本的にプロジェクトが殺気だっている時期だ。
この三連休でさえ、プロジェクトが火をふいていて出勤している人もいるだろう。
プロジェクトが始まっていない時期やプロジェクトの序盤に、進捗によっては休日出勤が充分ありえる年度末に長期休暇をとりますとはさすがに言えない。
JTPAは主に学生向けのカンファレンスと考えているのだろうから、この時期の開催は正しいのだろう。
しかし、社会人にとっては非常に参加しにくい事この上ない。
会社の理解があるのか、調整のつくプロジェクトに参加しているのか、とにかく運に恵まれていないと社会人にはつらい。
こんな事言ってももちろん先方の事情があるのでどうしようもないが、これは参加できない。

ぼやいても仕方がないが、自分が学生の時にこういうのがあれば良かったのにとつくづく思う。
あ、いや、学生の頃はシリコンバレーに行くなんてお金はなかったか。
片道1000円の交通費でも高いと思ってたからなぁ。

誰の口からもこんな事聞いた事ないのでとりあえず書いてみたけど、参加したくてもできなかった人は実際どう思っているのだろう。

ちなみに、JTPAは『技術を志向する日本人プロフェッショナルがシリコンバレーで働くのを支援するためのNPO団体』なのであるけど、自分はシリコンバレーで働きたいと考えているのかといえばわからない。
シリコンバレー・カンファレンスはそれを確認しに行く場所でもあると思うので、本当は参加したいんだけどね。

さてさて、参加報告と参加者がどう化けて帰ってくるのかを楽しみに待っていよう。

2009年03月22日

Canvasを使ったWii用ゲームを作ってみた

もの凄く簡単にだけどWiiでできるゲームを作った。
Wiiでインターネットを見るためには、インターネットチャンネルというものを購入しないといけない。
ただ、出た当時は試供版という形で無償でダウンロードできたので、インターネットチャンネルが入っているWiiも少なくないはず。
インターネットチャンネルはOperaをWii向けにカスタマイズしたもの。
Wii向けの独自拡張を行なっていて、Wiiリモコンからの入力値も取得できる。
ポインティング座標だけに留まらず、Wiiリモコンの傾きやセンターバーからの距離、二台目以降のWiiリモコンの各種ボタンの状態等々。
Operaなので機能的には色々使える。
Canvasタグが使えるのがわかったので、ちょっとしたゲームを作ってみた。
画面内を動きまわっているものが『獲物』で、Wiiリモコンで操作する『ピッカー』。
ピッカーは三重の円になっていて、外側の灰色の円が『捕獲境界』、内側の灰色の円が『獲物と同サイズ』、黒色・赤色・青色に変化するのが『ピッカー』本体となっている。
Wiiリモコンをひねると、ピッカー本体の大きさが変化する。
獲物を捕獲するには、ピッカー本体を捕獲境界よりも大きくして、中に獲物を入れ、Wiiリモコンをひねって捕捉境界よりも小さくする。
ピッカー本体の色は通常は黒いけど、ピッカー本体が捕捉境界よりも小さくなれば青くなる。
また、ピッカー本体内に獲物が入るとピッカー本体は赤くなる。
虫を手で捕まえるのをイメージしてもらえればわかりやすいかも。
虫を閉じ込められる大きさまで手を小さくしたら虫は手の中に入ってこない。
だから、それよりも大きく手を開き、虫が中に入ってきたら手をすぼめる。
捕獲した獲物の数も点数も制限時間も何も表示されないので、改良の予知は充分あるけど、自分の目的は充分達成したのでここまで。

正直、インターネットチャンネルでこんなことも出来ますよって任天堂はもっと開発者に提示すべきだと思う。
参考にしたサイト
以下、作成時に参考にしたサイト

2009年03月25日

AutoUsukorizeをリリース

恐怖のGreasemonkey有須子をAutoPagerizeに対応させたAutoUsukorizeをリリースしました。
AutoUsukorizeが次ページを挿入するタイミングで有須子が表示されるようになります。
これで軽快なAutoUsukorizeがより一層軽快になりますね。
本当は...
AutoPagerizeにAPIがあるのを知って実験中に思いついたので作った。
ちなみにGM_AutoPagerizeLoadedイベントとaddFilterを使ってみた。
Filter追加には他にaddDocumentFilterと言うのがある。
Filterの本来の用途は継ぎ足すページの内容を操作する為の物で、このふたつは実行のタイミングと引数が違う。
今回の場合はどっちを使ってもほとんど変わりはない。
GM_AutoPagerizeLoadedイベントは、仕様がまだ変わる可能性があるらしいので、とりあえず有須子で遊んでみた。
詳細は以下の外部リンクで。
UserScript開発の問題点
GreasemonkeyはNoScriptでは停止されないんだけど、Greasemonkeyで追加した要素をsetTimeoutで削除しようとしても実行されない。
回避する方法がないか試してみたがうまくいかなかった。
せめてNoScriptがインストールされているかどうかがわかれば良いんだけどなぁ。

2009年03月29日

Wiiのインターネットチャンネルで取得できる値を一覧表示

任天堂のインターネットチャンネルの作成方法が説明されているページには各値の取得方法が書かれています。
しかし、実際の値を表示できるサンプルページは拡張機能のみにしか対応していないため少々不便です。
そこで、Wiiのインターネットチャンネルで取得できる値を一覧表示するページを作りました。
なぜ任天堂はここまで準備しなかったのか不思議でしようがないですね。また、任天堂の公式ページには存在しないプロパティがあるので、注意が必要かもしれません。具体的には、「KpadStatus.dpdScreenX」と「KpadStatus.dpdScreenY」という値です。Operaの開発者用サイトにはWii Remote APIの説明があったらしいですが、今は見つかりません。幸い、日本語に訳していた方がいて、この方のwiki上にその名残が見られます。wikiがイタズラされているらしく、リンク先のURLがおかしくなっているようなので注意してください。
dpdScreenXとdpdScreenYは、eventのpageXとpageYに準じているようで、画面外の値は取得できません。この問題に対応するためか、dpdXとdpdYというプロパティがあり、こちらを使えば画面外の座標も取得可能です。ただし、座標系が違いますので注意してください。dpdScreenXとdpdScreenYは、公式ページには存在しないプロパティのため、いつ削除されるのかわかりません。dpdScreenXとdpdScreenYと同等の値は、dpdXとdpdY、innerWidthとinnerHeightから計算で求められますので、使用を避けるべきなのかもしれませんね。

Windowsはよく知っているけどLinuxがよくわからない開発者におすすめの記事

「binとsbinの違いって?」とか「devとかvarとかoptってなんだ?」と思っていたけどこれを読んでよく理解できた。
古い記事だけど詳しく書いてある。Linuxで開発する記事には「○○○はここに入っています」とか「△△△は□□□に入れてください」と書かれていることが多いけど、「じゃあなんでそこに入れるの?」という基本的な疑問には答えてくれない。上記の記事はこれらの事が歴史的背景をふまえて解説している。個人的には単純に覚えるのが非常に苦手で、歴史や背景や名前の由来等、体系的な情報がないと覚えないのでこうゆう記事は非常にありがたい。連載の各回のタイトルとアブストがあったので下に引用しておくので、興味がわいたら読んでみてはどうでしょうか。
連載記事 「Windowsユーザーに教えるLinuxの常識」

序章:UNIXとLinuxを振り返る
Windowsのセオリーが通用しないLinux。Linux初心者向けに、LinuxというOSの考え方/常識をゼロから伝授!

パーティション分割/非分割のセオリー
Linuxにおけるパーティションの概念はWindowsと大きく異なる。分割か非分割か? そのメリット/デメリットは?

各ディレクトリの役割を知ろう(ルートディレクトリ編)
Linuxのディレクトリには、それぞれ決まった役目と使い方がある。これを理解しなければLinuxは使えない

各ディレクトリの役割を知ろう(サブディレクトリ編)
迷宮のように入り組んだ/usrや/var。これらのディレクトリも、構造を理解してしまえば怖くない。ディレクトリ解説完結編

ユーザーとパーミッションにみるLinuxの設計思想
ユーザーの概念は、WindowsとLinuxで大きく異なっている。何がどのように違うのかを理解しておく必要がある

管理者の第一歩、viのススメ
一般ユーザーならともかく、管理者を目指すならviが使えなければ話にならない。viの基本だけでもマスターしておこう

使うほどに良さが分かる正規表現
初めは呪文のように見える正規表現。しかし、使うほどにありがたみを実感するだろう。ぜひともマスターすべし

コマンドオペレーションの魅力を再確認
GUI全盛の時代ではあるが、コマンドペースの操作の方が便利な場合もある。そして、これがLinuxの醍醐味でもある

bashで始めるシェルスクリプト基礎の基礎
手軽で効果絶大なシェルスクリプト。とにかくコマンドを列挙することから始めればいいのだから簡単だ

bashの便利な機能を使いこなそう
bashの機能を使いこなせば、Linuxはさらに使いやすく、快適になる。使い方やカスタマイズ方法をマスターしよう

Linux起動の仕組みを理解しよう[init/inittab編]
Linuxはどのように起動するのか。これを理解するには、initとその設定ファイルであるinittabがカギとなる

Linux起動の仕組みを理解しよう[rcスクリプト編]
rcスクリプトの仕組みや内容は複雑に見えて実は簡単だ。これを自分で書けるようになると、何かと便利だ
Google

タグ クラウド