Posts by Tag

Android Development

Flutter Revisited

Last year I took a quick look at Flutter, and decided to keep an eye on it and see how it matures. Here are my current thoughts. Flutter Since my first lo...

Fun with setOnClickListener and by lazy

The Problem Developing an Android app, using Android’s Navigation Components, and after returning to the first fragment, the button to go to the second frag...

More GitHub Libraries

I’ve come across another potentially useful gradle plugin, and write about one I’ve been using for a while. buildSrcVersions buildSrcVersions “is a Gradle ...

Starred Github Libraries

Over time, I’ve starred a number of libraries on GitHub, and lost track of what they are, and why I’ve starred them. So I thought I’d try recording them her...

Loading and Caching Data with Store

What is Store? Store is a library for “Async Data Loading and Caching” developed by the New York Times Android team. I’ve converted an app to use it, and h...

Flutter?

Flutter? I’ve been seeing Flutter in my news feeds since Google announced it’s in beta. So I thought it was worth taking a cursory look; watching a few vid...

Today’s HeadDesk bought to you by…

Today I’m writing a bit of code and I need to combine a few RxJava streams into a single stream, using combineLatest(). And it’s not working, not even compi...

Back to top ↑

Flutter

Flutter Widget Test Wrapper

When testing a widget, it needs to run in the correct environment, otherwise unrelated errors may occur. The Widget’s Test Environment Different widgets ha...

Flutter Holobooth - Going Deeper

As part of the lead up to Flutter Forward, Very Good Ventures and the Flutter team have released the Holobooth app, along with a blog post describing how it ...

Flutter Holobooth - First Look

As part of the lead up to Flutter Forward, Very Good Ventures and the Flutter team have released the Holobooth app, along with a blog post describing how it ...

ChatGPT

After reading A pragmatic guide to BuildContext in Flutter, I thought I’d ask ChatGPT to generate a blog post to see what it can come up with. Here’s what i...

Flutter BuildContext

I’ve just finished reading A pragmatic guide to BuildContext in Flutter, and these are my take aways. Also, read the article, it goes into more depth, and e...

Restricting Google Cloud Keys

A problem (and solution) encountered while trying to restrict Google Cloud API keys for a Flutter app. Restricting GCloud Keys Google Cloud allows you to r...

Google Sign-in and Flutter Web

Getting Google Sign-in working with Flutter Web I have a Flutter app that uses Firebase-Auth and Google Sign-in for authentication. It works on Android and ...

Flutter Revisited

Last year I took a quick look at Flutter, and decided to keep an eye on it and see how it matures. Here are my current thoughts. Flutter Since my first lo...

Flutter?

Flutter? I’ve been seeing Flutter in my news feeds since Google announced it’s in beta. So I thought it was worth taking a cursory look; watching a few vid...

Back to top ↑

Python

Implementing a Telegram Bot

Creating a bot to scan RSS feeds and YouTube playlists, and post updated to a Telegram channel. The Idea I want a place where I can view updates to a numbe...

Graphing ISP Quota Usage with Cacti

Graph your monthly internet quota with Cacti. Monthly Quota Usage Downloads Download or fork it here. Installation Python and th...

Back to top ↑

Sysadmin

Disks Are Treacherous And Not To Be Trusted

Murphy’s Law Murhpy’s Law: “Anything that can go wrong will go wrong.” This includes the disks in your computer. What’s on your computer? Your phone? The...

Graphing ISP Quota Usage with Cacti

Graph your monthly internet quota with Cacti. Monthly Quota Usage Downloads Download or fork it here. Installation Python and th...

A Simple LVM Summary

A simple script to summarize the LVM physical volumes, volume groups and logical volumes on a linux server. Created in response to a question on Serverfault...

Back to top ↑

Android Apps

Hot and Cold Days: XKCD 1321 on Android

Why When XKCD 1321 was published I thought it would be good to have it in an interactive format, wrote it down in my “Big Bucket of Ideas”, and forgot about...

Back to top ↑

Kotlin

Fun with setOnClickListener and by lazy

The Problem Developing an Android app, using Android’s Navigation Components, and after returning to the first fragment, the button to go to the second frag...

Today’s HeadDesk bought to you by…

Today I’m writing a bit of code and I need to combine a few RxJava streams into a single stream, using combineLatest(). And it’s not working, not even compi...

Moving Average Calculation in Kotlin

I’m working on an app that calculates and displays moving averages for a list of numbers. This post shows how I’m doing it in Kotlin, using list operations ...

