Installing Pi-hole On A Raspberry Pi: What is Pi-hole?

Raspberry PiThis post is part of the series on installing Pi-hole on a Raspberry Pi; this series is a sub-series of the Adventures with a Raspberry Pi.

Before launching into the installation of Pi-hole, I thought it might be useful to explain what a Pi-hole is and why you might want to use one.

From Wikipedia

Pi-hole is a Linux network-level advertisement and Internet tracker blocking application which acts as a DNS sinkhole (and optionally a DHCP server), intended for use on a private network. It is designed for use on embedded devices with network capability, such as the Raspberry Pi, but it can be used on other machines running Linux and cloud implementations.

Pi-hole has the ability to block traditional website adverts as well as adverts in unconventional places, such as smart TVs and mobile operating system adverts.

I run quote a few PCs, laptops, tablets and so on in the house, as well as mobile phones or tablets when people visit; I have uBlock Origin installed in Vivaldi, but I wanted something a bit broader in terms of ad blocking. The actual impetus to sorting out a Pi-hole was when Google announced they’d be making changes to Extensions ion Chrome which would have crippled ad blockers.

Internet adverts have become far too intrusive and I just want them gone (I have a small set of whitelisted sites where they have ads which are not intrusive (no video, sound, flashing or otherwise moving images).

Pi-hole admin

Continue reading “Installing Pi-hole On A Raspberry Pi: What is Pi-hole?”

Find Table in All Microsoft Dynamics GP Databases

Microsoft Dynamics GPI was doing some work with a client recently with a custom extension being tested in some Microsoft Dynamics GP companies. Due to how it is deployed (very manually) we had only deployed it to some databases and not all.

Due to other project commitments, no testing was done for a while and when we returned, we weren’t sure if the deployment notes listed all databases correctly or if some of those databases had been overwritten for other testing.

So, a small script was needed to check for the presence of a custom table in all databases; the below is what I came up with to check for a table in all Microsoft Dynamics GP databases:

Created by Ian Grieve of azurecurve|Ramblings of a Dynamics GP Consultant (
This code is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0 Int).
DECLARE @command nvarchar(max)

DECLARE @SystemDatabase VARCHAR(15) = 'DYNAMICS'
DECLARE @Table VARCHAR(50) = 'SY00800'
CREATE TABLE #ReturnedData(

SELECT @command = 'IF EXISTS (SELECT 1 FROM sys.databases AS dbs LEFT JOIN ' + @SystemDatabase + '..SY01500 SY ON SY.INTERID = WHERE = ''?'' AND ( = ''' + @SystemDatabase + ''' OR SY.INTERID IS NOT NULL))
							USE [?];
							INSERT INTO #ReturnedData (dbname, tablename) (SELECT DB_NAME() AS ''DB_NAME'', FROM sys.objects AS o WHERE LIKE ''' + @Table + '%'')

EXEC sp_MSforeachdb @command

SELECT * FROM #ReturnedData

DROP TABLE #ReturnedData