d.sunnyone.org
sunnyone.org

ページ

2015-02-26

gulp.watchで新規ファイルを処理させるにはパスを./で始めない

ファイルに変更があるとタスクを処理してくれるgulp.watch。こんな感じに書いてある記事を見かけることがあるけど、これだと新規に.jsファイルを追加した場合、処理してくれない。
gulp.watch('./js/*.js', ['browserify']);

そんなもんか?と思っていたけど、./を消せば見つけてくれる。
gulp.watch('js/*.js', ['browserify']);
追いかけてないけど、なんだろうね?

参考:Globs beginning with ./ doesn't capture file events

上のスクリプトの全体はこんな感じ:

2015-02-11

PowerShellでCottleテンプレートエンジンを使う

Cottleは、テンプレート文字列にしたがってテキストを生成する.NET用のテンプレートエンジン。超ざっくり言うと、{}で囲ったところに変数名を書くと展開されたり、構文を書くと分岐ができたりする(文法の詳細はこちら)。今回はこれをPowerShellから使う話を書く。

1. ダウンロード

CottleのライブラリはNuGetからダウンロードするようになっているので、Installing NuGet のCommand-Line Utilityから「nuget.exe」をダウンロードする。そして、以下のコマンドを実行すれば、実行したディレクトリ配下にパッケージが展開されるのでdllを入手する。
> nuget install Cottle
(面倒だったら https://www.nuget.org/api/v2/package/Cottle/1.3.1 てな感じのURL に直接アクセスして拡張子を.zipにして展開すればdllが得られなくもない)

2. 呼び出す

dllの横にスクリプトを置いて、単にドキュメントの通りのメソッドを呼べばいい。一応関数にするとこんな感じ。
(…ほんとはモジュールにしないとね)


これを実行すると、以下のように出力される。
実行結果
=========
結果: 失敗
ログ:
Failed to write a file.
No space left on device.

ifだけじゃなくいろいろな記法が使えるので、ドキュメントを参照してほしい。

前のPowerShell勉強会で、RazorEngineを使ってRazorテンプレートをPowerShellからレンダリングする話をしたのだけど、PowerShellから呼びやすくもなかったし、何よりRazorがHTML用すぎてPowerShellで使いそうなHTML以外のテキストに向いている文法ではないので、今回はCottleを紹介した。

2015-02-07

Amazon Glacier の取り出し料金計算機を作った

S3よりもデータ保管の料金が安いAWSのサービスAmazon Glacier。しかし、取り出しの料金が難解で、時折話題になるので、もうちょっと視覚的にわかるようにできないかなと思ってちょっとしたツールを作ってみた。→http://glcalc.sunnyone.org/


基本的には、全体サイズと取り出す容量をスライダーでさらっと調整してもらえれば、グラフが変化するのでホバーして読めばOK。

FAQの数値と合ってはいたので、たぶん合っているとは思っているが、注意書きにもある通りざざっと動かして目星をつけて、そのサイズで実際に計算してみるのが良いかと思う。無料枠の計算も入っているので、無料でいけるのはどんなもんかというのを見るのが主になるかな。ここで計算していない料金達も馬鹿にならないはずなので、それも別途計算が必要。

--

実はNVD3をちょっと使ってみたかった。スライダーが欲しかったのでPureでなくFoundationを使ったら、意図せずResponsiveになった。あとはデータバインディングでVue.jsを使ってるのはまぁいつもの感じ。