YouTubeライブの承認が下りて、テストもして大丈夫だと思ったら、一緒にしゃべっている松村さんの音声が入っていなかったというね…すいません。
我々はTeamsでしゃべっていて、そちらの録画ではもちろん問題なかったので、Teamsの録画を編集して完全版としてこちらに公開しています。
もうすぐ .NET 5正式版公開ですね。RC2をネタに二人でしゃべっています。足利さんは体調不良ということでお休みでした。お大事に。
YouTubeライブの承認が下りて、テストもして大丈夫だと思ったら、一緒にしゃべっている松村さんの音声が入っていなかったというね…すいません。
我々はTeamsでしゃべっていて、そちらの録画ではもちろん問題なかったので、Teamsの録画を編集して完全版としてこちらに公開しています。
もうすぐ .NET 5正式版公開ですね。RC2をネタに二人でしゃべっています。足利さんは体調不良ということでお休みでした。お大事に。
台風25号の襲来が危ぶまれる中、.NET Conf関西2018無事終了しました。ご来場の皆様、お手伝いしてくれた皆様、スピーカーの皆様、場所の提供および、セッション実施してくれた日本マイクロソフト様ありがとうございました。
前日のお昼くらいまで開催するか悩んでて、だいぶそれそう&遅そうということで開催決定しましたが、ほんと気が気じゃなかった。懇親会はお店の都合もあるので、早々にキャンセルを確定したのですが、会場はね…うーんという感じでしたが、できてよかったです。.NET Confといいつつ、.NET色がほとんどないのはいいんだか悪いんだか(汗)。
私はLTということで、VSTSあらため、Azure DevOpsの違いについてちょっとお話させてもらいました。たぶん12月から1月か2月でAzure DevOpsのイベントやろうかなぁと思っていますので、決まったらぜひ参加してください。
来週は東京で.NET Confがあります。こちらもぜひどうぞ。
App Serviceだけではないけど、障害が発生してダンプの解析をしなければならない場合がたまにあります。
ダンプ解析するにはそのモジュールのシンボル(pdb)ファイルを取っておかないといけないのですが、障害解析ができない場合に限って、シンボルをちゃんと管理しているという話をとんと聞きません。特にCやC++のネイティブモジュールであればシンボルがあると、ないとではかなり大変さが違います。
VSTS(Visual Studio Team Services)のPackage管理機能のライセンス(Enterprise Subscriptionを持っている人には入っています)があれば、VSTSのシンボルサーバー機能が使えます。どうやって使うのか紹介します。
オプションからシンボルを選択して、右上の赤枠アイコンをクリックします。
シンボルサーバーとしてライセンスがあるVSTSを選択します。
このように追加されます。
Publish Symbol PathタスクのPublish Symbolsにチェックすると、pdbファイルを自動的にVSTS内に保存します。保存先はVSTS内か、ファイル共有が選べます。
前書いたように、ビルド結果はRetain Policyに従って自動削除されます。シンボルも同じ制御を受けるので、ビルド結果が削除されると自動的にシンボルも削除されます。うっかりプロダクションにリリースしたファイルを削除しないように気を付けてください。
Azure App Serviceのプランによってはダンプが採取できます。
ダウンロードしたミニダンプをダウンロードして、Visual StudioやWinDbgで開くと、VSTSもシンボルサーバーとして扱われるので、自動的にシンボルが検索されます。
今までファイル共有などでシンボル管理はタイへだったと思いますが、VSTSのシンボルサーバー機能はダンプ解析する時大変便利なので、ぜひ使ってください。
ちょうど読みたかったPowerShell実践ガイドブックのレビュワーをマイナビ出版さんが募集されていたので、応募したところ、見事当選しました。シェルに引っ掛けて貝殻が表紙になっているので、貝殻本だそうです。
貝殻本(と呼んで欲しいと書かれてた)とインサイドWindowsが同時に来た!
Windows PowerShellは1.0のころから注目していて、公私ともにぼちぼち使っていました。バッチファイルがどうも嫌だったんですね。単純に並べるだけならまだしも、制御文を考え出すとちょっとつかいたくないな、と。
ほんとうはC#がよかったけど、当時はC#スクリプティングもなかったし、似たような構文でかけるかも、ということでPowerShellという名前になったころからぼちぼち使い始めました。
第一章でPowerShellとどう付き合っていくか、という分類でいえば、「.NETのクラスライブラリを簡単に呼び出したい(&クラスライブラリの挙動確認をしたい)」あたりが近いでしょうか。
Linuxでbashでそこそこのシェルスクリプト書いてプロダクションとして使ったことがありますが、どうしてもなじめなかった。まさに書かれているように、=とかifの後などに空白入れちゃいけないなどの、ルール(?)になじめなかった。とはいえ、これはほかの人がWindows(PowerShell)に移ってきても同じだと思いますので、どっこいどっこいでしょう。
特に1,2章が圧巻でした。PowerShell Coreとは何なのか、また何故Windows PowerShellをメンテナンスフェーズにして、新しいPowerShell Coreを作ることにしたのかという事情やBash、コマンドプロンプトとの違い、検索TIPSやデバッグを丁寧に書かれていて、ここだけで本書の実に半分近くを占めています。
PowerShellなんて昔やったよ!という方が今のPowerShellを勉強しなおすために読み直すのもいいと思います。実際、私も忘れていたところや、あいまいな知識のままだったところ、PowerShell 4.0以降で追加された機能をもう一度参照できてとても勉強になりました。やっぱり本をまとめて読むのはいいですね。
わかっているけど、構文忘れたときはWebでの検索もいいのですが、全くゼロベースの知識から始めるときはこうやってちゃんと挙動や仕様を逐一まとめてくれた本はとても助かります。
また、検索のノウハウやデバッグの基本なども書かれているのは非常にいいと思いました。こういうの教えてもらわないといつまでも無駄な時間を使いますしね。特に「メッセージを英語で」検索するの重要です。本書でも書かれていますが、英語圏には圧倒的なリソースがあるので、解決に至るまでの時間も短くなります。
順序だてて書かれているので、読みやすくはあるのですが、それでもボリュームがある本なので、すでにWindows PowerShellを使いこなしている方であれば、1章を軽く見るだけで、2章,4章を読めばいいかなと思います。
これからPowerShellを始めるんだけど、という方はまず1章,2章でいいでしょう。少しずつ練習して、少し疑問が出てきたり、エラーをもっとちゃんと処理したい、よい書き方を学びたいという方は3章飛ばして、4章読んでから自分のスクリプトを改造するのもいいんではないでしょうか。
PowerShellといえばやはりMSによるスクリプティングのシステム管理を想定しているので、今はPowerShell CoreベースのDSC実装がないことによる運用がなかったのは(著者も書かれていましたが)もっと読みたいところでした。今後DSCの実装が出てきたときに改めて第二版や分冊といった形で出してもらえるといいかなと思います。
とはいえ、ないものをねだっても仕方ないので、今ならAnsibleなんかもあっても面白いかもしれないですね(ベータはあるのかな…)。
個人的にPowerShellに期待しているところといえば、REST使った外部WebAPIをたたくことによる自動化と、WinRM(これはWindows PowerShellですが)による複数マシンの制御なので、そういった本が別にあってもいいかなと思います。
MSが作っているのに、PowerShell Coreの活用はAWSのほうが先行しているという何とも皮肉な図ですが、AzureはWindows PowerShellようにリリースしているモジュールをそのうち合わせてくるのでしょうか。
長いスクリプトは動かしてないので、その部分の正誤はわからないですが、少し気づいたところなど。次の版で直してもらえたらいいかなという程度で、本書の良さを損なっているわけではありません。
コマンドプロンプト(MSDOS)
コマンドプロンプトはMSDOSではないですね。その後ではちゃんと「DOSではない」と書かれているので、あえてそう書かれているのかもしれませんが。あと、Windows PowerShellはメンテナンスフェーズと書かれているのに、エクスプローラにあるというのはちょっと説得力が弱いかなぁと思いました。
コマンドプロンプトのおそらく内蔵コマンドに関しては強化されることはないかもしれませんが、CUIを動かすシェルとしての強化はWSLと連携して続いていますしね。
132ではSYNTAX(たぶんPowerShellの表示結果から)だが、136ページではシンタックスとカタカナ読みになっているのはわざと?
void型を使うと、処理結果を戻り値のないことを表現できます
→少しへんな日本語
「配列の節で説明しているので」
→ここに限らないのですが、後半では章レベルになるものの、参照が書かれているのですが、前に戻ってみるときに探さないといけないので、ちゃんと節番号で書いてもらえると助かります。
リスト2-244に変数だけあって結果がない
「あえて一節を設けて」
→2.7なので、書くなら「一項」?
PowerShellの実行結果ではなく、dotnet coreになってる。たぶんリスト2-291が間違い(実行できないソースのまま掲載)して、ずれてる。
モジュールを任意の方法で読み込んだり、自動的な〜
→だりが一つしかない
リスト3-69の前のところと文のつなぎがよくわからない
Windows PowerShellには証明書を使った認証もあるので、その言及があってもよかったかなぁ。
初期値の説明がですます調(ほかはである調)
メソッドの説明の「記述できます、」の句点誤り
5.1.6の内容は例外の再スローを避ける話なのに、タイトルがちょっと違う気がします。最初タイトルだけ見て内容とあわなくて?となったけど、ソース見て理解できました。
Get-process のtypo
PowerShell実践ガイドブック クロスプラットフォーム対応の次世代シェルを徹底解説
PowerShell実践ガイドブック ~クロスプラットフォーム対応の次世代シェルを徹底解説~