Do You Speak LogFile?
If you are using Umbraco v8, you probably have noticed that the beautiful text logfiles containing lines as explicit and helpful as2019-04-04 10:31:35,309 [P3248/D10/T5] INFO...
View ArticleRemember Rick Dangerous?
Way before Lara Croft, back in the 1980's and early 1990's, Rick Dangerous was the Indiana Jones of computer games, running away from rolling rocks, avoiding traps, from South America to a futuristic...
View ArticleTide Flows
This is the very first email I have received from Niels Hartvig, founder of the Umbraco CMS, answering some trivial questions I had asked on the contact form, while evaluating Umbraco for a client.I...
View ArticleSolutionBook for Visual Studio 2019
For many years, I have used the excellent SolutionStartPage extension for Visual Studio 2015 and 2017. This extension replaces the default Start Page with a customizable view of all my solutions. It is...
View ArticleModels Builder Extension
One way to generate models for Umbraco with the Models Builder tool has long been to use the Visual Studio Custom Tool. This extension provides a Single File Generator which can be used just as any...
View ArticleMissing Folders in Umbraco Tree
On this very site, which originally started as a v7 site and has slowly been upgraded to the latest 8.1 release, something weird started happening. Some media folders stopped showing in the media tree...
View ArticleUmbraco 8.1.4 Breaking & Models Builder
UPDATED: the proposed workaround has been simplified, see at the bottom of this post.The Umbraco 8.1.4 release fixes issue #6033 but introduces a breaking change.Up until this release, when a media...
View ArticleUmbraco Life Experiment
A few months ago I announced I would be leaving HQ and transitioning back to the community side of Umbraco, end of September. People assumed I had some sort of a Grand Plan, an amazing business...
View Article.NET Core 3.0 Release
This week is .NET Conf 2019, and as expected (after a suprise RC1), .NET Core 3.0 has been officially launched (see the announcement).And what better way to celebrate, than to experiment with it?Let...
View ArticleUmbraco Life Experiment: Feedback
A few weeks ago I started an experiment, and promised to be transparent about it, so... here is some feedback.The ZpqrtBnk General License has received a few orders, totalling about 3% of its financing...
View ArticleFrench Developer Keyboard (2)
For years now, my main keyboard has been a black DasKeyboard. As in, totally black, no marking. Very much hype. It has allowed me to do cool things, such as remapping the layout to get a French...
View ArticleThree Fives Kit PCB Edition
Some time ago I built a Three Fives Kit from Evil Mad Scientist, and a quick circuit which blinked one LED with a real NE555 timer, and one with the kit.This has been sitting on some shelve in my...
View ArticleWhat Becomes Of Models Builder
Models Builder is an Umbraco extension that generates C# strongly-typed class models for Umbraco content item. It allows developers to write @Model.Title in views instead of the more verbose...
View ArticleOptimizing CSharp Value Types
In a Twitter exchange with my friend James, we recently wondered how to properly document methods that return named value tuples. Why would we have to deal with methods returning value tuples? Well,...
View ArticleOptimizing CSharp Null-Coalescing Operator
Consider the following code:public Func<int> F { get; set; } private int GetValue() { // return the value produced by F, // if F is not null, else zero } I naïvely implemented the function as:if...
View ArticleCSharp FIXME Code Comments
When working on code, I sometime can get deep in "the zone", a creative state where ideas keep flowing and I start refactoring things all around the code base, making quick and dirty changes here and...
View ArticleThe Curse of NULL
C# has two main categories of types: value types and reference types. A variable of a value type contains an instance of the type, while a variable of a reference type contains a reference to an...
View ArticleIAsyncDisposable Pitfalls
The .NET ecosystem comes with more and more sophisticated Roslyn Analyzers which may seem annoying but actually are quite useful at improving our code and detecting hidden and tricky issues.Say we have...
View ArticleTales of FPGA - Road to SDRAM - E01
This post is the first one of a serie, which aims at providing a simple working example of a design that can reliably access the SDRAM chip on a Digilent Arty S7 FPGA development board. Indeed,...
View ArticleTales of FPGA - Road to SDRAM - E02
This post is the second one of a serie which starts with Episode 1, in which we have presented what FPGA are, how to control them, and implicitly discovered their major benefit: they make the physical...
View ArticleTales of FPGA - Road to SDRAM - E03
This post is the third one of a serie which starts with Episode 1, in which we have presented what FPGA are and how to control them, and continues with Episode 2, in which we have discovered the...
View ArticleFaster GitHub PR check time with multi-level matrix strategy
The Hazelcast .NET1 Client is provided as a library that is supported on .NET (Framework) version 4.6.2 to 4.8, .NET (Core) 3.1, and .NET (Just .NET) 5.0 and 6.0. For .NET Core and Just .NET, the...
View ArticleTaskCompletionSource Pitfalls
Imagine you are implementing a client for a server that performs an operation on some data, and that operation is totally asynchronous, and the server has only one connection to it.Contrary to an HTTP...
View ArticleTales of FPGA - Road to SDRAM - E04
This post is the fourth one of a serie:Episode 1 presents what FPGA are and how to control themEpisode 2 highlights the importance of time in FPGAsEpisode 3 presents the different types of RAMThe...
View ArticleCareful with that Struct
Method Chaining is a general pattern where an object class implements methods that alter the state of the object, and return the current instance, thus allowing code such as:var c = new C();...
View Article