Matthew's Blog

Optional Parameters Required to Close WebSockets in Safari Without Errors

At work, I wrote some JavaScript to do a quick test to make sure a WebSocket connection can be made from our users’ computers. We’re a Citrix shop, and most of our users use the HTML5 client, which requires WebSockets to work.

If a WebSocket can’t connect, or an error is thrown, a message is shown to encourage the user to reach out to their IT department to resolve whatever firewalls or security software might be in the way.

GitHub Pages + Jekyll, a poor choice

Some of you will say that using GitHub in the first place is a poor choice, and you’d be correct.

GitHub, and in fact Jekyll, would like you to believe that GitHub is a perfectly fine place for hosting your Jekyll site, and it is, provided you want to do absolutely nothing fancy. As, for reasons I’m not sure GitHub has publicized, they lock down what plugins you can use, and if you’re not using an approved plugin, you’re SOL.

YouTube Continues Its War on Its Users and the Planet

Even though the YouTube app on my Apple TV hasn’t been updated since December 7, 2023 (version 4.22.01), YouTube is still able to change how their app works. This is nothing new and apps have been able to change their behavior without publishing a new version to an app store.

I believe that most good developers want to write good software, that gives the user a choice, and works for the user. Google either isn’t hiring any of these people, or are able to make them forget their convictions for that good Google paycheck.1

Regetwitter Fail

The website formerly known as Twitter recently made some changes in the way they handled domains. This change has since been reverted or corrected, but the fact it happened at all should be a lesson to developers everywhere.

I won’t speculate on what problem they were trying to solve over at X Corp. Essentially, they were doing a replacement on “x.com”, changing it to “twitter.com”. Normal stuff when you’re trying to decide which domain you actually want to use, which they seem to be struggling with a little.

Citrix Receiver Extension APIs

This document lists CSS and Javascript extension points for Citrix Receiver. Unless otherwise specified, these extensions apply to both web and native clients. It used to be hosted on Citrix’s website, but is currently 404’ing. It’s also available on the Wayback Machine.

CSS Classes for Customization

Areas Commonly Customized

.logo-container
.logon-logo-container

Company logo to replace the default logo in the main UI and authentication screens. Should specify a background image and background size.

Page 1 of 5