Polymophism

What is Polymorphism? … To begin to understand this concept, it’s helpful to know that the word polymorphism comes from the Greek meaning many shapes (or forms).  In the context of Object-Oriented Programming, this means the provision of a single interface to entities of different types.   The interface provided by the objects is the same, but what’s going... » read more

Alan Turing and the Decision Problem

Background In mathematics and computer science, the Entscheidungsproblem (“decision problem”) is a challenge posed by David Hilbert and Wilhelm Ackermann in 1928. David Hilbert was a well-known German mathematician, and together with his collaborator Wilhelm Ackermann they were influential figures in the mathematical community during the early 20th century. In their work titled “Grundzüge der... » read more

What’s New from Apple’s September Event

Apple just announced some new things – here’s the low down on what Apple revealed at their event. The first things covered at the event were some things we already knew about, but which, at the Event apple elaborated upon. Apple Arcade Highlighted first was Apple’s new Exclusive Games Platform for their devices – offering... » read more

Relational Databases and SQL

What is a Relational Database A Database is a collection of related data, and a Relational Database is a database that has “relations”. Where, formally, a relation is a subset of a cartesian product of sets. Informally, a relation is a “table” with rows and columns. Therefore, a “Relational Database” is a database that arranges... » read more

Useful WWDC 2019 Sessions

In this article, I’ll aim to briefly outline some of the most interesting talks from WWDC 2019 along with a short summary of what they cover. This is a work in progress and I intend to continue to update and edit it to be more useful over the next week or two. If a talk... » read more

Unit Testing & Dependency Injection in Swift

Unlocking the Power of Unit Testing in Software Development In the intricate world of software development, how do we ensure that every piece of code we write functions as intended? Enter Unit Testing—a rigorous method dedicated to validating each fragment, or “unit”, of software. This approach isn’t just about verifying if a class or a... » read more

Graphs & Graph Search Algorithms

A Graph is an important data structure in computer science; it is defined as a collection of nodes with “edges” between some of the nodes. When we talk about Graphs that category includes Trees, however not all Graphs are Trees. “Graphs arise in various real-world situations as there are road networks, computer networks and, most recently,... » read more

Certificate Pinning for iOS Apps

What is Certificate Pinning? Certificate Pinning refers to a technique of associating a host with an expected X.509 certificate, which is a digital certificate using the accepted international X.509 Public Key Infrastructure standard. By creating such an association, a browser or app is able to detect a change in the certificate used by a host,... » read more

Lambda Calculus

The Lambda Calculus is an abstract mathematical theory of computation, involving functions, and can be thought of as being the theoretical foundation of Functional Programming. It is “a formal system in mathematical logic for expressing computation [where its notation is thus] based on function abstraction and application using variable binding and substitution“(Ref#: B). It was was... » read more

What’s New in Xcode 10

Apple has just released Xcode 10 at WWDC 2018. Let’s take a look at what new stuff can be found in this version of Xcode, which works alongside iOS 11. I’ll continue update this article over time as more details become apparent. Dark Mode The famously rumored dark-mode is coming to Mac OS Mojave and... » read more