Back to top ↑

GitHub Libraries

More GitHub Libraries

I’ve come across another potentially useful gradle plugin, and write about one I’ve been using for a while. buildSrcVersions buildSrcVersions “is a Gradle ...

Starred Github Libraries

Over time, I’ve starred a number of libraries on GitHub, and lost track of what they are, and why I’ve starred them. So I thought I’d try recording them her...

Loading and Caching Data with Store

What is Store? Store is a library for “Async Data Loading and Caching” developed by the New York Times Android team. I’ve converted an app to use it, and h...

Back to top ↑

Smart Watch

TicWatch E2 Four Years Later

Four years ago I bought a TicWatch E2. How has it held up? Battery Initially advertised with 2-day battery life, I had no problems, with the battery easil...

TicWatch E2 Six Months Later

Six months ago I blogged my initial impressions about the TicWatch E2. Here is my review after six months of use. Initial Expectations How has it lived up...

TicWatch E2 Initial Review

I recently purchased a TicWatch E2. It’s my first smartwatch, so I thought I’d collect my thoughts on it, Wear OS, and smart watches in general. This is my...

Back to top ↑

TicWatch E2

TicWatch E2 Four Years Later

Four years ago I bought a TicWatch E2. How has it held up? Battery Initially advertised with 2-day battery life, I had no problems, with the battery easil...

TicWatch E2 Six Months Later

Six months ago I blogged my initial impressions about the TicWatch E2. Here is my review after six months of use. Initial Expectations How has it lived up...

TicWatch E2 Initial Review

I recently purchased a TicWatch E2. It’s my first smartwatch, so I thought I’d collect my thoughts on it, Wear OS, and smart watches in general. This is my...

Back to top ↑

WearOS

TicWatch E2 Four Years Later

Four years ago I bought a TicWatch E2. How has it held up? Battery Initially advertised with 2-day battery life, I had no problems, with the battery easil...

TicWatch E2 Six Months Later

Six months ago I blogged my initial impressions about the TicWatch E2. Here is my review after six months of use. Initial Expectations How has it lived up...

TicWatch E2 Initial Review

I recently purchased a TicWatch E2. It’s my first smartwatch, so I thought I’d collect my thoughts on it, Wear OS, and smart watches in general. This is my...

Back to top ↑

Cacti

Graphing ISP Quota Usage with Cacti

Graph your monthly internet quota with Cacti. Monthly Quota Usage Downloads Download or fork it here. Installation Python and th...

Back to top ↑

Google Maps

Hot and Cold Days: XKCD 1321 on Android

Why When XKCD 1321 was published I thought it would be good to have it in an interactive format, wrote it down in my “Big Bucket of Ideas”, and forgot about...

Back to top ↑

Mobile Development

Flutter Revisited

Last year I took a quick look at Flutter, and decided to keep an eye on it and see how it matures. Here are my current thoughts. Flutter Since my first lo...

Flutter?

Flutter? I’ve been seeing Flutter in my news feeds since Google announced it’s in beta. So I thought it was worth taking a cursory look; watching a few vid...

Back to top ↑

Android Libraries

Starred Github Libraries

Over time, I’ve starred a number of libraries on GitHub, and lost track of what they are, and why I’ve starred them. So I thought I’d try recording them her...

Loading and Caching Data with Store

What is Store? Store is a library for “Async Data Loading and Caching” developed by the New York Times Android team. I’ve converted an app to use it, and h...

Back to top ↑

Rambling Opinions

Microsoft + GitHub = ?

It’s now confirmed that Microsoft have Acquired GitHub. How will this affect me? Should I be worried? Do I need to do anything? I think, in general, this...

Back to top ↑

Gradle Plugins

More GitHub Libraries

I’ve come across another potentially useful gradle plugin, and write about one I’ve been using for a while. buildSrcVersions buildSrcVersions “is a Gradle ...

Starred Github Libraries

Over time, I’ve starred a number of libraries on GitHub, and lost track of what they are, and why I’ve starred them. So I thought I’d try recording them her...

Back to top ↑

Web Development

Google Sign-in and Flutter Web

Getting Google Sign-in working with Flutter Web I have a Flutter app that uses Firebase-Auth and Google Sign-in for authentication. It works on Android and ...

Flutter Revisited

Last year I took a quick look at Flutter, and decided to keep an eye on it and see how it matures. Here are my current thoughts. Flutter Since my first lo...

Back to top ↑

