Blockchain Conference and some musings on Bitcoin use cases(4 min read)

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

Scenario

Bitcoin?

Comments

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

Yes

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

Sure

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

Yes

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.

Structured logging with .NET Framework System.Diagnostics(6 min read)

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.

Continue reading Structured logging with .NET Framework System.Diagnostics(6 min read)

Versioning .NET Core in Visual Studio Team Services(8 min read)

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.

Continue reading Versioning .NET Core in Visual Studio Team Services(8 min read)

Seq TraceListener for System.Diagnostics(1 min read)

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.

Essential.Diagnostics v2(3 min read)

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:

essential-diagnostics-64

Continue reading Essential.Diagnostics v2(3 min read)

The right policy approach to climate change(8 min read)

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.

Continue reading The right policy approach to climate change(8 min read)

Minor Parties Vote Compass, Australian 2016 Federal Election(12 min read)

The ABC Vote Compass is a good tool for orientating yourself in the political spectrum but only showed the three major parties, as did Fairfax's YourVote; the third party iSideWith did a bit better, including the other parties with elected Senators: Family First and the Liberal Democrats. Meanwhile, the international Political Compass, for some reason, included Katter's Australian Party.

So, what about all the other minor parties? Well, here is my attempt at putting them on the graph:

Post - Vote Compass

Where possible, the results are based on an official email response from the party, otherwise, it is based on policy documents and other stated positions.

Being a classical liberal, I support both economic and social freedom, so am interested in the overall liberalism rating of parties, the forward diagonal, from the most control-leaning (bottom-left) to freedom-leaning (top-right).

Post - Liberalism

In this post, I provide the calculated results for the parties, presented across several different dimensions, as well as the full details of the calculations.

Continue reading Minor Parties Vote Compass, Australian 2016 Federal Election(12 min read)

ABC Vote Compass 2016 diagonal bias(5 min read)

For the 2016 election, the ABC Vote Compass has a diagonal bias embedded in some of the questions, reinforcing the major party axis and making it impossible to score highly (or lowly) in both economic freedom (Economic Right) and social freedom (Social Progressive) at the same time.

Due to the structure of the questions, final results are only possible within the shaded area, and can never reach the top right or bottom left corners.

EDIT (2016-06-23): It is possible to get in the top right (or bottom left) by answering "Don't Know" (rather than the middle answer) to the six diagonal questions. Results are scaled to only the questions you answer (this also scales the position of the parties to those same questions). The limitation applies if you answer every question. Also, the actual limit is slightly curved (not a straight line), as each question has a slightly different economic/social ratio, so it is actually possible to do slightly better than all-neutral answers.

Vote Compass 2016 - diagonal bias
Vote Compass 2016 - diagonal bias

Continue reading ABC Vote Compass 2016 diagonal bias(5 min read)

Proportional Representation(1 min read)

There are many different criteria by which voting systems can be evaluated.

One of the most important criteria to me is proportional representation. Closely related to this are transferrable vote systems, which help maintain proportionality.

I was surprised to find out, after moving state within Australia to Queensland, to find out that it was the only state without some form of proportional representation!

All other states have an Upper House elected by proportional representation. The Lower Houses are formed from single member electorates, and so absolutely dominated by the major parties with no proportionality, but the bicameral parliament ensures some measure of democracy is maintained.

(Effectively, with the Lower House always dominated by one party or the other, there is never any possible meaningful debate there; the government will always win, every time. The only real debate, negotiation and compromise, or possibility of failure, occurs in the Upper House.)

As shown in the graphs below, at a federal level, there is already a degree of bias towards the major parties (getting more seats than the proportionally should), due to the high quotas (low number of positions) in the Senate. Recent proposed changes will make this even worse, with the 18% of voters for minor parties reduced to a single seat (2% of the parliament).

AU - 2013 Senate and Senators

SharePoint Online continuous deployment with IonFar Migration(8 min read)

Install-Package IonFar.SharePoint.Migration

The common stack I am currently using to build SharePoint Online solutions generally consists of the following components:

This stack allows automated deployment of the project against a continuous integration (CI) environment. Simple migration scripts (written in PowerShell) are cumulatively run against the environment, and can be easily promoted to a UAT and then Production environment.

IonFar-Basic-Script
Example migration script

Continue reading SharePoint Online continuous deployment with IonFar Migration(8 min read)