Building in Intellij IDEA

This program is relevant for building your first "hello world" and first sample kotlin apps.  However, once you have even hello world running, it is recommended now to move to gradle for building, even when building with Intellij. The topics for this page: Introduction: why use Intellij at all. The Roles on an IDE What… Continue reading Building in Intellij IDEA


Python to Kotlin: Variables and Types

Contents: python kotlin boxed objects vs unboxed primitives None, Nothing, Unit and null null safety Python Variables and Types As explained in the background, all values in python are objects stored in dynamic 'heap' memory, and variables are simply references to these objects. This means the only static or stack frame based information for any… Continue reading Python to Kotlin: Variables and Types

Extension Functions & Extension Properties

The syntax and rules of extension functions are explained also explained elsewhere,  but this page is more tutorial style, covers the background and  'why do we need extensions'  and 'what is the benefit',  together with simple examples, and even useful examples. The topics are: What are extension functions/properties? What is the advantage of extension functions?… Continue reading Extension Functions & Extension Properties

Scheduling: Schedule, design, code?

Or perhaps: schedule, design, build?  Either way, while that sequence may sound like waterfall, even agile is really a repetition of this sequence over and over.  This page discusses why these 3 steps are problematic for software, but still must be followed despite problems, and how to schedule projects using this sequence that initially can… Continue reading Scheduling: Schedule, design, code?

TDD or Not TDD? That is the question!

What actually is TDD (Test Driven Development) ? Is TDD Dead? Do you associate this term for when Tests actually Drive Development,  or use the label TDD for the practice of ensuring code coverage by having units tests? TDD can be taken to mean different things than the original meaning, and there are some risks… Continue reading TDD or Not TDD? That is the question!

Python dataclasses: A revolution

Python data classes are a new feature in Python 3.7, which is currently in Beta 4 and scheduled for final release in June 2018.  However, a simple pip install brings a backport to Python 3.6.  The name dataclass sounds like this feature is specifically for classes with data and no methods, but in reality, just… Continue reading Python dataclasses: A revolution

Python Annotations

Not to be confused with the use of the @ symbol, which is an annotation in Kotlin but a decorator in python. Python syntax allows for two flavours of annotations: variable annotations: Introduced in Python 3.6 (2016) function annotations: Introduced in Python 3.0 (2008) Introduction. Both flavours of annotation work in the same manner. They… Continue reading Python Annotations