布団が俺を呼んでいる

丘山大一のぶろぐ

プロジェクトマネージャ 第5週目 体調不良の罠

年末は飲み会が増えることは分かっていたので、それに合わせて勉強スケジュールを組んでいたのに、
頭痛 + 目の痛み
で勉強どころか日常生活対応で手いっぱいになってしまった。
うーん、体が丈夫なわけではない……というより貧弱なので、体調不良があることもスケジュールに組み込むべきであった……。
感覚的にですが、月4週よりは3週として勉強スケジュールを組んだ方がよさそうですね。

プロジェクトマネージャ 第4週目 「全然勉強できんかった……」

師走になると飲み会、付き合いが増えるよね……。
飲み会に参加しながら、予定を気にしつつ、飲み会の企画しながら、年末年始の計画調整と、年賀状刷り。
う~~~~ん。

あと今更ながらガンダムビルドファイターズ見た。
面白かった。戦闘シーンで、ちょっとパンチ多すぎな気もしたけど。
モビルスーツの格闘戦はビームサーベル→キック→ここぞというところでパンチ が好き。
深い理由はない。なんとなく。

ちなみに、アニメは完結後、概ねレンタルで旧作扱いになってから纏めて見る派。
放映中だとネットに情報が溢れすぎてて、どうしてもネタバレが目に入ってしまい、面白味が薄れる。
情報の氾濫が沈静化して、皆が違うものに気を取られ始めたころに、事前情報無しで見ると素直な気持ちで見られる。
アニメが面白いかどうかはネットや回りの評価じゃない、自分の曇りなき眼で見定め、決める」のだ。

あれ、アニメ話になってしまった……。


ガンダムビルドファイターズ Blu-ray Box 1 [スタンダード版] <期間限定生産 2015/03/25まで>

新品価格
¥38,146から
(2015/12/21 20:55時点)

PowerShell 配布したスクリプトを管理者権限で実行してもらう場合のパスの取り扱い

PowerShellスクリプト自体はbatファイル作って-ExecutionPolicyで実行させれば終わり。
ただ、batを管理者権限で実行させると、スクリプト自体がデスクトップに置かれた場合にパスを取得するのが微妙に面倒くさい。

まず起動用のbat自体について。同階層にあるスクリプトを起動する場合。
powershell -ExecutionPolicy RemoteSigned -File %~dp0%スクリプト名.ps1
%~dp0% をつけて、同階層にあるスクリプトのパスを明示して実行するようにする。

PowerShell 処理の中では、実行しているスクリプトの場所は下記でとれる。
$PSScriptRoot
ネットでは $MyInvocation.MyCommand.Path を使う方法をよく見たけど、私の環境では何故か動かなかった。
まあ原因はともかく$PSScriptRootでとる方が短く済んで簡単。



【改訂新版】 Windows PowerShell ポケットリファレンス

新品価格
¥3,002から
(2015/12/3 23:18時点)

プロジェクトマネージャ 第3週目 「学習時間��保の悩み」

本丸の午後試験対策以前に、堀である午前問題を乗り越えられないことにはしょーがない。
というわけで、知識問題用に色々よみつつ、午前問題を解きなおし。
過去問をやってみたところ、一応70点台はとれた。が、まだまだ足りない(80点台後半は欲しい)。
こちらはちょっとずつ進めることにする。

課題となっているのは、やはり学習時間。
学習が遅れていること・経験不足などを加味して、ざっくり計画で最低週16時間ほどの勉強時間が必要。
平日月~金で合計4時間程度、土日でそれぞれ6時間程度勉強する必要がある。
また、知識補充系は平日・空いた時間でやればいいとしても、問題演習なんかはまとまった時間でやりたい。
つまり土日にやるしかないのだが、土日には予定が入ることが当然ある。
そんな時は問題演習ができなくなってしまう。
定期的に問題演習をしないと成長具合や弱点が掴めなくなるので、次の一週間の学習が非効率になるおそれがある。学習時間が足りない、といっているのに効率を落とすのは致命的。

また、学習に追われると、今度は本業のプログラミングへの学習がおろそかになる。
事実、今週試そうと思っていたことが半分ほどできていない。

う~~む。やはり長期休暇や有休を駆使していかなければ対応できないのだろうか……。
早くも悩みが出てきてしまった。


情報処理教科書 プロジェクトマネージャ 2016年版

新品価格
¥3,110から
(2015/11/29 19:19時点)

PowerShell Invoke-Sqlcmd で SQLServer にアクセスした後にセッションが残っている?

セッションかどうかわかりませんが、何か掴んでいるんだろうなあ、と思いつつも未調査。
環境をパッと作れなかったので……。
ただの備忘記事ですね。
失敗したのは、下記のような作業。

