Posts Tagged ‘How to guide’

Fixing corrupt Plex thumbnails

March 14, 2012 6 comments

Plex is nothing short of fantastic!
It really brings TV and Movie collections to life and makes browsing and watching media so much better than any other system I have ever used.

I did however find a problem the other day, where the thumbnails for some movies were corrupt. For example, if you imagine the image is downloaded from the top down, only half the image is showing and the rest is just grey.

At the time of writing this article, there are no other fixes published online, other than deleting your entire Plex metadata! So if you  have this problem and want a reasonably quick fix, read on…..

This fix finds the location of the Plex metadata for the movie with the corrupt thumbnail, then simply removes it and forces Plex to download a new copy of the metadata. It is fairly straightforward, but a little tricky, so please read each step carefully and use copy and past on the provided commands to avoid typos.

This fix will also work for other content such as TV shows etc with a few very obvious tweeks.

1. Open up a terminal and run this command to change to the Plex DB directory (Notice the backslashes escaping the spaces in the directory names):

cd ~/Library/Application\ Support/Plex\ Media\ Server/Plug-in\ Support/Databases

2. Connect to the Plex DB with sqlite by running this command in the terminal window:

sqlite3 com.plexapp.plugins.library.db

You will see something like this:
iMac:Databases nik$ sqlite3 com.plexapp.plugins.library.db
SQLite version 3.6.12Enter ".help" for instructions
Enter SQL statements terminated with a ";"

3. Type this SQL query into the terminal window to find the GUID of the movie, this will help us find the movie metadata location:

Obviously replace ‘your movie name here’ with the movie you want to fix.

select title, guid from metadata_items where title like '%your movie name here%';

For example:

sqlite> select title, guid from metadata_items where title like '%school of rock%';

You should see the movie name and the guid, separated by a pipe (|)

My result:

The School of Rock|

4. Find the location (folder and bundle name) of the movie metadata. Close down the previous terminal window and run this command in the new window:

Obviously replacing everything in between the quotes with the guid you go when you ran your SQL query.

echo -n "" | shasum

This command will return a big long string, like this:


Which actually contains a folder name (The first character) and the name of the bundle file (The remaining characters).

Your string will be different, but the format is the same as the following:

(d) (616f6685a11c774befb391dc13b7c0558908acf)

Foldername: d
Bundle Name: 616f6685a11c774befb391dc13b7c0558908acf

5. Find the directory holding the Plex movie metadata:

In finder browse to the following directory:

~/Library/Application Support/Plex Media Server/Metadata/Movies

You will notice lots of directories named 0,1,2,3a,b,c etc.

Take the directory name (1st letter of the sha checksum) from step 4 and open that directory.

In my case this was the directory named “d”. Then find the bundle name in the folder, in my case this was “616f6685a11c774befb391dc13b7c0558908acf.bundle”

6. Move the bundle file found in step 5 to a temporary location, your desktop for example

7. Now we need to tell Plex to overwrite the cached metadata:

a) Open Plex Media Manager (Click the Plex icon at the top of the screen, then click Media Manager)

b) Find the Movie with the partially downloaded artwork, right click and choose ‘Fix Incorrect Match’

c) All you need to do in this step is select a different movie, it doesn’t matter what it is , as long as it is different. Also, make sure you remember what the correct match was!

Plex will now download the metadata for the dummy match we have just given it. Watch in Plex Media Manager for this to update.

8. Tell Plex to download the correct metadata for the Movie:

a) Find the Movie with the partially downloaded artwork in Media Manager,  right click and choose ‘Fix Incorrect Match’ again

c) Now select the correct movie, Plex will now re-download the correct metadata, including a new copy of the artwork! Replacing your corrupt thumbnail 🙂

A huge thanks to SolarPlex on the Plex forums for this article, which helped me connect to the Plex DB and find the correct metadata folder for the movie.

Here’s a link to the SolarPlex article:


How to find your WordPress API key

April 13, 2011 11 comments

I have just spent a long time trying to find my wordpress API key.

Your API key is used to link web applications to your WordPress blog, such as SiteStats or YouTube.

Almost every web tutorial says it’s on your profile page once you have logged into wordpress, however I think our friends at may have moved it recently and not yet updated their documentation.

So if you are looking for your wordpress API key (Assuming you already have an account), simply go to, log in and you will find your API key on the site.

Hopefully this will save you wasting your time digging through help files and web tutorials 🙂

Share your Aperture Images with Everyone, Everywhere!

March 27, 2011 8 comments

If you want to share your Aperture images with anyone, using any device, anywhere in the world and never worry about losing your images, read on!

Like many people I have more than one type of device connected to my home network. For me it’s a Mac, a couple of Windows laptops, a Windows media server, an Xbox and a PS3.

This tutorial will guide you through the steps needed to share your Aperture albums on your home network as well as with your friends and family over the internet quickly and easily.

Assuming you already have everything in your home connected to your home network, let’s get started….

The Solution

First the images are exported from Aperture onto a Media Server. The Media Server is then used to share the images to everything else.

I personally prefer to have a separate Media Server, however this solution could also be implemented without a separate media server, by exporting images and installing all software directly onto the Mac.

Take a look at the image below which shows the overall solution.Aperture Export Sync Solution

Exporting the Images from Aperture

Images are exported from Aperture using a custom Aperture Export utility, this can be run everytime you create a new project to ensure that all your shared images are up to date. This is described in a later section of this article.

Sharing the Images with the PS3 and Xbox

