Archive for the ‘software’ Category

WebStormのコード補完に新しく候補を追加する方法

WebStorm/PhpStormEAP build 98.458でJavaScript Librariesのスコープを決定できる機能が追加されました。

なので、この方法が使えるのはWebStorm & PhpStorm 2.0以上(EAPビルド)の場合のみです。

Read the rest of this entry »

Titaniumでデスクトップアプリケーションを作る

Titaniumという言葉は最近AndroidやiPhoneのモバイル関係で話題になっていたのでどこか聞いたことはあると思います。
Titaniumには「Titanium Desktop」というWindows/Linux/Mac OSのアプリケーションをHTML+CSS+JavaScriptとRuby,Python,PHPをバックに使って作成できるものがあります。
Titanium Desktopの存在をTwitterクライアント『昼おっぱい』で知ったのでどんな感じか試して見ました。

Titanium Desktopでデスクトップアプリケーション作成

手順はAppcelerator Titanium DesktopでRuby,Python,PHPを使ったお手軽デスクトップアプリ開発その1 – 仙台 Ruby Vim JavaScript社長を参考にテストアプリを作成する。(丁寧でとても参考になるのでよく読む)

基本はHTMLにCSSで装飾して、JavaScriptなどで用意されているAPIを叩くことでネイティブアプリっぽいことも行える感じになっているみたいです。
JavaScript以外も下のようなスクリプトタグで囲んで使う感じになっていて簡単に使える感じでした。

<script type="text/ruby"></script>

文字コードに関して、日本語はhtmlのMetaタグでcharsetを設定しないと文字化けする。
なのでSandBoxタブでは日本語使えないかも。

 <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />

基本的にはUTF-8でやれば日本語は問題にならなそうです。

今回は単純にjsからTwitterのtest API叩くだけのどうでもいいものを作ってみました。

Titanium Desktop SDKにあるtestappを見ると使い方が分かりやすかった。(ただ、たった数行なのにライブラリを使いまくってるのが微妙な…)
ソースコード(単なるHTMLファイルです)

これを作ったプロジェクトのResourcesフォルダに置いておくだけでアプリが完成。
できたものTitanium Application : TwitterStatus

ここまで大体1時間でできたのでかなり手軽にデスクトップアプリケーションを作れる段階に触れる感じがしました。
Titanium Developerから直接公開できて、アップデート通知機能も入ってるので簡単に配布できるのは結構素敵だと思う。(ただwindowsはmsiインストーラーなので入れるのはちょっと躊躇するかも)

まだ全然触って無いですが、デバッグは通常のWebみたいにsafari/Chromeで使われてるWeb Inspectorが使えるので、普通にJS書いてる感覚が通じる感じがします(毎回Lauch Appして起動するのが億劫だけど)
NILScriptもそうですがローカルでもjs使って書けるものが増えてきたりして、Webとデスクトップの境はどんどん小さくなってきているんだなーと思った。

最強のJavaScript IDE 「WebStorm」を使ってみた

JavaScript対応のIDEをまとめてみたの続きのようなもので、その中で紹介していたWebStormが素晴らしいので別途紹介。
WebStorm
はHTML(5)+CSS+JavaScriptに対応してるIDEで、Windows, Mac OS、Linux上で動作します。
有料のソフトウェアですが、オープンソースライセンスがあったり体験版は45日間使えるのでとりあえず試してみましょう。

特徴

とにかく膨大な機能が載ってるので全てを紹介するのは無理があるため、凄いと思ったところを掻い摘んで紹介。
主にJavaScriptを書くエディタとして使っていますが、CSSやHTMLも普通のIDEより書きやすいです。
基本的にWebStormで日本語に関する問題は少なめです。一部IMEの変換候補が出てくる場所がずれたり、プラグインで日本語がダメだったりするものがありますが、殆ど問題ではない程度です。文字コードはShift_JIS(windowsだとwindows-31j)も対応しているので問題にはならないと思います。

優秀なコード補完機能

WebStormはソースコードを自動的にコ-ド解析(静的解析?)してるようで、JavaScriptの構造を認識してコード補完を行えます。
例えば@teramakoさんがKomodo Edit が面白いで言っていたような

var container = {
  init: function() {},
};
container.obj = (function(){
  var privateProp = null;
  var namager = {
    publicMethod: function(){ },
  };
  return namager;
})();

というコードの場合container.obj.pu と書くとちゃんとpublicMethodも補完候補に表示されます。
さらに
publicMethodはメソッドなのでcontainer.obj.publicMethod()という形で補完されて、今は仮引数がないのでカーソルの位置は)の→になります。仮引数があると()の中にカーソルが置かれます。

