The Ad-Mob

Screen Shot 2018 02 15 at 10 34 49

I recently ran into a very frustrating situation with Googles AdMob service. Just over a year ago I posted an update to an App called Intervals. The update added Ad-Mob advertising to the App and an option to remove the ads for a small fee.

All went well and money began to trickle in slowly.

A couple of weeks later my son was born and I forgot all about the app. To be honest I forgot about it for about 8 months.

When I logged into the Ad-Mob site I was informed that ads were no longer being served because Google needed to verify who I am. This in spite of a long history with google, an ongoing subscription to G-Suite, some activity in the Android Play Store, and a completed bank account verification process.

The verification process goes like this; Google posts out a verification number to my business address. So quaint. I then have to put that verification code into the Ad-Mob site. I didn’t receive any verification code and there seems to be no option to request another via their online form as I’m in the UK.

Ok, no problem, lets contact support and explain the situation to them! No.

Seems that with Ad-Mob you can only access support if the app is generating a certain amount of revenue. Since I’m not showing Ads, I have no way of generating that revenue.

I asked on the help forums. Some quite impolite people told me that it might be my fault and I should have jumped on this earlier. I told them I wasn’t a naughty child. I’m actually a good boy, but I’ve been busy and please could I not have detention.

I found a support email address and sent an email. No response from that.

So, I find myself with a small balance I can’t access, no ad revenue, no in app purchase revenue (because there are no ads too remove) and no avenue to resolve this problem with Ad-Mob. All quite Kafkaesque.

Perhaps I should develop my own ad system using referral links. It can’t be that hard can it?

Rasplex

I have a Plex set up at home. It did run on my 2012 iMac, a machine whose job is simply to run Plex and to be a monitor for my MacBook Pro. This iMac is connected to an ageing Drobo which acts as media storage and a local archive. It’s a set up that has worked wonderfully for me for years. However, keeping the iMac and the Drobo powered on all the time has a not insignificant cumulative cost in terms of energy consumption and hardware wear and tear. Add to that the ever more impressive array of content on Netflix, Amazon Video, iPlayer etc has meant I use the Plex server less and less. I still want access to my local files (both Locally and remotely). So I decided to do something I’d meaning to do for some time; make something with a Raspberry Pi.

It was amazingly easy. I purchased the following…

  • Raspberry Pi 3
  • 16gb Micro-SD Card
  • A USB power supply
  • A case

That all came to about £35, and I probably didn’t need the power supply. I also made use of an old 300gb hard disk I had laying around.

Not to ruin the end of the story, but it was amazed how easy it was and by how well it now works.

I’ll hopefully go into the following in more detail at a later date, but the steps I took were;

  • Install Raspbian (Debian derived OS). This was a doddle. You can download the image from their website and flash it onto a card, or you can just get a card with Noobs already installed on it. If you do the latter, it’s simply a matter of choosing an OS. The whole process is painless. Wifi works, sound works, it all “just works“. A far cry from my last experience (many many years ago) of trying to install Linux.
  • Install Open VPN. This makes it so much easier to work with the Pi. No need for desk space, monitors, keyboards and mice. I gave Pi a reserved address on the network and used Screens on my Mac and iPad to work on the Pi.
  • Installed Netcat. This allowed me to access the filesystem via my Macs. The Pi just pops up in the devices list in Finder. You can use SFTP as easily.
  • Installed and setup Plex. Again, easy to do and well documented online.
  • Plugged in the hard drive. This is where I ran into problems. As I configured the libraries in Plex, I found that I couldn’t’t read from the drive at it’s default mount point. After some reading I discover that I needed to permanently mount the device. I mounted it and made it point to a folder in my ~home/videos folder. You can find the instructions I used on raspberry.org.

And really, that’s it. It took a couple of evenings of playing around. It now works wonderfully. It can transcode all but the biggest MKVs without a problem. It’s always available on or off my network, it’s. Totally silent and it sips power. If the iMac and the Drobo cost 0.5p and hour to run then this setup will pay for itself in less than 3 months.More importantly, my iMac and Drobo will last many years longer no they’re not been made to just sit powered on day and idle after day.

Silencing Warnings in Xcode

Lets face it, there are times when you just want to make Xcode stop showing you a particular warning. Turns out this is easy to do if you are compiling using the LLVM GCC. There are few options.

The nuclear option

Select your target and then select build phases. Find the file in the Compile Sources phase (by Eyeballing or by using the filter field in the top right). Double click on the file and enter -w in the box to turn off all warnings for that file.

Obviously you should use this with great care and you should take note of when it’s used. It will not be clear from the code that warning have been silenced.

You can find out more by taking a look at the Clang manual.

The tactial option

You can also silence warnings line by line. In Objective C you can use a clang diagnostic directive. The following example silences depricated calls using the -Wdeprecated-declarations directive. Other option are available.

