Workahol

I work too much :(

Workaholworkahol
2025-06-20

When you work so much, you don't know what to do when you have free time. Well, other than working.

Workaholworkahol
2025-06-20

A beautiful Friday morning, perfect time to spend at work.

Workaholworkahol
2025-06-16

At least I get really nice work benefits.

Workaholworkahol
2025-06-16

I want out. I so want out. This job is destroying me but I no longer know anything outside of it. Where would I go? What would I do? I'm sure I'll be as happy a hamster when I go back tomorrow but I know it's slowly wearing me away. This is not sustainable and I don't think I can care enough to do something about anymore.

Maybe I'm destined to grind my life away.

Workaholworkahol
2025-06-16

The only surefire way to limit your interaction with people is to stay at the bottom. Maybe I should take up carpentry. I hate this.

Workaholworkahol
2025-06-16

You know what's ironic, you go into tech wanting to avoid human contact only to discover that 90% of your time is interacting with humans. Doesn't matter if you're a IT support technician or a COR

Workaholworkahol
2025-06-11

I don't think it's accurate to say that AI is to compilers what compilers were to assemblers. For one compilers don't hallucinate... usually.

Workaholworkahol
2025-05-30

Weekends off are for the weak, or so I tell myself. At least I had somewhat of a good night sleep.

A familiar screen, a comforting friend?
Workaholworkahol
2025-05-29

Finally leaving for the weekend. Will document and hand over the system next week unless new dumpster fires ignite.. probably.

I need a vacation. I want to rest :(

Workaholworkahol
2025-05-29

Note to self: Safe Exam Browser (SEB) makes for an excellent kiosk platform if you need to run on Windows. No need to buy Windows Pro licenses or work with the nasty UWP or Microsoft's App Store. SEB does it better and is open source.

Of course, I'd rather just use Xorg/xinit directly and cut Windows out of the loop entirely.

Workaholworkahol
2025-05-29

On the bright side, I was able to get Safe Exam Browser to display the examinee's full name and ID number a watermark (implemented as JS added in Admin/Appearance/Additional HTML).

The problem was that Moodle appears to strip out the Javascript on exam pages when SEB is made mandatory. The solution for us was not to make SEB mandatory. We can limit access to machines we control.

Yet another undocumented feature that needs to be configurable and properly documented.

Workaholworkahol
2025-05-29

The only way I was able to figure this out was by hijacking `libmoodle.php` (again), specifically the `getremoteaddr` function and spill the contents of `$_SERVER`.

`http_build_query` was really useful for quickly turning the contents of `$_SERVER` into a string. Think of it as the equivalent to `implode`.

Given the state of Moodle's docs, I suspect this will not be my last time dealing with Moodle's internals.

Workaholworkahol
2025-05-29

I may be an idiot, but Moodle's documentation is truly horrific. I finally managed to get Moodle to log true client IP addresses when siting behind a reverse proxy by doing two things, neither of which were documented in Moodle's official documentation at docs.moodle.org/500/en/Reverse:

1. Configured the reverse proxy to set the header `CLIENT-IP`, and NOT `HTTP_CLIENT_IP` as shown in Moodle's UI.

2. Set Moodle's "Logged IP Source" to `HTTP_CLIENT_IP` in Admin/Server/HTTP.

Workaholworkahol
2025-05-28

In Arabic, the translation is:

> الوكيل العكسي مُمَكَّن لذلك لا يمكن الوصول إلى المخدم مباشرة. لطفاً، اتصل بالمشرف.

You can find the line responsible for this misdesign in `./lib/setuplib.php`

Now let's see if I can figure out how to get Moodle to respect one of the "real IP" headers that it's specifically configured to respect.

I'm so tired. I want to go home.

Workaholworkahol
2025-05-28

Note to self: If you get this message in Moodle:

> Reverse proxy enabled, server can not be accessed directly, sorry. Please contact server administrator.

Or a generic `reverseproxyabused`, it means your reverse proxy is setting the `host` http header. Normally, you'd want to do this but Moodle was specifically designed to break if it gets something that resembles it's base URL.

TL'DR: Do not set the host header.

Workaholworkahol
2025-05-28

I want to take a vacation so bad.

Client Info

Server: https://mastodon.social
Version: 2025.04
Repository: https://github.com/cyevgeniy/lmst