2021年12月22日

2021年11月25日

RAD Studio/Delphi/C++Builder 11.0 Alexandria November Patch

RAD Studio/Delphi/C++Builder 11.0 AlexandriaのNovember Patchがリリースされています。November PatchはPatch 1を含んでいるため、事前にPatch 1を適用する必要はありません。GetItまたはポータルサイトからダウンロード、インストールすることができます。

RAD Studio 11 November Patch

RAD Studio 11 Alexandria November Patchがリリースされました (en)

2021年11月18日

2021年10月26日

RAD Studio/Delphi/C++Builder 11.0 Alexandria Patch 1

RAD Studio/Delphi/C++Builder 11.0 AlexandriaのPatch 1がリリースされています。GetItからダウンロード、インストールすることができます。

RAD Studio 11.0 Patch 1

RAD Studio 11 Alexandria Patch 1がリリースされました (en)

2021年10月1日

InterBase 2020 Update 2

InterBase 2020 Update 2がリリースされています。バージョンは14.2.0.570となっています。

InterBase 2020 Update 2 Readme - InterBase
What's New in InterBase 2020 Update 2 - InterBase
Resolved Defects - InterBase

InterBase 2020 Update 2 リリース (en)

なお2021/10/05にリリースが予定されているWindows 11への対応はInterBase 2020のみになるとのことです(InterBase XE7/2017はWindows 10までの対応)。

2021/10開催のセミナー

2021年9月10日

RAD Studio/Delphi/C++Builder 11.0 Alexandriaリリース

RAD Studio/Delphi/C++Builder 11.0 Alexandriaがリリースされています。

RAD Studio 11.0 Alexandria ヘルプ (en)
リリース ノート (en)
インストール ノート (en)
新機能 (en)
New features and customer reported issues fixed in RAD Studio 11.0
List of publicly reported bugs fixed in 11.0

ポータルサイトからダウンロード可能です
RAD Studio, Delphi, C++Builder 11.0 Web Install
RAD Studio, Delphi, C++Builder 11.0 ISO

BDE for RAD Studio 11.0

なおRTMではヘルプファイルが10.4 Sydneyのものになってしまうという不具合が報告(RSP-34894RSP-35472RSP-35533RSP-35355RSP-35494 )されていますが、次のアップデートまでは修正されない模様です。メインヘルプについては11.0 AlexandriaのものをDocWikiからダウンロードできます。対応の詳細はRSP-35355のコメントか、DEKOさんのQiitaの記事を参照してください。

Windows11やApple M1に対応した 新バージョン『RAD Studio 11 Alexandria』提供開始
Announcing the Availability of RAD Studio 11 Alexandria
RAD Studio 11におけるVCLの新機能 (en)
Windows 11の角が丸いフォームをアプリケーションでコントロールする方法 (en)
RAD Studio 11の新機能:「はっきり、くっきり」表示の高DPI対応IDEとフォームデザイン (en)
Windows 11におけるVCLのサポート強化 (en)
RAD Studio 11の新しいRAD Server Lite(RSLite) (en)

2021年9月6日

[書籍]独習アセンブラ 新版

紀伊國屋書店新宿本店

独習アセンブラ 新版 (Amazon)/大崎博之著/翔泳社/ISBN 9784798170299/4,268円

を購入。

2021年9月1日

2021/09開催のセミナー

2021年8月23日

[書籍]並行プログラミング入門

紀伊國屋書店新宿本店

並行プログラミング入門 (Amazon)/高野祐輝著/オレイリージャパン/ISBN 978-4-87311-959-5/3,520円

を購入。

2021年8月5日

DDevExtensions 2.88

Andreas HausladenさんDDevExtensionsがDelphi 10.4.2 SydneyのCommunity Editionのリリースに伴ってアップデートされVersion 2.88になっています。RAD Studio 10.4 Sydney対応です。

DDevExtensions 2.88 for Delphi 2009-10.4.2 – Andy's Blog and Tools

2021年8月1日

2021/08開催のセミナー

2021年7月8日

[書籍]初めてのSQL 第3版

紀伊國屋書店新宿本店Learning SQL, 3rd Edition (Amazon US)の翻訳である

初めてのSQL 第3版 (Amazon)/Alan Beaulieu著、株式会社クイープ訳/オレイリージャパン/ISBN 978-4-87311-958-8/3,080円

を購入。

