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日水曜日

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 使ったセルを囲む最小範囲 セル範囲 -

2011年3月8日火曜日

mysqlの先月末日、今月末日

先月末日

mysql> select last_day(date_add(now(), interval -1 month)) as last_month_last_day;


先月末日をYYYYMM形式で

mysql> select date_format(last_day(date_add(now(), interval -1 month)),'%Y%m') as last_month;


今月末日

mysql> select last_day(now()) as this_month_last_day;

OUTFILEでクエリーをCSVにアウトブット

mysqlコンソールでクエリー結果をCSVにエクスポートするの例

mysql> select id,value,name from fund where 1 into outfile "/tmp/fund.csv" fields terminated by ',';
Query OK, 3437 rows affected (0.02 sec)

EXCEL列の重複項目の行を削除する、同時に重複回数を統計

まずはこの数式で統計回数を算出
COUNTIF(範囲,A1)
例: =COUNTIF($A$1:$A$100,A1)
一行目の数式はA1からA100(固定)までA1の重複回数をカウント


そして、数を統計した列にコピーして、「値」をペースト

そして、再び重複チェックの列を選択「データ」の「重複の削除」をクリック

はい、おわり

2011年3月7日月曜日

linuxコンソール便利なショットカット



readline 行入力支援ライブラリ、いろいろ便利なショットカット。
キー 効果
Ctrl+u 挿入位置から行頭を削除
Home 挿入位置を行頭に移動
End 挿入位置を行末に移動
Ctrl+l スクリンをクリア
Tab パスの補完

EXCELで数字を日付として認識される方法

yyyymmddの形をした数字があります、これを日付として認識させたい。

まずはその列を全部選択して、「データ」の「区切り位置」をクリック

そして、区切り文字を「その他」にして、「/」を入れて、次へ

最後に、「日付」を選択して、終わり

日付になった