2011年3月30日

第19回エンバカデロ・デベロッパーキャンプ開催

今日は10:00開始予定ですが、事前の予告どおりセッション資料がダウンロードできるようになっています(参加確認のメールにURLが記載されています)。午後からはUDXに行く予定です。

まもなく始まりますね。
あら、Allenさんは不参加ですか(G2もDavid Iさんが担当)。残念ですね。G1が始まりました。

【G1】ジェネラルセッション「エンバカデロ - 2011年の製品戦略と最新情報 ~ ToolCloudのさらなる進化へ」
  • 去年から使っているXEというブランディングはクロスプラットフォーム、ToolCloud対応を意味している。
  • 最近qadramとksdevを買収した。qadramはRadPHP、ksdevはグラフィック関係。
  • 2011-2012年にフォーカスする項目としては64bit(x64)、Cross-Platform(MacOS/Linux)、Community 3.0(EDNのソーシャル化)、VCL+(VCLの強化)、DataSnap Serverの進化、Modular Compiler Architecture(モジュール化の導入)、Mobile Connectivity(モバイル端末をDataSnapに接続)、PadPHPの次世代版。
  • 次世代版ToolCloudにアプリケーションを組み込むことでSxS、インストールレス、ライセンス管理を実現できる。Discovery、Immidiacy、Permanence、Convenience。AppWave経由で配布する。