Both the PS3 and the Xbox support an open protocol named DLNA ( This has become the standard way to share and play media around the home. If you look for it you will see the DLNA logo on more devices than you think, including stereo systems, TVs, media software and NAS devices.

For more info including a full list of products certified to work with DLNA click the DLNA link above. DLNA also supports the streaming of movies and music to all compatible devices around your home, so after sharing your images around your network, why not share your other media too!

To share the images with a PS3/Xbox or any other DLNA compatible device I recommend Twonky Media Server ( its $19.95 and worth every penny/cent whatever….

You simply install the software on your media server (Windows, Mac or Linux) and configure it to share out your files. The configuration is so simple it doesn’t warrant a step by step tutorial.

Twonky is excellent and I strongly recommend it, however feel free to check out the alternatives below.

Getting the Images onto the Cloud

“Cloud” is used generally to refer to a service someone else manages which you consume over a network, you don’t need to know how the company does what they do, simply how to use their service.

For this tutorial, our cloud is an internet based backup service that we copy all the Aperture images to.

This means two very important things:

  • All the images are backed up to the internet service. So if anything ever happened like a cooked hard drive, or fire etc all the treasured images are safe
  • The images can be accessed over the Internet from anywhere in the world

To get the images into the cloud you simply install a client and configure which folders you want to sync. It can take a while though depending on how many files you have and the speed of your internet connection! Once sync’d though it will stay in sync, so whenever you place any new files onto the media server, they will automatically be copied to the cloud.

I strongly recommend SafeSync from Trend Micro. They have an offer on at the moment which allows unlimited storage for a really low price. The client software and website are not the prettiest or easiest to use but the value for money in incredible compared to other similar providers.

SafeSync is available here: however you may want to check out these other providers depending on how many files you have:

Aperture Export Utility

I created this export utility using AppleScript which you can download using the link below.

Rather than publish this as compiled code, I chose to publish the source code for all the budding applescripters:

-- --------------------------------
-- ExportAllProjects_V2.scpt
-- --------------------------------

-- ------------------------------------
-- Nik Ansell (
-- March 2011
-- ------------------------------------

-- ------------------------------------------------
-- Purpose:
-- Exports all images in the Aperture DB in all projects to any folder
-- ------------------------------------------------

-- ---------------------------
-- Pre-Requisites:
-- ---------------------------

-- 1. Ensure that a folder naming policy exists named "Project Name"
-- 2. Ensure you understand what the script is doing before you run it. I will not be held accountable for any issues as a result of running this script!

-- ---------------------------
-- Features:
-- ---------------------------

-- 1. Prompts for the destination folder
-- 1.1 This can be changed by simply uncommenting the section in the script below
-- 2. Promnpt for the folder naming policy, "Project Name" is required for other features to work, please create if does not exist already
-- 2.1 This can be changed by simply uncommenting the section in the script below
-- 3. Exports all images as full size JPEGs
-- 3.1 This can be changed by changing the file naming policy section in the script below
-- 4. Sub folders are created using the image year of the first image in the project (Because "Image Year"in the Dir Naming Policy does not always work)
-- 5. Bypasses Aperture timeout errors
-- 6. Checks if the destination folder exists, if it does exist it skips if the number of images in the folder are the same as the number of images in the project
-- 6.1 Can be set to delate all images in the destination folder before exporting if needed (By choosing "Yes" when prompted
-- 7. Writes all events to a logfile at path: Desktop/Aperture_.txt
-- 8. Logs the total images found, images skipped and images exported
-- 9. Uses the original image name when exporting
-- 10. The export dir can be a network path if mounted before the script starts

-- ---------------------------
-- Known Bugs:
-- ---------------------------

-- 1. Sometimes Aperture does not return all projects, causing some projects to be skipped. This may e related to Known Bug No.2
-- Workaround: Run the script more than once, selecting "No" when prompted: "Delete files from destination folder before exporting?"

-- 2. If more than one project has the same name, all files from all projects of the same name will be placed in the same folder, or the next iteration of the project will be skipped
-- Workaround: Ensure that every project has a unique name. If you find image counts in the summary do not match the destination folders this could be your problem

-- 3. If Aperture is not able to export a file, this breaks feature 6 as the number of images will be less when exported
-- Workaround: Fix the problem and ensure that Aperture can export all images. Try exporting a project manually to test, then work through any issues you find

-- 4. If an image has no date in Aperture it may not be exported
-- Workaround: Find images without a date and choose Metadate->Adjust Date/Time, then restart Aperture

set {year:y, month:m, day:d} to (current date)
global logfilePath
set logfilePath to (path to desktop as string) & "ApertureExport_" & d & m & y & ".txt"
display dialog "Using Logfile:" & logfilePath

-- Get the path to export the files to
tell application "Finder"
set export_dir to (choose folder with prompt "Choose a folder to export into") as alias
end tell

tell application "Aperture"

-- Selecting "Yes" will delete all images in a destination folder, if a destination folder already exists
set question to display dialog "Delete files from destination folder before exporting?" buttons {"Yes", "No"} default button 2
set DeleteFilesBeforeExport to button returned of question

-- Name exported files the same as the name stored in Aperture
-- Change the section below if you'd like a prompt the file naming policy
set file_policy to file naming policy "Version Name"
--set x to name of file naming policies
--choose from list x with prompt "select a file naming policy"
--set file_policy to file naming policy (item 1 of result)

-- Prompt for the folder naming policy to use
-- Change the section below to stop prompt and hard code "Project Name"
--set dir_policy to folder naming policy "Project Name"
set x to name of folder naming policies
choose from list x with prompt "Select a folder naming policy"
set dir_policy to folder naming policy (item 1 of result)

-- Export all images as Full size JPEGs
-- Change the section below to remove the prompt and hard code "Project Name"
set setting_name to "JPEG - Original Size"
--set export_setting to name of export settings
--set end of export_setting to "Master"
--choose from list export_setting with prompt "Choose a file type preset"
--set setting_name to item 1 of result

-- Initialize the log file
my WriteToLog(((current date) as string) & return, "yes")
my WriteToLog("Starting export of all Aperture images using the variables below:" & return, "no")
my WriteToLog(" export_dir: " & export_dir as string, "no")
my WriteToLog(" file_policy: Version Name", "no")
my WriteToLog(" dir_policy: Project Name", "no")
my WriteToLog(" setting_name: " & setting_name as string, "no")
my WriteToLog(" DeleteFilesBeforeExport: " & DeleteFilesBeforeExport as string, "no")
my WriteToLog(return, "no")

-- Set some vars to report the results at the end
set totalimages to 0
set totalimagesskipped to 0
set totalimagesexported to 0
set totalprojects to 0

-- Get all projects and cycle through them
set theplist to name of every project
set totalprojects to count theplist

repeat with p in theplist

set pobj to project p
set skip to "no"

tell pobj
set theimages to every image version as list
end tell

set numImagesinProject to count theimages

my WriteToLog("Found Project: " & p & " - " & numImagesinProject & " images", "no")

set totalimages to totalimages + numImagesinProject

if (numImagesinProject > 0) then

-- Get the year of the 1st image in the project
set sampleimage to item 1 of theimages
set sampleimagename to name of sampleimage
set sampleimageyear to value of EXIF tag "CaptureYear" of sampleimage as string
on error number -1700
set sampleimageyear to "0000"
end try
set sampleimageyear to rich text 1 thru 4 of sampleimageyear
set p to p as string
set sampleimageyear to sampleimageyear as string

-- Create the "year" folder if it doesn't exist
tell application "Finder"
if not (exists folder sampleimageyear of export_dir) then
my WriteToLog((" Creating folder: " & export_dir & sampleimageyear), "no")
make new folder at export_dir with properties {name:sampleimageyear}

end if -- if year sub folder does not exist

end tell -- tell application finder

-- Define the export dir in which to place the project folder
-- This is done to avoid two different export locations if a project spans over more than one year (E.G xmas and new year)
set export_subdir to (export_dir as string) & sampleimageyear as alias

-- Set the variable to print to log and check total exported files
set chk_dir to export_subdir & p as string

-- If folder exists, check number of images before exporting
tell application "Finder"
if (exists folder chk_dir) then
my WriteToLog(" Destination folder exists (" & chk_dir & "), counting images", "no")
-- Count images in folder
set chk_dir to chk_dir as alias
set numFilesinFolder to count of (files in folder chk_dir)
set strnumFilesinFolder to numFilesinFolder as string

if (numFilesinFolder ≥ numImagesinProject) then
set totalimagesskipped to totalimagesskipped + numImagesinProject
my WriteToLog(" Found " & strnumFilesinFolder & " files in destination folder skipping", "no")
set skip to "yes"
if DeleteFilesBeforeExport is "Yes" then
my WriteToLog(" Found " & strnumFilesinFolder & " Deleting files in folder before export to avoid duplicates", "no")
delete (every item of folder export_subdir)
end if -- if set to delete files in destination folder before exporting

end if -- if destination folder has more files than the project

end if -- if chk_dir exists

end tell -- tell application finder

if (skip is not equal to "yes") then
my WriteToLog((" Exporting: " & p), "no")
my WriteToLog(" To Folder: " & chk_dir, "no")
set totalimagesexported to totalimagesexported + numImagesinProject

if setting_name is "Master" then
with timeout of 3600 seconds
--export theimages naming files with file_policy naming folders with dir_policy to export_subdir metadata sidecar
export theimages naming files with file_policy naming folders with dir_policy to export_subdir metadata sidecar
--new to 2.0 is the ability to embed the versions' IPTC data into the master itself. change "sidecar" to "embedded" to do so.
on error number -1712 -- Timeout waiting for a confirmation message in Aperture
my WriteToLog(" Error: Timeout (Error -1712), waiting for a confirmation in Aperture, probably some images couldn't be exported", "no")
end try
end timeout
with timeout of 3600 seconds
export theimages naming folders with dir_policy using export setting setting_name to export_subdir naming files with file_policy
on error number -1712 -- Timeout waiting for a confirmation message in Aperture
my WriteToLog(" Error: Timeout (Error -1712), waiting for a confirmation in Aperture, probably some images couldn't be exported", "no")
end try
end timeout
end if -- if setting_name is "Master"

-- Check the right number of images were exported
tell application "Finder"
if (exists folder chk_dir) then
set chk_dir to chk_dir as alias
tell application "Finder"
set numFilesinFolder to count of (files in folder chk_dir)
end tell -- tell application finder
set strnumFilesinFolder to numFilesinFolder as string
my WriteToLog(" " & strnumFilesinFolder & " files found in destination folder, assuming all files exported successfully", "no")
if (numFilesinFolder < numImagesinProject) then
set diff to numImagesinProject - numFilesinFolder
set totalimagesskipped to totalimagesskipped + diff
set totalimagesexported to totalimagesexported - diff
my WriteToLog(" Error:Less files found in destination folder, try exporting manually in Aperture to troubleshoot", "no")
end if -- If less files in export folder than in project
-- Something went wrong with the export
my WriteToLog(" Error: Could not find destination folder, something went wrong with the export, check for previous errors", "no")
end if -- if chk_dir exists
end tell -- tell application Finder

end if -- if skip not equal to yes

end if -- if more than 0 files in project

end repeat -- repeat with every project

my WriteToLog(return & "Finished", "no")
my WriteToLog(((current date) as string) & return, "no")
my WriteToLog("Total Projects Found:" & totalprojects & return & "Total Images Found:" & totalimages & return & "Total Images Skipped:" & totalimagesskipped & return & "Total Images Exported:" & totalimagesexported, "no")
--display dialog "Total Projects Found:" & totalprojects & return & "Total Images Found:" & totalimages & return & "Total Images Skipped:" & totalimagesskipped & return & "Total Images Exported:" & totalimagesexported

end tell -- tell application Aperture

on WriteToLog(text2write, init)

set AppleScript's text item delimiters to ""

set fileRef to open for access logfilePath with write permission
if (init is "yes") then
-- Clear file contents
set eof of fileRef to 0
write text2write & return to fileRef
write text2write & return to fileRef starting at eof
end if -- if init value set to "yes"
end try
close access fileRef
end try
end WriteToLog

Feel free to use or modify the script in any way you choose.

However run the script at your own risk. Please do not run it unless you are comfortable with what it does! J

A few things you may want to know about this script are in the following sections.

What it does

1.     Extracts all Aperture images in your library to a folder of your choice. This can be a local or remote folder, as long as the folder is visible in the Finder application

2.     The following options are used when exporting:

Export Folder Format: <ExportFolder>/Year/ProjectName/

Export Image Format: JPEG – Original Size

3.     Additional Features:

a) Aperture timeout errors are bypassed

b) Skips the exporting of a project if the destination folder already exists, this allows the script to be re-run at any time and it will only export new projects. If you wish to override this feature select “Yes” when asked by the script.

c) Writes progress to a log file <Desktop>/Aperture_<date>.txt

How to use the export script

1.     Copy and paste the source code above into the Applescript editor and click “Compile”

2.     Read through the script and make sure you are happy with what it is doing

3.     Save the scpt file using the “Save As” in Applescript editor to any path you will remember

4.     Run the script by clicking “Run” in the Applescript editor

5.     The script will diaplay a message box with the path to the log file. Open this log file in the Apple logfile viewer as this will automatically update as the script logs it’s actions

6.     You will then be prompted for a path to export your images, make sure this path points to a location on your media server if you are using a media server to do the rest of the sharing. If not choose a location on you Mac

7.     Once the path is selected you wil be prompted to chose if you wish to delete files from the destination folder before exporting. Choose “No” if you want to only export new images

8.     You are now prompted with to choose a folder naming policy, select “Project Name”, if this doesn’t exist create one in Aperture by selecting any image, clicking “Export” then next to “Sub Folder Format” click “Edit” then click “+” to create a new folder naming policy

9.     The script will now export all the images to the chosen location, you can track the progress by opening the log file with any log file viewer

Known Bugs
  • If more than one project has the same name, all files from all projects of the same name will be placed in the same folder, or the next iteration of the project will be skipped
  • – Workaround: Ensure that every project has a unique name. If you find image counts in the log file summary do not match the destination folders this could be your problem
  • For many reasons Aperture may not be able to export an image. If you see errors in the log file, try to export the project manually then work through any issues as they arise
  • If an image has no date in Aperture it may not be exported
  • – Workaround: Find images without a date and choose Metadate->Adjust Date/Time, add the correct data then restart Aperture and kick off the script again

Please let me know how you get on by leaving a comment below.

Thanks for reading.

Watching UK TV on your PS3 from outside the UK

January 25, 2011 21 comments

After living outside the UK for a while now, I have come to appreciate that UK TV is actually quite good and I miss it.

While some UK TV channels are available over the internet, if you are outside the UK, access to the sites is blocked.

This tutorial shows how to gain access to the UK TV sites from outside the UK using a PC/Mac. It also shows how to get the UK TV sites to work on a PS3.

Tutorial Steps
  1. Configuring the network
  2. Setting up a UK VPN
  3. Setting up the proxy server
  4. Configuring the PS3
  • A PS3 (UK Version with the iPlayer, 4OD and ITV Player icons installed)
  • A PC/Mac
  • An Internet Connection
  • Some basic networking and PC/Mac skills


1. Configuring the Network

A static LAN IP Address is required on the PC/Mac, because if a DHCP server ever assigns a different IP Address to the PC/Mac you would need to change the PS3 configuration.
If you are certain the PC/Mac has a static IP Address already, get the IP Address and Subnet Mast and move onto the next section, if not complete the steps below.

  1. Configure a static LAN IP Address on your PC/Mac
  2. Ensure the Address you assign is excluded from the range of IP Addresses used by your DHCP server (Normally running on your router/modem
  3. Make a note of your IP Address and Subnet Mask


2. Setting up a UK VPN

First a quick lesson on how networks and more specifically the internet works.

Everything (Computer, Webserver, Games Console, Internet Enabled Toaster etc) has a unique IP Address on the internet just like your home network.

A central authority allocates all IP Addresses and registers the location of the IP Addresses as they are allocated.

UK TV websites determine your location by looking at your IP Address when connecting to it, if the IP Address connecting to the TV website is not registered in the UK, access is blocked.

A UK VPN service tricks the UK TV website into thinking you are in the UK by making the connection to the UK TV website on your behalf, then sending the TV channel stream back to your PC/Mac.

  1. Subscribe to a UK VPN service. This will cost a small amount each month however it is 100% worth paying for as the free ones can be very unreliable. A great VPN service is however you can compare a number of UK VPN services using a site like
  2. Configure the VPN. Each VPN service supplies its own configuration, so simply follow the instructions provided by the website. This tutorial assumes was chosen and the Overplay VPN client was installed, however if you use another provider simply follow any VPN configuration steps provided by VPN service
  3. Open the Overplay VPN client (Shown Below), Select one of the UK sites from the drop down list and click “Connect”, entering the correct username and password when prompted
  4. OK so step 1 is complete. You now have access to UK TV websites on your PC/Mac. To test simply open your web browser and browse to the site of your choice E.G BBC iPlayer/ITV Player


3. Setting up the Proxy Server

A VPN cannot be configured on a PS3, so instead we need to connect to the internet via the PC/Mac with the UK VPN connection.

This is done by installing proxy server software on your PC/Mac, the proxy software simply connects to internet services on your behalf and sends you back all data it receives.

You will need to determine the network address from the IP Address from the previous step. Assuming your subnet mask is (/24) if your IP A

ddress is 192.168.0.x, your network address is If you IP Address is 192.168.1.x, your network address is

  1. Download and install proxy server software onto your PC/Mac. The best one available for a Mac is “Squidman” ( which is simply a management utility for the great open source proxy “squid”. A good one for a PC is “ccproxy” (
  2. Configure the Proxy.This tutorial will assume the use of Squidman on a Mac, however the configuration for ccproxy is almost the same. There are two configurations required, clients and port, leave everything else unless you really know what you are doing.
  3. Clients: (Shown Below) Open Squidman, install squid when prompted then open preferences. Click Clients, then enter the network address E.G.
  4. Ports: (Shown Below) In the Squidman preferences panel click general and make a note of the port number. The default is 3128
  5. Start Squid. To allow the proxy to start receiving connections from devices on your network, click “Start Squid”
  6. Ok so step 2 is complete. You can now configure your PS3 to connect to the internet via your PC/Mac

4.  Configuring the PS3

The PS3 now needs to be told to connect to the internet via the PC/Mac with the VPN connection and proxy software. This will trick the Uk TV sites into thinking the PS3 is connecting from the UK.

If you are not familiar with the PS3 configuration, check out the manual first here:
  1. Open Settings->Network Settings ->Internet Connection Settings
  2. Click Yes when promoted to disconnect from the internet temporarily, then simply browse to the Proxy Server screen (Shown Below), click “Use” then enter the IP Address and port of your PC/Mac E.G:
    • Proxy Server:
    • Port 3128
  3. Save all configuration and exit the Settings menu system
  4. So now the PS3 should be able to stream from the UK TV sites. To test simply go to the iPlayer icon at the home screen and try stream your favourite TV show!

Important Notes
  • If the VPN is disconnected for whatever reason the proxy must be stopped, then restarted after the VPN connection is re-established.
  • You are required to purchase a UK TV license if you watch UK BBC channels

Revamp your guitar electronics!

December 18, 2010 Leave a comment

Ever wanted to upgrade your guitar electronics?

This guide shows how to install a pre-wired assembly from Rothstein guitars into a Fender Jazzmaster guitar.

There are also a few hints and tips to make this daunting task a bit easier.

Click here to download:

Fender Jazzmaster Electronics Replacement (lowres).pdf (7455 KB)

Free TOGAF 9 Exam Study Guide

December 1, 2010 6 comments
I recently passed the Level 1 + 2 TOGAF 9 exams and became a Certified TOGAF 9 Architect.
While I still have the exams and study running around my head I thought I would create a study guide for budding TOGAF architects to use.

This is a short document that highlights areas to study in order to pass the exams, it has some example questions but mainly focuses on study areas and content that should be fully understood before taking the exam. It also explains the difference between the exams and how best to study for and pass each.

Good luck for anyone taking the exams and if you have anything to say, please feel free to comment using the site, thanks.
Click here to download:

TOGAF 9 Exam Study Guide.pdf (336 KB)

Newsgroups – The Basics

May 9, 2010 Leave a comment
Lots of people have asked me about newsgroups recently, “What are they?”, “What do people use them for?”, “How do they work”, “How do I set it all up?”.
So if you would like to know the answers to any of these questions, read on……
If however you just want to download files from newsgroups and you don’t really care how it works, jump to the “Quick setup” section at the bottom of this article.
Sorry this is Windows and Mac only, I may put together a Linux guide at some point soon.


What are they?
Usenet newsgroups are an age old way for people to exchange information related to a newsgroup topic.
Just like a forum, people post questions and other people answer them, or people post information or files they wish to share on particular topics, allowing other newsgroup users to download the information or files.
You can find a newsgroup for any topic, yes I do mean ANY topic.
The topic of a newsgroup is normally embedded in the name following a dotted format, some random examples are below to give you a rough idea:
  • alt.2600


What do people use them for?
Some newsgroups are totally text based and used as discussion boaards.
However as the available internet bandwidth increases, so does the size of content posted.
Over time the size of files posted on newsgroups has grown, so nowadays it’s common to see newsgroups used to share documents, movie files, games, software and music.


How do they work?

Above: A News Reader, connecting to a News Server over the Internet
Below: A News Readers, connecting to a News Server which is replicating with multiple News Providers

Newsgroups consist of news servers and news readers.News readers connect to news servers over the internet to interact with the news servers.
There is a limit to the size of a post on a newsgroup, so if anything is posted above the size limit it is split into multiple parts, with each part placed onto the news server as an individual post.
To download the entire original post including all associated parts, the news reader software first downloads all the parts then assembles them together to form the complete original post.
The protocol used to transfer information between the news server and news reader is NNTP, for additional security this NNTP traffic is sometimes encrypted using SSL.
Newsgroups have evolved recently, allowing very large files to be downloaded very easily, the process is as follows:
  1. Files are uploaded to a newsgroup post, the post is split into multiple parts at the news server
  2. The multiple parts are indexed into a single NZB file by an NZB indexing site
  3. The NZB file is opened by NZB reader software which downloads all the parts and assembles the part into the original posted files


How do I set it all up?
You will need a news provider and news software (simple news reader or NZB reader software)


Choosing the right news provider
Behind the scenes there are actually numerous news servers all replicating with each other rather one single source. A news provider has simply setup one or many news servers which replicate with other news servers.
The qualities to look for in a news provider are:
  • Retention (How long they keep the replicated copies for before deleting them)
  • Coverage (How many newsgroups they host)
  • Download limits (How much you are allowed to download from the news servers)
  • SSL (If you wish to make it harder for people to see what you are posting/downloading, some news providers allow SSL encryption to be used)
  • Bandwidth (Affects how fast you can post or download information)
There is some good information about news providers here:
However if you just want to use newsgroups as discussion groups you may find that your ISP already offers a very limited free news provider service.


Choosing news software
If you wish to simply use newsgroups as discussion forums (Mainly text based) you just need a news reader.
A good site to find news reader software for any platform is


However if you want to download files from newsgroups you need NZB reader software and an NZB indexing site.
  • Two popular NZB readers are Newsbin Pro ( and Newsleecher (
  • A great All-In-One solution is SABnzbd (, which is a web based tool which downloads, repairs + extracts nzb files. It is available for PC + Mac
For Mac NZB readers check below:


NZB Indexing Sites
Two great free NZB indexing sites are and, however if you would prefer to pay for a better NZB site a great one is


NZB problems
Downloads are often incomplete or broken due to the underlying technology behind newsgroups. Luckily there is an easy way to repair any broken downloads!
When a post is downloaded, as well as the original zip/rar files there are also some .par or .par2 files, these contain the information required to rebuild any damaged or incomplete download.
To repair a damaged or incomplete download, simply open the .par or .par2 files up in Quick Par ( and it will automatically repair the downloaded post!


So that’s the basics of newsgroups, the section below is a very succinct step by step guide to downloading files from newsgroups.


Quick Setup
1. Subscribe to or (Make sure you get a package with SSL if you don’t want people to see what you are downloading)
2. Download newsleecher from (If you like it buy it, if not search google for free nzb readers)
3. Configure newsleecher to use your news provider from step 1
4. Register at
5. Search for something you want to download at then click “Download NZB”
6. Newsleecher should intercept the NZB and start to download it automatically
7. Download and install Quick Par from, for Mac par file handlers see below:
8. Once your download has finished, check and repair if needed by opening the .par or .par2 files in quickpar
9. Download a trial version of winrar from and use this to extract the zip or rar files you downloaded
Mac users, check out the list below for handling rar archives:


So in summary, you search for files to download on an NZB indexing site (Steps 4+5), you download files from a News Provider (Step 1) using an NZB Reader (Steps 2+3+6) and you repair any broken files using Quick Par (Steps 7+8).