ネイティブの補完候補もHTML5,ECMA,DOMCoreや結構細かいものも対応していて補完でアレが出てこないって事はかなり少ないです(ブラウザ拡張開発用とかは除いて)
補完候補は開いているディレクトリ以下のファイルを全部解析して表示してくれるので、ファイルをまたいだメソッドなども候補に表示されます。
今まで触ったJavaScriptエディタ、IDEで補完は最も素晴らしいと感じました。

JavaScript以外のHTMLタグやCSSも補完を行え、1つのファイルにHTML、JavaScriptなどが混在していた場合も正しく認識して補完が行える。HTML, CSS, JavaScript editing in an intelligent environment :: WebStorm Featuresで特徴がいろいろ紹介されています。

コ-ド解析による良さ


右サイドに警告レベル毎の表示

右サイドに警告レベル毎の表示


上でコ-ド解析してるのでインテリセンスみたいな事が凄くできるよと書きましたが、
他にもCtrl+クリックで関数宣言にジャンプ(Tipsで設定の変更方法が記載してあります)する機能や、リファクタリングで特定の変数名や関数名をリネームする機能(その名前を使ってるもの全部を変えてくれる)、Structureパネルでコードのアウトラインを表示できたりします。

後、文法が間違ってる場合などは警告なども表示できその設定も警告レベルから決められてかなり細かな指定が行えます。(JSLintみたいなもの?)

自動整形機能

個人的にIDEと言ったらコードの自動整形機能です。CodeメニューのReformat codeから実行できます。(ショートカットからもできる)
自動整形のルールはOptionのCode Styleからかなり細かく設定できるので、自分ルールに合わせて整形させる事ができます。


他にもページがあるぐらい多い

他にもページがあるぐらい多い


ショートカットキーはkeymap>Reformat codeで変更できます


E4X対応

Firefoxユーザー向けですが、構文解析がE4Xの記法に対応しています。
普通なら上記の自動整形でE4Xが混じってると崩れてしまって残念になりますが、E4Xもちゃんと扱えるので崩れません。
Firefox向けのコード、Greasemonkeyなどを書く人に使ってもらいたいところ。
(分割代入の記法にはまだ対応してなかったのはちょっぴり残念)

標準でバージョン管理機能がある


Gitのメニュー

Gitのメニュー



Vision Contorolメニューを有効にすると標準でローカルなバージョン管理が行えます。
デフォルトだと差分やrevertがができるLocal Historyが機能しますが、外部のバージョン管理ソフトと連携してSVN、Gitが使用できます。(Mercurialは標準ではなくhg4idea-luciadプラグインによって使用できます)
コミットやpushなどはIDE上からその場でできて、マージや差分表示などもできるので結構便利です。

JavaScriptデバッガー

Local JavaScript debuggingで紹介されてるようにFirefoxアドオンと連携したIDE上で動くデバッガが付いています。
他にもFirebugと連携して機能するプラグインなどもあったりしてFirefoxとの親和性は少し高め。

使い勝手

他の機能紹介はWebStorm Featuresやヘルプなどを見てもらうとして、使った感覚としてはそこまで重くは無いです。
起動はIDEらしくちょっとかかりますが(コード解析もあったりするので)、太ったEmacsの起動を我慢できるなら問題ない。
Aptanaみたいに長いコードだと極端に重くなるとかはないので、大規模なものでも扱えると思います(構造もみやすいし)
ショートカットはEclipse、NetBeans、Emacs、Visual Studio、Mac、GNOME、KDEなどの設定が最初から用意されていて、殆どの操作をカスタマイズできるので、自分好みにする事もできると思います。
Vimのキーバインドは標準ではなくプラグインのIdeaVIMによって使えます。(JetBrainsのIDEなら大体対応してる)
メモリは数十MB~多くても200MBいかないぐらいなので(ステータスバーにメモリ量が表示される)、少し古いPCでも動かせるぐらいです。自分のノートであるCore Duo T2300(1.66GHz)、512MBのPCでも使えるぐらいなので、最近のPCなら問題ないと思います。

UIが完全に英語ですが、設定は検索機能が優秀なので適当な単語からたどり着けることが多いし、表示している項目には全部ヘルプや説明が付いてるぐらいなので、オプションが豊富すぎるぐらいでそこまでつっかかりはないと思います。
(何ができないのかというのが少し分かりにくい感じではある)

Tips