#pragma clang diagnostic push
#pragma clang diagnostic ignored “-Wdeprecated-declarations”
// Your code goes here
#pragma clang diagnostic pop

Something similar is possible in Swift. For example…

@available(iOS, deprecated: 9.0)
func addressBookStatus() -> ABAuthorizationStatus {
return ABAddressBookGetAuthorizationStatus()
}

Weight

Weight is one of my oldest and most popular apps. Unfortunately it’s also one of the most neglected. Fortunately Apple, and some very kind, patient and understanding users have forced my hand; it is neglected no longer. I recently released version 3 of Weight with a new design and integration with modern iOS features such as Healthkit and Biometric identification. I’m looking to add loads of polish over the coming months. It’s still unapologetically minimalist and the fastest way keep track of your Weight, BMI and body goals. You can download a copy from the App Store.

What are we? What do we want?

It’s been party conference season in the UK. As usual we have the churn and tear of politics and as usual we don’t really have any articulation about how we will deal with anything outside the short and medium term.

The next 20 years will bring a revolution in technology that will create jobs, change the nature of work, put people out of work, raise new moral questions around personal liberty, privacy and the role of the nation state. Yet, we hear nothing about what we want the future to look like beyond the most general of statements about fairness and reduced waiting lists.

What kind of future do want, how do we achieve it? I would contend that we need to take three steps;

We need to start by looking at our values, independent of the technology or our place in the world. Do we we believe the individual has a right to privacy and how far does that right extend? Does the individual have a right to a certain standard of living irrespective of role in society? What are the responsibilities of the state and the individual?

Next we need to understand what is coming in the next 20 years. What will be the possible effects of technology if left unchecked? What is the darkest timeline and what is the most desired timeline?

Finally we need to regulate and legislate based on our values and understanding of what is likely to come. We need to be willing to constantly test and adjust our trajectory based on the realisation of the projected tends, because we will be constantly proved wrong in our assumptions.

In a very short amount of time, the UK will leave the EU. Now seems the perfect time to be defining who and what we want to be as a country. Whether you think we should be leaving the EU or not, now is a time that demands we have vision and hope. Who are we? What do we want?

Budgeting. Attempt 5322

I have been going some budgeting today.

Over the last few years I’ve tried a bunch budgeting methodologies to try and really get a grip on my spending. Once of my favourite methods is the YNAB ( or envelope) method. Unfortunately, being in the UK I can’t use the YNAB service effectively as I can’t connect a bank account. This means that I have to enter each transaction manually. Eventually errors creep in, outgoings are missed and balances drift apart. This makes the whole thing a little pointless and very frustrating. But, before the drift sets in I did see that it could work for me.

Today, I’m trying something new of my own devising. My goals are

  1. Make the whole thing simple and automatic
  2. Design a process that helps to inhibit bad behaviour. 
Here’s how it’s gonna work. I started with a spreadsheet where. I have my fixed outgoings divided into 3 categories;

– Fixed home costs. Things like mortgage, utilities, taxes, etc.
– Debt repayment, Credit card, car payments etc.
– Everything else, like Netflix subscriptions, phone, etc.

The remainder is then split into savings, and a weekly allowance. This allowance is then paid onto my Monzo pre-paid debit card. The idea is to spend only from that card. To this end, it will be the only card I carry with me on a day to day basis. I will remove details of all other cards from amazon and the like to introduce friction when I try to use those cards.

I’m hoping that by giving myself a small weekly budget I will be able to manage my less predictable outgoings without having to worry about what might be coming out of my other accounts later in the month. The Monzo card gives almost instant feedback on purchases and everything is captured and categorised in their app. This visibility will help me see where I am waisting money and will let me tune my spending behaviour. Finally, it lets me run out of money in a way that will not result in overdue payments.

I do run out of money, I won’t have wait long for more. I am going to call this the “External Ego Method” as it’s and external system designed to reign in my financial id.

13th Doctor

2398

I’ve loved Doctor Who for as long as I can remember. It has and continues to have it all; a protagonist you can look up too and who is still a mystery after 54 years, a huge scope capable of supporting any type of story, adventure and optimism. Not to mention a brilliant mechanism for making the show endlessly new. These are the things that make Doctor Who great. None of it has to do with the gender or ethnicity of the Doctor. I am so excited to see where the show goes and how it changes with the new Doctor and the new show runner.

I suppose the reaction by about 10% of the fan base is to be expected. That 10% should perhaps consider the following;

  1. Being a fan of the show doesn’t mean that it belongs to you. It belongs to us all and it is different things to us all
  2. The upset about the Doctors gender says more about them and their fears than anything else
  3. It’s about time they grew up and opened their minds. If they do, they might even enjoy what the find

I have no doubts that Jodie Whittaker is going to be a great Doctor and a fantastic role model to all the girls and boys who watch the program. This is all very exciting.