Brew Day
- Pale Ale Malt - 3.330 kg
- Pilsner Malt - 3.330 kg
- Munich Malt - Dark - 0.700 kg
- Caramel 100 - 38L - 0.150 kg
Teenager Dog Training Session 1
Signing Git Commits in VS Code and Visual Studio
Notes From Addressing Penetration Test Findings
How To Create a Custom UserStore in ASP.NET Core 6
Making pizza in my Ooni Koda 12
I love pizza but nothing you can buy from the shop comes close to freshly made pizza and delivery is usually getting cold by the time it arrives.
Luckily for Christmas I received an Ooni Koda 12 (Thanks Caitriona), just connect the bottle of gas turn it on and after 15 minutes you have a 400°C oven ready to cook a pizza in only 90 seconds.
Ooni have great recipes on their website for Classic Pizza Dough and Classic Pizza Sauce but the dough recipe doesn't seem to be quite right for the Ooni Koda 12, the bases just seem too big for the peels, but this could be my lack of knowledge with making bases, but I find a little less is better and I only usually want 2 pizzas each time I use the oven.
My Tweaked Recipe
The proportions remain the same, but the accuracy of the proportions are all important.
Centralizing VSTO add in exception management with postsharp 6
After much reading around trying to find the best way to implement a global exception handler for a VSTO add-in on social msdn, stackoverflow and the Add-in Express forum I came across this solution using postsharp, this was the best solution I found but was 11 years old and relevant to postsharp 2, the library has changed a lot since then and the PostSharp.Laos namespace no longer exists as explained the postsharp support forum. ## The Solution in PostSharp 6
Happily this is still possible with PostSharp Community and is well documented in the postsharp handling exceptions documentation. First create a class which inherits from OnExceptionAspect for example VstoUnhandledExceptionAttribute. csharp using Microsoft.Extensions.Logging; using PostSharp.Aspects; using PostSharp.Serialization; namespace MarkZither.KimaiDotNet.ExcelAddin \\\{ [PSerializable] public class VstoUnhandledExceptionAttribute : OnExceptionAspect \{ public override void OnException(MethodExecutionArgs args) { ExcelAddin.Globals.ThisAddIn.Logger.LogCritical(args.Exception, "Handled by postsharp OnExceptionAspect"); args.FlowBehavior = FlowBehavior.Return; \\} } } This step will vary depending on how you are doing logging in your VSTO Add-In, I chose to use Microsoft.Extensions.Logging, while it arrived with .NET Core it is a .NETStandard 2.0 library and compatible all the way back to .NETFramework 4.6.1. csharp private void ThisAddIn_Startup(object sender, System.EventArgs e) \\{ instantiate and configure logging. Using serilog here, to log to console and a text-file. var loggerFactory = new Microsoft.Extensions.Logging.LoggerFactory(); var loggerConfig = new LoggerConfiguration() .MinimumLevel.Debug() .WriteTo.File("c:\\temp\\logs\\myapp.txt", rollingInterval: RollingInterval.Day) .CreateLogger(); loggerFactory.AddSerilog(loggerConfig); // create logger and put it to work. var logProvider = loggerFactory.CreateLogger<ThisAddIn />(); logProvider.LogDebug("debiggung"); Logger = logProvider; Configure PostSharp Logging to use Serilog LoggingServices.DefaultBackend = new MicrosoftLoggingBackend(loggerFactory); Globals.ThisAddIn.ApiUrl = Settings.Default?.ApiUrl; Globals.ThisAddIn.ApiUsername = Settings.Default?.ApiUsername; this.Application.WorkbookActivate += Application_WorkbookActivate; this.Application.WorkbookOpen += Application_WorkbookOpen; \} There is one important line in the logging setup which differs to the PostSharp Logging documentation at the time of writing, LoggingServices.DefaultBackend = new MicrosoftLoggingBackend(loggerFactory); which needs using PostSharp.Patterns.Diagnostics.Backends.Microsoft;. This is also useful for trace logging which I will explain further in the next section. Now decorate methods or entire classes with the [VstoUnhandledException] attribute and every exception will be handled by the OnException method. ## Bonus functionality in PostSharp community
As I had logging working I also made use of the features of PostSharp Logging
My First Skydive @ LuxFly
For a birthday present I received a voucher to do an indoor skydive at LuxFly at the Luxembourg and Belgium border. Thanks to Covid 19 lockdowns I had another birthday before I could actually make use of the Falcon9 experience. ## Arrival As Covid restrictions were still in place there were not many people there when I arrived, but the staff were very welcoming and efficient finding my booking, checking me in and explaining how things would work. I was early so had time to watch some experienced people flying around, hovering in a seated position, doing headstands and slow motion backflips, sometimes it reminded me of wire work in a Wuxia movie. I remember it something like this...
KimaiDotNet based Office Add-ins
As of v1.0.0.0 released on 09032023 the VSTO is signed with an open source code signing cert from Certum this should mean the installation is automatically trusted. If you installed a version before v1.0.0.0 you must uninstall it before installing v1.0.0.0 as the change in signing cert will prevent the upgrade working. Until I get a real certificate you will need to install this self-signed certificate as a Download Excel Add-in ## Create an API password in Kimaitrusted root certification authority to be able to install the add-in.
