Blog

Lust for life

Gotta just go for it, man

Personal

I didn't realise this for the longest time, but I really got myself stuck. I've been in a precarious position financially for the last few months and I just sort of... stopped. I wasn't going out as much, I wasn't exploring new things, I wasn't even really keeping up with the stuff I like doing. I played loads of video games, because they were free. I went to a few open mics, because they were eas...

Casting, Stratbase and some Soul Searching

Sometimes you just need to log off for a bit.

Personal

I went on a trip recently to Scotland where I did the North Coast 500 road trip. I tried to completely disconnect and log off as much as I could to really enjoy being in nature — taking a big break. It’s helped me think through a fair few things: about my career, about my general life direction. Waking up to this view is exactly what I needed I had a lot of time to sit and process some of the thi...

For the sake of it

Why do anything?

General

! The images in this post are broken because I accidentally deleted them during a server migration. Whoops. The UK was hit by a pretty intense heatwave recently, in my area it hit upwards of 32 degrees celsius. That may not sound like a lot to those countries blessed with air conditioning, but in the UK where houses are built to retain as much heat as possible, it's a nightmare. I knew I'd be ca...

Why we should embrace EPICLAN going international

People are telling good teams not to come. Get a grip.

Counter-Strike ∙ EPICLAN ∙ UKCS

! The images in this post are broken because I accidentally deleted them during a server migration. Whoops. This post was originally written on Jun 19th. I decided not to post it at the time because I honestly didn't feel a need to once I'd gotten it down on paper, but upon reflection there's no reason not to. I opened Twitter today and saw a tweet from Keoz, a Belgian CS player competing in T2...

Temporary Binds in CS2

Nerding out in the autoexec

Counter-Strike ∙ CS2 ∙ config

Been geeking out in the autoexec this morning. For the last like 8+ years I've used the Coolermaster Masterkeys Pro M for my keyboard, which is like a fullsize keyboard but with the HOME, INSERT island merged with the numpad. I think it's a great layout, but since I fixed my desk posture recently I'm hitting the keyboard with my mouse while playing CS. I picked up a used Redragon K683 on ebay whi...

Using the View Transitions API with Inertia

A short snippet implementing the View Transitions API with Inertia and Vue 3

Inertia ∙ Laravel ∙ Vue ∙ Snippet

I'm doing some late night tinkering trying to get the View Transitions API working with Inertia JS. The API provides a really simple way to offload a lot of the work in creating page transitions off to the browser. It's currently only supported in Chrome/Chromium based browsers, but it is very cool. This snippet can probably be simplified, but here is my implementation. This goes in my Authenticat...

Calculating how many units I consume on a night out, with PocketBase

Exposing my degeneracy while also teaching you a little bit about how pivot tables work.

SQLite ∙ Databases ∙ Pocketbase

I went on a little day drinking session with some friends a few weekends ago. As the conversation shifted to football I found my mind wandering to other things. We'd had a conversation earlier in the day about how this was "going to be a long one" and we reckoned "we're going to knock a few back today". So I got to thinking, how many? I'd like to preface this entire article by...

Teamspeak and Discord: The old vs the new

Where's the middle ground?

Gaming ∙ Voice Chat ∙ Software

Like many gamers, I started off using Skype. It let me and my friends talk shit while playing Minecraft together. When I got into ArmA 3 in 2014, I was introduced to TeamSpeak 3. You'd join a server, find the channel your friends were in and get to gaming. It was lightweight, didn't hog your system resources, and the voice quality was great. Communities would form in servers, groups of like-minded...

Counter-Strike 2: Where are the callouts stored?

A deep dive into the Source 2 vmap format in search of callout definitions.

Counter-Strike 2 ∙ Code

In CS:GO, if you wanted to extract the bounding boxes for callouts, all you had to do was parse the nav file with one of many well written libraries. The nav file contains all the walkable space information for bots to use in a level. This is where my search started. The Old First off, we need a map file. Finding them is easy, they’re in a similar location to where they were in Global Offensive: s...