Posts in Embarcadero

Two of my favourite authors, Uncle Bob Martin and Steve McConnell, at CodeRage

November 3rd, 2017 Posted by Embarcadero No Comment yet

I’ve read lots of technical books over the years. Often I read them to get the immediate information I need then eventually get rid of them, as many technical books don’t age gracefully.

However, over the decades a few books have earned a permanent spot on my bookshelf. Books like Analysis Patterns by Martin Fowler, Domain Driven Design by Eric Evans and a few dozen others are the kind of books that keep teaching me things every time I re-read them. It’s as if each time I pick them up I’ve learned a little more since last time, and so I’m ready to understand more of the wisdom they contain.

I had a look through my shelf this morning and only two authors appear more than once: the aforementioned Martin Fowler and also Steve McConnell. McConnell’s books Rapid Development, Software Estimation and Code Complete are full of pragmatic, immediately useful information that is as relevant today as much as it was when it was published. His Software Estimation book especially is an absolute cracker, taking an important but potentially mind-bogglingly dull topic and writing a book that I think I’ve read at least 3 or 4 times.

Uncle Bob Martin might only appear on my shelf once, but he makes up for it by the value I’ve taken from that one book. When I first read Clean Code, I thought half of it was good and the other half was completely and utterly wrong. That was fine though, the good half was staggeringly good, so I could forgive him the rest. Interestingly, over the years I find myself gradually coming around to agree with more of the “completely wrong” part, to the point now where it’s probably only 10% that I think is wrong (and I suspect that give me another year or two and that’ll be approaching zero).

What does all this have to do with CodeRage next week? Well, both Steve McConnell and Uncle Bob are presenting. Steve on Managing Technical Debt and Uncle Bob in a session called The Clean Coder. I’ve never seen Steve present, but I was fortunate to see Uncle Bob at the Yow Conference last year and he didn’t disappoint.

Neither of these sessions will be in the CodeRage replays, so you’ll need to watch them live to see them at all. Brew the coffee and/or set your alarm, but don’t miss them.

More details and registration available here.

TNotifyEvent debouncing in Delphi

August 24th, 2017 Posted by Embarcadero No Comment yet

Every developer who works with UI handles a lot of user input. And it’s not a rare situation that we don’t need to handle every incoming event because there might be just too many of them.

Consider this example, a user fills an email field on “Sign up” form in some application which works with a REST API. We want to validate entered email before a user actually will click “Submit” button. To do it, we make a call to hypothetical “/email/validate” REST endpoint and display validation status on the UI, which enables a user to adjust his input until he finishes working with the form.

Some people type really fast, so we don’t want to make a REST call for every entered character. Lots of APIs have request limits and in order not to exceed them it’s necessary to “throttle” events emitted by fast user typing.

(more…)

Parallel (mis)Adventures

August 18th, 2017 Posted by Embarcadero 4 comments

In one of our customer projects, we had an Android app that was receiving broadcasts on a background thread (I’ll call this the Receiver thread). On receipt of a message, the Receiver thread needed to do some processing on that message and then update the main thread (the UI thread).

The initial solution to this was pretty simple, call TThread.Synchronize from the Receiver thread, passing in an anonymous method that updates the UI Thread.

Testing this on Windows worked fine, however running it on Android revealed a problem. (more…)

Changing your RAD Studio Serial without Reinstalling

August 11th, 2017 Posted by Embarcadero No Comment yet

It was only today that I got around to updating the VM I use for demos to RAD Studio 10.2.1. Unlike the VM’s I use for customer projects, this one is using my MVP License. I installed 10.2.1 no problems, but upon running I got the following error message:

An Update Subscription for Embarcadero Delphi 10.2 is required which has expired prior to this release

 

After a moment of confusion, I realised I might have used my old Berlin MVP license during the install, so the error message is probably correct.

This is easy enough to fix, but I’ve had a few customers ask me about this so I thought I’d grab some screenshots and write up how to replace serials in a RAD Studio install.

(more…)

RAD Studio 10.2.1 Released

August 9th, 2017 Posted by Embarcadero, News No Comment yet

Embarcadero have released an update to 10.2 Tokyo today. The official details are here, but it includes:

  • Linux performance improvements
  • Windows 10 Creator support in both Delphi and C++Builder
  • Support for the latest iOS and XCode
  • FireDAC Driver database support updates for MS SQL, Interbase and others
  • Further Android architectural improvements
  • Plus more than 140 customer-reported bug fixes.

There is a full list of new features and fixes here.

Links for the ISO download are here, and the Web Installer is here. Note that with the recent changes to how the Web Installer works, I actually find it a faster total install. Remember to retain your component settings when uninstalling 10.2, or use the Settings Migration Tool to export them and import them into 10.2.1

