<?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; NILScript</title> <atom:link href="http://efcl.info/category/software/nilscript/feed/" rel="self" type="application/rss+xml" /><link>http://efcl.info</link> <description>フリーソフトやFirefoxなどについて、web全般なサイト</description> <lastBuildDate>Sat, 21 Jan 2012 23:30:41 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3.1</generator> <item><title>ローカルの英辞郎検索やGoogle翻訳も使える翻訳ソフトウェア</title><link>http://efcl.info/2011/0604/res2808/</link> <comments>http://efcl.info/2011/0604/res2808/#comments</comments> <pubDate>Sat, 04 Jun 2011 12:55:01 +0000</pubDate> <dc:creator>azu</dc:creator> <category><![CDATA[NILScript]]></category> <category><![CDATA[software]]></category> <category><![CDATA[Windows]]></category> <category><![CDATA[翻訳]]></category><guid
isPermaLink="false">http://efcl.info/?p=2808</guid> <description><![CDATA[簡単に言えばLingoesやキングソフト辞書のようなソフトウェアで、文字列を選択した状態でショートカットか文字列をコピーすると翻訳を行えるNILScriptで書かれたソフトウェアです。 元々は英語が読めない人向け、英語技 [...]]]></description> <content:encoded><![CDATA[<p><span
style="color: #141414;">簡単に言</span>えば<a
href="http://www.lingoes.net/">Lingoes</a>や<a
href="http://www.kingsoft.jp/dictionary/">キングソフト辞書</a>のようなソフトウェアで、文字列を選択した状態でショートカットか文字列をコピーすると翻訳を行える<a
href="http://lukewarm.s151.xrea.com/nilscript.html">NILScript</a>で書かれたソフトウェアです。</p><p>元々は<a
href="http://efcl.info/2010/1126/res2111/">英語が読めない人向け、英語技術書の読み方 | Web scratch</a>で書いてたように<a
href="http://www.lingoes.net/">Lingoes</a>を使っていたましたが、自分向けにもっとあった感じのものがほしかったので作成しました。 <br
/>機能はハイライト翻訳に絞ってるので、単語帳のようなものなどは特にないですが、シンプルで動作も軽いと思います。 <br
/>翻訳には単語翻訳(辞書機能)と翻訳サービスを利用した長文の翻訳機能の二つがあります(単語数で自動的にどちらの方法をとるかを決めています)</p><ul><li><a
href="https://github.com/azu/NILScript/tree/master/NILtranslator">NILtranslator at master from azu/NILScript &#8211; GitHub</a></li></ul><p>動作のスクリーンショット</p> <iframe
width="640" height="390" src="http://www.youtube.com/embed/JhRuNtM4SUk" frameborder="0" allowfullscreen></iframe><p><a
href="http://efcl.info/wp-content/uploads/2011/06/image.png"><img
style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" src="http://efcl.info/wp-content/uploads/2011/06/image_thumb.png" border="0" alt="image" width="240" height="96" /></a><a
href="http://efcl.info/wp-content/uploads/2011/06/image1.png"><img
style="background-image: none; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" src="http://efcl.info/wp-content/uploads/2011/06/image_thumb1.png" border="0" alt="image" width="240" height="154" /></a><a
href="http://efcl.info/wp-content/uploads/2011/06/image2.png"><img
style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" src="http://efcl.info/wp-content/uploads/2011/06/image_thumb2.png" border="0" alt="image" width="240" height="224" /></a><a
href="http://efcl.info/wp-content/uploads/2011/06/image3.png"><img
style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" src="http://efcl.info/wp-content/uploads/2011/06/image_thumb3.png" border="0" alt="image" width="240" height="183" /></a></p><h3><a
href="https://github.com/azu/NILScript/tree/master/NILtranslator">NILtranslator</a>の導入</h3><p><a
href="http://lukewarm.s151.xrea.com/nilscript.html">NILScript</a>で実行するソフトウェアなので、<a
href="http://lukewarm.s151.xrea.com/nilscript.html">NILScript</a>が必要です。(Autohotkeyみたいな形式だと思ってもらえば) <br
/>Githubに置いてあるので、<a
href="https://github.com/azu/NILScript/archives/master">Secure source code hosting and collaborative development &#8211; GitHub</a>から<a
href="https://github.com/azu/NILScript/zipball/master">zipファイル</a>でレポジトリごとダウンロードするのが単純です。 <br
/>もちろんgithubなのでgit cloneしてダウンロードするのもありです。(なにかあったらプルリクエストしてもいいですし)</p><pre id="codeSnippet" class="csharpcode">$ git clone git://github.com/azu/NILScript.git</pre><p>ダウンロードして展開したフォルダに<strong>NILtranslator</strong>があり、NILtranslatorに関係するファイルは全部そこに入っています。(他のものは自分が書いたNILScriptがいろいろと入っています)</p><p><a
href="http://efcl.info/2010/0816/res1888/">NILScriptの使い方と書き方 | Web scratch</a>やNILScriptのreadmeを読んで<strong>NILtranslator.ng</strong>をNILScriptで実行すれば、ソフトウェアが起動できます。</p><p>&nbsp;</p><h3>使い方と設定</h3><p>翻訳は翻訳したい文字列を選択した状態で、クリップボードへのコピーか任意のショートカットで行う事ができます。</p><p><strong>NILtranslator</strong>が起動するとタスクバーにアイコンが出るので、右クリックから設定を行う事ができます。</p><p><a
href="http://efcl.info/wp-content/uploads/2011/06/image4.png"><img
style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" src="http://efcl.info/wp-content/uploads/2011/06/image_thumb4.png" border="0" alt="image" width="240" height="137" /></a></p><h4>動作設定</h4><p><a
href="http://efcl.info/wp-content/uploads/2011/06/image5.png"><img
style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" src="http://efcl.info/wp-content/uploads/2011/06/image_thumb5.png" border="0" alt="image" width="240" height="183" /></a></p><p>動作設定では、選択した文字列を翻訳するのにどのショートカットキーを使うかや、翻訳するサービスなどを選択できます。</p><p>*テキストコピーで翻訳 はそのままの意味でクリップボードにコピーした場合に翻訳する化を決定できます。 <br
/>*ショートカットキー はNILScriptのHotstrokesユニットで使えるショートカットを指定できます。</p><p>デフォルトはShift*2でShiftを二回連続で押すことで翻訳を行えます。</p><p>詳細はNILScriptの方に入ってる<em> nil\doc\Hotstrokes.txt</em> や<em>nil\sample\Hotstrokes.ng</em>などを見るのがいいと思います。</p><p>簡単にショートカットの例を挙げてみると</p><div
id="codeSnippetWrapper"><pre id="codeSnippet" class="csharpcode"><span class="str">"Win"</span> : Winキーを押した時(タップ) 
<span class="str">"Shift+A"</span>: Shiftを押しながらAを押す 
<span class="str">"Shift*2"</span>: Shiftを二回押す 
<span class="str">"Ctrl+[1] [2]"</span>: Ctrl+1 Ctrl+2と順番に押す 
<span class="str">"RButton+WheelDown"</span>: 右クリックを押しながらホイールダウン</pre><p>&nbsp;</p></div><p>このようにキーボードだけでなく、マウスも使ったいろいろなショートカットの指定が可能です。 <br
/>(設定ファイルを書き換えて、mapに指定するオブジェクトを作ればもっと自由にもできたりする予定)</p><p>指定するキーの名前を知りたい場合は<em>nil\sample\keyboard_hook.ng</em>を実行して見るといいでしょう。</p><p>*がついてるものはソフトウェアを再起動後に反映されることに注意</p><h4>辞書について</h4><p>辞書はそれぞれ設定できますが、英辞郎はローカルに英辞郎のデータベースファイルを用意する必要があります。 <br
/>辞書は以下から選択できます。</p><h4>対応辞書サービス</h4><ul><li><a
href="http://www.kingsoft.jp/dictionary/">KingSoft辞書</a></li><li>英辞郎辞書ローカル検索(ご自分で英辞郎辞書を用意する必要があります)</li></ul><p><strong>英辞郎辞書は同梱していません</strong>のでご自分で購入する必要があります。 <a
href="http://www.eijiro.jp/">http://www.eijiro.jp/</a></p><h4>対応翻訳サービス</h4><ul><li><a
href="http://translate.google.co.jp/">Google翻訳</a></li><li><a
href="http://www.excite.co.jp/world/">Excite翻訳</a></li></ul><h4>英辞郎辞書の導入</h4><p>ローカルの英辞郎辞書を使うためには、英辞郎辞書をデータベース形式に変換する必要があります。 <br
/>辞書の変換形式は<a
href="https://github.com/edvakf/EijiroX">EijiroX</a>と全く同じものを使用しています。そのため<a
href="http://d.hatena.ne.jp/edvakf/20101122/1290423802">EijiroXの利用方法</a>をよく読み、databaseというファイル名のデータベースファイルを生成してください。</p><p>手順を簡単に<a
href="http://d.hatena.ne.jp/edvakf/20101122/1290423802">EijiroXの利用方法</a>からまとめると</p><ol><li>makedatabase.zip(Windows 用と書かれてるやつ)</li><li>zipを展開してできたフォルダに英辞郎から取り出した英辞郎 (EIJI-***.TXT)、和英辞郎 (WAEI-***.TXT)、例辞郎 (REIJI-***.TXT)、略語郎 (RYAKU-***.TXT) の4つのtxtを入れる。</li><li>makedatabase.exeを実行(一時間以上かかる)</li><li>databaseとdatabase.sqlができる。</li><li>database.sqlは削除しても問題ない。databaseをdatabase.dbなど拡張子がdbとなるようにリネームする</li></ol><p>データベースファイルはできれば database → database.db(eijiro.dbなど)の拡張子を.dbにリネームした方がよいです(内部処理的に)</p><p>設定画面からdatabase.dbを設定し、辞書サービスとして英辞郎を選択すれば利用できるようになります。</p><p><a
href="http://efcl.info/wp-content/uploads/2011/06/image6.png"><img
style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" src="http://efcl.info/wp-content/uploads/2011/06/image_thumb6.png" border="0" alt="image" width="240" height="183" /></a></p><p>ポップアップの消滅時間はミリ秒で指定し、翻訳パネルの非表示になるまでの時間を決定できます。</p><h4>パネルの設定</h4><p><a
href="http://efcl.info/wp-content/uploads/2011/06/image7.png"><img
style="background-image: none; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" src="http://efcl.info/wp-content/uploads/2011/06/image_thumb7.png" border="0" alt="image" width="226" height="222" /></a></p><p>翻訳パネルの配置やサイズなどは、アイコンの右メニュー→パネルの設定から行えます。 <br
/>数値でも指定できますが、パネルの設定自体がパネルサイズになるようにしています。(動画を参照)</p><p>パネルの透明度はアルファ値で指定できます。</p><h4>一時的に無効にする</h4><p><a
href="http://efcl.info/wp-content/uploads/2011/06/image4.png"><img
style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" src="http://efcl.info/wp-content/uploads/2011/06/image_thumb4.png" border="0" alt="image" width="240" height="137" /></a></p><p>アイコンの右クリックから→無効を選択すると一時的にショートカットやクリップボードへのコピーで翻訳パネルを出さないようにします。</p><h4>翻訳パネルの表示を変更</h4><p><span
style="color: #0c111d;">パネルはIEエンジン(triden)で動いていて、divにサイトごとのIDが入るのでCSSで調整することができます。 <br
/>CSSファイルとSassファイルも同梱されているので、CSSを変更すれば、背景色や文字サイズなども変更できます。</span></p><p><span
style="color: #0c111d;">パネルの内部HTMLは以下のようになっています。</span></p><div><pre id="codeSnippet" class="csharpcode"><span class="kwrd">&lt;</span><span class="html">html</span><span class="kwrd">&gt;</span>
    <span class="kwrd">&lt;</span><span class="html">head</span><span class="kwrd">&gt;</span>
        <span class="kwrd">&lt;</span><span class="html">style</span> <span class="attr">type</span><span class="kwrd">="text/css"</span><span class="kwrd">&gt;</span>
        %style%
        <span class="kwrd">&lt;/</span><span class="html">style</span><span class="kwrd">&gt;</span>
    <span class="kwrd">&lt;/</span><span class="html">head</span><span class="kwrd">&gt;</span>
    <span class="kwrd">&lt;</span><span class="html">body</span><span class="kwrd">&gt;</span>
        <span class="kwrd">&lt;</span><span class="html">div</span> <span class="attr">id</span><span class="kwrd">="%siteID%"</span> <span class="attr">calss</span><span class="kwrd">="main"</span><span class="kwrd">&gt;</span>
        %text% この部分に翻訳内容が入る
        <span class="kwrd">&lt;/</span><span class="html">div</span><span class="kwrd">&gt;</span>
    <span class="kwrd">&lt;/</span><span class="html">body</span><span class="kwrd">&gt;</span>
