Thursday, 6 December 2018

C# 8.0 and Project-wide nullable reference types

C# 8.0 is available for use in Visual Studio 2019 Preview.  Mads Torgersen explains some of the key features in this video.

He explains how to enforce usage in a single file using

#nullable enable

What Mads doesn't explain is how to fully accept the new Nullable Reference Types for your entire project.

The secret is to add this to your .csproj file:


It goes here:

Now your whole project enforces nullable reference types!

Credit to this Reddit comment.

Saturday, 23 June 2018

dotnet new logicmonitor

Create a new LogicMonitor application using just three words at the command line.

All is explained in this video:

To install the template, type:

dotnet new -i LogicMonitor.Ali

To use the template, type:

dotnet new logicmonitor

Update appsettings.json and run using:

dotnet run

Thursday, 3 May 2018

Skype video 180 degree flip bug

Now this is the story all about how
And I'd like you to take a minute just sit right there
I'll tell you how it seems like I hang in mid air

On a three-screen setup, born and raised
On the middle screen is where I rest most of my gaze
Coding stuff, mailing, relaxing all cool
And all Skyping some colleagues, pairing .NET rules
When a touchscreen grabs my eye, now this looks good!
Order it on Amazon? Of course I should!
Flat on desk *under the main screen* but the cables go where?
I said "Display settings | Orientation | 'Landscape flipped'.  So there."

I called my mate on Skype and the video was here, the
Highest bitrate fresh and the audio was clear
If anything I could say all elements were there
But I thought "oh, FFS, I'm up in the air!"

I thought about trying Windows seven or eight
And I tried Zoom and WebEx - "Right way up! Skype you later!"
Clicked Skype | Help | Feedback - I was finally there
To log this bug down - hope you think that that's fair.

Sunday, 23 July 2017

Docker installation on Ubuntu 16.04.2 with TCP API

  1. Install of Ubuntu 16.04.2.
  2. Follow the instructions on
  3. Modify /lib/systemd/system/docker.service change:
    • ExecStart=/usr/bin/dockerd fd://
    • ExecStart=/usr/bin/dockerd -H fd:// -H tcp://
  4. Modify /etc/init.d/docker change:
    2. DOCKER_OPTS="-H tcp://"
    Restart docker with:
    • sudo service docker restart
    You will see:

    Warning: docker.service changed on disk. Run 'systemctl daemon-reload' to reload units.

    Do this as instructed:
    • systemctl daemon-reload
    ==== AUTHENTICATING FOR org.freedesktop.systemd1.reload-daemon ===
    Authentication is required to reload the systemd state.
    Authenticating as: David Bond,,, (david)

    Then restart again

    • sudo service docker restart
    Check that docker is still available from the command line:
    • docker version
     Version:      17.06.0-ce
     API version:  1.30
     Go version:   go1.8.3
     Git commit:   02c1d87
     Built:        Fri Jun 23 21:23:31 2017
     OS/Arch:      linux/amd64

     Version:      17.06.0-ce
     API version:  1.30 (minimum version 1.12)
     Go version:   go1.8.3
     Git commit:   02c1d87
     Built:        Fri Jun 23 21:19:04 2017
     OS/Arch:      linux/amd64
     Experimental: false

    Check that the TCP socket is open for requests:
    • curl http://localhost:2375/version
    You will see:


    Monday, 10 July 2017

    Monday, 3 July 2017

    Soma FM Player

    Free music directly to your system tray! And it's open source...

    The project is here:

    You can download the binary from here:

    There's a pretty installer:

    ...then the thing sits in your system tray with the lovely SomaFM red S:

    Start-up instructions:
    1. Press [Windows Key] and type Soma
    2. Press return when the SomaFM [S] appears.

    Operating instructions:
    • Left click to stop (the [S] turns green), left click again to start (the [S] turns red again).
    • Right click to change channel and modify settings.
    • Media keys will work if enabled (the default), including mute, play, volume up and down.
    • Right click and Click Exit to quit.
    Upgrade instructions: 
    1. Exit as per instructions, above
    2. Run the later version of the installer.

    Friday, 19 May 2017