メモみたいな

  • Productivity Tips 動画
    他のソフトだけど大体一緒なので参考になる。主にコード補完系
  • ショートカットキーはkeymapで変更できて、キーだけではなくてマウスクリックなどのショートカットもあります。
  • Ctrl+クリックで関数宣言にジャンプするのは keymap > Go to > declaration で設定変更できる。(デフォルトだとCtrl+B)
  • Find Action (Ctrl+Shift+A)でコマンド検索できる
  • ショートカット一覧(デフォルト)はPDFで配布もしてる WebStorm Resources
  • keymapでcomplete current statement(ctrl+shift+enter)が便利。最後の;が無かったら;を入れてくれて、あったら次の行へ。
    今の行のステートメントを自動的に補完してくれる感じ
  • Editor > Code Folding でコメントがデフォルトでたたまれるのを防止できる
    (Greasemonkeyとかデフォルトだとたたまれちゃうので)
  • File Templeteで${NAME}でファイル名が取れる(大文字区別する)
    適当な変数${test}を書くとファイル作成ダイアログでそれを入力して指定できる。
    例えばGreasemonkeyっぽいテンプレートを書くなら gist: 648943 – WebStormのFile Templete- GitHubみたいな感じ。
  • Editor > Editor Tabsでタブ位置を上下左右に変えられるので、縦置きタブバーも可能
  • JavaScript IntentionPowerPack。if-elseを||にするとか!から始まるifをflipして逆にするとか、リファクタリング関係のものが詰まってる。
  • 変数に下線とかの装飾はEditor > Color & Fonts > JavaScriptあたりから変更できます。
  • 文字コードの変更は画面下にある所をクリックでも変更できる
  • JetBrainsのIDEは大体形が同じ(扱える言語が違う)なので、他の種類のIDEのノウハウが使えることもある。

プラグイン

    から探せる(他にもあると思う)
    手動インストール方法はIntelliJ IDEA Plugin – TeamCity 3.x Documentation – Confluenceに書いてあるように、指定のpluginsフォルダにjarとかプラグインファイルをおいて、設定のpluginsから有効にすればいいみたい。
    けど、他のソフトを対象に書かれたプラグインは動作しない気がする。

  • eSnippet Pro plugin
    スニペットプラグイン。Ctrl+Alt+Spaceで補完のようにスニペットを追加できる。
    スニペットをオンラインに登録して、検索できる
  • CSS-X-Fire
    FirebugのCSSパネルのようにCSSを編集できるプラグイン
  • hg4idea-luciad
    Mercurial統合のプラグイン
    他のバージョン管理はデフォルトで大体ある。
  • デフォルトで入ってるスペルチェッカーは日本語に反応してうるさいので無効にした。

よく分かってないこと

やり方があったら教えて欲しいです。

  • いつでも参照できる補完候補の追加方法→実装されたWebStormのコード補完に新しく候補を追加する方法
  • WebStormを開いてる状態で、もう一回WebStormを開くと複数のウィンドウになるのをタブにまとめる方法→WebStorm-EAP-98.458でタブで開くようになった
  • 分割代入が整形機能で崩れる
  • 配列の最後に,がある時に警告がでるのを消す方法
  • 他のJetBrainsIDEのプラグインの入れ方がよく分からない(対応してないだけ?)

感想

とにかく機能が多くて、まだまだ使いきれない感じでさらにもうすぐ2.0がリリースされるので成長も早いIDEだと思います。
体験版が45日間と長いと思ったけど、1ヶ月使ってもまだ底が見えないので妥当な日数だと分かった。
珍しくタイトルが誇大っぽいけど、(現時点では)最強のJavaScript IDEは「WebStorm」だと言い切れるぐらい圧倒的できの良さ。
周りのJavaScript対応IDEと差がかなり大きいと思うので、後1-2年は追いつけるレベルのものが出てこない予感。
日本でのユーザ数がとっても少ない感じがするので、使ってどんどんブログなどに情報を書いてくれるともっと発展できるソフトウェアだと思うよ。

The best HTML, CSS and JavaScript Editor for Web development :: JetBrains WebStorm
http://www.jetbrains.com/webstorm/
HTML, CSS, JavaScript editing in an intelligent environment :: WebStorm Features
http://www.jetbrains.com/webstorm/features/

使ってないGreasemonkeyスクリプトを削除・整理するNILScript

Greasemonkeyはとても便利ですが、使用してないけどアンインストールするのが面倒で使わないスクリプトが貯まっていったりします。使わないスクリプトが貯まると猿アイコンを右クリックしたときに画面いっぱいになったり、管理画面が見づらくなったりしてとても邪魔になります。
そこで、今無効となっているスクリプトを適当なフォルダに移動して、Greasemonkeyスクリプトを整理するNILScriptを書いてみました。
(タイトルが削除とかなってますが、実際は移動させるだけ)

使い方

最初にgm_scriptsをバックアップして下さい(おかしな動作をして失敗しても大丈夫なように)
Firefoxが起動してないときに実行して下さい。

  • ngスクリプト(remove_noused_Greasemonkey.ng)をダウンロード
  • ngスクリプトをエディタで開いて、 var saveDirPath = “C:\\path\\to\\dir\\”; 移動先のディレクトリパスを書き換える
  • ngスクリプトをFirefoxのプロファイルフォルダにあるgm_scriptsフォルダ内に置きます。
  • Firefoxが起動してるならばFirefoxを終了しましょう
  • 必ずgm_scriptsをバックアップしてからngスクリプトを実行しましょう