<span class="kwrd">&lt;/</span><span class="html">html</span><span class="kwrd">&gt;</span></pre></div><div
id="codeSnippetWrapper">%siteID%はそれぞれ、実行時にサービスにあったものに置換されるため、以下のようにCSSでサービス別に記述する子が可能です。</div><div><pre id="codeSnippet" class="csharpcode"><span class="rem">/* kingsoft */</span>
#kingsoft {

}
<span class="rem">/* 英辞郎 */</span>
#eijiro{

}
<span class="rem">/* Excite */</span>
#Excite{

}
<span class="rem">/* Google翻訳*/</span>
#googleTranslator{

}</pre></div><p>これで説明は終わりです。</p><h3>おわりに</h3><p>このソフトウェアは<a
href="http://lukewarm.s151.xrea.com/nilscript.html">NILScript</a>で書かれていますが、UI部分でコードが少し増えましたが1000行程度でこのぐらいのものが作れてしまいます。</p><p>内部から外部APIを読んで翻訳を行ったりしていますが、調子がいいときはローカルで動いてるのと区別がつかないぐらい早く結果が返ってきます。</p><p>このように<a
href="http://lukewarm.s151.xrea.com/nilscript.html">NILScript</a>やTitanium DesktopやWebOSや<a
href="http://www.publickey1.jp/blog/11/windows_8html5javascriptwindows.html">Windows 8</a>などWeb技術(HTML+CSS+JavaScriptなど)といったものでデスクトップアプリケーションが作れるようになるのはとてもおもしろいです。またWebとデスクトップの距離は短くなっていると思います。</p><p>謝辞</p><p>JavaScriptベースのすばらしいスクリプト実行環境であるNILScriptがないと動きません。</p><ul><li><a
href="http://lukewarm.s151.xrea.com/nilscript.html">NILScript</a></li></ul><p>ローカル英辞郎の検索部分はEijiroX を元に作成しました。 <br
/>@edvakfさんに感謝を</p><ul><li><a
href="http://d.hatena.ne.jp/edvakf/20101122/1290423802">ブラウザで英辞郎を検索する EijiroX &#8211; by edvakf in hatena</a></li><li><a
href="https://github.com/edvakf/EijiroX">edvakf/EijiroX &#8211; GitHub</a></li></ul> ]]></content:encoded> <wfw:commentRss>http://efcl.info/2011/0604/res2808/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Windowsで使えるCoffeeScriptコンパイラを書いた</title><link>http://efcl.info/2011/0409/res2494/</link> <comments>http://efcl.info/2011/0409/res2494/#comments</comments> <pubDate>Sat, 09 Apr 2011 12:09:53 +0000</pubDate> <dc:creator>azu</dc:creator> <category><![CDATA[NILScript]]></category> <category><![CDATA[CoffeeScript]]></category> <category><![CDATA[javascript]]></category> <category><![CDATA[Windows]]></category><guid
isPermaLink="false">http://efcl.info/?p=2494</guid> <description><![CDATA[CoffeeScriptをJavaScriptのコードに変換するコンパイラ(coffee-script.jsをラップしただけ)をNILScriptを使って書いてみました。NILScriptはSpiderMonkeyが実行 [...]]]></description> <content:encoded><![CDATA[<p><a
href="http://jashkenas.github.com/coffee-script/">CoffeeScript</a>をJavaScriptのコードに変換するコンパイラ(<a
href="http://jashkenas.github.com/coffee-script/#scripts">coffee-script.js</a>をラップしただけ)を<a
title="NILScriptの使い方と書き方" href="http://efcl.info/2010/0816/res1888/">NILScript</a>を使って書いてみました。NILScriptはSpiderMonkeyが実行環境に利用されているので、ブラウザで実行できるようために配布されてる<a
href="http://jashkenas.github.com/coffee-script/#scripts">coffee-script.js</a>をそのまま利用しています。</p><ul><li><a
href="https://github.com/azu/NILScript/tree/master/utilityTools/CoffeeScript">CoffeeScript Compiler at master from azu/NILScript &#8211; GitHub</a></li></ul><p><strong>使い方</strong></p><p><a
href="http://lukewarm.s151.xrea.com/nilscript.html">NILScript</a>が必要なので、ダウンロードしておいてください。<br
/>CS-Compiler.ng と <a
href="https://github.com/azu/NILScript/tree/master/utilityTools/%3Chttps://github.com/jashkenas/coffee-script/blob/master/extras/coffee-script.js%3E">coffee-script.js</a>(自分で最新のものを持ってきた方がいいです)を適当な同じディレクトリに置きます。</p><pre>$ng.exe CS-Compiler.ngへパス "FilePath" or "DirectoryPath"</pre><p>という感じでコマンドプロンプト(自分はConsole2+nyaos)から実行して使用します。(D&amp;Dでも使えるかも)<br
/>コンパイルはファイル、ディレクトリどちらに対しても利用できます。<br
/>ng.exe CS-Compiler.ngへパスをまとめたリンクファイルを作っておくと楽かも知れません。</p><p>コマンドラインの例は<a
href="https://github.com/azu/NILScript/tree/master/utilityTools/CoffeeScript">utilityTools/CoffeeScript at master from azu/NILScript &#8211; GitHub</a>にも書いてあるので参考にしてください。</p><p>ファイルの更新に反応して自動的にコンパイルし直すwatchオプションがあるので次のように</p><pre>$ng CS-Compiler.ng code.coffee --watch</pre><p>という感じで起動すれば、code.coffeeを書き換えるたびにコマンドプロンプトにコンパイル結果が表示されます。<br
/>watchオプション(&#8211;watch or -w)はディレクトリにも使えるようになっていて、起動してからその監視対象のディレクトリに新しくファイルを入れた場合もそのファイルが監視対象に加わるようになっています。</p><p>&nbsp;</p><div
id="attachment_2495" class="wp-caption alignnone" style="width: 310px"><a
href="http://efcl.info/wp-content/uploads/2011/04/2011-04-09-ss2.png"><img
class="size-medium wp-image-2495" title="2011-04-09-ss2" src="http://efcl.info/wp-content/uploads/2011/04/2011-04-09-ss2-300x69.png" alt="" width="300" height="69" /></a><p
class="wp-caption-text">watchオプションを入れた様子</p></div><p>&nbsp;</p><p>コンパイルの実行速度ですが20Kbほどあるunderscore.coffeeが1-2秒ぐらいでコンパイルできるので、まあまあ使ってられるものだと思います。WindowsでCoffeeScriptをコマンドラインでコンパイルできて、ファイルの変更監視ができるものが見つからなかったので<a
href="http://kennyj-jp.blogspot.com/2011/01/coffeescriptwindows.html">kennyjのブログ(仮): CoffeeScriptをWindowsで使う</a>を見て何となく書きました。<br
/>(Rubyのやつの使い方分からなかった<a
href="http://sites.google.com/site/sappariwiki/coffeescript/coffeescript-install">CoffeeScript インストール &#8211; sappari wiki</a>)</p><ul><li><a
href="https://github.com/azu/NILScript/tree/master/utilityTools/CoffeeScript">utilityTools/CoffeeScript at master from azu/NILScript &#8211; GitHub</a></li><li><a
href="../adiary/0112">CoffeeScriptの勉強(写経)をした &#8211; prog*sig</a></li></ul> ]]></content:encoded> <wfw:commentRss>http://efcl.info/2011/0409/res2494/feed/</wfw:commentRss> <slash:comments>4</slash:comments> </item> <item><title>使ってないGreasemonkeyスクリプトを削除・整理するNILScript</title><link>http://efcl.info/2010/1021/res2008/</link> <comments>http://efcl.info/2010/1021/res2008/#comments</comments> <pubDate>Thu, 21 Oct 2010 08:05:59 +0000</pubDate> <dc:creator>azu</dc:creator> <category><![CDATA[NILScript]]></category> <category><![CDATA[Firefox]]></category> <category><![CDATA[Greasemonkey]]></category><guid
isPermaLink="false">http://efcl.info/?p=2008</guid> <description><![CDATA[Greasemonkeyはとても便利ですが、使用してないけどアンインストールするのが面倒で使わないスクリプトが貯まっていったりします。使わないスクリプトが貯まると猿アイコンを右クリックしたときに画面いっぱいになったり、管 [...]]]></description> <content:encoded><![CDATA[<p>Greasemonkeyはとても便利ですが、使用してないけどアンインストールするのが面倒で使わないスクリプトが貯まっていったりします。使わないスクリプトが貯まると猿アイコンを右クリックしたときに画面いっぱいになったり、管理画面が見づらくなったりしてとても邪魔になります。<br
/> そこで、今無効となっているスクリプトを適当なフォルダに移動して、Greasemonkeyスクリプトを整理する<a
href="http://lukewarm.s151.xrea.com/nilscript.html">NILScript</a>を書いてみました。<br
/> (タイトルが削除とかなってますが、実際は移動させるだけ)</p><h3>使い方</h3><p>最初に<strong>gm_scriptsをバックアップして下さい</strong>(おかしな動作をして失敗しても大丈夫なように)<br
/> Firefoxが起動してないときに実行して下さい。</p><ul><li>ngスクリプト(<a
href="https://github.com/azu/NILScript/raw/master/utilityTools/Greasemonkey/remove_noused_Greasemonkey.ng">remove_noused_Greasemonkey.ng</a>)をダウンロード</li><li>ngスクリプトをエディタで開いて、 <em>var saveDirPath = &#8220;C:\\path\\to\\dir\\&#8221;;</em> 移動先のディレクトリパスを書き換える</li><li>ngスクリプトを<a
href="http://support.mozilla.com/ja/kb/%E3%83%97%E3%83%AD%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB">Firefoxのプロファイルフォルダ</a>にある<strong>gm_scripts</strong>フォルダ内に置きます。</li><li>Firefoxが起動してるならばFirefoxを終了しましょう</li><li>必ず<strong>gm_scriptsをバックアップしてから</strong>ngスクリプトを実行しましょう</li></ul><p>ngスクリプトの実行方法は<a
href="http://efcl.info/2010/0816/res1888/">NILScriptの使い方と書き方</a>やreadme.txtを見ると良いでしょう。<br
/> 一応ログっぽいのも表示してるのでダブルクリック実行が手軽でしょう。<br
/> 完了すると&#8221;無効になっているスクリプト m/n を移動しました&#8221;というメッセージが出て終わりです。<br
/> <a
href="http://efcl.info/wp-content/uploads/2010/10/2f8a54482fcfe8a7e5952a8ef2b2d7f8.png"><img
class="alignnone size-medium wp-image-2009" title="2f8a54482fcfe8a7e5952a8ef2b2d7f8" src="http://efcl.info/wp-content/uploads/2010/10/2f8a54482fcfe8a7e5952a8ef2b2d7f8-300x232.png" alt="" width="300" height="232" /></a></p><p>猿アイコンのコンテキストメニューがスッキリして気持ち軽くなりました(実際に動作が軽くなるかは知りません)<br
/> 各Greasemonkeyがpref.jsに保存していた情報は消えてないので、完璧に綺麗になったわけではありません。<br
/> 戻すときはバックアップしていたものを上書きすればもどせると思います。</p><dl><dt><strong>utilityTools/Greasemonkey at master from azu/NILScript &#8211; GitHub</strong></dt><dd><a
title="utilityTools/Greasemonkey at master from azu/NILScript - GitHub" href="https://github.com/azu/NILScript/tree/master/utilityTools/Greasemonkey">https://github.com/azu/NILScript/tree/master/utilityTools/Greasemonkey</a></dd></dl><dl><dt><strong>NILScript</strong></dt><dd><a
title="NILScript" href="http://lukewarm.s151.xrea.com/nilscript.html">http://lukewarm.s151.xrea.com/nilscript.html</a></dd></dl><div
id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow: hidden;">var saveDirPath = &#8220;C:\\Users\\azu\\Web\\Greasemonkeys\\&#8221;;// 移動先のディレクトリパス</div>]]></content:encoded> <wfw:commentRss>http://efcl.info/2010/1021/res2008/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>NILScriptの使い方と書き方</title><link>http://efcl.info/2010/0816/res1888/</link> <comments>http://efcl.info/2010/0816/res1888/#comments</comments> <pubDate>Mon, 16 Aug 2010 05:19:47 +0000</pubDate> <dc:creator>azu</dc:creator> <category><![CDATA[javascript]]></category> <category><![CDATA[NILScript]]></category> <category><![CDATA[software]]></category> <category><![CDATA[twitter]]></category> <category><![CDATA[Windows]]></category> <category><![CDATA[エクスプローラ]]></category> <category><![CDATA[クリップボード]]></category> <category><![CDATA[プラグイン]]></category><guid
isPermaLink="false">http://efcl.info/?p=1888</guid> <description><![CDATA[NILScriptとはSpiderMonkeyを使ったJavaScriptベースのスクリプト実行環境です。(Windows専用+Wine環境でもある程度) 直感的に言うと、WSH + AutoHotKeyみたいな感じとい [...]]]></description> <content:encoded><![CDATA[<p><a
href="http://lukewarm.s151.xrea.com/nilscript.html">NILScript</a>とはSpiderMonkeyを使ったJavaScriptベースのスクリプト実行環境です。(Windows専用+Wine環境でもある程度)<br
/> 直感的に言うと、WSH + AutoHotKeyみたいな感じというのが分かりやすいかな。<br
/> できることなど細かい事は<a
href="http://lukewarm.s151.xrea.com/nilscript.html">NILScript</a>のページやDocを読んでもらうとして、SpiderMonkey(JavaScript 1.8.1ベース)を使った処理系なのでFirefoxと同じJavaScriptの文法で、エクスプローラでのバッチ処理やキーバインドの変更などWSHやAutoHotKeyで行っていたような事が<strong>JavaScript</strong>で書けます。</p><h3>使い方</h3><p><a
href="http://lukewarm.s151.xrea.com/nilscript.html">NILScript</a>のページからnil.zipをダウンロードして、適当な場所に解凍します。<br
/> 解凍して出てくるng.exe(コンソールあり)とngw.exe(コンソールなし)のどちらかに、NILScriptのスクリプトファイルである*.ngファイルを渡すと実行されます。(WSHだとng = Cscript ,ngw = Wscript みたいな感じ)<br
/> 毎回ng.exeなどにD&amp;Dや引数などでngファイルを渡すのは面倒なので、ngファイルをクリックで実行できるように関連づけを行うinstall.batというのが入っています。実行するとng.exeと*.ngファイルが関連づけされ、クリックで実行できるようになります。<br
/> (多分レジストリを使うのはここだけ)<br
/> これで、実行する準備はできたので試しに何かスクリプトを実行してみましょう。</p><p><strong>追記:現在は<a
title="Home - NILScript - GitHub" href="https://github.com/azu/NILScript/wiki">Home &#8211; NILScript &#8211; GitHub</a>にほとんどのスクリプト置いてあります</strong><br
/> 自分が作った適当なスクリプトで試してみる。</p><ul><li><a
href="http://gist.github.com/raw/526275/67c3dd182b194beee8c48ceac80a00c0bc5d834d/displayInputKeys.ng">displayInputKeys.ng</a></li></ul><p><a
href="http://efcl.info/wp-content/uploads/2010/08/ss-2010-08-16-1.png"><img
class="alignnone size-full wp-image-1889" title="ss-2010-08-16-1" src="http://efcl.info/wp-content/uploads/2010/08/ss-2010-08-16-1.png" alt="" width="153" height="78" /></a></p><p>上のngスクリプトはちっちゃいウィンドウが出てきて押したキー(組み合わせも大丈夫)を表示するだけのスクリプトです。</p><ul><li><a
href="http://gist.github.com/raw/487432/8adefe14ee39f7bb54130c3c4ab55dda731ca011/Twitter_friend_search.ng">Twitter_friend_search.ng</a></li></ul><p><a
href="http://efcl.info/wp-content/uploads/2010/08/ss-2010-08-16-2.png"><img
class="alignnone size-medium wp-image-1890" title="ss-2010-08-16-2" src="http://efcl.info/wp-content/uploads/2010/08/ss-2010-08-16-2-179x300.png" alt="" width="121" height="203" /></a></p><p>こっちのngスクリプトは、Twitterで自分がフォローしてる人からユーザー名を検索してコピーするスクリプトです。 <br
/> 初回の起動時はOAuth認証します。(NILScriptで立てた簡易サーバをリダイレクト先にしている)<br
/> 2回目の起動で自分のフォローしてるユーザーのリストを取得してから、ユーザー名を検索するウィンドウを表示します。<br
/> ユーザー名を途中まで入力して↓キーなどを押せば、入力したユーザー名の所まで飛べます。Ctrl+Cでユーザー名をコピーできます。</p><p>このようにngスクリプトを書けば、ローカルで動くものがJavaScriptで書けるので簡単なものを書いたりするのに便利です。<br
/> 特にエクスプローラなどのファイル操作周りはWSHより簡単に書けるので、簡易なバッチ処理を書きやすい。<br
/> 次はngスクリプトの書き方を見ていきます。</p><h3>書き方</h3><p>ドキュメントはダウンロードしたnilフォルダにdocというフォルダがあり、その中にユニット(機能)毎のドキュメントが書いてあります。<br
/> いろいろあるので何から見れば良いか迷いますが、まずは_readme.txtを開いてみると、NILScriptには大きく分けて、<br
/> Base.ng内で定義されているNIL標準クラス・関数 と require()関数で読み込んで使うユニットスクリプトがあることが分かります。<br
/> 簡単言うと、前者はngスクリプトにそのまま書いて使える関数などで、後者はrequire(&#8216;Clipboard&#8217;)のようにユニットスクリプトを読み込んでから使えるようになる関数などが存在するという事です。<br
/> まずはNIL標準クラス・関数にどんなものがあるかをbase_*.txtなどを軽く見て把握しましょう。<br
/> 眺めているとprintlnなどのよくあるような感じのものからsleepやスレッドやポインタなどのJavaScriptでは扱えないものもあることが分かります。(base_main.txtはよく使う関数があるので必須)<br
/> 正直、まだドキュメントは箇条書き程度で文例などが不足しているので、実際に動かしながら確認する必要がある。<br
/> (<a
href="http://nilscript.blogspot.com/" target="_blank">NILScriptブログ</a>で使い方などの解説も始まったので合わせて読む)<br
/> 必要な機能は必要になったらgrepなどで検索して探すので効率的。</p><p>ドキュメントばかり見てもよく分からないので、サンプルファイルを見ながらどういう風に書いているのかを見てみましょう。<br
/> サンプルはnilフォルダのsampleというフォルダに入っています。<br
/> NIL標準クラス・関数はそのまま使えるので、ドキュメントや動作を見れば何となく分かってくると思います。<br
/> ユニットスクリプトを使うものはrequireしてから使う必要があるので、requireの仕方を見てみましょう。<br
/> 例えばsampleのclipboard.ngを見ると、clipboardを扱うためのユニットスクリプトを読み込んでいるのが分かります。(詳細はClipboard.txtに)</p><pre class="brush:javascript;">/*
タスクトレイにアイコンを登録して常駐し、
クリップボードの内容が変更された時に、形式に応じた情報を表示します。
*/

Main.createNotifyIcon();// タスクバーにアイコン表示
var Clipboard=require('Clipboard').Clipboard;// ユニットスクリプトを読み込む

Clipboard.observe('change',function(obj){// クリップボードが変化したら動作するリスナー
	if(this.hasFormat('files')){// クリップボードの中身がファイル形式
		var a=this.files,r=&#91;&#93;;
		for(var i=0,l=a.length;i&#60;l;i++){
			r.push(a&#91;i&#93;.name);
		}
		Main.notifyIcon.showInfo(r.join("\n"),this.isMove?"move":"copy");// タスクトレイのアイコンにバルーンメッセージを表示する
	}else if(this.hasFormat('html')){// html形式
		var h=this.html;
		Main.notifyIcon.showInfo(h.fragment,h.url);
	}else if(this.hasFormat('text')){// テキスト形式
		Main.notifyIcon.showInfo(this.text,'text');
	}
});</pre><p>上ではvar Clipboard=require(&#8216;Clipboard&#8217;).Clipboard;というようにクリップボードのユニットスクリプトを読み込んで、<br
/> 読み込んだクリップボードスクリプトのClipboardというクラスをClipboardという変数に渡しています。<br
/> _readme.txtの●ユニットスクリプト機能にも書いてありますが、ユニットスクリプトrequire(&#8220;SomeUnit&#8221;).SomeClass という感じで、<br
/> 多くのものはSomeUnitとSomeClassは同じ名前を持っているので上のような読み込み方法がよく出てきます。<br
/> 他にもユニットスクリプトの使い方はあるので詳しくは<a
href="http://nilscript.blogspot.com/2010/08/blog-post_2026.html">NILScript: ユニット(拡張ライブラリスクリプト)の読み込み方法</a>を見ると良いでしょう。(withでやるやり方はWindowでよく使います)</p><p>まずはHelloWorldを書いて実行するところから始めて、クリップボードが使いたくなったら関係するサンプルとClipboard.txtを見て作ってみる(それでもよく分からないときはlibフォルダにユニットスクリプトのソースがあるので中身を見てしまうと言うのもあります)</p><pre class="brush:javascript;">println("Hellow World");</pre><p>サンプルを見ていくと大体雰囲気は使えめると思いますが、まだまだ文例が足りないのでハマる事があります。<br
/> くだらないものを書いてもどんどん公開して、いろんな書き方が見られるようになるともっと使いやすいものになると思います！</p><h3>作例</h3><p><strong>追記:現在は<a
title="Home - NILScript - GitHub" href="https://github.com/azu/NILScript/wiki">Home &#8211; NILScript &#8211; GitHub</a>にほとんどのスクリプト置いてあります</strong></p><p>というわけで自分が今までに自分が書いたNILScript。</p><ul><li><a
href="http://gist.github.com/401178">gist: 401178 &#8211; NILScript用のスクリプト- GitHub</a><br
/> コピーする深さを決められるtreeコマンドみたいなもの。<br
/> 一番最初に書いたものなので何かおかしいところがあったり。(フォルダ判定はsizeより、dir.attributes.directoryがフォルダならtrueを返してくれるのでそっちを使いましょう)</li><li><a
href="http://gist.github.com/425452">gist: 425452 &#8211; 30分ごとにLDRの未読数を表示するNilScript- GitHub</a><br
/> アイコンとタイマーとHTTP.getText</li><li><a
href="http://gist.github.com/526275">gist: 526275 &#8211; 押したキーを表示するNILScript- GitHub</a><br
/> 上で紹介していたもの。<br
/> ウィンドウの表示方法とKeyboard。</li><li><a
href="http://gist.github.com/453042">gist: 453042 &#8211; クリップボードのJavaScriptコードを整形してクリップボードに返すNILScript &#8211; GitHub</a><br
/> JavaScriptで実装されたJS Beautifierをそのまま使えるって話</li><li><a
href="http://gist.github.com/453264">gist: 453264 &#8211; プロセスを起動して落ちるのを待つだけ- GitHub</a><br
/> サンプルにも似たようなものがあるのでそっちの方が参考になる<br
/> exeの起動方法</li><li><a
href="http://gist.github.com/526351">gist: 526351 &#8211; プロセスの起動 &#8211; GitHub</a><br
/> 上と殆ど同じ。プロセスのフルパスはエスケープする必要がある。</li><li><a
href="http://gist.github.com/454863">gist: 454863 &#8211; NILScriptでXMLHttpRequest的なものを書くテスト- GitHub</a><br
/> GM_xmlhttpRequestてきな感覚でXHRを書くのをテスト<br
/> 同じインスタンスのリクエストは上から順に実行される?</li><li><a
href="http://gist.github.com/456001">gist: 456001 &#8211; ファイルの作成して書き込み #NILScript- GitHub</a><br
/> そのまま。</li><li><a
href="http://gist.github.com/467939">gist: 467939 &#8211; #NILScript にデフォルト値を入れたものを新規作成- GitHub</a><br
/> 上のを土台にした作ったもの。<br
/> Greasemonkeyの新規作成ダイアログみたいなもので、// ==NILScript==のようなメタ情報を書いたngファイルを生成する。<br
/> AutoHotKeyでもそうだったけど、スクリプト単体で配布されることが多いので、後でこれどこで拾ったけ?って事があると思うので、メタ情報はできるだけ入れておいた方がよいと思う。</li><li><a
href="http://gist.github.com/463430">gist: 463430 &#8211; D&amp;Dしたディレクトリ以下をフラットにする #NILScript- GitHub</a><br
/> フォルダ(1)内のフォルダ(2)の中身をフォルダ(1)に移動させて、フォルダ(2)を削除<pre>    フォルダ
    ├fileA
    ├fileB
    └フォルダ&#91;DIR&#93;
     ├fileC
     └fileD
が
    フォルダ
    ├fileA
    ├fileB
    ├fileC
    └fileD</pre><p>のようにするスクリプト。複数のフォルダを同時にD&amp;Dしてもできるようにしている。<br
/> treeコマンドの時よりフォルダの扱いがちゃんとしてるはず。</p></li><li><a
href="http://gist.github.com/485691">gist: 485691 &#8211; #NILScript からTwitterへ投稿- GitHub</a><br
/> Greasemonkey向けにOAuthラッパを書いてあったので、NILScriptでも動くようにしてみたサンプル。<br
/> NILscriptでのOAuthについては後ろの方でまた書くのでこれは見る程度で。<br
/> <a
href="http://github.com/azu/OAuth-for-Greasemonkey">azu&#8217;s OAuth-for-Greasemonkey at master &#8211; GitHub</a></li><li><a
href="http://gist.github.com/487432">gist: 487432 &#8211; 自分のフォローしてる人からユーザー(スクリーン)名を検索する #NILScript- GitHub</a><br
/> これもOAuth使ったサンプル。<br
/> OAuth.jsとかも一緒くたにしてるので、分離する方法はまた後ろ</li></ul><p><br
class="spacer_" /></p><p>最後の方で出てきた<strong>OAuthをNILScriptで使う方法</strong>。(上のサンプルは無視していいよ)</p><ul><li><a
href="http://gist.github.com/raw/526379/fa17c5da823169bd8d4c6f4f6159ae2cf277b85e/OAuth.ng">OAuth.ng</a> (ライブラリみたいなものです)</li></ul><p>をダウンロードして、OAuthを使うスクリプト内でinclude(&#8220;OAuth.ng&#8221;);して、後は<a
href="http://efcl.info/2010/0610/res1721/">OAuth for Greasemonkeyのラッパーライブラリ | Web scratch</a>とメソッドの使い方は同じ。(xhrは実装してないです)<br
/> 単純なサンプルで、OAuth.ngと同じフォルダに入れて実行するとOAuth認証ができます。</p><ul><li><a
href="http://gist.github.com/526378">gist: 526378 &#8211; OAuth for NILScriptのサンプル- GitHub</a></li></ul><p>本当はユニットスクリプトやプラグインにした方が良いんだけどやり方がイマイチ分からなかったのでincludeにしてみた。</p><h3>まとめ</h3><p>良いところ</p><p>SpiderMonkeyベースなのでE4Xなども使えて文字列処理がやりやすいので、Firebugなどでマクロ的な文字列処理をしてる人とかJavaScriptで書くならこっちの方が便利かもよ。(JavaScript の新しめの機能(Array の拡張)とかも動くよ)<br
/> デフォルトで<a
href="http://nilscript.blogspot.com/2010/08/hotstrokes.html">マルチストローク対応ホットキー</a>やマウスジェスチャープラグインなどもあるので、AutoHotKeyでよくあるキーバインドを変更するとかもできるよ(自分の設定を公開とかやるといいかも)<br
/> WSHに比べてファイル操作をするものがかなり書きやすいよ。(base_io.txtを読む)<br
/> AutoHotKeyと違ってマルチバイト文字列に対応してるのでダメ文字とか日本語書けないとかに悩まされないよ。<br
/> 標準関数やユニットスクリプトなどもNILScriptで書かれているので、ソースを直接読むことができる(この辺、情報不足感といいJetpackによく似てる。requireするとこも)</p><p>悪いところ</p><p>知名度が少ないので情報が少ない(→作ったものはどんどん公開して欲しい)<br
/> SpiderMonkeyにはDOM実装はないので、LooseXMLという独自のパーサーになっている。XPathに似た表記で使えたり悪いとは言い切れないけど、普段使うJavaScriptのDOMとはちょっと違うので手間取る。<br
/> GUIの表現が貧弱。Windowを使う事で基本的なウィンドウは簡単に作れるが、文字サイズなど装飾など細かい事ができない部分も多い。</p><p>NILScriptの用途として個人的に使うものを書く場合が多いと思いますが、書いたものをどんどん公開していこうぜ！という感じで〆</p><dl><dt><a
href="http://lukewarm.s151.xrea.com/nilscript.html"><strong>NILScript</strong></a></dt><dd>NILScript配布場所</dd><dt><a
href="http://nilscript.blogspot.com/" target="_blank">NILScriptブログ</a></dt><dd>特徴や使用例の紹介記事</dd></dl>]]></content:encoded> <wfw:commentRss>http://efcl.info/2010/0816/res1888/feed/</wfw:commentRss> <slash:comments>5</slash:comments> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced
Database Caching 1/24 queries in 0.052 seconds using disk: basic
Object Caching 475/519 objects using disk: basic

Served from: efcl.info @ 2012-02-11 17:29:15 -->
