Reverse Double Linked List in C#

This is a question that often comes up in an interview. The solution is simple. To begin with, initialise three node references: current points to the head node previous points to null next points to null Remember to point the tail to the head before we begin: tail = head; Now, iterate over the nodes […]

XMPP Progress

The XMPP Component framework is coming on nicely. It can connect and send/receive messages: Using C# again is a joy. I absolutely love the dynamic capabilities. For example, in this factory method, Ping is dynamically added – it is not a property: Which produces the following XML: Eventually Ping will be its own subpacket, but […]

C# Null! Tip

C# 8.0 introduced non-nullable reference types. I use them because it is considered best practice. I first encountered them in Kotlin. But I’m not a huge fan because they: have a cascading effect on interfaces and code are often not very helpful Monkey Business On the first problem, there are cases where things might be […]

Enums and Literals

One of the things I love about C# is reflection. Because of assemblies and metadata, and an excellent supporting framework, it is very easy to take advantage of this paradigm. This week I threw myself into building an XMPP component framework from scratch. The first objective is to get the plumbing and architecture in place. […]

Concise C# Property Name

When constructing XML elements, it’s nice to have a concise API. One of the features I’m implementing is the ability to easily move up to a parent element. There’s no cascade operator in C#, like you see in Dart. Whilst exploring options, I found this works: Example usage: I thought that was interesting – albeit […]

Result or no Result

Recently I spent a couple of hours building a few classes to support some functional programming constructs in C#. At the end of the experiment, doubts have me backing out mostly. In certain use cases, the new constructs are a nice fit, but they can easily be overused. And their usage has a cascading effect […]

String Iteration in Dart

I’ve just begun my deep dive into Dart. It’s a very nice language, but the string iteration had me scratching my head for a while. I still don’t know if I am doing it the best way to be honest. In most languages the string class will offer a way to iterate over characters. For […]

Understanding Software

Recently I had the pleasure of reading Max Kanat-Alexander’s excellent Understanding Software. It is a follow up to his Code Simplicity. Max is Technical Lead for Code Health at Google. This post contains a few points extracted from the book. If you find these notes useful, I highly recommend you check out his book for […]

The Future Is Now

This post is lifted from an article by Fotis Georgiadis, please do follow the link to read more and to give credit to the author. I have reproduced a large part of it here because I think it illustrates the viability of Delphi for modern cross-platform development. Lumicademy is an excellent example of what can […]

Android Hard Back Button Tip

Some Android phones have a hard back button, like the Samsung Galaxy 7 or Note 9. Others like the Pixel 4a use a short gesture from the left or right edge of the phone to trigger the effect of a hard back button press. If you don’t handle this event, your application will automatically go […]