Firebird 2.xで運用しているシステムを2.5にバージョンアップするときにはユーザデータベース(security2.fdb)の移行に気をつけましょう、という記事。
Firebird News » Migrating users from FB 2.1 to FB 2.5
てきとうな要約: ユーザデータベースもまたFirebirdのデータベースなので、Firebirdのバージョンが異なるとODSのバージョンもまた異なる、という問題があるため、単にコピーしておいたsecurity2.fdbを上書きするようなやり方は無保証であり、gbakでバックアップ/リストアするのが望ましいけれども、この場合新しい"RDB$ADMIN"ロールとの関係で、ユーザ操作を行う新しいSQL(CREATE/ALTER/DROP USER)をSYSDBAを含む通常ユーザが実行できない、ということになる(Firebird 2.5.1にはこの問題を解決するスクリプトが含まれる予定)。結局現時点ではgsecを使って新しくユーザを登録しなおすのが最も望ましい解決方法、ということになる。
2010年11月12日
2010年11月11日
登録回数の上限をwebから変更できなくなった
以前はインストール数の上限に達したときはwebから上限を変更できましたが、つ4さんのとほほな日々 備忘録の[Delphi] RAD XE インストールのトラブルのコメント欄や公式フォーラムのLicense bumping-What is the limit ?のJan Derkさんの発言にあるように、2010/10/05以降はwebからの変更(bump up)は動作しておらず、Support KBのインストール・使用許諾にあるとおり、インストール・使用許諾から申請するように変更されています。
2010年11月10日
2010年11月9日
Dependency Walker
実行ファイルが静的、動的にリンクしているDLLを確認するツールとしてはMicrosoft Visual Studioに付属している(た)Dependency Walkerが一般的ですが、Dependency Walkerが知らないうちにfreewareになっていました(現在はSteve P. Millerさんがメンテナのようです)。
Dependency Walker (depends.exe) Home Page
現時点の最新版は2.2.6000で、x86/x64/IA64版が用意されています。
またx86版については黒翼猫さんが日本語化パッチを作成してくださっています。
Dependency Walker 日本語化パッチ を作りました - Windows 2000 Blog
Dependency Walker (depends.exe) Home Page
現時点の最新版は2.2.6000で、x86/x64/IA64版が用意されています。
またx86版については黒翼猫さんが日本語化パッチを作成してくださっています。
Dependency Walker 日本語化パッチ を作りました - Windows 2000 Blog
2010年11月8日
IDE Fix Pack 4.0 Beta版テスト中
Andreas HausladenさんのIDE Fix Pack 4.0とDelphiSpeedUp 3.0のBeta版が公開されています(
The IDEFixPack 4.0 BETA begins… | Andy’s Blog and Tools
Delphi 7はDelphiSpeedUp(3.0 Beta)のみ、Delphi 2007はDelphiSpeedUp(3.0 Beta)+IDE Fix Pack (4.0 Beta)、Delphi 2009/2010/XEはIDE Fix Pack(4.0 Beta)のみ、とちょっと複雑です。また結構な勢いで更新されていて、まだまだ安定しているとまではいえないようです(手元の環境でもエラーが出たり…)。
2010/11/16追記: Release Candidate 2まで進んでいます。
Use it at your own risk.です)。
The IDEFixPack 4.0 BETA begins… | Andy’s Blog and Tools
Delphi 7はDelphiSpeedUp(3.0 Beta)のみ、Delphi 2007はDelphiSpeedUp(3.0 Beta)+IDE Fix Pack (4.0 Beta)、Delphi 2009/2010/XEはIDE Fix Pack(4.0 Beta)のみ、とちょっと複雑です。また結構な勢いで更新されていて、まだまだ安定しているとまではいえないようです(手元の環境でもエラーが出たり…)。
2010/11/16追記: Release Candidate 2まで進んでいます。
2010年11月5日
インストールされているDelphiのバージョンを調べる
RRUZ(Rodrigo Ruz)さんによるインストール済のDelphiのバージョンを調べる方法。レジストリのHKCUかHKLMのSoftware\Borland|CodeGear|Embarcadero\Delphi|BDS\の存在を見ればよい。それ以上何もないのでリンクのみメモ。
Detecting installed delphi versions. « The Road to Delphi – a Blog About Delphi Programming (mostly)
Detecting installed delphi versions. « The Road to Delphi – a Blog About Delphi Programming (mostly)
2010年11月4日
$WARNによる警告の制御
Delphiではコンパイラディレクティブ$WARNを使用して警告を有効/無効/エラーに昇格/デフォルトに戻すという指定をすることができます(エラーに昇格、デフォルトに戻すの2つはDelphi 2009以降の新機能)。
ONを指定するとその警告が有効に、OFFで無効に、ERRORでその警告をエラーに昇格、DEFAULTで指定をプロジェクトオプションで指定したものに戻す、という動作になります。
指定可能な警告とエラーコードは以下のとおりです。
元ねたはSource\ToolsAPI\DCCStrs.pas、警告メッセージ(Delphi) - RAD Studio (en)、エラーと警告のメッセージ(Delphi) - RAD Studio (en)。
2016/04/28追記: Delphi 10.1 Berlinの情報を追加。
2017/04/04追記: Delphi 10.2 Tokyoで追加されたW1071/W1072/W1073の情報を追加。
2018/12/01追記: Delphi 10.3 Rioで追加されたW1074の情報を追加。
2019/02/27追記: W1067/W1069/W1070/W1071/W1072/W1073のリンクを追加。
2023/11/09追記: W1074のリンクを追加。
2026/03/22追記: Delphi 13 Florenceで追加されたW1075/W1076/W1077/W1078/W1079およびDelphi 13.1 Florenceで追加されたW1080の情報を追加。
{$WARN identifier ON | OFF | ERROR | DEFAULT}指定可能な警告とエラーコードは以下のとおりです。
- SYMBOL_DEPRECATED
- W1000 (ja)
- SYMBOL_LIBRARY
- W1001 (ja)
- SYMBOL_PLATFORM
- W1002 (ja)
- SYMBOL_EXPERIMENTAL
- W1003 (ja)
- UNIT_LIBRARY
- W1004 (ja)
- UNIT_PLATFORM
- W1005 (ja)
- UNIT_DEPRECATED
- W1006 (ja)
- UNIT_EXPERIMENTAL
- W1007 (ja)
- HRESULT_COMPAT
- W1008 (ja)
- HIDING_MEMBER
- W1009 (ja)
- HIDDEN_VIRTUAL
- W1010 (ja)
- GARBAGE
- W1011 (ja)
- BOUNDS_ERROR
- x1012 (ja)
- ZERO_NIL_COMPAT
- W1013 (ja)
- STRING_CONST_TRUNCED
- W1014 (ja)
- FOR_LOOP_VAR_VARPAR
- W1015 (ja)
- TYPED_CONST_VARPAR
- W1016 (ja)
- ASG_TO_TYPED_CONST
- W1017 (ja)
- CASE_LABEL_RANGE
- W1018 (ja)
- FOR_VARIABLE
- x1019 (ja)
- CONSTRUCTING_ABSTRACT
- x1020 (ja)
- COMPARISON_FALSE
- W1021 (ja)
- COMPARISON_TRUE
- W1022 (ja)
- COMPARING_SIGNED_UNSIGNED
- W1023 (ja)
- COMBINING_SIGNED_UNSIGNED
- W1024 (ja)
- UNSUPPORTED_CONSTRUCT
- x1025 (ja)
- FILE_OPEN
- x1026 (ja)
- FILE_OPEN_UNITSRC
- F1027 (ja)
- BAD_GLOBAL_SYMBOL
- x1028 (ja)
- DUPLICATE_CTOR_DTOR
- W1029 (ja)
- INVALID_DIRECTIVE
- x1030 (ja)
- PACKAGE_NO_LINK
- W1031 (ja)
- PACKAGED_THREADVAR
- W1032 (ja)
- IMPLICIT_IMPORT
- x1033 (ja)
- HPPEMIT_IGNORED
- W1034 (ja)
- NO_RETVAL
- W1035 (ja)
- USE_BEFORE_DEF
- W1036 (ja)
- FOR_LOOP_VAR_UNDEF
- W1037 (ja)
- UNIT_NAME_MISMATCH
- E1038 (ja)
- NO_CFG_FILE_FOUND
- W1039 (ja)
- IMPLICIT_VARIANTS
- W1040 (ja)
- UNICODE_TO_LOCALE
- W1041 (ja)
- LOCALE_TO_UNICODE
- W1042 (ja)
- IMAGEBASE_MULTIPLE
- W1043 (ja)
- SUSPICIOUS_TYPECAST
- W1044 (ja)
- PRIVATE_PROPACCESSOR
- W1045 (ja)
- UNSAFE_TYPE
- W1046 (ja)
- UNSAFE_CODE
- W1047 (ja)
- UNSAFE_CAST
- W1048 (ja)
- OPTION_TRUNCATED
- W1049 (ja)
- WIDECHAR_REDUCED
- W1050 (ja)
- DUPLICATES_IGNORED
- W1051 (ja)
- UNIT_INIT_SEQ
- W1052 (ja)
- LOCAL_PINVOKE
- W1053 (ja)
- MESSAGE_DIRECTIVE
- x1054 (ja)
- TYPEINFO_IMPLICITLY_ADDED
- W1055 (ja)
- RLINK_WARNING
- x1056 (ja)
- IMPLICIT_STRING_CAST
- W1057 (ja)
- IMPLICIT_STRING_CAST_LOSS
- W1058 (ja)
- EXPLICIT_STRING_CAST
- W1059 (ja)
- EXPLICIT_STRING_CAST_LOSS
- W1060 (ja)
- CVT_WCHAR_TO_ACHAR
- W1061 (ja)
- CVT_NARROWING_STRING_LOST
- W1062 (ja)
- CVT_ACHAR_TO_WCHAR
- W1063 (ja)
- CVT_WIDENING_STRING_LOST
- W1064 (ja)
- NON_PORTABLE_TYPECAST
- W1065 (ja)
- LOST_EXTENDED_PRECISION
- W1066 (ja)
- LNKDFM_NOTFOUND
- W1067 (ja)
- IMMUTABLE_STRINGS
- W1068 (ja)
- MOBILE_DELPHI
- W1069 (ja)
- UNSAFE_VOID_POINTER
- W1070 (ja)
- IMPLICIT_INTEGER_CAST_LOSS
- W1071 (ja)
- IMPLICIT_CONVERSION_LOSS
- W1072 (ja)
- COMBINING_SIGNED_UNSIGNED64
- W1073 (ja)
- UNKNOWN_CUSTOM_ATTRIBUTE
- W1074 (ja)
- OVERLOADING_ARRAY_PROPERTY
- W1075 (ja)
- POINTER_CAST_NARROWER
- W1076 (ja)
- POINTER_CAST_MIGRATION
- W1077 (ja)
- POPOPT_WITH_NO_MATCHING
- W1078 (ja)
- MISSING_POPOPT
- W1079 (ja)
- INVALID_NORETURN
- W1080 (ja)
- XML_WHITESPACE_NOT_ALLOWED
- W1201 (ja)
- XML_UNKNOWN_ENTITY
- W1202 (ja)
- XML_INVALID_NAME_START
- W1203 (ja)
- XML_INVALID_NAME
- W1204 (ja)
- XML_EXPECTED_CHARACTER
- W1205 (ja)
- XML_CREF_NO_RESOLVE
- W1206 (ja)
- XML_NO_PARM
- W1207 (ja)
- XML_NO_MATCHING_PARM
- W1208 (ja)
2016/04/28追記: Delphi 10.1 Berlinの情報を追加。
2017/04/04追記: Delphi 10.2 Tokyoで追加されたW1071/W1072/W1073の情報を追加。
2018/12/01追記: Delphi 10.3 Rioで追加されたW1074の情報を追加。
2019/02/27追記: W1067/W1069/W1070/W1071/W1072/W1073のリンクを追加。
2023/11/09追記: W1074のリンクを追加。
2026/03/22追記: Delphi 13 Florenceで追加されたW1075/W1076/W1077/W1078/W1079およびDelphi 13.1 Florenceで追加されたW1080の情報を追加。
2010年11月2日
第18回エンバカデロ・デベロッパーキャンプ開催決定
第18回エンバカデロ・デベロッパーキャンプは(かねてからの予告どおり)2010年12月07日に開催されます。
エンバカデロ・デベロッパーキャンプ
またT6セッション『ライトニングトーク「共有!みんなの開発事例、開発経験、 テクニック」』のスピーカを募集しています。
【募集】第18回 エンバカデロ・デベロッパーキャンプ - ライトニングトークスピーカー
2010/11/04追記: ライトニングトークに高橋さんが参戦するようです。
Team Japan » ライトニングトークで喋ってみませんか?
ん~。いいネタを思いつかないし、ネタから考えるには仕事が忙しい気がするし…。
2010/11/10追記: 今回はUStreamとLiveMeeting(事前登録はここから)の両方で中継するそうです。あれ、エンバカデロ本社の誰かがCodeRage 5の後で次回からLiveMeetingはやめて他のシステムを使うようなことをいっていたような(クロスプラットフォームといいながらMac/Linuxで見られないのはいかがなものかという話の流れで)。
2010/11/19追記: UStreamでMalcolm Grovesさん出演の事前放送が行われるとのことです。
2010/11/25 17:00-17:15(JST) 12月7日まで待てない!デベロッパーキャンプ事前放送 - 第1回
2010/11/26 12:00-12:15(JST) 12月7日まで待てない!デベロッパーキャンプ事前放送 - 第1回(再放送) (リンク先の日付が11/19になっていますが、11/26が正しいはず)
2010/11/27追記: Team Japanに関連アーティクルが出ています。
Team Japan » 12月7日は第18回 エンバカデロ・デベロッパーキャンプです
2010/11/30追記: UStreamでJason Tiretさん出演の事前放送が行われます。
2010/12/02 17:00-17:15(JST) 12月7日まで待てない!デベロッパーキャンプ事前放送 - 第2回
2010/12/03 12:00-12:15(JST) 12月7日まで待てない!デベロッパーキャンプ事前放送 - 第2回(再放送)
2010/12/02 追記: Team Japanに会場へのアクセスについてのアーティクルが出ています。
Team Japan » 第18回 エンバカデロ・デベロッパーキャンプ会場へのアクセス
エンバカデロ・デベロッパーキャンプ
またT6セッション『ライトニングトーク「共有!みんなの開発事例、開発経験、 テクニック」』のスピーカを募集しています。
【募集】第18回 エンバカデロ・デベロッパーキャンプ - ライトニングトークスピーカー
2010/11/04追記: ライトニングトークに高橋さんが参戦するようです。
Team Japan » ライトニングトークで喋ってみませんか?
ん~。いいネタを思いつかないし、ネタから考えるには仕事が忙しい気がするし…。
2010/11/10追記: 今回はUStreamとLiveMeeting(事前登録はここから)の両方で中継するそうです。あれ、エンバカデロ本社の誰かがCodeRage 5の後で次回からLiveMeetingはやめて他のシステムを使うようなことをいっていたような(クロスプラットフォームといいながらMac/Linuxで見られないのはいかがなものかという話の流れで)。
2010/11/19追記: UStreamでMalcolm Grovesさん出演の事前放送が行われるとのことです。
2010/11/25 17:00-17:15(JST) 12月7日まで待てない!デベロッパーキャンプ事前放送 - 第1回
2010/11/26 12:00-12:15(JST) 12月7日まで待てない!デベロッパーキャンプ事前放送 - 第1回(再放送) (リンク先の日付が11/19になっていますが、11/26が正しいはず)
2010/11/27追記: Team Japanに関連アーティクルが出ています。
Team Japan » 12月7日は第18回 エンバカデロ・デベロッパーキャンプです
2010/11/30追記: UStreamでJason Tiretさん出演の事前放送が行われます。
2010/12/02 17:00-17:15(JST) 12月7日まで待てない!デベロッパーキャンプ事前放送 - 第2回
2010/12/03 12:00-12:15(JST) 12月7日まで待てない!デベロッパーキャンプ事前放送 - 第2回(再放送)
2010/12/02 追記: Team Japanに会場へのアクセスについてのアーティクルが出ています。
Team Japan » 第18回 エンバカデロ・デベロッパーキャンプ会場へのアクセス
2010年11月1日
2010年10月28日
CodeRage 5 セッションリプレイ
CodeRage 5のセッションリプレイが見られるようになりました。
個人的に要チェックなセッション(全部は無理だろうけど):
また一部ですがスピーカの方々によるセッション資料、サンプルコードの公開も行われています。
Marco Cantuさん(Day 1: Session 1/2, Day 2: Session 14/15)
CodeRage 5 Slides and Code Downloads
Cary Jensenさん(Day 2: Session 20)
28044 CDSDemo Simple ClientDataSet Demonstration
John Kasterさん(Day 5: Session 57)
28067 Deep dive into dbExpress CodeRage 5 slides
DbxUtils(svn)
個人的に要チェックなセッション(全部は無理だろうけど):
- Technical Session #3
Delphi JSON (Pawel Glowacki - Embarcadero) - Technical Session #6
Building Amazing Applications with InterBase XE…What's New in InterBase (Christine Normile - Embarcadero) - Technical Session #15
Multitier with DataSnap (Marco Cantu' - Wintech Italia Srl) - Technical Session #16
How RegEx Scripting can Ease Software Upgrade Pain (Ann Lynnworth - HREF Tools Corp.) - Technical Session #18
A Pragmatic & Powerful Code Generator with Generics and Anonymous Methods (Jeroen Pluimers) - Technical Session #19
What's New in RAD Studio XE RTL (Thom Gerdes - Embarcadero) - Technical Session #21
Creating Editor Key Bindings in Delphi (Cary Jensen - Jensen Data Systems, Inc.) - Technical Session #23
Software Archeology with Delphi (now with AQtime) (Michael Rozlog - Embarcadero) - Technical Session #26
Building Robust Applications with Customized Exception Management (Robert Love - State of Utah) - Technical Session #31
Delphi Tips and Tricks with Marco Cantù and Cary Jensen (Cary Jensen - Jensen Data Systems, Inc. and Marco Cantu' - Wintech Italia Srl) - Technical Session #33
Effectively Using CodeSite Express (Ray Konopka - Raise Software) - Technical Session #34
Developing WPF Applications in Delphi Prism (Ray Konopka - Raise Software) - Technical Session #35 Embarcadero Quality Maturity Model (Chris Pattinson - Embarcadero)
- Technical Session #37
Building a Well Designed Service using Delphi (Jon Robertson - jmrSoftware) - Technical Session #44
Developing Multithreaded Applications with Delphi and C++Builder (Boian Mitov - Mitov Software) - Technical Session #51
Using Extended RTTI to Make your Life Easier (Mason Wheeler) - Technical Session #52
VENDOR SHOWCASE: Delphi PDF Processing & Document Creation Technologies from Gnostice (Girish Patil - Gnostice Information Technologies) - Technical Session #53
VENDOR SHOWCASE: UI Design with Raize Components (Ray Konopka - Raise Software) - Technical Session #57
Deep Dive into dbExpress (John Kaster - Embarcadero) - Technical Session #58
VENDOR SHOWCASE: Add Internet Communications, Security, and E-Business Connectivity to Any Application, on Any Platform, Anywhere (Eric Madariaga - /n software)
また一部ですがスピーカの方々によるセッション資料、サンプルコードの公開も行われています。
Marco Cantuさん(Day 1: Session 1/2, Day 2: Session 14/15)
CodeRage 5 Slides and Code Downloads
Cary Jensenさん(Day 2: Session 20)
28044 CDSDemo Simple ClientDataSet Demonstration
John Kasterさん(Day 5: Session 57)
28067 Deep dive into dbExpress CodeRage 5 slides
DbxUtils(svn)
2010年10月25日
WMI Delphi Code Creator
RRUZ(Rodrigo Ruz)さんによるDelphiでWMI(Windows Management Instrumentation)を扱うコード(コンソールアプリケーションおよびアクセスメソッド)を生成するツール。興味深い。とりあえずメモ。
WMI Delphi Code Creator « The Road to Delphi – a Blog About Delphi Programming (mostly)
ただしWindows 2000では正常に動作しません(GetText_メソッドがサポートされていないというエラーが発生します)。
2010/10/26追記: WMI Delphi Code Creatorが1.0.0.1から1.0.0.11に更新されています。
WMI Delphi Code Creator – New Features « The Road to Delphi – a Blog About Delphi Programming (mostly)
インストーラ形式になったほか、生成したコードを直接コンパイル/実行したりDelphiのIDEで開く機能や、WMIのメソッド呼び出し/イベントのサポートなどが追加されています。
2010/11/29追記: OSによりWMIのインタフェースのサポートするメソッドが異なるので注意しましょう、という補足記事が出ています。
Be careful when you import the Microsoft WMIScripting Library « The Road to Delphi – a Blog About Delphi Programming (mostly)
てきとうな要約: Microsoft WMIScripting LibraryをDelphiのインポートウィザードで取り込んで生成したWMIのインタフェースは環境(というより"%System32%\wbem\wbemdisp.TLB")に依存してしまうため、新しいOSで追加されたインタフェースには気をつける必要がある。環境に依存しないようにするには、対応する予定のOSの最も古いもののインタフェースのみを使用する。例としてあげられているISWbemObjectSetのItemIndexメソッドはWindows XPには存在しないがWindows 7には存在するため、気付かずにItemIndexを使用しているとWindows XPで実行時にアクセスバイオレーションを引き起こしてしまう。これを防ぐにはItemIndexを使用せず、代わりに_NewEnumメソッドで取得したIEnumVariantインタフェースのNextメソッドを使用する。
WMI Delphi Code Creator « The Road to Delphi – a Blog About Delphi Programming (mostly)
ただしWindows 2000では正常に動作しません(GetText_メソッドがサポートされていないというエラーが発生します)。
2010/10/26追記: WMI Delphi Code Creatorが1.0.0.1から1.0.0.11に更新されています。
WMI Delphi Code Creator – New Features « The Road to Delphi – a Blog About Delphi Programming (mostly)
インストーラ形式になったほか、生成したコードを直接コンパイル/実行したりDelphiのIDEで開く機能や、WMIのメソッド呼び出し/イベントのサポートなどが追加されています。
2010/11/29追記: OSによりWMIのインタフェースのサポートするメソッドが異なるので注意しましょう、という補足記事が出ています。
Be careful when you import the Microsoft WMIScripting Library « The Road to Delphi – a Blog About Delphi Programming (mostly)
てきとうな要約: Microsoft WMIScripting LibraryをDelphiのインポートウィザードで取り込んで生成したWMIのインタフェースは環境(というより"%System32%\wbem\wbemdisp.TLB")に依存してしまうため、新しいOSで追加されたインタフェースには気をつける必要がある。環境に依存しないようにするには、対応する予定のOSの最も古いもののインタフェースのみを使用する。例としてあげられているISWbemObjectSetのItemIndexメソッドはWindows XPには存在しないがWindows 7には存在するため、気付かずにItemIndexを使用しているとWindows XPで実行時にアクセスバイオレーションを引き起こしてしまう。これを防ぐにはItemIndexを使用せず、代わりに_NewEnumメソッドで取得したIEnumVariantインタフェースのNextメソッドを使用する。
2010年10月22日
InterBase XEリリース
どうやらInterBase XEがリリースされているようです。バージョンはWindows x86が10.0.0.247、Windows x64が10.0.0.258となっています。まだ日本語の情報は出ていないようなので、英語の登録、導入、ライセンスに関する情報のリンクを再掲しておきます。
Embarcadero InterBase News - New InterBase XE
Download a Free Trial for InterBase
Installation, Registration, and Licensing Information for Embarcadero ® InterBase® XE
InterBase XE Readme
Embarcadero InterBase News - New InterBase XE
Download a Free Trial for InterBase
Installation, Registration, and Licensing Information for Embarcadero ® InterBase® XE
InterBase XE Readme
2010年10月21日
Firebird 2.5 日本語インストーラリリース
Firebird日本ユーザ会からFirebird 2.5(Win32)の日本語インストーラがリリースされています。ただし
元ねたはFirebird News » Japanese Firebird 2.5.0 installer is ready (Windows 32-bit versions)。
本インストーラーのFirebirdは、はやしがMS VisualStudio2008でビルドしたものです。公式に配布されているバイナリはVisualStudio2005でビルドされているもので、必要なMSのランタイムライブラリのバージョンが違っています。必要なランタイムライブラリはインストーラーがインストールしますが、問題がある場合には英語版の公式インストーラーをご利用下さい。とのことなので注意が必要です。ダウンロードページからダウンロード可能です。
元ねたはFirebird News » Japanese Firebird 2.5.0 installer is ready (Windows 32-bit versions)。
2010年10月15日
FFR yarai 脆弱性防御機能 for Windows 2000 動作検知用スクリプト
Windows 2000(Service Pack 4)は2010/07/13で延長サポートフェーズが終了しています。企業などでは延長サポートが終了したOSはPCごと更新してしまうのが望ましいわけですが、色々な(お金やリソースの)事情でなかなか更新できない、ということもあります。そのような場合の延命策のひとつとして、フォティーンフォティ技術研究所(FFR)のFFR yarai 脆弱性防御機能 for Windows 2000(yarai2000)を導入している場合もあるのではないでしょうか。ところがこのツール、異常な動作を検知してもイベントログにイベントを記録するだけで、ユーザに明示的に通知するようにはなっていません。そこでyarai2000がイベントログにイベントを追加するのを監視して、エラーダイアログを表示するスクリプト(VBS)をでっち上げてみました。
(<scriptfile>は保存したスクリプトのフルパス名)という内容のコマンドラインをスタートアップで最小化状態で起動しておけば、yarai2000が異常を検知したときにエラーダイアログを表示して知らせてくれます。
元ねたはMicrosoft | TechnetのHey, Scripting Guy! イベント ログで特定のイベントの発生を監視する方法はありますか、Hey, Scripting Guy! イベント ログ メッセージに特定の単語が含まれるかどうかを監視する方法はありますか、スクリプトとは何ですか | スクリプト センターあたり。
strComputer = "."
Set objWMIService = GetObject("winmgmts:{(Security)}\\" & _
strComputer & "\root\cimv2")
Set colMonitoredEvents = objWMIService.ExecNotificationQuery _
("Select * from __InstanceCreationEvent Where " & _
"TargetInstance ISA 'Win32_NTLogEvent' " & _
"and TargetInstance.SourceName = 'yarai ZDP' ")
Do
Set objLatestEvent = colMonitoredEvents.NextEvent
If objLatestEvent.TargetInstance.EventCode = 1 Then
Call MsgBox("FFR yarai 2000が異常を検知しました。" & _
vbCrLf & vbCrLf & _
"メッセージ: " & _
objLatestEvent.TargetInstance.Message & _
"イベントコード: " & _
objLatestEvent.TargetInstance.EventCode, _
vbYes + vbError,"Error")
End If
Loop
このスクリプトを拡張子.vbsで適当な場所に保存し、%windir%\system32\cscript.exe <scriptfile>元ねたはMicrosoft | TechnetのHey, Scripting Guy! イベント ログで特定のイベントの発生を監視する方法はありますか、Hey, Scripting Guy! イベント ログ メッセージに特定の単語が含まれるかどうかを監視する方法はありますか、スクリプトとは何ですか | スクリプト センターあたり。
2010年10月13日
2010年10月12日
Delphiのインラインアセンブラ解説
Ernesto De SpiritoさんによるDelphiのインラインアセンブラに関する解説。興味深い。とりあえずメモ。
Inline Assembler in Delphi
将来のMacOS XやLinux、x86以外のCPU(x64、ARM...)のサポートを考えれば、インラインアセンブラは使わない方向に向かうのでしょうが。
Inline Assembler in Delphi
- (I) - Introduction
- (II) - ANSI strings
- (III) - Static Arrays
- (IV) - Records
- (V) - Objects
- (VI) - Calling external procedures
- (VII) - 128-bit integer arithmetic
将来のMacOS XやLinux、x86以外のCPU(x64、ARM...)のサポートを考えれば、インラインアセンブラは使わない方向に向かうのでしょうが。
2010年10月8日
FastMM 4.97リリース
忘れかけていましたが、FastMMのVersion 4.97がリリースされています。
元ねたは公式フォーラムのThread: FastMM 4.96 available。なにやらマルチスレッド環境下のLockの問題で揉めているようですが…。
元ねたは公式フォーラムのThread: FastMM 4.96 available。なにやらマルチスレッド環境下のLockの問題で揉めているようですが…。
2010年10月5日
Delphiのメモリマネージャ(その2)
以前のアーティクルで標準メモリマネージャ、FastMM、中村さんのNkMMの3種類のメモリマネージャについて触れましたが、これ以外に2種類のメモリマネージャを見つけました。
TopsoftwareのIvo TopsさんによるTopMemoryManager(最新版はv3.55)は、標準メモリマネージャやFastMMに比べて特にマルチプロセッサ、マルチスレッド環境下でのパフォーマンスが優れているとのことです。ドキュメントによれば特にライセンス条件はなく、自由に使用して構わないようです。
一方でIntelのTBB(Threading Building Blocks)を使用したZach SawさんによるTBBMM(最新版は09-09-2010)というものもあります。こちらはBorlndMM.dllを置き換えてTBBを呼び出すようにするようです。TBBのライセンスは"GPL v2 with Run-time Exception"となっていて、商用製品にも組み込み可能なようです。XLsoftのIntel TBBの"お知らせ"のFAQの項にある
元ねたは公式フォーラムのThread: FastMM 4.96 available。
TopsoftwareのIvo TopsさんによるTopMemoryManager(最新版はv3.55)は、標準メモリマネージャやFastMMに比べて特にマルチプロセッサ、マルチスレッド環境下でのパフォーマンスが優れているとのことです。ドキュメントによれば特にライセンス条件はなく、自由に使用して構わないようです。
一方でIntelのTBB(Threading Building Blocks)を使用したZach SawさんによるTBBMM(最新版は09-09-2010)というものもあります。こちらはBorlndMM.dllを置き換えてTBBを呼び出すようにするようです。TBBのライセンスは"GPL v2 with Run-time Exception"となっていて、商用製品にも組み込み可能なようです。XLsoftのIntel TBBの"お知らせ"のFAQの項にある
TBB ライブラリーのオープンソースは GNU Runtime Exception (GNU GPLv2) を採用しています。そのため、TBB ライブラリーのソースコードに何も変更を加えていない場合はソースコード開示義務は発生しないとインテル社では考えております。最終的には御社法務ご担当者のご判断に基づきます。という表現からも特に問題にはならないと思われます。これ以外のTBBMM.dllとBorlandMM.dllは自由に配布してよい、となっています。
元ねたは公式フォーラムのThread: FastMM 4.96 available。
2010年10月4日
Firebird 2.5リリース
長い間登場が待ち望まれていたFirebird Ver2.5が(ついに)リリースされています。
Firebird File Repositories(download)
Firebird 2.5 Release Notes
また2010/10/05 01:00(JST)からFirebird Foundation代表のPhilippe MakowskiさんとリードデベロッパのDmitry YemanovさんによるLaunch Webinarが行われます。
Firebird File Repositories(download)
Firebird 2.5 Release Notes
また2010/10/05 01:00(JST)からFirebird Foundation代表のPhilippe MakowskiさんとリードデベロッパのDmitry YemanovさんによるLaunch Webinarが行われます。
2010年10月1日
2010/10開催のウェブセミナー
2010/10/04 21:00-2010/10/05 09:45(JST) CodeRage 5 Day 1
2010/10/05 21:00-2010/10/06 09:45(JST) CodeRage 5 Day 2
2010/10/06 21:00-2010/10/07 09:45(JST) CodeRage 5 Day 3
2010/10/07 21:00-2010/10/08 09:45(JST) CodeRage 5 Day 4
2010/10/08 21:00-2010/10/09 03:45(JST) CodeRage 5 Day 5
2010/10/21 17:30-18:30(JST) 10/21 - Webセミナー「RadPHPで始めるビジュアルWebプログラミング」
CodeRage 5は英語で深夜で、となかなか厳しいですが、面白そうなセッションが結構ありますし後でセッションリプレイが見られるようになるとのことなので、可能な範囲でトライしてみましょうか。
2010/10/05 21:00-2010/10/06 09:45(JST) CodeRage 5 Day 2
2010/10/06 21:00-2010/10/07 09:45(JST) CodeRage 5 Day 3
2010/10/07 21:00-2010/10/08 09:45(JST) CodeRage 5 Day 4
2010/10/08 21:00-2010/10/09 03:45(JST) CodeRage 5 Day 5
2010/10/21 17:30-18:30(JST) 10/21 - Webセミナー「RadPHPで始めるビジュアルWebプログラミング」
CodeRage 5は英語で深夜で、となかなか厳しいですが、面白そうなセッションが結構ありますし後でセッションリプレイが見られるようになるとのことなので、可能な範囲でトライしてみましょうか。
登録:
投稿 (Atom)