Category Archives: General

For stuff I forget to categorise! Doh!

CodeRage Session – Keeping Data Secure While Delivering Self-Service Analytics

As part of CodeRage 2025, I recently ran a session titled
“Keeping Data Secure While Delivering Self-Service Analytics”, focused squarely on a challenge many software developers face today:

How do you embed powerful analytics into your application without compromising security, auditability, or compliance?

If you missed the live session—or want to revisit the demos—the full replay is now available:

▶️ Watch the session replay
https://www.youtube.com/live/5Wdf0BWf49I?si=B7SVRDADT8SC4jXe&t=518


What the Session Covered

The talk was aimed at application developers and ISVs who are embedding analytics into their own products or internal systems. We explored how Yellowfin enables:

🔐 Strong Security by Design

  • Role-based access control down to reports, dashboards, and data
  • Secure embedding models that respect your application’s authentication
  • Fine-grained permissions that align with real-world user roles

🧾 Deep Auditing & Event Tracking

A major focus of the session was auditing, which is becoming increasingly critical as regulations tighten.

Yellowfin provides built-in auditing that allows you to track:

  • Who accessed analytics content
  • What they viewed
  • When it was accessed
  • Whether data was exported or shared

This level of visibility is particularly relevant when aligning analytics with modern compliance and security frameworks.

For developers, this means you can embed analytics while still giving security teams, compliance officers, and auditors the evidence they need.

🧩 Versatile Embedding for Real Applications

We also looked at how flexible Yellowfin is when embedding into existing applications:

  • Embed reports and dashboards directly into your UI
  • Control context, filters, and user experience from your own code
  • Maintain a consistent look and feel with your application

This isn’t analytics bolted on as an afterthought—it’s analytics that behaves like a native part of your product.


Yellowfin Developer Sandbox – Try It Yourself

One of the key messages from the session was: don’t just watch—build.

Yellowfin offers a free Developer Sandbox that gives you:

  • A fully working Yellowfin environment
  • APIs for embedding and automation
  • Sample data and configuration
  • A safe space to experiment without risk

🎥 Quick overview of the Yellowfin Developer Sandbox
https://www.youtube.com/watch?v=uLTt6bKOezU

The sandbox is ideal if you want to explore how Yellowfin fits into your existing architecture. With prebuilt demo examples, you don’t need to be a Yellowfin expert, you just need to know how to call the API!


Download the Code & Start Embedding

Alongside the sandbox, I also shared code samples during the session to demonstrate how developers can embed single signon into the applications rapidly

If you’re serious about embedding analytics, the best next step is to:

  1. Sign up for the Yellowfin Developer Sandbox
  2. Download the code samples (all the details are in the welcome email)
  3. Experiment with embedding analytics into your own application

You’ll quickly see how much control you retain—both from a UX and a security perspective.


Why This Matters Now

With growing pressure around data security, governance, and compliance, analytics can no longer be treated as a black box.

For developers, the challenge is delivering:

  • Self-service insights users love
    without
  • Losing control over data access and usage

Yellowfin’s combination of strong auditing, robust security, and flexible embedding makes it a compelling choice for modern application development—especially for ISVs and teams building data-driven products.

Happy 30th Delphi!

30 Years of Delphi: My Story with a Game-Changing Development Tool

Today marks a monumental milestone—Delphi’s 30th anniversary! It’s incredible to think that this development powerhouse has been shaping the software world for three decades. As I reflect on my own journey with Delphi, I can’t help but feel a deep appreciation for how it has influenced my career, projects, and the broader developer community.

The Early Days – ClubRunner and Delphi 5

My story with Delphi began in 1999 when I started working with a Leisure Management Software company, ClubRunner. At the time, we were transitioning from DOS to Windows, and Delphi provided the perfect tool to make this leap. My first copy of Delphi was version 3, but we quickly moved to Delphi 5, which became the foundation of our software for many years.

ClubRunner managed everything from health club memberships, bookings, and class scheduling to video rentals, POS printers, cash drawers, and even membership card printing. One of Delphi’s greatest strengths was its ability to integrate seamlessly with any hardware we needed. It gave us the flexibility to tackle any challenge, no matter the complexity.

Rapid Prototyping and Expansion

Delphi’s rapid prototyping capabilities enabled us to develop new features quickly, which led to our software winning numerous awards and expanding into new sectors like Soft Play and Golf Driving Ranges. No matter what we needed to build, Delphi gave us the tools to make it happen. We never encountered something we couldn’t code for, and that was a testament to its power and adaptability.

