<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Web scratch &#187; Jetpack</title>
	<atom:link href="http://efcl.info/tag/jetpack/feed/" rel="self" type="application/rss+xml" />
	<link>http://efcl.info</link>
	<description>フリーソフトやFirefoxなどについて、web全般なサイト</description>
	<lastBuildDate>Wed, 08 Sep 2010 05:51:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Jetpack SDKで生成したアドオンの名前にスペースなど入れる方法</title>
		<link>http://efcl.info/2010/0905/res1923/</link>
		<comments>http://efcl.info/2010/0905/res1923/#comments</comments>
		<pubDate>Sat, 04 Sep 2010 17:04:19 +0000</pubDate>
		<dc:creator>azu</dc:creator>
				<category><![CDATA[Jetpack]]></category>
		<category><![CDATA[エラー]]></category>

		<guid isPermaLink="false">http://efcl.info/?p=1923</guid>
		<description><![CDATA[

xpiの名前変えたいのだけどよくわからん。パッケージフォルダ名とpackage.jsonを書き換えて同名にしてもcfx xpiでエラーでる。
コード整形とシンタックスハイライトするjetpackを作った &#8211 [...]]]></description>
			<content:encoded><![CDATA[<div class="quote">
<blockquote title="コード整形とシンタックスハイライトするjetpackを作った - Cherenkovの暗中模索にっき" cite="http://d.hatena.ne.jp/Cherenkov/20100904/p2">
<p>xpiの名前変えたいのだけどよくわからん。パッケージフォルダ名とpackage.jsonを書き換えて同名にしてもcfx xpiでエラーでる。</p>
<p><cite><a href="http://d.hatena.ne.jp/Cherenkov/20100904/p2">コード整形とシンタックスハイライトするjetpackを作った &#8211; Cherenkovの暗中模索にっき</a></cite></p>
</blockquote>
</div>
<p>Jetpack SDKでcfx xpiによってxpiファイルを生成して、そのアドオンをインストールするとpackage.jsonのnameに書かれていた名前がアドオンの名前になります。<br />しかし、package.jsonのnameはパッケージの名前なので大文字やマルチバイト文字やスペースなどが使えず自由に名前をつけようとするとエラーになります。<br />名前を自由につけるにはpackage.jsonに<tt>fullName</tt>というキーを追加して、そこにスペースや大文字(マルチバイトをつけるとエラーになった…)を使った名前をつけることで、cfx xpiによって生成されたアドオンの名前に反映されます。</p>
<pre>{
 "id": "jid0-xxxxxxxxx",
 "version": "0.1",
 "description": "test",
 "name": "test-package",
 "fullName" : "THIS is TEST package",
 "author": "azu"
}</pre>
<p>実際の生成の流れとしてはpackage.jsonにfullNameがなかったら、nameの中身がfullNameとして扱われるようになっているみたいです。<br />fullNameに日本語入れる方法はよく分かりませんでした。ユニコードエスケープしてもエラーになる。<br />生成されるxpiファイル自体のファイル名はnameの中身が使われるようです。</p>
<dl>
<dt><strong>Google Web Historyに見たページを自動記録するアドオン(Jetpack SDK) | Web scratch</strong></dt>
<dd><a title="Google Web Historyに見たページを自動記録するアドオン(Jetpack SDK) | Web scratch" href="http://efcl.info/2010/0809/res1872/">http://efcl.info/2010/0809/res1872/</a></dd>
</dl>
<dl>
<dt><strong>Labs/Jetpack/JEP/31 &#8211; MozillaWiki</strong></dt>
<dd><a title="Labs/Jetpack/JEP/31 - MozillaWiki" href="https://wiki.mozilla.org/Labs/Jetpack/JEP/31#Packages">https://wiki.mozilla.org/Labs/Jetpack/JEP/31#Packages</a></dd>
</dl>
]]></content:encoded>
			<wfw:commentRss>http://efcl.info/2010/0905/res1923/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ページ移動時などに音を鳴らすアドオン「KIRISAKE」</title>
		<link>http://efcl.info/2010/0821/res1906/</link>
		<comments>http://efcl.info/2010/0821/res1906/#comments</comments>
		<pubDate>Sat, 21 Aug 2010 05:27:05 +0000</pubDate>
		<dc:creator>azu</dc:creator>
				<category><![CDATA[Jetpack]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[UI]]></category>
		<category><![CDATA[アドオン]]></category>
		<category><![CDATA[拡張機能]]></category>

		<guid isPermaLink="false">http://efcl.info/?p=1906</guid>
		<description><![CDATA[またJetpack SDKで1つアドオンを作成してみました。リンクをクリックしてページ移動などの通信が始まった際に、風を切り裂くような音を出すアドオンです。

KIRISAKE :: Add-ons for Firefo [...]]]></description>
			<content:encoded><![CDATA[<p>またJetpack SDKで1つアドオンを作成してみました。<br />リンクをクリックしてページ移動などの通信が始まった際に、風を切り裂くような音を出すアドオンです。</p>
<ul>
<li><a href="https://addons.mozilla.org/ja/firefox/addon/220208/">KIRISAKE :: Add-ons for Firefox</a> ダウンロード先</li>
<li><a href="http://github.com/azu/JetpackSDK/tree/master/KIRISAKE/">KIRISAKE at master from azu&#8217;s JetpackSDK &#8211; GitHub</a> ソースコード</li>
</ul>
<p>作った理由ですが、<br />移動する際に音を出すと、ちゃんとリンクをクリックできたかなどが聴覚的にも認識できるのと、上記のような音を使う事でブラウザが少し早くなったような感じがします(I shallplease)</p>
<p>という後付けの理由があったりしますが、HTML5のAudioタグを使って見たかったというのが第一の要因です。<br />そういう気分になったのは中国のJetpackerのLT資料を見つけて、pageWorkerでhtmlファイルを読み込んでその中でAudioタグを鳴らすというサンプルが載っていたので実践してみました。<br />見つけたLTの資料はこれ<a href="http://www.slideshare.net/littlebtc/jetpack-sdk-the-new-possibility-of-the-extensions-on-browser">Jetpack SDK: The new possibility of the extensions on browser</a></p>
<p>処理的にはたいしたことはやっていませんが、Jetpack SDKにはページ移動(ページを読み込みじゃなくて、通信が始まった瞬間)に反応するAPIはまだないような感じなので、nsIWebProgressを使った普通のFirefox拡張機能と同じように直に書きました。<br />Components.interfacesとか使う必要性が出てくるわけですが、Jetpack SDK0.6からはCiやCcというエイリアスがデフォルトではなくなったので、以下のようにrequireしてから使う必要があります。<br /><a href="https://dev.mozilla.jp/2010/07/jetpack-sdk-0-6/">Jetpack SDK 0.6 がリリースされました « Mozilla Developer Street (modest)</a></p>
<pre>var {Cc, Ci} = require("chrome");
</pre>
<p>ちなみにこのvar {a,b} = obj;みたいな表記は<a href="https://developer.mozilla.org/ja/New_in_JavaScript_1.7#.e5.88.86.e5.89.b2.e4.bb.a3.e5.85.a5">分割代入</a>というJavaScript 1.7からの機能を使ったもので、</p>
<pre>var Cc = require("chrome").Cc , Ci = require("chrome").Ci;
</pre>
<p>というのと同様の意味になります。一部地域ではよく見かけるので覚えておくと便利です。</p>
<ul>
<li><a href="http://nanto.asablo.jp/blog/2009/12/30/4784624">Kanasan.JS Jetpack ワークショップ: Days on the Moon</a></li>
<li><a href="http://d.hatena.ne.jp/mooz/20100729/p1">JavaScript の分割代入まとめ &#8211; mooz deceives you</a></li>
</ul>
<p>参考サイト</p>
<ul>
<li><a href="http://d.hatena.ne.jp/cou929_la/20100301/1267434283">Progress Listenersでロケーションバーのurl変更されたときに何かする &#8211; フリーフォーム フリークアウト</a></li>
<li><a href="http://piro.sakura.ne.jp/latest/blosxom/mozilla/xul/2007-01-21_splitbrowser-subbrowser.htm">Latest topics &gt; Split Browser開発のよもやま話（6）：分割されたブラウザの作り込み &#8211; outsider reflex</a></li>
</ul>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 108px; width: 1px; height: 1px; overflow: hidden;">Components.interfaces</div>
]]></content:encoded>
			<wfw:commentRss>http://efcl.info/2010/0821/res1906/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Web Historyに見たページを自動記録するアドオン(Jetpack SDK)</title>
		<link>http://efcl.info/2010/0809/res1872/</link>
		<comments>http://efcl.info/2010/0809/res1872/#comments</comments>
		<pubDate>Sun, 08 Aug 2010 17:16:16 +0000</pubDate>
		<dc:creator>azu</dc:creator>
				<category><![CDATA[Jetpack]]></category>
		<category><![CDATA[アドオン]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://efcl.info/?p=1872</guid>
		<description><![CDATA[GoogleにはGoogle &#8211; ウェブ履歴というものがあり、検索してどのページを訪ねたかなどが記録されています。またその記録は検索ページで既読リンクの色にするなどの判定にも使われています。Google検索か [...]]]></description>
			<content:encoded><![CDATA[<p>Googleには<a href="https://www.google.com/history/">Google &#8211; ウェブ履歴</a>というものがあり、検索してどのページを訪ねたかなどが記録されています。<br />またその記録は検索ページで既読リンクの色にするなどの判定にも使われています。<br />Google検索から訪ねたサイト以外のURLもウェブ履歴に登録するFirefox拡張機能を作成してみました。<br />既に</p>
<ul>
<li><a href="http://d.hatena.ne.jp/brazil/20080514/1210767708">Googleウェブ履歴を残すGreasemonkeyスクリプト</a></li>
<li><a href="http://d.hatena.ne.jp/mallowlabs/20080104/1199461216">Opera で Google Web History を使えるようにする UserJS &#8211; mallowlabsの備忘録</a></li>
</ul>
<p>などGreasemonkeyやTomblooパッチなど代わりになる手段は山ほどある気がしますが、<strong>Jetpack SDK</strong>を使いたかったのと、意外にもFirefoxアドオンとして同じ役割するものが見つからなかったので作ってみました。</p>
<p>他のスクリプトとの違いは大して無いと思いますが、できるだけ無駄な送信を控えるようにしています。</p>
<ul>
<li>最近訪れたサイトは重複送信しない(100件ぐらいでクリアされます)</li>
<li><a href="http://outgoing.mozilla.org/v1/62ec45e9d2205ac4d757b771a01ed16cc048d97e/https%3A//">https://はホストのみを送信</a></li>
<li>ローカルやIPアドレスベースのURLの場合は送らない</li>
</ul>
<p>ダウンロードはAMOからできるようにしてあります。<br />Firefoxアドオンのxpiを簡単における場所が無かったので、AMOに登録しておいてあります。</p>
<ul>
<li><a href="https://addons.mozilla.org/ja/firefox/addon/213956/">Google WebHistory Updater :: Add-ons for Firefox</a></li>
</ul>
<p>Jetpack SDKでコンパイル?前のソースコードはこちらに</p>
<ul>
<li><a href="http://github.com/azu/JetpackSDK/tree/master/Google-webhistory-updater/">Google-webhistory-updater at master from azu&#8217;s JetpackSDK &#8211; GitHub</a></li>
</ul>
<h3>Jetpack SDKで何か作るには</h3>
<p>Jetpack SDKで既に<a href="https://addons.mozilla.org/ja/firefox/user/2222641/">3つ</a>ほどアドオンを作成していますが、0.5だとJetpack prototypeとできることはそこまで変わってないです。(prototypeのギャラリー無くなったみたいですね。8個ぐらい作った気がする)<br />Jetpack SDKで作る上で参考にしたのは</p>
<ul>
<li><a href="http://www.xuldev.org/blog/?cat=42">SCRAPBLOG : Jetpack</a> 基礎的なAPIの使い方</li>
<li><a href="http://www.asukaze.net/etc/jetpack/">Jetpack SDK &#8211; あすかぜ・ねっと</a> とても参考になる</li>
<li><a href="https://jetpack.mozillalabs.com/sdk/latest/docs/#guide/getting-started">Jetpack SDK Docs</a></li>
</ul>
<p>最後のJetpack SDK Docsはcfx docsで開いて、jetpack-coreあたりに現在使えるAPIが載っているのでそれを見て使い方を調べるとAPIの使い方は分かる感じ。(Jetpack prototypeの頃よりはドキュメントにサンプルもあってマシになりました)<br />一番ハマるところはcfxとかコマンドでエラーがでるとかその辺だった気がする。<br />環境はWindows Vistaです。<br />cfx testallすら通らない場合は-aとか-bオプションを指定してみるといい。 <a href="http://d.hatena.ne.jp/Cherenkov/20100603/p1">Jetpack SDK 0.4でcfx testallを成功させる方法 (windows) &#8211; Cherenkovの暗中模索にっき</a><br />毎回オプションを付けるのが面倒になったら<a href="http://www.xuldev.org/blog/?p=697">local.json</a>を作りデフォルト値を決めてみましょう。<br />自分はjetpack用のプロファイルを作りそれを指定してます</p>
<pre>{
  "configs": {
    "default": &#91;
      "-a", "firefox",
      "-b", "C:\\Program Files\\Mozilla Firefox\\firefox.exe",
      "-P", "%appdata%\\Mozilla\\Firefox\\Profiles\\h545wqkn.jetpack"
    &#93;,
    "ff37": &#91;
      "-a", "firefox",
      "-b", "C:\\Program Files\\Mozilla Firefox 3.7\\firefox.exe",
      "-P", "C:\\Users\\admin\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\testuser"
    &#93;
  }
}</pre>
<p>package.jsonを作り、libフォルダを作りmain.jsを書いて → さあcfx runで起動しようとしたら、まずはpackage.json内にidが自動生成されます。そしてもう一度cfx runすると下のようなエラーが出てくることがあります。</p>
<pre>Traceback (most recent call last):
  File "D:\jetpack\bin\cfx", line 6, in
    cuddlefish.run()
  File "D:\jetpack\python-lib\cuddlefish\__init__.py", line 475, in run
    include_dep_tests=options.dep_tests
  File "D:\jetpack\python-lib\cuddlefish\packaging.py", line 267, in generate_bu
ild_for_target
    add_dep_to_build(dep)
  File "D:\jetpack\python-lib\cuddlefish\packaging.py", line 254, in add_dep_to_
build
    add_section_to_build(dep_cfg, "lib", is_code=True)
  File "D:\jetpack\python-lib\cuddlefish\packaging.py", line 232, in add_section
_to_build
    validate_resource_hostname(name)
  File "D:\jetpack\python-lib\cuddlefish\packaging.py", line 65, in validate_res
ource_hostname
    raise ValueError('invalid resource hostname: %s' % name)
ValueError: invalid resource hostname: jid0-英数字-フォルダ名-lib</pre>
<p>これはpackage.jsonのnameに<strong>大文字</strong>やマルチバイト文字やスペースなどが含まれていると出てきます。(んなの分かるか)<br />なので小文字英数とハイホンあたりでnameを決めておきましょう。</p>
<p>console.logはコマンドプロンプトの方にでてくるので、それを使って(他に何かあるのかなー)デバッグしながらmain.jsなどを完成させて、xpiをcfx xpiコマンドではき出せば完成です。<br />まだ設定画面やパネルなどのGUIが簡単に使えなかったりしますが、用途が合えば簡単にアドオンを作成できるのでなかなか面白いです。</p>
<dl>
<dt><strong>Google WebHistory Updater :: Add-ons for Firefox</strong></dt>
<dd><a title="Google WebHistory Updater :: Add-ons for Firefox" href="https://addons.mozilla.org/ja/firefox/addon/213956/">https://addons.mozilla.org/ja/firefox/addon/213956/</a></dd>
</dl>
]]></content:encoded>
			<wfw:commentRss>http://efcl.info/2010/0809/res1872/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Ｊｅｔｐａｃｋで何かを作ってみる(作り方など</title>
		<link>http://efcl.info/2010/0126/res1547/</link>
		<comments>http://efcl.info/2010/0126/res1547/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 07:40:04 +0000</pubDate>
		<dc:creator>azu</dc:creator>
				<category><![CDATA[Jetpack]]></category>
		<category><![CDATA[Greasemonkey]]></category>
		<category><![CDATA[LDR]]></category>
		<category><![CDATA[ステータスバー]]></category>
		<category><![CDATA[ニコニコ動画]]></category>

		<guid isPermaLink="false">http://efcl.info/?p=1547</guid>
		<description><![CDATA[最近Jetpackをいじり始めたので、何かを作りながら作り方を学んでみる。


Copy shorten URL with is.gd
 クリックするとクリップボードに今のURLを短縮したものがコピーされる。
 いわゆる [...]]]></description>
			<content:encoded><![CDATA[<p>最近<a href="https://jetpack.mozillalabs.com/">Jetpack</a>をいじり始めたので、何かを作りながら作り方を学んでみる。</p>
<div id="attachment_1549" class="wp-caption alignnone" style="width: 310px"><a href="http://efcl.info/wp-content/uploads/2010/01/sshot-2010-01-26-1.png"></a><a href="http://efcl.info/wp-content/uploads/2010/01/2010-01-26-16-38-15.png"><img class="alignnone size-medium wp-image-1550" title="2010-01-26 16-38-15" src="http://efcl.info/wp-content/uploads/2010/01/2010-01-26-16-38-15-300x84.png" alt="" width="300" height="84" /></a><p class="wp-caption-text">作ったものなど</p></div>
<p><br class="spacer_" /></p>
<ol>
<li><a href="http://jetpackgallery.mozillalabs.com/jetpacks/301">Copy shorten URL with is.gd</a><br />
 クリックするとクリップボードに今のURLを短縮したものがコピーされる。<br />
 いわゆるクリップボード機能&amp;ステータスバーに挿入を使ってみたかった。</li>
<li><a href="http://jetpackgallery.mozillalabs.com/jetpacks/320">LDR_StatusBar_Notify</a><br />
 LDRの未読件数をステータスバーに表示<br />
 LivedoorReader StatusBar Notify<br />
 http://d.hatena.ne.jp/zuzu_sion/20090520/1242900564<br />
 を現在のバージョンで動くように修正しただけです。<br />
 昔のバージョンではimportがなかったり、Jetpackが大文字でも動いてたらしい。</li>
<li><a href="http://jetpackgallery.mozillalabs.com/jetpacks/322">clipboard_display</a><br />
 クリップボードの内容をステータスバーに表示。</p>
<p> いわゆるクリップボード機能を使ってm(ry<br />
 クリップボードが変更した際に知らせてくれるようなAPIはなかったのでintervalで回してるだけ。</li>
<li><a href="http://jetpackgallery.mozillalabs.com/jetpacks/321">Nico_make_volume_corrections<br />
 </a>ニコニコ動画で再生開始時にSettingで決めたボリュームにする。</p>
<p><a href="https://developer.mozilla.org/ja/Jetpack/Storage/Settings">manifest</a>で設定画面が簡単に作れるのはいい感じ。<br />
 いわゆるGreasemonkey的なものなJetpack<br />
 サイトの範囲を指定するのにはpageModsを使用する<br />
 <a href="https://wiki.mozilla.org/Labs/Jetpack/JEP/17">Labs/Jetpack/JEP/17 &#8211; MozillaWiki<br />
 </a>unsafeWindowはwrappedJSObjectを使っちゃってるが、javascript:プロトコルでブックマークレット的にやる方がよいです。<br />
 これが<a href="http://wp.serpere.info/archives/1107">XPCNativeWrapperとunsafeWindowの間でデータを送受信する | へびにっき</a> 参考になります。</li>
</ol>
<p>JetpackのAPIは<br />
 プロファイルフォルダ\extensions\jetpack@labs.mozilla.com\content\js<br />
 のjsを読むと何があるか分かる。<br />
 解説は<a href="https://wiki.mozilla.org/Labs/Jetpack/JEPs">Labs/Jetpack/JEPs  &#8211; MozillaWiki</a>を見て、検索をかける(たいていの場合<a href="http://d.hatena.ne.jp/con_mame/">まめ畑</a>がかかります)</p>
<p><a href="http://gist.github.com/282717">azu さんのjetpackに関するメモに返信</a> に自分がメモったことに対して<a href="http://d.hatena.ne.jp/teramako/">teramako</a>さんからの指摘が書いてあります。<br />
 今Jetpackでどんなことがどのようにできるのかが何となく書いてあります。</p>
<dl>
<dt><strong>Jetpack &#8211; MDC</strong></dt>
<dd><a title="Jetpack - MDC" href="https://developer.mozilla.org/ja/Jetpack">https://developer.mozilla.org/ja/Jetpack </a> <br />
 簡素だがAPI解説がまとまってる</dd>
</dl>
<dl>
<dt><strong>Jetpack APIリファレンス | Screw-Axis</strong></dt>
<dd><a title="Jetpack APIリファレンス | Screw-Axis" href="http://screw-axis.com/jetpack/jetpack-api-referencejetpack-api-reference/">http://screw-axis.com/jetpack/jetpack-api-referencejetpack-api-reference/</a><br />
 ちょこっと古いけどわかりやすい</dd>
<dt><strong>[Jetpack] &#8211; Cli@</strong></dt>
<dd><a title="[Jetpack] - Cli@" href="http://d.hatena.ne.jp/efcl/searchdiary?word=%2a%5bJetpack%5d">http://d.hatena.ne.jp/efcl/searchdiary?word=%2a%5bJetpack%5d</a></dd>
<dd>なんかリンクいろいろ</dd>
</dl>
<dl>
<dt><strong>30分で作るJetpack Feature (1) 概要 &#8211; JavaScriptとかPerlとかPHPとかさくらとか勉強する</strong></dt>
<dd><a title="30分で作るJetpack Feature (1) 概要 - JavaScriptとかPerlとかPHPとかさくらとか勉強する" href="http://d.hatena.ne.jp/lesamoureuses/20090715/1247637734">http://d.hatena.ne.jp/lesamoureuses/20090715/1247637734</a><br />
 チュートリアル</dd>
</dl>
<p>Jetpackには<a href="https://wiki.mozilla.org/Labs/Jetpack/JEP/16">SlideBar</a>という機能もあるが今回全く触れてない。<br />
 All-in-One  Sidebarみたいなものを使えるらしい。</p>
<p><br class="spacer_" /></p>
]]></content:encoded>
			<wfw:commentRss>http://efcl.info/2010/0126/res1547/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
