Fix your PayPal PHP IPN script

January 23rd, 2014

In October 2013  PayPal changed a bit of their server infrastructure. They announced it well, with multiple warnings about requiring the Host: header to be sent with verification requests.

Now suddenly my PHP IPN scripts did not work anymore, data was coming in but nothing got verified.

Checking the response quickly points out that PayPal is now redirecting requests to use HTTPS, but our old scripts are still based on years old example code using fsockopen on port 80.  fsockopen doesn’t know about HTTP redirects.

So, to get your PHP PayPal IPN notifications working again, you should replace the fsockopen line with:

$fp = fsockopen('ssl://www.paypal.com', 443, $errno, $errstr, 30);

Update: A few days later things stopped working again… it seems PayPal now adds a newline character behind the VERIFIED response, messing up the sample script. This can be resolved by replacing:

$res = fgets ($fp, 1024);


with

$res = trim(fgets ($fp, 1024));

Obsessed about monitoring

February 10th, 2013

For the past two years, I’ve been working on one of our products: Observu,  a site and server monitoring platform.   The last year we’ve applied it to our existing sites and customers and now we feel it’s ready for others to see and use as well. It took a bit longer than anticipated, due to other projects and responsibilities taking up time, but we’ve always kept determined to get Observu ready to launch.

If you are interested in improving your availability, response times and quality of service in general, check it out at http://observu.com/

I definitely do not feel like we are done now, having it out in the open now is just the start to find out which direction we should go.  We’ve got so many ideas, but we can’t execute all of them right away. Your feedback will be greatly appreciated and help us guide further development.

Startup/Product Blog Inspiration

May 2nd, 2011

It has been common practice for years now for startups to blog about their new product and its development. It’s one of the key methods to keep your future customers informed. However, as soon as you find yourself in the situation to blog it can’t hurt to have some inspiration.

First, I’ve selected blogs that seem to post regularly and have some traction. The blogs I choose are: kissmetrics, pingdom, flattr and joelonsoftware. After some reading I extracted the following topics from these blogs.

  • Press coverage, if you’re product was reviewed in a paper on an important blog, this can validate your product in the eye of the reader. You are not just an anonymous product, but a serious contender.
  • Jobs, listing job openings shows that you are growing, this can be interpreted as a sign of success, people don’t want to buy from someone that is loosing.
  • Important News, besides the obvious point of informing your users, posting news on your blog will also provide reference for those interested in spreading your news even further.
  • Development Progress, especially if there is not much happening on the outside, it’s good to show that you are still committed to the product. People hate to invest effort in something that’s dieing.
  • Development process/tools, if your target audience is also in the developers arena, blogging about the process and tools can be the start of a relationship. You’re not just a company trying to sell them something, you are a colleague, with the same problems and challenges. JoelOnSoftware mainly focuses on this and is great at it.
  • Niche Related Articles, becoming a resource for your potential customers, without directly selling your product by posting articles related to your product niche is a great way to gain a bigger audience. Kissmetrics does this exceptionally well.
  • The same goes for Best practices/tutorials. Especially if they become easier by using your product, but do not require it.
  • Infographics are very effective link-bait, again Kissmetrics is very strong in this area.
  • Reports/Research based on your data or questionnaires may get you press coverage when executed correctly. Pingdom is regularly featured in mainstream newspapers as a source. A very smart form of promotion.
  • Industry News could also widen your reach, but it will probably require a very very persistent approach to become an authority in your niche.
  • Repost stuff from the internet is a very common tactic often in the form of round ups like: “the best 5 SEO tools” or “10 must visit design resources”
  • Interviews can come in a lot of different ways, you might interview your team members, important customers or an industry bigshot.  Of course the latter is more likely to get you some extra audience.

I hope this listing will inspire you to post more regularly, it certainly inspired me.

Review: Pivotal Tracker

April 16th, 2011

For Observu implementation we are using Pivotal Tracker to keep track of features and progress. I’ve posted a full review on our Observu Blog. To summarize:  the idea of having a single ordered list of features instead of just a bunch with priorities is amazing. It gives you so much more information and forces you to make decisions on what really needs to happen and what needs to happen first.

Competition Anxiety

March 16th, 2011

If you start a new product/website/service  it’s wise to know your competitors.  Find out what they offer at what price and quality. There is nothing wrong with that.

However,  it’s easy to fall in a different trap: get the feeling that you need the same features as your competitors have.  This leads to three problems:   you loose the big picture,  the grown feature set feels like a burden and you’ll get a me-too product.

Instead of focusing on features,  focus on marketing and positioning. Are there gaps?  Untargeted niches,  untried approaches? Only after that,  look for those key features that will attract those customers you want.

Idea Overload

February 10th, 2011

You’ve got so many ideas in your head that you just don’t know where to get started. As a result, you start procrastinating on stuff you do feel passionate about. At the same time, you’ve got enough energy and are motivated to get stuff done.  It’s a bit contradictory state of mind, that happens to me once in a while.

The problem is anxiety to commit to one project and  even more so: leave all those other things alone.  I believe the key to overcome this problem is to start on anything.  In the end it does matter much more that you’ve made progress and added value than it matters which choice you make.

Of course, that’s easier said than done. ‘Pick anything’  is still a choice and choices are hard. Therefore I use a very simple solution:  pick the easiest task that still adds value.   In the end you probably will have to do all those tasks anyway, so why not start with the easiest one?    Especially  in programming,  getting anything done, will give you more context to solve the next task.  Tasks that may have seemed daunting at first, become easier and better defined when the system around it takes shape.

Power of Quora: Pick Your Own Crowd

January 17th, 2011