2021年7月7日

Microsoft OOB Update 2019/10

Microsoftから定例外のセキュリティアップデートがリリースされています。

Windows Print Spooler の脆弱性情報 (CVE-2021-34527) に対するセキュリティ更新プログラムの定例外での公開 – Microsoft Security Response Center

EOLとなっているWindows 7および現時点でアップデートが未リリースのWindows 10 version 1607、Windows Server 2012/2016については印刷スプーラ(Print Spooler)サービスを停止して無効にする(この場合印刷が一切できなくなる)か、グループポリシーで受信リモート印刷を無効にする(この場合リモートからローカルのプリンタに印刷できなくなるが、ローカルでの印刷は可能)かのいずれかの回避策を取ることを強くお勧めします。

CVE-2021-34527 - セキュリティ更新プログラム ガイド - Microsoft - Windows 印刷スプーラーのリモートでコードが実行される脆弱性

2021年7月1日

2021/07開催のセミナー

2021年6月21日

[書籍]プログラミングC# 第8版

紀伊國屋書店新宿本店Programming C# 8.0 (Amazon US)の翻訳である

プログラミングC# 第8版 (Amazon)/Ian Griffiths著/木下哲也訳/鈴木幸敏技術監修/オレイリージャパン/ISBN 978-4-87311-936-6/5,280円

を購入。

2021年6月1日

Firebirdロードマップ(2021/06)

Firebird 4.0のリリースに伴ってロードマップが更新されています。

Firebird: Roadmap

適当な要約
  • Firebird 2.0 - 2012年に開発終了。最新版は2012年04月の2.0.7
  • Firebird 2.1 - 2014年に開発終了。最新版は2014年12月の2.1.7
  • Firebird 2.5 - 2019年に開発終了。最新版は2019年06月の2.5.9
  • Firebird 3.0 - 安定版。最新版は2020年10月の3.0.7で、次回(3.0.8)は2021年第2四半期を予定。
  • Firebird 4.0 - 安定版。最新版は2021年06月の4.0で、次回(4.0.1)は2021年後半以降を予定。
  • Firebird 5.0 - 2021年05月に開発開始。

Firebird 4.0

Firebird 4.0がリリースされています。ODSバージョンは13になっています。

Firebird: Firebird 4.0 is released
Firebird: Firebird 4.0.0
Firebird 4.0 Release Notes (PDF)

2021/06開催のセミナー

2021年5月5日

マイナーリリースを区別する新しい標準条件シンボル

Delphi Master Release List · ideasawakened/DelphiKB Wiki · GitHubを見ていて気が付いたのですが、いままで標準条件シンボルの定義CONDITIONALEXPRESSIONSではできなかった、マイナーリリース間を区別する(たとえば10.4.1と10.4.2を見分ける)ための新しい標準条件シンボルがRAD Studio/Delphi/C++Builder 10.4.2 Sydneyで導入されたようです。

RAD Studio/Delphi/C++Builder 10.4.1 SydneyまではSystem.pasに
const
  RTLVersion = 34.00;
 {$HPPEMIT '#define RTLVersionC 3400'}
とRTLVersionが定義(34.0)されていたものが、10.4.2 Sydneyでは
const
  RTLVersion = 34.00; RTLVersion1041 = True; RTLVersion1042 = True;
 {$HPPEMIT '#define RTLVersionC 3400'}
と、RTLVersion1041/RTLVersion1042(いずれもTrue)の定義が追加されています。10.4/10.4.1ではこれらの定義が存在せず、10.5でもどうなるのかがいまのところわかっていないので使用方法も判然としないのですが、とりあえず
{$IF RTLVersion = 34.0}
{$IF RTLVersion1042}
  Label1.Caption := 'Delphi 10.4.2.';
{$ELSE}
  Label1.Caption := 'Delphi 10.4 or 10.4.1.';
{$ENDIF}

{$ELSE}
  Label1.Caption := 'Not Delphi 10.4.x.';
{$IFEND}
こんな感じになるでしょうか。

2021年5月4日

RAD Studio/Delphi 10.4.2 RTL Patch

RAD Studio/Delphi 10.4.2 SydneyのRTL Patch 1.0がリリースされています。General Patch 1.0で不足していたRSP-33117の修正が行われます。

Delphi 10.4.2 RTL Patch

Delphi 10.4.2 RTL Patchのリリース

