Integrating Blazor Server and Tailwind CSS - Part 2

Published on Friday, July 23, 2021 4:00:00 AM UTC in Programming & Tools

In part 2 of this mini-series, we're going to expand the watcher to also take isolated CSS into consideration. You can find the previous article here: Integrating Blazor Server and Tailwind CSS - Part 1

Integrating Blazor Server and Tailwind CSS - Part 1

Published on Tuesday, July 20, 2021 4:00:00 AM UTC in Tools & Programming

This is part 1 of a series of posts I plan on doing on Blazor Server and Tailwind CSS. In this article I cover the basic setup of how to get going to master the moving parts that are involved, and what tools to best use for this. In a later article I'll talk about a more sophisticated integration that also covers Blazor's scoped CSS feature, and finally we'll take a look at .NET 6's new hot reload feature and how we can benefit from it.

Something crazy happened, on Netflix

Published on Monday, July 19, 2021 9:02:00 PM UTC in Skit

Enjoying horror movies always implies partly shutting down your brain so you don't question the often flawed logic and setting. Netflix's "Fear Street" mini-series is no different. I've only watched the first part "1994" and felt it's particularly badly researched because many of the movie details really were not part of the early or mid 90s. The worst of all however was when an "internet" chat was shown full screen:


Yes Netflix, something crazy happened: someone went back in time and introduced 1994 to Calibri. Doh!

Blazor Server apps in MVC subfolders

Published on Thursday, July 15, 2021 4:00:00 AM UTC in Programming

Were you ever bored and thought to yourself: how could I ruin this perfectly fine evening for me and turn it into a frustrating nightmare? Well, seek no more, I have the best idea for you. Just try to host a Blazor Server app in a sub folder of an existing MVC application, and you're in for some really nerve-wrecking "fun". Admittedly, once you know the solution it's not so hard to understand, but finding a working solution was a rabbit-hole experience for me.

Add version info to your builds in TeamCity

Published on Monday, July 12, 2021 4:00:00 AM UTC in Programming & Tools

To properly identify what build of your application you're actually looking at, for example to double-check what's been deployed on a machine, version numbers are a good utility. Manually setting or incrementing versions is error-prone though. Also, from a technical point of view it would be much more desirable to get more details about the exact source version used, like branch and commit hash (for Git). The latter cannot be known before comitting your work, so manually entering this as part of your developer workflow is not an option anyway. A much better way is to let your CI pipeline do this automatically. I use TeamCity for this, and document the required details in this article - mostly as a reminder to myself, should I ever need to look it up again.

Corrupted Teams chats after forced reboot

Published on Friday, July 9, 2021 4:00:00 AM UTC in User Experience & Tools

A while ago, when I came back to my computer, it had force rebooted due to outstanding Windows updates. That's always a hassle, because the feature to automatically restore your last open applications is, frankly, a joke. It fails to restore at least half of my typical apps in use, and the Windows then are usually all over the place in the wrong positions. But that's OK, updates are important, and we at least have the option to being only bothered "outside active hours". This time however, I was in for a surprise: a particular chat in Microsoft Teams got corrupted and I wasn't able to restore it, no matter what.

Thoughts on Microsoft, and Blazor

Published on Friday, July 2, 2021 5:00:00 AM UTC in Personal & Philosophical & Programming

In this article, I'm writing down a few thoughts about the not so positive evolution of Microsoft technology in recent years that have been sitting in the back of my head for quite a while. But I also look forward and explain my current view on Blazor, after lurking around for some years and observing its development from a safe distance.

Handling dates in single-page applications

Published on Wednesday, May 2, 2018 5:00:00 AM UTC in Programming

Working with dates in a single-page application always is a bit of a hassle. Well, dates in general are one of those things that look straight-forward at first but have a lot of nasty details to master, in particular when you're dealing with localization requirements. This is not dinstinct to JavaScript or TypeScript, but to all languages, simply because handling dates is a universal problem. There's a reason we have frameworks like Noda Time in .NET. For your single page applications, there are at least three things to take care of: getting date values from and to the backend, having an internal canonical representation that you can count on, e.g. for all technical handling like binding properties to controls, and of course displaying dates correctly to the user, i.e. in a format they expect and understand.

Hunting down a power configuration bug in Windows 10

Published on Sunday, March 18, 2018 6:00:00 AM UTC in Skit & Tools & User Experience

I have a new "hobby" that I've been actively pursuing for the past weeks: hunting down what keeps waking up my computer at night. At first it simply was a matter of me not wanting to shut down the computer completely (I like my five hundred open windows be restored instantly), but I also didn't want it to just sit there and idling along, consuming power for nothing. But the more I tried to solve this issue, the worse it got, seemingly. I once turned it off in the morning, and when I left for work half an hour later, it was already running again. I swear it mocked me. Getting this under control turned into a mission, a mankind vs. machines class of battle. In the end, it turned out to be a bug in Windows 10 that seems at least two years old, and it made finding the cause for these problems a nerve-wrecking journey for me. If you also find your computer waking up spontaneously at night and already tried out all the hints, configuration switches and registry settings you could find on the internet, this one might be for you.

Type compatibility pitfalls in TypeScript

Published on Monday, February 26, 2018 6:00:00 AM UTC in Programming

When I extended good-injector with the possibility to use factory functions, I ran into a strange issue. In one of the unit tests I mistyped registerFactory for registerInstance[1][1]
Copy and paste, the root of all evil.
, but the compiler did not complain at all. It happily accepted a function of type () => T in a place that required an object of type T (T being a generic type argument), and left me a few minutes trying to figure out why my code is not working. I analyzed the problem and realized that it's a side effect of how TypeScript determines type compatibility. Let's see what that means and how to avoid it.

Browse: 1 2 ... 28