Posts Tagged ‘エラー’
Firefox4でcan’t wrap XML objectsというエラーが出る件について
Firefox4にしてから主にGreasemonkeyのGM_addStyleメソッドで
TypeError: can’t wrap XML objects
というエラーが出たりすることがあります。
これはBug 609143 – E4X XML objects cannot be passed to sandboxのsandbox内でのE4X(XML)の挙動が変わった(意図的に)のが原因らしいです。(あまり詳しくないので…)
GM_addStyle(<><![CDATA[
/* 適当なCSSのコード*/
.clearfix:after {
content: "."; /* 新しい要素を作る */
display: block; /* ブロックレベル要素に */
clear: both;
height: 0;
visibility: hidden;/*表示はしない*/
}
]]></>)のような感じでE4X(XML)を直接GM_addStyleに渡しているときなどに起きています。
これを回避するためには、E4X(XML)を明示的に文字列化して渡せばよい見たいです。
GM_addStyle(String(<><![CDATA[ /* CSSコード */ ]]></>));
のようにString(E4X)するか、E4X全体をtoString()、”"+E4X のような感じで文字列化すればいい。
もしくはGreasemonkeyにはメタ情報に// @resource CSS example.css という感じで、CSSファイルをロードできるので、そのファイルをGM_addStyle(GM_getResourceText(‘CSS’));して使うなどでもいいと思います。
もしくは下のようにGM_addStyleを書き換えてしまう事でも回避できそうです。(あんまり推奨しないけど)
function GM_addStyle(css) {
if (!GM_addStyle.style) {
var head = document.getElementsByTagName("head")[0] ||
document.documentElement;
if (!head) {
return;
}
GM_addStyle.style = document.createElement('style');
GM_addStyle.style.type = 'text/css';
head.insertBefore(GM_addStyle.style, head.firstChild);
}
GM_addStyle.style.appendChild(document.createTextNode(css) + '\n');
}書き換えの参考
Constellation’s gist: 803115 — GistのようにTomblooパッチでGM_addStyleの挙動を変えてしまおうと思ったけどよく分からなくなってあきらめました。
参考
東京Node学園 1時限目のアウトラインメモ
東京Node学園 1時限目
~サーバサイドJavaScriptの幕開け~
Togetter - #tng1のまとめ
タイムテーブル
時間 | 題目 | 発表者 | Ust |
19:00-19:25 | 開場 |
|
|
19:25-19:30 | ご挨拶 / 5分でわかるNode.js | #1 04:42AM | |
19:30-20:00 | ECMAScript5時代のJavaScript再入門 | … | |
20:10-20:40 | 『非同期プログラミングの改善』のエッセンス | … | |
21:50-21:20 | Nodeにおけるテスト手法 | #2 05:49AM | |
21:30-21:50 | LT大会 |
|
|
| Kinect + node.js + Audio Data API でテルミンみたいな楽器を作る | … | |
| 「node.jsによるマルチプレイヤーネットワークゲームの可能性」 | … | |
-22:00 | 完全撤収 |
|
|
ご挨拶
Node.jsについては著者のブログを読む
Node.jsの目的はスケーラブルなネットワークプログラムを作成する
既存のI/Oライブラリがないため、位置からブロックしないライブラリを作成することができる。
ECMAScript5時代のJavaScript再入門
増えた機能
JSONサポート
配列のイテレーター
Getter, setter
Strict mode
5thは誰のためのもの
独自仕様の整理してAjaxなどから大規模なものも増えてきた。
多人数の開発やコードのりユーズのための整理
非同期処理
JavaScriptは非同期処理を書きやすいけどネストが深くなる。
JSDeferredライブラリで縦に非同期処理がかけるのとエラー処理を最後にまとめて書くことができる。
Property Descriptor
Setter/Getter
ObjectのFreeze/Sealでアクセスレベルの指定
Object.create(),cloneなど
Objectの拡張はライブラリでも似たようなことが可能だが、ESでの仕様としてあることで共通知識として利用できるため可読性などが向上する。
PhotoShare
サーバー側はRuby
HTTP経由でアプリテストすると時間がかかる。
ES5によって独自から共通へ
『非同期プログラミングの改善』のエッセンス
http://www.slideshare.net/koichik/node1
Node.jsの非同期スタイル
イベントリスナ・スタイル
onメソッドでイベント
コールバック・スタイル
APIの最後にコールバック関数を渡す
(プロミス)
今はない
Deferredみたいなメソッドチェーンもできた
コールバックスタイルの問題
無名関数を使うとネストが深くなってしまう
関数名をつけて使うとgotoもどき
try..catchがうまくいかない
改善するには
コールバックと無名関数を分離する
コールバックの役割は「次」の無名関数を読み出す
その無名関数は「アクター」と呼ばれる
アクターとコールバックを結びつける
フロー制御モジュールライブラリを使う
複数のアクターを受け取ってって、アクターにコールバック(next)を提供する。
フロー制御を導入すると
ネストが深くならない
可読性が向上する
エラー時のルーティング
アクターごとのエラー処理をしたくない
エラーが起きたら途中のアクターを飛ばす
Nodeにおけるテスト手法
Nodeにおけるテストの考え方
Assertion
require(“assert”);
Testing フレームワーク
require(“should”);
obj.should.test(“”)
Objectを拡張して、列挙されないようにしてる
require(“expresso”);
赤いシャツの人が作った
jscoverageの出力
tearDownとかない
require(“nodeunit”)
Unit系のモジュール
qunitみたいな感じ
ブラウザでも動作する
exportの代わりにthisを使うことで、どちらでも動作するコードがかける
sandbox機能
CI的な機能もあるよ
クライアントとサーバサイドどちらも同じようにかけるのは大きな利点になる
require(“Vows”);
非同期に適してる作り
require(“tobi”)
ブラウザ的なものをシミュレートしてテスト(envjsみたいな)
LT大会
Kinect + node.js + Audio Data API でテルミンみたいな楽器を作る @hakobera
http://d.hatena.ne.jp/scalar/20110324/1300983209
kinnect hackatonではXBOX360所有者がで2/20
kinect+node.js+Socket.IO
Kinect -TCP/IP - NodeJS – Socket API – ブラウザ
Kinect.jsの作成
C++実装 -> Javaラッパー -> Rhino -> JavaScript
JavaScriptでkinectで動くものが帰る
DSJ(デバイスサイドJavaScript)
現在の欠点
遅い
使ってるラッパーの制限
node.jsではない
node.jsによるマルチプレイヤーネットワークゲームの可能性 @ndruger
http://www.slideshare.net/ndruger/nodejs-7375453
リアルタイム→Node.jsなら簡単
サーバークライアントで693行程度で簡単にかける
敷居が高かったものが手軽に作成できる時代
他の参加者のまとめ
東京Node学園 1時限目にいってきた – Web::Service::Blog->new( user => ’hide_o_55’ )
東京Node学園1限目行ってきましたメモ – y-kawazの日記
詳細に書かれているので参考になる
感想
会場(リクルートアネックス1ビル B1F)も伴ってか何かゆったり広々な感じであんまりガツガツとした雰囲気がなかった。角度、距離(文字サイズなども)的にスライドを見るのがつらい部分もあった。
『非同期プログラミングの改善』のエッセンスとLTが面白かった。
時間
題目
発表者
Ust
19:00-19:25
開場
19:25-19:30
ご挨拶 / 5分でわかるNode.js
@meso
#1 04:42AM
19:30-20:00
ECMAScript5時代のJavaScript再入門
@masuidrive
…
20:10-20:40
『非同期プログラミングの改善』のエッセンス
@koichik
…
21:50-21:20
Nodeにおけるテスト手法
@Jxck_
#2 05:49AM
21:30-21:50
LT大会
Kinect + node.js + Audio Data API でテルミンみたいな楽器を作る
@hakobera
…
「node.jsによるマルチプレイヤーネットワークゲームの可能性」
@ndruger
…
-22:00
完全撤収
Jetpack SDKで生成したアドオンの名前にスペースなど入れる方法
xpiの名前変えたいのだけどよくわからん。パッケージフォルダ名とpackage.jsonを書き換えて同名にしてもcfx xpiでエラーでる。
Jetpack SDKでcfx xpiによってxpiファイルを生成して、そのアドオンをインストールするとpackage.jsonのnameに書かれていた名前がアドオンの名前になります。
しかし、package.jsonのnameはパッケージの名前なので大文字やマルチバイト文字やスペースなどが使えず自由に名前をつけようとするとエラーになります。
名前を自由につけるにはpackage.jsonにfullNameというキーを追加して、そこにスペースや大文字(マルチバイトをつけるとエラーになった…)を使った名前をつけることで、cfx xpiによって生成されたアドオンの名前に反映されます。
{
"id": "jid0-xxxxxxxxx",
"version": "0.1",
"description": "test",
"name": "test-package",
"fullName" : "THIS is TEST package",
"author": "azu"
}実際の生成の流れとしてはpackage.jsonにfullNameがなかったら、nameの中身がfullNameとして扱われるようになっているみたいです。
fullNameに日本語入れる方法はよく分かりませんでした。ユニコードエスケープしてもエラーになる。
生成されるxpiファイル自体のファイル名はnameの中身が使われるようです。
- Google Web Historyに見たページを自動記録するアドオン(Jetpack SDK) | Web scratch
- http://efcl.info/2010/0809/res1872/
- Labs/Jetpack/JEP/31 – MozillaWiki
- https://wiki.mozilla.org/Labs/Jetpack/JEP/31#Packages
iTunesが起動できない&アンインストールできない
iTunesをバージョンアップしたら、エラーがでてアンインストールできなくなり、インストールもできなくなったので解決方法のメモ。
原因はレジストリがロックされているという感じらしいけど、強制的にレジストリを削除するRegASSASSINを使ってみたりしたが、それもで禁買ったようなので、Windows Installer CleanUpを使ったところ上手くアンインストールできた。
Windows Installer CleanUpをダウンロードしてきて、Vistaの場合は管理者権限で実行するを選ばないとインストール出来ないので注意。
なぜかスタートメニューに追加され無かったのでC:\Program Files\Windows Installer Clean Upに行き、msicuu.exeを管理者権限で実行して、iTunesを選んで削除する。
そしてiTunesをインストールし直したら、起動するようになった。
エラーページを便利にする拡張機能「ErrorZilla」とキャッシュページを探す「Resurrect Pages」
Webを巡っていると404などのエラーページに遭遇することがあります。
そこで、利用者はどうするかというとあきらめてまた後でくるか、グーグルのキャッシュを覗くなどのWebサービスを利用した閲覧をためしてみたりする。
そういうWebサービスへのアクセスを助けてくれるアドオンとして「ErrorZilla」があります。
このアドオンは何かと派生が多いので、自分に合ったものを使えばいいかと。
本家ErrorZillaは更新していないので、
辺りが候補になる。CrendKingはErrorZilla Modをベースにしていてプロクシを通してのアクセスが容易にできるように改良されています。
後はほぼ同一の機能で
- Google Cache (view the page cached by Google)
- Coralize (use Coral CDN proxy to connect again)
- Wayback (view an earlier version of this page)
- Ping (use a server to ping the target server)
- Trace (trace the network route from you to the server)
- Whois (look up who owns the website)
それぞれへのリンクがエラーページ上で表示されます。
背景画像をlolifoxにしたlolifox-ErrorZillaなんてのもあります。
また同様にキャッシュへのアクセスを助けてくれるResurrect Pagesというアドオンも紹介。
Resurrect Pagesは主に検索エンジンのキャッシュページへのアクセスをナビゲーションバー上のボタンもしくは右クリックから行うことができる。
o CoralCDN
o Google Cache
o Yahoo! Cache
o The Internet Archive
o MSN Cache
o Gigablast
o WebCite
主に海外の検索エンジンが使われています。
VistaとXPのMicrosoftエラー報告ダイアログを無効にする方法
アプリケーションが強制終了などした場合に、「Microsoftへのエラー報告」というポップアップの表示を無効にする方法
Vistaでは完全に対応してないアプリを普通に終了した場合にも起きたり、根本的な解決手段をこれから得ることが難しいので、
無効にしてみた。
Vista
- スタートメニューから「コントロールパネル」を開く。
- 「システムとメンテナンス」をクリック。
- 問題のレポートと解決策のグループにある“解決策の確認方法の選択”をクリック
- “詳細設定を行います”をクリック
- “無効にします”を選択してOK
XP
- 「マイコンピュータ」を右クリックして「プロパティ」 を選択
- 詳細設定のタブを開いて「エラー報告」をクリック
- 「エラー報告を無効にする」にチェックを入れてOK
Vistaだと少し面倒くさいですが、毎回のように表示されるのがいやな人は設定してみるといいかも。
参考サイト


