How To Get Netflix (and more) In South Africa

My friend @rgcrichton recently told me about a pretty cool service called UnoDNS™. This service allows you to access sites like Netflix (full channel list) by using DNS hacks to trick sites into thinking you're based in the relevant county (more details here).

To set up the service, simply sign up here (you get a week of service for free), then set up your computer using the appropriate tutorial here (it doesn't really matter which DNS servers you choose). If you're a bit more tech savvy, I recommend configuring the DHCP server on your LAN to hand out your chosen DNS servers along with the IP addresses. The banner at the top of the quickstart page will tell you if your setup is correct and what to do if it isn't.

Once you're set up with UnoDNS™, go to Netflix, sign up (you get a month free) and start streaming :).

I have a 4mbps ADSL line and I've only seen the video buffer once in (many) hours of watching. I think this was due to a recent Netflix outage though.

Enjoy!

Cape Town Vinyl

Since a couple of people have asked me questions related to vinyl in Cape Town now, I thought I'd write up the things that I think Cape Town collectors should know.

Hi-fi Setup

If money is no object, then The Listening Room in Cape Quarter is definitely your best option. If, however, you're working on a budget, then my recommendation would be to keep your eye on Gumtree for people selling vintage audiophile equipment. That's how I picked up my Technics SL-1300. Just read some reviews before you buy your turntable.

You may need to refurbish your newly acquired turntable (like I did) before it's able to produce good sound. I have the phone number for two people who apparently do this well, although I haven't used them. I got one of these numbers from someone at Radio Discotheque, so I can recommend taking your turntable there if it's totally busted. After taking apart my turntable and doing some simple continuity tests with a good friend of mine who is an electrical engineer, we determined that it was simply the cartridge that needed to be replaced.

The Listening Room stocks great audiophile carts and also offer an installation and alignment service, so I decided to take my turntable there. Once the cart was installed, we realized that there was something else wrong. Anyway, after leaving my turntable with Rodney from The Listening Room overnight, he managed to figure out that there was a continuity issue in the headstock (the one place I didn't look). Luckily I had a spare one, so he swapped it out for me and now it works perfectly!

If Gumtree doesn't work out, you can always check second hand shops, although it's much more labour intensive. The one shop that I have seen that sells already refurbished vintage hardware is Revolution Records. They have some really cool turntables, amps and speakers right there in the shop (not to mention a massive record collection).

Of course, any turntable is going to need it's cartridge replaced at some point. Radio Discotheque offer some decent cost effective options, but if you're looking for an audiophile cart, The Listening Room is where you want to look.

I was fortunate enough to receive a hand-me-down amplifier with a phono input (Sansui RZ-2300). It has an awesome 90's look and feel and sounds fantastic. I've seen some great amps for sale on Gumtree and at Revolution Records. Remember, if you're going to buy an amp without a phono input, you'll need to get yourself a phono stage to convert the signal from your turntable to one that your amplifier can accept. The Listening Room sells phono stages, but they're not cheap. I recommend getting a vintage audiophile amp from Gumtree or at least buying your phono stage from Gumtree.

I've yet to purchase a decent set of speakers, but they aren't too tricky to find. Since I'm into vintage equipment at the moment I'll probably buy from Gumtree or Revolution Records, but The Listening Room has some great entry level sets. Rodney has played me some albums through the speakers he's got set up in the shop and I'm very close to being convinced to fork out for some new speakers :).

New Records

Brick and mortar shops that sell new vinyl in Cape Town are few and far between. I've been told that astoreisgood has a few records for sale, but I've never been there. Mabu Vinyl has a small collection of new records mounted on the wall behind the counter. The Listening Room has a modest collection in the shop, but they have a great mail order catalogue (September 2012 Edition) from which you can order all sorts of cool stuff and collect from the shop. What's really awesome though is the vinyl catalogue (September 2012 Edition) which has 100s of albums to choose from.

Unfortunately you're probably still not going to be able to find what you're looking for in a shop. I've heard that people have successfully ordered from Insound, although I haven't tried them. Apparently their shipping to South Africa is expensive. I've used WOW HD who offer free delivery (yes, even to South Africa) and my order arrived in great condition. It did take almost a month to arrive but the email support I received was fantastic.

Previously Owned Records

As mentioned above, Revolution Records has a great collection of second hand vinyl. Mabu also has an awesome selection. Those are pretty much the only two shops that I'm aware of that'll give you a decent crate digging experience. UPDATE: I haven't checked them out yet, but I've recently heard about Roots Vinyl, Recreation Records and Roastin' Records.

I've heard that some markets, particularly Milnerton market have vinyl on sale. The best way that I've found to find second hand vinyl at a good price is to find people selling their (or their relatives') collections on Gumtree. I've been into a few houses and had some fun crate digging and have even found some cool albums. I've also bought a whole collection and it actually had some really cool stuff in it.

Online Resources

I've used These three sites before to get some info I was looking for. This is a pretty cool site for info on general audio topics. My favourite vinyl-related site has got to be Vinyle Engine - I even downloaded the manuals for my turntable there. Lastly, Reddit's vinyl subreddit is a fantastic source of information on anything vinyl.

Disclaimer: I am extremely new to collecting vinyl, so some of this information might be erroneous. If you'd like to correct me, or just give me some more info to share on this page, please leave a comment or tweet at me or something.

I hope some of this is useful to one or two of you :).

Creating Short URLs

I was looking for a URL shortener which I could host, which allowed for private access (for creating new short URLs) and which kept decent statistics about each URL. YOURLS does the trick. Just download the PHP scripts, create a MySQL database, edit config.php and visit the admin page and you're done.

Using The Cloud To Access Location Restricted Services

Many cool services such as Pandora, Spotify, BBC iPlayer and Netflix are restricted to users in the US or UK.

There are a number of ways to get around this problem, the most reliable of which is probably to pay for a US/UK based proxy or VPN server. There is at least one free (for a while) way to access such services, which I will describe here.

The method I'm going to describe involves setting up a machine in the cloud, installing a proxy server on the machine and setting up your local machine to use the proxy.

AWS Instance Setup

Sign up for an Amazon Web Services account (you will need a valid credit card and telephone number). Read about the conditions of the free usage tier.

Once you've signed up and verified your identity (telephone number), log into the AWS console. At this point you'll have to choose whether you want a US or an EU based instance. Select your desired location from the Region drop down menu in the top left corner.

Select the Instances page from the menu on the left and hit the Launch Instance button. I'll describe how to set up an Ubuntu instance, since this is what I did. Select the Community AMIs tab. You'll need to search for the appropriate AMI as defined on this page (i.e. ami-379ea943 for EU or ami-1aad5273 for US-East). Make sure whatever AMI you choose is eligible for the free usage tier. Click the Select button next to the AMI. Make sure that the Instance Type is Micro and click Continue. Click Continue again, then give your instance a name and Continue.

Create a new Key Pair and make sure to download it (let's call it keypair.pem), then Create a new Security Group and make sure that you specify a port (lets call it the httpport) for the proxy server to listen on. You could use a port commonly used for something else to avoid any suspicion if someone scans your instance. They aren't likely to suspect that you have a proxy running on port 8080 for example. You're also going to need to open port 22 for ssh access. To open these ports, simply enter the port number in the Port range text box and click Add Rule.

Finally, review your configuration and click Launch. After a few seconds your instance will be up and running. Select your instance and take note of the public_dns in the Description pane below. You'll use this URL to connect to your instance.

Squid Configuration

Connect to your instance from the command line as follows. ssh -i /path/to/keypair.pem ubuntu@publicdns You may need to set the permissions on your key file (i.e. chmod 600 key_pair.pem).

By default, the normal Ubuntu software repositories aren't enabled, so you'll have to edit /etc/apt/sources.list and uncomment all the repositories and then do a sudo apt-get update.

We'll use Squid as our proxy server. Install it as follows. sudo apt-get install squid As mentioned here, well need to configure the port on which squid listens. We do all the squid configuration in the config file located at /etc/squid/squid.conf.

Change the listening port by setting the httpport directive in the config file (the default is 3128) to the httpport security rule you created during your instance configuration.

Squid Access Control

It's unlikely that you want your instance to be a public proxy for all client hosts and destination servers, so you'll want to implement some kind of access control. This can be done in many ways, but basically you can limit access by src IP, destination domain (dstdomain) or by requiring username/password authentication (e.g. by using ncsaauth as described <a href="http://beginlinux.com/servertraining/proxy-server/1049-squid-proxy-authentication">here).

If you're using an application like Boxee or XBMC, which don't support proxy authentication, then you'll probably want to limit access by src or dstdomain.

As an example, if you want all of your friends to be able to use your proxy, but only for, say, Spotify and Pandora, then you can add the following at the bottom of the ACL section of the config file. acl RADIO dstdomain .spotify.com .pandora.com and then add httpaccess allow RADIO to the top of the httpaccess section of the config file.

By default, Squid forwards our client IPs to the destination hosts, so we'll need to disable this to mask our location. We do this (as described here) by setting the forwarded_for directive to off in the config file.

Lastly, remember to restart Squid as follows to ensure your new configuration becomes active. sudo /etc/init.d/squid restart You should now have a proxy server, based in the US or EU, listening on a port of your choosing with some measure of access control implemented.

Client Configuration

All that is left to do is to tell your client application (I'll use Firefox as an example) to connect through the proxy server.

By default, Firefox has the ability to connect through a proxy, but the control isn't very fine grained. You can either connect to all sites through the proxy, or not use the proxy at all.

In order to have more control over which sites actually connect via the proxy server, I recommend installing the FoxyProxy Standard addon for Firefox.

Once you've installed the addon and restarted Firefox, go to Tools >> FoxyProxy Standard >> Options and select Add New Proxy. Give the proxy server a name and enter the publicdns and httpport. Then go to the URL Patterns tab and Add New Pattern. Give it a name (e.g. Spotify) and specify the pattern (e.g. spotify.com).

Make sure that Use proxies based on their pre-defined patterns and priorities is chosen for the Select mode drop down on the main FoxyProxy options pane.

Now you should be able to sign up on Pandora or request an invite on Spotify (assuming you have configured Squid to allow access and have specified the proxy and URL patterns in FoxyProxy).

Service Notes

If you're connecting through a US based proxy, you can sign up for Pandora and listen as long as you always connect via the proxy. With Spotify (which has recently been launched in the US), you can't directly sign up for an account. You can, however, find some invitation codes here and then use them here to sign up. Once you sign up for Spotify and download the client, you can listen without connecting through the proxy!

Netflix seems to employ some kind of proxy detection software, so I haven't been able to get that working yet. I haven't tried BBC iPlayer.

Caveats

While this method is free for a while (a year, or until you use up your free bandwidth), it's definitely not a permanent solution.

Further Work

There are a few things I need to try to get Netflix to work, namely, I need to see what headers Squid is sending and disable the ones which could potentially reveal the fact that it's a proxy. Also, I still need to try out iPlayer.

Disabling ⌘Q Application Quit

On a number of occasions I've accidentally hit ⌘Q instead of ⌘⇥ and closed the current application.

Do disable this "feature" we go to System Preferences >> Keyboard, choose Application Shortcuts in the left pane. Now, double click on the current keyboard shortcut for Show Help Menu and press ⌘Q to remap it.

Now, whenever you press ⌘Q by accident you'll just open the help menu instead of closing the application.

Also, this is quite a useful reference for the special Mac keyboard symbols.