MagicMirror Build

After seeing various people building MagicMirrors, I wanted to build one for myself.  I did this in June 2017. Why post about it now? Well, I fully intended posting about it back then but then, you know, life.  On a few occasions now I have found myself talking to (boring) people about this project and I ended looking for pictures to show them, which takes too long, so I figured I should get it all in one place.

The MagicMirror is made up of a few basic components:-

1 x 22″ Dell Monitor, purchased from eBay.
1 x Raspberry PI ( & SD Card)
1 x Two Way Acrylic Mirror Sheet
1 x Frame
1 x PIR

Also, we need the MagicMirror software, I did consider building my own, I was thinking along the lines of a webpage in full screen, but then I came across the awesome open source project,

I didn’t really have a plan but I figured I should get the MagicMirror software up and running on the RaspberryPi first before spending any money.  This is what I did and to my surprise, I did this quickly, I think it took about an hour and that included installing Raspbian onto the SD card, which takes approx. 20mins. 

So this was the result of my first tinkering, I got the software installed and figured out how to rotate the display and hide the mouse cursor, these settings are made in the RaspberryPi config files, you may have to play around with the resolutions settings.  Also note, this isn’t the Dell Monitor that was used in the build. 

After getting this far so quickly I was really motivated to continue.  So I needed a monitor for this project, which I found on eBay.  I purchased a 22″ screen as I felt this would make a good size monitor and not too big or small when vertical. 

I tried to get a monitor with built-in USB ports, the hope was that I could power the RaspberryPI from one of them, unfortunately, this didn’t work as they are data only and no power, a more modern monitor or if buying a new monitor for this purpose then I would ensure it had powered USB ports as this would mean only one power cable for the unit.  I did consider splitting the power from the Monitors power but decided against it in the end. 

So the monitor arrived from the seller and I, of course, powered it on to ensure all was in good working order, which it was then I got to work removing the casing from the monitor.

This was straightforward. I removed the stand and a few screws and the rest of the case unclipped it didn’t really matter if it broke as I wasn’t intending to ever put this bezel back on again. With that done it was time to attach the Pi with the MagicMirror software and boot it up and see what it looked like, yes I couldn’t wait to see what it looked like.

I did a fair amount of Googling and came to the conclusion that Two Way Acrylic was to be used for the Mirror, this is not glass as it’s cheaper and provides the same effect, there are different transparency levels, I asked them to send me samples so I could try and figure out which would work best, so after choosing and ordering the Acrylic, I moved on to building the frame,  conveniently my Dad is a joiner so I asked him to build a case for the screen. I have seen mirrors in IKEA which could possibly be used. You can see that process in the images below.

At this point, the Mirror is almost done.   It’s now just a case of getting the IR passive working.   This was a passive IR sensor connected to RaspberyPI via the GPIO pins and a plugin for the MagicMirror software and this enables/disables the display so that the mirror can come on or wake up as somebody walks up to it.

There is a lot of plugins available for the MagicMirror software and more are being added over time, this is something that you could never stop tinkering with for example you could take this to the next level and make it touch screen.

Let me know in the comments if you have any questions or if you would like any more details,  go build your own.

Remote Desktop : Your Computer can’t connect to the remote computer because a security package error occurred in transport layer.

This was/is one of the strangest issues that I have ever come across.Β  You try to connect to remote server and it does connect and the following error message is returned.Β 

Your Computer can’t connect to the remote computer because a security package error occurred in transport layer.

After a recent windows update the cached credentials no longer work.

To fix the issue delete/clear the cached credentials under the remote gateway settings.

Happy New Year

Happy New Year

Happy New Year All.   I’m hoping to post more this year.  I hope 2018 brings all that you wish for. Have a great year! πŸ™‚

DFS : The Case Of The Missing Files

I’ve actually not used DFS all that much myself.   I’ve configured it a couple of times in a Lab Environment and it just worked, of course we all know things are different in the real world.

