Category: Privacy
Degox - Taking (Back?) my Internet Privacy and Presence
For as long as I’ve used email, someone else has provided it to me for “free”. Detoxing in January is a staple, so why not extend that to weening off Google and call it a degox.
This was supposed to be a short post about my experience migrating to Fastmail. However, it went sideways and turned into an essay. I’ve knitted together various experiences and topics from over the decades. I’ve come to the slow realization that this choice, to take back my Internet Privacy and Presence, isn’t a new year fad to be dropped unceremoneously by February.
Category: Spotify
SpotifyStatusApplet v1.2 Beta

FYI: SpotifyStatusApplet was broken by a Spotify API change made in Q3 2018. This page is provided for archive purposes and the download has been removed. More information is available on the Project Page.
A small update to SpotifyStatusApplet has been released as a beta. This version adds the ability to toggle on/off the Field titles (Track, Album and Artist) by pressing “soft key 1″, the first key underneath the LCD on most models.
Category: Craftsmanship
Software Metrics and Craftsmanship

Software Development Metrics are a notoriously difficult area, there exists a large allure of quantitative measurements that can be condensed into a top-level dashboard showing progress, plan alignment, effort , costs and so on. However, the unfortunate reality is that the collection and analysis of Software Development Metrics is difficult for a number of factors such as complexity, variance, meaning and gaming of the system. Often it is a difficult case of understanding if we are more interested in the performance of the project (Health) or the performance of the developer (Efficacy).
Category: Development
Software Metrics and Craftsmanship

Software Development Metrics are a notoriously difficult area, there exists a large allure of quantitative measurements that can be condensed into a top-level dashboard showing progress, plan alignment, effort , costs and so on. However, the unfortunate reality is that the collection and analysis of Software Development Metrics is difficult for a number of factors such as complexity, variance, meaning and gaming of the system. Often it is a difficult case of understanding if we are more interested in the performance of the project (Health) or the performance of the developer (Efficacy).
Category: Metrics
Software Metrics and Craftsmanship

Software Development Metrics are a notoriously difficult area, there exists a large allure of quantitative measurements that can be condensed into a top-level dashboard showing progress, plan alignment, effort , costs and so on. However, the unfortunate reality is that the collection and analysis of Software Development Metrics is difficult for a number of factors such as complexity, variance, meaning and gaming of the system. Often it is a difficult case of understanding if we are more interested in the performance of the project (Health) or the performance of the developer (Efficacy).
Category: Android
UI Navigation - Android

Up vs. Back or in other terms hierarchy vs. chronology is one of the User Experience aspects touched upon in my post UML: Modelling User Interfaces Part 1 – Hierarchy and Navigation. The Android methodology for UI navigation has received some attention over the years and the largest change to date was brought in with the introduction of the Action Bar as part of Android 3.0+.
Android Resource and the Eclipse switch Quick Fix
In the process of updating and refactoring an old Android project I unwittingly changed a Project configuration option (the “Is Library” option) that lead to my resource file being generated differently. E.g
Before
[java] public final class R { public static final class id { public static final int button1=0x7f090001; public static final int button2=0x7f090002; public static final int button3=0x7f090003; } } [/java]
After
[java] public final class R { public static final class id { public static int button1=0x7f090001; public static int button2=0x7f090002; public static int button3=0x7f090003; } } [/java]
A subtle change indeed but one that caused the following compiler error for each line
case expressions must be constant expressions
Category: Ui
UI Navigation - Android

Up vs. Back or in other terms hierarchy vs. chronology is one of the User Experience aspects touched upon in my post UML: Modelling User Interfaces Part 1 – Hierarchy and Navigation. The Android methodology for UI navigation has received some attention over the years and the largest change to date was brought in with the introduction of the Action Bar as part of Android 3.0+.
UML: Modelling User Interfaces Part 1 - Hierarchy and Navigation
This is the first post in a series that looks at the modelling of User Interface (UI) related software using UML.
The main purpose of the post is to explore how we effectively model the navigation of a tree-like hierarchy, especially when considering the premise “In a tree structure there is one and only one path from any point to any other point”.
The tl;dr is that UML does not necessarily have the ability to represent UI concepts of hierarchy and navigation effectively.
Category: Ux
UI Navigation - Android

Up vs. Back or in other terms hierarchy vs. chronology is one of the User Experience aspects touched upon in my post UML: Modelling User Interfaces Part 1 – Hierarchy and Navigation. The Android methodology for UI navigation has received some attention over the years and the largest change to date was brought in with the introduction of the Action Bar as part of Android 3.0+.
UML: Modelling User Interfaces Part 1 - Hierarchy and Navigation
This is the first post in a series that looks at the modelling of User Interface (UI) related software using UML.
The main purpose of the post is to explore how we effectively model the navigation of a tree-like hierarchy, especially when considering the premise “In a tree structure there is one and only one path from any point to any other point”.
The tl;dr is that UML does not necessarily have the ability to represent UI concepts of hierarchy and navigation effectively.
Category: Model-Driven
UML: Aside - Completeness vs Clarity and other CvCs

