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.

 

Software

Specialty:

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

Others

Specialty:

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

Web

Specialty:

  • 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

            /     

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#

C#: Storing settings in a SQLite database for a Windows Forms application

04 Apr, 2019

I find it's a pretty common requirement to store settings for an application, such as: "recently opened files", "last opened path" or other user preferences. I've seen this done using INI configuration files, XML and JSON text files. A few years ago I heard about SQLite; how the likes of Google Chrome were using it for storing configurations. So, I built my own helper to handle reading and writing of settings.

Read more

Programming, .NET, C#

Bootstrap JS: BSDialog4

Bootstrap JS: BSDialog4

v0.1.0.001

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

v0.1.0.029a

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

v1.0.4

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.
 
Loading...

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 }}

Loading...

{{ item.display_date }}

Loading...

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