• NDC Sydney 2017

    Delegate badgeMy second time attending NDC Sydney, and this was extra special as I’d been accepted as a speaker. I was excited and pretty nervous!

    I flew over Tuesday evening. It was quite windy with a fair bit of turbulence on the flight. A decent tailwind meant even though we left Adelaide late, we still got into Sydney on time.

    Wednesday

    Jennifer MarsmanThe conference kicked off with a keynote from Jennifer Marsman talking about using EEG and Machine Learning to perform lie detection (on her husband!). Not sure about the lie detection, but I do like the application of EEG to enable things like controlling a wheelchair, and it was useful to learn about the different kinds of algorithms and models you used for different types of problems.

    Barry DorransBarry Dorrans walked through a bunch of security vulnerabilities that had been discovered in .NET. Some subtle causes and a few things to watch out for in your own code.

    Edith HarbaughEdith Harbaugh gave a good overview of using feature flags. She is from Launch Darkly, a company that provides ‘feature flags as a service’, though her talk was more general. One point she made was that feature flags can be dynamic – something that can be changed at runtime, not just a config setting that is set at startup.

    Damian EdwardsDamian Edwards raced through what’s new in ASP.NET Core. This is looking pretty good.

    Bart De SmetBart De Smet is a guru of .NET and CLR internals. I’ve watched some of his Pluralsight courses already. This talk on C# internals was fascinating.

    20170816_062053378_iOSFilip Ekberg dug into asynchronous programming.

    20170816_074407961_iOSRounding out the day with Jimmy Bogard doing CI with Azure. 20170816_103047694_iOSWednesday evening there was a cruise on Sydney harbour. It was a little chillier than the last time I’d been out, but nice food and great to socialise with other attendees.

    Thursday

    20170816_230056563_iOSFirst thing Michele Bustamante stepped through using Docker.

    @DavidRGardiner talks chocolatey at #ndcsydney pic.twitter.com/3fhH2Bj9VH

    — Ben Laan (@benlaan) August 17, 2017

    Then it was my talk on using Chocolatey and Boxstarter! All my demos went off without a hitch and there were lots of questions from the audience. I think the early attendees appreciated the bonus chocolate frogs too. Thanks to Ben for coming along and being a friendly face in the front row (and taking the photo!)

    I hung around because Bart De Smet was up after me diving in to a bunch of areas of .NET to watch out for when you really care about performance.

    Steve SandersonSteve Sanderson showed off some nice options available now in ASP.NET Core.

    Richard CampbellThe one and only Richard Campbell with a history lesson about .NET. Informative and entertaining.

    Dina GoldshteinDina Goldshtein on self-monitoring apps. Some interesting ways to do logging and diagnostics.

    Finally a bit more Michelle Bustamante with more Docker – this time looking at some of the orchestration tools.

    Thursday evening there was a social evening, including a bunch of pretty funny “short stories about failure” from some of the speakers. Some people partied on late into the night, but I retired early.

    Friday

    Nick BlumhardtNick Blumhardt gave a great talk introducing SeriLog and structured logging.

    Kylie HuntKylie Hunt talked about dealing with problem bosses. A mix of good suggestions and sharing personal experiences. Maybe I’m just an old fuddy-duddy, but personally I’m less impressed by speakers at conferences that need a swear jar.

    Laura Bell Laura Bell had some good content on building in security.

    Cosmo robot with Lars KlintLars Klint did a really interesting talk about Cosmo – a little programmable robot. Jimmy PelletierLast talk I caught was from Jimmy Pelletier on how his team introduced micro services into their architecture.

    There was the option of attending PubConf after the main conference had finished, but I’d already made plans to catch up with some old Adelaide friends who are now living in Sydney. It was really great to spend Friday evening and Saturday with them before my flight home in the late afternoon.

    Here’s a pretty waterfall that I saw on Saturday when we went out for a walk. It’s been dry in Sydney recently, so imagine what it would be like after a bit of rain. Waterfall

    All in all, again NDC Sydney didn’t disappoint and I can only hope it continues to grow and get better next year. There were quite a few times where I was spoiled for choice. I’ll be looking forward to catching up on missed sessions when the recordings are published in a few weeks. It was great to see the Adelaide contingent growing from 2 last year to 9 (that I know of). The word is getting out that this is THE developer conference you should attend!

  • Running SQL Server Configuration Manager without SQL Server installed

    I like to have SQL Server Management Studio (SSMS) installed as part of my standard development environment. Usually this is because I also have an instance of SQL Server Developer or Express Edition installed, but not always.

    One thing I noticed with the separate distribution of SSMS is that it also includes all the other management tools that used to be bundled with the server, like SQL Server Configuration Manager.

    I wanted to change the SQL Client configuration settings and Configuration Manager is the tool I’d use to do that. But when I fired it up (it’s named SQL Server vNext CTP2.0 Configuration Manager in the latest release of SSMS), I’ve been greeted with this message:

    Error dialog from SQL Server Configuration Manager

    I don’t see this problem when an instance of SQL Server is installed though.

    The fix is documented in KB 956013. I ran the following from an elevated command prompt:

    mofcomp "%programfiles(x86)%\Microsoft SQL Server\140\shared\sqlmgmproviderxpsp2up.mof"

    Now SQL Server Configuration Manager starts up without error

    Oh, and the easiest way to install SSMS is to use Chocolatey!

    choco install sql-server-management-studio

  • TypeScript tsconfig.json being ignored in C# project

    TL;DR - Make sure your tsconfig.json file has the Build Action set to Content

    I have some TypeScript files included in a .NET project. I added the Microsoft.TypeScript.MSBuild NuGet package to the project to enable the TypeScript compiler to transpile the .ts files to JavaScript. All was good until I wanted to set some compiler options using the tsconfig.json file. I created this file but every time I compiled the project it didn’t do anything different.

    I almost pulling out my hair in frustration, so I decided to dig in deeper to find out why this was happening. First, I ran msbuild with detailed logging. That showed up the following line just before the CompileTypeScript target was run:

    Target "PreComputeCompileTypeScriptWithTSConfig" skipped, due to false condition; ('@(ConfigFiles)' != '') was evaluated as ('' != '').
    

    A bit more digging led me to packages\Microsoft.TypeScript.MSBuild.2.3.1\tools\net45\Microsoft.TypeScript.targets – This defines that PreComputeCompileTypeScriptWithTSConfig target which is looking for @(ConfigFiles), which in turn is set in target FindConfigFiles. That target calls the FindConfigFiles task that is in TypeScript.Tasks.dll.

    Firing up JetBrains dotPeek to reflect on the code for FindConfigTasks shows that it uses the ContentFiles property to look for existing tsconfig.json files, and that property is set to @(Content) in the targets file.

    Jumping back to my project, I notice this: Screenshot of tsconfig.json and Build Action set to None

    Ah haa! Let’s set that Build Action to Content and try again.. Yes! Building the project shows tsc.exe being passed the --project parameter pointing to the tsconfig.json file!