Dart

Publishing a Dart Package

pub publish and .gitignore pub publish is used to publish Dart packages to pub.dev, and the --dry-run option shows the files it will upload without doing it...

Moving Average

Moving Average Package Moving Average is a Dart library to calculate moving averages of numbers. Currently it works only on List<num>, but I’m consid...

Back to top ↑

Dart Package

Publishing a Dart Package

pub publish and .gitignore pub publish is used to publish Dart packages to pub.dev, and the --dry-run option shows the files it will upload without doing it...

Moving Average

Moving Average Package Moving Average is a Dart library to calculate moving averages of numbers. Currently it works only on List<num>, but I’m consid...

Back to top ↑

pub.dev

Publishing a Dart Package

pub publish and .gitignore pub publish is used to publish Dart packages to pub.dev, and the --dry-run option shows the files it will upload without doing it...

Moving Average

Moving Average Package Moving Average is a Dart library to calculate moving averages of numbers. Currently it works only on List<num>, but I’m consid...

Back to top ↑

Flutter BuildContext

ChatGPT

After reading A pragmatic guide to BuildContext in Flutter, I thought I’d ask ChatGPT to generate a blog post to see what it can come up with. Here’s what i...

Flutter BuildContext

I’ve just finished reading A pragmatic guide to BuildContext in Flutter, and these are my take aways. Also, read the article, it goes into more depth, and e...

Back to top ↑

Flutter Forward

Flutter Holobooth - Going Deeper

As part of the lead up to Flutter Forward, Very Good Ventures and the Flutter team have released the Holobooth app, along with a blog post describing how it ...

Flutter Holobooth - First Look

As part of the lead up to Flutter Forward, Very Good Ventures and the Flutter team have released the Holobooth app, along with a blog post describing how it ...

Back to top ↑

Holobooth

Flutter Holobooth - Going Deeper

As part of the lead up to Flutter Forward, Very Good Ventures and the Flutter team have released the Holobooth app, along with a blog post describing how it ...

Flutter Holobooth - First Look

As part of the lead up to Flutter Forward, Very Good Ventures and the Flutter team have released the Holobooth app, along with a blog post describing how it ...

Back to top ↑

Bash

A Simple LVM Summary

A simple script to summarize the LVM physical volumes, volume groups and logical volumes on a linux server. Created in response to a question on Serverfault...

Back to top ↑

LVM

A Simple LVM Summary

A simple script to summarize the LVM physical volumes, volume groups and logical volumes on a linux server. Created in response to a question on Serverfault...

Back to top ↑

Open Data

Back to top ↑

Backups

Disks Are Treacherous And Not To Be Trusted

Murphy’s Law Murhpy’s Law: “Anything that can go wrong will go wrong.” This includes the disks in your computer. What’s on your computer? Your phone? The...

Back to top ↑

RxJava

Today’s HeadDesk bought to you by…

Today I’m writing a bit of code and I need to combine a few RxJava streams into a single stream, using combineLatest(). And it’s not working, not even compi...

Back to top ↑

Microsoft

Microsoft + GitHub = ?

It’s now confirmed that Microsoft have Acquired GitHub. How will this affect me? Should I be worried? Do I need to do anything? I think, in general, this...

Back to top ↑

GitHub

Microsoft + GitHub = ?

It’s now confirmed that Microsoft have Acquired GitHub. How will this affect me? Should I be worried? Do I need to do anything? I think, in general, this...

Back to top ↑

Android Architecture Components

Back to top ↑

Android Navigation Component

Back to top ↑

Kotlin Android Extensions

Fun with setOnClickListener and by lazy

The Problem Developing an Android app, using Android’s Navigation Components, and after returning to the first fragment, the button to go to the second frag...

Back to top ↑

Google

Back to top ↑

Google Plus

Back to top ↑

Social Media

Back to top ↑

App Removal

Back to top ↑

Google Play

Back to top ↑

Privacy Policy

Back to top ↑

iOS Development

Flutter Revisited

Last year I took a quick look at Flutter, and decided to keep an eye on it and see how it matures. Here are my current thoughts. Flutter Since my first lo...

Back to top ↑

Google Sign-in

Google Sign-in and Flutter Web

Getting Google Sign-in working with Flutter Web I have a Flutter app that uses Firebase-Auth and Google Sign-in for authentication. It works on Android and ...

Back to top ↑

Bluetooth

RTFM and Save Yourself Time

