Custom JavaScript Trigger Functions for Google Tag Manager

In this post we’ll go through how to fire events for the Google Tag Manager with custom JavaScript functions. Most tracking can be done just by using the built in Google Tag Manager tracking, but for developers that want to debug or need events to be recorded on very specific occasions that can not be implemented with the default functionality, JavaScript is the way to go.

Continue reading “Custom JavaScript Trigger Functions for Google Tag Manager”

Building a Singe Page App with Vue.js Tutorial

In this post we’ll create a single page app with Vue.js that shows a random quote or string. We’ll start from scratch and use the default webpack-simple boilerplate provided by the creators of vue through vue-cli.

This again is part of the Making of photographerexcuses.com post series, where I walk you through all parts that were necessary to create the page.

For this tutorial you’ll need to have node.js including npm installed.

Continue reading “Building a Singe Page App with Vue.js Tutorial”

Proxy / Rewrite your API Endpoint into Domain Segment with Nginx

I wanted to make an API available on the same domain as a single page app built with Vue.js, which means that I had to rewrite a part of the domain to use another port on the same host, but you can also use an entirely different machine or have a load balancer in between.

This post is part of the Making Of: photographerexcuses.com series.

I picked nginx for a server for some PHP productions and this because it simply has the best configs and it tends to perform a bit better if you don’t have a lot of RAM to throw at your server.

Continue reading “Proxy / Rewrite your API Endpoint into Domain Segment with Nginx”

Deploying your Golang App without Docker

How to deploy an app written in Go? That’s one of the questions I had when I first wanted to get something online after playing with Go for a while. Thinking back I think the first project I got online, was probably the redirect checker which is explained in detail here: Tracing or Preventing HTTP Redirects in Golang

When you just want to get stuff running, you probably don’t want to learn a container system, but just get it out there which is exactly what we’re going to have a look at in this post.

Continue reading “Deploying your Golang App without Docker”

Building a Go(lang) API with echo and MySQL

In this post we’ll have a look at how to build a MySQL backed API with Go and echo. This is part of the series that explains how we did photographerexcuses.com

The site is a Vue.js single page app, that gets its data (the excuses) from the Go API. We are storing the excuses in MySQL, because we can easily edit them at the same time with MySQL workbench or similar tools that don’t require flat files, git or other methods that would be more annoying to deal with.

Continue reading “Building a Go(lang) API with echo and MySQL”

Making of: Photographerexcuses.com

This is a short list of posts that describe how we built photographerexcuses.com using Go and Vue.

In the end we just found a bunch of silly excuses like

I don’t use Photoshop, it feels like cheating.

or

I didn’t know she was the bride.

and it took the biggest photo blogs on the net by storm, which was quite a surprise to us.

Continue reading “Making of: Photographerexcuses.com”

Best Cheap VPS Hosting Comparison (2017)

What are the greatest and cheapest VPS servers out there? Here’s a list of providers that offer developer friendly virtual private servers that make it super easy to spin up a new server in minutes.

My most common use cases for me are either starting new projects for pages, webcrawlers or to put client projects in a staging environment for them to preview it. I write my projects with a variety of languages and stacks, most commonly: Node.js, PHP (Laravel and WordPress) or Go, backed by xSQL or MongoDB.

Continue reading “Best Cheap VPS Hosting Comparison (2017)”

Quick Tip: Keep ‘Find Next Word’ with Vim Mode

A common annoyance when setting up atom on a new machine is that one of my favourite packages, vim-mode-plus keeps overriding a native setting, that I want to use. The nice select the next occurence of this word or variable feature is overridden by vim-mode-plus:scroll-half-screen-down, which honestly isn’t that useful at all.

All you need to do to revert the plugin from occupying a key binding is to open your keymap.cson and to insert the following:

'atom-text-editor.vim-mode-plus:not(.insert-mode)':
    'ctrl-d': 'native!'

Continue reading “Quick Tip: Keep ‘Find Next Word’ with Vim Mode”

Golang: Arrays of Strings

This post is going to be about Golang, arrays and strings. In Go we have more than simple arrays that we know from JavaScript or PHP. They are basically divided into the following:

  • arrays
  • slices
  • maps

This was confusing to me at first, because in basically every language I knew I could change the length of an array by just pushing things to it. Not so; in Go.

Continue reading “Golang: Arrays of Strings”

history.pushState and IE SCRIPT5022: SecurityError

I stumbled upon this error in Internet Explorer when I wrote my Redirect Checker and discovered that JavaScript Errors that imply an attempted security violation, that on top of that are not wrapped in a try-catch block, will totally disable your whole script execution.

I had code that looked something like this:

Continue reading “history.pushState and IE SCRIPT5022: SecurityError”