Go Play – Mouse Guard RPG playtest

So, I will be running some Mouse Guard quick shot (90 minute) sessions at the Go Play Brisbane 2018 gaming convention in September this year.

To test out the system I ran a bunch of young (pre-teen) children through it: my daughter and the kids of a few friends. I figured if it can survive them, then it will survive any players.

I played the introductory scenario “Find the Grain Peddler”.

Here are their character sheets; I let the players pick their own cloak colour:


Read the rest of this entry »


Leave a comment

Blockchain Conference and some musings on Bitcoin use cases

So, I attended Agile Global/Knowledge Hut’s Blockchain Conference in Brisbane today.

My highlight was Aleksander Svetski, both his scheduled talk on Money/Bitcoin and the fill in he did in the morning on Cryptoeconomics (one of the other speakers couldn’t make it).

Some of the other talks I liked were Benjamin Hall‘s talk on payment modernisation, and Kristyn Hales‘ talk on regulation of capital raising via coins/tokens; Dr Adrian McCullagh‘s talk on smart contracts was also reasonably interesting.

But, it was Aleks’ talk on the history of money and why money (aka Bitcoin) is blockchain’s killer app, and projects to increase the network size/reach like Stashh that got me thinking ‘but what are the use cases for Bitcoin right now?’ — should we start using it to buy our groceries, or is it only for criminals?

Some Bitcoin use cases




Buying groceries from the local shop or your morning cup of coffee

Not really

Right now, Australia has both stable fiat currency and extensive electronic payment options.

Until we get to the point where we distrust the government, Bitcoin is not very useful for local shopping.

Everyday shopping on the Internet

Not really

We have plenty of reliable third party payment, such as PayPal, Mastercard, VISA, and others.

Maybe Bitcoin has enough advantage in lower transactions fees for larger purchases where customers are charged a transaction fee that it is worth it, but right now I don’t think it is really needed by the majority of people.

Note also that you need to have even greater trust in the merchant if paying by Bitcoin, as third party payment mechanisms can be reversed if the merchant never delivers, whereas Bitcoin, like cash, can’t.

Should merchants accept Bitcoin, even if there are few customers using it

Why not, if it doesn’t cost anything

Online shops could probably benefit from being able to transparently accept payment via Bitcoin (especially if fees turn out lower), but there may be some fixed costs in supporting it as a payment alternative.

High transaction fees have seen it dropped by some providers, but initiatives like TravelByBit are a good step. If the cost of providing the additional payment mechanism is close enough to zero, then having as many merchants as possible accept bitcoin, even if it is rarely used, is a good way to increase the network.

Funding causes censored by the government, or purchase of illicit items

Yes, useful

This ranges from supporting causes like Wikileaks, where governments have put pressure on traditional transaction providers to deny them service, through to grey and black markets.

