When trying to run my Laravel/PHPUnit integration tests I received this error:

ReflectionException: Class config does not exist

It is one of those vague error messages that can be triggered by a lot of different problems and none of the many solutions to these common issues worked for me. In the end the solution came down to some detective work.

I use the setUp() and tearDown() method. What was going wrong was that I did the parent::tearDown() before the rest of the cleanup. So a case of trying to use data after it has been torn down. The following is how it should be setup:

public function setUp(): void
{
parent::setUp(); // Must be first
// Your own setup
}
public function tearDown(): void
{
// Your own teardown MUST come before down the parent::tearDown
parent::tearDown(); // Must be last
}

I run Windows 10 with a 3 monitor setup and occasional I get the problem that one of my open program will show up in the taskbar but if I click to focus on nothing will seem to happen. If I do alt-tab I will see it in the list with the thumbnail showing just a title bar and buttons with no visible area below it. Even if I select that then nothing will appear.

What has been happening is that programs have somehow become resized to the point they are not visible!

The trick to get them back to normal is:

  • Select the program in the taskbar so it has focus
  • Press alt-space
  • Select Maximise from the menu that opens
  • The program will appear full screen (you’re not done yet!)
  • Drag the title bar to make it a smaller window
  • It will return to being a floating title bar with no content so now you can drag the bottom right corner of that to expand it again
  • That’s all there is to it

Firefox has been driving me crazy for months now as the “back” action seems to trigger at random and return to the previous page, losing whatever I was working on. I use a Wacom Bamboo tablet pen but I have disabled the touch gestures on the pad. Somehow it still seems that the normal pen cursor is enough to trigger the gestures although it is not 100% reproducible. Tonight I have finally exercised the gremlin which turns out to be down to Firefox having built in gesture support enabled as default. To turn off the problem gestures is simple:

  • In the address bar type: about:config
  • In the Search filter type: gesture
  • Double click “browser.gesture.swipe.left” and delete the default value “Browser:BackOrBackDuplicate”, just leave it blank
  • Do the same for any of the other string type entries that are bugging you, I cleared them all
  • Changes are automatically saved as you make them
  • Close the page and you are done
  • If you change your mind later on you can return to the same page/filter and right click each modified row and choose Reset which will return it to the default value

I ran into a problem with Bitbucket recently and it took a bit of trial and error to work out a solution so I thought I’d share it to help save any other programmers from smashing their heads into their keyboards!  If you are using a Bitbucket Git repo on Windows with submodules and an SSH key and you run into a “Permission Denied (publickey)” error after running:

git clone --recursive git@bitbucket.org:your-account/your-repo-name.git

The solution is pretty simple.  Regenerate your SSH key WITHOUT a passphrase.  It seems to be a Windows issue with passing the auth details to the submodule clone commands.

Today is a double celebration; my web development company Nine Three Limited celebrated it’s 9th year of business on May 1st 2018 and my shiny new personal website is finally live!  My personal site fell into disuse over the last few years as my life took a big downward turn and I didn’t feel like sharing those dark days with the world but I have been fighting hard to overcome the challenges and the latest part of that journey involves me looking for a new job and I figure nobody would want to hire a web dev whose personal website was so outdated! 😅

The new site is fully responsive with a customised Bootstrap 4 layout.  I wrote a new WordPress plugin which uses the Node-Vibrant library to pick colors from the background images so I could have a dynamic theme engine which is something I’ve wanted to do for ages.  I’m very pleased with the result.  The theme selection is stored for one hour and then a new random one is picked.  You can also use the button in the bottom right to pick one sooner than that.  Another big change is that I have reworked the curriculum vitae page to separate my past “jobs” from my past “projects” as I found this was confusing recruiters.  I’ve covered a lot of work projects over the last 15 years but most of them have gone offline so now the new site is complete I can start going back over the projects and uploading screenshots for them. If you click on a project then it will expand so you can read more about it.  The data for each is fetched from the backend via Ajax so the initial page loads quickly and only spends time downloading the data for the projects you are interested in.

