Friday, January 30, 2015

RAD Studio Update Subscription

Embarcadero is launching the new Update Subscription program, a version of the old Maintenance and Support on steroids.

Embarcadero is launching the new Update Subscription program for the RAD Studio family of products, a version of the old Maintenance and Support on steroids. The new program (described in details at www.embarcadero.com/products/rad-studio/update-subscription ) is an addition to the perpetual product license and not a license subscription, exactly as the maintenance was. In other words, you buy the license and also enter this subscription to future updates and more. Not only this is similar to the Maintenance (which it is going to replace), but it also has basically the same price. So why a new name? Because a few things are changing:

  • On-going maintenance, that is updates and hot fixes for versions before the last so you can keep working on a version and have critical bugs fixes for much longer time (up to 2 years) than today
  • Early access to hot fixes, updates, and new releases (before they are final and public)
  • Exclusive bonus features (not restricted to special offers) and technical content (in a similar way of the language class I did last December for current users only)

This will be added on top of the core features, of course, that is getting each new version released while the subscription remains active and 3 support incidents. Of course, the Update Subscription makes most sense (and saves you money) in the long run, if you keep it renewing for a few years. There are already many RAD, Delphi, and C++Builder developers on maintenance, we'd really want this new subscription to become universal.

So on one side we plan offering more to developers on the Update Subscription... and on the other side we plan offering less to those not on the program (in terms of bonus features, content, long term hot-fixes and updates, etc). I guess the message should be quite clear. The Update Subscription is a cheap way to stay current, and offers value even if you don't plan immediately embracing new versions with your main projects.

It is not a coincidence that at the same time we are pushing this new subscription, we do have a special offer running to upgrade to XE7 from older versions if you get the Update Subscription, see www.embarcadero.com/radoffer. Finally, it is also a great time to move up to Enterprise, as you can read at www.embarcadero.com/products/rad-studio/enterprise-upgrade (well, adding the Update Subscription at the Enterprise level, of course).





Wednesday, January 28, 2015

Delphi Blogs of the Week (or Month) #25

More a monthly than a weekly roundup of Delphi and RAD Studio related blogs post, news, and more... but a fat one.

More a monthly than a weekly roundup of Delphi and RAD Studio related blogs post, news, and more... but a fat one.

Languages-Related Blog Posts

General Blog Posts

Community, Community

Really Technical Blog Post

About Third Party Controls

And Now Ready for the Nil Debate

Nick started by blogging www.codingindelphi.com/blog/on-the-use-and-acceptance-of-nil/ (with a nice 63 comments). Stefan wrote delphisorcery.blogspot.it/2015/01/never-return-nil-maybe.html. And on Google+ at plus.google.com/+StefanGlienke/posts/WiHbXXCAN2P

Bye, for Now

Tha's all for now. I'll see if I can get back to a more regular (and shorter) list.

 

Friday, January 23, 2015

New Series of RAD Studio Partners Webinars

Besides the current two series of skill sprints, we are hosting another series of short webinars covering third party components... and starting today.

Besides the current two series of skill sprints (including the new one on FireDAC), we are  hosting another series of short webinars covering third party components... and starting today.

Partner Spotlights

Every Friday from today, with two sessions available, we'll host well-known partners, starting with:

  • Raize Software
  • DevExpress
  • TMS Software
  • Fast Reports

More events will be announced for following weeks. Signup at  forms.embarcadero.com/14Q1TechPartnerSpotlights

RAD Studio and AQtime

At the same time, we are also running some longer in-depth webinars with partners. The first, happening in two weeks -- February 4th -- will be focused on SmartBear's AQTime and cover applications optimization at large (the title is "Build High Performance Applications with RAD Studio and AQtime"). I'm preparing an introduction with some technical insight. This is a separate event you can sign up at forms.embarcadero.com/HighPerformanceApps-SmartBear-AQtime.

 

 

 

Wednesday, January 21, 2015

Embarcadero Acquires Castalia and Usertility

I'm very pleased to let you know that Embarcadero has acquired Castalia and Usertility from TwoDesk Software

I'm very pleased to let you know (unless you've already seen the announcement, of course) that Embarcadero has acquired Castalia and Usertility from TwoDesk Software. The official press release is at www.embarcadero.com/press-releases/embarcadero-acquires-castalia-and-usertility-from-twodesk-software.

I'm also quite pleased the deal happened, as this adds two valuable tools to Delphi (and will also get them to C++Builder). One is the Castalia IDE plug-in we've been distributing for free with XE7 and that is bound to become a core IDE feature. The second is Usertility user analytics software, which let's use understand the behavior of the users of your applications. While analytics is a relevant feature on web sites and mobile apps, this tool brings it also to desktop applications, both VCL and FireMonkey. (Notice the press release refers to a FireMonkey version of Usertility, which actually wasn't available in the past but we plan releasing soon).

