Sunday, 25 December 2011

Secure VPN Services

I've been looking recently at options for a secure VPN connection to the US or Europe. There are many websites which treat traffic from Australia differently to other countries, and it helps to be able to test sites from different locations. In particular, when using CloudFlare I'd like to be able to check if my website is up & running for users in America, not just the local Oceania area.

One of the best services I found was Super VPN Service. They offer VPNs for anonymous surfing with an IP address located in the United States or Germany. They include a torrent VPN service, and even a free account with the following features:
  • Connection using PPTP&L2TP protocol.
  • Servers are located in United States and Germany
  • Unlimited amount of traffic
  • High speed internet connection
  • 128 bit encryption
  • Works for PC on Windows /Linux/Mac OS
  • Works for mobile phones with Android/Windows/Mobile/iPhone/Blackberry/Symbian platform
That's a pretty full featured service, and the free option sounds like it would do me fine. What VPN service do you use, and how much does it cost per month?

Tuesday, 7 June 2011

Google Music Terms of Service

I just got an invite to Google Music Beta =D Of course, I read through the entire terms and conditions before signing up (doesn't everyone?) They were quite interesting, so I've posted them here for your interest. Note at the bottom there is a section for "Gracenote", a music data provider which has partnered with Google for this enterprise. I wouldn't be surprised if Google acquires Gracenote (or a similar company) some time down the track. It's not often that Google licenses the core data set for one of their services from a third party.

Listed below is the Google Music Beta Terms of Service, current as of 7th June 2011.

Additional Terms of Service for Music Beta by Google

Last modified: May 10, 2011
Thank you for your interest in Music Beta by Google! By using Music Beta by Google ("Music Beta" or the "Service"), you accept and agree to be bound by the Google Terms of Service, the Google Privacy Policy, and theMusic Beta by Google Privacy Policy, each of which is incorporated into this agreement by this reference, as well as these Additional Terms of Service for Music Beta by Google (collectively, the "Terms"). It is important for you to read each of these documents, as they form a legal agreement regarding your use of the Service between you and Google Inc. ("Google") whose principal place of business is 1600 Amphitheatre Parkway, Mountain View, CA 94043, United States. This document explains how your agreement with Google is made up and sets out some of the terms of that agreement. Capitalized terms not otherwise defined in these Additional Terms have the meaning given to them in the Google Terms of Service.

The Music Beta Service and Your Music

Music Beta is a Service as defined in Section 1.1 of the Google Terms of Service and is provided to you for your personal, non-commercial use solely in connection with lawfully acquired music files from your personal collection that you choose to make available to yourself through the Service, including all data comprising, describing, or associated with each music file that you choose to upload, such as audio data, metadata, and album art for each selected file (whether referring to individual uploaded files or to your entire uploaded library, "Your Music"). Music Beta consists of (a) Google-provided server space that you can use for storage of Your Music, and (b) software applications and related web sites and services that allow you to upload, manage, access, and play back Your Music through a web browser or through any supported, Service-enabled device. To the extent that you use the Music Application for Android devices in conjunction with Music Beta, those uses are governed by the Terms, including these Additional Terms.

Trial Service Availability and Limitations

Music Beta is a trial or "beta" Service from Google that requires you to register with your new or existing Google account. It is available free for a limited time to residents of the United States (including its territories and protectorates) who have received an invitation from Google and accept the invitation by signing into their Google account to register for use of the Service. As a beta Service, certain limits on storage or usage may apply; these limits may be set or changed by Google at any time, at Google's discretion, and you agree that you will not attempt to obstruct or prevent the application of those Service limits at any time, or to manipulate your usage of the Service to avoid or circumvent them. You can find more information about applicable Service limits through the Music Beta Help Center.

Third Party Fees

Music Beta is available without charge from Google; however, you may incur access or data fees from third parties (such as your internet provider or mobile carrier) in connection with your use of the Service. You are responsible for all such third-party charges for your use of Music Beta on or through third party services and devices.

Privacy and Your Personal Information

Section 7 of the Google Terms of Service governing Music Beta by Google is replaced in its entirety by the following:
7.1 For information about Google's data protection practices, please read the Music Beta by Google Privacy Policy at This policy explains how Google treats your personal information, and protects your privacy, when you use the Service.
7.2 You agree to the use of your data in accordance with Google's privacy policies.

Your Permissions and Instructions to Google

Section 11 of the Google Terms of Service governing Music Beta by Google is replaced in its entirety by the following:
11.1 You retain any rights you already hold in Your Music. You acknowledge and agree that you are solely responsible for your own conduct and Content (including Your Music) while using the Service and for any consequences thereof. You agree to use the Service only for purposes that are legal, proper, and in accordance with these Terms, and that by using the Service you are requesting that Google make all of the necessary functions and features of the Service available to you in order to facilitate your use of Your Music according to the Terms. Without limiting the generality of this overall permission and instruction, you specifically agree that you are instructing Google to perform the functions described in Sections 11.2, 11.3, and 11.4 below.
11.2 By uploading or submitting Your Music to or through the Service, you are directing Google to store a unique copy of Your Music on your behalf and to make it accessible to you through the use of your login credentials.
11.3 By accessing, managing, playing back, displaying, or using all or any part of Your Music on or through the Service, you are directing Google to initiate and perform the corresponding functions on your behalf, together with any related steps necessary to achieve them, through the Service.
11.4 You understand that Google, in performing the required technical steps to provide you with the Service as described in the Terms, may (a) transmit Your Music over various public networks and in various media; and (b) make such changes to Your Music as are necessary to conform and adapt it to the technical requirements of connecting networks, devices, services, or media. You agree that in each such instance, your use of the Service includes a direction to Google to take these actions on your behalf.
11.5 You confirm and warrant to Google that you have all the rights, power and authority to grant any permissions and give any instructions to Google that may be required to perform the actions necessary to provide you with the Service. You agree that you will not upload, submit, access, manage, play back, display or use any Content (including any portion of Your Music), or direct Google to do anything with Your Music on your behalf, unless you have all of the necessary rights to do so without infringing the rights of any third party or violating any laws or agreements that apply to you, the Content, or Your Music.

Copyright Notices

It is Google's policy to respond to notices of alleged copyright infringement that comply with applicable intellectual property law (including, in the United States, the Digital Millennium Copyright Act) and to terminate the accounts of repeat infringers. Details of Google's policy can be found at

Third Party Software

To the extent that Music Beta includes components governed by third party or open source licenses with provisions inconsistent with the Terms, those components are instead governed solely by the applicable third party or open source licenses. Information regarding those licenses (except for software provided by Gracenote, Inc., for which the terms are included at the end of this agreement) can be obtained at the following location:

Acceptance of Terms

You accept the Terms either by clicking to accept the Additional Terms presented to you when you first access the Service or by using Music Beta by Google. Your continued use of the Service constitutes your consent to the Terms (as may be modified from time to time, in whole or in part, with or without notice). It is your responsibility to review the Additional Terms regularly for updates. If you do not agree to the Terms, you may not use the Service.
You can review, print or save a copy of these Additional Terms of Service for Music Beta by Google (and navigate to other links referenced in the Additional Terms) by visiting the Additional Terms web page at:

Gracenote Software

This application or device may contain software from Gracenote, Inc. of Emeryville, California ("Gracenote"). The software from Gracenote (the "Gracenote Software") enables this application to perform disc and/or file identification and obtain music-related information ("Gracenote Data") from online servers or embedded databases (collectively, "Gracenote Servers") and to perform other functions. You may use Gracenote Data only by means of the intended end-user functions of this application or device.
This application may contain content belonging to Gracenote's providers. If so, all of the restrictions set forth herein with respect to Gracenote Data shall also apply to such content and such content providers shall be entitled to all of the benefits and protections set forth herein that are available to Gracenote. You agree that you will use Gracenote Data, the Gracenote Software, and Gracenote Servers for your own personal non-commercial use only. You agree not to assign, copy, transfer or transmit the Gracenote Software or any Gracenote Data to any third party. YOU AGREE NOT TO USE OR EXPLOIT GRACENOTE DATA, THE GRACENOTE SOFTWARE, OR GRACENOTE SERVERS, EXCEPT AS EXPRESSLY PERMITTED HEREIN.
You agree that your non-exclusive license to use the Gracenote Data, the Gracenote Software, and Gracenote Servers will terminate if you violate these restrictions. If your license terminates, you agree to cease any and all use of the Gracenote Data, the Gracenote Software, and Gracenote Servers. Gracenote reserves all rights in Gracenote Data, the Gracenote Software, and the Gracenote Servers, including all ownership rights. Under no circumstances will Gracenote become liable for any payment to you for any information that you provide. You agree that Gracenote, Inc. may enforce its rights under this Agreement against you directly in its own name.
The Gracenote service may use a unique identifier to track queries for statistical purposes. The purpose of a randomly assigned numeric identifier is to allow the Gracenote service to count queries without knowing anything about who you are. For more information, see the web page for the Gracenote Privacy Policy for the Gracenote service.
The Gracenote Software and each item of Gracenote Data are licensed to you "AS IS." Gracenote makes no representations or warranties, express or implied, regarding the accuracy of any Gracenote Data from in the Gracenote Servers. Gracenote reserves the right to delete data from the Gracenote Servers or to change data categories for any cause that Gracenote deems sufficient. No warranty is made that the Gracenote Software or Gracenote Servers are error-free or that functioning of Gracenote Software or Gracenote Servers will be uninterrupted. Gracenote is not obligated to provide you with new enhanced or additional data types or categories that Gracenote may provide in the future and is free to discontinue its services at any time. GRACENOTE DISCLAIMS ALL WARRANTIES EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE, AND NON-INFRINGEMENT. GRACENOTE DOES NOT WARRANT THE RESULTS THAT WILL BE OBTAINED BY YOUR USE OF THE GRACENOTE SOFTWARE OR ANY GRACENOTE SERVER. IN NO CASE WILL GRACENOTE BE LIABLE FOR ANY CONSEQUENTIAL OR INCIDENTAL DAMAGES OR FOR ANY LOST PROFITS OR LOST REVENUES.
© 2011. Gracenote, Inc. All Rights Reserved

Friday, 27 May 2011

$100 Free Google Adwords Credit - from Hong Kong to Australia

Mail from Hong Kong
Today I received a letter from Google. The postmark and return address were both labeled "Hong Kong". Naturally I was more than a little curious as to what Google might be sending me from Hong Kong. As it turns out, the letter wasn't anything to do with Hong Kong at all.

The envelope contained a $100 gift card from Google Adwords, and a letter signed by Lucinda Barlow, Head of Marketing for Google Australia. Not Hong Kong. Either Google Australia uses Hong Kong for some of their mailouts, or they're sending out a global campaign and attaching local signatures depending on the destination. Either way, it's pretty crazy that mail sent to Australia comes from Hong Kong.

The full letter transcript is below:
Come back to AdWords and get $100 in free advertising

Hello from Google!

We understand how important it is for a business to stand out online - and that's one of the main reasons small businesses use Google AdWords everyday. Over the past year, we've made a lot of changes to make AdWords easier to use, and to help ensure your online ad campaigns deliver the results you expect. We hope you'll try AdWords again and are giving you $100 to get started.

There are a lot of things you can do to make your campaign more successful - refine your keywords, change your bid, or maybe try a new headline. We'd like to recommend the AdWords Online Classroom ( It's a free resource that offers a series of video tutorials covering quick tips designed to help you get the most out of AdWords.

The first step is redeeming your $100 and reactivating your campaign. Then, it's just a matter of time, and a little bit of effort, before you start attracting new customers to your business.


Lucinda Barlow
Head of Marketing, Google Australia

Thursday, 14 April 2011

Reset buttons - useful or not?

I've seen quite a few blogs posts lately complaining about the HTML Reset button. You know, the one that often sits beside the "Submit" button. I think everyone must have accidentally hit Reset at least once. So what's the use of it? Personally I have never seen a web form where a Reset button is necessary. And I have accidentally hit Reset many times - especially when it's placed in the position you normally find the Submit button.

This afternoon I wrote up a quick Google Chrome extension to hide all Reset buttons. Are you sick of accidentally clicking the wrong button? Try out the extension and let me know what you think.

Thursday, 7 April 2011

Google AdMob Earnings Checker (Chrome Extension)

Earlier this week I wrote up my first Chrome extension - the AdMob Earnings Checker. It's really easy to build extensions for Chrome - basically just stick a bunch of HTML and Javascript in a zipped folder, upload it and you're done. It took me less than an hour to build this guy (taking reference from a similar extension for AdSense).

The hardest part was actually decoding the AdMob page with the JQuery parser - take a look at the source of your AdMob sites page and you'll see what I mean. Not valid HTML by any means. I had to manually strip some tags in order to get JQuery to accept it as pseudo-html. Once I got over that difficulty though, it was pretty straight forward.

So if you develop Android apps, or operate any kind of mobile website using Google's advertising services, you might like to check out the extension. Any feedback would be appreciated!

Sunday, 20 March 2011

PHP Error: Permission denied in Unknown at line 0 [FIX]

I was setting up a quick PHP test in my home directory today, but when I tried to load my file (http://localhost/~david/test.php) I encountered a strange error:

Warning: Unknown: failed to open stream: Permission denied in Unknown on line 0 Fatal error: Unknown: Failed opening required '/home/david/public_html/test.php' (include_path='.:/usr/share/php5/PEAR:/usr/share/php5') in Unknown on line 0

My code was pretty simple - no "include" or "require" statements anywhere, and perfectly valid syntax. This puzzled me for some time - it appeared as if PHP was trying to "require" my test file in itself. As it turns out, that wasn't too far from the truth.

This error was simply caused by Apache (and therefore PHP) not having read permissions to my PHP file. So it could tell that the file was there (otherwise I would get a 404 error), but when PHP tried to open the file for reading it failed, due to my file permissions (in this case, 007). To fix the problem, I simply had to run:

chmod 777 /home/david/test.php

After this my PHP code ran perfectly. It's worth knowing that this kind of error can occur - it might save a lot of Googling like I had to do!

Note: Normally I wouldn't change the permissions on a PHP file to 777 (everyone has full access, including write). However, in this case it was just a simple test page running on localhost, so I wasn't too worried about security.

Wednesday, 9 March 2011

[FIX] qt-facetrainer does not generate model for user (pam-face-authentication on openSuSE)

I was setting up the pam-face-authentication module using opencv on openSuSE today (following this guide). The installation process went well, using the one-click-install package. However, after running qt-facetrainer and adding the correct entries to /etc/pam.d/sudo I encountered the following error:

david@laptop:~> sudo -s
> Camera 0
mmap: Invalid argument
munmap: Invalid argument
munmap: Invalid argument
munmap: Invalid argument
munmap: Invalid argument
Unable to stop the stream.: Bad file descriptor
munmap: Invalid argument
munmap: Invalid argument
munmap: Invalid argument
munmap: Invalid argument
 Face Verification Pluggable Authentication Module Started
Biometrics Model not Generated for the User.
Giving Up Face Authentication. Try Again=(.
root's password:
root's password:
sudo: pam_authenticate: Authentication token manipulation error
The fix turned out to be simple. Instead of running qt-facetrainer as myself, I had to run it as root (kdesu qt-facetrainer). This generated a face model for the root user, which allows me to authenticate myself as root using sudo. I still encounter the munmap errors, but I am now able to authenticate myself for su and sudo using face recognition!