Full disclosure: the political party I support has a policy of decriminalisation and legalisation [https://www.ldp.org.au/drug_reform] of currently illicit drugs; under the current laws a lot of the harm caused by drugs is a direct result of prohibition, and in this respect the availability of Bitcoin and black/grey markets actually reduces the damage done.

The unbanked population


I agree with Aleks that this is potentially one of the biggest growth areas.

Many of the world’s poor, despite impoverishment, have leapfrogged straight to mobile Internet; in the absence of an available banking sector, Bitcoin has an opportunity to be *the* banking solution for these people.

International travel


This is an interesting scenario — rather than constant currency exchange (along with the inability to get rid of coins), Bitcoin at airports (such as TravelByBit) makes some sense — although existing credit cards already work fine for that (even with high exchange costs).

Large purchases

Makes sense

It is probably a bit uncomfortable to walk around with $30,000 cash (a car), or even $3,000 cash (a purebred puppy), and even if you have a credit card with a high enough limit the fees may be too high (and ma

rgins too low) to be viable, especially if it is the sort of thing where you want to inspect and exchange on the spot (rather than do a bank transfer).

The usual solution for these sorts of things is a bank cheque, but Bitcoin could remove the hassle of having to visit a physical bank, if the fees are low enough.

Real time payment systems, such as PayID that just launched in Australia, may intrude in this space (depending on the fees).

Settlement layer


Sure, but not really relevant to the average user.

All up in the first world, there are some fairly narrow use cases where it makes sense, such as supporting censored causes or large purchases, unless you want to start risking illicit activity; the big case could be the unbanked.

For a list a bit more risque, see http://www.libertylifetrail.com/2016/04/04/the-top-use-cases-for-bitcoin/

Note that it explicitly excludes use cases that are clear violations of property rights or an initiation of violence; whilst Bitcoin, as a tool, could be used for such scenarios, they should not be considered valid.

Anyway, attending the conference has hopefully encouraged me to spend more time on doing learning and professional development in the Bitcoin/Blockchain space.

Leave a comment

Structured logging with .NET Framework System.Diagnostics

Structured logging (also sometimes called semantic logging) is a useful addition to the software development toolkit.

The latest release (2.2.0, and some 2.1.728) of Essential.Diagnostics adds structured tracing capabilities to the .NET Framework System.Diagnostics. It integrates seamlessly with existing tracing, including from the .NET Framework, and includes both producer-side extensions (to include in your application) and trace listener changes (to integrate with structured tracing systems).

The key new and updated packages are:

While the packages can be used independently, using both a producer and consumer in combination multiplies the benefits.

Read the rest of this entry »

Leave a comment

Versioning .NET Core in Visual Studio Team Services

I have always found it useful for applications to display their build version, and for libraries to have the build version in their properties. Relying on properties like the date (or file size) is always a bit risky.

.NET Core has embraced Semantic Versioning and at first glance appears to have a new way to specify version numbers.

It doesn’t quite work to my full satisfaction, but luckily the older methods still work, so a basic GitVersion task in your build pipeline is pretty much all you need to get things working.

Read the rest of this entry »

Leave a comment

Seq TraceListener for System.Diagnostics

Following hot on the heels of v2 of Essential.Diagnostics, work on the beta version of the Essential.Diagnostics.SeqTraceListener has been completed, and it has been published to NuGet.

PM> Install-Package Essential.Diagnostics.SeqTraceListener

This provides a trace listener implementation that forwards messages to a Seq logging server. For performance it forwards messages in batches (with the first message being sent immediately, so you know the system is up and running), with automatic back off and retry when there are interruptions to the network communication.

This component can be used with the new Microsoft.Extensions.Logging for .NET 4.5.1 and above, or with Sytem.Diagnostics.TraceSource for .NET 2.0 through 4.5.

Leave a comment

Essential.Diagnostics v2

I have made significant changes in the organisation of the Essential.Diagnostics project; although none of the actual implementations have changed, the project has been split into separate packages for each trace listener, available via NuGet.

The packages are available on NuGet (Essential.Diagnostics), and the source code on CodePlex (Essential.Diagnostics).

The project also has a new logo:


Read the rest of this entry »

Leave a comment

The wrong policy approach to climate change

There are two interrelated aspects when discussing global warming and climate change: one is the validity of the science, and the other is the policy approach taken.

This post is about the policy approach taken, so rather than debate the science, assume there is a scenario where a producer is causing damage (external costs) to others, and consider what policy is appropriate in such a situation:

Climate Policy 0 - damage

For too long has the Left been allowed to own this issue, leading invariably to big government attempts at a solution. Given the track record of governments in handling environmental issues, this is not a good outcome.

Most current policy approaches to this situation are wrong because they are manifestly unfair.

It is time that we campaign to ensure that a fair, market-based, solution is achieved.

Below I will detail several of the current policy approaches being used, and show why they are wrong; I will then make the case why the libertarian approach, based on private property rights, is the correct solution.

Read the rest of this entry »

Leave a comment