<?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>memoile</title>
	<atom:link href="http://labs.bmky.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://labs.bmky.net</link>
	<description></description>
	<lastBuildDate>Thu, 22 Sep 2011 09:54:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>About</title>
		<link>http://labs.bmky.net/about/</link>
		<comments>http://labs.bmky.net/about/#comments</comments>
		<pubDate>Thu, 22 Sep 2011 09:54:13 +0000</pubDate>
		<dc:creator>szsk</dc:creator>
		
		<guid isPermaLink="false">http://labs.bmky.net/?page_id=103</guid>
		<description><![CDATA[このエントリを読んだ人は、こんなエントリも読んでいますOpera Extension: Hatena Bookmark Comments 更新]]></description>
			<content:encoded><![CDATA[このエントリを読んだ人は、こんなエントリも読んでいますOpera Extension: Hatena Bookmark Comments 更新]]></content:encoded>
			<wfw:commentRss>http://labs.bmky.net/about/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Archives</title>
		<link>http://labs.bmky.net/archives/</link>
		<comments>http://labs.bmky.net/archives/#comments</comments>
		<pubDate>Thu, 22 Sep 2011 07:16:45 +0000</pubDate>
		<dc:creator>szsk</dc:creator>
				<category><![CDATA[1]]></category>

		<guid isPermaLink="false">http://labs.bmky.net/?page_id=98</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[]]></content:encoded>
			<wfw:commentRss>http://labs.bmky.net/archives/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Skype用マイクアンプを作成</title>
		<link>http://labs.bmky.net/post/85/</link>
		<comments>http://labs.bmky.net/post/85/#comments</comments>
		<pubDate>Wed, 24 Aug 2011 13:58:35 +0000</pubDate>
		<dc:creator>szsk</dc:creator>
				<category><![CDATA[1]]></category>
		<category><![CDATA[diy]]></category>

		<guid isPermaLink="false">http://labs.bmky.net/?p=85</guid>
		<description><![CDATA[新PCを自作したのはいいけど、ひとつ問題が。 サウンドカードのマイク入力にかなりの量のノイズが載るようになってしまいました。おかげでマイクブーストをかけるとノイズがかなりうるさい状態になってしまいますが、ブーストしないと [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://bmky.net/diary/log/2509.html">新PCを自作した</a>のはいいけど、ひとつ問題が。</p>

<p>サウンドカードのマイク入力にかなりの量のノイズが載るようになってしまいました。おかげでマイクブーストをかけるとノイズがかなりうるさい状態になってしまいますが、ブーストしないとそもそも相手に音声が聞こえない程音量が小さいままです。</p>

<p>UStreamやニコニコ動画関係の実況周りを見てみましたが、要はマザーボードのマイクジャック経由だとノイズを拾ってしまうそうなので、それを回避するためにサウンドカードを増設するかマイクアンプを使うのが定番のようです。</p>

<p>サウンドカードを増設する場合は相性問題が発生する可能性があるようです。マイクアンプの場合はPCに入力する前のマイク音声を倍増するのでノイズを載せることなく音量を上げられますが、定番の<a href="http://www.amazon.co.jp/dp/B00008B5DL/bmk-22/">AT-MA2</a>でも約4500円と高いです。</p>

<p>そこで、電子工作のオーディオキットの中には安価な物があるのではないか？　と思いついたので探してみたところ、<a href="http://www.elekit.co.jp/product/50532d33323338">乾電池で使えるパワーアンプキット ベビー・アンプ [PS-3238]</a>というものを発見。DC1.8Vから動作、ステレオ・モノラルどちらでもOK、寸法約6cm四方という小型、そして定価1260円という安さ。これらにほれたので作成に踏み切ることにしました。</p>

<h2>準備</h2>

<p>PCヘッドセットから音声を取り出してアンプで増幅してPCに繋ぐので、ヘッドセットからアンプに繋ぐ為のステレオジャック、アンプからPCに繋ぐ為のステレオプラグ、アンプへの配線が正しく行えるか不安なので配線を容易にする為のターミナル、そして電源用に電池ケースを購入しました。</p>

<h2>組み立て</h2>

<p>説明書通りにササっとはんだ付け。部品点数が少ないので15分ぐらいで終わりました。端子の接続の仕方でステレオとモノラルを切り替えられましたが、マイク入力はモノラル音声なのでモノラル接続で作成しました。</p>

<p>PCマイクはステレオプラグですが、実際には3極のうち1極が音声なので、ジャックに挿した上で音声端子をアンプにモノラルとして接続し、アンプの出力をステレオプラグに繋いでPCに接続します。</p>

<h2>失敗</h2>

<p>実際に接続してみましたが、マイクの音声は全く出ませんでした。キットの組み立てがまずかったのか？　と思いましたが半田不良箇所は見付かりませんでした。そこで、試しに手持ちのポータブルオーディオプレーヤーをアンプの入力に接続してみたところ、音楽がPCから流れ、アンプのボリュームで音量の調節が可能でした。</p>

<p>つまり、アンプの組み立ては成功しているし、プレーヤーからPCへの接続も問題無い。となると問題はマイクですが…マイクを直接PCに挿せば、ブースト前提とは言え音は出ます。</p>

<p>そこでPC用のマイクについて調べてみると、PC用のヘッドセットやスタンドマイクはコンデンサマイクといって、<strong>動作するのに別電源が必要</strong>らしく、通称バイパス回路と呼ばれるものを用意する必要があるそうです。</p>

<p><a href="http://tokyo-ct.net/usr/kosaka/for_students/H8/Microphone/microphone.html">コンデンサマイクの出力をH８CPUのADコンバータに取り込むための増幅器</a></p>

<p>こちらのページ上部にある「コンデンサマイクロフォンの使い方」がバイパス回路で音を増幅している様子らしいです。マイクの音声がアンプへ繋がるまでの間に、電源と抵抗とコンデンサを繋げばいいらしいので、単三電池2本をバイパス用電源として2.2kΩの抵抗と10μFのコンデンサを接続したところ（昔使いそびれたパーツが残ってた）、見事にマイクの音声が増幅されて鳴らされました。（抵抗とコンデンサの値の根拠は分かりません。失念しましたが、どこかのWebサイトに3V電源使用時にこの値を使用していました。）</p>

<p>アンプのボリュームを限界まで回すとハウリングが起こるほどに増幅されるので、半分程度に抑えて、後はPC側で調整するようにしました。</p>

<h2>アンプ構成の見直し</h2>

<p>現状ではバイパス用単三<em>2電池ケースとアンプ用単三</em>4電池ケースがぶら下がっている状態なので非常にかさばります。</p>

<p><a href="http://labs.bmky.net/files/2011/08/micamp02.jpg"><img src="http://labs.bmky.net/files/2011/08/micamp02-300x225.jpg" alt="micamp02" title="micamp02" width="300" height="225" class="alignnone size-medium wp-image-89" /></a><br />
▲かさばるし見た目も悪い…</p>

<p>バイパス回路の電源はほとんど電力を消費しないらしいので、まずはこれをボタン電池に交換しました。</p>

<p>次にアンプ用の電源ですが、PCマイクかPCのどちらかに接続したままだと電池を消耗してしまうらしく、数日放置したら電池が空になっていました。</p>

<p>そこでスイッチを取り付けて使用時のみONにする方向にしたいのですが、ケースに内蔵すると電池交換時が面倒で、外付けにするとかさばるのでどうしたものかと考えましたが、基本的に一度設置したら動かさないので、ケースの上に電池ケースを輪ゴムで固定して、未使用時は電池を1本だけ外すという非常にアナログな手法にしました。</p>

<h2>完成</h2>

<p><a href="http://labs.bmky.net/files/2011/08/micamp03.jpg"><img src="http://labs.bmky.net/files/2011/08/micamp03-300x225.jpg" alt="micamp03" title="micamp03" width="300" height="225" class="alignnone size-medium wp-image-90" /></a></p>

<p>掛かった費用は以下の通り。</p>

<table>
<thead>
<tr>
  <th>材料</th>
  <th align="right">価格</th>
</tr>
</thead>
<tbody>
<tr>
  <td><a href="http://www.elekit.co.jp/product/50532d33323338">アンプキット</a></td>
  <td align="right">1260円</td>
</tr>
<tr>
  <td>ステレオプラグ</td>
  <td align="right">80円</td>
</tr>
<tr>
  <td>ステレオジャック x 2個</td>
  <td align="right">180円</td>
</tr>
<tr>
  <td>2Pターミナル x 2個</td>
  <td align="right">100円</td>
</tr>
<tr>
  <td>ボタン電池 CR2032</td>
  <td align="right">50円</td>
</tr>
<tr>
  <td>電池ケース 単三x2</td>
  <td align="right">80円</td>
</tr>
<tr>
  <td>電池ケース 単三x4</td>
  <td align="right">80円</td>
</tr>
<tr>
  <td>アンプ用ケース（100均タッパー）</td>
  <td align="right">100円</td>
</tr>
<tr>
  <td>ステレオプラグケーブル</td>
  <td align="right">200円</td>
</tr>
<tr>
  <td>合計</td>
  <td align="right">2130円</td>
</tr>
</tbody>
</table>

<p>手間暇掛かってますが、完成品の約半額で作成できました。価格の割にはノイズも入らずに十分すぎるほど音量を増幅できるので、電子工作が可能ならコストパフォーマンスは非常に良いです。</p>

<p>後で知りましたが、<a href="http://www.elekit.co.jp/product/4e542d35">超小型マイクアンプユニットキット マイクアンプ [NT-5]</a>というものがあり、こちらは定価840円とさらにリーズナブル。次に作る機会があったらこちらにしようと思います。</p>
<div id="wherego_related"><h2>このエントリを読んだ人は、こんなエントリも読んでいます</h2><ul><li><a href="http://labs.bmky.net/post/71/" rel="bookmark" class="wherego_title">Opera Extension 試作品: Hatena Bookmark Comments</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://labs.bmky.net/post/85/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Opera Extension: Hatena Bookmark Comments 更新</title>
		<link>http://labs.bmky.net/post/80/</link>
		<comments>http://labs.bmky.net/post/80/#comments</comments>
		<pubDate>Sat, 15 Jan 2011 11:13:06 +0000</pubDate>
		<dc:creator>szsk</dc:creator>
				<category><![CDATA[1]]></category>
		<category><![CDATA[extension]]></category>
		<category><![CDATA[opera]]></category>

		<guid isPermaLink="false">http://labs.bmky.net/?p=80</guid>
		<description><![CDATA[Opera 11.00にてopera.extension.tabs.getFocusedでページ内のiframeと通信してしまう現象に遭遇したので、更新しました。 htbcomment.oex ver 0.2 例えば、と [...]]]></description>
			<content:encoded><![CDATA[<p>Opera 11.00にてopera.extension.tabs.getFocusedでページ内のiframeと通信してしまう現象に遭遇したので、更新しました。</p>

<p><a href="http://labs.bmky.net/files/2011/01/htbcomment.oex">htbcomment.oex ver 0.2</a></p>

<p>例えば、とあるページの中にAmazonの広告がiframeで埋め込まれていた場合、タブのfocusイベントでは正常にWebページと通信できていましたが、popupからのpostmessage後のmessageイベント中だとなぜかiframeと通信してしまいます。getFocused()で返ってきたオブジェクトの中身がiframeのものになっている状態です。</p>

<p>popupからbackgroundを介してinjectedと直接通信する作りになっていたので、表示しているページのDOM要素等を正確に取得することができません。</p>

<pre class="brush: javascript;">
opera.extension.tabs.addEventListener(&quot;focus&quot;, function() {
  var tab = opera.extension.tabs.getFocused();
  if(tab &amp;&amp; tab.url) {
    opera.postError(tab.url); // =&gt; hogehoge.jp/
  }
}, false);

opera.extension.onmessage = function(e) {
  if(e.data.act == &quot;get_url&quot;) { // from popup
    var tab = Oex.tabs.getFocused();
    if(tab &amp;&amp; tab.url) {
      opera.postError(tab.url); // =&gt; rcm-jp.amazon.co.jp/e/cm?...
    }
  }
}
</pre>

<p>focus時は正常に取得できているようなので、focus時にキャッシュしておいて、messageイベント中はgetFocusedを利用せずにキャッシュしたタブオブジェクトからpostMessageすれば正常にDOM要素等も取れるかと思ったら、通信先はキッチリiframeでした。</p>

<pre class="brush: javascript;">
var curtab = null;
opera.extension.tabs.addEventListener(&quot;focus&quot;, function() {
  var tab = opera.extension.tabs.getFocused();
  curtab = tab ? tab : null;
  opera.postError(curtab.url); // =&gt; hogehoge.jp/
}, false);

opera.extension.onmessage = function(e) {
  if(e.data.act == &quot;get_url&quot;) { // from popup
    if(curtab &amp;&amp; curtab.url) {
      opera.postError(curtab.url); // =&gt; hogehoge.jp/
      curtab.postMessage(&quot;&quot;); // =&gt; injected script in rcm-jp.amazon.co.jp/e/cm?... 
    }
  }
}
</pre>

<p>幸い、Hatena Bookmark Commentsはurlとtitleだけ取れればいい上に、tabオブジェクトからtitleが参照できることを知ったので、この不具合はすぐに修正できました。</p>

<p>直接通信しなければいいので回避方法はいくらでもありますが、postMessageで直接やりとりするような場合は注意したいです。</p>
<div id="wherego_related"><h2>このエントリを読んだ人は、こんなエントリも読んでいます</h2><ul><li><a href="http://labs.bmky.net/post/50/" rel="bookmark" class="wherego_title">OperaのUserScriptをExtensionに変換できるかもしれないExtension</a></li><li><a href="http://labs.bmky.net/post/71/" rel="bookmark" class="wherego_title">Opera Extension 試作品: Hatena Bookmark Comments</a></li><li><a href="http://labs.bmky.net/post/38/" rel="bookmark" class="wherego_title">格安ホームサーバー機購入</a></li><li><a href="http://labs.bmky.net/post/85/" rel="bookmark" class="wherego_title">Skype用マイクアンプを作成</a></li><li><a href="http://labs.bmky.net/post/62/" rel="bookmark" class="wherego_title">Opera 11に導入したExtension色々</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://labs.bmky.net/post/80/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Opera Extension 試作品: Hatena Bookmark Comments</title>
		<link>http://labs.bmky.net/post/71/</link>
		<comments>http://labs.bmky.net/post/71/#comments</comments>
		<pubDate>Tue, 11 Jan 2011 11:52:47 +0000</pubDate>
		<dc:creator>szsk</dc:creator>
				<category><![CDATA[1]]></category>
		<category><![CDATA[extension]]></category>
		<category><![CDATA[opera]]></category>

		<guid isPermaLink="false">http://labs.bmky.net/?p=71</guid>
		<description><![CDATA[htbcomment.oex ファイルを保存後、Operaのウインドウにドラッグ&#38;ドロップするとインストールすることができます。 ツールバーのボタンに現在見ているページのはてなブックマークでブックマークされている [...]]]></description>
			<content:encoded><![CDATA[<p><a href='http://labs.bmky.net/files/2011/01/htbcomment.oex'>htbcomment.oex</a></p>

<p>ファイルを保存後、Operaのウインドウにドラッグ&amp;ドロップするとインストールすることができます。</p>

<p>ツールバーのボタンに現在見ているページのはてなブックマークでブックマークされている数を表示し、ボタンをクリックするとポップアップでコメントを表示します。設定でポップアップウインドウのサイズとユーザーアイコンの表示/非表示の切り替えが可能です。<a href="http://b.hatena.ne.jp/guide/chrome_extentions">はてなブックマーク Chrome拡張</a>のシンプル版というか劣化版です。</p>

<p><a href="http://labs.bmky.net/files/2011/01/20110111_htboex.png"><img src="http://labs.bmky.net/files/2011/01/20110111_htboex.png" alt="20110111_htboex" title="20110111_htboex" width="432" height="223" class="alignnone size-full wp-image-73" /></a></p>

<p><a href="http://dev.opera.com/articles/view/getting-started-with-opera-extensions/">Getting started with Opera extensions</a>と<a href="http://www.opera.com/docs/apis/extensions/">Opera Extensions API guides</a>を読みながら、Extension開発でよく使われるであろう機能を一通り実装してみようと思って、このExtensionを作成しました。</p>

<ul>
<li>popup / background / injected それぞれの間でのデータの送受信</li>
<li>クロスドメインアクセス</li>
<li>Widgetによるデータの保存</li>
<li>設定ページの適用</li>
</ul>

<p>などなど。おかげでどういったものが作れそうなのかがある程度分かりました。ローカルへのアクセスは無理なようなので、UserScript以上Unite/Widget未満ってとこですかね。</p>

<p>自動アップデート付きでExtensionをインストールさせるには公式ページで公開してもらわなければいけないのがちと不満ですが、それ以外はとくに難しい箇所もなくサクサク作れるのがいいと思いました。</p>
<div id="wherego_related"><h2>このエントリを読んだ人は、こんなエントリも読んでいます</h2><ul><li><a href="http://labs.bmky.net/post/62/" rel="bookmark" class="wherego_title">Opera 11に導入したExtension色々</a></li><li><a href="http://labs.bmky.net/post/80/" rel="bookmark" class="wherego_title">Opera Extension: Hatena Bookmark Comments 更新</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://labs.bmky.net/post/71/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Opera 11に導入したExtension色々</title>
		<link>http://labs.bmky.net/post/62/</link>
		<comments>http://labs.bmky.net/post/62/#comments</comments>
		<pubDate>Fri, 07 Jan 2011 05:51:32 +0000</pubDate>
		<dc:creator>szsk</dc:creator>
				<category><![CDATA[1]]></category>
		<category><![CDATA[extension]]></category>
		<category><![CDATA[opera]]></category>

		<guid isPermaLink="false">http://labs.bmky.net/?p=62</guid>
		<description><![CDATA[Opera 11からOpera Extensionという、いわゆる拡張に対応するようになったので、導入したExtensionを紹介します。 Translator 選択したテキストをGoogle Translateで翻訳、 [...]]]></description>
			<content:encoded><![CDATA[<p>Opera 11からOpera Extensionという、いわゆる拡張に対応するようになったので、導入したExtensionを紹介します。</p>

<h2><a href="https://addons.opera.com/addons/extensions/details/translator/0.3-f/">Translator</a></h2>

<p>選択したテキストをGoogle Translateで翻訳、というか、Google Translateの翻訳フォームをポップアップに表示する、が正しいかも。</p>

<h2><a href="https://addons.opera.com/addons/extensions/details/simple-todo-manager/2.4/">Simple ToDo Manager</a></h2>

<p>To-Do管理。列挙して消化したら消すだけ。ツールバーにはタスク数を表示するという、本当にシンプル。外部サイトを使わないローカル保存。</p>

<h2><a href="https://addons.opera.com/addons/extensions/details/to-read-sites/2.1-6/">To-Read sites</a></h2>

<p>いわゆる「あとで読む」。追加したサイトはクリックすると開きつつリストから削除される。削除されないようにロックすることも可能。</p>

<p>追加するのにいちいちツールバーのボタンをクリックして、ポップアップのAddボタンをクリックしなければいけないので、ショートカットキー一発で登録ができると嬉しいかも。</p>

<h2><a href="https://addons.opera.com/addons/extensions/details/popup-statusbar/0.4.1/?display=en">Popup statusbar</a></h2>

<p>Google Chrome風のステータスバーを表示。</p>

<h2><a href="https://addons.opera.com/addons/extensions/details/linkredirector/1.4-C/">LinkRedirector</a></h2>

<p>Google画像検索等のクッションページを排除して、直接アクセスできるようにする。</p>

<h2><a href="https://addons.opera.com/addons/extensions/details/image-autosizer/1.4/">Image Autosizer</a></h2>

<p>開いた画像をウインドウ幅に合わせて調整してくれる。</p>

<h2><a href="https://addons.opera.com/addons/extensions/details/image-preview-popup/2.4-C_en/">Image Preview Popup</a></h2>

<p>リンク先の画像をポップアップで表示する。</p>

<h2><a href="https://addons.opera.com/addons/extensions/details/fast-search/1.1-3/">Fast search</a></h2>

<p>テキストを選択してSキーを押すとバックグラウンドで検索できる。</p>

<h2><a href="https://addons.opera.com/addons/extensions/details/clipper/1.0/">Clipper</a></h2>

<p>Ctrl+Cでコピーしたテキストを蓄積していく。ブラウザを閉じるかExtensionを無効化するとリセットされる。</p>

<h2><a href="https://addons.opera.com/addons/extensions/details/binfix/1.1/">BinFix</a></h2>

<p>圧縮ファイル等を開いてもファイル保存ダイアログが表示されずにバイナリがそのまま表示されてしまうような場合、正常にファイルとしてダウンロードできるようにする。</p>

<h2><a href="http://ss-o.net/opera/extension/">AutoPatchWork</a></h2>

<p>AutoPagerizeクローン。現在のページに次のページの要素を継ぎ足していく。</p>

<h2><a href="https://addons.opera.com/addons/extensions/details/open-in-background-with-long-press/1.0.2/">open-in-background-with-long-press</a></h2>

<p>リンクをクリック長押しするとバックグラウンドでページを開く。ホイールクリックよりは操作コストが少ないのが魅力的。</p>

<h2><a href="https://addons.opera.com/addons/extensions/details/snap-links/1.1/?display=en">Snap Links</a></h2>

<p>マウスドラッグで枠が表示されるようになり、枠にリンクを複数含むようにしてマウスボタンを放すと、含んだ全てのリンクを開いてくれる。</p>

<p><a href="http://my.opera.com/community/forums/topic.dml?id=206662">User Script版</a>では可能だった、Ctrlキーで動作、現在のタブに開く、重複リンクを開く、といった機能が省かれている。</p>

<p>作者は同じなので、今後対応されるとは思う。</p>

<h2><a href="https://addons.opera.com/addons/extensions/details/slim-scrollbar/0.7/">Slim ScrollBar</a></h2>

<p>細いスクロールバーを表示する。このスクロールバーはスクロール直後に数秒だけ表示されてフェードアウトしていくので、スクロールバー非表示環境だけどスクロール位置は確認したい、という時に便利。</p>

<p>導入後、「設定（Ctrl+F12）＞詳細設定タブ＞閲覧＞スクロールバーを表示する」のチェックを外してデフォルトのスクロールバーを非表示にしよう。</p>

<h2><a href="https://addons.opera.com/addons/extensions/details/easy-youtube-video-downloader-for-opera/1.3/?display=en">Easy Youtube Video Downloader For Opera</a></h2>

<p>Youtubeの動画ページに動画をダウンロードするインターフェースを追加する。</p>

<h2><a href="https://addons.opera.com/addons/extensions/details/youtube-autoplay-killer/1.0/">Youtube Autoplay Killer</a></h2>

<p>Youtubeの動画ページを開いた際に自動で再生が始まるのを防ぐ。それだけ。</p>

<h2><a href="https://addons.opera.com/addons/extensions/details/youtube-adsfree/1.1/">YouTube AdsFree</a></h2>

<p>Youtubeの動画再生時に表示される広告を表示しないようにする。</p>

<h2>UserScriptから変換したExtension</h2>

<h3><a href="http://d.hatena.ne.jp/os0x/20090317/1237274224">word highlight</a></h3>

<p>Google検索結果及び結果から飛んだサイトで検索キーワードをハイライトする。</p>

<h3><a href="http://d.hatena.ne.jp/edvakf/20090723/1248365807">jaro.js</a></h3>

<p>Google検索にてスパムリンクを分かりやすく表示する。</p>

<h3><a href="http://userscripts.org/scripts/show/36688">Text URL Linker</a></h3>

<p>リンクになっていないURLをリンクにする。2chのh抜きURL等。</p>

<h3><a href="http://userjs.org/scripts/browser/enhancements/link-alert">Link alert</a></h3>

<p>リンクにカーソルを載せると、リンクの種類に応じてアイコンが表示されるようになる。別タブ・各種メディアアイコン等。</p>

<h2>雑感</h2>

<h3>ツールバーへボタンを追加するExtensionについて</h3>

<p>GoogleChrome同様、Extensionを入れれば入れるほどツールバーを圧迫するので、製作する場合はツールバーにボタンを追加するのが本当に必要かどうか考えるべきだと思います。</p>

<p>例えば、上で紹介したYoutube Autoplay Killerは機能のON/OFFを切り替える為だけにボタンを追加しています。Opera Extensionでは専用の設定ページを用意することも可能なので、頻繁に切り替えないような設定ならそちらで行うべきです。そもそも、Youtube Autoplay Killerは自動再生のON/OFFのみの機能なので、OFFにしたい場合は拡張を無効化すれば事足ります。</p>

<h3>それ○○○でよくね？</h3>

<p>現在公開されているExtensionの中にはExtensionにするどころか、Operaのメニューを弄るだけ、Bookmarkletで十分、UserScriptで全て済んでしまうExtensionも多々存在します。</p>

<p>しかし、Operaの知識がほとんど無い人でもExtensionを導入するだけでこれらの恩恵を受けられるというのは非常に重要だと思うので、Operaを使い込んでる玄人から見てくだらないと思うようなものでも、自分が便利だと判断したら、どんどんExtensionにしてしまえばいいんじゃないかと思います。</p>

<p><a href="http://labs.bmky.net/post/50/">UserScriptをExtensionに変換する</a>のを試みてるのもそういった考えがあってのことです。</p>

<h3>拡張管理ページについて</h3>

<p>今現在Extensionを作成中・実験用含めて30前後導入していますが、OperaのExtension管理ページがホイールを回してもスクロール量が非常に小さく、PageUp・PgDown・Home・Endキーが効かないので目的のExtensionを探すのが一苦労で仕方無いです。ここらへん、なんとかなりませんかね？</p>

<h2>合わせて読みたいかもしれない</h2>

<ul>
<li><a href="http://mozilla-remix.seesaa.net/pages/user/iphone/article?article_id=174384210">【Opera 11】にインストールした20個の拡張機能。</a></li>
<li><a href="http://az-store.nrym.org/tips/opera/extension">エクステンション（拡張機能）</a></li>
<li><a href="http://ja.opera-wiki.com/%E5%85%AC%E5%BC%8F%E3%82%A8%E3%82%AF%E3%82%B9%E3%83%86%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E7%B4%B9%E4%BB%8B">公式エクステンションの紹介</a></li>
</ul>
<div id="wherego_related"><h2>このエントリを読んだ人は、こんなエントリも読んでいます</h2><ul><li><a href="http://labs.bmky.net/post/71/" rel="bookmark" class="wherego_title">Opera Extension 試作品: Hatena Bookmark Comments</a></li><li><a href="http://labs.bmky.net/post/80/" rel="bookmark" class="wherego_title">Opera Extension: Hatena Bookmark Comments 更新</a></li><li><a href="http://labs.bmky.net/post/85/" rel="bookmark" class="wherego_title">Skype用マイクアンプを作成</a></li><li><a href="http://labs.bmky.net/post/38/" rel="bookmark" class="wherego_title">格安ホームサーバー機購入</a></li><li><a href="http://labs.bmky.net/post/50/" rel="bookmark" class="wherego_title">OperaのUserScriptをExtensionに変換できるかもしれないExtension</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://labs.bmky.net/post/62/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>OperaのUserScriptをExtensionに変換できるかもしれないExtension</title>
		<link>http://labs.bmky.net/post/50/</link>
		<comments>http://labs.bmky.net/post/50/#comments</comments>
		<pubDate>Sun, 26 Dec 2010 10:38:46 +0000</pubDate>
		<dc:creator>szsk</dc:creator>
				<category><![CDATA[1]]></category>
		<category><![CDATA[extension]]></category>
		<category><![CDATA[opera]]></category>

		<guid isPermaLink="false">http://labs.bmky.net/?p=50</guid>
		<description><![CDATA[us2oex.oex 2011/1/7 ちょっと更新。作者名やバージョンも拾うようにして、ポップアップを表示しないようにしました。 非公式Extensionなので、右クリックから保存後Operaのウインドウにドラッグ&#038;a [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://labs.bmky.net/files/2010/12/us2oex.oex">us2oex.oex</a></p>

<p><strong>2011/1/7 ちょっと更新。作者名やバージョンも拾うようにして、ポップアップを表示しないようにしました。</strong></p>

<p>非公式Extensionなので、<strong>右クリックから</strong>保存後Operaのウインドウにドラッグ&amp;ドロップしてください。</p>

<p>インストール後、ツールバーにパズルのピースのようなボタン（設定してないのでデフォ）が表示されるので、Web上のUserScriptファイルか、ローカルのUserScriptファイルをOperaで開いた状態で押して下さい。</p>

<p>妙なポップアップの後にZipファイルのダウンロードダイアログが表示されます。拡張子をoexにすれば、名前は適当で構いません。</p>

<p>保存したoexファイルをOperaのウインドウにドラッグ&amp;ドロップしてください。</p>

<h2>注意</h2>

<ul>
<li>精度はあまり良くないです。<strong>動いたらラッキー程度に思ってください</strong>。</li>
<li>上書き更新とかできません。同じスクリプトをインストールする場合は、先にアンインストールしてください。</li>
</ul>

<h2>やってること</h2>

<ol>
<li>UserScriptのソースを開いているページから取得</li>
<li>グローバルがwindowではなくなってるので、window.を付加してあげる</li>
<li>Greasemonkeyなら、DOMContentLoaded後に動作するようにしてあげる</li>
<li>config.xml、index.htmlをでっちあげる</li>
<li><a href="http://d.hatena.ne.jp/amachang/20081130/1228029751">JavaScript 内で無圧縮 ZIP を作って Data URI を生成するライブラリを作りました &#8211; IT戦記</a></li>
<li>完成</li>
</ol>

<p>一応手元のUserScriptは大体動いていますが、以下のスクリプトは今のところ対応していません。</p>

<ol>
<li>複数ファイルで動作するもの</li>
<li>iframeを操作するもの</li>
</ol>

<h2>window.を付加する代わりに…</h2>

<p>this.document = window.documentと、ひたすら列挙するほうが楽ですが、何が起こるか分からないので、とりあえず力技で変換してます。</p>

<h2>いちいちzipが面倒</h2>

<p>一応、application/x-opera-extensionをつけてあげれば一発インストールは可能ですが、何か怖いのでとりあえず様子見。</p>

<h2>その他</h2>

<p>とりあえずで作ったので、インターフェース等が最悪です。おいおい直すかもしれません。あと、変換できなかったスクリプトを教えて頂けると、余裕を見て対応したいと思います。UserScriptとInjected Scriptの仕様の違いが全然分かっていないので、参考にしたいです。</p>
<div id="wherego_related"><h2>このエントリを読んだ人は、こんなエントリも読んでいます</h2><ul><li><a href="http://labs.bmky.net/post/38/" rel="bookmark" class="wherego_title">格安ホームサーバー機購入</a></li><li><a href="http://labs.bmky.net/post/23/" rel="bookmark" class="wherego_title">opera:config用CSSをできるだけ楽に生成</a></li><li><a href="http://labs.bmky.net/post/80/" rel="bookmark" class="wherego_title">Opera Extension: Hatena Bookmark Comments 更新</a></li><li><a href="http://labs.bmky.net/post/71/" rel="bookmark" class="wherego_title">Opera Extension 試作品: Hatena Bookmark Comments</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://labs.bmky.net/post/50/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>格安ホームサーバー機購入</title>
		<link>http://labs.bmky.net/post/38/</link>
		<comments>http://labs.bmky.net/post/38/#comments</comments>
		<pubDate>Mon, 13 Sep 2010 12:43:59 +0000</pubDate>
		<dc:creator>szsk</dc:creator>
				<category><![CDATA[1]]></category>
		<category><![CDATA[server]]></category>

		<guid isPermaLink="false">http://labs.bmky.net/?p=38</guid>
		<description><![CDATA[Linuxサーバー専用機が欲しかったのですが、前提条件として 今あるパーツを使い回せる（3.5インチHDD、DDR2-800メモリ） 省電力 ケースはスリム 1万5千円以内 できればACアダプタ マザーボードはIntel [...]]]></description>
			<content:encoded><![CDATA[<p>Linuxサーバー専用機が欲しかったのですが、前提条件として</p>

<ul>
<li>今あるパーツを使い回せる（3.5インチHDD、DDR2-800メモリ）</li>
<li>省電力</li>
<li>ケースはスリム</li>
<li>1万5千円以内</li>
<li>できればACアダプタ</li>
</ul>

<p>マザーボードはIntelの<a href="http://www.amazon.co.jp/o/ASIN/B003374OWW/bmk-22/">D510MO</a>で決定済み。マザーボードにデュアルコアHTなCPUが乗って省電力なくせに実売価格8千円以下の優れもの。</p>

<p>これが入るACアダプタ付きMini-ITXケースを探しましたが、どれもこれも2.5インチベイオンリー。3.5インチベイ有りになると途端に小型の電源搭載に。</p>

<p>どうせ使い回すHDDは省電力低発熱仕様。わざわざ高いお金払ってACアダプタケース+2.5インチHDDを買ったとしても消費電力では5W程度しか差が無いので、その差を埋めるには何千時間稼働させればよいのか。</p>

<p>というわけで3.5インチベイ且つスリムケースで安いやつに妥協して探し続けたところ、前述のベアボーンを発見。</p>

<p>実売1万2千円でD510搭載マザボ+電源付きスリムケース。搭載マザボがFOXCONNのD51Sになってしまいますがこれは安い。FOXCONNは変態マザーボードメーカーとして有名ですが、極限られた機能しか使わないサーバー用となら問題無いだろう、というわけでポチっと購入。HDDは手元に余っていたWestern DigitalのWD10EADS。メモリはメインPCの3GBから1GBを1枚抜いて使用します。</p>

<h2>消費電力</h2>

<p>アイドル時は27W、高負荷時でも30Wでした。扇風機の弱回転とほぼ一緒です。非常に省電力。24時間1ヶ月稼働しても電気料金は400円以下です。</p>

<h2>エアフローを確保せよ</h2>

<p>ベアボーンなので商品が到着したらケースを開けてHDDを入れて終了。そのままサクッとCentOS5.5をインストールしましたが・・・熱い！　メインPCのCPU温度50度、HDD温度40度なのに、サーバー機はCPU55度、HDD47度。</p>

<p>それもそのはず、<a href="http://www.links.co.jp/items/foxconn-barebone/r10d2.html">R10-D2の仕様のページ</a>の写真を見て貰えば分かりますが、ケース内に存在するファンはCPU用の40mmと、電源の排気ファンのみ。しかも電源の排気ファンは無駄に静音なので排気が全然足りない。これでは熱がこもって仕方が無い。</p>

<p><a href="http://club.coneco.net/user/15291/review/39924/">conecoの製品レビュー</a>でL字金具で無理矢理吸気ファンを付けている方がいましたが、手元に120mmファンしか無い上にL字金具も無いのでどうしたもんかと。それに、同じように吸気FANを付けたとしても、HDDが冷えないままでは困ります。</p>

<p>そこで、負圧を利用してHDDを冷却する方法を思いつきました。</p>

<p>通常PCケース内の吸気量が排気量を上回ると、ケース内の穴という穴から空気が出て行こうとします。（気圧を一定に保とうとするため）</p>

<p>その逆で、ケース内の排気量が吸気量を上回ると、ケース内の穴という穴から空気を吸い込みます。現在電源の排気ファンが唯一の排気なので、もう一つそれなりの排気を生み出せば、自然と吸気されるのではないかと考えました。</p>

<p><a href="http://www.links.co.jp/items/r10d26.jpg">商品仕様ページのシャドウベイの写真</a>を見て貰うと分かるのですが、シャドウベイの前には無数の穴が開けられています。最も、通常はフロントベイを閉めるのでここから風は入りません。</p>

<p>しかし、負圧状態にすれば隙間からも吸気してくれるはずなので、結果敵にシャドウベイが冷やされるのではないか？と思いました。</p>

<p>そこで、手持ちの120mmファンをケースのサイドパネルの通気口に固定します。固定する適当な道具が見付からなかったので<strong>ネジラーで固定しました</strong>。</p>

<p><a href="http://labs.bmky.net/files/2010/09/side.jpg"><img src="http://labs.bmky.net/files/2010/09/side-300x225.jpg" alt="side" title="side" width="300" height="225" class="alignnone size-medium wp-image-41" /></a></p>

<p>そして余計な空気の流れをカットする為、背面の穴をアルミテープで塞ぎました。これで電源とサイドパネルからのみ排気されるはずです。</p>

<p><a href="http://labs.bmky.net/files/2010/09/rear.jpg"><img src="http://labs.bmky.net/files/2010/09/rear-300x225.jpg" alt="rear" title="rear" width="300" height="225" class="alignnone size-medium wp-image-42" /></a></p>

<p>温度を計測したところ、先程よりもかなり低く、CPU52度、HDD42度という、メインPC+2度という素晴らしい状態に。これなら安心です。</p>

<h2>R10-D2雑感</h2>

<p>付属電源のコネクタがSATA電源2つのみ、拡張がPCI1つのみ、映像アナログのみと、Windowsで使おうとすると結構ひどい構成ですが、サーバーメインで考えれば無駄が少ないので丁度いいんじゃないかと。</p>

<p>静音化したい場合はCPUについてる40mmファンが結構うるさいので、妥協したくないならACアダプタケース+SSD+D510MOにすべてきだと思います。多少音出ても良い人用。とにかく安いのがポイント。</p>

<p>あと地味にカードリーダーがついているのでSDカードやらメモリースティックが利用できます。SDカードかUSBメモリでサーバー作るのもアリかな？</p>

<p><a href="http://www.amazon.co.jp/o/ASIN/B003P8ERU8/bmk-22/"><img src="http://ec2.images-amazon.com/images/I/31WVPOCSuAL._SL500_AA280_.jpg" width="150" height="150" />FOXCONN Atom D510搭載 MiniI-ITXベアボン R10-D2</a></p>
<div id="wherego_related"><h2>このエントリを読んだ人は、こんなエントリも読んでいます</h2><ul><li><a href="http://labs.bmky.net/post/71/" rel="bookmark" class="wherego_title">Opera Extension 試作品: Hatena Bookmark Comments</a></li><li><a href="http://labs.bmky.net/post/62/" rel="bookmark" class="wherego_title">Opera 11に導入したExtension色々</a></li><li><a href="http://labs.bmky.net/post/23/" rel="bookmark" class="wherego_title">opera:config用CSSをできるだけ楽に生成</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://labs.bmky.net/post/38/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>No More Scripts</title>
		<link>http://labs.bmky.net/product/nomorescripts/</link>
		<comments>http://labs.bmky.net/product/nomorescripts/#comments</comments>
		<pubDate>Sat, 04 Sep 2010 12:11:03 +0000</pubDate>
		<dc:creator>szsk</dc:creator>
				<category><![CDATA[1]]></category>

		<guid isPermaLink="false">http://labs.bmky.net/?page_id=32</guid>
		<description><![CDATA[これは？ No More ScriptsはUser JavaScriptを有効にしたままサイト側のJavaScriptの多くを無効化することができるOpera用のUser JavaScriptです。 サイト側のJavaS [...]]]></description>
			<content:encoded><![CDATA[<h2 id="what">これは？</h2>

<p>No More ScriptsはUser JavaScriptを有効にしたままサイト側のJavaScriptの多くを無効化することができるOpera用のUser JavaScriptです。</p>

<p>サイト側のJavaScriptだけでなくimg、object、embed、applet、iframe要素を取り除くこともできます。</p>

<p>取り除く要素はドメインかURLで管理され、常に許可することは勿論、一時的に一部を許可/ブロックする、などといったことが可能になっています。</p>

<p>Firefoxの拡張のひとつである<a href="https://addons.mozilla.org/ja/firefox/addon/722">NoScript</a>が機能としては一番近いです。ただしこちらにはXSSアラートはついていません。</p>

<h2 id="download">ダウンロード</h2>

<dl class="download">
<dt>ダウンロード</dt>
<dd><a href="/files/product/nomorescripts/nomorescripts_main.js">nomorescripts_main.js</a>
<br /><a href="/files/product/nomorescripts/nomorescripts_domains.js">nomorescripts_domains.js</a>
<br />ver1.20 2010/09/04</dd>
</dl>

<h2 id="setting">初期設定</h2>

<ol>
<li>nomorescripts_domains.js に各種設定を記入する。</li>
<li>Operaのメニューから「ツール>設定>詳細設定>コンテンツ>JavaScriptを有効にする」にチェックが入っていることを確認。</li>
<li>webページを開いた時に右下にアイコンがうっすらと表示されていれば動作しています。</li>
</ol>

<h2 id="menuaction">メニューの操作</h2>

<p>Webページ右下に表示されるアイコンにマウスカーソルを乗せるとメニューが表示されます。このメニューから各種操作を行います。</p>

<h3>*** を許可 / *** をブロック</h3>

<p>例えば、「www.yahoo.co.jp をブロック」をクリックすると画像やFlashやJavaScriptでURLにwww.yahoo.co.jpを含むファイルの読み込みをブロックします。</p>

<pre><code>例）

http://www.yahoo.co.jp/images/logo.png


http://www.yahoo.co.jp/js/jquery.js

</code></pre>

<p>逆に「www.yahoo.co.jp を許可する」をクリックすると一切ブロックしなくなります。</p>

<p>現在許可しているものには緑のアイコンが。ブロックしているものには赤いアイコンが表示されます。</p>

<h3>全てブロックする</h3>

<p>表示されているアドレス全てに対してブロックするようにします。設定ファイルで常に許可するようにしていてもブロックします。</p>

<h3>No More Scriptsを停止する</h3>

<p>No More Scripts自体の動作を止め、あらゆるファイルを許可するようになります。他のUser JavaScriptと干渉してしまったり、Webページの実際の動作を確認したい時に使用してください。</p>

<h3>No More Scriptsを再開する</h3>

<p>上記で停止した状態を解除します。</p>

<h3>一時的な設定</h3>

<p>一時的に設定を変更します。設定内容については下記を参照してください。</p>

<h3>メニュー操作時のリロードについて</h3>

<p>メニューからブロック等の操作を行うとページをリロードするようになっています。このリロードを止めたい場合は、設定ファイルでreload_trustedにtrueを設定するか、メニューの一時的な設定から「許可設定を変更した時にリロードする」のチェックを外した瞬間からリロードは行われなくなりますので、手動でリロードするようにしてください。</p>

<h2 id="settingfile">No More Scripts 設定ファイル（nomorescripts_domain.js）</h2>

<h3>アドレスの指定方法</h3>

<p>設定ファイル内で常に許可するアドレス等を指定する場合は、以下の3通りのうちのどれかで指定します。</p>

<h4>1. ドメインで指定する</h4>

<p>yahoo.com と指定した場合、www.yahoo.com、image.yahoo.com、yahoo.com と、ドメインの後ろに yahoo.com が付く全てのファイルが対象になります。</p>

<p>もし、www.yahoo.com と指定すれば www.yahoo.com だけが許可されます。</p>

<h4>2. URLで指定する</h4>

<p>http://www.yahoo.com/banner/hoge.jpg と指定した場合、全く同じURLのみが対象になります。</p>

<p>特定のファイルを許可したい場合に使用してください。</p>

<h4>3. URLの先頭一致で指定する</h4>

<p>http://www.yahoo.com/* と指定した場合、URLの先頭に http://www.yahoo.com/ を含む
全てのファイルが対象になります。</p>

<h3>nms_trusted</h3>

<p>常に許可したいファイルのアドレスを列挙します。</p>

<h3>nms_blocked</h3>

<p>常にブロックしたいファイルのアドレスを列挙します。上記のnms_trustedよりも優先されます。</p>

<h3>nms_disabled</h3>

<p>No More Scriptsを無効化した状態で開きたいWebページのアドレスを記述します。</p>

<h3>nms_config</h3>

<p>許可やブロックに関する設定を記述します。</p>

<h2 id="notice">使用上の注意</h2>

<p>タブ内で設定を引き継ぐ為にwindow.nameを利用しているので、フレーム等の扱いやwindow.open後の操作などが上手くいかなくなる可能性があります。</p>

<p>よく訪れるページでこの問題が発生する場合は、そのページのアドレスをnms_disabledに登録することで、No More Scriptsを無効化することができます。</p>

<h3>動作しない場合</h3>

<p>Operaの仕様により、httpsなページではNo More Scriptsを含む全てのUser JavaScriptは一切動作しません。</p>

<p>また、サイトごとの設定でJavaScriptが有効になっていなくても動作しません。</p>

<p>それでも動作しない場合は、差し支えなければそのページのURLを<a href="">コメントフォーム</a>から送って頂けると今後の開発の参考にします。</p>

<h2 id="link">リンク</h2>

<p>No More Scriptsは以下のUser JavaScriptを元に作成しています。</p>

<dl>
<dt>Block external 2-0</dt>
<dd><a href="http://www.howtocreate.co.uk/operaStuff/userJavaScript.html">http://www.howtocreate.co.uk/operaStuff/userJavaScript.html</a></dd>

<dt>blockscript</dt>
<dd><a href="http://files.myopera.com/shoust/blog/blockscripts.js">http://files.myopera.com/shoust/blog/blockscripts.js</a></dd>
</dl>

<p>No More Scriptsでは、以下の画像素材を使用しています。</p>

<dl>
<dt>Icon-King ≫ Blog Archive ≫ Nuvola</dt>
<dd><a href="http://icon-king.com/?p=15">http://icon-king.com/?p=15</a></dd>
</dl>

<h2 id="history">更新履歴</h2>

<dl>
<dt>2010-09-04 v1.20</dt>
<dd>色々修正</dd>

<dt>2009-02-05 v1.16</dt>
<dd>読み込みが早い&amp;キャッシュされたコンテンツをブロックできていなかったのを修正</dd>

<dd>すぐにリロードされない状態でブロックボタン連打するとwindow.nameがおかしくなるのを修正</dd>

<dt>2008-09-03 v1.15</dt>
<dd>Flashを代替要素内のURLが長く表示されてしまうのを修正。</dd>

<dt>2008-08-06</dt>
<dd>専用ページを作成した。</dd>

<dd>bodyのonloadをブロックするようにした。</dd>

<dd>設定ファイルが無くても動くようにした。</dd>

<dd>deactivate_if_disabledを廃止してnms_disabledに指定したアドレスに該当するページではスクリプトが全く動作しないようにした。</dd>

<dt>2008-08-03</dt>
<dd>Flashのみのページでも動作しないようにした。</dd>

<dt>2008-08-01</dt>
<dd>画像のみのページやhead要素が無いページで動作しないようにした。</dd>

<dt>2008-07-27</dt>
<dd>iframeのsrcが空だとスクリプトが止まってしまうのを修正。</dd>

<dt>2008-05-26</dt>
<dd>不具合を修正。</dd>

<dd>常にブロックするロケーションを指定できるようにした。</dd>

<dd>常に無効化するロケーションを指定できるようにした。</dd>

<dt>2008-05-23</dt>
<dd>domain、url、url-prefixで指定できるようにした。</dd>

<dd>一時的に設定を変更できるようにした。</dd>

<dd>current_url_toggle_by_key を削除した。</dd>

<dd>その他大幅に修正。</dd>

<dt>2008-05-18</dt>
<dd>サブドメインでも判定できるようにした。</dd>

<dd>メニュー表示位置を変更できるようにした。</dd>

<dd>不具合を修正。</dd>
</dl>
<div id="wherego_related"><h2>このエントリを読んだ人は、こんなエントリも読んでいます</h2><ul><li><a href="http://labs.bmky.net/post/38/" rel="bookmark" class="wherego_title">格安ホームサーバー機購入</a></li><li><a href="http://labs.bmky.net/post/23/" rel="bookmark" class="wherego_title">opera:config用CSSをできるだけ楽に生成</a></li><li><a href="http://labs.bmky.net/post/50/" rel="bookmark" class="wherego_title">OperaのUserScriptをExtensionに変換できるかもしれないExtension</a></li><li><a href="http://labs.bmky.net/post/62/" rel="bookmark" class="wherego_title">Opera 11に導入したExtension色々</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://labs.bmky.net/product/nomorescripts/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>opera:config用CSSをできるだけ楽に生成</title>
		<link>http://labs.bmky.net/post/23/</link>
		<comments>http://labs.bmky.net/post/23/#comments</comments>
		<pubDate>Thu, 02 Sep 2010 13:21:36 +0000</pubDate>
		<dc:creator>szsk</dc:creator>
				<category><![CDATA[1]]></category>
		<category><![CDATA[opera]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://labs.bmky.net/?p=23</guid>
		<description><![CDATA[Operaお試し版に適用しているopera:config用のCSSはopera:configに解説文を付加するユーザーCSSから拝借したCSSを適用する予定でした。 しかし、バージョンが変わって項目が増減するとCSSが使 [...]]]></description>
			<content:encoded><![CDATA[<p><a href="/product/operatrial/">Operaお試し版</a>に適用しているopera:config用のCSSは<a href="http://d.hatena.ne.jp/amatanoyo/20080326/1206538834">opera:configに解説文を付加するユーザーCSS</a>から拝借したCSSを適用する予定でした。</p>

<p>しかし、バージョンが変わって項目が増減するとCSSが使えなくなる上、上記サイトのCSSは結構古かったので、せっかくだから常に最新版を作成できるようにしました。</p>

<p>一番の問題は、Operaのバージョンアップによって項目数が増減することなので、opera:configページのHTMLを元に、各項目についての説明を<a href="http://ja.opera-wiki.com/opera-config%E8%A8%AD%E5%AE%9A%E9%A0%85%E7%9B%AE%E4%B8%80%E8%A6%A7">opera-config設定項目一覧</a>から取得してCSSファイルを構築していくようにしました。</p>

<ul>
<li><a href="/files/2010/09/occss.rb">occss.rb</a></li>
<li><a href="/files/2010/09/occss.erb">occss.erb</a></li>
</ul>

<p>スクリプトと同じディレクトリにhtmlフォルダを作成して、フォルダ内にopera:configページのhtmlを保存してバージョン名、現在の最新なら10.61.htmlという名前で保存します。</p>

<p>あとはスクリプトを動かせば、htmlフォルダ内のhtmlファイルの数だけcssファイルを作成します。それで作成されたCSSはこちら。</p>

<p><a href="/files/2010/09/10.61.css">10.61.css</a></p>

<p>importで本来読み込む筈のopera:config用のCSSファイルを読み込んでいるので、このファイルはopera/styles/に配置します。</p>

<p>そして、<a href="opera:config#UserPrefs|ConfigStyleFile">opera:config#UserPrefs|ConfigStyleFile</a>で配置したCSSファイルを指定します。</p>

<p>これで完了です。opera:configの各項目に説明が表示されるようになりました。</p>

<p><a href="/files/2010/08/optrial_ss01.png"><img src="/files/2010/08/optrial_ss01-300x226.png" alt="optrial_ss01" title="optrial_ss01" width="300" height="226" class="alignnone size-medium wp-image-18" /></a></p>
<div id="wherego_related"><h2>このエントリを読んだ人は、こんなエントリも読んでいます</h2><ul></ul></div>]]></content:encoded>
			<wfw:commentRss>http://labs.bmky.net/post/23/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