I still have to setup the old personal projects page for things like the Stargate Simulator and the Blade Runner Game Installer but those will come with time. Nothing has been lost, I just need to port them over to the new site format.  If you need any of the old projects before I have had time to put them live then drop a comment on this post and I’ll do what I can to help you out.

I am back.

For the last month my YouTube videos have had the same 3-4 Udemy adverts showing up at the start of every video and in the middle of many.  It’s driving me crazy!  After weeks of seeing that Udemy guys smug face I just scream.  After a bit of digging around I finally found what I was looking for, a way to get rid of the adverts.  Pause the advert video and look to the bottom left hand corner where it says:

“Ad 0:28 (i) [link to their site]”

If you click the (i) you get the “Why am I seeing this ad?” popup.  At the bottom of that is a link titled “Stop seeing this ad”.  Clicking that gives you a second popup asking why you want to stop seeing it.  I picked “Repetitive” and then “Send”.  Boom.  Just have to do that with each advert you don’t want to see.

There is another way to hide video adverts based on their category.  Check the page “Ads you see on videos” and click the “Ad Settings” link in the bottom paragraph.  On this page you can turn off advert customisations so you just get random stuff that’s not based on your searches and you can deselect specific categories i.e. no longer want to see videos about “Computers & Electronics”.  I chose the first method I described because I don’t mind most tech related adverts.  It’s just the horrible Udemy guy over and over again led me to hate their platform!

It turns out that Teamspeak has a “feature” which means that as default it will auto-mute a channel if there are 100 or more clients connected.  This can cause problems and if you do not want this to happen then the option to disable this is easy to change but it is hidden away:

  • Right click the server node at the top of the channel tree
  • Select “Edit Virtual Server”
  • On the new popup, select the Misc tab
  • Near the bottom is an option labelled “Min clients in channel before silence” which is set to 100 as default
  • Change it to a larger value that suits your needs and click OK
  • The change should take effect immediately with no need to restart the server

I use Skype for work calls on a weekly basis.  Recently it nagged me into upgrading to the latest Windows 10 version that has been “rebuilt from the ground up”.  Straight away after installing and running it I realised they meant they had demolished it and let a cowboy builder do the reconstruction.  What a pile of shit!  Took 3 attempts to get it to load past the loading screen.  When it finally did connect I saw what a mess they made of a simple thing like the contacts list.  Instead of having a list of my actual contacts I now have a list of everybody that’s ever tried to contact me on Skype ordered by last activity.  So all those Chinese ladies that want to be my friend, all the Nigerian princes that need a load etc.  You have to click a contact button to get a popup and then another button on there to see who is online from my actual contacts list.  I can handle the extra clicks to do basic tasks but the two three big killers are (1) the interface looks horrible, both color variations of it (2) it keeps getting stuck on the loading screen and (3) it keeps being entirely unresponsive so I can see the contacts and messages but clicking on them does nothing.  They visually respond to the mouse event but don’t trigger the actual action.

Anyway, I gave it a week and now I’m done.  Downgrading is super easy.  Head to the Skype download page here.  Click the down arrow on the blue button labelled “Download Skype for Windows” and choose “Get Classic Skype”.  Download and run the installer.  It will replace the latest Windows 10 version and boom, you’re back in business.  I’ll keep an eye on reviews for new Skype versions but there will have to be some huge improvements before I upgrade it again.

I recently upgraded my browser to FireFox Quantum and found most of my addons no longer worked as the devs haven’t updated them yet.  One thing I forgot I missed until I needed it was the Restore Closed Tab toolbar button I had with the Session Manager addon. The way this worked was that when I accidentally closed a tab I could press the toolbar button and the tab would re-open along with it’s back/forwards history.  Turns out there is a built in FireFox way to do this.  Just press CTRL-Shift-T and the tab will open again.

Make the opponent fight your fight. Don’t try to out-punch a boxer. Don’t try to out-kick a kicker. Don’t try to wrestle a grappler.