While much of the industry has moved to web and cloud-based solutions, there are still strong reasons why local software and hardware integrations remain critical. The modern Delphi full-stack approach ensures that developers can build solutions that bridge both worlds seamlessly.

Joining Embarcadero – Advocating for Delphi Developers

In 2011, I had the opportunity to join Embarcadero, a defining moment in my career. As a Presales Engineer, I’ve had the honor of talking to developers worldwide about what they create with Delphi. I’ve seen Delphi power everything from high-frequency trading software for the South African Stock Exchange to black box recorders, automated milking machines, and countless line-of-business applications.

During my time as Senior Product Marketing Manager, I was proud to play a role in launching the updated Delphi Community Edition, which has been a significant support for students and educators. South Africa, in particular, has a thriving Delphi community, with Delphi being the primary programming language taught in secondary schools. It’s been inspiring to see how it has helped shape the next generation of developers.

While today, my time is largely split between a number of Brands at Idera, Delphi remains a core focus with the presales team I run supporting developers world wide. As part of that effort, today we are launching a new book specifically for helping other developers from other languages get started with Delphi, and this is now available to anyone with an active Update Subscription via GetIt.

Longevity and Business Value

One of the things that has always impressed me about Delphi is the sheer longevity of its codebase. Many companies have compact development teams achieving incredible results thanks to Delphi’s long life span and strong backwards compatibility. Even at ClubRunner, we were able to evolve the software by adding web services as an API, (thanks to upgrading existing code easily into Delphi 7 and then later 2009) allowing customers to expand beyond the original scope of the product. This ability to extend and innovate while maintaining compatibility kept customers loyal and provided immense business value.

Building for the Future – Cross-Platform Success

In today’s fast-moving world, so much code is written and discarded, but with Delphi, I’ve been able to leverage my experience to build lasting applications. One of my proudest achievements has been using my Delphi knowledge to create cross-platform apps that reached the top of the App Store. That’s a testament to the power of Delphi—it allows developers to continuously evolve their skills while building applications that stand the test of time.

Conclusion

As Delphi enters its fourth decade, I’m excited about what the future holds. The ability to build powerful, cross-platform applications with a compact and efficient team remains one of Delphi’s greatest strengths. Looking back at my journey—from ClubRunner to Embarcadero, from local software to global applications—I’m reminded just how powerful and enduring Delphi truly is.

Happy 30th Anniversary, Delphi! Here’s to many more years of innovation, efficiency, and game-changing development.

Delphi App hits #1 on the App Stores!

My Delphi App made it to #1 on both the Apple App Store (iOS) and Google Play Store (Android) charts last weekend! (12 to 14 April 2024)

I was blown away by the response to my RAD Studio / Delphi Application, written for iOS and Android after I published it to Google Play and Apple AppStore. The app helps go karting mechanics and drivers quickly get answers to setup questions and understand the difference in their gearing ratios, and how that translates to speed on track.

Despite being for a niche market, it raced (excuse the pun) to the #1 Paid Sports App for both app stores within two days of launch.


Continue reading Delphi App hits #1 on the App Stores!

Installing Packages Offline with RAD Studio, Delphi and C++Builder

One great feature of RAD Studio is the ability to load component packages into the IDE rapidly via GetIt. This service feature works by collecting a list of available packages from the Online Servers, and then allowing you to select what you want and seconds later, the components and add-ons are available inside the IDE!

While GetIt is a lot faster and simpler for setting up the IDE, compared to using the traditional manual package install and setup route, it does was limited to online working only…. That is until now and the release of RAD Studio 11.2

11.2 adds the ability to load packages via GetIt when the PC is offline. This greatly improves access to packages for machines that are blocked from the Internet.

It’s pretty simple! You just need an active subscription, a downloaded package, and the file on the local machine.

TRESTRequestDataSetAdapter Example

The TRESTRequestDataSetAdapter component (introduced in RAD Studio 11.0) helps create a REST Request, from a TDataSet to send to a REST Server.

The TRESTRequestDataSetAdapter is a companion for the TRESTResponseDataSetAdapter component that takes a JSON data packet from a REST request response and concerts it into a TDataSet.

The TRESTRequestDataSetAdapter works well with the TEMSDataSetResource to accept data from POST, PUT, DELETE operations from the client side to update server side data.

This video will take you though how this works, and also demo’s a really useful unit of code, REST.DataUpdater.pas, that automatically manages the data transport based on the type of data update you have made.

