Communications · Databases · Libraries · Uncategorized

Working with big data databases in Delphi – Cassandra, Couchbase and MongoDB (Part 3 of 3)

This final part of our trilogy on big data databases introduces a Delphi driver for MongoDB. This driver is independent from any other data access frameworks in Delphi and provides direct and efficient access to data on a MongoDB server. The previous posts in this series focus on Cassandra and Couchbase. For more information about… Continue reading Working with big data databases in Delphi – Cassandra, Couchbase and MongoDB (Part 3 of 3)

Libraries · Tips & Tricks · Uncategorized

Face Detection on Android and iOS

Android and iOS have built-in support for detecting faces in photos. We present a small platform-independent abstraction layer to access this functionality through a uniform interface. You can find the source code on GitHub as part of our JustAddCode repository. Like we did in our post on Cross Platform Text-to-Speech, we expose the functionality through a Delphi… Continue reading Face Detection on Android and iOS

Optimization · Tips & Tricks · Uncategorized

Experiments in Uniform Memory Management

We experiment with algorithms to make memory management in Delphi more consistent between desktop and mobile platforms. This eases debugging and finding memory leaks. We look into using object interfaces and semi-automatic memory management based on ownership. Along the way, we touch on using linked lists and Delphi’s messaging framework. Warning: this post is more… Continue reading Experiments in Uniform Memory Management

Optimization · Tips & Tricks · Uncategorized

SIMD Assembly Optimization

We get close to the metal as we demonstrate how you can incorporate assembly optimized SIMD routines into your Delphi apps. This can be done by using inline assembly code for Intel platforms, or by creating and linking a static library for ARM platforms. Nowadays, with optimizing and vectorizing compilers, few people still hand-write assembly… Continue reading SIMD Assembly Optimization

Communications · Foundation · Libraries · Uncategorized

Binary Serialization with Google Protocol Buffers

Google’s Protocol Buffers are a flexible, compact and extensible mechanism for serializing structured data. We share our implementation that makes it easy to serialize Delphi records to a binary format that is 100% compatible with the Protocol Buffers specification. Want to go straight to the source? You can find it on GitHub in our GrijjyFoundation… Continue reading Binary Serialization with Google Protocol Buffers

Foundation · Libraries · Tips & Tricks · Uncategorized

Build your own Error Reporter – Part 2: Android

In this second part on error reporting, we add support for Android. For that, we need to manually walk the call stack and configure the Delphi project to export symbols. In the previous article in this series, we shared some building blocks for implementing error reporting functionality on iOS. To recap, these blocks are: Intercepting… Continue reading Build your own Error Reporter – Part 2: Android