Lenovo ThinkPad X1 Yoga Gen 5

Lenovo released the ThinkPad X1 Yoga Gen 5 in mid 2020. This was a minor jump from the Gen 4 – they look very similar. The Intel CPU jumps up from 8th Gen to 10th Gen is nice – at the bottom end it’s about a 5% to 7% speed improvement, but there’s also faster RAM.

The laptop itself looks very sleek, feels robust, and the screen hinge is very firm – it’ll stay wherever you put it.

Let’s check out the specifications:

Tech Specs

Processor10th Generation Intel® Core™ i5-10210U Processor (1.60 GHz, up to 4.20 GHz with Turbo Boost, 4 Cores, 8 Threads, 6 MB Cache)
10th Generation Intel® Core™ i7-10510U Processor (1.80 GHz, up to 4.90 GHz with Turbo Boost, 4 Cores, 8 Threads, 8 MB Cache)
10th Generation Intel® Core™ i5-10310U Processor with vPro™ (1.70 GHz, up to 4.40 GHz with Turbo Boost, 4 Cores, 8 Threads, 6 MB Cache)
10th Generation Intel® Core™ i7-10610U Processor with vPro™ (1.80 GHz, up to 4.90 GHz with Turbo Boost, 4 Cores, 8 Threads, 8 MB Cache)
Operating SystemUbuntu Linux
Windows 10 Home
Windows 10 Pro
Display14″ 4K UHD (3840 x 2160) IPS, touchscreen with Dolby Vision™ HDR 400, AR/AS*, 500 nits14″ WQHD (2560 x 1440) IPS, touchscreen, AR/AS*, 300 nits
14″ FHD (1920 x 1080) IPS, touchscreen low power, AR/AS*, 400 nits
14″ FHD (1920 x 1080) IPS, touchscreen with Privacy Guard, AR/AS*, 500 nits*Antireflective / antismudge
MemoryUp to 16 GB LPDDR3 (Soldered)
BatteryUp to 19.3 hours* (MM14)
Up to 13 hours* (MM18)
51Wh battery includes Rapid Charge
StorageUp to 1 TB PCIe SSD
GraphicsIntegrated Intel® UHD Graphics
SecurityFast Identity Online (FIDO) authentication capabilities
Match-on-chip fingerprint reader
TPM 2.0 chip
ThinkShutter camera cover
AudioDolby Atmos® Speaker System
4 x 360-degree far-field microphones
CameraHD 720p with ThinkShutter privacy cover
Optional: Hybrid Infrared (IR) & HD 720p with ThinkShutter
Dimensions (W x D x H)323mm x 218mm x 15.2mm / 12″ x 8.5″ x 0.59″
WeightStarting at 1.35kg / 2.99lb
ColorIron Gray
ConnectivityIntel® Wi-Fi 6 AX201 802.11AX (2 x 2) & Bluetooth® 5.1
Intel® Wi-Fi 6 AX201 802.11AX (2 x 2) & Bluetooth® 5.1 with vPro™Optional WWAN: Integrated Global Mobile Broadband 4G LTE-A
Ports2 x USB-C Thunderbolt™ 3 (Power Delivery, DisplayPort) 
2 x USB 3.2** (Gen 1) (1 Always on)
HDMI 1.4
Network extension for Ethernet/side mechanical docking
Headphone / mic combo
KeyboardFull sized, spill resistant
Backlit with white LED lighting
What’s in the boxThinkPad X1 Yoga Gen 565W AC adapter
ThinkPad Pen Pro4 Cell 51Wh Internal battery
Quick start guide

I’ll point out some considerations on the above:

The CPU options are reasonable – i5 or i7 10th Gen Intel. Unless you need more CPU grunt, any of these options should be fine.

Ubuntu Linux officially supported and a pre-install option is good for those who prefer that space, and choice is always good. As much as I like Windows, you shouldn’t be forced to have it if you don’t want it.

There’s a lot of display options here, from 1080p (which I personally still go for in the work space), 2K, and 4K. A 1080p option is to have Privacy Guard – good for people who don’t want others seeing their screen – and it’s a toggle, rather than an always on thing:

The 16GB RAM has been my new minimum standard for the last few years – but also maximum, I see usage in the workplace easily go over 8GB with Edge/Chrome and Microsoft Teams running, but still not go near the 16GB mark.

The two battery options are again nice, with the smaller battery still more than enough for a day’s work. Rapid Charge is a must – you don’t want to have to plug in for hours if you do happen to run flat, before you can be on the go again.