【G2】テクノロジープレビュー「64bitコンパイラへの道~Delphi/C++Builderの将来バージョンへ」
  • 64bit Delphiとは何を意味するのか。
  • Integer、Longint、Cardinal、Int64、UInt64のような整数型、UnicodeString、AnsiString、WideStringのような文字列型、例外、RTL、VCLのインタフェースなどは変更されない。
  • NativeInt、NativeUInt(いずれも32bit/64bit)、Pointer(StringやInterfaceなどPointer的に振る舞うものを含む)(32bit/64bit)、動的配列(インデックスが64bit化)、実数型(Doubleのみ)には違いがある。
  • 64bit版ではWIN64、CPUX64が定義され、WIN32、CPU386、CPUX86が未定義になる。
  • 注意すべき点: SizeOf(Pointer) <> SizeOf(Integer)であること、DLLなどを含めx64版でそろえる必要があること、呼び出し規約は1つしかない(指定しても無視)、pointer math、インラインアセンブラでasmとpascelをミックスできないなど制約あり(田川さんからdcc64 は最外側のasmブロックをサポートしますが、行単位asmはサポートしません。Dcc64 supports BASM. However, it only supports outermost asm-block, not asm-statement....今の予定では。...That's the plan for the present time.とのフォローあり)、SetWindowLong/GetWindowsLongではなくSetWindowLongPtr/GetWindowsLongPtrを使うべき(SetWindowLongはSetWindowLongPtrにマップされる)。
  • メッセージ関係ではWPARAM/LPARAMは明示的にキャストする、resultはLRESULTにキャスト、message crackerの構造体は変更されている、という点に注意。
  • インラインアセンブラは移植性のためPascalに置き換えを推奨
  • x64に対応するときはプロジェクトのTarget PlatformsにWindows (64-bit)を追加する。
  • ツールベンダ、コンポーネントベンダには32/64bit両対応を働きかけている。
  • x64ではシステム的に浮動小数点数の扱いが64bit(Double)に統一されているが、RTLでSingle(32bit)、Extended(80bit)をサポートすることも検討している。
  • ToolCloud対応はアプリケーションのマスタリング処理で必要なことを行うため、基本的にアプリケーション側で特別に対応する必要はない。特定のハードウェア(マルチタッチなど)を前提とする場合は注意。
  • 64bit版は既にベータプログラムが始まっているので、x64対応を考えているベンダは日本法人(藤井さん)にコンタクト(インフォメーションサービスセンターあてでOK)をとってほしい。ベータテストは現在はコンパイラ中心で進んでいて、製品全体としてはもう少し後になる。
  • 例年どおりのリリーススケジュールを期待している(意訳すると9月目標ですか)。

さて、秋葉原に移動します。午後はUStream中継もありとのこと。

GoToWebinarはなかなかいいですね。

会場到着。20人くらいでしょうか。

【T3】 Delphiテクニカルセッション「Delphi IDEでTwitter生活!Open Tools APIで開発環境を簡単カスタマイズ」
【T4】 C++Builderテクニカルセッション「C++BuilderによるWebサービス&マルチスレッド対応リソースプールの設計」
T3/T4/T5/T6セッションに加えてG1/G2セッションの資料もダウンロードできるようになっています。

【T5】 Delphi/C++Builderテクニカルセッション「バグを生まないための開発技法 - テストと例外の使い方」
  • テストは大事。テストすべき想定状況も大事。
  • DUnitはテストをシステマチックに行うためのフレームワーク。
  • 構造化例外の件は…まぁ人により好き嫌いがありますからね。

【T6】 PHPテクニカルセッション「PHP Live! - ゼロから始めるPHPアプリの構築からデプロイまで」
無事終了。セッションスピーカ、参加者、関係者のみなさま、お疲れさまでした。

延長戦(単なる飲み会ともいう)も無事終了。コンパイラチームの田川さんから色々なお話を聞けて非常にためになりました。長々とお付き合いいただきありがとうございました。

2011/04/01追記: T3セッションのフォローとしてC++Builder好きの秘密基地さんのリンクを、T4セッションのフォローとしてTeam Japanのアーティクルのリンクを追加。

2011/04/06追記: セッション資料がダウンロードできるようになっています。

第19回 エンバカデロ・デベロッパーキャンプ - セッション資料ダウンロード

また筑木さんのT3セッションのサンプルコードが第19回 エンバカデロ・デベロッパーキャンプ セッションT3自己フォロー - C++Builder好きの秘密基地からダウンロードできるようになっています。

2011/04/08追記: 山本さんのT5セッションのサンプルコードがダウンロードできるようになっています。

DelFusaBlog AccessIniFileとErrorList

2011年3月25日

GpProfile 2011

以前Primoz GabrijelcicさんによるGpProfileというDelphi 2-5用のプロファイラがありました(いまでもありますが)。このGpProfileをAnton AlisovさんがDelphi 2009/2010/XEに対応させたものをGoogle Code上のオープンソースプロジェクトとして公開しています。興味深い。とりあえずメモ。

The Delphi Geek: GpProfile on Google code
gpprofile2011 - GpProfile is a powerful source code instrumenting profiler for all versions of Delphi (including Delphi XE) - Google Project Hosting

2011年3月24日

[書籍]C/C++プログラミングの「迷信」と「誤解」

啓文堂書店の渋谷店

C/C++プログラミングの「迷信」と「誤解」 (amazon)/高木信尚著/技術評論社/ISBN 978-4-7741-4587-7/2,604円

を購入。

第19回エンバカデロ・デベロッパーキャンプは縮小して開催

既に公式サイトでも告知されていますが、第19回エンバカデロ・デベロッパーキャンプは2011年03月30日に規模を縮小して開催されることになりました。具体的には
  • Allen Bauerさんはオンラインでの参加になる
  • オンラインでの中継(今回からLiveMeetingではなくなる模様)に合わせて終日1トラックになる
  • 秋葉原UDXでの参加も可能
といったところです。オンラインで参加の場合は改めて申し込みが必要とのことです。

2011年3月23日

Delphi IDEを拡張する

TMS softwareBruno FierensさんによるOpen Tools API (OTA)を使用したDelphi IDEの拡張に関するホワイトペーパ(英語)が公開されています。

Delphi IDE を拡張する

また関連してBruno FierensさんによるWebinar(こちらも英語)が2011/04/06に予定されています。

Webinar: Creating IDE Extensions with the Delphi Open Tools API

日本時間ベースだと
  • 2011/04/06 22:00(JST) = 2011/04/06 06:00 AM(PDT)
  • 2011/04/07 03:00(JST) = 2011/04/06 11:00 AM(PDT)
  • 2011/04/07 09:00(JST) = 2011/04/06 05:00 PM(PDT)
になります。

2011年3月22日

Delphi IDE Theme Editor

RRUZ(Rodrigo Ruz)さんがDelphi IDEのテーマエディタをリリースしています。興味深い。

Is Your Delphi IDE Hot or Not? – Introducing the Delphi IDE Theme Editor « The Road to Delphi – a Blog About Delphi Programming (mostly)
Delphi IDE Theme Editor – New features « The Road to Delphi – a Blog About Delphi Programming (mostly)
Delphi IDE Theme Editor « The Road to Delphi – a Blog About Delphi Programming (mostly)

Delphi 7以降で使用でき、Visual Studio(2003以降)のテーマ(.vssettings)やEclipseのテーマ(Eclipse Color Theme Plugin)をインポートすることができます。

2011/03/23追記: OldTPFunさんのtweetでしょう、きっと>だれとなく。

2011年3月18日

2011年3月17日

[書籍]俺のコードのどこが悪い?

MARUZEN&ジュンク堂書店 渋谷店(営業時間短縮中)で

俺のコードのどこが悪い? ――コードレビューを攻略する40のルール (amazon)/藤原克則著/秀和システム/ISBN 978-4-7980-2918-4/2,100円

を購入。

2011/03/18追記: 著者の方のblogでも突っ込みが入っていますが、C/C++では規格で条件の評価を左から右に結果が確定するまで行う(短絡評価)とされています。Delphiでもデフォルトでは短絡評価を行いますが、コンパイラ指令{$B+}またはコンパイラオプションで完全評価とすることもできます。

式(Delphi)2.3 完全論理評価と短絡論理評価
論理式のショートサーキット評価(Delphi コンパイラ指令) - RAD Studio

ちなみに.NETではないVisual Basicは完全評価でした。

RAD Studio/Delphi/C++Builder XE Help Update 2

予告されていたRAD Studio/Delphi/C++Builder XEのHelp Update 2がリリースされています。

Delphi XE および C++Builder XE 向け Help Update 2
28256 Help Update 2 for Delphi XE and C++Builder XE

元ねたはTeam Japan » Delphi XE, C++Builder XE, RAD Studio XE向けの「ヘルプアップデート2」

2011/03/28追記: EDNの記事のリンクを追加。

Firebird 3の初期レビュー

Firebird ProjectのリードアーキテクトのDmitry YemanovさんによるFirebird 3の初期レビューのスライドショーが公開されています。

Initial review of Firebird 3

Firebird 3で実装したいと考えられている機能がいろいろと挙げられています。またリリーススケジュールについても言及されています。
  • 2.0.7 - 2011年のQ2-Q3
  • 2.1.5 - 2012年
  • 2.5.1 - 2011年のQ2
  • 3.0 Alpha - 2011年のQ3


元ねたはFirebird News » Initial review of Firebird 3 – Presentation

2011年3月16日

2011年3月14日

更新が減ります

状況が安定していないため、当面の間更新が減ります。ニュース的なものはおそらくお伝えしていきますが、Tips的なものはしばらくお休みになると思います。

2011年3月11日

地震

とりあえず周囲では人的被害はありませんが、岩手県、宮城県、福島県、茨城県方面は大変なことになっているようです。

22:35 帰宅なう。23kmに4時間。そして帰ったとたんにTVのテロップに京王線復旧の情報ががが。

2011年3月10日

RAD Studio/Delphi/C++Builder XE Help Update 2準備中

Dee EllingさんによるとRAD Studio/Delphi/C++Builder XE Help Update 2が近日中にリリースされるようです。Help Update 2における変更点は

Readme - Help Update 2 for Delphi and C++Builder XE - RAD Studio
リリース ノート: Delphi XE および C++Builder XE Help Update 2 - RAD Studio

で確認することができます(日本語版は準備中)

元ねたは公式フォーラムのEmbarcadero Discussion Forums: XE Help Update 2 Sneak Peek

2011/03/16追記: 日本語版のリリースノートのリンクを追加しました。

2011年3月9日

Microsoft Monthly Update 2011/03

今日はMicrosoftのセキュリティアップデートの日です。
MS11-015
MS11-016
MS11-017

2011年3月8日

IInterfaceをTObjectにキャストする

Delphi 2010以降ではIInterfaceからasで任意のクラスにキャストすることが可能になりましたが、それ以前のバージョンでIInterfaceからTObjectにキャストを行う方法についてのBarry KellyさんHallvard Vassbotnさんによる記事。興味深い。とりあえずメモ。

Entropy Overload: An ugly alternative to interface to object casting
Hallvard's Blog: Hack #7: Interface to Object [in The Delphi Magazine]

どちらの記事のコードも基本的には同じで、IInterfaceからvtable(仮想メソッドテーブル)を参照し、最初のエントリにあるスタブメソッドのコードの中にあるオフセットを取得してIInterface(これは実際にはポインタ)に加算することでインスタンスのアドレスを取得する、というハックになっています。

2011年3月5日

RAD Studio/Delphi/C++Builder XE Hotfix

RAD Studio/Delphi/C++Builder XEのHotfixがリリースされています。

Delphi XE, C++Builder XE, RAD Studio XE 向けHotfix

ひとつはInterBase/Firebird DBXドライバがftMemoのフィールドを2回読むとAVになる問題への対応で、Pro SKUとEnt/Arc SKUで別のHotfixになっています。

28249 RAD Studio XE Hotfix for RAID 280988 (QC 89242) - Pro
28248 RAD Studio XE Hotfix for RAID 280988 (QC 89242) - Arch and Ent

もうひとつはTClientDataSetとTProviderの組み合わせでデータベースサーバからマイナス値のステータスコードを受け取るとエラーになる問題の対応で、こちらはEnt/Arc SKUのみPro/Ent/Arc SKU共通です。

28247 RAD Studio XE Hotfix for RAID 280864 (QC 88928)

2011/03/06追記: EDNの日本語版の記事が出たのでリンクを差し替えました。週末なのにご苦労さまです。

2011/03/27追記: Team Japan

Team Japan » RAD Studio XE Hotfix for QC 88928は、Pro版にも適用可能です

によるとQC 88928のHotfix(28247)はPro SKUにも適用する必要があるとのことです。