①Invoke-Sqlcmd データベースにアクセス
②とってきたデータを元に処理
③バッチファイル経由でデータベースをDrop
 →タイムアウト

下記のようにしたら通るようになった。
超ムリヤリな方法。
①Invoke-Sqlcmd データベースにアクセス
②とってきたデータを元に処理
Invoke-Sqlcmd マスターデータベースにアクセス
④バッチファイル経由でデータベースをDrop

これはダメな対応ですな……。



【改訂新版】 Windows PowerShell ポケットリファレンス

新品価格
¥3,002から
(2015/10/3 12:43時点)

プロジェクトマネージャ 第2週目 「最初の一歩」

勉強の仕方がよくわからないので、とりあえず買った本を信じてやっていくことにしました。
下手に自分で考えるより、まずは先人の知恵をお借りするのです。
さて、試しに過去問やってみそ、とあったので解いてみたのですが……

午前1:6割くらい
午前2:4割くらい
午後1:見当違いのことを書く
午後2:そもそも全然書けない

わー、絶望的ー。
まずは基礎知識を身につけねばならないようです。


情報処理教科書 プロジェクトマネージャ 2016年版

新品価格
¥3,110から
(2015/11/29 19:19時点)

メモ帳のタイムスタンプ記述機能

Windows標準のメモ帳、先頭行に
.LOG
と入力すると、本文中にタイムスタンプがつくようになります。
ウィキペディアにも載っています。

全然知らんかった……

マルマン A7 メモ エムメモ ブルー マイクロミシン目入り N595-02

新品価格
¥80から
(2015/12/3 23:14時点)

プロジェクトマネージャ 参考書を買ってきました

プロジェクトマネージャ の参考書を購入してみました。
前々から興味はありましたが、別にプロマネをしているわけではありません。
今回購入に至った経緯は単純です。
職場の仲間が段々と退社しつつあり、その理由の大半が「プロジェクトの炎上」に起因しているように思えてきたからです。
今自分が関わっているプロジェクトは炎上していませんが、それはただの幸運であり、いずれ自分の身にも降りかかってくるのは必定です。
よって、火事になるまえに、消化と予防を勉強していこうと思ったのでした。

プロジェクトマネジメントそのものを体系立てて勉強したことはありませんし、そもそも難しいことで有名な試験です。
慌ててやることなく、一歩ずつ進め��いこうと思います。

あと、ここに書くことで自分に発破をかけてみる、という意味もあったり。


情報処理教科書 プロジェクトマネージャ 2016年版

新品価格
¥3,110から
(2015/11/29 19:19時点)

IISのお勉強 WordPressのインストール その3

ISを見ながらIISのお勉強 その3です。

さて、前回までで、すでにWebページは外部にはつながるようになっています。
が、管理画面をいじると、WordPressの更新ができなくなっています。
正確には、WordPressの管理画面から更新をかけようとすると、FTP接続による認証等を求められます。
ここで、FTPを開けるべきか? と思いましたが、調べてみるとWP-Config.phpに一行追加するだけでOKなようです。
というわけでさくっと追加します。
Set-Location 'C:\inetpub\wwwroot\wordpress'
Add-Content .\wp-config.php "define('FD_METHOD','direct')"
これでFTP認証を求められなくなります。

さあ、更新・・・・・・と思うと、今度は
「いくつかのファイルをコピーできないため、最新版のインストールができません。これはたいていの場合、ファイルのパーミッションが適切でないことが原因です。」のエラーが。
こちらも調べてみるとパーミッション、もといファイル・フォルダ権限が問題のようです。
基本的には一つ一つのファイル、フォルダ毎に権限を設定していくべきですが、どうやら時々対象となるファイル、フォルダが変わるようです。毎回毎回調べて一つ一つ設定していくのは一苦労です。
そこで、マズイやり方ではありますが、アップデートの最中だけ、全ファイル・フォルダに書き込み権限を振ることにします。
下記のコマンドで、WordPress以下にUSERSに書き込み権限がくっつきます。

$fPath = "C:\inetpub\wwwroot\wordpress"
$acl = Get-Acl $fPath
$uName = 'USERS'
$fControl = [System.Security.AccessControl.FileSystemRights]::Write
$iFlags = [System.Security.AccessControl.InheritanceFlags]::ContainerInherit,[System.Security.AccessControl.InheritanceFlags]::ObjectInherit
$pFlags = [System.Security.AccessControl.PropagationFlags]::InheritOnly
$type = [System.Security.AccessControl.AccessControlType]::Allow
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule($uName,$fControl,$iFlags,$pFlags,$type) 
$acl.SetAccessRule($rule)
$acl | Set-Acl $fPath

これでアップデートできるようになります。