ngスクリプトの実行方法はNILScriptの使い方と書き方やreadme.txtを見ると良いでしょう。
一応ログっぽいのも表示してるのでダブルクリック実行が手軽でしょう。
完了すると”無効になっているスクリプト m/n を移動しました”というメッセージが出て終わりです。

猿アイコンのコンテキストメニューがスッキリして気持ち軽くなりました(実際に動作が軽くなるかは知りません)
各Greasemonkeyがpref.jsに保存していた情報は消えてないので、完璧に綺麗になったわけではありません。
戻すときはバックアップしていたものを上書きすればもどせると思います。

utilityTools/Greasemonkey at master from azu/NILScript – GitHub
https://github.com/azu/NILScript/tree/master/utilityTools/Greasemonkey
NILScript
http://lukewarm.s151.xrea.com/nilscript.html
var saveDirPath = “C:\\Users\\azu\\Web\\Greasemonkeys\\”;// 移動先のディレクトリパス

Windows Updateの自動再起動を止めさせる方法

Windows Updateでいきなり再起動されてデータが消えたって話は未だによく聞くので自動的に再起動を防止する方法のメモ

Business以降のグレードならだったらグループポリシーを使えば設定できる
Homeとかpremiumはないのでレジストリを直接変更する必要がある。

レジストリを直接変更するのは面倒だと思うので、Prevent Windows Update from Forcibly Rebooting Your Computer – How-To Geekに置いてあるregまたはオンオフがGUIでできるソフトウェアを使うと楽です。

自動更新のダイアログが出ているときに、そのダイアログを黙らせるだけなら(防止はできない)
誠 Biz.ID:3分LifeHacking:「今すぐ再起動しますか?」のダイアログを“マホトーン”するで紹介されている、
XP にマホトーンをとなえるを使うといい。

もっと汎用的にWindows Update以外のソフトウェアによる再起動を防止したいのならShutdownGuardを利用するとその都度確認を取ってからシャットダウン・再起動・ログオフを行える。
追記:同様の事が「ちょっと待った」でも行える

ソフトウェアのリンクまとめ

 

JavaScript対応のIDEをまとめてみた

JavaScriptに対応してるIDEのメモまとめ。

全部試したわけではないですが、個人的にはAptanaDreamweaverなど有名な所のできは悪くないです。
Aptanaは無料で使えて機能も充実してるので、重くなければもっと使われてる気がします。(JavaScriptだけなら通常のエディタでも十分通用するので好みによりますが)
IDE全般としては、クロスプラットフォームに対応しているのが殆どだったりします。
エディタとIDE、どちらが優れているとかではなくどっちも優れている部分を持っているので使い分けるのが良いと思います。

いろいろ巡った感想としてjQueryをサポートしてますって書いてるものが多いなーと思った。
IxEditとか見てると、JavaScript言語とは別にjQuery言語があるって思われる日がやってきそう。

元ネタ

Good JavaScript IDE with jQuery support – Stack Overflow
http://stackoverflow.com/questions/209126/good-javascript-ide-with-jquery-support
Open Komodo

GoogleのJavaScriptコーディングスタイルチェッカー「Closure Linter」

GoogleではJavaScriptは特定のコーディングスタイルで統一されるようにClosure Linterという専用のスクリプトを使用しているそうです。
Google JavaScript Style Guide(Google JavaScript Style Guide 和訳)という規則に従ってjsのコードは書かれていて、その規則に沿っているかを確認するgjslintとその規則に合うように修正するfixjsstyleからなるスクリプトです。

インストール方法

How to Use Closure Linter – Closure Linter – Google Code
pythonで書かれているのでeasy_installを使ってインストールします。
まずはPythonをインストールしてなかったらインストールして、次にeasy_installコマンドを使うためにsetuptoolsを自分のPythonにあったものをインストールします。
WindowsならC:\Python26\Scriptsに環境パスを通せば、コマンドプロンプトからeasy_installが使えるようになるので、

> easy_install http://closure-linter.googlecode.com/files/closure_linter-latest.tar.gz

と打ってたらインストールできます。(パス通してないならC:\Python26\Scriptseasy_install でも大丈夫)

*注意 (修正済み)
現在配布されるやつはfixjsstyleがTypeError: ‘NoneType’ object is unsubscriptableのようになって動かないので、

easy_install -Z http://closure-linter.googlecode.com/files/closure_linter-latest.tar.gz

という感じでファイルを展開するオプションをつけてインストールしてから、/python2.6/site-packages/closure_linter-2.2.1-py2.6.egg/
closure_linter/fixjsstyle.py の36行目にargfとなってるtypoがあるのでそれをargvにすれば動きます。

使い方

使い方は単純でHow to Use Closure Linter – Closure Linter – Google Codeを見ると分かりますが、