Wi-Fi 6 is a nice upgrade on this model if you’re connecting to infrastructure that supports it. Here’s a good article on Wi-Fi 6 and it’s benefits.

OK, let’s move on to some photos of the device:

Lenovo ThinkPad X1 Yoga Gen 5

Front – 4 mic holes
Left Side – USB-C (inc charging), USB-C/Ethernet Dongle port, USB-A, HDMI, Audio Jack
Back – Hinges, no vents.
Right – Stylus, power button, USB-C, air vent, Kensington lock


As per usual, I don’t have any complaints about the device. This review is a bit late, so I’ve been using it for quite a while without issue. As you can see from the above photos, it’s a bit of a fingerprint magnet, but nowhere as obvious in real life vs what shows up in a photo.

I’ve posted two other articles on Four Generations of the Lenovo ThinkPad X1 Yoga and Fifth and Sixth Generations of the Lenovo ThinkPad X1 Yoga if you’d like more details comparing this against other models. The newer Sixth Generation Lenovo ThinkPad X1 Yoga is a bit more of a leap which I’ll review on it’s own soon.

I expect we’ll continue to see laptops in the X1 Yoga line-up for some time still!

*Although I am in a program with Lenovo (called Lenovo Insiders), no direct arrangements were made regarding this review or providing of hardware.

Safe Links now in Microsoft Teams

Microsoft announced that safe links are now Generally Available in Microsoft Teams. This is the same idea of Safe Links for email, and if you already have that on, enabling it for Teams is easy.

I won’t rehash all the details Microsoft have above, but Safe Links give a time of click assessment of a URL to check if they deem it safe. This can be better than time of delivery of the URL, as new threats emerge or the end results of the URL change.

To enable Safe Links for Teams, go to the Safe Links Policies & rules section of Microsoft 365 Defender https://security.microsoft.com/safelinksv2

From here, you probably just have one policy but could have more – edit the policy to affect the users you want, and in the “Protection settings” area, there will be an “Edit protection settings” link

Once editing, just set the radio button to ‘on’ against ‘Select the action for unknown or potentially malicious URLs within Microsoft Teams. Microsoft haven’t updated the warning around being in preview despite the GA announcement.

Once done, and waiting for a timeframe I’m not sure on, Teams will start using Safe Links. URLs being used in Teams look the same as before, and even if you hover over them, they show the actual end result link:

But when clicked, you’ll see this jump page while Microsoft Defender for Office 365 verifies the link:

Regardless of the link being clicked, the URL for me always displayed this:


It verified the link very quickly in my testing, less than a second each time. At this stage I can’t see any way to configure this page, or disable the option to Skip verification to enforce security, but we’ll see what happens.

My WordPress Site Was Hacked!

Yep, this site.

I’d been a bit quiet here for a few months due to some other commitments going on, but I was finally getting to a point where I could start blogging again. Upon trying to log in to WordPress Admin, my username/password wouldn’t work. After a few attempts I left it for the time being to come back later, figuring my browser had an incorrect password cached or I’d forgotten something about my credentials.

A few days later, I received an email alert from my hosting provider saying malware was detected on my website, from the ImunifyAV plugin running on plesk:

My WordPress Site Was Hacked

Yikes, I tried to log onto my website again unsuccessfully, but then tried the wordpress.com login option which worked – weird.

First thing I thought to do was to update my password, maybe my account had been compromised? I was still using the username ‘admin’ (yes I know), but I had a unique password in place, as well as a plugin installed called ‘Limit Attempts by BestWebSoft‘ which was configured to block an IP after 5 bad attempts for 1 1/2 hours. With a unique password and that in place, I thought it was still unlikely someone worked out the unique passsword here.

What I did notice in WordPress after going to the users section, was that there were 4 accounts, none that I recognised and none called admin. All the usernames had been changed to try and lock me out – which it had, but they’d not bothered dropping the wordpress.com login link.

I immediately created a new admin account (not called admin) and deleted the other accounts.

Next step was to work out what had been changed or infected. If I’d been running daily backups then it’d be easy (probably), roll back until the usernames weren’t changed. I had backups, but going back too far and I didn’t want to do the rework. All I really care about here is the content anyway, and I’m cheap so I wasn’t paying for a daily backup service, or the storage costs associated with that.

Since I don’t know PHP, the next step was on plesk to see what ImunityAV could do – it had an option to scan and repair these files, and at this stage I’d taken a new backup so had nothing to lose and let it do it’s thing. After a few passes it claimed it couldn’t find anything malicious and my site was all good. I checked over a few other things and couldn’t find anything wrong, so thought I was done. I also decided to de-activate a few plugins I didn’t think I needed any more, as that was a possible and common entry point to WordPress too.