Personally, I’ve been using 10.2.1 for the Android changes over the last few days and I can tell you the experience is much improved, both for Android and in general. Definitely worth the install.

Embarcadero Enterprise Connector for Salesforce : First Impressions

August 1st, 2017 Posted by Embarcadero 1 comment

You might have seen the recent Beta announcement from Embarcadero for the Enterprise Connectors. I’ve been doing some work with a few of them lately, so wanted to give you an overview of my experiences, starting with the Salesforce driver.

If you’re not aware, the Enterprise Conenctors are a whole bunch of FireDAC drivers that allow you to interact with a wide range of backend systems as if they were relational databases. There are more than 80 systems supported, including Salesforce, Xero, QuickBooks, Magento, ServiceNow amongst others. The theory is that given most RAD Studio developers are very comfortable interacting with a database,  if you can make something look like a database, it should be easier to use.

Nice theory, but I was keen to see how well it worked. I’ve done a fair bit of development with Salesforce, including using the API, so I figured I’d try that driver out first.

A few things to note:

  • The Enterprise Connectors work with 10.2 Tokyo.
  • The beta versions of all the drivers are available in GetIt, so you can try them out really easily.
  • They are FireDAC drivers, but they work happily with FireDAC in Professional (despite the Enterprise Connectors name)

First up, connecting to salesforce is very easy. You have a bunch of options for how you connect (see the documentation here) but I went with the simple username, password and Security Token option. These are all available as parameters in the FireDAC Connection wizard, as well as properties in the component. (more…)

Logging in Android

July 6th, 2017 Posted by Embarcadero, Mobile 4 comments

RAD Studio’s ability to do remote debugging of Android apps on device is fantastic for tracking down issues. However sometimes you have issues where the debugger can’t help. Case in point is one of the projects we were doing for a customer recently. The Android portion included a Service, which needed to be auto-started when the Android device booted. It worked fine if it was started manually, but auto-starting at boot resulted in a  crash. We couldn’t use the RAD Studio debugger as it was all over so quickly at boot time. Fortunately we were already logging messages out to the Android logs from within our app, so we were able to track down the problem. How?

Let’s go through the two necessary pieces:

  • Logging a Message
  • Viewing the Android log

(more…)

Hey RAD Studio 10.2 Tokyo, where’s my adb.exe?

June 28th, 2017 Posted by Embarcadero, Mobile No Comment yet

The RAD Studio installer has been significantly improved over recent releases. One of the newer features is the ability to quickly add and remove Supported Platforms to your installation from within the IDE (see the Tools | Manage Platforms menu in the IDE). The same utility also lets you install other items, like bundled 3rd party tools, other language support and also the Android SDK.

 

However, if you do all of those things, you might be a little puzzled as to why it looks like the Android SDK Tools have not been installed. For example, if you go looking for adb.exe you won’t find it. Search the whole hard drive, it’s just not there. (more…)

Code Partners’ Embarcadero End Of Financial Year Sale

June 14th, 2017 Posted by Embarcadero, News, Offers No Comment yet

The Australian Financial Year ends in a couple of weeks, so Code Partners, in conjunction with Embarcadero, are offering an additional incentive for upgraders and new license buyers.

Take advantage of the existing “Buy One, Get One Free” offer, but in addition, get a further 10% off (conditions apply, see below).

Get Your $20,000 Instant Asset Write-off

Note, you don’t need to be in Australia to get the extra 10% off, but if you are, it might also be worth having a chat to your Accountant. The Australian Government has introduced Simplified Depreciation rules for some businesses. If you qualify, you may be able to deduct the full cost of your purchase during this financial year. More details here and of course, confirm your eligibility with your Accountant or Tax Adviser before going ahead (we’re Developers, not Tax Specialists, after all, and I have heard a rumour that Malcolm took two attempts to pass his mandatory Accounting subject at University)

(more…)

Pragmatic MVVM at DAPUG Workshop in Denmark

March 28th, 2017 Posted by Embarcadero, Events, News No Comment yet

I’m really looking forward to presenting a two day workshop on MVVM in RAD Studio for DAPUG in Denmark next month.

The MVVM sessions I’ve done in the past have all been around 45 minutes long, which is barely enough time to scratch the surface. Two full days will give us plenty of time to get right down into the details of how to build maintainable, testable applications without throwing away all the productivity of RAD.

We’ll build an MVVM application from scratch over several “sprints”, each one focussed on a different area of functionality, and along the way we’ll go deep on issues like LiveBindings, Persistence, Messaging, and more. After two days you should come away feeling very equipped to apply MVVM in your own code.

Full details and registration form is available here.