Using Keyboard Indicator LEDs to communicate in Morse Code with C

Your Keyboard as an Output Device?

Luke Zeisset Development Technologies, Programming, Tutorial Leave a Comment

Though we don’t really see as many of them as we used to, they are still with us. One helps indicate if a 10-key is in number or cursor mode. Another helps show when we use capital letters without holding the shift key. You might even have another to show if you accidentally hit the scroll lock key. I’m talking of course about keyboard state indicators.

Most people only think of a keyboard as an output device, but given that it has a changeable state, it most definitely can be used for output as well! Unfortunately, producing meaningful output using a keyboard state indicator (beyond their intended purpose) is rather tedious because they only have two states; the indicator light is either on or off. And to convolute things further, most keyboards these days don’t have many indicators in general. For example, the very keyboard I’m typing on only has a caps lock indicator! Thankfully, there is a well-established encoding that requires only one “bit” to be useful: Morse code!

In this article, I will show how I approached the development of a small utility to output Morse code on the caps lock LED. Even if it’s impractical, I wanted a challenge, and I had fun working through it. Though I’m certainly not an expert, I used the C programming language because I figured it would be the simplest approach.

I hope it is as clear to you, the reader, as it is to me, especially since I tried to make this as simple as possible. And don’t worry if you don’t have a caps lock indicator, either, as we will display the Morse code, too.

Jakt: A First Look

First Look: The Jakt Programming Language

Luke Zeisset Development Technologies, Programming 1 Comment

There seems to be a renaissance in systems programming languages. Updates to C and C++ don’t seem to get the attention of a lot of developers that aren’t already interested in their development. In contrast, languages like Go, Rust, and Zig are hot topics that seem to do an excellent job recruiting people, nearly providing the level of accessibility that Python does.

A fairly new programming language appeared this year that strikes an intriguing balance between C++ and Rust. That language is Jakt, and I’d like to shine some light on it.

C# 10 new features

LINQ Improvements in C# 10

Adam Wright C#, Development Technologies, Programming Leave a Comment

C# 10 was released in November of 2021, and it came with a host of new features. Some of the features that you may have heard of include file-scoped namespaces, global usings, target-type new expressions, record improvements, and many more. Several new extension methods have been added to LINQ as well including MaxBy, MinBy, DistinctBy, IntersectBy, ExceptBy, and UnionBy.

In this post, we will take a look at the aforementioned new C# 10 features and how they work.

Using C#, XAML + Uno Platform to Build One Codebase, Cross-Platform Apps

Rukesh Shrestha C#, Development Technologies, Mobile 1 Comment

For more than a decade, we have been developing applications with C# and XAML. Throughout that time, the pair has really only been known for Desktop (WPF) and UWP applications.

Later came Xamarin, which utilizes C# as a unified language to share between all platforms. Then Xamarin.Forms was introduced, which was different in that it utilized XAML to develop the user interface with a single codebase for cross-platform (iOS, Android, UWP).

This progression has excited all the WPF developers out there. The only remaining platform left was web development. At one time, Silverlight was the option, but it was deprecated because of heavy loading and security concerns of browser plug-in solutions.

Then came the WebAssembly [also known as Web Assembly Modules (WASM)] that web browsers can directly execute without having to parse a source file.

In this post, we will discuss how to create a rich user browser interface using the cross-platform Uno Platform and WebAssembly technology. The example application will walk through building Models, ViewModel and View under a shared project that is common to all different platform-specific projects.