gjslint path/to/my/file.js
fixjsstyle path/to/file1.js path/to/file2.js

のようにファイルやディレクトリを指定して実行するだけです。
–strictオプションやディレクトリに対してまとめてやる再帰オプションもあります。またGoogleのコーディングスタイルではJsDocを使う事になってるので、それを無視するオプションもあります。

fixjsstyleはE4Xとか特殊なものは認識してないっぽいので無理に書けると構文エラーを出すようになったりしますが、
Googleのコーディングスタイルはそこまで特殊ではないので、ちょっとした確認に使えたりして便利です。
JavaScriptの整形にはOnline javascript beautifier(これ自体がJavaScriptで書かれているのでEmeditorやNILScriptで動かせるgist: 453042 – クリップボードのJavaScriptコードを整形してクリップボードに返すNILScript – GitHub)とかと併用すると面白いかも。

Introducing Closure Linter – Closure Tools Blog
http://closuretools.blogspot.com/2010/08/introducing-closure-linter.html

NILScriptの使い方と書き方

NILScriptとはSpiderMonkeyを使ったJavaScriptベースのスクリプト実行環境です。(Windows専用+Wine環境でもある程度)
直感的に言うと、WSH + AutoHotKeyみたいな感じというのが分かりやすいかな。
できることなど細かい事はNILScriptのページやDocを読んでもらうとして、SpiderMonkey(JavaScript 1.8.1ベース)を使った処理系なのでFirefoxと同じJavaScriptの文法で、エクスプローラでのバッチ処理やキーバインドの変更などWSHやAutoHotKeyで行っていたような事がJavaScriptで書けます。

使い方

NILScriptのページからnil.zipをダウンロードして、適当な場所に解凍します。
解凍して出てくるng.exe(コンソールあり)とngw.exe(コンソールなし)のどちらかに、NILScriptのスクリプトファイルである*.ngファイルを渡すと実行されます。(WSHだとng = Cscript ,ngw = Wscript みたいな感じ)
毎回ng.exeなどにD&Dや引数などでngファイルを渡すのは面倒なので、ngファイルをクリックで実行できるように関連づけを行うinstall.batというのが入っています。実行するとng.exeと*.ngファイルが関連づけされ、クリックで実行できるようになります。
(多分レジストリを使うのはここだけ)
これで、実行する準備はできたので試しに何かスクリプトを実行してみましょう。

追記:現在はHome – NILScript – GitHubにほとんどのスクリプト置いてあります
自分が作った適当なスクリプトで試してみる。

上のngスクリプトはちっちゃいウィンドウが出てきて押したキー(組み合わせも大丈夫)を表示するだけのスクリプトです。

こっちのngスクリプトは、Twitterで自分がフォローしてる人からユーザー名を検索してコピーするスクリプトです。
初回の起動時はOAuth認証します。(NILScriptで立てた簡易サーバをリダイレクト先にしている)
2回目の起動で自分のフォローしてるユーザーのリストを取得してから、ユーザー名を検索するウィンドウを表示します。
ユーザー名を途中まで入力して↓キーなどを押せば、入力したユーザー名の所まで飛べます。Ctrl+Cでユーザー名をコピーできます。

このようにngスクリプトを書けば、ローカルで動くものがJavaScriptで書けるので簡単なものを書いたりするのに便利です。
特にエクスプローラなどのファイル操作周りはWSHより簡単に書けるので、簡易なバッチ処理を書きやすい。
次はngスクリプトの書き方を見ていきます。

書き方

ドキュメントはダウンロードしたnilフォルダにdocというフォルダがあり、その中にユニット(機能)毎のドキュメントが書いてあります。
いろいろあるので何から見れば良いか迷いますが、まずは_readme.txtを開いてみると、NILScriptには大きく分けて、
Base.ng内で定義されているNIL標準クラス・関数 と require()関数で読み込んで使うユニットスクリプトがあることが分かります。
簡単言うと、前者はngスクリプトにそのまま書いて使える関数などで、後者はrequire(‘Clipboard’)のようにユニットスクリプトを読み込んでから使えるようになる関数などが存在するという事です。
まずはNIL標準クラス・関数にどんなものがあるかをbase_*.txtなどを軽く見て把握しましょう。
眺めているとprintlnなどのよくあるような感じのものからsleepやスレッドやポインタなどのJavaScriptでは扱えないものもあることが分かります。(base_main.txtはよく使う関数があるので必須)
正直、まだドキュメントは箇条書き程度で文例などが不足しているので、実際に動かしながら確認する必要がある。
(NILScriptブログで使い方などの解説も始まったので合わせて読む)
必要な機能は必要になったらgrepなどで検索して探すので効率的。

