Posts by malcolm

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.

Jenkins World 2017 – Day 2

September 1st, 2017 Posted by Cloudbees No Comment yet

Tim, Graham and I are back with our wrap up of Day 2 of Jenkins World 2017. We’ve all had a lot more sleep than yesterday’s so hopefully it’s not as rambling…although Graham does have a moment in there ūüėČ

This was the final day of Jenkins World and at the closing keynote they confirmed that the recordings of all the sessions will be available soon. We’ll post a link as soon as they go up.

Oh, and I totally forgot to mention the awesome session on DevOptics Deliver that Karan Malhi, the DevOptics Deliver PM gave. Definitely worth watching on the replays, as he goes deeper into what problems they are trying to solve, gives a longer demo and also gives some insight into how it is implemented.

Jenkins World 2017 – Day 1 Wrap-up

August 31st, 2017 Posted by Cloudbees No Comment yet

A few of the team and I have travelled to the San Francisco for Jenkins World and after a long day 1 of the conference, we recorded a quick wrap-up of some of our highlights.

We’re seriously suffering from jetlag and too much coffee, but if you weren’t able to make it to Jenkins World this year, hopefully this will give you a taste of some of the announcements and sessions.

I believe the sessions are being recorded, so at some stage they should come online.

Check back tomorrow for a Day 2 Wrap-up.

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…)

My Declarative Pipelines Presentation from Sydney Jenkins Meetup

June 28th, 2017 Posted by Cloudbees, DevOps No Comment yet

Code Partners hosted the Sydney Jenkins Meetup again this month, and this time it was my turn to present.

I’ve been exploring the new Declarative Pipeline support recently for one of our projects so I wanted to give everyone an overview, how they differ from Scripted Pipelines, and share some of the shortcuts I’d found for building and debugging them.

(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…)