Bluetooth I have a learning project to learn how to use Bluetooth with Flutter. This involves me setting up a Bluetooth server on a Raspberry Pi 3 B to mak...

Back to top ↑

Linux

RTFM and Save Yourself Time

Bluetooth I have a learning project to learn how to use Bluetooth with Flutter. This involves me setting up a Bluetooth server on a Raspberry Pi 3 B to mak...

Back to top ↑

Raspberry Pi

RTFM and Save Yourself Time

Bluetooth I have a learning project to learn how to use Bluetooth with Flutter. This involves me setting up a Bluetooth server on a Raspberry Pi 3 B to mak...

Back to top ↑

dbus

RTFM and Save Yourself Time

Bluetooth I have a learning project to learn how to use Bluetooth with Flutter. This involves me setting up a Bluetooth server on a Raspberry Pi 3 B to mak...

Back to top ↑

Telegram

Implementing a Telegram Bot

Creating a bot to scan RSS feeds and YouTube playlists, and post updated to a Telegram channel. The Idea I want a place where I can view updates to a numbe...

Back to top ↑

Telegram Bot

Implementing a Telegram Bot

Creating a bot to scan RSS feeds and YouTube playlists, and post updated to a Telegram channel. The Idea I want a place where I can view updates to a numbe...

Back to top ↑

Bots

Implementing a Telegram Bot

Creating a bot to scan RSS feeds and YouTube playlists, and post updated to a Telegram channel. The Idea I want a place where I can view updates to a numbe...

Back to top ↑

RSS

Implementing a Telegram Bot

Creating a bot to scan RSS feeds and YouTube playlists, and post updated to a Telegram channel. The Idea I want a place where I can view updates to a numbe...

Back to top ↑

YouTube

Implementing a Telegram Bot

Creating a bot to scan RSS feeds and YouTube playlists, and post updated to a Telegram channel. The Idea I want a place where I can view updates to a numbe...

Back to top ↑

YouTube API

Implementing a Telegram Bot

Creating a bot to scan RSS feeds and YouTube playlists, and post updated to a Telegram channel. The Idea I want a place where I can view updates to a numbe...

Back to top ↑

Google Cloud

Restricting Google Cloud Keys

A problem (and solution) encountered while trying to restrict Google Cloud API keys for a Flutter app. Restricting GCloud Keys Google Cloud allows you to r...

Back to top ↑

Moonlander

Moonlander Keyboard

I recently purchased a Moonlander mechanical keyboard from ZSA. What follows are my thoughts and experiences. Why I’ve been using laptop keyboards for 5+ ...

Back to top ↑

Keyboard

Moonlander Keyboard

I recently purchased a Moonlander mechanical keyboard from ZSA. What follows are my thoughts and experiences. Why I’ve been using laptop keyboards for 5+ ...

Back to top ↑

QWERTY

Moonlander Keyboard

I recently purchased a Moonlander mechanical keyboard from ZSA. What follows are my thoughts and experiences. Why I’ve been using laptop keyboards for 5+ ...

Back to top ↑

Colemak

Moonlander Keyboard

I recently purchased a Moonlander mechanical keyboard from ZSA. What follows are my thoughts and experiences. Why I’ve been using laptop keyboards for 5+ ...

Back to top ↑

Colemak-DH

Moonlander Keyboard

I recently purchased a Moonlander mechanical keyboard from ZSA. What follows are my thoughts and experiences. Why I’ve been using laptop keyboards for 5+ ...

Back to top ↑

ChatGPT

ChatGPT

After reading A pragmatic guide to BuildContext in Flutter, I thought I’d ask ChatGPT to generate a blog post to see what it can come up with. Here’s what i...

Back to top ↑

AI

ChatGPT

After reading A pragmatic guide to BuildContext in Flutter, I thought I’d ask ChatGPT to generate a blog post to see what it can come up with. Here’s what i...

Back to top ↑

Artificial Intelligence

ChatGPT

After reading A pragmatic guide to BuildContext in Flutter, I thought I’d ask ChatGPT to generate a blog post to see what it can come up with. Here’s what i...

Back to top ↑

Bloc

Flutter Holobooth - Going Deeper

As part of the lead up to Flutter Forward, Very Good Ventures and the Flutter team have released the Holobooth app, along with a blog post describing how it ...

Back to top ↑

Testing

Flutter Widget Test Wrapper

When testing a widget, it needs to run in the correct environment, otherwise unrelated errors may occur. The Widget’s Test Environment Different widgets ha...

Back to top ↑