Why I Love: Radar Charts

Visualising data so it’s easy to grasp is one of the big challenges we’re facing at a global scale. There’s lots of data, but often the presentation is wanting. Newspapers and other publications have employed teams to present infographic like widgets to back up their stories in both digital and print.

Loving is a strong word, but it’s fitting. We deal with data all the time and the mainstream media coverage of how data is presented, frequently doesn’t go beyond displaying a circle chart of who would have voted for a specific party on the upcoming election.

Continue reading “Why I Love: Radar Charts”

The Fortnite 101 Beginner Guide

This guide is for Fortnite beginners, the recent free to play, Battle Royale, 100 people land on an island and get to… well, slaughter each other. Sounds familiar? Like… Player Unknowns Battlegrounds? It's literally the same game, except you have no cars, everything looks like a comic and you can build your own buildings. Minecraft Unknown basically.

If you, like me, prefer to play with your friends, this guide is for you. Or for them. If you want to prevent them from playing badly and dying all the time.

There are a couple of very easy things you can do in Fortnite to at least survive longer than all the impatient lunatics jumping off at the Titlted Towers every round.

Continue reading “The Fortnite 101 Beginner Guide”

Golang Goroutines and Channels with Custom Types

In the previous post, we had a look at how to wait for goroutines to be finished before moving on. In this post, we’ll have a look at using custom types with them. If you want to have a look at the Go Goroutine and channel basics, have a look at Goroutines, Channels and awaiting Asynchronously Operations in Go.

When using Goroutines and channels, chances are you want something to happen that is very specific to your program and not necesserily just a collection of numbers or strings.

I often use web crawling as an example, mostly because it’s part of a project I’m working on. I crawl websites and either extract information or build some kind of error check or to ensure some output is as expected.
Continue reading “Golang Goroutines and Channels with Custom Types”

Goroutines, Channels and awaiting Asynchronously Operations in Go

Golang has fantastic support for actions that are supposed to happen concurrently (at the same time) without blocking the thread, they are called goroutines and are used by simply putting go in front of a function.

The functions prefixed with go will run “on their own” and the rest of your code will continue to run.

In order to gather results or returns from the functions, you commonly make use of a channel. Channels are the collecting “buckets” that will receive what your goroutines write to them.

Continue reading “Goroutines, Channels and awaiting Asynchronously Operations in Go”

WordPress Filters Example for Beginners

WordPress comes with a lot of built in amazingness, one of those are filters. You can filter a lot of different things that WordPress outputs into your theme or from your plugin that originate from another place.

That means you can add or remove something to all titles, category names or widgets. That might not seem incredibly useful at first, but if you for example want to add a text at the end of a blog post or page while using an already existing theme, it can be very nifty.

Continue reading “WordPress Filters Example for Beginners”

Parsing Your Data from the Habitica API

I’ve been using the Habitica Habit Tracker recently and it’s been a really good app to handle all sorts of history tracking. How much water do I drink? How many cigarettes do I smoke per day? Hint: recently very few.

Fortunately Habitica also has an API that lets you work with your entire history programmatically and to display it in every chart you can imagine.

The chart I wanted was to look at the history of how many cigarettes I had smoked per day. If you’re a smoker you probably know that it’s more of a day by day thing how much energy you have to fight the urge of simply going for another smoking break or lighting another cigarette.

Continue reading “Parsing Your Data from the Habitica API”

Habitica Habit Tracker Review

Habitica, formerly known as HabitRPG is a habit tracker app for Android and iOS that also comes with an accompanying website to enable you to track your habits or keep ToDo Lists.

The concept is simple, you enter your habits, daily tasks and ToDos and then you have an easy way to keep track of what you do how much. The tasks are segmented in

  • Habits (good and bad ones)
  • Daily Tasks (also weekly or monthly possible)
  • regular Todo Items

Also every task can have a difficulty. Drink Water for example I find trivial, but running 5k is medium/hard (at least in my world).

Continue reading “Habitica Habit Tracker Review”

How to Create a Custom Landing Page in WordPress

If you’re using a WordPress theme you’re actually quite happy with, but you just want to change the appearance of individual pages completely, you can make use of two great things in WordPress. The possibility to create child themes and custom page templates.

For jonathanmh.com I wanted a great first page load time that enables users to quickly see what the page is about and not just show my latest blog posts. At the time of writing I’m using the twentyfifteen WordPress theme, but I wanted the front page to be separate from that entirely.

Continue reading “How to Create a Custom Landing Page in WordPress”

How To: Detect Ad Blockers (adblock, uBlock, etc)

As a blogger or any other kind of publisher, you might be interested in if the user accessing your page right now is using an ad blocker or not. You might want to do that to display a box that encourages them to disable their ad blocker, because you’re trying to make a living off of blogging or to make more conscious decisions about how you’re going to layout your page.

If a user has an adblocker installed, you don’t have to reserve the space in your layout for the ad units, so you might as well get rid of them, so in this post we’re going to have a look at how we can determine if a user has installed an ad blocker like Adblock, Adblock Plus or uBlock.

Continue reading “How To: Detect Ad Blockers (adblock, uBlock, etc)”

YouTube disables Monetization for Low Traffic Channels

I got an email yesterday that told me that Google / YouTube decided to kick me out of the YouTube Partner program because I don’t have enough watch time.

Now, I’m not the only one who got that email and admittedly I don’t have a lot of traffic on my YouTube channel. It’s not even the channel for this blog, it’s the channel for Unganked, a video gaming channel nobody has ever heard of. It got kicked from the YouTube partner program because it had less than 4000 hours of watch time in the past 12 months and less than 1000 subscribers.

Continue reading “YouTube disables Monetization for Low Traffic Channels”