2021年5月1日

RAD Studio/Delphi/C++Builder 10.4.2 General/Delphi Compiler Patch

RAD Studio/Delphi/C++Builder 10.4.2 SydneyのGeneral Patch 1.0およびDelphi Compiler Patch 1.0がリリースされています。General Patch 1.0はデバッグおよびC++コンパイラ/リンカの問題(RSP-33406RSP-33117RSP-32951RSP-32939RSP-32043)を、Delphi Compiler Patch 1.0はDelphiのコンパイラおよびLSPの問題(RSP-33425RSP-33232RSP-32768)を修正します。

RAD Studio 10.4.2 General Patch
Delphi 10.4.2 Compiler Patch

RAD Studio 10.4.2のPatchのリリース: General PatchおよびDelphi Compiler Patch (en)

2021/05/02追記: General Patch 1.0にはRSP-33117含まれておらず、この件に関しては別途パッチが再リリースされることになるとのことです。

2021/05/04追記: RSP-33117はRTL Patch 1.0で修正されました。

2021/05開催のセミナー

2021年4月29日

[書籍]Delphiで作るAndroidスマホアプリ

Amazon(JP)で注文した

Delphiで作るAndroidスマホアプリ (Amazon JP)/山菅昇一、山菅昇太郎著/インプレスR&D/ISBN 9784844379584/2,200円

が配送されてきました。

2021年4月1日

2021/04開催のセミナー

2021年3月16日

[書籍]Object Pascal Handbook Delphi 10.4 Sydney Edition

Amazon(JP)で注文した

Object Pascal Handbook Delphi 10.4 Sydney Edition (Amazon US, Amazon JP)/Marco Cantù著/ISBN 979-8554519963/5,606JPY(printed)

が配送されてきました。2021/03/14に注文して2日目の到着でした。

2021年3月6日

const修飾されたインタフェース型の引数としてその場で生成したインスタンスをインタフェース型にキャストしないでそのまま渡すとリークする

Dalija PrasnikarさんのDelphi Event-based and Asynchronous Programmingをパラ見していて引っかかったのですが、タイトルを見ても何をいっているのかわからないと思うので、まずコードを。
type
  IFoo = interface
    procedure FooBar;
  end;

  TFoo = class(TInterfacedObject,IFoo)
  public
    procedure FooBar;
  end;

  TBar = class(TObject)
  public
    procedure Baz(const AFoo: IFoo);
  end;

procedure TFoo.FooBar;
begin
// Do something.
end;

procedure TBar.Baz(const AFoo: IFoo);
begin
  AFoo.FooBar;
end;
インタフェースとしてIFooと、その実装としてクラスTFooを用意し、クラスTBarにはconst修飾されたIFooを渡すBazというメソッドがあります。ここで
var
  Bar: TBar;
begin
  Bar := TBar.Create;
  Bar.Baz(TFoo.Create);
  Bar.Free;
end;
とTBar.BazにTFoo.Createで生成したインスタンスを直接渡すと、TFooはIFooとしての参照カウントの制御を受けず、リークしてしまいます。一方で
var
  Bar: TBar;
begin
  Bar := TBar.Create;
  Bar.Baz(TFoo.Create as IFoo);
  Bar.Free;
end;
とIFooにキャストしたものを渡すとリークしなくなります。

これは、インタフェース型の引数がconst修飾されているとメソッド内部で仮引数が変更されないことが保証されているため、仮引数にコピーしたことによる参照カウントの管理を行わない最適化が行われるのに対して、前者のコードでは呼び出し元で生成したインスタンスが(インタフェース型ではなく)クラス型としてしか管理されていないため、やはり参照カウントの管理を受けずに、リークしてしまう、ということのようです。しかし後者ではas IFooとキャストしたことでIFoo型の暗黙のローカル変数が用意され、これによって参照カウントによって正常に解放されます。

メソッド内部で仮引数を別のインタフェース型の変数やフィールドにコピーすると参照カウントの管理が行われて適切に解放が行われますが、これは実装に依存しますし、また引数をconst修飾していなければ大丈夫ですが、既存の実装の変更が必要になる、ということが問題になります。
このためconst修飾されたインタフェース型の引数としてその場で生成したインスタンスを渡す場合はインタフェース型にキャストするか、あるいは
type
  TFoo = class(TInterfacedObject,IFoo)
  public
    class function CreateAsIntf: IFoo;
    procedure FooBar;
  end;

