今日はMicrosoftのセキュリティアップデートの日です。
MS15-079
MS15-080
MS15-081
MS15-082
MS15-083
MS15-084
MS15-085
MS15-086
MS15-087
MS15-088
MS15-089
MS15-090
MS15-091
MS15-092
2015年8月12日
2015年8月5日
IDE Fix Pack 4.4 for Delphi 2007 Windows 10 Edition
Andreas HausladenさんのIDE Fix Pack for Delphi 2007のWindows 10対応版がリリースされています。Windows 7およびそれ以前では4.4を、Windows 8/8.1では4.3を、Windows 10では4.4 Windows 10 Editionを、というようにWindowsのバージョンによって対応が分かれているので注意が必要です。
IDE Fix Pack 4.4 for Delphi 2007 – Windows 10 Edition | Andy's Blog and Tools
IDE Fix Pack 4.4 for Delphi 2007 – Windows 10 Edition | Andy's Blog and Tools
2015年8月4日
IDE Fix Pack 5.93
Andreas HausladenさんのIDE Fix PackがアップデートされてVersion 5.93となっています。今回はWindows 10対応(Windows 10が関数アライメントのパディングにNOPではなくINT3を使うことに対応)だけとのことです。
IDE Fix Pack 5.93 – Windows 10 support | Andy's Blog and Tools
IDE Fix Pack 5.93 – Windows 10 support | Andy's Blog and Tools
Category:
Add-ons,
Delphi 2009,
Delphi 2010,
Delphi XE,
Delphi XE2,
Delphi XE3,
Delphi XE4,
Delphi XE5,
Delphi XE6,
Delphi XE7,
Delphi XE8,
Updates
at
6:25:00
0
Comments
2015年8月1日
2015/08開催のセミナー
- Web Seminar
- 2015/08/04 16:30-17:00(JST) FireDAC Webセミナー 第2回 FireDACプログラミング基礎
- 2015/08/06 15:00-15:30(JST) BeaconFence ファーストインプレッションWebセミナー
- 2015/08/11 16:30-17:00(JST) FireDAC Webセミナー 第3回 応用FireDAC
- Live Seminar
- 2015/08/05 15:30-17:00(JST) 技術研修セミナー「旧Delphi/C++アプリケーションを最新に!移行のテクニック」
- 2015/08/07 13:30-17:00(JST) 「スマホアプリ作成体験サマーキャンプ」ゲーム編
- 2015/08/20 13:30-17:00(JST) 「スマホアプリ作成体験サマーキャンプ」デバイス活用編
- 2015/08/21 15:30-17:00(JST) 「RAD Studioで始めるマルチデバイス開発ワークショップ」
2015年7月27日
2015年7月21日
InterBase XE7 Update 4
InterBase XE7 Update 4(12.0.4.357)がリリースされています。
30311 InterBase XE7 Update 4 (12.0.4.357) for Windows for English, Japanese
30316 InterBase XE7 Update 4 (12.0.4.357) for Linux for English, Japanese
30312 InterBase XE7 Server Ed., Windows/Linux (12.0.4.357, English)
30321 InterBase XE7 Server Ed., Windows/Linux (12.0.4.357, Japanese)
30066 InterBase XE7 (12.0.4.357) Developer Edition, English
30090 InterBase XE7 (12.0.4.357) Developer Edition, Japanese
30319 InterBase XE7 ToGo Edition (12.0.4.357), Win/OSX/iOS/Android
InterBase XE7 Update 4 Readme (en)
30311 InterBase XE7 Update 4 (12.0.4.357) for Windows for English, Japanese
30316 InterBase XE7 Update 4 (12.0.4.357) for Linux for English, Japanese
30312 InterBase XE7 Server Ed., Windows/Linux (12.0.4.357, English)
30321 InterBase XE7 Server Ed., Windows/Linux (12.0.4.357, Japanese)
30066 InterBase XE7 (12.0.4.357) Developer Edition, English
30090 InterBase XE7 (12.0.4.357) Developer Edition, Japanese
30319 InterBase XE7 ToGo Edition (12.0.4.357), Win/OSX/iOS/Android
InterBase XE7 Update 4 Readme (en)
2015年7月15日
2015年7月8日
7th anniversary
この1年間(2014/07/08-2015/07/07)のエントリは71で、週平均1.4弱でした。相変わらずお知らせばっかりでしたね。続いてアクセス解析の統計情報から月別ページビュー(PV)を。
2014/07: 4,460
2014/08: 4,002
2014/09: 4,259
2014/10: 4,087
2014/11: 3,752
2014/12: 3,876
2015/01: 3,500
2015/02: 3,431
2015/03: 4,314
2015/04: 4,882
2015/05: 4,209
2015/06: 4,434
2014/07-2015/06合計: 49,206
ついに50,000PV/yearを切ってしまいましたが、最近だと書籍関係のまとめが好評のようです。
最近のDelphi関係の話題といえばやはりアップデートサブスクリプションの導入でしょう。開発ツールに(売り切りではなく)いわゆるサブスクリプションモデルは適合しにくいと思うんですけれども、そのあたりは(いかにもアメリカンにアバウトな感じで)修正しながら、ということになるようです。現状のアップデートサブスクリプションモデルのもとでは、アップデートサブスクリプションに入るか、入らないのであれば使いたいバージョンの次のバージョンが出たところでアップグレードする(買ったバージョンではなく直前のバージョンを使う)、ということになるでしょうか。歪んでますねぇ。
ここのところ仕事もオーバフロー寸前のところで動いていてなかなか記事も書けないのですが、直近では久しぶりに新規の案件が入ってXE8にアップグレードしましたし、新たにDataSnapを本格的に使うので、このあたりでまたアウトプットを出していければと思っています。あとは名古屋でやるという勉強会的なイベントに行ければいいなぁ。また1年間お付き合いください。
2014/07: 4,460
2014/08: 4,002
2014/09: 4,259
2014/10: 4,087
2014/11: 3,752
2014/12: 3,876
2015/01: 3,500
2015/02: 3,431
2015/03: 4,314
2015/04: 4,882
2015/05: 4,209
2015/06: 4,434
2014/07-2015/06合計: 49,206
ついに50,000PV/yearを切ってしまいましたが、最近だと書籍関係のまとめが好評のようです。
最近のDelphi関係の話題といえばやはりアップデートサブスクリプションの導入でしょう。開発ツールに(売り切りではなく)いわゆるサブスクリプションモデルは適合しにくいと思うんですけれども、そのあたりは(いかにもアメリカンにアバウトな感じで)修正しながら、ということになるようです。現状のアップデートサブスクリプションモデルのもとでは、アップデートサブスクリプションに入るか、入らないのであれば使いたいバージョンの次のバージョンが出たところでアップグレードする(買ったバージョンではなく直前のバージョンを使う)、ということになるでしょうか。歪んでますねぇ。
ここのところ仕事もオーバフロー寸前のところで動いていてなかなか記事も書けないのですが、直近では久しぶりに新規の案件が入ってXE8にアップグレードしましたし、新たにDataSnapを本格的に使うので、このあたりでまたアウトプットを出していければと思っています。あとは名古屋でやるという勉強会的なイベントに行ければいいなぁ。また1年間お付き合いください。
2015年7月1日
2015/07開催のセミナー
- Web Seminar
- 2015/07/22 17:00-18:00(JST) デベロッパーTV「RAD Studio XE8 新機能」
- 2015/07/23 16:30-17:00(JST) FireDAC Webセミナー 第1回 はじめてのFireDAC
- Live Seminar
- 2015/07/08 15:30-17:00(JST) 「RAD Studioで始めるマルチデバイス開発ワークショップ」
- 2015/07/16 15:30-17:00(JST) 技術研修セミナー「旧Delphi/C++アプリケーションを最新に!移行のテクニック」
2015年6月28日
2015年6月24日
DataSnapサーバまとめ
DataSnapサーバを作るにあたって、ヘルプのDataSnap アプリケーションの開発あたりに載っていなかったり、載っていても気をつけたほうがいいと個人的に思ったことをまとめました(ユニットやクラス、あるいはそのリンクはDelphi XE8のものです)。
サーバメソッドでサポートされているデータ型
- DataSnapの公開サーバメソッドでデータの受け渡しに使うことができるデータ型は以下のとおり(*がついているものはドキュメントにないもの)。
- 組込型
- Boolean
- SmallInt
- LongInt *
- Integer
- Int64
- Single
- Double
- TDateTime *
- Currency *
- AnsiString
- WideString *
- String
- OleVariant *
- System.JSONユニットで定義されている型
- TJSONValueから派生した全てのクラス
- Data.DBXCommonユニットで定義されている型
- TDBXTime
- TDBXDate
- TDBXStringValue *
- TDBXWideStringValue
- TDBXAnsiStringValue
- TDBXWideCharsValue *
- TDBXAnsiCharsValue *
- TDBXUInt8Value
- TDBXInt8Value
- TDBXInt16Value
- TDBXInt32Value
- TDBXInt64Value
- TDBXSingleValue
- TDBXDoubleValue
- TDBXBcdValue
- TDBXTimeValue
- TDBXDateValue
- TDBXTimeStampValue
- TDBXBooleanValue
- TDBXReaderValue
- TDBXStreamValue
- コレクション
- TDBXReader *
- TDataSet *
- TParams *
- TStream *
- コネクション
- 組込型
- これ以外の型が含まれるメソッドはクライアント側のTSQLConnection上で"DataSnap クライアント クラスの生成"を実行してもサーバメソッドプロキシに含まれなくなるので注意が必要です。そのような型の値やクラスインスタンスをDataSnapで扱うときは組込型に置き換えたり(たとえば列挙型ならOrdで序数にしたりGetEnumNameで文字列化する、など)、マーシャリング、アンマーシャリングという仕組みを使ってJSONオブジェクト経由で受け渡す必要があります。詳細はDataSnap サーバー メソッドの公開を参照。
- DataSnapの公開サーバメソッドでデータの受け渡しに使うことができるデータ型は以下のとおり(*がついているものはドキュメントにないもの)。
クラスインスタンスのマーシャリング/アンマーシャリング
- Delphiのオブジェクト(クラスインスタンス)は、基本的に送信側でTJSONMarshalのMarshalメソッドでTJSONValueにマーシャリング(変換)したものを送信し、受信側では受信したTJSONValueをTJSONUnMarshalのUnmarshalメソッドでアンマーシャリング(逆変換)して元のクラスのインスタンスに戻します(アンマーシャリングの結果の型はTObjectなのでasで本来のクラスにキャストします)。
- クラスインスタンスのリスト(TObjectListやTObjectList<T>)はそのままではマーシャリング/アンマーシャリングできないため、
のようにそれぞれの要素をマーシャリングしたものをTJSONArrayにAddElementメソッドで追加していって、そのTJSONArrayを受け渡して、var Values: TJSONArray; Item: TFoo; List: TObjectList<TFoo>; begin ... for Item in List do begin Values.AddElement(Marshal.Marshal(Item)); end;
TJSONArrayのItems[]プロパティ(またはenumerator)で取り出したJSONValueをアンマーシャリングする、という方法が考えられます。var Values: TJSONArray; Item: TJSONValue; List: TObjectList<TFoo>; begin ... for Item in Values do begin List.Add(UnMarshal.Unmarshal(Item) as TFoo); end; - RTL経由で適切にシリアライズできないようなクラスのメンバを扱う場合は、マーシャラ(TJSONMarshal)およびアンマーシャラ(TJSONUnMarshal)に特定の型またはメンバに対応する変換/逆変換処理をRegisterConverter、RegisterReverterで登録して処理させる、ということになります。詳細はユーザー オブジェクトのシリアル化を参照。
TJSONValueとその派生クラスについて
- DelphiでJSON形式の値を扱うときにはTJSONValueの派生クラスを使用します。
- TJSONNullはJSONのnull値に対応します。
- TJSONFalse/TJSONTrueはJSONの真偽値(false/true)に対応します。
- TJSONStringはJSONの文字列値に対応します。
- TJSONNumberはJSONの数値(整数、浮動小数点数)に対応します。
- TJSONArrayはJSONの配列("JSON形式の値"の配列)に対応します。
- TJSONObjectはJSONのオブジェクト("文字列のキーと値のペア"の順序付けされていない集合)に対応します。"文字列のキーと値のペア"はTJSONPairとして実装されています。ペアはAddPairメソッドで追加し、逆に文字列のキーからペアを取り出すにはGetメソッドを使用します。
- DelphiでJSON形式の値を扱うときにはTJSONValueの派生クラスを使用します。
サーバクラスのインスタンスのライフサイクルについて
- サーバクラスのライフサイクルは、RESTサーバではSessionかInvocation、それ以外ではSessionとするのが普通でしょう。詳細はサーバー クラス インスタンスのライフサイクルを参照。
セッションの管理について
- サーバメソッド内でセッションを取得するときはTDSSessionManager.GetThreadSessionメソッドを使用します。またセッションに関する操作にはSessionIdが必要になります。詳細はサーバー側セッション管理を参照。
- 全てのセッションに対して処理を行いたいときはTDSSessionManagerのForEachSessionメソッドを使用して、
とします。TDSSessionManager.Instance.ForEachSession( procedure (const Session: TDSSession) begin // end); - セッションごとにデータを保持させたいときは、TDSSessionのPutObject、GetObject、HasObject、RemoveObjectの各メソッドで特定のキー(文字列)と結びつける形でTObjectのインスタンスの保持、取得、問い合わせ、削除ができます。保持させたデータはセッションが所有しており、セッションが破棄されるときに解放されます。
- セッションが生成、破棄されるごとに処理を行いたい場合はTDSSessionManagerのシングルトンインスタンスであるInstanceのAddSessionEventでイベント(イベントハンドラや無名メソッド)を登録します(RemoveSessionEventで登録を削除することもできます)。
TDSSessionManager.Instance.AddSessionEvent( procedure(Sender: TObject; const EventType: TDSSessionEventType; const Session: TDSSession) begin case EventType of SessionCreate: begin // Session is created end; SessionClose: begin // Session is closed end; end end);
重量コールバック(クライアントコールバック)の管理
- TDSCallbackTunnelManagerのAddTunnelEvent、RemoveTunnelEventメソッドでトンネルおよびコールバックの登録、解除を通知するコールバック関数を登録、解除できます。
TDSCallbackTunnelManager.Instance.AddTunnelEvent( procedure(Sender: TObject; const EventItem: TDSCallbackTunnelEventItem) begin case EventItem.EventType of TunnelCreate: begin // Tunnel is created end; TunnelClose: begin // Tunnel is closed end; TunnelClosedByServer: begin // Tunnel is closed by user end; CallbackAdded: begin // Callback is added end; CallbackRemoved: begin // Callback is removed end; end; end);
- TDSCallbackTunnelManagerのAddTunnelEvent、RemoveTunnelEventメソッドでトンネルおよびコールバックの登録、解除を通知するコールバック関数を登録、解除できます。
TCP/IP接続を監視
- TDSTCPServerTransportのOnConnect、OnDisconnectイベントでTCP/IP接続の確立と切断を監視することができます。詳細はDataSnap 用 TCP/IP 接続の監視と制御を参照。
2015年6月19日
RAD Studio/Delphi/C++Builder XE8 Update 1
RAD Studio/Delphi/C++Builder XE8のUpdate 1がリリースされています。
30278 General Update 1 for RAD Studio, Delphi, and C++Builder XE8
30282 Subscription Update 1 for RAD Studio, Delphi, and C++Builder XE8
30284 Delphi and C++Builder XE8 ISO (includes Subscription Update 1)
30304 Boost for RAD Studio & C++Builder XE8 Subscription Update 1
XE8 Update 1 のリリース ノート - RAD Studio (en)
RAD Studio XE8, Delphi XE8, C++Builder XE8 の Subscription Update 1における不具合修正リスト
Subscription Update 1 Fix List for RAD Studio XE8, Delphi XE8, and C++ Builder XE8
XE8からはUpdate Subscriptionに加入しているかどうかで受け取れるバグフィックス、アップデートが異なる、ということになりましたが、XE8 Update 1もGeneral Update 1とSubscription Update 1で内容に差があります。General Update 1には" Community toolbar"、"iOS 8 simulator fix"、"Several files missing from the initial XE8 delivery"のみが含まれ、"Favorites in welcome page"、"Fast search of Bluetooth LE devices"、"Improved robustness of IDE productivity features"、"Improvements in multi-device previews"はSubscription Update 1のみ、となっています。
2015/07/08追記: C++Builder XE8のBoost 1.39用のヘッダファイルの更新(30304)が追加されています。
30278 General Update 1 for RAD Studio, Delphi, and C++Builder XE8
30282 Subscription Update 1 for RAD Studio, Delphi, and C++Builder XE8
30284 Delphi and C++Builder XE8 ISO (includes Subscription Update 1)
30304 Boost for RAD Studio & C++Builder XE8 Subscription Update 1
XE8 Update 1 のリリース ノート - RAD Studio (en)
RAD Studio XE8, Delphi XE8, C++Builder XE8 の Subscription Update 1における不具合修正リスト
Subscription Update 1 Fix List for RAD Studio XE8, Delphi XE8, and C++ Builder XE8
XE8からはUpdate Subscriptionに加入しているかどうかで受け取れるバグフィックス、アップデートが異なる、ということになりましたが、XE8 Update 1もGeneral Update 1とSubscription Update 1で内容に差があります。General Update 1には" Community toolbar"、"iOS 8 simulator fix"、"Several files missing from the initial XE8 delivery"のみが含まれ、"Favorites in welcome page"、"Fast search of Bluetooth LE devices"、"Improved robustness of IDE productivity features"、"Improvements in multi-device previews"はSubscription Update 1のみ、となっています。
2015/07/08追記: C++Builder XE8のBoost 1.39用のヘッダファイルの更新(30304)が追加されています。
2015年6月16日
InterBase XE7 Update 3
InterBase XE7 Update 3(12.0.3.337)がリリースされています。いくつかの不具合が修正されています。またDeveloper EditionはUpdate 3適用済のものに置き換えられています。
30271 InterBase XE7 Update 3 (12.0.3.337) for Windows
30272 InterBase XE7 Update 3 (12.0.3.337) for Linux
30275 InterBase XE7 Server Ed., Windows/Linux (12.0.3.337, English)
30274 InterBase XE7 Server Ed., Windows/Linux (12.0.3.337, Japanese)
30273 InterBase XE7 ToGo Edition (12.0.3.337), Win/OSX/iOS/Android
30066 InterBase XE7 (12.0.3.337) Developer Edition, English
30090 InterBase XE7 (12.0.3.337) Developer Edition, Japanese
InterBase XE7 Update 3 Readme - InterBase (en)
30271 InterBase XE7 Update 3 (12.0.3.337) for Windows
30272 InterBase XE7 Update 3 (12.0.3.337) for Linux
30275 InterBase XE7 Server Ed., Windows/Linux (12.0.3.337, English)
30274 InterBase XE7 Server Ed., Windows/Linux (12.0.3.337, Japanese)
30273 InterBase XE7 ToGo Edition (12.0.3.337), Win/OSX/iOS/Android
30066 InterBase XE7 (12.0.3.337) Developer Edition, English
30090 InterBase XE7 (12.0.3.337) Developer Edition, Japanese
InterBase XE7 Update 3 Readme - InterBase (en)
2015年6月10日
2015年6月7日
[書籍]C#実践開発手法
紀伊國屋書店新宿本店でAdaptive Code via C# (amazon.com)の翻訳である
C#実践開発手法 (amazon)/Gary McLean Hall著/クイープ訳/日経BP/ISBN 978-4-82229-847-0/5,400円
を購入。
C#実践開発手法 (amazon)/Gary McLean Hall著/クイープ訳/日経BP/ISBN 978-4-82229-847-0/5,400円
を購入。
[書籍]改訂新版 C++ポケットリファレンス
紀伊國屋書店新宿本店でC++ポケットリファレンスのC++14対応改訂版の
改訂新版 C++ポケットリファレンス (amazon)/高橋晶、安藤敏彦、一戸優介、楠田真矢、道化師、湯朝剛介著/技術評論社/ISBN978-4-7741-7408-2/3,218円
を購入。
改訂新版 C++ポケットリファレンス (amazon)/高橋晶、安藤敏彦、一戸優介、楠田真矢、道化師、湯朝剛介著/技術評論社/ISBN978-4-7741-7408-2/3,218円
を購入。
2015年6月1日
2015/06開催のセミナー
- Web Seminar
- 2015/06/10 17:00-18:00(JST) デベロッパーTV 「第30回デベロッパーキャンプ開催レポート」
- Live Seminar
- 2015/06/09 15:30-17:00(JST) 「RAD Studioで始めるマルチデバイス開発ワークショップ」
- 2015/06/18 15:30-17:00(JST) 技術研修セミナー「旧Delphi/C++アプリケーションを最新に!移行のテクニック」
2015年5月21日
第30回エンバカデロ・デベロッパーキャンプ
本日10:00から第30回エンバカデロ・デベロッパーキャンプ・イン東京がベルサール新宿グランドコンファレンスセンターで行われます。セッション資料は
ダウンロード | デベロッパーキャンプ
からダウンロードできるようになる予定です(2015/05/21 10:00以降)。またUStreamで全セッションの中継が予定されています(CH1がG/Fセッション、CH2がEセッション)。
無事(?)終了しました。セッションスピーカのみなさん、関係者のみなさん、おつかれさまでした。
2015/05/25追記: 早くもセッションリプレイの公開が始まっています。
第30回 エンバカデロ・デベロッパーキャンプ資料ダウンロード
ダウンロード | デベロッパーキャンプ
からダウンロードできるようになる予定です(2015/05/21 10:00以降)。またUStreamで全セッションの中継が予定されています(CH1がG/Fセッション、CH2がEセッション)。
無事(?)終了しました。セッションスピーカのみなさん、関係者のみなさん、おつかれさまでした。
2015/05/25追記: 早くもセッションリプレイの公開が始まっています。
- 【G1】ケーススタディセッション ユーザーショーケース「C++Builderを用いたマルチOS対応一般コンシューマ向けスマートフォンアプリ開発事例」
- 【G2】ジェネラルセッション「IoT時代のマルチデバイス開発環境」
- 【F3】テクニカルセッション「業務システムにモバイルを!実践エンタープライズモバイル開発プロジェクト」
- 【E3】Delphi/C++テクニカルセッション「移行プロジェクトでもモバイル開発でも必須!今からでも間に合うデータモジュール活用法」
- 【F4】Delphi/C++テクニカルセッション「RAD Studio XE8 の新機能とその活用法」
- 【E4】Delphi/C++テクニカルセッション「今さら聞けない!? FireDAC入門 ~ オンメモリーデータベース編」
- 【F5】Delphi/C++テクニカルセッション「RAD Studioで始めるモバイル開発 ~ コンポーネントで簡単入門!勘所も押さえよう」
- 【E5】Delphiテクニカルセッション「DelphiによるEnterpriseアプリケーション開発 ~ 当社パッケージの内部構造、開発方法ご紹介」
- 【G6】ライトニングトーク「共有!みんなの開発事例、開発経験、テクニック」
第30回 エンバカデロ・デベロッパーキャンプ資料ダウンロード
登録:
投稿 (Atom)