One of the recurring issues I have experienced with UML, or more generally Model Driven Design is the continual struggle between definition and interpretation. One of the tenants of UML is to abstract upwards towards a level that avoids implementation specifics. However, this introduces the potential for a need of a “Leap of Faith”, something that was discussed my post UML: Modelling User Interfaces Part 1.
Category: Uml
UML: Aside - Completeness vs Clarity and other CvCs

One of the recurring issues I have experienced with UML, or more generally Model Driven Design is the continual struggle between definition and interpretation. One of the tenants of UML is to abstract upwards towards a level that avoids implementation specifics. However, this introduces the potential for a need of a “Leap of Faith”, something that was discussed my post UML: Modelling User Interfaces Part 1.
UML: Modelling User Interfaces Part 1 - Hierarchy and Navigation
This is the first post in a series that looks at the modelling of User Interface (UI) related software using UML.
The main purpose of the post is to explore how we effectively model the navigation of a tree-like hierarchy, especially when considering the premise “In a tree structure there is one and only one path from any point to any other point”.
The tl;dr is that UML does not necessarily have the ability to represent UI concepts of hierarchy and navigation effectively.
Category: Eclipse
Android Resource and the Eclipse switch Quick Fix
In the process of updating and refactoring an old Android project I unwittingly changed a Project configuration option (the “Is Library” option) that lead to my resource file being generated differently. E.g
Before
[java] public final class R { public static final class id { public static final int button1=0x7f090001; public static final int button2=0x7f090002; public static final int button3=0x7f090003; } } [/java]
After
[java] public final class R { public static final class id { public static int button1=0x7f090001; public static int button2=0x7f090002; public static int button3=0x7f090003; } } [/java]
A subtle change indeed but one that caused the following compiler error for each line
case expressions must be constant expressions
Category: C
C and C++ Preprocessor: warp, Clang and GCC
I belatedly came across the news regarding warp, a C and C++ preprocessor written by Walter Bright in a joint project with Facebook. This has been released under the Boost license and is available at https://github.com/facebook/warp.
The Facebook blog makes the following statement with regards to improved efficiency over the GCC preprocessor
Replacing gcc’s preprocessor with
warphas led to significant improvements of our end-to-end build times (including linking). Depending on a variety of circumstances, we measured debug build speed improvements ranging from 10% all the way to 40%, all in complex projects with massive codebases and many dependencies
Category: Gcc
C and C++ Preprocessor: warp, Clang and GCC
I belatedly came across the news regarding warp, a C and C++ preprocessor written by Walter Bright in a joint project with Facebook. This has been released under the Boost license and is available at https://github.com/facebook/warp.
The Facebook blog makes the following statement with regards to improved efficiency over the GCC preprocessor
Replacing gcc’s preprocessor with
warphas led to significant improvements of our end-to-end build times (including linking). Depending on a variety of circumstances, we measured debug build speed improvements ranging from 10% all the way to 40%, all in complex projects with massive codebases and many dependencies
Category: Preprocessor
C and C++ Preprocessor: warp, Clang and GCC
I belatedly came across the news regarding warp, a C and C++ preprocessor written by Walter Bright in a joint project with Facebook. This has been released under the Boost license and is available at https://github.com/facebook/warp.
The Facebook blog makes the following statement with regards to improved efficiency over the GCC preprocessor
Replacing gcc’s preprocessor with
warphas led to significant improvements of our end-to-end build times (including linking). Depending on a variety of circumstances, we measured debug build speed improvements ranging from 10% all the way to 40%, all in complex projects with massive codebases and many dependencies
Category: Warp
C and C++ Preprocessor: warp, Clang and GCC
I belatedly came across the news regarding warp, a C and C++ preprocessor written by Walter Bright in a joint project with Facebook. This has been released under the Boost license and is available at https://github.com/facebook/warp.
The Facebook blog makes the following statement with regards to improved efficiency over the GCC preprocessor
Replacing gcc’s preprocessor with
warphas led to significant improvements of our end-to-end build times (including linking). Depending on a variety of circumstances, we measured debug build speed improvements ranging from 10% all the way to 40%, all in complex projects with massive codebases and many dependencies
Category: State-Machine
UML: Modelling User Interfaces Part 1 - Hierarchy and Navigation
This is the first post in a series that looks at the modelling of User Interface (UI) related software using UML.
The main purpose of the post is to explore how we effectively model the navigation of a tree-like hierarchy, especially when considering the premise “In a tree structure there is one and only one path from any point to any other point”.
The tl;dr is that UML does not necessarily have the ability to represent UI concepts of hierarchy and navigation effectively.