アップデート完了後は、すぐに下記コマンドで書き込み権限を外します。
上記コマンドとの違いは、$rule変数に渡す引数が空(NULL)になっていること。
(※本当は書き込み権限を削除したかったのですが、やり方わからず・・・・・・)
$fPath = "C:\inetpub\wwwroot\wordpress"
$acl = Get-Acl $fPath
$uName = 'USERS'
$fControl = [System.Security.AccessControl.FileSystemRights]::Write
$type = [System.Security.AccessControl.AccessControlType]::Allow
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule($uName,$fControl,,,$type) 
$acl.SetAccessRule($rule)
$acl | Set-Acl $fPath

これでまずは安心。
プラグインやテーマの拡張についてはまだ調べていませんが、まあ概ねこれでいける気がします。
いけなかったらごめんなさい。

今回のまとめ。
うむ、シャルが可愛い。

Windows PowerShell 実践システム管理ガイド2版 (TechNet ITプロシリーズ)

新品価格
¥4,320から
(2015/10/21 00:21時点)

Infinite Stratos Complete Collection [Blu-ray] [Import]

新品価格
¥4,940から
(2015/10/21 00:25時点)

IISのお勉強 WordPressのインストール その2

前回の続き。
ISを見ながらIISの設定をしていきます。

まずはWordPressにアクセス。
ここまでデフォルトなら、
http://XXX.XXXX.XXX.XXX/wordpress
(XXX.XXX.XXX.XXX はサーバのIPアドレス)
必須項目を入力していきます。
・・・・・・WordPressについては、なんとゆーか以下略。
あんまり書けることがありませんw
とりあえず最低限だけ設定。

さて、外部公開するためには、グローバルアドレスが必要となります。
私の環境はDynamic DNS を利用しているので、ご存じDice先生の設定が必要です。
まずはダウンロード。
$client = New-Object System.Net.WebClient
$client.DownloadFile("http://www.hi-ho.ne.jp/cgi-bin/user/yoshihiro_e/download.cgi?p=dice159_msi", "E:\Dice.msi")

さて、使い方を調べるためにとりあえずヘルプを引きます。
E:\Dice.msi -?
ふんふん。
なんとなくわかった気になったところでインストール。
E:\Dice.msi /quiet /passive /promptrestart

続いて設定します。
DIce 自体は下記に入っています。
C:\Program Files (x86)\Sarad\DiCE\dice.exe
なのですが・・・・・・さて、ここで非常に困ったことが起きます。
といのも・・・・・・Dice for Windows にはコマンドラインから設定を制御する機能が無いようです(汗)
というより、正確にいえばサービスとして起動できるのは有償版です。
無償版ではできないようです。
以前 CentOS で設定した時は逆にコマンドラインでしか設定していなかったので油断していました(汗)
設定自体は先ほどのインストールフォルダdice.datに入っているので、それを直接制御すればよいでしょうが、それでは設定の柔軟性に欠けます。
また、Diceがアップデートした場合(近年されていないようですが)に対応できなくなってしまいます。
残念ですが、ここはGUIで設定するか、他のマシンで設定したファイルをコピーすることで対応します。
「説明」に適当な名称、
「サービス」から使用しているサービスを、
「ホスト名」「ドメイン名」「ユーザー名」「パスワード」に上記サービスで登録した内容を設定。
スケジュールは任意でOKだと思いますが、あんまり頻繁にやっても仕方ないので、
「周期的」-「1時間毎」
を設定しておきます。
まあこのあたりは利用しているサービスとの兼ね合いと好き好きだと思います。
ServerCoreでやっている場合は、別サーバにDIceを登録してしまって、そちらでGUI制御してしまった方が速く分かりやすいと思います。

さて、ここまでできたら、サーバ側の基本設定はほぼ終わりです。
あとはルータ側でポートフォワーディングを設定。
ここも、ルータによって設定が異なるので以下略です。

諸々設定が完了したら、下記Webサイトで設定が正しいか検証できます。
http://www.cman.jp/network/
外部のWebサイトを使うのは、自分のローカルマシンのブラウザからだとうまく名前解決できなかったり、Hostsに書いてある設定で名前解決してしまったり等して、正しく検証できないからです。
やり方は簡単で、ページ左のHTTPチェックを開き���URLを入力して「ホームページ表示確認」を実行します。
おお、なんて便利。

今回のまとめ。
やっぱりシャルが可愛い。

Windows PowerShell 実践システム管理ガイド2版 (TechNet ITプロシリーズ)

新品価格
¥4,320から
(2015/10/21 00:21時点)

IS<インフィニット・ストラトス>2 (初回生産版) 全7巻セット [マーケットプレイス Blu-rayセット]

新品価格
¥29,989から
(2015/10/21 00:24時点)