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.
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.
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.
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 project also has a new logo:
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:
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.
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:
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).
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.
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.