Author: damian

.NET and Linux Bluetooth

Ever needed to perform some Bluetooth LE operations on your Linux device, whether it’s Raspberry PI, Ubuntu, or some other distribution? Yes, me too! In this article, we’ll dive right into using the Plugin.BlueZ NuGet package and show you how to get started using it. Feel free to contribute to the open source project over at the Suess Labs GitHub page, https://github.com/SuessLabs/Plugin.BlueZ. UPDATE! We are migrating towards the next generation package, Linux.Bluetooth NuGet package!The GA functionality is the same and future enhancements are coming soon, such as Battery monitoring. In this article, we’ll perform a simple Scanning for Devices based…

Visual Studio Linux Debugger

The VS Linux Debugger is an open-source tool created to assist with remotely deploying and debugging your Linux applications from Visual Studio 2022. Check it out on the Microsoft Marketplace or GitHub. To get started using it today it’s as easy as 1-2-3.. or perhaps, 2-3 Overview Before getting started, it is recommended to ensure your system has the latest updates. These steps have been tested against Ubuntu 20.04 LTE and 22.04 LTE. Though this project supports everywhere that .NET (Core) is supported, this section outlines steps for Ubuntu 22.04 LTE. It’s recommended to use the official Microsoft Install .NET…

C# 9.0 Null Checking

C# 9.0 added a lot of new features and enhanced others. Here we’re covering Pattern Matching, more specifically is null and is not null.  Beginning with C# 7.0, the “is” operator was added to match an expression against a pattern, and with C# 9.0 the negation pattern was added to do a non-null check. Overview So why not just use “==” or “!=” operators? When you override the operators, your traditional null checks can behave differently. This is why it can be safer for you to use the newer pattern matching. The addition of null checking using, “is null“, though…

Helpful Hotkeys

Ever forget a hotkey or wanted to discover ones you didn’t know about, well here you go. Windows 10 On Windows 10, it brought plenty of new features, some of which enthusiasts like myself had to create such as the Linux-inspired Virtual Desktop. But never mind all of that, let’s get to the cheat sheet! Please note, that some applications you’ve installed may override the base functionality listed below. For more hotkeys, check out the official docs. Shortcut Functionality WinKey + CTRL + D Create a new Virtual Desktop WinKey + CTRL + RIGHT Switch to the Virtual Desktop on…

Xamarin.Forms Floating Action Button

This article is a review of the Xamarin.Forms NuGet package, Floating Action Button (FAB). Here, we’ll be discussing what the library is, and how to use MVVM binding with Prism.Forms’ Navigation Service, and then finish up with some of the pros/cons of the library. For the full project, check out my GitHub page, Learn.FloatingActionButton, which this article references. I stumbled upon the Floating Action Button while responding to an inquiry made on the Xamarin Slack in regards to the forums thread, “Can I maintain a single static navigation service from Prism.Forms“. If you’re wondering, I’m, “User29117“. What is it? The…

Picking a microSD Card

Updated: 2021-06-19 Like some of you, I don’t buy a new SD (secure digital) card every other week. So, when it comes to purchasing time how do you know you’re getting the right tool for the job? There are tons of wordy articles out there, so we’ll get to the point! Please note, this article is a quick assist guide on microSD cards and not the other SD card variants. For more in depth, check out the official documentation. Choose the Right Tool For the Job When picking a card always do it with a purpose in mind. The average…

Which Programming Language to Learn

“Which language should I learn?” is a frequent question I get asked by non-coders wanting to learn or ones who haven’t coded in a while. More often than not it’s because they have a great idea for something they want to make, or just want to automate some repetitious tasks. Perhaps, you just got out of high school or college with proficiency in Java or Python and want to make an app. Though they’re viable options, they are not always the best choice. My friend/co-worker would say C++… for everything. What? NO! There is no golden arrow for solving every…

Unit Testing Events with Timeouts

Ever need to perform a unit test on and want to timeout while waiting for an event? Doing a quick google search for, “C# unit test timeout waiting for event” yields interesting mixed results. Here are a few different methods for completing such a task. Method 1 – Task.WhenAny The following uses the System.Threadding.Task.WhenAny method wrapped inside of our async method, WaitUntil(..). Th Method 2 – Synchronous ManualResetEvent Slightly different implementation without the use of Tasks. Method 3 – TaskCompletionSource Method 4 – Task.WhenAny Asyncronyously awaiting Task.WhenAny allows you to provide a delay as you can see below.