A few days later someone told me they were seeing questionable content when clicking a link going to my site. Obviously my site wasn’t repaired, so I needed to sort it out or shut it down – the last thing I want is to be dealing up bad content. Just in case, I thought I’d go look at the user list again, and the usernames had been changed AGAIN. OK, it definitely wasn’t compromised credentials anymore – and sure maybe they’d put a backdoor in somewhere, but I pruned a few other WordPress addins and again cleaned up the accounts.

The owner of my hosting provider Expeed had suggested I try something like Wordfence as a WordPress plugin to help protect my site in the future. I found that this also had a scanning option, which I ran – and this found more malicious code within PHP files, as well as a bunch of HTML files around replica watches.

Several passes of scanning cleaned up all the PHP detections, but the html files weren’t getting removed.

I had a look at a few of the files out of interest, and if nothing else, it makes me feel better about the quality of the writing in my own posts here. The links were going back to different but non-reputable looking stores.

I’m guessing the idea of this attack was to purely drive purchasing traffic through to certain websites – if you wanted a replica watch, or a real life … doll, I was apparently helping you with that choice. Sorry.

Weirdly, they’d put all of the HTML files in the uploads folder for WordPress, so I manually went through and cleaned them out. That part didn’t take too long.

My site seems OK now, and wanted to be as comfortable as I could that it was now safe before posting up this explanation but how do you ever know if it’s fully safe? If anything else does come up I’ll either look at paying WordFence to clean it up professionally, or just rip the content out and start with a fresh WordPress instance, and import my posts. I’m pretty sure the culprit was one of the several abandoned plugins I had – about 12 or so were active, I didn’t need half anymore and a few of those hadn’t been updated for a couple of years. Just updating plugins isn’t enough, as all plugins were patched apart from one, but that was only two weeks outdated.

The real take-aways from this is have more frequent backups and an easy recovery process; there is no foolproof way of protecting anything online. Also, don’t feel too bad if your personal blog has been compromised – you’re the victim here. You can still do some things to protect yourself, here’s a reasonable article that lists 25 Simple WordPress Security Tricks to Keep Your Website Safe in 2021.

This really isn’t a good selling point overall for WordPress. You shouldn’t have to do this much work to protect what should be a platform to share content on.

If you want somewhere just to do simple text posts, check out GitHub Pages – but doing anything that’s not very basic will require a lot of time and effort if you’re not a developer. If you want to type and don’t mind giving your content and traffic to someone else, just use a platform like Medium. If you want a WordPress alternative that you can host yourself or with a hosting provider, then Ghost is worth a look.

How to avoid being hacked on WordPress

  1. Install a login attempt limiter plugin
  2. Update WordPress and Plugins frequently (automatically ideally)
  3. Run regular backups saved somewhere outside your hosting provider (automatically ideally)
  4. Remove or replace outdated WordPress Plugins
  5. Use a unique username and password for WordPress, and enable 2FA (now supported natively)
  6. Use a WordPress.com account to have another path of entry to your WordPress site

Applies To: WordPress

MSPortals.io – A List of Microsoft Portals

I thought I should write up a little bit of information on a site I created; msportals.io and how it’s doing:

Being a Microsoft 365 Administrator at the time, I was looking for a list of all the Microsoft portals, particularly from an administrator point of view. A lot of lists were floating around, but nothing that was being maintained or comprehensive enough. I’d asked around a lot around it, others had the idea that they were going to create something – but nothing happened. It was a pretty simple idea and I was hardly the first to have it…

I also had the idea of creating this list on GitHub. I’d already been looking at GitHub Pages to move my blog to, but not being a programmer or developer, I was finding it too difficult to try and work out how to migrate and have feature parity with what I was using on WordPress. However, the GitHub Pages free tier, allowing 500mb of data in a public Github Repository sounded like a perfect fit for me, providing a platform for a list of URLs.

I started to collect and write up a list of portals. Just the name of the portal, and a link to it. I wasn’t using any GitHub client or command line things, purely using the web based interface for GitHub to start putting data in and seeing how it looked on the resulting msportals.github.io site. It seemed fine, so I started asking around for people to tell me of any links I might be missing. People jumped on board pretty quickly to help (read my thanks section here) to provide portals, but also to actually contribute to the project and provide features that would have taken me a very long time to work out myself.

I also bought a domain – msportals.xyz as it only cost a few dollars a year, and GitHub Pages supports bringing in your own domain. I had the site up, started using it.. and though I should throw it out there to see how much criticism it brought. I posted a tweet:

I didn’t expect to get much of a response – it was more of a test so I could properly launch later. Instead, as I expect what often happens on projects like this, it blew up. It turned out to be my most popular tweet of all time, with almost 100k views. My only annoyance of this was that I had no statistics to collect on how much the site was being used! Quickly I had help to add in Google Analytics to the site, so about a week later I had stats.

Since mid November 2020, the site has had 55,000 users hit it. As expected, the engagement time is tiny – you go to the site and click a link.

That peak is when The Register wrote an article on the site. The site changed from msportals.xyz to msportals.io after @SwiftOnSecurity bought it and handed it over, after some discussion around certain firewalls blocking xyz domains under some standard settings:

Updates and suggestions to the the portal of Microsoft portals came think and fast for a while – nice features like a filter so you can just type ‘teams’ and see the link to the Teams portal were implemented by others (mdjx), due to the way open source platforms like GitHub work.

I don’t see as many portal suggestions and updates these days, but they still trickle in. I still use the site frequently, and see people pop up time to time saying how much they like it which is awesome to hear; I really wanted something functional for myself, and if others also liked it, that was a bonus.

I actually had an idea for another site – a list of PowerShell modules with the commands to both install and connect to different things like Exchange Online and Microsoft Teams. Someone had beaten me to it (which is good!), and had done it a similar way; check out https://msshells.net/ by Andrés Gorzelany to have a look at what he’s done.

If you’ve got your own idea for something like this, go for it! You can do it entirely for free if you don’t care about your own top level domain, and it’s an interesting project to try.

Fifth and Sixth Generations of the Lenovo ThinkPad X1 Yoga

For the first four generations of the X1 Yoga click here

The Lenovo ThinkPad X1 Yoga is still my favourite all-rounder laptop. In 2021 we’re up to the 6th Generation of the X1 Yoga and I’d previously written up the first 4, so figured it was time to cover these two.

Lenovo ThinkPad X1 Yoga Gen 5

Coming out in 2020, we saw the jump from the 8th Generation Intel CPU to the 10th Generation (we skipped 9th Gen Intel for some reason). It was also the first with WiFi 6 which is now seeing wide adoption across markets.

Beyond that, there was very little difference between the 4th and 5th generations of the X1 Yoga. All the ports are the same, the layout the same, and the keys the same beyond a few different special functions above some of the function keys. There is a privacy shutter over the webcam though, which is a handy addition.

Lenovo ThinkPad X1 Yoga Gen 5

Beyond that, there was very little difference between the 4th and 5th generations of the X1 Yoga. All the ports are the same, the layout the same, and the keys the same beyond a few different special functions above some of the function keys. There is a privacy shutter over the webcam though, which is a handy addition.

Lenovo ThinkPad X1 Yoga Gen 6

This one is a bigger jump again. The screen bezel is smaller, and at a 16:10 ratio rather than 16:9, the base resolution has changed from the very standard 1920 x 1080 and is now 1920 x 1200, providing a little more screen real estate without making the unit bigger – it’s actually slightly smaller as you’ll see below. Also coming with an 11th Gen Intel CPU, Lenovo changed the entire laptop from one shade of grey to another (OK, it’s officially changed from Iron Gray to Storm Gray which sounds like a superhero name).

Lenovo ThinkPad X1 Yoga Gen 6

The trackpad itself is a lot bigger, and the power button has moved to being above the keyboard, instead of on the side as per all previous generations. This button doubles as the fingerprint reader, no more dedicated fingerprint square to press. There’s also speaker grills on each side of the keyboard instead of above, and no dedicated special NIC dongle port.

Here’s some photos of the Lenovo ThinkPad X1 Yoga Gen 6 on top of the Lenovo ThinkPad X1 Yoga Gen 5:

Left side – X1 Yogas
Back – X1 Yogas
Right side – Left side – X1 Yogas
Front – Left side – X1 Yogas
X1 Yoga Gen 5 top
X1 Yoga Gen 6 top

From the above, there’s little differences to the ports beyond what I’ve already mentioned – the grill for expelling air went from the right on the 5th Gen, to the back on the 6th Gen (which is better to blow hot air away from you), and the audio jack is on opposite sides which shouldn’t bother anyone either way.

I don’t have any complaints around either model of laptop – there is something that feels more modern about the 6th Gen X1 Yoga in it’s colour and stylings, so the better CPU and screen differences are the biggest deciding factors. As always, I’m keen to see how the X1 Yoga line progresses, and this is a solid entry in the lineup.