Igor's Blog

Google DFP with AdSense fallback is causing infinite scroll pages to go haywire
I've written an article last year about using Google DFP with AdSense on infinite scroll pages which worked very well and was the basis for a number of my own sites and projects. In the past week however I noticed that GPT, which is the JavaScript library used to create DFP ad slots, started behaving erratically.
Benefit of adding Google AdSense Matched Content to your site or blog
Google AdSense Matched Content has been available on my domain for quite some time but I was hesitant to start using it. My main reason was that recommended article links tend to be spammy and annoying. However, after quite a bit of deliberation I decided to give it a go and was quite surprised with results. The main outcome was more page views on my blog and as a flow on effect, more potential advertising revenue.
Using Google DFP with AdSense on responsive pages
I've been using Google DFP instead of AdSense on a number of sites that I run because it relaxes some of the AdSense rules and more importantly gives you fuller control of your ad placement. For example you can easily place AdSense ads on infinite scroll pages using DFP, which can't be done with standard AdSense code. One place that DFP falls short however is the ability to use responsive ads. This example shows how with a bit of extra code it is possible to make DFP ads somewhat more responsive friendly.
How to change the email subject line in Gmail
If you use Gmail (or G Suite) and have ever received one of those emails that lets you unsubscribe by replying with a specific subject line, you were probably at a loss when looking for the spot where Gmail lets you edit the email subject. I went looking for it recently and it wasn't as straight forward to find as I thought. Here's how you do it though.
Migrating domain email from GoDaddy to Google G Suite
This article will show how to move your GoDaddy hosted websites's email over to and existing Google's G Suite setup. The assumption is that there is an existing GoDaddy hosting account with the standard email services set up and that a G Suite account has been previously set up with a primary domain other than the one being moved. As an example I will be showing how I moved all email services for the rawsparts.com.au domain.
How to remove Google's logo from your G Suite applications
I've had Google's G Suite set up for my domains for quite some time and think it's fantastic. However, I have been a bit annoyed with the Google logo being plastered all over the G Suite apps. Further when I tried to change this logo to something of my own, it never sized properly, so I thought that the best solution was simply to remove Google's logo.
How to fix pixelated text in Google Chrome to make it appear smooth again
When I first installed Google Chrome on my Lenovo IdeaPad 100S I was surprised with how bad some web pages looked. Specifically - the text in certain web sites was the problem, it came up all pixelated and looked quite ugly.
Make the new Gmail App delete messages instead of archiving
The new Gmail App has been released on iOS a couple of days ago and while going through the settings I noticed that deleted messages were set to Archive instead of being Moved to bin i.e. deleted. I think this is a bit undesirable, pressing delete should delete the message, so here's how to make sure it does!
Gmail filters ignoring the Skip Inbox option and how to fix it
Recently I noticed that my Gmail (actually in my case G Suite ) has been ignoring the 'Skip Inbox' option on all of my filters. Even though I had several filters set up to move emails out of the Inbox and archive them, they kept on staying in the Inbox. Turns out there is a setting that controls this!
How to get free unlimited email addresses with your basic G Suite account
In the past I've written about how to migrate from Gmail to G Suite and shared 20% discount coupons for G Suite. Now I want to show a way to create free unlimited email addresses across multiple domains and only pay for a single G Suite user. So for $5/month you can set up unlimited email addresses.
G Suite coupon for 20% discount in the first year
I've been writing about G Suite for some time now and thought that I should share these discount coupons now too. By using these you'll get 20% off in your first year which means you'll only be paying $48 for your first year of using G Suite (if you have one user).
The right way to migrate from Gmail to G Suite email
Now that I finally finished migrating my email to Google G Suite and learned the right and wrong ways of doing it I decided to write up the what I think is the best way that one should go about migrating from a Gmail email address to an email address hosted by G Suite. So here it is.
Removing temporary email addresses from Google G Suite user admin console
As I keep moving my email over to Google G Suite I keep finding quirks in its setup and administration. One of these are the temporary emails that Google sets up on a test domain for initial testing purposes. These are all well and good but eventually you do want to get rid of them, here's how.
Fix G Suite SMTP error when adding another owned email address
I've recently started moving all my email (personal and all my sites) to Google G Suite, formerly knows as Google Apps for Business. I was quite impressed with the service and was setting up all of my owned email addresses in Gmail when I hit the following error...
Resolving GAE deployment error - 'An error occured while deploying to AppEngine'
I was doing some updates to my Guru JSON-RPC Tester recently and when it came to deploying my changes to AppEngine, I was presented with this very uninformative error message - "An error occured while deploying to AppEngine. See the error log for more details". That didn't give me any clue as to what the actual problem was, not to mention the obvious spelling mistake in the error message.
Fix your site's microdata with the Google Structured Data Testing Tool
It's been about two years since I've added microdata to my blog and since then support for this feature has really improved. I happened to check it out recently again, just by chance, and saw that Google has enhanced their Structured Data Testing Tool significantly.
Why "Browser API keys cannot have referer restrictions when used with this API" error happens
After Google started to force developers to use API keys I changed my code accordingly and for a while everything was working fine. It wasn't until I tested my application on a real server that I started to get the 'Browser API keys cannot have referer restrictions when used with this API.' error. It didn't take too long to figure out why this happens and how to fix it so read on to find out.
How to use Google AdSense on infinite scroll web pages
If you want to use Google's AdSense on your page that has an infinite scroll set up (like I do on travelblog.ws) you could be out of luck both because AdSense T&Cs forbid more than 3 of the same ad unit being shown on the same page and secondly because the AdSense code is simply not set up for that. However this article is about getting AdSense working on infinite scroll pages so there is a way to do it, read on to find out how.
Google Maps now forcing developers to use an API Key, returning MissingKeyMapError
I've noticed that whenever I was using the Google Maps API recently it was displaying an error in the JavaScript console and the API was not functional. This seems to be due to Google forcing developers to use an API Key whenever they access their Maps API now. This change is not huge and is easy to implement so read on.
A good way of passing around latitude/longitude when using Google Places Autocomplete API
Google Places Autocomplete is an excellent addition to a web application that needs to have its users enter a location. I've been using this API quite a bit on my travelblog.ws project and have written about ways of implementing it with jQuery. This article shows how I am passing around the latitude/longitude coordinates that Autocomplete returns so that I can make use of them in other parts of my code.
How to simplify a temporal data set for graphing in Google Drive Sheets
When I added a bunch of fans to my TV unit I ended up collecting lots of temporal temperature change data that was quite 'noisy'. Statistics is not my strong point so I was looking at a quick and easy way of cleaning this up for plotting and settled on something that can be done in a few steps in Google Drive Sheets.
A better way to initialise Google Maps Places AutoComplete API
Not long ago I've written about how to use Google's Map AutoComplete API. Now I've been going through my code and refactoring it. The new method is more flexible and easier to use.
Google sends out billing Emails for Google Cloud Platform in Error
Yesterday I received an odd email for one of my Google App Engine projects, Guru JSON-RPC Tester, informing me that I do not have a billing account and that if I do no create one that my project will be deleted.
Get user's location with HTML 5 Geolocation and Google Maps Reverse Geocoding API
Facebook does it, so you can do it too. I'm talking about getting the user's location when they are interacting with your website. Whereas previously you had to rely on IP address based solutions, now the modern web browsers that support HTML 5 allow you to get this information easily. Combine that with the Google Maps API and you can get some very detailed location data. Here's how.
Use Google Maps Places auto complete API without displaying a map
Here's a bit of code that I'm using on a personal project of mine. This code uses the Google Maps Places API auto complete feature without having to display a map. This means you get a text input box where you can start typing in Google Maps locations and fit it into your standard HTML forms.
RevenueHits for Blog Monetisation - skip it if you have any sense of credibility
I recently missed my Google AdSense payment threshold by $0.02 and that got me thinking if I really have the right ad network for my Blog, so I started to do a bit of research on what other advertising networks I can replace AdSense with. The number one name that kept on coming up was RevenueHits. There was no approval process (first warning sign perhaps?), their website was very simplistic and straight forward and setting up your ads was quite easy. It was not until after I did some trial runs with it that I discovered the true extent of how discredited this advertising network was.
Use Facebook Chat, Google Talk and Jabber XMPP all in one App - Trillian
Trillian is the only app that I know about that lets you have Facebook Chat, Google Talk and your regular Jabber/XMPP accounts all in one place. Now that Facebook Chat stopped working in OSX Messages, Trillian really does look like the only alternative.
How to get Google Talk working with Trillian and stop those 'Sign-in attempt prevented' emails
Even though Google Talk support has been deprecated by Google, you can still use it via third party clients like Trillian. I tried to do this and found that Google blocked my sign in attempt as they promised they'd start doing. There is a way around it however.
Chrome and Safari keep saying ad.doubleclick.net requires a client certificate
I've noticed today that ad.doubleclick.net started asking for client certificates when browsing in Safari and Chrome on OS X. For some reason mutual authentication is being performed by the doubleclick (Google) servers. I'm guessing this is a configuration issue on the Google side as there is generally no need to have the client prove their identity, especially when serving ads. That or this is some new ad tracking technology gone wrong.
Is Apple's iOS News app a Google Play Newsstand killer?
Apple updated iOS to version 9.1 recently and with that brought out its new News app. I had a bit of a play around with it and must say that I do really like it. It is a built-in app so there is no additional download, it also means you can't remove it and every iOS 9.1 device will have it. This isn't necessarily a bad thing because as you will see below it boasts all the features you would want in a free news reader app and it is a serious competitor to Google's Play Newsstand. But is it a Newsstand killer?
Building a trip map with markers and paths using Google Maps Static API
I've started thinking about how I will go about making a travel diary blog type web application that will be used on an upcoming round-the-world-trip and decided that I will definitely need maps on it. I wanted to do things like display the trip itinerary as a path with markers at each stop, I also wanted to show a zoomed in map of the current travel location. So I needed a way to generate these maps, the most obvious answer was Google Maps, and after a quick search I found exactly what I needed, the Google Maps Static Maps API. This makes static images of the map data, so it won't let you scroll around, etc, but with regard to my project, this is a perfect fit.
What to do when the Google Plus Moments API is no longer supported
I've noticed a couple of weeks ago that my Google+ auto-posting on my blog stopped working and was giving me a 500 server error. At first I ignored this thinking it's just a temporary outage, but when it persisted for days I decided to investigate it. Turns out Google stopped supporting the Moments API and all of a sudden it stopped working too!
Share a link to a web page using a Google Plus app activity
I wanted to have a way of automatically sharing my blog posts directly to my Google+ stream for a while. After starting work on this feature I quickly hit multiple road blocks. However, I was able to come to some sort of compromise with the Google+ API and can now share links for my blog articles to my Google App's feed, here's how I did it.
Example of using the Google Plus OAuth refresh token
If you want to avoid prompting the user to give permission to your app every time it tries to use their Google+ account for authentication/authorisation, you probably want to use the refresh token to gain the same access.
How to configure the Google Plus API to use with your web application
If you want to use the Google Plus API in your project, you have to create an app first. This is a relatively easy process and is described in the quick-start sample apps that Google provides, however here's another version with screenshots, because pictures are easier to follow than blocks of text.
Google adds 2Gb of free storage to those who updated their security settings
Back at the beginning of February I wrote about how to get 2Gb of extra storage for your Google account. In that article I also said that Google would be adding this storage at a later stage. It looks like they've come through on their promise.
Get a free 2Gb bump up to your Google Drive storage
If you use Google Drive you already get a fair amount of free storage, well now Google is offering to bump up your storage by an extra 2Gb for free. The catch? You just have to check your security settings and the free storage will be awarded to you by the 28th of February 2015. This offer seems to be valid only up to the 17th of February so if you want the free extra storage, don't wait, do the security check now!
Google's sense of humour is...mathematical
I was looking at the settings for the Gmail app on iOS and something caught my attention. The version number is set to 3.1415926, which is the number Pi to the first 7 digits. I've checked both my iPhone and iPad and the version number is the same on both. Very mathematical!
Google Play Newsstand replaces Google Currents and works with iOS 8
Since the iOS 8 update, Google Currents stopped working, but now Google has come out with something new. Google Play Newsstand is the replacement for Currents that works on iOS 8. The layout is different and to me feels more like a newspaper should.
Google Currents crashes on launch after iOS 8 upgrade
Google has replaced with Currents app with Google Play Newsstand check out this post for more information.
Adding Google search to a FlatPress theme
Although FlatPress includes a search feature, I found it to be quite limited, so I had a look at adding Google search to a theme in FlatPress and found that to be quite easy to do. There is some tinkering with the FlatPress code itself, however the end result is a fully working search for FlatPress that is backed by the power of Google.
Make Google Documents Spreadsheet recognise Australian dates
I use Google Documents a fair amount and recently have been really bothered by the fact that it was not recognising the dates I put in (in the Australian format) or worse it was making dates appear completely different. This was an obvious locale problem, so I went for a look around and this is how you fix it.
Implementing Thingiverse OAuth2 with Google App Engine
I've been working on the next version of Extrudifier that will have integration to Thingiverse for direct uploads and Thing creations right from the Extrudifier app. This needed a bit of work to get the OAuth2 workflow set up, this is what I describe in this post. I chose to go with Google App Engine and Servlets because this was the easy and free and could be up and running quite quickly. All that's needed to implement this integration is a bit of JavaScript, a Java Servlet and some App Engine magic.
Generating dynamic images using HTML5 canvas with Google App Engine
Not so long ago I wrote a small JSP page for my GAE based game that displayed all of the players and their basic stats plus an image representing their game map. This worked great on the development server, but on the production server no maps were being generated. Why? Because Google does not permit ImageIO classes to run on their servers. I started looking for other libraries to implement the same functionality and sadly didn't find much. So my solution was to do it in HTML5 instead.
An Indy game design toolkit on a budget: Wiki, GitLab, Apple TV and Google Docs
Over the last several weeks we have been working on the design of the game we are building and since we don't have an office to work in and are doing this in our spare time and have pretty much zero budget, I've been trying to find various innovative ways to facilitate the design sessions.
Parents, Children and Ancestor queries in Google App Engine with JDO
Fetching a child object by the ID of the parent using JDO had me stuck for a while. According to this article "reads, writes, and ancestor queries will always reflect the results of the commit" in the Google App Engine data store (HRD). After trying various things and reading lots of documentation and forum posts it all came down to how I modelled my objects. Now when I persist a parent object with an attached child, then immediately perform a query to fetch that child, the data returns as expected.
A simple JSON-RPC server with Google AppEngine
I've started exploring the use of Google AppEngine for a project I'm working on. JSON was one of the technologies that was going to be used and JSON-RPC looked like an attractive way of exposing functionality without writing your own server network code.
Adding microdata to FlatPress themes so Google can create rich snippets for a blog entry
Rich snippets provide a way for Google to display search results in a more structured way and give the user an idea of what is on the site with a quick glance of the search result. There is an overview on how to do this using microdata, which is non-intrusive to the web page and quite easy to get started with.
Adding Google AdSense ads to FlatPress without violating Google policy
When I started modifying the FlatPress theme I am using to include AdSense content, I wanted to be able to have the main blog page not displaying any ads within the entry, but when viewing a single entry, I wanted additional ads shown inline with the entry itself.
Adding a Google compatible sitemap to FlatPress
I could not find a FlatPress sitemap generator, the one that was available previously seems to be down now, so I've decided to write my own based on some of the SQL export code on the FlatPress wiki.