Notice that Jacob, the author of the tools, will keep working on them and with us, as he is #34ed by the press release: "I intend to stay closely involved in the future direction and delivery of this integration and look forward to bringing these next versions to market with Embarcadero"

For more information about the tools you can refer to www.twodesk.com/castalia/ and www.twodesk.com/usertility/.

XE7 Beta Hotfix for TForm HighQuality on iOS

Another hotfix in beta version for a regression in FireMonkey forms on iOS. The HighQuality setting should now support higher resolution graphic.

Another hotfix in beta version (that is still pending further testing on our side) for a regression in FireMonkey forms on iOS. The HighQuality setting for the TForm.Quality property should now support higher resolution graphic as expected. The issue is only on the iOS platform. Download (only the source code file to be added to your project and only 32 KB) is for registered XE7 users and can be found on CodeCentral at:

cc.embarcadero.com/Item/30115

Meanwhile, the Android Lollipop beta hot fix I discussed here has been updated to include some missing files (like the source code files) at cc.embarcadero.com/item/30110.

 





Tuesday, January 20, 2015

Double Series of Skill Sprints on RAD XE7 and FireDAC, Starting Today

Two series of of Developer Skill Sprints starting today, one general for RAD XE& and another focused on FireDAC and database development.

Two series of of Developer Skill Sprints starting today, one general for RAD XE& and another focused on FireDAC and database development.

Developer Skill Sprints:
Explore the Flexibility of RAD Studio XE7

Live sessions every Tuesday: January 20 - March 24, 2015

It’s the new year and time for more Developer Skill Sprints! Join us for this 10-part series exploring some of the newest features of RAD Studio, Delphi and C++Builder XE7. We'll show you how to use the new revolutionary FireUI multi-device designer, utilize multi-core CPUs with the all new Parallel Programming Library, explore InterBase XE7 change views and much more!

Topics of each session and signup module at forms.embarcadero.com/15Q1DeveloperSkillSprintsWebinarSeries

Developer Skill Sprints:
Heat Up Database Development with FireDAC!

Live sessions every Thursday
January 22 - March 26, 2015

It’s time to make database development fun again! Join us for this special track of Developer Skill Sprints focused on using FireDAC for database development. FireDAC is the Universal Data Access library for developing applications for multiple devices, connected to enterprise databases. In these special sessions, we’ll take you from a beginner to an expert by showing you how to utilize FireDAC in multiple situations.

Topics of each session and signup module at forms.embarcadero.com/15Q1FireDACSkillSprintsWebinarSeries

Improve Your Skills

So this is a great change to attend live to these 20 minutes short and focused sessions, twice a week until the end of the quarter. A lot of value and live Q&A... but also recorded sessions for you to replay if you cannot attend live, or just miss one of the series. Sign up now and start attending this afternoon for the first series and this Thursday for the FireDAc series.

 

Friday, January 9, 2015

Lollipop Hotfix (Beta) for Delphi and C++ Builder XE7

Embarcadero has released a hotfix for RAD XE7 to update the Java JNI bridge support for Android 5

Embarcadero has released a hotfix for RAD XE7 to update the Java JNI bridge support for Android 5. Specifically the issues relate to the exchange of array data between the C++/Delphi side and the Java side, as part of a technology called "JNI bridge". The issue shows up in all versions of Android that use the new ART kernel (that replaces the Dalvik kernel). This new kernel is optional in KitKat (4.4) but it is active by default on Android 5.0 (Lollipop).

A few library calls fail because of this JNI bridge issue, most notably those involving some image memory streams, as reported for example in quality.embarcadero.com/browse/RSP-9738

The hotfix contains all the contents of the lib\android folder (which explains its large size of roughly 1 GB)  and it breaks DCU interface compatibility, so you have to rebuild all projects (and optionally third party components) from the source code for the Android platform.

Notice that instructions (currently) refer to the wrong folders, as by default you have to backup replace the folder

C:\Program Files (x86)\Embarcadero\Studio\15.0\lib\android

The hotfix is available to registered users of RAD Studio XE7, Delphi XE7 and C++Builder XE7 (except non-mobile editions) and Embarcadero All-Access XE and it can be downloaded at:

http://cc.embarcadero.com/item/30110

Wednesday, December 31, 2014

My Year in Cities, 2014

Following a long tradition of this blog, dating back to 2006, here is my year 2014 seen through the cities I've been to, mostly for work, occasionally for vacation.

