2011年3月31日木曜日

Googleマップ、被災地の航空写真大幅更新されました

たまたま発見しました。これは福島第一原子力発電所(37.420597,141.033344)

apcupsdとUPSを使い、停電時自動シャットダウン

これから電源の供給が不安定になる恐れがあるので、apcupsdとUPSを導入するし、停電時自動シャットダウンの体制をつくろうと思って

以下apcupsdのメモ

#パッケージをダウンロード
$ wget http://sourceforge.net/projects/apcupsd/files/rpms%20-%20Stable/3.14.8/apcupsd-3.14.8-1.el4.i386.rpm/download
#既にインストールしているかどうかを確認
$ sudo rpm -q apcupsd
#あればアンインストール
$ sudo rpm -e apcupsd
#なければインストール
$ sudo rpm -i apcupsd-3.14.8-1.el4.i386.rpm
#設定ファイルを変更
$ vi /etc/apcupsd/apcupsd.conf

#MASTERの場合
UPSCABLE usb
UPSTYPE usb
DEVICE
NETSERVER on
NISIP 0.0.0.0

#SLAVEの場合
UPSCABLE ether
UPSTYPE net
DEVICE 192.168.2.118:3551 #MASTERのIP
NETSERVER off
NISIP 192.168.2.118 #MASTERのIP
####### 以下オプションは必要の時設定すればよい #########
POLLTIME 60 #60秒一回MASTERにUPSの状態を問い合わせる
ONBATTERYDELAY 6 #6秒以上の"停電"は停電と見なす
BATTERYLEVEL 5 #残バッテリーが5%以下になったら、システムシャットダウンを始める
TIMEOUT 360 #停電と見なして360秒後システムシャットダウンを始める


接続はこんなイメージ、画像は引用http://www.xa10.com/apcupsd/

2011年3月30日水曜日

VMware ESXi ホストへアクセス時使うポートは 443(HTTPS)?

VMware ESXi ホストへアクセス時使うポートは 443と902、903
検証済み

2011年3月11日金曜日

今日。大地震!!

今日(2011/03/11)の午後14:46分頃、宮城が震度7の大地震がありました、東京でも5+ありました。
オフィスのいるビルの12階が結構揺れました、怖かった。一時日比谷公園に避難しました。

デレビで見た津波や火災の光景、本当に大災難だ!家族と人々の安全を祈ります…


2011年3月10日木曜日

サブディレクトリまで一気に構造できるCreateFolder

VBAのFileSystemObjectではCreateFolderがありますが、ちょっとまじめすぎる。
例えば c:\hogeが存在しない前提で、c:\hoge\work\ を作成しようとすると、エラーが出します。

やりたいことはサブフォルダーを含め、一括複数層のフォルダ構造を一気に作成することです。

Function xCreateFloder(path)
    Dim tp As Variant
    Dim FSO As New Scripting.FileSystemObject
    Dim pp As String
    
    pp = ""
    tp = Split(path, "\")
    For Each p In tp
        pp = pp & IIf(pp = "", "", "\") & p
        If Not FSO.FolderExists(pp & "\") Then
            FSO.CreateFolder pp
        End If
    Next p
    Set FSO = Nothing
End Sub
追加「\\」から始まるネットドライブ対応バージョン
前提は書き込み権限あり
Public Function xCreateFloder(path) As Boolean
    Dim tp As Variant
    Dim FSO As New Scripting.FileSystemObject
    Dim pp As String
    Dim p As Variant
    Dim netDrive As Boolean
    Dim tpath As String
    
    xCreateFloder = False
    
    If Left(path, 2) = "\\" Then
        netDrive = True
        path = Replace(path, "\\", "")
    End If
    
    pp = ""
    tp = Split(path, "\")
    For Each p In tp
        If netDrive Then
            pp = pp & IIf(pp = "", "", "\") & p
            tpath = IIf(netDrive, "\\", "") & pp & "\"
            Shell "cmd /c mkdir " & tpath, vbHide
        Else
            pp = pp & IIf(pp = "", "", "\") & p
            If Not FSO.FolderExists(pp & "\") Then
                FSO.CreateFolder pp
            xCreateFloder = True
            End If
        End If
    Next p
    Set FSO = Nothing
End Function
使い例
xCreateFloder "\\nas\abc"
xCreateFloder "c:\abc"

VBAのrangeオブジェクトの書き方

参考,VABのRangeオブジェクトの書き方:

指定例 参照するセル 備考 アドレス
Range("A1") 「A1」セル 単一のセル $A$1
Range("A1,C5") 「A1」セルと「C5」セル 複数の単一セル $A$1,$C$5
Range(Range("A1"),Range"(C5")) $A$1:$C$5、RangeオブジェクトでRangeを定義
Range("A1","C5") 「A1~C5」セル セル範囲 $A$1:$C$5
Range("A1:C5") 「A1~C5」セル セル範囲 $A$1:$C$5
Range("A1:C5,E1:G5") 「A1~C5」セルと「E1~G5」セル 複数のセル範囲 $A$1:$C$5,$E$1:$G$5
上記方法はどうやら上限あります
Range("A:C")
Columns("A:C")
Range("A:C,E:E").EntireColumn
「A~C」列
「A~C、E」列
列範囲 $A:$C
$A:$C,$E:$E
Range("1:5")
Rows("1:5")
Range("1:5,7:7").EntireRow
「1~5」行
「1~5、7」行
行範囲 $1:$5
$1:$5,$7:$7
UsedRange 使ったセルを囲む最小範囲 セル範囲 -