Previous Post

Next Post

Programming, DIY, Games, Hacks, Tech and more.
Follow me on...
Current and Past Projects
See my Resume


RSS Feed

My Other Web Sites

Igor and Elise's Travels
Riverside Expressway Cam
300 George St Blogumentary

My Online Tools

UUID to OID Converter
Guru JSON-RPC Tester
Extrudifier Object Designer

Recent Blog Posts

Handling visibility of mobile only pop-over DIVs on a responsive web site

WebLogic package-name element classpath generator script

Using Jersey 2.x as a shared library on WebLogic 12.1.2

Google DFP with AdSense fallback is causing infinite scroll pages to go haywire

Workaround for Mobile Safari scrollTop() not updating during scroll

Skipping execution of Maven plugins that do not have a native skip option

Unmarshalling an XML fragment representing a JAXB object without XmlRootElement

Injecting a ContainerRequestContext into a Jersey entity provider class

Obfuscating PHP source code with Maven and YAK Pro PO

Making use of corner shelves with easy to make slide out draws

Recent Galleries

Space Food - Chocolate Ice Cream with Chocolate Chips

Legeod Star Wars AT-DP kit

DIY spare parts computer build with a RAIDMAX Anura case

Fake 'Lepin' brand Lego packaging

Hardwood garden bench with clear resin void filler

Fixing a 3D printer extruder that stopped heating up

Easily increase disk space in a Lenovo Ideapad 100S 14" laptop with an M.2 SSD

Making a multi-piece 3D printed solder spool holder stand

DIY indoor apartment grow light wiring

Good Friday Electronics fun Easter Bunny LED PCB Kit IBEABU-01.0

Top Categories

Blogs I follow

Matt Moores Blog
Georgi's FlatPress Guide
Perplexing Permutations
The Security Sleuth


RAWS Parts Online
Alpha Dimensions Hosting
Kristensen Photography
Ilia Rogatchevski
Travelling Fairy

Blog Activity

Blog Activity
Follow me on... 
...or subscribe for updates!

Don't show this again