So I recently configured DFS across two servers Server-01 [names change to protect the identity of the innocent servers :-)] , Server-01 had approx. 300GB files to replicate across 3 shared folders. Server-02, the new server, empty of course. 

DFS Namespace was already installed, I added Replication on Server-01, so Server-02 was installed and configured as normal and replication started a few minutes after, awesome, so left it replicating over night and the following morning I checked.  That’s odd checked the file count between the servers there was a difference on the number of files returned. 

So I started investigating what was going on, at first I thought no replicating was happening at all, so I looked at the diagnostic report which suggested the staging area (a cache), was to small, I increased the size of it, at this point I wasn’t sure what I should change it to, the diagnostic report just reported it was to small, so I doubled it, from the default, 4096 to 8192 nothing happening to the file count. What was hopeful about this was if it was too small replication could stop, sounded like my issue.

When I found the dialogue to change the staging size, there was a link on that dialogue which explained staging and what was required to set the right size, you have to take the top 32 largest files and total them up and this is the figure that your staging should be set to, it only uses it if it required to and if it gets within predefined thresholds, the oldest files will be removed from the staging area.   The article provides a PowerShell script to total up the staging size:

(Get-ChildItem -recurse –force | Sort-Object length -descending | select-object -first 32 | measure-object -property length -sum).sum /1gb

More information regarding this can be found here :

After waiting awhile and checking, no new files appeared. πŸ™  However the staging error in the diagnostic report had gone, so I guess that was positive. I still had missing files, things weren’t making much sense at the this point, so I created a few test file on Server-01 and watched Server-02 to see if they appeared and they did, which meant replication was working, just not for all files.

So some files for whatever reason weren’t replicating, it turns out that DFS won’t replicate files that have been marked as Temporary, you have to check the files properties to see if the file has been marked as temporary and if you want that file to sync then you need to change its properties from “Temporary” to “Normal” and it will replicate. (More information about this can be found here,, I did this on a couple of test files and they replicated, so I ran it across the whole folder and this increased my replication count. Progress, but I still had missing files. πŸ™

Comparing folders and started to notice files with extensions, “tmp”, “bak” and starting with tidal (“~”).  This got me thinking, so if DFS doesn’t replicate files that are actually marked Temporary then files that use things, like “tmp”, “bak” and “~” may also be considered temporary files.   I wanted to prove this to myself, so I fired up two VM’s and configured DFS and ran some tests.

So now it was just a case of checking how many of these files that had the “bak”, “tmp” and “~” extensions and hoping that the total matched the missing number of files.  I did this using PowerShell to find the files and then I did a count on them and here’s the break down.
$fileswithbak = Get-ChildItem -Filter "*.bak" -Recurse
Server-01 : Folder-01, Total files : 673,791
Server-02 : Folder-01, Total Files : 669,049

Unaccounted for : 4,742

Files with “bak” extension : 4,483
Files with “~*” at the start  : 178
File with “tmp” and hidden extension  : 18
File with “tmp”  extension  : 63

Total : 4,742
Remaining files unaccounted for : 0
Server-01: Folder-02, Total Files : 909,084
Server-02: Folder-02, Total Files: 886,697
Unaccounted for: 22,387
Files with “bak” extension : 32
Files with “tmp” and hidden extension: 0
Files with “tmp” extension: 4
Files with “~” at the start: 22,351
Total: 22,387
Remaining files unaccounted for : 0
Problem solved, it was important to know that these weren’t production files not being replicated.

Enabling WordPress AutoUpdate – Windows Server

Looking at how to get WordPress running on Windows Server and allowing auto update to work.  This is what I did and it seems to work.   

I used the Web Platform Installer to install WordPress, I then downgraded it to WordPress 4.7, I just copied the files over the install.  So I could test the upgrade process.  When installing using the Web Platform you need to provide random generated key’s, I found this which generates random keys for you, but the Windows Installer doesn’t like $, which is a tad annoying. 

Hope this helps. Have fun πŸ™‚