noise

計算機科学や各種設定のメモ

雑感

書店に行って来た。以下、気になった本。

データサイエンス講義 Rachel Schutt

以前から目をつけていたがやはり読む価値はありそう。
流行の機械学習の具体的な理論・応用のやり方を学ぶより先に考えるべきことについて触れられているのが良いと思った。

まるごとフリーで動画編集―AviUtlマスター★ガイド 大須賀 淳

L-SMASH WORKS,拡張x264出力,拡張編集プラグインを用いた編集の紹介。
Nive,Audacity,GIMPの使い方から録音方法なども。初心者向け。

Google BigQuery Jordan Tigani

Map-Reduceから分散SQLへの流れが具体的に述べられていた。

ソフトウェア デザイン 2015年 07月号

Webサーバ・Webアプリケーションへの基本的な攻撃手法がわかりやすくまとまっていた。
最近流行ったShellShockにも触れられていた。

PowerShellメモ

rubyのchompメソッドのようなものをPowerShell

$str.Trim()
使用例
"abc`r`ndef`r`n gh" -split "`n" | %{ $_.Trim().Length }
実行結果
3
3
2

先頭の空白や\r,\nが削除されている。

部分文字列の取得

$str.Substring($start_pos, $end_ops)

文字列が数値に変換可能かをBoolで取得する

[int]::TryParse("AA", [ref]$null)

第二引数にすでに宣言済みの変数を指定するとパーズ成功した場合、結果が入る。

PowerShellメモ

文字列を日時として比較

[DateTime]"2015-04-01" -lt [DateTime]"2015-05-01 12:34:56"

Credentialの使い方

$cred = Get-Credential
$nc = [System.Net.NetworkCredential]$cred
$params = @{user=$nc.UserName; password=$nc.Password}
Invoke-WebRequest -Uri $url_login -SessionVariable session -Method Post -Body $params

CredentialクラスはSystem.Management.Automation名前空間に存在する。
PasswordはSecureStringとして暗号化されて保存されているがキャストまたはGetNetworkCredential()メソッドを呼び出してNetworkCredentialクラスを取得することで平文のPasswordが得られる。

PowerShellでオブジェクトを文字列化(Serialize)

スクリプト

% { $str = " world!"; echo "hello"+$str } | ConvertTo-Xml -as String -Depth 1

実行結果

<?xml version="1.0"?>
<Objects>
  <Object Type="System.Management.Automation.ScriptBlock"> $str = " world!"; echo "hello"+$str </Object>
</Objects>

スクリプトブロックも変換できている。ScriptBlockはクロージャではないので呼び出し時のバインディングを用いることになる。しかしGetNewClosure()メソッドを呼び出せばクロージャに変換できる。

ファイルに保存・読み込みしたい場合はExport-Clixml, Import-Clixmlというコマンドレットがある。

変換できるのは組み込み型とPSObjectだけだろうか。

Cmderのフォント設定

結論

Source Han Code JPおよびMyricaを試した。Myrica Mが最も見易かった。

追記

Cmder(ConEmu)でVimを使った際に{}[]が含まれる行の表示がおかしくなったのでConsolasに戻した。

追記

Cmderの設定でExtend fonts(By the cost of background colors you may change the used font to bold or italic)にチェックを入れると正常に表示されるようになった。結局Myrica Mを使うことにする。

所感

今日は動画エンコード環境で利用するスクリプトの改良を行った。PowerShellとの格闘。ニコニコ動画をダウンロードするスクリプトを改良したい。Myrica MをPuTTYにも使用してみた。