shuzo-kino.hateblo.jp
でC言語のTDDという奴を試しました。
ArduinoはC++の方言なので、厳密には適用できないケースは結構あります。
最近は状況が大分マシになったようで、いくつか案がでています。
arduinounit
専用テスト環境arduinounit!
公式配布ではなく、有志がつくったソフトウェアです。
ArduinoTap
更新状態が低調ですが、ArduinoTapという代案もあります。
shuzo-kino.hateblo.jp
でC言語のTDDという奴を試しました。
ArduinoはC++の方言なので、厳密には適用できないケースは結構あります。
最近は状況が大分マシになったようで、いくつか案がでています。
専用テスト環境arduinounit!
公式配布ではなく、有志がつくったソフトウェアです。
更新状態が低調ですが、ArduinoTapという代案もあります。
sortコマンドの"-k"オプションではソート方法について指定ができます。
加えて、数珠繋ぎにできるので複雑なソートも可能です。
3番めのキーで昇順にソート、次いで1番目のキーを降順にソートという処理は以下の通り。
$ sort -t , -k 3 -k 1r data.csv hello,2,a bar,3,a yeah,0,b foo,1,c
こんなデータがあったとします。
$ cat data.csv hello,2,ab yeah,0,ab foo,1,ab bar,3,cd
区切り文字を","、三番目のカラムをソートする場合
$ sort -t , -k 3 data.csv foo,1,ab hello,2,ab yeah,0,ab bar,3,cd
区切り文字を","、一番目のカラムをソートする場合
$ sort -t , -k 1 data.csv bar,3,cd foo,1,ab hello,2,ab yeah,0,ad
OpenSSLでmd5のハッシュ値を出す方法です。
苦労してダウンロードしたUbuntuのイメージファイルが破損してないか調べたり、
テストツールで出した画像を比較したりする時に使えます。
同じテストファイルから、それぞれ別のタイミングで生成した画像o.pngとi.pngがあったとします。
ファイル名が違っても、内容が同じなら同一のハッシュ値がでます。
$ openssl md5 o.png MD5(o.png)= 31065952ef2171b0dff33f866451e72b $ openssl md5 i.png MD5(i.png)= 31065952ef2171b0dff33f866451e72b
他にもSHA1とかもいけます。
PhantomJsにて、バックヤードが自動生成でバイナリファイルを吐く場合
……たとえば画像やPDFを吐く場合は、標準出力に書き出すという技があるようです。
ダウンロードせんともエエのですね……。
アウトプットされた結果は
ハッシュ値比較や特徴点抽出なんかで比べてやれば良いでしょう。
流石に目視比較は不毛にも程がありますからね……。
var webPage = require('webpage'); var page = webPage.create(); var fs = require("fs"); page.viewportSize = { width: 1920, height: 1080 }; page.open('http://phantomjs.org', function (status) { var base64data = page.renderBase64('PNG'); var fs = require("fs"); fs.write("/dev/stdout", base64data, "w"); phantom.exit(); });
デコードするときにはbase64コマンドをつかうといいかと。
$ phantomjs phantomtest.js | base64 -D > i.png
page.render(output); var fs = require("fs"); var pdf = fs.read(output); fs.write("/dev/stdout", pdf, "w"); fs.remove(output);
shuzo-kino.hateblo.jp
の続きです。
ある程度縦長だったり横幅によってレイアウトの差が大きいページはちゃんとViewportSizeを設定しましょう
var page = require('webpage').create(); page.viewportSize = { width: 1920, height: 1080 }; page.open('http://github.com/', function() { page.render('github.png'); phantom.exit(); });
……少なくとも、前回よりもは情報がちゃんと出てきましたね。
フリーダイヤルは地域の指定が可能です。
公式によると以下のような区分での指定が可能とのこと。
都道府県単位、隣町まで限定といった指定が可能です。
大ブロック
市外局番2ケタまでの指定。
(例えば、04とご指定になりますと、0425、0474など、市外局番の初めの2ケタが04ではじまるすべての地域からの電話をおつなぎします。)中ブロック
市外局番3ケタまでの指定。
(例えば、074とご指定になりますと、0742、0745など、市外局番の初めの3ケタが074ではじまるすべての地域からの電話をおつなぎします。)小ブロック
3分間10円(税別)でかかる地域の指定。
なお、東京03、大阪06、名古屋052の3地域については、さらに細かい単位で指定できます。
番号一個あたりの基本契約金額は、なんと1000円。
自動車のナンバープレートよろしくゴロのいい番号は専門業者が抑えているようですが……。
特に拘らないなら、蕎麦屋の出前番号としても運用可能な位には安いですね。
オプションも中々に豊富です。
取次、転送……果てはWEBで動く管理コンソールなんてものまで。