Stripe account closed for no reason

I thought I should put this out there to warn people about Stripe.

We started using Stripe a few months back and took a handful of payments - most of our customers pay by bank transfer or Paypal. One customer, who I know personally, wanted to pay by credit card, so I obviously let him use the Stripe gateway. He made the payment from his own credit card which went through.

However, he was connected to his personal VPN. Later that night (just after midnight - I'm sure they have a cron that does this), I got an automated email through from Stripe saying that they didn't want my business any more and all unsettled payments had been refunded.

I've tried to contact them a few times about this - because we are a legitimate company doing legitimate business - nothing funny at all. I haven't heard back on any of these counts, although there is a small possibility that it's been picked up by our email spam filter which is quite stringent.

With this in mind, I sent a further couple of emails in specifically to ask for a telephone call, as there is no telephone number on their website. A few days later - no emails and no telephone calls.

For those who are thinking about Stripe, the phrase "worse than Paypal" comes to mind, which is a shame as I really wanted to like Stripe.

We're now looking into Braintree, which looks to be a better, albeit slightly more expensive option, with a longer setup time.

Loading Deck's Hosting Automation!

We will imminently be releasing a very large update to Loading Deck. This update includes an "add-on store" from which a number of new features can be enabled. It also includes a number of UX enhancements:

Major new features include:

  • (FREE) A much better client view with one-click access to important client services
  • (FREE) A client-facing responsive front-end with a customisable header and footer
  • (FREE) An extensive API
  • (PAID*) Products and and a beautiful, responsive order form with automatically generated plan comparison tables. Clients can pay right on the order form using Stripe.
  • (PAID*) Automation via cPanel, SolusVM and Feathur
  • (PAID*) Bring your own domain and SSL certificate

We are currently accepting applications for a private beta of these new features. To apply for the beta, please get a free Loading Deck and then email

Pricing for the new features will be available via the add-on store when these features are released publicly. The beta is free and without obligation. The pricing after the beta will be highly competitive.

*Note that the prices shown in the screenshots are placeholders.

Foul play by OnApp (and the end of an era)

I was using (and recommending) OnApp to a number of small businesses to create micro-clouds. Unfortunately, last year they took action to eliminate the intake of small business customers. Nothing wrong with this, although I found it a little sad that small businesses are expected to pony up $500/month.

<< Email removed >>

This is an email from OnApp basically thanking me for supporting them and now telling me where I can stick it. As they know, using an unsupported platform for anything remotely important is a terrible idea. To add insult to injury, OnApp is deliberately build to be as difficult to migrate away from as possible.

So, about 2 years on, I was left stranded, feeling powerless to stop this foul play. Sadly, I've had to discontinue my small hosting service because of this.

I hope that anyone considering OnApp has the chance to read this and factor these business ethics into their decision.

Uploading a large binary file with AFNetworking

I've recently started coding an iPhone app!

I chose AFNetworking as a framework to deal with outside connections as it seemed to be well supported and included support for JSON. It generally works well, but one thing that doesn't work out of the box is large binary uploads. There are a few patches but generally speaking, you'll get the following:

'request body stream exhausted'

The best/only way I could find to make this work is to initialise a connection beforehand and then send the file down the connection, sort of like what one user recommends on Stack Overflow except their 'solution' doesn't include all of the necessary code.

Here is all of the necessary code to get this to work: