Communications · Foundation · Libraries · Uncategorized

GrijjyCloudLogger, remote logging for Windows, iOS, Android, macOS and Linux

GrijjyCloudLogger is a remote logging tool that allows you to send log messages over the Intranet or Internet from Windows, Linux, iOS, Android and macOS devices to a viewer running on Windows. Besides sending messages along with any data, it has numerous features including custom live watches, remote live views of objects, tracking live memory… Continue reading GrijjyCloudLogger, remote logging for Windows, iOS, Android, macOS and Linux

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 · Uncategorized

Cross-platform timer queues for Windows and Linux

In this article we will show how to use timer queues to create fast, lightweight, multi-threaded OnTimer() events that work on Windows and Linux in a uniform method using our helper class TgoTimerQueue. We also discuss how they operate on Windows and Linux and show an example application using timer queues. For more information about… Continue reading Cross-platform timer queues for Windows and Linux

Communications · Foundation · Uncategorized

Scalable Linux sockets for the cloud, Part 3

In this article we will show how to use Delphi’s new Linux compiler to expand our HTTP and TCP client base classes to also run on Linux. On Windows we used IOCP to create a highly scalable client, and on Linux we will use EPOLL to also create a scalable client. We will extend the… Continue reading Scalable Linux sockets for the cloud, Part 3

Communications · Foundation · Uncategorized

Scalable HTTP sockets for the cloud, Part 2

In this article we will expand on our TgoHttpClient class by adding some core new features including non-blocking http responses, unifying HTTP 1.1, HTTP/S and HTTP/2 support into a common class, incremental data transfers, various fixes and performance improvements. In a previous article we discussed the scalable client socket problem and how it creates a… Continue reading Scalable HTTP sockets for the cloud, Part 2

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

Foundation · Libraries · Tips & Tricks · Uncategorized

Build your own Error Reporter – Part 1: iOS

We share some building blocks for rolling your own error reporter in Delphi. From intercepting unhandled exceptions, to retrieving a stack trace to symbolicating the error report. This part focuses on iOS. In the next part, we handle Android, which does things a bit differently. We won’t cover Windows here, since there are already some… Continue reading Build your own Error Reporter – Part 1: iOS

Communications · Foundation · Uncategorized

Receiving push notifications from Apple’s Push Notification and Google’s Firebase Cloud Messaging services

In the previous article we demonstrated how to roll your own Google Firebase Cloud Messaging and Apple APNS push notifications from Delphi apps in a unified manner. This article continues the conversation about how to easily receive and consume them in your Delphi mobile app. Introduction If you are authoring a Delphi service for the… Continue reading Receiving push notifications from Apple’s Push Notification and Google’s Firebase Cloud Messaging services

Foundation · Libraries · Uncategorized

Efficient and easy-to-use JSON and BSON library

We share our efficient and easy-to-use JSON and BSON library that supports a Document Object Model (DOM), direct reading and writing in JSON and BSON format, and automatic serialization of Delphi records and classes to and from JSON and BSON. Why another JSON library? There are already quite a few JSON libraries out there, so… Continue reading Efficient and easy-to-use JSON and BSON library

Foundation · Uncategorized

Expand your Collections collection – Part 2: a generic ring buffer

We continue our tour of custom collections with a generic ring buffer. What is a ring buffer? A ring buffer (also known as a circular buffer) is a fixed-size buffer that is connected end-to-end. It is similar to a queue in that behaves like a FIFO (First-In-First-Out) buffer. But unlike a queue, it does not… Continue reading Expand your Collections collection – Part 2: a generic ring buffer