Following a long tradition of this blog, dating back to 2006 (and continued in 200720082009 201020112012, and 2013)  here is my year 2014 seen through the cities I've been to, mostly for work, occasionally for vacation.

The rule is: Places I've visited in 2014 for at least one night (plus some relevant daily trips), in chronological order . At times, the reason for the trip is listed. In bold are cities I've been to for the first time.

  • Piacenza, Italy (which is where I live)
  • Malta
  • Santa Cruz, California (1)
  • Barcelona, Spain
  • Alicante, Spain
  • Santa Cruz, California (2)
  • Sydney, Australia
  • Melbourne, Australia
  • Auckland, New Zealand
  • Taipei, Taiwan
  • Santa Cruz, California (3)
  • Antibes, France
  • Santa Cruz, California (4)
  • Various locations in Provence, France (on a camping car trip)
  • Gropparello, Piacenza, Italy
  • Maidenhead, UK
  • Bonn, Germany (Delphi Tage)
  • Santa Cruz, California (5)
  • Sao Paulo, Brazil
  • Lucca, Italy (Lucca Comics)
  • Koln (Cologne), Germany (EKON)
  • Antwerp, Belgium (BE-Delphi)
  • Arnhem, Netherlands (SDC Conference)
  • Santa Cruz, California (6)

That's been quite some traveling, even for someone used to it. Let's see what 2015 will bring. Hoping for more family trips, compared to the business ones. Have a great 2015.





Monday, December 29, 2014

Delphi Blogs of the Week #24

Another bi-weekly installment of my weekly column... but making 24 of these posts in 2014 was a good pace and I hope it helped.

Another bi-weekly installment of my weekly column... but making 24 of these posts in 2014 was a good pace and I hope it helped. Anyway, heres comes the last round of the year.

A Prize

  • RAD Studio named "Best of 2014" in the Mobile Star Awards. See the award site and our press release. Well deserved, I'd say, but I'm clearly biased.

Technical Blogs

Third Party

Year End...

Have my personal best wishes, to you and your families, for a great 2015!

 

Wednesday, December 24, 2014

Spelunking Delphi RTL new Features since XE2

What's new in the Delphi (and C++Builder) run time library (or RTL) in XE7, compared to the classic Xe2 version? There is likely way more than you thought!

What's new in the Delphi (and C++Builder) run time library (or RTL) in XE7, compared to the classic Xe2 version? There is likely way more than you thought! While I don't have time to delve into each and every of these new features, this is a summary, based on a direct unit to unit comparison. Another reason to upgrade to XE7 taking advantage of the offers expiring in a week: www.embarcadero.com/radoffer. Now to the actual content...

The RTL in XE7

The Delphi Run-Time Library (or RTL) sees continuous enhancements from version to version. To offer an overview of what’s new in the recent versions, comparing the XE7 version with the XE2 version, I’ve compiled a list of what’s new in the RTL, listing the classes of brand new units (and describing their role) and new classes in existing unit.

New Units for Bluetooth Support

  • System.Bluetooth.pas: This unit has a new architecture for Bluetooth support. Classes include TBluetoothManager, TBluetoothAdapter, TBluetoothDevice, TBluetoothSocket, TBluetoothServerSocket
  • System.Android.Bluetooth.pas, System.Mac.Bluetooth.pas, System.Win.Bluetooth.pas: units implement Bluetooth support, by defining adapters for the specific platform
  • System.Bluetooth.Components.pas: Defines the Bluetooth LE component (TBluetoothLE)

New Units for Device Information Support

  • System.Devices.pas: Core TDeviceInfo structure used at design time by the multi-device designer and at run time for the physical device information
  • System.Android.Devices.pas, System.iOS.Devices.pas, System.Mac.Devices.pas, System.Win.Devices.pas: Units with platform specific device definitions

New Units for Sensors Support

  • System.Sensors.pas: Core sensor classes and architecture like TCustomSensor, TSensorManager, TCustomEnvironmentalSensor, TCustomMotionSensor, TCustomOrientationSensor, TCustomElectricalSensor, TCustomMechanicalSensor, TCustomBiometricSensor, TCustomLightSensor, TCustomScannerSensor, TGeocoder, TGpsStatus,
  • System.Android.Sensors.pas, System.iOS.Sensors.pas, System.Mac.Sensors.pas, System.Win.Sensors.pas: Platform specific sensors code with definitions of TPlatformSensorManager, TPlatformGeocoder, TPlatformGpsStatus and the platform specific sensors definitions
  • System.Sensors.Components.pas: This unit defines the components for various available sensors

