Igor Kromin |   Consultant. Coder. Blogger. Tinkerer. Gamer.

When Google AdSense Matched Content units first became available, I jumped at the opportunity to add them to my blog. In fact I wrote an article about them - Benefit of adding Google AdSense Matched Content to your site or blog. If you don't know what Matched Content is - Matched content is a free recommendation service that offers you a simple way to promote your content to your site visitors. Simply put, it shows links to other parts/articles/posts on your website/blog for your visitors to explore.

It should look like this...

However, lately I've been noticing that many of the my articles are getting matched content that looks more like this (a video covering the entire space of where the Matched Content should go)...

Clicking the X in the top right hand corner shows the usual "Report this ad" and "Why this ad" screen that all AdSense units show. So it looks like Google has put in an ad in place of where Matched Content should be.

To be sure, I checked my Matched Content settings to make sure that monetisation was disabled, and it was...

According to Google's own documentation...
In addition, Google will show ads in between your Matched content recommendations. The "Monetize with ads" option is switched on by default, but you can switch it off (when you create or edit a Matched content unit) if you don't want to show ads.

Note that if your site can't be well monetized, Google won't shows ads in your Matched content units even if you have "Monetize with ads" switched on.

So what gives Google? Why are ads being shown when they are explicitly disabled?

I did try enabling ads for Matched Content and ended up with this...

All of a sudden my matches show up, but with 3 ads injected into them! The ads were expected of course. Disabling ads again caused the video ad to return. So obviously Google had data to display matches, but for some reason it wasn't.

This has been going on for a number of months now and I've been noticing my ad revenue steadily dropping over that time too (maybe because engagement dropped due to my other articles not being recommended?) Whether this is a bug or not, I may have to start looking for alternative options for recommended matches.

Continue reading...  

, , ,

Some time back I've had KKSB send me their Raspberry Pi 4 case to check out. Unfortunately due to all the COVID-19 shipping delays and my own ill health I've not been able to review the case until now. Everything is not yet back to normal but I've been able to have a good play with the case, ran benchmarks for a day and got some really impressive results. So lets get into it!

First we have to talk about the aesthetics however. This case is a pure machined beauty! The edges retain their sharp looking angles while being bevelled enough to feel nice and smooth. The voids for ports are perfectly placed and if you want to add a ribbon cable for the GPIO pins or camera, there are a slots cut into the base and side of the case for that.

IMG_8342.jpeg IMG_8344.jpeg

Many of the cases forget about the status LEDs, but not this one...there are two crystal acrylic pieces that insert into the case in just the right spots and light up when the LEDs of the Raspberry Pi are lit. It looks really cool. This case really stands out with its raw functional style yet manages to look amazing at the same time.

IMG_8345.jpeg IMG_8348.jpeg

Continue reading...  

, ,

Recently I've had a need to use Java Mission Control (JMC) to look at some Java Flight Recorder (JFR) files for a piece of code I've been analysing for performance issues. The piece of code didn't require being run in production so I decided to do the analysis on my Mac instead of one of the dev servers. This is where I ran into issues...whenever JMC was launched, it would freeze.

This appears to be an issue that was introduced in JDK 8u152 (and is still not fixed in JDK 8u231). The problem is due to incompatibilities between SWT and the fixes in 8u152. There are a number of workarounds for this however.

If you need to use JMC, you can do one of the following:
  • Use JMC from the latest JDK 7 (I would not recommend as this is quite old now)
  • Copy the latest SWT jar into the JDK as per this SO post (would not recommend as this would change the App bundle)
  • Use JMC 6 from JDK 9
  • Use the standalone latest distribution of JMC (as it's no longer bundled with the JDK)

Continue reading...  

, , , , , ,

Usually when it comes to formatting a USB stick, SD card or an external hard disk on macOS I would use the Disk Utility app that comes with the OS. However if you want to format your storage as FAT32, the app will not always oblige. There is a generic 'FAT' or 'exFAT' option but you have no control on wether the disk will be formatted as FAT16 or FAT32.

To be able to control exactly which FAT type is selected will require using diskutil from the Terminal. Here's how.

First you need to check which device the disk you're trying to format is. This is done with the diskutil list command. Open the Terminal app and run the command before plugging in your SD card/USB disk/stick. That will give you a list of disks and their device numbers.
diskutil list

Then, plug in the disk you want to format and run the command again. The list of disks will be updated with the one you're wanting to format - likely the last in the list. Take a note of its device number e.g. /dev/disk3 in the example here.

To format that disk as FAT32, run the following command (change the device number as required)...
sudo diskutil eraseDisk FAT32 USB MBR /dev/disk3

You will be asked to enter your password, then the disk will be formatted and the name "USB" assigned to it. If you want to assign a different name, replace it in the command - make sure to surround it with quotes if you want a space in the name.

Running diskutil list after formatting will confirm that the disk is indeed formatted as FAT32.

Continue reading...  

, , ,