I've wanted to build one of these for a while since it solves a bunch of minor irritations that I have with using ad-blocker plugins, mobile browsers, my Rokus, and various drive by malware attacks.
If you're not familiar with a Pi-Hole it's an open source project that runs on a Raspberry Pi (the $35 dollar micro computer.) The big draw of the doing this is that the ad-blocking occurs at the session level of the network rather than the application layer. What this means to you is a reduction of bandwidth, since the ads/malware never makes it to your browser, and no longer have to deal with iffy plugins. Additionally the Pi has no fans and very low power consumption which makes it ideal for this task.
Newark/Element 14 carries starter kits (they're also great for electronic components in general.) I just rolled my own with one of the official cases as I'm not going to do any heavy lifting with it and didn't want the clear one on my shelf in the kitchen.
The board is pretty small but packs a 1.2 Ghz quad core Arm processor, a gig of RAM, a wireless card, bluetooth, NIC, 4 USB ports, HDMI and stereo outputs. I added the heat sinks because they were $4 dollars. So what the hell,
From there, with the official case anyway, it's a snap together affair. (Hopefully my fancy .gif works)
Plug in a keyboard, mouse, and monitor, then the power cord and you're greeted with some fancy ASCII art and the Raspbian OS boot screen. (Don't mind the walls or the wingback chair I'm recovering. They're on my list of things to do once my kids reach an age where they can amuse themselves for a hour.)
Configure Raspbian with the correct date, time, US English, US English keyboard mapping (or Dalvik if you swing that way), and get it on your network.
Open the command prompt and smash in the correct command:
Magic happens.
Then you'll run through the configuration. If you have any network knowledge this is pretty easy to step through, even if you don't the defaults will work fine (I only changed the DNS to Level3 instead of Google as Level3 has a Net Neutrality stance I very much appreciate) and choose a static IP for the Pi outside of your dynamically assigned range.
Plug your Pi-Hole into your router.
Alter the settings on your router so they don't incorporate that IP into the dynamically assigned range
Change the DNS from your ISP to the Pi's static IP address
And viola you now have a device which monitors your network DNS traffic and blocks ad/malware domains from passing DNS addresses to your endpoints. All you need to do is whitelist GRM's advertisers through the very nice interface and you're good to go. Sorry GRM staff I'm still not unblocking that 3rd party ad server as I still get the Amazon/Walmart gift card ads here and there. The ads which only show 3 or 4 different advertisers from one of the Double click domains haven't caused an issue so they get a pass.
Interested to see how this goes but so far there's a marked improvement in performance with my mobile devices. It also manages to kill those "White list us" full page popups. It literally took me longer to write this than the entire project took, it's that easy.