New Units With “Moved” Code

  • System.Actions.pas: This unit contains the TBasicAction and TContainedActionList classes that are the core classes for Actions and the TActionList component that were originally in the VCL and are now shared between VCL and FMX.
  • System.JSON.pas: Include s large set of JSON processing classes (TJSONValue and inherited classes like TJSONObject and TJSONArray), previously found in the DBXJSON unit
  • System.NetEncoding.pas: a set of Internet-related encodings, previously found is separate units, spread out in different systems (SOAP, Indy, and so on). Classes in this unit include TBase64Encoding, TURLEncoding, and THTMLEncoding.
  • System.Math.Vectors.pas defines data structures that were originally in FireMonkey: the records TVector, TPoint3D, TMatrix, TVector3D, TMatrix3D, TQuaternion3D and other functions and types

New Units with Mobile Oriented Features

  • System.Messaging.pas: Defines the TMessageManager and TMessage<T> classes, used for example for the Push Notifications.
  • System.PushNotification.pas: Support for mobile push notifications, with TPushService, TPushServiceConnection, TPushServiceManager, and TPushServiceNotification
  • System.StartUpCopy.pas includes basic code to handle deployment of files in bundles of mobile applications

New Units with API Level Wrapping

  • System.Sqlite.pas includes low level SQLite3 database interfaces
  • System.Win.Taskbar.pas: The code behind the the taskbar button component, including the TWinTaskbar class
  • System.Win.TaskbarCore.pas: Core support code of the taskbar button, with classes like TTaskbarHandler, TPreviewClipRegion, TThumbButtonActionLink, and TThumbBarButtonListBase
  • There are 62 new units in the new android subfolder, all starting with Androidapi. I’m not even going to list them here, like those in the following groups
  • There are 21 new units in the new ios subfolder, all starting with iOSapi
  • There are 14 new units in the existing osx subfolder, all starting with Macapi
  • There is 1 new unit (Posix.NetinetUDP) in the posix subfolder
  • There are 18 new units in the existing win subfolder, all starting with Winapi. These are actually worth listing, given they are available also to VCL developers:
    • Winapi.Bluetooth.pas
    • Winapi.BluetoothLE.pas
    • Winapi.D3D10_1.pas
    • Winapi.D3D11.pas
    • Winapi.D3D11sdklayers.pas
    • Winapi.D3D11Shader.pas
    • Winapi.D3DCommon.pas
    • Winapi.Functiondiscovery.pas
    • Winapi.Locationapi.pas
    • Winapi.MLang.pas
    • Winapi.msxmlIntf.pas
    • Winapi.OpenGLext.pas
    • Winapi.PenInputPanel.pas
    • Winapi.Portabledevicetypes.pas
    • Winapi.Sensors.pas
    • Winapi.Sensorsapi.pas
    • Winapi.UserEnv.pas
    • Winapi.Wbem.pas

The Parallel Programming Library

  • System.Threading.pas: This unit is the home of the XE7 parallel programming library, defining parallel for, tasks, and futures. This has been covered extensively and a few lines won’t really explain it. Anyway, this unit defines interfaces like ITask and IFuture<T> and classes like TThreadPool, TThreadPoolMonitor, TWorkerData, TBaseWorkerThread, TTask, TFuture<T>, and TParallel. There is a lot more in this rather large unit, as I mentioned. A starting point for exploration could be community.embarcadero.com/index.php/blogs/entry/parallel-programming-using-the-new-rad-studio-xe7-runtime-library

New Classes, Records, and Types in Existing Units

  • In System.Characters.pas unit: new TCharHelper = record helper for Char
  • In System.Classes.pas unit: new attributes (inheriting from TCustomAttribute) like DefaultAttribute, NoDefaultAttribute, StoredAttribute, ObservableMemberAttribute
  • In System.Generics.Collections.pas: new classes TMoveArrayManager<T> and TManualArrayManager<T> supporting weak references, plus TThreadList<T>
  • In System.SysUtils.pas there is a TMarshaller record for API/operating system data marshaling, and there are many intrinsic type helpers like TSingleHelper, TDoubleHelper, TExtendedHelper, TByteHelper, TShortIntHelper, TSmallIntHelper, TWordHelper, TCardinalHelper, TIntegerHelper, TInt64Helper, TUInt64Helper, TNativeIntHelper, TNativeUIntHelper, TBooleanHelper, TByteBoolHelper, TWordBoolHelper, and TLongBoolHelper.
  • In System.pas there is the TCustomAttribute class, the TTypeKind enumeration (moved from another, lower unit), the TPtrWrapper (an opaque pointer wrapper), the TMarshal class (again for low-level, API call data marshaling)

That is all for now. I might follow up with another blog post linking to actual documentation and training videos about some of these features, but googling the unit names of their descriptions should provide enough information to get you started. 

 PS: Happy Christmas to those who celebrate this holiday