Archive for the 'Hosting' Category

What’s new in PHP 5.3?

I wrote an article on Installing PHP 5.3 in order to look at the newest features that have been back-ported from PHP 6. The result of this is my What’s new in PHP 5.3 article that was published by SitePoint yesterday.

I won’t go in to the nitty-gritty here, but suffice it to say the the new features will solve a number of problems. Read the full article to find out more about namespaces, late static binding, a new MySQL native driver and the other features of PHP 5.3.

Installing PHP5.3

PHP LogoI recently installed PHP 5.3 in order to play with some of the new features and thought I’d share the steps I took with you. While it’s based on a clean installation of Ubuntu 7.10 Server, you might find this useful on existing systems too.

As ever, this guide is for educational purposes only. I offer no warranty of suitability or accuracuracy. Use at your own risk, and if it goes wrong head over to the forums for help…

Read my full article at the Melbourne PHP Users Group web site.

VideoJug.com - The Wikipedia of YouTube?

I just heard about VideoJug - yet another online video hosting service. I though nothing of it at first, but had a look anyway.

Not only do they accept user contributed films, they also produce their own, and say that every video they make available is vetted or produced, respectively, to ensure the highest quality and value. It looks like a combination of Wikipedia and YouTube (or Google Video).

Todays homepage highlights videos that help you give up smoking, live a greener life or improve your dating, while the most viewed films has a heavy bent on running small businesses. No sign of teenagers singing along to their favourite music or creating a video letter in response to someone’s cry for attention!
Drilling down and looking at one of these videos shows a really neat addition to the user experience: tables of contents. Each video has the ability to give the users way points in the film. Watching the movie on “Small Business and Pricing”? Why not skip right to the point where the presenter covers the definition of a price margin?

I haven’t had an in-depth look at this yet, but first impressions are pretty good. While I prefer to get access to text (most of my research is done with google and wikipedia), I imagine there will be numerous occasions were video is better. I’m not sure I’d like a video tutorial on configuring a new application, but my clients would probably appreciate a video tutorial to help them set up their email client.

Challenge/Response Email Verification

Challenge/Response email verification (CREV) is a mechanism for reducing the amount of spam you get. It works like this:

  • Alice sends Bob an email,
  • Bob uses a CREV system, and this is the first email he’s received from Alice,
  • The CREV system holds the email and sends an email to Alice asking her to reply or follow a link to verify she is a real person before the email can be released and sent to Bob,
  • Alice replies or follows the link,
  • The CREV system adds Alice to a white-list (so she won’t be asked to verify herself again) and releases the email for delivery to Bob,
  • Bob receives the email.

Compare this with normal email systems:

  • Alice sends Bob an email,
  • Bob receives the email.

Looking at it this way, you might think “Cool! So much less spam! And Alice only has one extra step to allow her email to get trough”.

Well, consider my way:

  • Alice sends Bob an email,
  • Bob’s mail server noticed this is the first email he’s received from Alice,
  • Bob’s mail server tells Alice’s mail server it’s currently busy, and could the email be sent again in 5 minutes (this is referred to as grey-listing),
  • Alice’s mail server holds onto the email and resends 5 minutes later,
  • Bob’s mail server accepts her email on the second attempt - any subsequent emails from Alice to Bob will be immediately accepted in future,
  • Bob receives the email.

This method doesn’t require any extra work on Alice’s behalf, and when implemented in conjunction with other anti-spam mechanisms (such as checking sending mail servers against black lists, which I didn’t include in my flow because this can also be used with CREV systems) cuts down spam enormously. For example, I got 1 spam email yesterday.

You might argue that CREV systems would cut that down to zero spam, but this is not the case. CREV will only allow emails to a user from a given email address. If you receive a spam that appears to come from a white-listed address, it will still get through. This is more likely than you might expect, as many spam and virus-laden emails are sent through spyware applications that email users in the infected person’s address book, which means they come from someone you know. Neither grey-listing nor CREV systems will stop this type of spam.

So what’s wrong with CREV systems? In my opinion, it’s a poor implementation due to the challenge/response requirement that the sender must take action to ensure the email gets through. Imagine a scenario: you’re at the airport, your flight is about to leave. You have to email a document to a client that you haven’t emailed before, and they require it by close of business that day. You hit send, you shut down your laptop and board for a 16 hours flight, only to get to the end and find the challenge response email. Your email has not been delivered, and the client will not get the document they required until the next business day.

With my implementation, you hit send, you shut down your laptop and board the plane. Your email reaches their server, and they pretend to be busy. Your email is resent automatically by your mail server 5 minutes later. The client gets the document 5 minutes after you sent it. All’s well.

Update

I thought I should explain more about why grey-listing works. In the example above, Bob’s mail server correctly retries to send the email to Alice after the 5 minute period. If Sam the spammer sends Bob (or Alice) an email, his mail server will likely ignore the request to resend in 5 minutes. All Sam wants to do is pump out as many emails as possible before his mail server is black-listed. As the email is never resent, it never gets delivered.

And purely for interests sake, here are some other checks my mail servers perform after the grey-listing process before allowing email through:

  • Check the remote mail server communicates using the correct protocol,
  • Check the remote mail server is not black-listed,
  • Check the email address of the sender is valid,
  • This checks that the sender’s mail server will accept email to this address, not just that the address is correctly formed
  • Check the sender’s computer or gateway is not black-listed
  • Check email isn’t identified as spam using a bayesian spam filter

If these checks pass, the email gets delivered.

Oops

So, I moved my site to another server and forgot to copy that special file that makes the RSS feed and sub-pages work! Doh!

All’s well again in my world…