ドキュメントばかり見てもよく分からないので、サンプルファイルを見ながらどういう風に書いているのかを見てみましょう。
サンプルはnilフォルダのsampleというフォルダに入っています。
NIL標準クラス・関数はそのまま使えるので、ドキュメントや動作を見れば何となく分かってくると思います。
ユニットスクリプトを使うものはrequireしてから使う必要があるので、requireの仕方を見てみましょう。
例えばsampleのclipboard.ngを見ると、clipboardを扱うためのユニットスクリプトを読み込んでいるのが分かります。(詳細はClipboard.txtに)

/*
タスクトレイにアイコンを登録して常駐し、
クリップボードの内容が変更された時に、形式に応じた情報を表示します。
*/

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

Clipboard.observe('change',function(obj){// クリップボードが変化したら動作するリスナー
	if(this.hasFormat('files')){// クリップボードの中身がファイル形式
		var a=this.files,r=[];
		for(var i=0,l=a.length;i<l;i++){
			r.push(a[i].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');
	}
});

上ではvar Clipboard=require(‘Clipboard’).Clipboard;というようにクリップボードのユニットスクリプトを読み込んで、
読み込んだクリップボードスクリプトのClipboardというクラスをClipboardという変数に渡しています。
_readme.txtの●ユニットスクリプト機能にも書いてありますが、ユニットスクリプトrequire(“SomeUnit”).SomeClass という感じで、
多くのものはSomeUnitとSomeClassは同じ名前を持っているので上のような読み込み方法がよく出てきます。
他にもユニットスクリプトの使い方はあるので詳しくはNILScript: ユニット(拡張ライブラリスクリプト)の読み込み方法を見ると良いでしょう。(withでやるやり方はWindowでよく使います)

まずはHelloWorldを書いて実行するところから始めて、クリップボードが使いたくなったら関係するサンプルとClipboard.txtを見て作ってみる(それでもよく分からないときはlibフォルダにユニットスクリプトのソースがあるので中身を見てしまうと言うのもあります)

println("Hellow World");

サンプルを見ていくと大体雰囲気は使えめると思いますが、まだまだ文例が足りないのでハマる事があります。
くだらないものを書いてもどんどん公開して、いろんな書き方が見られるようになるともっと使いやすいものになると思います!

作例

追記:現在はHome – NILScript – GitHubにほとんどのスクリプト置いてあります

というわけで自分が今までに自分が書いたNILScript。


最後の方で出てきたOAuthをNILScriptで使う方法。(上のサンプルは無視していいよ)

  • OAuth.ng (ライブラリみたいなものです)

をダウンロードして、OAuthを使うスクリプト内でinclude(“OAuth.ng”);して、後はOAuth for Greasemonkeyのラッパーライブラリ | Web scratchとメソッドの使い方は同じ。(xhrは実装してないです)
単純なサンプルで、OAuth.ngと同じフォルダに入れて実行するとOAuth認証ができます。

本当はユニットスクリプトやプラグインにした方が良いんだけどやり方がイマイチ分からなかったのでincludeにしてみた。

まとめ

良いところ

SpiderMonkeyベースなのでE4Xなども使えて文字列処理がやりやすいので、Firebugなどでマクロ的な文字列処理をしてる人とかJavaScriptで書くならこっちの方が便利かもよ。(JavaScript の新しめの機能(Array の拡張)とかも動くよ)
デフォルトでマルチストローク対応ホットキーやマウスジェスチャープラグインなどもあるので、AutoHotKeyでよくあるキーバインドを変更するとかもできるよ(自分の設定を公開とかやるといいかも)
WSHに比べてファイル操作をするものがかなり書きやすいよ。(base_io.txtを読む)
AutoHotKeyと違ってマルチバイト文字列に対応してるのでダメ文字とか日本語書けないとかに悩まされないよ。
標準関数やユニットスクリプトなどもNILScriptで書かれているので、ソースを直接読むことができる(この辺、情報不足感といいJetpackによく似てる。requireするとこも)

悪いところ

知名度が少ないので情報が少ない(→作ったものはどんどん公開して欲しい)
SpiderMonkeyにはDOM実装はないので、LooseXMLという独自のパーサーになっている。XPathに似た表記で使えたり悪いとは言い切れないけど、普段使うJavaScriptのDOMとはちょっと違うので手間取る。
GUIの表現が貧弱。Windowを使う事で基本的なウィンドウは簡単に作れるが、文字サイズなど装飾など細かい事ができない部分も多い。

NILScriptの用途として個人的に使うものを書く場合が多いと思いますが、書いたものをどんどん公開していこうぜ!という感じで〆

NILScript
NILScript配布場所
NILScriptブログ
特徴や使用例の紹介記事

OneNoteを同期してiPhoneから見る方法

OneNoteをiPhoneから見ることを目的とした記事です。
OneNoteはevernoteと比較されがちなソフトですが、evernoteはiPhoneなどとも連携がとれるので、その部分でevernoteを選んで使っている人も多いでしょう。
Webサイトのスクラップや自由なレイアウトや画像の貼り付け、筆圧対応のペンタブ、画像のOCR(2010は日本語も対応)していて何よりevernoteより軽いのでとても良いソフトだと思います。
スタパビジョン-Microsoft 「Office OneNote 2007」
でも言ってましたがマイクロソフトの製品とは思えないぐらい優れたソフトウェアです。

OneNote自体の話はここまでにしておいて、OneNoteのファイルをiPhoneから見る方法がMobileNoterぐらいしか存在してないので、iPhoneとOneNoteを連携させる方法を作ってみました。

追記:MSから公式でMicrosoft OneNoteのiPhoneアプリが出ています。
おそらく海外アカウントがないとダウンロードできませんが、無料でWindows Liveに保存してあるOneNoteファイルを閲覧できます。
Windows Liveに自動的に同期できるのは2010からだと思うので、下記は2007やOneNoteアプリでは完全な形で閲覧できるわけではないので、見づらくても完璧な形で見たいという人向けの内容になります。
(Onenoteアプリ自体は結構できがよいので、無理に下記の方法をとるべきではないかもしれないです)

Read the rest of this entry »

OneNoteのプラグインまとめ

そろそろOffice2010がでますが、今更OneNote2007を使い始めたのでOneNoteのプラグイン(add-in)のまとめです。
最後の方はプラグインというよりは関連ソフト。

 

 

Calendar/Planner

http://blogs.msdn.com/johnguin/archi…r-onenote.aspx

A new OneNote Favorites Powertoy – OneNote Testing – Site Home – MSDN Blogs

http://blogs.msdn.com/b/johnguin/archive/2008/03/03/a-new-onenote-favorites-powertoy.aspx

ページをお気に入り登録する感じでお気に入りリストを作る。
→最新版 http://blogs.msdn.com/b/johnguin/archive/2008/09/11/onenote-favorites-updated-with-user-requested-feature.aspx

Canvas for OneNote
http://www.officelabs.com/projects/canvasforonenote/Pages/default.aspx

サムネなどでノートの全体を見る。参考 Canvas for OneNoteの感覚的な情報整理 : could

ダウンロードはIEからで無いと崩れていて難しいです。TRY ITのとこをクリックでダウンロード。

OneNote PowerToys – A Collection of PowerToys for OneNote

http://www.onenotepowertoys.com/2007/06/23/onenote-search-and-replace/

検索置換を行うプラグイン。

結果をプレビューできる。

Merge Pages

http://blogs.msdn.com/johnguin/archi…-powertoy.aspx

ページをマージする。

Printout to OneNote Manager

http://blogs.msdn.com/johnguin/archi…o-onenote.aspx

印刷のレイアウト調整OneNote PowerToys – A Collection of PowerToys for OneNote

Word Count

http://blogs.msdn.com/descapa/archiv…ord-count.aspx

文字数カウント

Template Manager

http://blogs.msdn.com/johnguin/archi…note-2007.aspx

http://blogs.msdn.com/olya_veselova/…templates.aspx

Outlook To OneNote AddIn

http://blogs.msdn.com/descapa/archiv…ote-addin.aspx

Text Importer

http://www.onenotepowertoys.com/2007…text-importer/

テキストファイルをインポート

OneNote PowerToys – A Collection of PowerToys for OneNote

http://www.onenotepowertoys.com/2007/12/03/html-importer/

HTMLファイルをインポート

Better Living through Software » Blog Archive » OPML import for OneNote

http://www.netcrucible.com/blog/2004/04/28/opml-import-for-onenote/

OPMLファイルをインポート

Journal to OneNote Importer – OneNote Testing – Site Home – MSDN Blogs

http://blogs.msdn.com/b/johnguin/archive/2007/12/21/journal-to-onenote-importer.aspx

Journal ファイルをインポート

Rambles In The Brambles: PowerPoint To OneNote

http://www.borlik.net/blog/archives/000097.html

PowerPointファイルからインポート

Notebook Cleaner & Privatizer

http://blogs.msdn.com/johnguin/archi…-powertoy.aspx

作者情報などを取り除く

Image Rotator

http://blogs.msdn.com/johnguin/archi…note-2007.aspx

画像を回転させる

Sort Sections

http://blogs.msdn.com/descapa/archiv…-powertoy.aspx

セクションでソートを行う

Sort Pages

http://blogs.msdn.com/descapa/archiv…-powertoy.aspx

ページでソート

Table of Contents

http://blogs.msdn.com/johnguin/archi…-powertoy.aspx

ページの一覧をまとめてテーブルページを作る。OneNote PowerToys – A Collection of PowerToys for OneNote を参考に

Table Sum Powertoy for OneNote – OneNote Testing – Site Home – MSDN Blogs

http://blogs.msdn.com/b/johnguin/archive/2007/12/10/table-sum-powertoy-for-onenote.aspx

テーブルで計算を行う。

Make Subpage

https://blogs.msdn.com/johnguin/arch…vo-update.aspx

A beta powertoy for OneNote 2007 to extract highlighted text from a page – OneNote Testing – Site Home – MSDN Blogs

http://blogs.msdn.com/b/johnguin/archive/2009/08/24/a-beta-powertoy-for-onenote-2007-to-extract-highlighted-text-from-a-page.aspx

選択範囲から新たなページを作る

OneNote 2007 Powertoy to change section colors – OneNote Testing – Site Home – MSDN Blogs

http://blogs.msdn.com/b/johnguin/archive/2010/06/10/onenote-2007-powertoy-to-change-section-colors.aspx

セクションの色を変える

A beta powertoy for OneNote 2007 to extract highlighted text from a page – OneNote Testing – Site Home – MSDN Blogs

http://blogs.msdn.com/b/johnguin/archive/2009/08/24/a-beta-powertoy-for-onenote-2007-to-extract-highlighted-text-from-a-page.aspx

A powertoy to make using Adapx pens for OneNote a little easier for me – OneNote Testing – Site Home – MSDN Blogs

http://blogs.msdn.com/b/johnguin/archive/2009/03/09/a-powertoy-to-make-using-adapx-pens-for-onenote-a-little-easier-for-me.aspx

ページのサイズを自動でfitするように。

Copy page to OneNote Mobile notebook

http://blogs.msdn.com/johnguin/archi…le-device.aspx

OneNote Math AddIn | Dragonshorn Studios

http://dragonshorn.info/node/4?page_id=372

数式を書くツール

OneNote Web Exporter

http://www.codeplex.com/ONWebber

ノートブックをWebページとして出力する。

Powertoy: Double Hyperlink « Tablet PC – A Student’s Perspective

http://tabletpcstudent.wordpress.com/2007/11/17/powertoy-double-hyperlink/

ページ作成時のナビゲーションを補助

Export OneNote to PDF (OneNote2PDF)

http://onenote2pdf.codeplex.com/Wiki…te2PDF%20Usage

Onenoteのファイル.oneからPDF形式に変換する。

Send to OneNote 2007 powertoy – Daniel Escapa’s OneNote Blog – Site Home – MSDN Blogs
http://blogs.msdn.com/b/descapa/archive/2007/02/15/send-to-onenote-2007-powertoy.aspx
エクスプローラからOneNoteへファイルを送る

OneNote PowerShell Provider « Brian’s Brain

http://bdewey.com/2007/07/18/onenote-powershell-provider/

PowerShellOneNote

The Unknown OneNote Guy’s Blog: OneNote 2007 Xml Viewer

http://unknown-onenote.blogspot.com/2006/09/onenote-2007-xml-viewer.html

OneNoteXMLをみるためのビューアー

A really great tip to make getting information into OneNote much easier – OneNote Testing – Site Home – MSDN Blogs

http://blogs.msdn.com/b/johnguin/archive/2009/04/02/a-really-great-tip-to-make-getting-information-into-onenote-much-easier.aspx

OneNoteへコピペするためのAutoHotKey

任意のキーにセットして使う。

Clip to OneNote :: Add-ons for Firefox

https://addons.mozilla.org/ja/firefox/addon/12003/

Firefoxから落書きノートでスクラップするアドオン

他のまとめ

A summary of the OneNote powertoys from the test team for 2007 – OneNote Testing – Site Home – MSDN Blogs

http://blogs.msdn.com/b/johnguin/archive/2008/01/17/a-summary-of-the-onenote-powertoys-from-the-test-team-for-2007.aspx

21 OneNote Power Toys | Sarah In Tampa | Channel 10

http://on10.net/blogs/sarahintampa/20844/

OneNote PowerToys – The Daily Ramblings of an SMS Engineer

http://myitforum.com/cs2/blogs/socal/archive/2008/03/30/onenote-powertoys.aspx

意外とソースを公開しているものが多くていいね。
C#とかでプラグインを作れるようなので興味がある方は作ってみるといいかも。

記事の元ネタにいろいろ追加と説明を加えた。

Favorite Plugins – www.ms-news.net
http://www.ms-news.net/f2614/favorite-plugins-10277983.html

Send to OneNote 2007 powertoy – Daniel Escapa’s OneNote Blog – Site Home – MSDN Blogs

http://blogs.msdn.com/b/descapa/archive/2007/02/15/send-to-onenote-2007-powertoy.aspx

エクスプローラからOneNoteへファイルを送る

プロフィール: azu(アズ)
Firefoxの事やソフトウェアの紹介や使い道、Greasemonkeyの作成
  • OS:Windows Vista, 7
  • ブラウザ:Firefox
  • Twitterのアカウントはこちら
  • azu_re
  • メールアドレス(Twitterの方が確実)
  • info@ドメイン名
リンク