Continue reading TRESTRequestDataSetAdapter Example

Delphi 27th Birthday #Delphi27th

The 14th of February is soon at hand, and for many around the world, this day symbolises love and affection. Indeed, as a software developer, it has specific significance, as it was that day, 27 years ago, that one of the most significant contributions to the software development industry was born out of Scotts Valley and the offices of Borland.

— Keep reading to find the free downloadable InfoDocs, packed full of useful resources —

Continue reading Delphi 27th Birthday #Delphi27th

How to use Azure Cloud Cognitive Services?

What is Azure Cognitive Services?

According to Microsoft, the Cognitive Services in the Microsoft Azure Cloud bring AI within reach of every developer, without requiring machine learning expertise.

Using the Azure Cognitive Services API you can use API’s to embed the ability to hear, speak, translate and understand directly into your applications.

— keep reading to see how to use Azure Services with Delphi (inc Videos and code sample —

Continue reading How to use Azure Cloud Cognitive Services?

How to migrate from old versions of InterBase?

I got a question this week about how to migrate from an old version of InterBase to the latest version, so I thought I would share a few tips and hints on how to move data forward from old versions.

InterBase On Disk Structure

Before we start, it is important to know that each major release of InterBase has an associated On-Disk Structure (ODS).

When database files are restored on created with the latest ODS it enables InterBase to make features available for use with that database file. If you don’t use the latest ODS format, then features in the InterBase engine may not be available to that database file.

InterBase versionPrimary ODS version
202018
201717
XE716
XE315
XE15
200913
200712
7.011
6.010
5.5/5.69.1
5.0/5.19

One benefit of InterBase today is that the ODS is cross-platform, meaning the same database file can be moved between Windows, macOS, iOS, Android, and Linux without modification, drastically simplifying the development and maintenance of data in cross-platform/multi-platform applications.

What is the InterBase migration process?

For most cases, the InterBase migration progress follows 4 simple steps:

  1. Backup all the databases to be migrated.
  2. Install the latest InterBase server.
  3. Restore the databases being migrated on the most recent version
  4. Validate migrated databases.

When migrating from a version using ODS 13 or newer, this should be enough to get updated. If you are using an older ODS, then there are a couple of more steps to get updated.

The only other checks to make when updating are for are new keywords in InterBase. These are occasionally added to support new features, such as table truncation, or ChangeViews. A full list of keywords is available on docwiki

How to migrate from very old versions of InterBase?

If you are using a version prior to InterBase 2009, then there are two options available to you.

  1. Migrate to an intermediary version first (that supports ODS 13 or above)
  2. Move the data to a new database created in the latest version.

Migrating to an intermediary version

As an example, a backed-up version of an InterBase 5 database could be restored using InterBase 2007 (to create an InterBase database file that uses ODS 12). The new database file can then be backed up in InterBase 2007 to a backup that supports ODS 12. InterBase 2020 can actually read ODS 11 and 12 for backup purposes only, so from here you can restore to the latest version.

Prior to the release of InterBase 2007, a number of new keywords were added to InterBase. By targeting InterBase 2007 first, you can also locate any issues around keywords prior to the bigger jump to ODS 18 (InterBase 2020)

Moving data from an old to a new database

The other option is to use a data pump tool to move the database from an old database to a newer version. This can be more complicated due to foreign key constraints, however, there are specialist tools such as InterBase DataPump that can be used for this process.

https://clevercomponents.com/products/datapump/index.asp

If you choose to go this path, then the basic steps are to

  1. Create a blank new database in the latest version
  2. Save the metadata from the existing database, and use it as a script to add the structure to the new database file
  3. Pump in the data: Making allowance for
    • the order data is moved based on Foreign key constraints
    • table triggers (best to disable these first)
  4. Reset database generators to the required value

External Dependencies

Another things to check when migrating to newer InterBase versions are any external dependancies. (e.g. User Defined Libraries (UDF) that you use). Older versions of InterBase could have been 32bit only.

As 32bit and 64bit libraries are incompatible with each other, an initial upgrade route would be to get to the latest version of InterBase on 32bit, and then look to get a 64bit version of the UDFs for use with a 64bit version of InterBase. As the ODS is the same for all InterBase platforms, this is then a seamless migration.

Where to download the latest InterBase version?

The Latest version of InterBase is available from Embarcadero.com with a Developer Edition (which offers light database encryption only) or Trial Edition (includes strong encryption at rest on disk). For older editions of InterBase to help with migration, please contact Embarcadero sales