2013年4月28日日曜日

自宅PCをSSD化

連休は、自宅PCのハードディスクをSSDに換装しました。今のところ特段問題もなく、快適に動いています。入れ替えたのは、インテル Boxed SSD 335 Series 240GB MLC 2.5inch 9.5mm Jay Crest Reseller BOX SSDSC2CT240A4K5です。換装の手順は


  1. 筐体を開けて、SSDをセカンダリのディスクとして接続
  2. 起動してクローンのディスク作成のプログラムをインスト&実行
  3. 再起動してHDDからSSDへコピーされるのを待つ
  4. シャットダウンされたらセカンダリをプライマリのディスクとして入れ替え


換装前後で、ディスクのI/O性能を測って比較してみました。使ったのはCrystalDiskMarkです。なんだか、萌え絵がついたスペシャルバージョンをインストールしてしまいました。値をExcel2013でまとめて、グラフにしています。


HDDとSSDの比較

換装前

SSD換装後




2013年2月16日土曜日

年齢の計算

YRDIFを年齢の計算に使っていましたが、不具合があることに気がつきました。結局、古典的なコードを引っ張り出して計算しています。

data _null_;
        format start end yymmdds10.;

        start = '01mar1992'd;
        end = '01mar1999'd;

        /* BUG */
        dif = yrdif(start,end,'ACT/ACT');
        put _all_;

        dif = intck('YEAR', start, end);

        /* 今年の誕生日がまだ来ていない場合は、数え年から1を引きます */
        if (month(end) < month(start)) then
                dif = dif - 1;
        else if (month(end) = month(start)) and day(end) < day(start) then
                dif = dif - 1;

        put _all_;
run;


2013年2月9日土曜日

Peek at your data using VBScript, OLE DB, and the SAS local data provider

SAS Local Data Providerを使って、SASデータセットの情報を読み取るサンプルコードです。元ネタはココですが、貼り付けるときにバックスラッシュが化けたのかそのままでは動きませんでした。少し手直ししています。SAS.EXEを起動しなくてもOKというのが軽くて良いのですが、果たして何に使うかは思案中です。Delphiで作るツールに役立つかも。

path = "C:\Program Files\SASHome\x86\SASEnterpriseGuide\4.3\Sample\Data"
filename = "Candy_Sales_Summary"

WScript.Echo "Path specified: " & path
WScript.Echo "File name : " & filename

' Check registry for SAS Local Provider
Set WSHShell = CreateObject("WScript.Shell")
clsID = WSHShell.RegRead("HKEY_CLASSES_ROOT\sas.LocalProvider\CLSID\")
'clsID = WSHShell.RegRead("HKCRSAS.LocalProviderCLSID")
WScript.Echo "DIAGNOSTICS: SAS.LocalProvider CLSID is " & clsID
inProcServer = WSHShell.RegRead("HKCR\CLSID\" & clsID & "\InprocServer32\")
WScript.Echo "DIAGNOSTICS: Registered InprocServer32 DLL is " & inProcServer

' Constants for ADO calls
Const adOpenDynamic = 2
Const adLockOptimistic = 3
Const adCmdTableDirect = 512

' Instantiate the provider object
Set obConnection = CreateObject("ADODB.Connection")
Set obRecordset = CreateObject("ADODB.Recordset")

obConnection.Provider = "SAS.LocalProvider"
obConnection.Properties("Data Source") = path
obConnection.Open
obRecordset.Open filename, obConnection, adOpenDynamic, adLockOptimistic, adCmdTableDirect

'Report on Fields in this data set
WScript.Echo ""
WScript.Echo "Opened data " & filename & ", Record count: " & obRecordset.RecordCount
For Each Field In obRecordset.Fields
If Field.Type = 5 Then pType = "Numeric"
If Field.Type = 200 Then pType = "Character"
WScript.Echo Field.Name & " " & pType
Next

obRecordset.Close
obConnection.Close

2013年1月15日火曜日

SAS Log Inspector Version 1.2.0.0 リリース

3連休の間に機能追加しました。マッチングのパターンを画面上から追加、修正して、INIファイルに上書き保存することができるようにしました。INIファイルの書式の問合せが来ても面倒と考えての機能追加です。


この1.2.0.0は、IDEの環境を英語版にスイッチして、ビルドしています。Exportしたときのダイアログは何故か、日本語のままです。それと、ビルドの番号が自動的に上がらない現象がでています。

英語版のサイトに載せて公開することを検討しています。

SAS Log Inspectorの機能
  • 複数のログファイルからエラー、バグに繋がるNOTEを集計
  • 日本語と英語版のメッセージに対応
  • Excelファイルにログをチェックした結果をエクスポート
  • 任意のチェック項目を検査対象から外すことができる
  • Notepadを起動して、該当のログファイルを参照できる
  • マッチングパターンを画面から追加、修正できるように機能を追加





2013年1月14日月曜日

Delphi XE2でIDEが起動しない問題

開発環境のメモ書きです。

Delphi 2009からXE2に切り替えたときに、IDEが起動しない問題に出くわしました。タスクマネージャでbds.exeを見ると、プロセスはありますが、入出力のカウンタは止まったままです。その他のI/Oだけが、ときおりカウントアップしていました。

テクニカルサポートに確認が取れたわけではないので私の推測ですが、McAfee Host Intrusion Preventionのチェックに引っ掛かっていたようです。McAfeeのActivity Logにブロックの記録が残っていました。

そこで、bds.exeをIPS Policy, Firewall Policy, Application Policyに登録したら、IDEが起動しました。それでも、起動まで1分以上時間がかかることもあり、なんいがなんだかよく分からないまま、やり過ごしています。

追記: 2013/01/14
McAfeeのポリシーが変わったのか、またIDEが起動できなくなりました。結果としてIPS Policyにbds.exeを登録して問題は解決しました。


2012年12月31日月曜日

SAS Log Inspector Version 1.1.0.0をリリース

年末年始の休みを使って、SAS Log Inspectorの機能追加を行いました。マッチングのパターンを追加、修正することが出来ます。



SAS Log Inspectorの機能
  • 複数のログファイルからエラー、バグに繋がるNOTEを集計
  • 日本語と英語版のメッセージに対応
  • Excelファイルにログをチェックした結果をエクスポート
  • 任意のチェック項目を検査対象から外すことができる
  • Notepadを起動して、該当のログファイルを参照できる
  • マッチングパターンを追加、修正できるように機能を追加





2012年12月24日月曜日

SAS Log Inspector Version 1.0.0.0をリリース

SAS Log Utilityから機能を分離して、ログを検査するツールを開発しました。まもなく、Vectorで公開されます。主な用途は、SASプログラムのテスト結果(エビデンス)をまとめるために使います。これまで、チェック項目の件数のみを保存していましたが、「Miss Val」などの短縮したメッセージの意味を聞かれることが多かったので、マッチングの結果も表示するように変更しました。



SAS Log Inspectorの機能
  • 複数のログファイルからエラー、バグに繋がるNOTEを集計
  • 日本語と英語版のメッセージに対応
  • Excelファイルにログをチェックした結果をエクスポート
  • 任意のチェック項目を検査対象から外すことができる
  • Notepadを起動して、該当のログファイルを参照できる