In my initial review of quora.com, I wondered how it was going to cope with the masses. The current value of quora is largely in the crowd that is on there. There are top-level founders, CTO’s, etc giving valuable insight into their way of doing business and the current use of technology. So what will happen to that when the masses come? On most forums, the experts leave or quality topics get buried by loads of trivial ones.

However, I now believe I figured out the power of quora: you can pick your own crowd.  By following the right people, you automatically select the quality and topics that you are interested in.   In time, generic topics like ‘webdevelopment’ will probably be swamped (at least, without heavy moderation), but brilliant people, will stay brilliant and will keep giving high quality answers: you just need to find them.

Freemium and Bootstrapping

January 6th, 2011

These last few years the Freemium business model has gotten lot of attention and examples.  Basically it’s to offer free accounts to your service with an option to upgrade to a paid pro account. Key is to create enough benefit and goodwill to get those upgraded members.

Another interesting development is the notion of ‘Bootstrapping a company’. Which comes down to  starting a company self-funded, with minimum means. This is nothing new, most businesses in the past centuries have probably been started this way.

What I am interested in is the combination of using a freemium model for a bootstrapped (online) business.  It seems natural to create a free site first, as a side project, and add the paying part later, when it gets some traction. You would think that’s perfect for bootstrapping, as at first you can just focus on the idea itself, instead of building the whole business. It’s just going to cost you some time as there is no need to invest heavily in sales: free sells itself.

However, I believe this is generally a bad idea. First of all, free accounts create volume. This means your costs will grow and development will become more complicated with the larger scale.  Furthermore, it’s hard to pay for promotion,  when you are unable to determine returns on the extra users you gain. What if those expensive clicks just lead to more free money-draining signups?  This disconnection between scale and revenue involves risk, that you may not be able to take without an outside investment. It could take a while before you find the right balance to turn a freemium business into a profitable one.

A perceived advantage of a free version is that lots of users will get you a lot of feedback to improve your product.  However, feedback from users that don’t pay, does not necessarily say anything about the reasons users are not upgrading.

If you are going with a freemium model, I do have some advice:

  • Put very strict limits on the free account from the very start. If you have to put up limits afterwards, this will only get you angry users;
  • Add new features to your paid version first. Make sure that those members that are paying feel valued;
  • Think very hard about the cost of a free user, especially over time. For example, starting a freemium video site is probably not a very good idea without a stack of money;
  • If possible, make sure free accounts generate content  (unique content can potentially get you traffic)
  • Develop the paid version first, make sure it is worth the money and only after that add a free version to help promotion and to convince new customers.

All in all, using a freemium model complicates things in a way that makes it hard for a bootstrapped company to really follow it through.  In the end you are partly creating your own competitor, available for free.

Reviewing Quora.com

January 4th, 2011

Last week I was introduced to quora.com . It’s a smart Q&A on almost everything. The crowd is currently very tech oriented, thus so are the questions.  The most notable difference to existing forums and Q&A sites is the way you select the content you are interested in.   You can follow  people, topics (tags)  or specific questions.  All together building a feed of questions and updates tailored to your interest.

I see some relation to asking a question on Twitter, however with Quora your other followers can actually see the responses. Currently, the quality of answers is one of the big selling points. The people answering are CTO’s, founders, etc. making it a great place to read up on new trends.

Although it took a while for me to figure out the search box,  it works very very well and incredibly fast. It can find people, topics and specific questions as you type.

As with every new service,  there are still a few things in there that are not as smooth as desirable. First of all, it is hard to see what has been read. This has been a standard functionality in almost every forum out there, not without reason. Furthermore, the homepage feed is structured a bit weird. For example to me it would make more sense to group   the ‘new question added’  and ‘answer added’ on the same question  together, instead of having them at multiple points in the time-line. Especially annoying is the fact that new items are added to the homepage at the top, while you are reading, moving you away from what you were reading. Finally, on the homepage it some times it shows topic suggestions on the right, but not always. If it’s not showing there, I find it hard to figure out where I can get those.

There are some other things I wish there were in there:  for example a way to ‘archive’ certain questions, so they don’t appear anymore, even though they are on a topic I’m following. I would also very much like to see a global feed with all questions, that does not look like a diff screen.

In general it feels very promising, however the big question is: how will it cope with the masses? As soon as this goes beyond the early adopters, will I still be able to cope with the large amount of questions on the topics I’m interested in?  Or will I have to wade through batches of unanswered and uninteresting topics?

Posting Regularly

December 28th, 2010

As you have seen,  I’m way better than before in posting regularly on this blog.  I’m still doing the same things, so there is not more to write about. However, I do follow a new system for posting.    In the past I would post when I was inspired to do so.  After a while inspiration dries up and you run into the ‘I have to write something…. ‘ problem and it will start to go downhill soon from there.

My new approach is to decouple inspiration,  writing and posting.   Instead of  going from idea to post in say 30 minutes.  I now just write down everything that could potentially be a blog post, without putting the burden of actually writing it on myself.  So I just create a draft post with the title and whatever flows easily from the mind.   Sometimes it is just the title,  at other times it is almost a full post.Because I do not force myself to write the whole post, I’ve collected a lot of drafts that could grow into a post.

At other times I might not feel inspired at all, but I do feel like getting something done. This the time to finish posts. Maybe find some relevant links or creating an illustration. When done, I either schedule the post  or let it rest for a bit until I feel like it is time to post again.

To make sure that I don’t forget about posting, I’ve also set up a repeating item in my Google calendar.  With the drafts already there, it takes no effort at all to actually get something out there if I didn’t already.

Using this approach I have gone from a single idea to post action  to a buffered approach that’s can cope much better with prolonged lack of inspiration or plain laziness.  It does take a bit of discipline to not immediately post what has been written, but it does lead to a much more consistent post rate.