InterBase XE7 Update 7がリリースされています。バージョンは12.0.7.384となっています。
30768 InterBase XE7 Update 7 (12.0.7.384) for Windows
30769 InterBase XE7 Update 7 (12.0.7.384) for Linux
30770 InterBase XE7 ToGo Edition (12.0.7.384), Win/OSX/iOS/Android
InterBase XE7 Update 7 Readme (en)
解決された不具合 (en)
InterBase XE7 Update 7 – now available
2017年5月4日
2017年5月1日
2017/05開催のセミナー
- Web Seminar
- Live Seminar
- 2017/05/18 17:00-19:00(JST) 「RAD Studioで始めるマルチデバイス・クロスプラットフォーム開発ワークショップ」
- 2017/05/26 14:00-17:00(JST) セミナー「Delphi / C++Builder 業務アプリケーション 刷新実践法」
- 2017/05/30 16:00-18:00(JST) セミナー「モバイル、クラウド、IoT時代にどう立ち向かう?これからのDBアプリケーション開発」
2017年4月17日
[書籍][ebook]プロフェッショナルSSL/TLS
Bulletproof SSL and TLS (amazon US)の翻訳である
プロフェッショナルSSL/TLS/Ivan Ristic著/齋藤孝道監訳/ラムダノート/ISBN 978-4-908686-00-9/5,399円(紙書籍+電子書籍(PDF))、4,860円(電子書籍(PDF)のみ)
を購入。PDFは購入後すぐにダウンロード可能、紙書籍は別途2017/05/10前後に配送(配送費別、540円)とのこと。
2017/05/11追記: 書籍版が配送されてきました(配送は佐川急便でした)。
プロフェッショナルSSL/TLS/Ivan Ristic著/齋藤孝道監訳/ラムダノート/ISBN 978-4-908686-00-9/5,399円(紙書籍+電子書籍(PDF))、4,860円(電子書籍(PDF)のみ)
を購入。PDFは購入後すぐにダウンロード可能、紙書籍は別途2017/05/10前後に配送(配送費別、540円)とのこと。
2017/05/11追記: 書籍版が配送されてきました(配送は佐川急便でした)。
2017年4月12日
Microsoft Monthly Update 2017/04
今日はMicrosoftのセキュリティアップデートの日です。
リリース ノート 2017 年 4 月のセキュリティ更新プログラム (en)
2017 年 4 月のセキュリティ更新プログラム (月例) – 日本のセキュリティチーム
今月からセキュリティ情報の公開は廃止されています。またWindows Vistaの延長サポートが終了となっています。
リリース ノート 2017 年 4 月のセキュリティ更新プログラム (en)
2017 年 4 月のセキュリティ更新プログラム (月例) – 日本のセキュリティチーム
今月からセキュリティ情報の公開は廃止されています。またWindows Vistaの延長サポートが終了となっています。
2017年4月10日
IDE Fix Pack 5.96/DDevExtensions 2.84 for RAD Studio/Delphi/C++Builder 10.2 Tokyo
Andreas HausladenさんのIDE Fix PackがアップデートされてVersion 5.96となっています。RAD Studio/Delphi/C++Builder 10.2 Tokyo対応といくつかの修正が行われています。またDDevExtensions Version 2.84もRAD Studio/Delphi/C++Builder 10.2 Tokyo対応が行われています。
IDE Fix Pack 5.96, DDevExtensions, DFMCheck for Delphi 10.2 | Andy's Blog and Tools
IDE Fix Pack 5.96, DDevExtensions, DFMCheck for Delphi 10.2 | Andy's Blog and Tools
2017年4月1日
2017/04開催のセミナー
- Web Seminar
- Live Seminar
- 2017/04/14 14:00-17:00(JST) セミナー「Delphi / C++ Builder 業務アプリケーション 刷新実践法」
2017年3月23日
RAD Studio/Delphi/C++Builder 10.2 Tokyoリリース
RAD Studio/Delphi/C++Builder 10.2 Tokyoがリリースされています。
RAD Studio 10.2 Tokyo ヘルプ (en)
リリース ノート (en)
インストール ノート (en)
新機能 (en)
RAD Studio 10.2 Tokyo 新機能および不具合修正リスト (en)
30722 RAD Studio, Delphi, C++Builder 10.2 Tokyo Web Install
30724 RAD Studio, Delphi, C++Builder 10.2 Tokyo ISO
30765 Linux libmidas file for RAD Studio, Delphi, C++Builder 10.2
30780 RAD Studio 10.2 Tokyo FireMonkey Accessibility Pack
30752 BDE Installer for RAD Studio, Delphi, C++Builder 10.2 Tokyo
30728 FastReport VCL for RAD Studio, Delphi, C++Builder 10.2 Tokyo
30729 FastReport FMX for RAD Studio, Delphi, C++Builder 10.2 Tokyo
30730 IP*Works for RAD Studio, Delphi 10.2 Tokyo
30731 IP*Works for RAD Studio, C++Builder 10.2 Tokyo
30750 Codesite for RAD Studio, Delphi, C++Builder 10.2 Tokyo
30761 Jedi Code Library Snapshot Binary Installer for 10.2
30762 Jedi Visual Component Library Snapshot Bin-Installer 10.2
GitHub - lynatan/StarterFix: Restore Form Designer Options for Starter edition.
【Delphi / C++Builder 10.2 Tokyo 新機能・改善点】C++ コンパイラ 周りの改善など - Qiita
【Delphi / C++Builder 10.2 Tokyo 新機能・改善点】FireDAC、データベース接続周りの改善など - Qiita
【Delphi / C++Builder 10.2 Tokyo 新機能・改善点】RAD Server の改善など - Qiita
【Delphi / C++Builder 10.2 Tokyo 新機能・改善点】IDEまわりの改善など - Qiita
【Delphi / C++Builder 10.2 Tokyo 新機能・改善点】ライブラリ周りの機能など - Qiita
What's New in C++Builder 10.2: Part 1 - The Linker
What's New in C++Builder 10.2: Part 2 - Code Generation
What's New in C++Builder 10.2: Part 3 - Debugging
RAD Studio 10.2 Tokyo ヘルプ (en)
リリース ノート (en)
インストール ノート (en)
新機能 (en)
RAD Studio 10.2 Tokyo 新機能および不具合修正リスト (en)
30722 RAD Studio, Delphi, C++Builder 10.2 Tokyo Web Install
30724 RAD Studio, Delphi, C++Builder 10.2 Tokyo ISO
30765 Linux libmidas file for RAD Studio, Delphi, C++Builder 10.2
30780 RAD Studio 10.2 Tokyo FireMonkey Accessibility Pack
30752 BDE Installer for RAD Studio, Delphi, C++Builder 10.2 Tokyo
30728 FastReport VCL for RAD Studio, Delphi, C++Builder 10.2 Tokyo
30729 FastReport FMX for RAD Studio, Delphi, C++Builder 10.2 Tokyo
30730 IP*Works for RAD Studio, Delphi 10.2 Tokyo
30731 IP*Works for RAD Studio, C++Builder 10.2 Tokyo
30750 Codesite for RAD Studio, Delphi, C++Builder 10.2 Tokyo
30761 Jedi Code Library Snapshot Binary Installer for 10.2
30762 Jedi Visual Component Library Snapshot Bin-Installer 10.2
GitHub - lynatan/StarterFix: Restore Form Designer Options for Starter edition.
【Delphi / C++Builder 10.2 Tokyo 新機能・改善点】C++ コンパイラ 周りの改善など - Qiita
【Delphi / C++Builder 10.2 Tokyo 新機能・改善点】FireDAC、データベース接続周りの改善など - Qiita
【Delphi / C++Builder 10.2 Tokyo 新機能・改善点】RAD Server の改善など - Qiita
【Delphi / C++Builder 10.2 Tokyo 新機能・改善点】IDEまわりの改善など - Qiita
【Delphi / C++Builder 10.2 Tokyo 新機能・改善点】ライブラリ周りの機能など - Qiita
What's New in C++Builder 10.2: Part 1 - The Linker
What's New in C++Builder 10.2: Part 2 - Code Generation
What's New in C++Builder 10.2: Part 3 - Debugging
2017年3月22日
ジェネリックスのリストをアルゴリズムを指定してソートする
Delphi 2009で導入されたジェネリックスのコンテナの一つであるTList<T>にはSortメソッドがあり、比較関数としてデフォルト以外のComparer(コンペアラ)も渡すことができるのですが、ソートアルゴリズムそのものはクイックソートしかありません。一般的には平均して性能が出るとされるクイックソートですが、安定ではないこと、苦手な状況が存在することなど、決して万能というわけではありません。ところがTList<T>.Sortは内部で保持しているTArray.Sortにソートを丸投げしており、ソートアルゴリズムを変更することができません。そこでアルゴリズムを指定してTList<T>(およびTObjectList<T: class>)をソートする方法を考えてみました。ただしDelphi 2009のTList<T>にはExchangeメソッドもMoveメソッドも存在していないため、Delphi 2010以降の対応になります。
まずソートを行うためのレコード型と、ソートアルゴリズムを実装するクラスの継承元クラスの宣言です。
→ジェネリックスのリストをアルゴリズムを指定してソートする(Gist)
まずソートを行うためのレコード型と、ソートアルゴリズムを実装するクラスの継承元クラスの宣言です。
{$IF RTLVersion <= 20.00}
{$MESSAGE ERROR 'Need Delphi 2010 or later'}
{$IFEND}
uses
{$IF RTLVersion >= 23.00}
System.Rtti, System.Generics.Defaults, System.Generics.Collections;
{$ELSE}
Rtti, Generics.Defaults, Generics.Collections;
{$IFEND}
type
{ Forward declarations }
TSortAlgorithm<T> = class;
{ TGenericListSorter }
TGenericListSorter = record
private
class function GetComparer<T>(List: TList<T>; const AComparer: IComparer<T>): IComparer<T>; static;
public
class procedure Sort<T: record>(List: TList<T>; Algorithm: TSortAlgorithm<T>;
const AComparer: IComparer<T>{$IF CompilerVersion >= 24.00} = nil{$IFEND}); overload; static;
{$IF CompilerVersion < 24.00}
class procedure Sort<T: record>(List: TList<T>; Algorithm: TSortAlgorithm<T>); overload; static;
{$IFEND}
class procedure Sort<T: class>(List: TObjectList<T>; Algorithm: TSortAlgorithm<T>;
const AComparer: IComparer<T>{$IF CompilerVersion >= 24.00} = nil{$IFEND}); overload; static;
{$IF CompilerVersion < 24.00}
class procedure Sort<T: class>(List: TObjectList<T>; Algorithm: TSortAlgorithm<T>); overload; static;
{$IFEND}
class procedure Sort(List: TList<String>; Algorithm: TSortAlgorithm<String>;
const AComparer: IComparer<String>{$IF CompilerVersion >= 24.00} = nil{$IFEND}); overload; static;
{$IF CompilerVersion < 24.00}
class procedure Sort(List: TList<String>; Algorithm: TSortAlgorithm<String>); overload; static;
{$IFEND}
end;
{ TSortAlgorithm (abstract) }
TSortAlgorithm<T> = class(TObject)
public
class function Instance: TSortAlgorithm<T>; virtual; abstract;
class procedure Sort(List: TList<T>; const AComparer: IComparer<T>); virtual; abstract;
end;
TGenericListSorterはソートを行うためのレコード型で、overloadされたpublicな3つ(XE2およびそれ以前は6つ、後述)のSortメソッドと、比較を行うコンペアラを決定するためのprivateなGetComparerメソッドを持ちます。Sortメソッドの1つめは値型用(レコード制約)、2つめはクラス型用(クラス制約)、3つめはこのどちらにも含まれない文字列型用です。IComparer<T>にデフォルトパラメータを指定できるのはDelphi XE3以降のため、それ以前のバージョンではコンペアラを指定しないオーバロードをさらに3つ用意しました。またTSortAlgorithm<T>はソートアルゴリズムを実装するためのクラスの継承元になります。実際にソートを行うSortメソッドと、シングルトンなインスタンスを取得するためのInstanceメソッドを持ちます。TGenericListSorterの実装は次のようになります。
class procedure TGenericListSorter.Sort<T>(List: TList<T>; Algorithm: TSortAlgorithm<T>;
const AComparer: IComparer<T>);
var
Comparer: IComparer<T>;
begin
if (List = nil) or (List.Count <= 1) then
begin
Exit;
end;
Comparer := GetComparer<T>(List,AComparer);
Algorithm.Sort(List,Comparer);
end;
{$IF CompilerVersion < 24.00}
class procedure TGenericListSorter.Sort<T>(List: TList<T>; Algorithm: TSortAlgorithm<T>);
var
Comparer: IComparer<T>;
begin
if (List = nil) or (List.Count <= 1) then
begin
Exit;
end;
Comparer := GetComparer<T>(List,nil);
Algorithm.Sort(List,Comparer);
end;
{$IFEND}
class procedure TGenericListSorter.Sort<T>(List: TObjectList<T>; Algorithm: TSortAlgorithm<T>;
const AComparer: IComparer<T>);
var
Comparer: IComparer<T>;
OwnsObjects: Boolean;
begin
if (List = nil) or (List.Count <= 1) then
begin
Exit;
end;
Comparer := GetComparer<T>(List,AComparer);
OwnsObjects := List.OwnsObjects;
try
List.OwnsObjects := False;
Algorithm.Sort(List,Comparer);
finally
List.OwnsObjects := OwnsObjects;
end;
end;
{$IF CompilerVersion < 24.00}
class procedure TGenericListSorter.Sort<T>(List: TObjectList<T>; Algorithm: TSortAlgorithm<T>);
var
Comparer: IComparer<T>;
OwnsObjects: Boolean;
begin
if (List = nil) or (List.Count <= 1) then
begin
Exit;
end;
Comparer := GetComparer<T>(List,nil);
OwnsObjects := List.OwnsObjects;
try
List.OwnsObjects := False;
Algorithm.Sort(List,Comparer);
finally
List.OwnsObjects := OwnsObjects;
end;
end;
{$IFEND}
class procedure TGenericListSorter.Sort(List: TList<String>; Algorithm: TSortAlgorithm<String>;
const AComparer: IComparer<String>);
var
Comparer: IComparer<String>;
begin
if (List = nil) or (List.Count <= 1) then
begin
Exit;
end;
Comparer := GetComparer<String>(List,AComparer);
Algorithm.Sort(List,Comparer);
end;
{$IF CompilerVersion < 24.00}
class procedure TGenericListSorter.Sort(List: TList<String>; Algorithm: TSortAlgorithm<String>);
var
Comparer: IComparer<String>;
begin
if (List = nil) or (List.Count <= 1) then
begin
Exit;
end;
Comparer := GetComparer<String>(List,nil);
Algorithm.Sort(List,Comparer);
end;
{$IFEND}
class function TGenericListSorter.GetComparer<T>(List: TList<T>; const AComparer: IComparer<T>): IComparer<T>;
var
ctx: TRttiContext;
begin
Result := AComparer;
if Result = nil then
begin
Result := ctx.GetType(List.ClassType).GetField('FComparer').GetValue(List).AsType<IComparer<T>>;
end;
end;
Sortメソッドはいずれもコンペアラを確定し、指定されたソートアルゴリズムのインスタンスのSortメソッドを呼び出しています。ただしTObjectList<T>用のオーバロードはソートを行っている間、一時的にOwnsObjectsをFalseに変更しています。これはOwnsObjectsがTrueだと(以下の例のマージソートのように)Items[]に代入を行ったときに、もともと格納されているTのインスタンスを解放してしまうためで、ソートアルゴリズムのクラスで直接ソートを行うのではなく、レコード型TGenericListSorterの3つのオーバロードに処理を分けて、そこから間接的に呼び出すようになっているのはこれが理由です。またGetComparerメソッドはコンペアラが指定されていない(=nil)ときに、TList<T>の持つデフォルトのコンペアラを(RTTIを使って)取得します。
次に実際のソートアルゴリズムを実装したクラスですが、まずコムソートを実装してみます。
type
TCombSort<T> = class(TSortAlgorithm<T>)
protected
class var
FInstance: TSortAlgorithm<T>;
public
class destructor Destroy;
class function Instance: TSortAlgorithm<T>; override;
class procedure Sort(List: TList<T>; const AComparer: IComparer<T>); override;
end;
class destructor TCombSort<T>.Destroy;
begin
FInstance.Free;
end;
class function TCombSort<T>.Instance: TSortAlgorithm<T>;
begin
if FInstance = nil then
begin
FInstance := Self.Create;
end;
Result := FInstance;
end;
class procedure TCombSort<T>.Sort(List: TList<T>; const AComparer: IComparer<T>);
const
SHRINK_FACTOR = 1.247330950103979;
var
Index: Integer;
Gap: Integer;
Swapped: Boolean;
begin
Gap := List.Count;
Swapped := True;
while (Gap > 1) or (Swapped = True) do
begin
if Gap > 1 then
begin
Gap := Trunc(Gap / SHRINK_FACTOR);
end;
if Gap < 1 then
begin
Gap := 1;
end;
Swapped := False;
Index := 0;
while (Gap + Index) < List.Count do
begin
if AComparer.Compare(List.Items[Index],List.Items[Index + Gap]) > 0 then
begin
List.Exchange(Index,Index + Gap);
Swapped := True;
end;
Index := Index + 1;
end;
end;
end;
前述の通り(TGenericListSorterとは異なり)1種類の<T>に対してのみSortを実装すればよいようになっています。またSortメソッド以外にシングルトンなインスタンスを取得するためのInstanceメソッドと、そのインスタンスを解放するためのクラスデストラクタを用意します。これで例えばInteger型のリストに対しては
var
I: Integer;
Value: Integer;
List: TList<Integer>;
begin
List := TList<Integer>.Create;
try
for I := 0 to 999 do
begin
List.Add(Random(100000));
end;
TGenericListSorter.Sort<Integer>(List,TCombSort<Integer>.Instance,TComparer<Integer>.Construct(
function(const Left, Right: Integer): Integer
begin
Result := Left - Right;
end));
for Value in List do
begin
Memo1.Lines.Add(IntToStr(Value));
end;
finally
List.Free;
end
end;
このような形でソートを呼び出すことができます。
同じようにその他のソートアルゴリズムを実装していきます。ノームソートです。
type
TGnomeSort<T> = class(TSortAlgorithm<T>)
protected
class var
FInstance: TSortAlgorithm<T>;
public
class destructor Destroy;
class function Instance: TSortAlgorithm<T>; override;
class procedure Sort(List: TList<T>; const AComparer: IComparer<T>); override;
end;
class destructor TGnomeSort<T>.Destroy;
begin
FInstance.Free;
end;
class function TGnomeSort<T>.Instance: TSortAlgorithm<T>;
begin
if FInstance = nil then
begin
FInstance := Self.Create;
end;
Result := FInstance;
end;
class procedure TGnomeSort<T>.Sort(List: TList<T>; const AComparer: IComparer<T>);
var
Index: Integer;
begin
Index := 0;
while Index < List.Count do
begin
if (Index = 0) or (AComparer.Compare(List.Items[Index],List.Items[Index - 1]) >= 0) then
begin
Index := Index + 1;
end
else
begin
List.Exchange(Index,Index - 1);
Index := Index - 1;
end;
end;
end;
選択ソートです。
type
TSelectionSort<T> = class(TSortAlgorithm<T>)
protected
class var
FInstance: TSortAlgorithm<T>;
public
class destructor Destroy;
class function Instance: TSortAlgorithm<T>; override;
class procedure Sort(List: TList<T>; const AComparer: IComparer<T>); override;
end;
class destructor TSelectionSort<T>.Destroy;
begin
FInstance.Free;
end;
class function TSelectionSort<T>.Instance: TSortAlgorithm<T>;
begin
if FInstance = nil then
begin
FInstance := Self.Create;
end;
Result := FInstance;
end;
class procedure TSelectionSort<T>.Sort(List: TList<T>; const AComparer: IComparer<T>);
var
Index1: Integer;
Index2: Integer;
MinIndex: Integer;
Temp: T;
begin
for Index1 := 0 to List.Count - 2 do
begin
MinIndex := Index1;
Temp := List.Items[MinIndex];
for Index2 := Index1 + 1 to List.Count - 1 do
begin
if AComparer.Compare(List.Items[Index2],Temp) < 0 then
begin
MinIndex := Index2;
Temp := List.Items[MinIndex];
end;
end;
if MinIndex <> Index1 then
begin
List.Move(MinIndex,Index1);
end;
end;
end;
挿入ソートです。
type
TInsertionSort<T> = class(TSortAlgorithm<T>)
protected
class var
FInstance: TSortAlgorithm<T>;
public
class destructor Destroy;
class function Instance: TSortAlgorithm<T>; override;
class procedure Sort(List: TList<T>; const AComparer: IComparer<T>); override;
end;
class destructor TInsertionSort<T>.Destroy;
begin
FInstance.Free;
end;
class function TInsertionSort<T>.Instance: TSortAlgorithm<T>;
begin
if FInstance = nil then
begin
FInstance := Self.Create;
end;
Result := FInstance;
end;
class procedure TInsertionSort<T>.Sort(List: TList<T>; const AComparer: IComparer<T>);
var
Comparer: IComparer<T>;
Index1: Integer;
Index2: Integer;
Temp: T;
begin
for Index1 := 1 to List.Count - 1 do
begin
Temp := List.Items[Index1];
Index2 := Index1 - 1;
while (Index2 >= 0) and (AComparer.Compare(List.Items[Index2],Temp) > 0) do
begin
Index2 := Index2 - 1;
end;
List.Move(Index1,Index2 + 1);
end;
end;
クイックソートです。
type
TQuickSort<T> = class(TSortAlgorithm<T>)
protected
class var
FInstance: TSortAlgorithm<T>;
class procedure InternalSort(List: TList<T>; Left: Integer; Right: Integer;
const AComparer: IComparer<T>);
class function Partition(List: TList<T>; Left: Integer; Right: Integer;
const AComparer: IComparer<T>): Integer;
public
class destructor Destroy;
class function Instance: TSortAlgorithm<T>; override;
class procedure Sort(List: TList<T>; const AComparer: IComparer<T>); override;
end;
class destructor TQuickSort<T>.Destroy;
begin
FInstance.Free;
end;
class function TQuickSort<T>.Instance: TSortAlgorithm<T>;
begin
if FInstance = nil then
begin
FInstance := Self.Create;
end;
Result := FInstance;
end;
class procedure TQuickSort<T>.Sort(List: TList<T>; const AComparer: IComparer<T>);
var
Comparer: IComparer<T>;
begin
InternalSort(List,0,List.Count - 1,AComparer);
end;
class procedure TQuickSort<T>.InternalSort(List: TList<T>; Left: Integer; Right: Integer;
const AComparer: IComparer<T>);
var
Pivot: Integer;
begin
if Left < Right then
begin
Pivot := Partition(List,Left,Right,AComparer);
InternalSort(List,Left, Pivot,AComparer);
InternalSort(List,Pivot + 1,Right,AComparer);
end;
end;
class function TQuickSort<T>.Partition(List: TList<T>; Left: Integer; Right: Integer;
const AComparer: IComparer<T>): Integer;
var
Index1: Integer;
Index2: Integer;
Pivot: T;
begin
Pivot := List.Items[(Left + Right) div 2];
Index1 := Left - 1;
Index2 := Right + 1;
while True do
begin
repeat
Index1 := Index1 + 1;
until (AComparer.Compare(List.Items[Index1],Pivot) >= 0);
repeat
Index2 := Index2 - 1;
until (AComparer.Compare(List.Items[Index2],Pivot) <= 0);
if Index1 >= Index2 then
begin
Result := Index2;
Exit;
end;
List.Exchange(Index1,Index2);
end;
end;
ヒープソートです。
type
THeapSort<T> = class(TSortAlgorithm<T>)
protected
class var
FInstance: TSortAlgorithm<T>;
class procedure BuildHeap(List: TList<T>; const AComparer: IComparer<T>);
class procedure Heapify(List: TList<T>; Index: Integer; Max: Integer;
const AComparer: IComparer<T>);
public
class destructor Destroy;
class function Instance: TSortAlgorithm<T>; override;
class procedure Sort(List: TList<T>; const AComparer: IComparer<T>); override;
end;
class destructor THeapSort<T>.Destroy;
begin
FInstance.Free;
end;
class function THeapSort<T>.Instance: TSortAlgorithm<T>;
begin
if FInstance = nil then
begin
FInstance := Self.Create;
end;
Result := FInstance;
end;
class procedure THeapSort<T>.Sort(List: TList<T>; const AComparer: IComparer<T>);
var
Index: Integer;
begin
BuildHeap(List,AComparer);
for Index := List.Count - 1 downto 1 do
begin
List.Exchange(0,Index);
Heapify(List,0,Index,AComparer);
end;
end;
class procedure THeapSort<T>.BuildHeap(List: TList<T>; const AComparer: IComparer<T>);
var
Index: Integer;
begin
for Index := (List.Count div 2) - 1 downto 0 do
begin
Heapify(List,Index,List.Count,AComparer);
end;
end;
class procedure THeapSort<T>.Heapify(List: TList<T>; Index: Integer; Max: Integer;
const AComparer: IComparer<T>);
var
Left: Integer;
Right: Integer;
Largest: Integer;
begin
Left := Index * 2 + 1;
Right := Index * 2 + 2;
if (Left < Max) and (AComparer.Compare(List.Items[Left],List.Items[Index]) > 0) then
begin
Largest := Left;
end
else
begin
Largest := Index;
end;
if (Right < Max) and (AComparer.Compare(List.Items[Right],List.Items[Largest]) > 0) then
begin
Largest := Right;
end;
if Largest <> Index then
begin
List.Exchange(Index,Largest);
Heapify(List,Largest,Max,AComparer);
end;
end;
マージソートです。
type
TMergeSort<T> = class(TSortAlgorithm<T>)
protected
class var
FInstance: TSortAlgorithm<T>;
class procedure InternalSort(List: TList<T>; var Work: array of T;
Left: Integer; Right: Integer;
const AComparer: IComparer<T>);
public
class destructor Destroy;
class function Instance: TSortAlgorithm<T>; override;
class procedure Sort(List: TList<T>; const AComparer: IComparer<T>); override;
end;
class destructor TMergeSort<T>.Destroy;
begin
FInstance.Free;
end;
class function TMergeSort<T>.Instance: TSortAlgorithm<T>;
begin
if FInstance = nil then
begin
FInstance := Self.Create;
end;
Result := FInstance;
end;
class procedure TMergeSort<T>.Sort(List: TList<T>; const AComparer: IComparer<T>);
var
WorkArea: array of T;
begin
SetLength(WorkArea,List.Count);
try
InternalSort(List,WorkArea,0,List.Count - 1,AComparer);
finally
SetLength(WorkArea,0);
end;
end;
class procedure TMergeSort<T>.InternalSort(List: TList<T>; var Work: array of T;
Left: Integer; Right: Integer;
const AComparer: IComparer<T>);
var
Index1: Integer;
Index2: Integer;
Index3: Integer;
Mid: Integer;
begin
if Left >= Right then
begin
Exit;
end;
Mid := (Left + Right) div 2;
InternalSort(List,Work,Left, Mid, AComparer);
InternalSort(List,Work,Mid + 1,Right,AComparer);
for Index1 := Left to Mid do
begin
Work[Index1] := List.Items[Index1];
end;
Index2 := Right;
for Index1 := Mid + 1 to Right do
begin
Work[Index1] := List.Items[Index2];
Index2 := Index2 - 1;
end;
Index1 := Left;
Index2 := Right;
for Index3 := Left to Right do
begin
if AComparer.Compare(Work[Index1],Work[Index2]) > 0 then
begin
List.Items[Index3] := Work[Index2];
Index2 := Index2 - 1;
end
else
begin
List.Items[Index3] := Work[Index1];
Index1 := Index1 + 1;
end;
end;
end;
シェルソートです。
type
TShellSort<T> = class(TSortAlgorithm<T>)
protected
class var
FInstance: TSortAlgorithm<T>;
class procedure InternalSort(List: TList<T>; Gap: Integer;
const AComparer: IComparer<T>);
public
class destructor Destroy;
class function Instance: TSortAlgorithm<T>; override;
class procedure Sort(List: TList<T>; const AComparer: IComparer<T>); override;
end;
class destructor TShellSort<T>.Destroy;
begin
FInstance.Free;
end;
class function TShellSort<T>.Instance: TSortAlgorithm<T>;
begin
if FInstance = nil then
begin
FInstance := Self.Create;
end;
Result := FInstance;
end;
class procedure TShellSort<T>.Sort(List: TList<T>; const AComparer: IComparer<T>);
var
Gap: Integer;
begin
Gap := List.Count div 2;
while Gap > 0 do
begin
InternalSort(List,Gap,AComparer);
Gap := Gap div 2;
end;
end;
class procedure TShellSort<T>.InternalSort(List: TList<T>; Gap: Integer;
const AComparer: IComparer<T>);
var
Index1: Integer;
Index2: Integer;
begin
for Index1 := Gap to List.Count - 1 do
begin
Index2 := Index1 - Gap;
while Index2 >= 0 do
begin
if AComparer.Compare(List.Items[Index2 + Gap],List.Items[Index2]) > 0 then
begin
Break;
end;
List.Exchange(Index2,Index2 + Gap);
Index2 := Index2 - Gap;
end;
end;
end;
Instanceメソッドとクラスデストラクタを毎回書かなければならないことを除けば、ソートのコードを1つ書くだけで値型に対するTList<T>(TList<String>を含む)、クラスに対するTObjectList<T>のどちらであってもソートを行うことができます。→ジェネリックスのリストをアルゴリズムを指定してソートする(Gist)
2017年3月15日
DELPHI / C++BUILDER 0315 IN TOKYO
本日13:30から次期RAD Studio/Delphi/C++Builder(10.2 Tokyo)のお披露目となるDELPHI / C++BUILDER 0315 IN TOKYOが東京ミッドタウン・カンファレンスで行われます。UStreamによる中継も行われます。
レセプションも含め終了しました。参加者、関係者の皆さん、お疲れさまでした。
今日のアバウトなまとめ
レセプションも含め終了しました。参加者、関係者の皆さん、お疲れさまでした。
今日のアバウトなまとめ
- RAD Studio/Delphi/C++Builderの次期バージョンは"10.2 Tokyo"で、2017/03/28販売開始予定
- 主な新機能はLinux(Intel x64)サポート(C++Builderは次のアップデートにあたる"10.2.1"でサポート)
- LinuxサポートはEnt SKU以上が必要(Add-on Packなどは今のところなし)
- 勉強会やりましょう
2017年3月9日
InterBase 2017リリース
InterBase 2017(13.0.0.129)がリリースされています。現時点(2017/03/09)でDeveloper EditionとServer Edition(トライアル版)のみダウンロード可能です。ODSは17になっています。
30748 InterBase 2017 Server Ed., Windows/Linux (13.0.0.129, Japanese)
30749 InterBase 2017 Server Ed., Windows/Linux (13.0.0.129, English)
30736 InterBase 2017 (13.0.0.129) Developer Edition, Japanese
30738 InterBase 2017 (13.0.0.129) Developer Edition, English
30756 InterBase 2017 ToGo Ed., Windows/Linux/macOS/iOS/Android
Readme - InterBase (en)
InterBase 2017 の新機能 - InterBase(en)
InterBase 2017 - Now available • DelphiABall
2017/03/10追記: Server Editionもダウンロードできるようになっています。
2017/03/24追記: ToGo Editionもダウンロードできるようになっています。
30748 InterBase 2017 Server Ed., Windows/Linux (13.0.0.129, Japanese)
30749 InterBase 2017 Server Ed., Windows/Linux (13.0.0.129, English)
30736 InterBase 2017 (13.0.0.129) Developer Edition, Japanese
30738 InterBase 2017 (13.0.0.129) Developer Edition, English
30756 InterBase 2017 ToGo Ed., Windows/Linux/macOS/iOS/Android
Readme - InterBase (en)
InterBase 2017 の新機能 - InterBase(en)
InterBase 2017 - Now available • DelphiABall
2017/03/10追記: Server Editionもダウンロードできるようになっています。
2017/03/24追記: ToGo Editionもダウンロードできるようになっています。
2017年3月7日
Adobe Reader(X以降)で指定したファイルの指定したページを開く
以前Adobe Acrobat/Readerで指定したPDFファイルの指定したページを開く方法について書きましたが、コメントでおかぽんさんからAdobe Reader X以降ではこの方法が使えなくなっているとの指摘をいただきました。
調べてみると、Actobat/ReaderのVersion 10(X)以降で、DDEのサービス名が Acroview + [A|R] + <MajorVersion> に変更されたことが原因とのことです。というわけでこれに対応してみました。
おかぽんさん、情報ありがとうございました。
→Adobe Reader(X以降)で指定したファイルの指定したページを開く(Gist)
...DDEを使った方法ですが、Acrobat X から、DDEのサービス名が変更されています。...
uses
{$IF RTLVersion >= 23.00}
Winapi.Windows, System.SysUtils, System.Win.Registry, System.AnsiStrings,
Vcl.DdeMan;
{$ELSE}
Windows, SysUtils, Registry, {$IFDEF UNICODE}AnsiStrings, {$ENDIF}DdeMan;
{$IFEND}
function GetAcrobatPathname: String;
begin
with TRegistry.Create do
begin
try
RootKey := HKEY_CLASSES_ROOT;
OpenKeyReadOnly('Software\Adobe\Acrobat\Exe');
try
Result := AnsiDequotedStr(ReadString(''),'"');
finally
CloseKey;
end;
finally
Free;
end;
end;
end;
procedure OpenPDF(const Filename: String; Page: Integer);
const
CDdeCommand: AnsiString = '[DocOpen("%s")][DocGoTo(NULL,%d)]';
var
Macro: AnsiString;
Pathname: String;
ServiceName: String;
MajorVersion: Integer;
AcrobatType: String;
begin
Macro := {$IFDEF UNICODE}{$IF RTLVersion >= 23.00}System.{$IFEND}AnsiStrings.{$ENDIF}
Format(CDdeCommand,[Filename,Page - 1]);
Pathname := GetAcrobatPathname;
ServiceName := 'Acroview';
MajorVersion := GetFileVersion(Pathname) shr 16;
if MajorVersion >= 10 then
begin
if CompareText(ExtractFileName(Pathname),'AcroRd32.exe') = 0 then
begin
AcrobatType := 'R';
end
else
begin
AcrobatType := 'A';
end;
ServiceName := ServiceName + Format('%s%d',[AcrobatType,MajorVersion]);
end;
with TDdeClientConv.Create(nil) do
begin
try
ConnectMode := ddeManual;
ServiceApplication := ChangeFileExt(Pathname,'');
SetLink(ServiceName,'Control');
if (OpenLink or ((MajorVersion >= 15) and OpenLink)) = True then
begin
ExecuteMacro(PAnsiChar(Macro),False);
CloseLink;
end;
finally
Free;
end;
end;
end;
Acrobat/Readerの実行ファイルの場所をレジストリの"HKEY_CLASSES_ROOT\Software\Adobe\Acrobat\Exe"から取得し、SysUtils.GetFileVersionで問い合わせたバージョン情報の上位16ビット(メジャーバージョン)とファイル名からサービス名を組み立て、DDEをTDdeClientConv.OpenLinkで呼び出してTDdeClientConv.ExecuteMacroでマクロ実行することでファイルを開きページを移動する、という手順になります。またAcrobat/Reader DCの場合TDdeClientConv.OpenLinkの内部でWinExec(en)を使用して起動した直後にDdeConnect(en)を呼び出すと失敗するようなので、リトライするようにしています。おかぽんさん、情報ありがとうございました。
→Adobe Reader(X以降)で指定したファイルの指定したページを開く(Gist)
2017年3月5日
[書籍][ebook]Dependency Injection In Delphi
Leanpubで
Dependency Injection In Delphi (amazon US)/Nick Hodges著/Leanpub/ISBN 978-1941266229(printed), ISBN 978-1-941266-19-9(ebook)/29.99USD(printed), 29.99USD(ebook)
を購入(LearnpubのebookはPDF/EPUB/MOBI形式をダウンロード可能)。
2017/05/31追記: Amazon (US)で書籍版が購入可能になっています。ということでDelphi in Depth: FireDACと一緒に注文したDependency Injection In Delphiの書籍版が配送されてきました。29.99USD=3,433JPY(1USD=114.479JOY、配送料は含まず)ということになりました。
Dependency Injection In Delphi (amazon US)/Nick Hodges著/Leanpub/ISBN 978-1941266229(printed), ISBN 978-1-941266-19-9(ebook)/29.99USD(printed), 29.99USD(ebook)
を購入(LearnpubのebookはPDF/EPUB/MOBI形式をダウンロード可能)。
2017/05/31追記: Amazon (US)で書籍版が購入可能になっています。ということでDelphi in Depth: FireDACと一緒に注文したDependency Injection In Delphiの書籍版が配送されてきました。29.99USD=3,433JPY(1USD=114.479JOY、配送料は含まず)ということになりました。
2017年3月1日
2017/03開催のセミナー
- Web Seminar
- 2017/03/06 17:00-17:50(JST) Delphi / C++Builder Starter チュートリアルシリーズ シーズン2『プログラミング言語をやさしく覚えよう』第7回 Delphi「オブジェクト指向」/C++「オブジェクト指向」
- 2017/03/13 17:00-17:50(JST) Delphi / C++Builder Starter チュートリアルシリーズ シーズン2『プログラミング言語をやさしく覚えよう』第8回 Delphi「作ってみよう Delphiの部」
- 2017/03/27 17:00-17:50(JST) Delphi / C++Builder Starter チュートリアルシリーズ シーズン2『プログラミング言語をやさしく覚えよう』第9回 C++「作ってみよう C++の部」
- Live Seminar
- 2017/03/15 13:30-20:00(JST) DELPHI / C++BUILDER 0315 IN TOKYO
- 2017/03/28 17:00-19:00(JST) 「RAD Studioで始めるマルチデバイス・クロスプラットフォーム開発ワークショップ」
2017年2月24日
[書籍]Optimized C++
紀伊國屋書店新宿本店でOptimized C++ (amazon US)の翻訳である
Optimized C++ (amazon)/Kurt Guntheroth著/黒川利明訳/島敏博技術監修/オライリージャパン/ISBN 978-4-87311-792-8/4,320円
を購入。
Optimized C++ (amazon)/Kurt Guntheroth著/黒川利明訳/島敏博技術監修/オライリージャパン/ISBN 978-4-87311-792-8/4,320円
を購入。
2017年2月22日
2017年2月18日
2017年2月15日
Microsoft Monthly Update 2017/02 is canceled
今日はMicrosoftのセキュリティアップデートの日、の予定だったのですが、
とのことで、更新プログラムのリリースは延期になっています。この後のリリーススケジュールは現時点(2017/02/15)で未定とのことです。
2017/02/16追記: 2017/02のセキュリティ更新プログラムはキャンセルとなった模様です。
Adobe Flash Playerには既知のセキュリティホールが存在していますので、Windows 8.1/10、Windows Server 2012/2012R2/2016、Windows RT 8.1上のInternet ExplorerおよびEdgeではFlash Playerを無効化するか、代替のwebブラウザを使用することを強くお勧めします。
2017/02/22追記: IE/EdgeのAdobe Flash Playerの更新プログラムがリリースされています。
Adobe Flash Player の脆弱性を修正するセキュリティ更新プログラムを定例外で公開 – 日本のセキュリティチーム
マイクロソフト セキュリティ情報 MS17-005 - 緊急 Adobe Flash Player のセキュリティ更新プログラム (4010250)
we discovered a last minute issue that could impact some customers and was not resolved in time for our planned updates today.
After considering all options, we made the decision to delay this month’s updates.
とのことで、更新プログラムのリリースは延期になっています。
2017/02/16追記: 2017/02のセキュリティ更新プログラムはキャンセルとなった模様です。
3 月の月例セキュリティ更新プログラム公開 (2017 年 3 月 14 日 (米国日付)) の一部として更新プログラムを配信する予定です。
2017/02/22追記: IE/EdgeのAdobe Flash Playerの更新プログラムがリリースされています。
Adobe Flash Player の脆弱性を修正するセキュリティ更新プログラムを定例外で公開 – 日本のセキュリティチーム
マイクロソフト セキュリティ情報 MS17-005 - 緊急 Adobe Flash Player のセキュリティ更新プログラム (4010250)
2017年2月1日
[書籍]なっとく!アルゴリズム
紀伊國屋書店新宿本店でGrokking Algorithms (amazon US)の翻訳である
なっとく!アルゴリズム (amazon)/Aditya Bhargava著/株式会社クイープ監訳/翔泳社/ISBN 9784798143354/2,700円
を購入。
なっとく!アルゴリズム (amazon)/Aditya Bhargava著/株式会社クイープ監訳/翔泳社/ISBN 9784798143354/2,700円
を購入。
[書籍]プログラミング作法
紀伊國屋書店新宿本店でThe Practice of Programming (amazon US)の翻訳である
プログラミング作法 (amazon)/Brian W. Kernighan、Rob Pike著/福崎俊博訳/KADOKAWA/ISBN 978-4-04-893052-9/3,024円
を購入。
プログラミング作法 (amazon)/Brian W. Kernighan、Rob Pike著/福崎俊博訳/KADOKAWA/ISBN 978-4-04-893052-9/3,024円
を購入。
2017/02開催のセミナー
- Web Seminar
- 2017/02/06 17:00-17:50(JST) Delphi / C++Builder Starter チュートリアルシリーズ シーズン2『プログラミング言語をやさしく覚えよう』第3回 Delphi「条件とループ」/C++「条件とループ」
- 2017/02/13 17:00-17:50(JST) Delphi / C++Builder Starter チュートリアルシリーズ シーズン2『プログラミング言語をやさしく覚えよう』第4回 Delphi「FunctionとProcedure(関数と手続き)」/C++「関数の作り方」
- 2017/02/20 17:00-17:50(JST) Delphi / C++Builder Starter チュートリアルシリーズ シーズン2『プログラミング言語をやさしく覚えよう』第5回 Delphi「配列とレコード」/C++「配列と構造体」
- 2017/02/27 17:00-17:50(JST) Delphi / C++Builder Starter チュートリアルシリーズ シーズン2『プログラミング言語をやさしく覚えよう』第6回 Delphi「文字列とオブジェクト」/C++「文字列とオブジェクト」
- Live Seminar
- 2017/02/03 14:00-17:00(JST) セミナー「Delphi / C++ Builder 業務アプリケーション 刷新実践法」
- 2017/02/10 17:00-19:00(JST) セミナー「RAD Studioで始めるマルチデバイス・クロスプラットフォーム開発ワークショップ」
2017年1月12日
RAD Studio/Delphi/C++Builder 10.1 Berlin Hotfix 11 Jan 2017
RAD Studio 10.1 BerlinのHotfixがリリースされています。macOS 10.12 Sierra上でのデプロイ/デバッグの問題(RSP-16322)、macOS 10.12 Sierra上のiOS Simulatorでの実行/デバッグの問題(RSP-16368)、iOS 10上での32ビットアプリケーションのデバッグの問題(RSP-16324)を修正するものです。
30680 RAD Studio 10.1 Berlin Hotfix: 11 Jan 2017
Debugger Hotfix for macOS Sierra and the iOS Simulator
macOS Sierra および iOS Simulator 向けの Debugger Hotfix がリリースされました [JAPAN]
30680 RAD Studio 10.1 Berlin Hotfix: 11 Jan 2017
Debugger Hotfix for macOS Sierra and the iOS Simulator
macOS Sierra および iOS Simulator 向けの Debugger Hotfix がリリースされました [JAPAN]
2017年1月11日
2017年1月1日
2017/01開催のセミナー
- Web Seminar
- 2017/01/23 17:00-17:50(JST) Delphi / C++Builder Starter チュートリアルシリーズ シーズン2『プログラミング言語をやさしく覚えよう』第1回 Delphi「シューティングゲームのプログラム」/C++「シューティングゲームのプログラム」
- 2017/01/26 16:00-17:30(JST) Webセミナー「RAD Studio 10.1 Berlin Update 2 Anniversary Edition 新機能ガイド」
- 2017/01/30 17:00-17:50(JST) Delphi / C++Builder Starter チュートリアルシリーズ シーズン2『プログラミング言語をやさしく覚えよう』第2回 Delphi「変数と型」/C++「変数と型」
- Live Seminar
2016年12月26日
[書籍]アルゴリズムクイックリファレンス 第2版
啓文堂書店 渋谷店でAlgorithms in a Nutshell, 2nd Edition (amazon US)の翻訳である
アルゴリズムクイックリファレンス 第2版 (amazon)/George T. Heineman、Gary Pollice、Stanley Selkow著/黒川利明、黒川洋訳/オライリージャパン/ISBN 978-4-87311-785-0/3,888円
を購入。
アルゴリズムクイックリファレンス 第2版 (amazon)/George T. Heineman、Gary Pollice、Stanley Selkow著/黒川利明、黒川洋訳/オライリージャパン/ISBN 978-4-87311-785-0/3,888円
を購入。
2016年12月21日
RAD Studio/Delphi/C++Builder 10.1 Berlin Debugger Hotfix for iOS
RAD Studio 10.1 BerlinのHotfixがリリースされています。iOS 10上でiOS 32ビットアプリケーションをデバッグするときの問題を修正するもののようです。
30673 Debugger Hotfix for 10.1 Berlin for iOS 32-bit debugging
2017/01/12追記: このhotfix(30673)は新しいhotfix(30680 RAD Studio 10.1 Berlin Hotfix: 11 Jan 2017)に含まれているため、30680のhotfixのみを適用すればOKです。
30673 Debugger Hotfix for 10.1 Berlin for iOS 32-bit debugging
2017/01/12追記: このhotfix(30673)は新しいhotfix(30680 RAD Studio 10.1 Berlin Hotfix: 11 Jan 2017)に含まれているため、30680のhotfixのみを適用すればOKです。
2016年12月18日
2016年12月14日
2016年12月9日
第33回エンバカデロ・デベロッパーキャンプ
本日10:00から第33回エンバカデロ・デベロッパーキャンプがEBiS 303カンファレンススペースで行われます。今回もUStreamによるライブ中継が行われます。
- 第33回 エンバカデロ・デベロッパーキャンプ・イン東京
- 【A1】Delphi/C++テクニカルセッション「旧Delphiアプリケーション移行の実際例 - 実例から学ぶ改修のポイント」
- 【B1】Delphi/C++チュートリアルセッション「Starterから始めるビジュアル開発実践法」
- 【A2】Delphi/C++テクニカルセッション「最新Delphi/RAD Studioでこれが楽しい!旧バージョンからの移行"マインド"入門」
- 【B2】Delphi/C++チュートリアルセッション「Starterユーザーのためのアップグレードしやすいアプリ構築術」
- 【G3】ジェネラルセッション「マルチデバイス開発最前線!Windows10、モバイル、IoT、Linuxへと広がるエンバカデロ開発ツール戦略」
- 【T4】Delphi/C++テクニカルセッション「Delphiならここまでできる!iOS / Androidネイティブアプリ構築術」
- 【T5】Delphi/C++テクニカルセッション「RAD Server活用ショーケース: IoTを活用してデータを集積」
- 【G6】ライトニングトーク「共有!みんなの開発事例、開発経験、テクニック」
- 第33回 エンバカデロ・デベロッパーキャンプ・イン大阪
- 【T1】Delphi/C++チュートリアルセッション「Starterから始めるビジュアル開発入門 - その意義と実践手法」
- 【T2】Delphiケーススタディセッション「利用シーンに最適な建機レンタルシステムの構築」
- 【G3】ジェネラルセッション「マルチデバイス開発最前線!Windows10、モバイル、IoT、Linuxへと広がるエンバカデロ開発ツール戦略」
- 【T4】Delphi/C++テクニカルセッション「Windowsからスマホまで!マルチデバイスでサクサク、外部API呼び出し活用法」
- 【T5】Delphi/C++テクニカルセッション「RAD Server活用ショーケース: IoTを活用してデータを集積」
- 【G6】ライトニングトーク「共有!みんなの開発事例、開発経験、テクニック」
2016年12月1日
2016/12開催のセミナー
- Web Seminar
- 2016/12/05 17:00-17:30(JST) Delphi / C++Builder Starter チュートリアルシリーズ シーズン1『わずかなプログラミングで完成! 最初の一歩から始めてゲームを作ろう!』第7回「シューティングゲーム キャラクターを貼り付けよう そして動かそう」
- 2016/12/12 17:00-17:30(JST) Delphi / C++Builder Starter チュートリアルシリーズ シーズン1『わずかなプログラミングで完成! 最初の一歩から始めてゲームを作ろう!』第8回「シューティングゲーム 敵を動かしてみよう」
- 2016/12/19 17:00-17:30(JST) Delphi / C++Builder Starter チュートリアルシリーズ シーズン1『わずかなプログラミングで完成! 最初の一歩から始めてゲームを作ろう!』第9回「シューティングゲーム 敵を攻撃しよう」
- 2016/12/26 17:00-17:30(JST) Delphi / C++Builder Starter チュートリアルシリーズ シーズン1『わずかなプログラミングで完成! 最初の一歩から始めてゲームを作ろう!』第10回「シューティングゲーム スコアとゲームオーバーを付けよう」
- Live Seminar
- 2016/12/09 10:00-18:00(JST) 第33回 エンバカデロ・デベロッパーキャンプ・イン東京
- 2016/12/13 10:00-17:30(JST) 第33回 エンバカデロ・デベロッパーキャンプ・イン大阪
2016年11月24日
RAD Studio/Delphi/C++Builder 10 Seattle November 2016 Update
RAD Studio/Delphi/C++Builder 10 SeattleのNovember 2016 Updateがリリースされています。有効なアップデートサブスクリプションが必要です。
30663 November 2016 Seattle Update Subscription Update
Fall 2016 XE8 and 10 Seattle Updates - Embarcadero Community
30663 November 2016 Seattle Update Subscription Update
Fall 2016 XE8 and 10 Seattle Updates - Embarcadero Community
RAD Studio/Delphi/C++Builder XE8 October 2016 Update
RAD Studio/Delphi/C++Builder XE8のOctober 2016 Updateがリリースされています。有効なアップデートサブスクリプションが必要です。また事前にDecember 2015 Updateを適用しておく必要があります。
30662 October 2016 XE8 Update Subscription Update
Fall 2016 XE8 and 10 Seattle Updates - Embarcadero Community
30662 October 2016 XE8 Update Subscription Update
Fall 2016 XE8 and 10 Seattle Updates - Embarcadero Community
2016年11月23日
[書籍]Cクイックリファレンス 第2版
ブックファースト新宿店でC in a Nutshell, 2nd Edition (amazon US)の翻訳である
Cクイックリファレンス 第2版 (amazon)/Peter Prinz、Tony Crawford著/黒川利明訳/島敏博技術監修/オライリージャパン/ISBN 978-4-87311-781-2/4,968円
を購入。
Cクイックリファレンス 第2版 (amazon)/Peter Prinz、Tony Crawford著/黒川利明訳/島敏博技術監修/オライリージャパン/ISBN 978-4-87311-781-2/4,968円
を購入。
2016年11月16日
[書籍]MVVM in Delphi
Apressで注文した
MVVM in Delphi (amazon US)/John Kouraklis著/Apress/ISBN 978-1-4842-2213-3/26.99EUR
が配送されてきました(今回の発送地は日本(大日本印刷が発送代行)、配送は西濃運輸でした)。2016/11/09に注文して7日目の到着、26.99EUR=3,005JPY3,173JPY(暫定、1EUR=111.35JPY1EUR=117.562JPY)でした。
MVVM in Delphi (amazon US)/John Kouraklis著/Apress/ISBN 978-1-4842-2213-3/26.99EUR
が配送されてきました(今回の発送地は日本(大日本印刷が発送代行)、配送は西濃運輸でした)。2016/11/09に注文して7日目の到着、26.99EUR=
2016年11月15日
RAD Studio/Delphi/C++Builder 10.1 Berlin Update 2
RAD Studio/Delphi/C++Builder 10.1 BerlinのUpdate 2がリリースされています。
30652 Delphi and C++Builder 10.1 Berlin ISO (includes Update 2)
30648 RAD Studio 10.1 Berlin Web Install (including Update 2) (GetIt)
Subscription Update 2 - Anniversary Edition - RAD Studio (en)
RAD Studio 10.1 Berlin Subscription Update 2 - Anniversary Edition における不具合修正リスト (en)
RAD Studio Berlin 10.1 Update 2 Anniversary Edition Available
RAD Studio 10.1 Berlin Update2 - Anniversary Edition 提供開始![JAPAN]
注記: RAD Studio/C++Builder 10.1 Berlin Update 2をインストールするとWindows SDKのヘッダファイル8つが削除される、という問題が報告されており、これを修正するhotfixがリリースされています。
30649 RAD Studio 10.1 Berlin hotfix for missing header files
Issues with winapifamily.h and other header files after installing C++Builder 10
30652 Delphi and C++Builder 10.1 Berlin ISO (includes Update 2)
30648 RAD Studio 10.1 Berlin Web Install (including Update 2) (GetIt)
Subscription Update 2 - Anniversary Edition - RAD Studio (en)
RAD Studio 10.1 Berlin Subscription Update 2 - Anniversary Edition における不具合修正リスト (en)
RAD Studio Berlin 10.1 Update 2 Anniversary Edition Available
RAD Studio 10.1 Berlin Update2 - Anniversary Edition 提供開始![JAPAN]
注記: RAD Studio/C++Builder 10.1 Berlin Update 2をインストールするとWindows SDKのヘッダファイル8つが削除される、という問題が報告されており、これを修正するhotfixがリリースされています。
30649 RAD Studio 10.1 Berlin hotfix for missing header files
Issues with winapifamily.h and other header files after installing C++Builder 10
2016年11月9日
2016年11月3日
[書籍]新装版 達人プログラマー
紀伊國屋書店新宿本店でThe Pragmatic Programmer (amazon US)の翻訳であり、ピアソンエデュケーション版(amazon)の改稿版である
新装版 達人プログラマー (amazon)/Andrew Hunt、David Thomas著/村上雅章訳/オーム社/ISBN 978-4-274-21933-7/3,456円
を購入。
新装版 達人プログラマー (amazon)/Andrew Hunt、David Thomas著/村上雅章訳/オーム社/ISBN 978-4-274-21933-7/3,456円
を購入。
2016年11月1日
2016/11開催のセミナー
- Web Seminar
- 2016/11/07 17:00-17:30(JST) Delphi / C++Builder Starter チュートリアルシリーズ シーズン1『わずかなプログラミングで完成! 最初の一歩から始めてゲームを作ろう!』第3回「ユーザーインターフェース パーツの配置」
- 2016/11/14 17:00-17:30(JST) Delphi / C++Builder Starter チュートリアルシリーズ シーズン1『わずかなプログラミングで完成! 最初の一歩から始めてゲームを作ろう!』第4回「アニメーションの設定」
- 2016/11/21 17:00-17:30(JST) Delphi / C++Builder Starter チュートリアルシリーズ シーズン1『わずかなプログラミングで完成! 最初の一歩から始めてゲームを作ろう!』第5回「イベントに合わせて動かしてみよう」
- 2016/11/28 17:00-17:30(JST) Delphi / C++Builder Starter チュートリアルシリーズ シーズン1『わずかなプログラミングで完成! 最初の一歩から始めてゲームを作ろう!』第6回「ミニゲームを作ってみよう」
- Live Seminar
2016年10月25日
2016年10月17日
InterBase XE7 Update 6 Hotfix 1
InterBase XE7 Update 6 Hotfix 1がリリースされています。バージョンは12.0.6.379となっています。対象はAndroidのみで、FireDAC+IBLite/IBGoドライバを使用したプログラムがOpenSSLがらみでGoogle Playにリジェクトされる問題(RSP-15985)に対応するものです。
30630 InterBase XE7 Update 6, Hotfix 1 (12.0.6.379) for Android
30630 InterBase XE7 Update 6, Hotfix 1 (12.0.6.379) for Android
2016年10月12日
Microsoft Monthly Update 2016/10
今日はMicrosoftのセキュリティアップデートの日です。
MS16-118
MS16-119
MS16-120
MS16-121
MS16-122
MS16-123
MS16-124
MS16-125
MS16-126
MS16-127
今月(2016/10)からWindows 7/Windows 8.1の更新プログラムがWindows(Security Only Quality UpdateまたはSecurity Monthly Quality Rollup)と.NET Framework(Security UpdateまたはSecurity and Quality Rollup)についてロールアップモデルに移行しています。Officeも2013以降は基本的にClickOnceですので、Windows 7/Windows 8.1/Windows 10については個別の更新プログラムを適用するのはWord/Excel ViewerやCompatibility Packなど限られたものだけになります。複数の更新プログラムをまとめることについては以前失敗して元に戻したりしていますが、EOL(Windows 7 SP1:2020/01/14、Windows 8.1:2023/01/10)まで大きなトラブルがないことを願いたいものです。
参考:
Windows 7 および Windows 8.1 のサービス モデルをさらにシンプルに – 日本のセキュリティチーム
Windows 7 および Windows 8.1 のサービス モデル変更についての追加情報 – 日本のセキュリティチーム
.NET Framework 用の月例のロールアップの導入について – 日本のセキュリティチーム
MS16-118
MS16-119
MS16-120
MS16-121
MS16-122
MS16-123
MS16-124
MS16-125
MS16-126
MS16-127
今月(2016/10)からWindows 7/Windows 8.1の更新プログラムがWindows(Security Only Quality UpdateまたはSecurity Monthly Quality Rollup)と.NET Framework(Security UpdateまたはSecurity and Quality Rollup)についてロールアップモデルに移行しています。Officeも2013以降は基本的にClickOnceですので、Windows 7/Windows 8.1/Windows 10については個別の更新プログラムを適用するのはWord/Excel ViewerやCompatibility Packなど限られたものだけになります。複数の更新プログラムをまとめることについては以前失敗して元に戻したりしていますが、EOL(Windows 7 SP1:2020/01/14、Windows 8.1:2023/01/10)まで大きなトラブルがないことを願いたいものです。
参考:
Windows 7 および Windows 8.1 のサービス モデルをさらにシンプルに – 日本のセキュリティチーム
Windows 7 および Windows 8.1 のサービス モデル変更についての追加情報 – 日本のセキュリティチーム
.NET Framework 用の月例のロールアップの導入について – 日本のセキュリティチーム
2016年10月1日
2016/10開催のセミナー
- Web Seminar
- 2016/10/18 16:00-18:30(JST) Webセミナー「Delphi / C++Builder アプリケーション 移行のポイント」
- 2016/10/24 17:00-17:30(JST) Delphi / C++Builder Starter チュートリアルシリーズ シーズン1『わずかなプログラミングで完成! 最初の一歩から始めてゲームを作ろう!』第1回「無料で始めよう アプリ作成」
- 2016/10/31 17:00-17:30(JST) Delphi / C++Builder Starter チュートリアルシリーズ シーズン1『わずかなプログラミングで完成! 最初の一歩から始めてゲームを作ろう!』第2回「ユーザーインターフェース パーツ基礎」
- Live Seminar
2016年9月28日
2016年9月19日
RAD Studio/Delphi/C++Builder 10.1 Berlin Update 1
RAD Studio/Delphi/C++Builder 10.1 BerlinのUpdate 1がリリースされています。
30615 Delphi and C++Builder 10.1 Berlin ISO (includes Update 1)
30613 RAD Studio 10.1 Berlin Web Install (including Update 1)
Subscription Update 1 - RAD Studio (en)
RAD Studio 10.1 Berlin Subscription Update 1 における不具合修正リスト (en)
RAD Studio Berlin 10.1 Update 1 Available
10.1 Berlin Subscription Update 1 の入手方法
RAD Studio Berlin 10.1 Update 1 提供開始![JAPAN]
Berlin10.1 Update1 へのアップデート手順 [JAPAN]
RAD Studio Berlin Update1 では macOS Sierra や iOS10 向けアプリのビルドに対応しました [JAPAN]
RAD Studio10.1 Berlin Update1 で iPhone7Plus 向けにアプリケーションのビルドを行ってみる [JAPAN]
Berlin 10.1 Update 1 追加機能:Listview - DynamicAppearance 使用時のオートフィルター検索ボックス対応
BERLIN 10.1 UPDATE 1 追加機能:iOS上でのTGrid の iOS ネイティブプラットフォームレンダリング対応 [JAPAN]
BERLIN 10.1 UPDATE 1 追加機能:IoTデバイス向けの新しいコンポーネントが追加されました [JAPAN]
Update 1の適用はRTMのアンインストール後の再インストールになります。移行ツール(Migration Tool, migrationtool.exe)を使用して現在の設定を移行することが推奨されています。また有効なUpdate Subscriptionが必要です(Starter SKUの扱いはよくわかりませんが)。
30615 Delphi and C++Builder 10.1 Berlin ISO (includes Update 1)
30613 RAD Studio 10.1 Berlin Web Install (including Update 1)
Subscription Update 1 - RAD Studio (en)
RAD Studio 10.1 Berlin Subscription Update 1 における不具合修正リスト (en)
RAD Studio Berlin 10.1 Update 1 Available
10.1 Berlin Subscription Update 1 の入手方法
RAD Studio Berlin 10.1 Update 1 提供開始![JAPAN]
Berlin10.1 Update1 へのアップデート手順 [JAPAN]
RAD Studio Berlin Update1 では macOS Sierra や iOS10 向けアプリのビルドに対応しました [JAPAN]
RAD Studio10.1 Berlin Update1 で iPhone7Plus 向けにアプリケーションのビルドを行ってみる [JAPAN]
Berlin 10.1 Update 1 追加機能:Listview - DynamicAppearance 使用時のオートフィルター検索ボックス対応
BERLIN 10.1 UPDATE 1 追加機能:iOS上でのTGrid の iOS ネイティブプラットフォームレンダリング対応 [JAPAN]
BERLIN 10.1 UPDATE 1 追加機能:IoTデバイス向けの新しいコンポーネントが追加されました [JAPAN]
Update 1の適用はRTMのアンインストール後の再インストールになります。移行ツール(Migration Tool, migrationtool.exe)を使用して現在の設定を移行することが推奨されています。また有効なUpdate Subscriptionが必要です(Starter SKUの扱いはよくわかりませんが)。
2016年9月14日
2016年9月11日
[書籍]C++によるプログラミングの原則と実践
紀伊國屋書店新宿本店でProgramming: Principles and Practice Using C++ (2nd Edition) (amazon(US))の翻訳である
C++によるプログラミングの原則と実践 (amazon)/Bjarne Stroustrup著/株式会社クイープ、遠藤美代子訳/江添亮監修/KADOKAWA/ISBN 978-4-04-893051-2/7,560円
を購入。
C++によるプログラミングの原則と実践 (amazon)/Bjarne Stroustrup著/株式会社クイープ、遠藤美代子訳/江添亮監修/KADOKAWA/ISBN 978-4-04-893051-2/7,560円
を購入。
2016年9月1日
2016/09開催のセミナー
- Web Seminar
- 2016/09/01 16:00-17:00(JST) Webセミナー「C++ Boot Camp」Day 4「C++Builderモバイルアプリ開発事始め」
- 2016/09/12 16:00-17:00(JST) Webセミナー「Delphi Boot Camp」Day 1「Delphiで作るはじめてのアプリケーション」
- 2016/09/13 16:00-17:00(JST) Webセミナー「Delphi Boot Camp」Day 2「DelphiでUI設計のポイントを学ぼう」
- 2016/09/14 16:00-17:00(JST) Webセミナー「Delphi Boot Camp」Day 3「Delphiプログラミングを学ぼう」
- 2016/09/15 16:00-17:00(JST) Webセミナー「Delphi Boot Camp」Day 4「Delphiモバイルアプリ開発事始め」
- Live Seminar
2016年8月31日
[書籍]C++プライマー 第5版
紀伊國屋書店新宿本店でC++ Primer, 5th Edition (amazon (US))の翻訳である
C++プライマー 第5版 (amazon)/Stanley B. Lippman、Josée LaJoie、Barbara E. Moo著/株式会社クイープ訳/神林靖監訳/翔泳社/ISBN 9784798143002/8,424円
を購入。
C++プライマー 第5版 (amazon)/Stanley B. Lippman、Josée LaJoie、Barbara E. Moo著/株式会社クイープ訳/神林靖監訳/翔泳社/ISBN 9784798143002/8,424円
を購入。
2016年8月15日
2016年8月10日
2016年8月1日
2016/08開催のセミナー
- Web Seminar
- 2016/08/29 16:00-17:00(JST) Webセミナー「C++ Boot Camp」Day 1「C++Builderで作るはじめてのアプリケーション」
- 2016/08/30 16:00-17:00(JST) Webセミナー「C++ Boot Camp」Day 2「C++BuilderでUI設計のポイントを学ぼう」
- 2016/08/31 16:00-17:00(JST) Webセミナー「C++ Boot Camp」Day 3「C++BuilderでC++言語のパワーを活用しよう」
- Live Seminar
- 2016/08/04 14:00-16:00(JST) ビーコンによる位置検出活用勉強会
2016年7月14日
[書籍][eBook]Delphi Cookbook Second Edition
Packt Publishingで注文した
Delphi Cookbook - Second Edition (amazon US, amazon JP)/Daniele Teti著/Packt Publishing/ISBN 9781785287428/34.99GBP(Print+eBook)
が配送されてきました(今回の配送はDHL/佐川急便で、インドはチェンナイ(旧マドラス)からの発送でした)。2016/07/01に注文して13日目の到着、49.99USD=5,141JPY(暫定、1USD=102.84JPY)5,205JPY(1USD=104.121JPY)でした。
Delphi Cookbook - Second Edition (amazon US, amazon JP)/Daniele Teti著/Packt Publishing/ISBN 9781785287428/34.99GBP(Print+eBook)
が配送されてきました(今回の配送はDHL/佐川急便で、インドはチェンナイ(旧マドラス)からの発送でした)。2016/07/01に注文して13日目の到着、49.99USD=
Embarcadero BCC32C C++コンパイラ 10.1
もうかなり長いことWindowsで動作する無償のC++コンパイラといえばBorland C++ Compiler 5.5(.1)でしたが、C++11(C++0x)はおろかC++98にも完全には対応できておらず、最近はVisual StudioのExpress版やCommunity版に取って代わられた感がありました。しかしC++Builder XE3でC++コンパイラにオープンソースのClang/LLVMが採用されたこともあり、C++コミュニティへのコミットメントの意味でも無償版の登場が待たれていました[要出典]。過去のいくつかの失敗の結果としてBorland/CodeGear/Embarcaderoは無償版に対して非常にネガティブでしたが、2015年のIDERAによる買収で状況が変わったようで、ついに最新のWindows/x86のC++コマンドラインコンパイラ(BCC101、C++Builder 10.1 Berlin相当)が"Free C++ Compiler(C++Compiler - 無料版)"として公開されました(ダウンロードにはEDN(Embarcadero Developer Network)の登録が必要です)。
C++ Compiler - Embarcadero Website
制限事項としては
元ねたはついこの間EmbarcaderoのC++プロダクトマネージャになったDavid MillingtonさんのA new edition of our free C++ compiler。
C++ Compiler - Embarcadero Website
制限事項としては
- Clang/LLVM 3.3.1ベースなのでC++14/C++17にはほとんど対応していない(Clang/LLVMの標準準拠状況はcpprefjpのコンパイラの実装状況を参照)
- ターゲットがWindows/x86に限定されている(C++Builder 10.1 BerlinではWindows/x64、OSX、iOS、Androidもサポートされている)
- IDEがない(コマンドラインコンパイラなので)
- ソースコードがついていない(DinkumwareのSTLヘッダはある)
- デバッガがない(BCC 5.5.1には一応あった)
- VCL/FMXやデータベース関係のライブラリが含まれていない
元ねたはついこの間EmbarcaderoのC++プロダクトマネージャになったDavid MillingtonさんのA new edition of our free C++ compiler。
2016年7月13日
2016年7月5日
2016年7月1日
2016年6月24日
2016年6月23日
RAD Studio/C++Builder 10.1 Berlin June 2016 Beta Hotfix
RAD Studio 10.1 BerlinのBeta Hotfixがリリースされています。RAD ServerとEMSでISAPIを使う場合のライセンスの問題を修正するものとのことです。
30582 June 2016 RAD Studio 10.1 Berlin Beta Hotfix for RAD Server
30582 June 2016 RAD Studio 10.1 Berlin Beta Hotfix for RAD Server
2016年6月21日
InterBase XE7 Update 6
InterBase XE7 Update 6がリリースされています。バージョンは12.0.6.374となっています。
30569 InterBase XE7 Update 6 (12.0.6.374) for Windows
30570 InterBase XE7 Update 6 (12.0.6.374) for Linux
30580 InterBase XE7 Server Ed., Windows/Linux (12.0.6.374, English)
30581 InterBase XE7 Server Ed., Windows/Linux (12.0.6.374, Japanese)
30583 InterBase XE7 ToGo Edition (12.0.6.374), Win/OSX/iOS/Android
InterBase XE7 Update 6 Readme - InterBase (en)
InterBase XE7 Update 6 の新機能 - InterBase (en)
解決された不具合 - InterBase (en)
30569 InterBase XE7 Update 6 (12.0.6.374) for Windows
30570 InterBase XE7 Update 6 (12.0.6.374) for Linux
30580 InterBase XE7 Server Ed., Windows/Linux (12.0.6.374, English)
30581 InterBase XE7 Server Ed., Windows/Linux (12.0.6.374, Japanese)
30583 InterBase XE7 ToGo Edition (12.0.6.374), Win/OSX/iOS/Android
InterBase XE7 Update 6 Readme - InterBase (en)
InterBase XE7 Update 6 の新機能 - InterBase (en)
解決された不具合 - InterBase (en)
2016年6月15日
2016年6月13日
第32回エンバカデロ・デベロッパーキャンプ
本日10:00から第32回エンバカデロ・デベロッパーキャンプが品川シーズンテラスカンファレンスで行われます。今回もUStreamでライブ中継が行われます。またセッション資料は10:00からダウンロード可能になるとのことです。
無事に終了しました。参加者のみなさん、セッションスピーカ、関係者のみなさん、おつかれさまでした。
無事に終了しました。参加者のみなさん、セッションスピーカ、関係者のみなさん、おつかれさまでした。
- 【T1】Delphi/C++テクニカルセッション「今どきのUXを実現するためのRAD Studio新機能活用テクニック」
- 【T2】Delphiテクニカルセッション「開発者が知りたいDelphi実践テクニック!明日から使えるテクニック集」
- 【G3】ジェネラルセッション「エンタープライズ開発サポートを強化するエンバカデロの開発ツール戦略」
- 【T4】Delphi/BeaconFenceケーススタディセッション「ビーコンで位置検出!BeaconFenceによる館内ナビシステム構築事例」
- 【T5】Delphi/C++テクニカルセッション「RAD Studio 10.1 Berlinで始めるIoTアプリケーション構築」
- 【T6】Delphiテクニカルセッション「RAD Studioアプリケーションとバックエンドシステムを接続する」
- 【G7】ライトニングトーク「共有!みんなの開発事例、開発経験、テクニック」
2016年6月1日
2016/06開催のセミナー
- Web Seminar
- Live Seminar
- 2016/06/02 14:00-16:00(JST) ビーコンによる位置検出活用勉強会
- 2016/06/10 10:00-17:30(JST) 第32回 エンバカデロ・デベロッパーキャンプ・イン大阪
- 2016/06/13 10:00-18:00(JST) 第32回 エンバカデロ・デベロッパーキャンプ・イン東京
- 2016/06/24 13:30-15:30(JST) ビーコンによる位置検出活用勉強会(丸紅情報システムズ株式会社大阪支店)
2016年5月30日
IDE Fix Pack 5.95
Andreas HausladenさんのIDE Fix PackがアップデートされてVersion 5.95となっています。RAD Studio/Delphi/C++Builder 10.1 Berlin対応といくつかの新しいパッチが追加されています。
IDE Fix Pack 5.95 for Delphi 10.1 Berlin | Andy's Blog and Tools
IDE Fix Pack 5.95 for Delphi 10.1 Berlin | Andy's Blog and Tools
DDevExtensions 2.84
Andreas HausladenさんのDDevExtensionsがアップデートされてVersion 2.84となっています。RAD Studio 10.1 Berlinへの対応とちょっとした機能追加が行われています。
DDevExtensions and DFMCheck for 10.1 Berlin | Andy's Blog and Tools
ちなみにAndreas Hausladenさんが休暇から戻ったらGoogle+とメールはIDEFixPackの10.1 Berlin対応のリクエストで一杯だったとのこと。
DDevExtensions and DFMCheck for 10.1 Berlin | Andy's Blog and Tools
ちなみにAndreas Hausladenさんが休暇から戻ったらGoogle+とメールはIDEFixPackの10.1 Berlin対応のリクエストで一杯だったとのこと。
2016年5月24日
[書籍]OBJECT PASCAL HANDBOOK
紀伊國屋書店新宿本店でObject Pascal Handbook (CreateSpace, Amazon US)の翻訳である
OBJECT PASCAL HANDBOOK (amazon)/Marco Cantu著/エンバカデロ・テクノロジーズ訳/藤井等監訳/カットシステム/ISBN 978-4-87783-401-2/6,480円
を購入。
OBJECT PASCAL HANDBOOK (amazon)/Marco Cantu著/エンバカデロ・テクノロジーズ訳/藤井等監訳/カットシステム/ISBN 978-4-87783-401-2/6,480円
を購入。
2016年5月17日
2016年5月11日
2016年5月1日
2016年4月28日
RAD Studio/C++Builder 10.1 Berlin April 2016 Hotfix
RAD Studio 10.1 BerlinのHotfixがリリースされています。30530はDataSnapサーバでクライアントから変更の適用または表示の更新を要求すると"Invalid variant type conversion"でエラーになる問題の修正、30531はAndroid 6.0.1のSamsung Galaxy 6 Edgeでデバッグができない問題([RSP-14033] [Debugger | Android]. Can't debug on SAMSUNG GALAXY S7 EDGE with Android 6.0.1)の修正とのことです。
30530 April 2016 RAD Studio 10.1 Berlin Hotfix for DataSnap
30531 April 2016 RAD Studio 10.1 Berlin Hotfix for Samsung Galaxy
30530 April 2016 RAD Studio 10.1 Berlin Hotfix for DataSnap
30531 April 2016 RAD Studio 10.1 Berlin Hotfix for Samsung Galaxy
2016年4月19日
Firebird 3.0
Firebird 3.0がリリースされています。
Firebird: Firebird 3.0 is released
Firebird: Firebird 3.0.0
Firebird 3.0 Release Notes (PDF)
Firebird: Firebird 3.0 is released
Firebird: Firebird 3.0.0
Firebird 3.0 Release Notes (PDF)
RAD Studio/Delphi/C++Builder 10.1 Berlinリリース
RAD Studio/Delphi/C++Builder 10.1 Berlinがリリースされています。
エンバカデロ、マルチデバイス向けビジュアル開発ツールの新リリース「RAD Studio 10.1 Berlin」を本日より販売開始
RAD Studio Berlin ヘルプ (en)
リリース ノート (en)
インストール ノート (en)
新機能 (en)
RAD Studio 10.1 Berlin における不具合修正リスト (en)
30510 RAD Studio 10.1 Berlin ISO (incl. Delphi and C++Builder)
30500 FastReport VCL 5 for RAD Studio, Delphi, C++Builder 10.1 Berlin
30501 FastReport FMX for RAD Studio, Delphi and C++Builder 10.1 Berlin
30499 IP*Works for C++Builder 10.1 Berlin
30498 IP*Works for Delphi 10.1 Berlin
30521 RAD Studio 10.1 Berlin FireMonkey Accessibility Pack
30522 BDE Installer for RAD Studio, Delphi, C++Builder 10.1 Berlin
30492 VCL Premium Styles Pack for RAD Studio 10.1 Berlin
30491 FireMonkey Premium Styles Pack for RAD Studio 10.1 Berlin
30553 Jedi Code Library Snapshot Binary Installer for 10.1 Berlin
30554 Jedi Visual Component Library Snapshot Bin-Installer 10.1 Berlin
2016/05/02追記: web(GetIt)インストーラからインストールすると、新規作成でDelphiプロジェクトのActiveXが表示されないという問題が報告されています。
Where is the ActiveX Project Type for Delphi 10.1 Berlin?
レジストリに誤った値が書き込まれるのが原因のようで、 HKEY_CURRENT_USER\SOFTWARE\Embarcadero\BDS\18.0\Known IDE Packages\Delphi の $(BDS)\Bin\delphicompro240.bpl のデータが"__(Untitled)"となっているものを他と同様に"(Untitled)"に変更すればいいようです。
2016/06/15追記: 2016/06/14付でFastReport FMXが更新されたようです。
エンバカデロ、マルチデバイス向けビジュアル開発ツールの新リリース「RAD Studio 10.1 Berlin」を本日より販売開始
RAD Studio Berlin ヘルプ (en)
リリース ノート (en)
インストール ノート (en)
新機能 (en)
RAD Studio 10.1 Berlin における不具合修正リスト (en)
30510 RAD Studio 10.1 Berlin ISO (incl. Delphi and C++Builder)
30500 FastReport VCL 5 for RAD Studio, Delphi, C++Builder 10.1 Berlin
30501 FastReport FMX for RAD Studio, Delphi and C++Builder 10.1 Berlin
30499 IP*Works for C++Builder 10.1 Berlin
30498 IP*Works for Delphi 10.1 Berlin
30521 RAD Studio 10.1 Berlin FireMonkey Accessibility Pack
30522 BDE Installer for RAD Studio, Delphi, C++Builder 10.1 Berlin
30492 VCL Premium Styles Pack for RAD Studio 10.1 Berlin
30491 FireMonkey Premium Styles Pack for RAD Studio 10.1 Berlin
30553 Jedi Code Library Snapshot Binary Installer for 10.1 Berlin
30554 Jedi Visual Component Library Snapshot Bin-Installer 10.1 Berlin
2016/05/02追記: web(GetIt)インストーラからインストールすると、新規作成でDelphiプロジェクトのActiveXが表示されないという問題が報告されています。
Where is the ActiveX Project Type for Delphi 10.1 Berlin?
レジストリに誤った値が書き込まれるのが原因のようで、 HKEY_CURRENT_USER\SOFTWARE\Embarcadero\BDS\18.0\Known IDE Packages\Delphi の $(BDS)\Bin\delphicompro240.bpl のデータが"__(Untitled)"となっているものを他と同様に"(Untitled)"に変更すればいいようです。
2016/06/15追記: 2016/06/14付でFastReport FMXが更新されたようです。
2016年4月14日
[書籍][オンデマンド版]ハッカーのたのしみ
紀伊國屋書店 新宿南店でHacker's Delight (informIT, amazon(US))の翻訳である
[オンデマンド版]ハッカーのたのしみ (amazon)/Henry S. Warren, Jr.著/滝沢徹、鈴木貢、赤池英夫、葛毅、藤波順久、玉井浩訳/エスアイビー・アクセス/ISBN 978-4-434-20159-2/3,672円
を購入。
なお原著のほうは2012年に2nd Edition (informIT, amazon(US))が出ているようです。また日本語版の出版元であるエスアイビー・アクセスのwebページはIIJ4Uのサービス終了に伴い参照できなくなっています(アーカイブ)。発売元の星雲社はこのご時勢にwebページを持っていない(wikipedia)という昔気質の会社のようですし、オンラインの情報があまりなくてもったいない感じの本ですね…。
[オンデマンド版]ハッカーのたのしみ (amazon)/Henry S. Warren, Jr.著/滝沢徹、鈴木貢、赤池英夫、葛毅、藤波順久、玉井浩訳/エスアイビー・アクセス/ISBN 978-4-434-20159-2/3,672円
を購入。
なお原著のほうは2012年に2nd Edition (informIT, amazon(US))が出ているようです。また日本語版の出版元であるエスアイビー・アクセスのwebページはIIJ4Uのサービス終了に伴い参照できなくなっています(アーカイブ)。発売元の星雲社はこのご時勢にwebページを持っていない(wikipedia)という昔気質の会社のようですし、オンラインの情報があまりなくてもったいない感じの本ですね…。
2016年4月13日
2016年4月1日
登録:
投稿 (Atom)