役に立ちそうもないTips移転版

俺得なTipsを書き連ねるだけのブログ。

Windows8: シンボリックリンクとコマンドプロンプトの微妙な関係?

Windows7ではふつーに動いていたものが8(.1)ではうまく動かないのでメモ。

RubyRuby Installerでインストール(2.0.0)
・インストール時拡張子の関連付けはしたが、PATHは後で手動で通した(RUBY_HOMEを設定したかったんで)
・7環境から引き継いだスクリプトコマンドプロンプトから起動すると、なぜか別のコマンドプロンプトが立ち上がってしまう
・件のスクリプトは開発フォルダに本体置いて、PATHの通ったフォルダにシンボリックリンクを張ってあった

で、どうもスクリプトシンボリックリンク経由で起動しようとするとそうなるようだ。
(PATH通ったとこに直に件のスクリプト置くとちゃんと現在のコマンドプロンプト内で動いてくれる)
はて、これはどういうことでこういう動作になるのやら……

WSH TSOのWriteで”¥n”を出力

今更誰が使ってんのというScripting.FileSystemObject配下?のTextStreamObject。
WriteLineメソッドで改行つき出力、Writeメソッドで改行なし出力だが、
たとえばJScript (WSHだからJavaScriptじゃないのねんorz) で

tso.Write("\n");

と書くと、LFだけ出力される。
……何気にストリームバイナリモードで開いてるのかこれ?

VirtualBoxのホストオンリーアダプタの設定・改

以前設定を書きとめておいたのだが、今見るとなんか全然違うorz
なんでこうなってるのかもなんでこれで動いてるのかもまるで分かってないがorz 改めてメモ。

1. Windows上のデバイスであるところのVirtualBox Host-Only Network

2. VirtualBoxの「環境設定-ネットワーク」で追加するネットワークアダプタ

3. ゲストOS上から見える件のアダプタ

このうち、
・1. と2. は同じアドレス
・3. は1. / 2. と同じサブネット上の違うアドレス

そしてホスト→ゲストへSSHとかいうときは3.のアドレスでおk。

プラス、1. / 2. / 3. のサブネットはホストマシンのリアルネットワークアドレスとは別になっている。
(VirtualBoxインスコ時に1.は自動で割り振られるようだ)

……はて、これでどういう仕掛けでちゃんと動いてるんだろうかorz
ちなみにゲスト側のDNS設定とかはホストと同じのを設定しとけばよいらしい。

Excel: 配列数式で平均取る時のコツ

配列数式のちからってすげー!
と覚えたてでぐりぐり使おうとした……が、AVERAGEで大コケ。
「延びそうな範囲を全部含めておいて、列番号でIF噛ましてフィルタリング」
とかすると、空のセルも母数としては勘定されてしまうので平均値が狂うorz
これを回避するには、IFの条件に「 *(対象範囲<>"")」を付けるとよい。プラス、偽(対象外)の場合の値は""にしておく。
(AVERAGEは値0は対象にするが、""は無視してくれるので)
なおAND()は配列数式に対応してないのか、使うとエラーになってしまうorz 大人しく条件値の乗算でやっときませう。

PowerShellの権限設定

Set-ExecutionPolicy コマンドレット。
引数は Restricted / AllSigned / RemoteSigned / Unrestricted のどれか。Windows(ないしPowerShell)のインストール直後はRestricted。
基本RemoteSignedにしとけば捗ると思われ。コード署名とかできるお金持ちな人はAllSignedにしとけば?
なお実行には管理者権限が要るので、設定する際はPowerShell自体を管理者として起動すること。
念のため確認する方はGet-ExecutionPolicy、てそのままですな。

USBヘッドセットで音が出ないとき

USBヘッドセットをつないだが音が出ないーというので調べてみたが、
出力デバイスはちゃんと選択されてるし音量も大丈夫ミュートになってない、
しかし何を再生しても聞こえないしサウンドミキサのゲージもぴくりとも動かない。
っかしーなとふと見てみると「ドライバ入ったでー」のWindowsからの通知ダイアログがほったらかし。
一応閉じておくか、と閉じたら途端に音が出るようになった。……どういうことなの。いやほんと。

Excel: 式の「中」にある{}

たまに式の中に{"あ"}とか書いてあるのを見て「何だこれ?」と思っていた。
で、そういう式を理解しないといけなくなったので調べたが、Excelで中括弧というと配列数式(自動的に式全体が中括弧で括って表示されるアレ)の話ばっかりでなかなか正体がつかめず困ったorz
で、結局ナニモノかというと「配列定数」。つまりリストのリテラルであった。(上のケースだと要素1個の配列ということになる)
COUNTIFとかの条件にこれを与えると、「リスト全要素に対するOR」判定になる。Enumerable#any?的扱い。