Are interfaces like contracts?

I have tought Object Oriented Programming for a number of years and in my time completed more than a thousand oral exams at bachelor level computer science and software engineering students. Overall, it seems object oriented programming can be difficult to comprehend, but clearly the concept of interfaces is one of the harder topics. Interfaces … Read more

HTMX — a better direction for HTML evolution?

The authors of HTMX ( using simple hyper text when applicable, which turns out to be… often. Featured on the latest <.NET Rocks!/> podcast — 1749 htmx with Carson Gross htmx allows you to access AJAX, CSS Transitions, WebSockets and Server Sent Events directly in HTML, using attributes, so you can build modern user interfaces with the simplicity and power of hypertext htmx is small (~10k min.gz’d), dependency-free, extendable & IE11 … Read more

Workaround for TrackPoint mouse-cursor issues

I’m a ThinkPad user, and I have been for quite some years. One of my best arguments, is the TrackPoint, which I would argue, is missing on desktop computers. It has multiple modes such as scrolling etc. which, when used, switches the mouse cursor icon to show which mode is currently active. Though, an annoying … Read more

Design your own language in C# 9: a tutorial series

Programming languages are some of our fundamental tools, and many different languages for many different purposes. In this tutorial series, you will learn how to design and implement your own language, starting out from simple expressions and their evaluation, later adding variables, functions and lambda expressions. You may ask yourself why… why would you create … Read more

Language Tutorial part 1: Scanning input text

This post is part of a language tutorial series. In this part of the tutorial we will define the basic components of our language and introduce first phases of our language processor: the scanner. The scanner breaks up the textual representation of the input program text into a sequence of Tokens; as an example, 1.0 … Read more