class function TFoo.CreateAsIntf: IFoo;
begin
  Result := TFoo.Create;
end;

var
  Bar: TBar;
begin
  Bar := TBar.Create;
  Bar.Baz(TFoo.CreateAsIntf);
  Bar.Free;
end;
このように生成したインスタンスをインタフェースとして返すようなメソッドを用意して、そちらを経由するか、ということになります。

元ねたはもちろんDalija PrasnikarさんのDelphi Event-based and Asynchronous Programmingの"13.4 In-place construction in a const parameter"。

2021年3月1日

2021年2月26日

[書籍]再発見の発想法

紀伊國屋書店新宿本店

再発見の発想法 (Amazon)/結城浩著/SBクリエイティブ/ISBN 978-4-7973-9531-0/1,760円

を購入。

2021年2月25日

RAD Studio/Delphi/C++Builder 10.4 Sydney Release 2 (10.4.2)

RAD Studio/Delphi/C++Builder 10.4 SydneyのRelease 2 (10.4.2)がリリースされています。インストールには有効なUpdate Subscriptionが必要です。Registered Products Portalからダウンロードできます。

ISO for RAD Studio, Delphi, C++Builder 10.4.2
Web Installer for RAD Studio, Delphi, C++Builder 10.4.2

10.4 Sydney - Release 2 (en)
RAD Studio 10.4.2 における新機能と修正された顧客から報告された問題 (en)
List of publicly reported bugs fixed in 10.4.2

RAD Studio 10.4.2 Sydney Release 2の提供開始を発表 (en)
RAD Studio 10.4の新機能 (en)

RAD Studio 10.4.2で提供される2つの新しいVCLコントロール RAD Studio 10.4.2で提供される2つの新しいVCLコントロール (en)
RAD Studio 10.4.2で新しく導入されたインストールプロセスの自動化を容易にするサイレントインストーラ (docwiki(ja), en)
RAD Studio 10.4.2の新機能: Windowsストアのパッケージングをより簡単にするMSIXのサポート (docwiki(ja))
C++Builder 10.4.2の改良点: Split DWARFによるリンカのメモリ使用量の削減 (docwiki(ja))
Delphi 10.4.2 コンパイラ速度の改善 (en)
RAD Studio 10.4.2: IDEの機能改善
C++Builder 10.4.2のオープンソースC++ライブラリ (en)
C++Builder 10.4.2での堅牢な例外処理 (en)
リンカの支援:C++Builder 10.4.2でのDWARFとリンカのメモリ使用量の分割 (docwiki(ja), en)
RAD Studio 10.4/10.4.1からGetItを利用して10.4.2をダウンロードし、インストールする方法 (en)
Delphi 10.4.2におけるCode Insightの改善 (en)

2021年2月23日

[書籍]Delphi Event-based and Asynchronous Programming

Amazon(JP)で注文した

Delphi Event-based and Asynchronous Programming (Amazon US, Amazon JP)/Dalija Prasnikar、Neven Prasnikar Jr.著/FastSpring/ISBN 979-8705971688/4,869JPY(printed)

が配送されてきました。2021/02/21に注文して2日目の到着でした(おそらく日本国内でのprint on demandだと思われます)。

2021年2月8日

DDevExtensions 2.87

Andreas HausladenさんDDevExtensionsですが、GitHubでホストされています。オリジナルのリポジトリは

ahausladen/DDevExtensions: Delphi IDE Plugin

ですが、Delphi/C++Builder 10.4 Sydneyの対応は

DelphiPraxis/DDevExtensions: Delphi IDE Plugin

こちらのフォークからリリースされています。

Release DDevExtensions v2.87 Delphi 10.4 · DelphiPraxis/DDevExtensions

2021年2月1日

2021/02開催のセミナー

  • Web Seminar
  • Live Seminar
  • Community Event

2021年1月8日

[書籍]初めてのマルウェア解析

紀伊國屋書店新宿本店Learning Malware Analysis (Amazon US)の翻訳である

初めてのマルウェア解析 (Amazon)/Monnappa K A著/石川朝久訳/北原憲、中津留勇技術監修/オライリージャパン/ISBN 978-4-87311-929-8/4,400円

を購入。

2021年1月1日

2021/01開催のセミナー

  • Web Seminar
  • Live Seminar
  • Community Event