Hi, I'm Ray

I'm a software developer, full-time nerd and occasional human (while heavily caffeinated).

This is a website for my blog, projects and anything vaguely interesting I have to share.

Who am I?

Hi, I'm Ray.

I'm a software developer specialising in Windows desktop, Web and mobile devices.

I've also been known to manage servers (Microsoft and Linux), crimp some cables and change a light bulb. More about that over on LinkedIn.

In my spare time, I love to read. I seem to read mostly science-fiction, fantasy and young adult; more about books over on Goodreads.

I enjoy taking photographs but I have -so much- to learn. You can see some of my least-terrible photos on Flickr.

I love food. I offer no apologies for posting a lot of photos of food on Instagram.

I like working in coffee shops with my laptop, tablet and reMarkable. There's coffee, cakes and people-watching is fun.

That is me.




  • .NET Framework (C#)
    • Windows Services
    • WinForms
    • User Controls
  • Tizen.NET
  • Xamarin.Forms



  • Linux
    • CentOS
    • Ubuntu Server
  • MS SQL Server
  • MySQL/MariaDB



  • AngularJS (1.2)
  • ASP.NET Framework (C#)
    • MVC 4+
    • SignalR
    • Web Forms
  • ASP.NET Core Framework
  • Episerver (Commerce, Community and Find)
  • jQuery
  • PHP
    • LAMP (Apache, MySQL and PHP 4+)
    • LEMP (Nginx, MariaDB and PHP 5+)
  • Vue.js

Social Media


CSS: Quick and easy toggle switch control

06 Feb, 2020

A switch is a user interactive control with an on/off state. They seem to have been based on the mechanical toggle switch. When switching back and forth (pun intended) between developing on Xamarin.Forms and websites, I've found that I much prefer the switch to a checkbox. This is my implementation of a switch for websites (CSS).

Read more

Programming, CSS

Xamarin.Forms: Quick and easy custom picker with a more traditional look

14 Oct, 2019

Xamarin.Forms has a control called a Picker, it's practically equivalent to a: ListBox, <Select> or a generic drop-down list. Here's my problem, it sucks. It's a freakin' nondescript line.

Read more

Programming, Xamarin.Forms

Tizen.NET: Recreating the Samsung Galaxy Watch Dashboard watchface

13 Oct, 2019

A few weeks ago I replaced my venerable Samsung Galaxy S2 Classic smartwatch with the newer Galaxy Watch Active. Frankly, I didn't consider any of the offerings in-between to be a worthy successor. However, just as I had given up hope, the Active blew me away.

Read more

Programming, .NET, Tizen .NET

C#: Building a TNoteBook component for Windows Forms as an user control (PanelBook)

27 May, 2019

Last week I was developing a Windows Forms (WinForms) application that required a particular kind of user interface. The application was a step-by-step wizard that had navigation buttons: "back" and "next". Think multiple steps of a setup installer. Each page occupied the same position and contains other controls. I wanted a more elegant solution other than hiding/showing and moving panels around the form.

Read more

Programming, .NET, C#, UserControl

C#: A practical example of polymorphism for everyday projects

25 May, 2019

Every programming textbook and wiki is going to have a definition for polymorphism, so you don't need me to explain the concept. In my mind, polymorphism is the OOP technique of defining one interface that allows different entities to do the work. In this post I'm going to provide a practical example of subtype polymorphism or subtyping.

Read more

Programming, .NET, C#

C#: Quick and easy multi-threading on Windows Forms App with Tasks (Async/Await)

18 May, 2019

This time I'm going to show multi-threading using Tasks, also known as async/await. The two patterns are practically identical and I've kept the structure of the code the same to highlight the comparison.

Read more

Programming, .NET, C#

Bootstrap JS: BSDialog4

Bootstrap JS: BSDialog4


BSDialog4 is a Bootstrap 4 JavaScript helper for modals. Add (and remove) modals to a page dynamically and load content with jQuery-AJAX.
Bootstrap JS: BSDialog

Bootstrap JS: BSDialog


BSDialog is a Bootstrap 3 JavaScript helper for modals. Add (and remove) modals to a page dynamically and load content with jQuery/AJAX.
Chrome Extension: YouTube Watched

Chrome Extension: YouTube Watched


This is a Chrome extension to remove watched and partially-watched videos from your YouTube Subscriptions page. I find the way watched and resumable videos stay in your subscriptions feed page to be a bit of a nuisance. So, I wrote an extension to hide them. It's that simple.
Software: Bookmark Manager

Software: Bookmark Manager

v0.3.0.018 β

Bookmark Manager is a free utility for storing and organising your favourite Internet shortcuts. Your bookmarks are stored in a locally saved file to give you complete control. This is free open source software for Windows.

Software: Visual Task Walker

07 Oct, 2017

Visual Task Walker is a task runner that uses graphical shapes (blocks) to represent tasks. You can configure these tasks and chain them together to pass data from one block to another. This is free open source software for Windows.

Read more

{{ item.title }}

Currently Reading

{{ item.title }}

{{ item.read_at_display }}


{{ item.display_date }}


Copyright © 2014-2020 Ray Lam. All Rights Reserved.