Saturday, 14 December 2013

How to Explain Bitcoin

Since I started getting involved in Bitcoin I have had to explain to people time and time again what Bitcoin is. When I first tried explaining it I seriously struggled, but now I start off by describing a normal currency and then slowly take it from there:

1) Start with cash
Everyone understands cash so start here. Cash can be stored in a wallet and exchanged in person for goods or services. Everyone accepts cash because we all believe it holds value. That value is derived from the fact that everyone accepts it, and that it is government backed. Your cash has not been backed by gold for many years, but we all trust in the economy and we all use it to buy things.

2) Now explain how banks store cash
Gone are the times where banks stored large volumes of physical cash in their vaults. Banks now hold electronic money. Only ~5% of money is actually printed on physical bank notes and coins, the rest is stored in the IT systems of commercial banks.

Your bank balance is simply a number linked to your account ID and stored in a computer. This allows for features like online banking where you are simply ask to send money from your account to another as a transaction (more on this later).

3) Banks have to be trusted
Banks prevent double spending by ensuring that you cannot spend the same money twice. If you have £80 and you spend £80 on Amazon, and then spend that same £80 on Ebay your payment to ebay is rejected because you have already spent your money on Amazon. Banks thus ensure that when you spend the money in your account it can only be spent once. If you spend it again it is either rejected or loaned to you as an overdraft.

If we could all stored electronic money there would be nothing stopping us from copy-pasting it to create new money. If you simply could simple store electronic money on your computer there would be a massive fallout from the counterfeiting of such money. Banks are thus the intermediaries that keep score on all our account balances.

This means that banks have to be trusted. They could simply edit their own balance or decide to issue themselves more money as and when they want it. This money printing devalues currencies and is often manipulated by central banks. In order for the system to stay standing we need a trusted central bank otherwise our economy would be destroyed in the same way as Zimbabwe and many others before it.

4) Banks make crazy profits from us - is there no other way?
This is the part where bitcoin comes into play. We have already covered that with traditional currencies you have to have a trusted intermediary in the form of a bank to allow transactions between two parties without those parties exchanging cash in person. This is known as a bank transfer for which the bank takes a hefty fee.

Bitcoin removes the bank and replaces it with another 3rd party - a distributed group of miners who are paid for keeping the system secure. Bitcoin allows a fully trustless system whereby you can send money from one side of the globe to the other in very short time frames without trusting any party in between.

5) Mining
Sending bitcoin from one person to another is a transaction. When a transaction is created it says:
I (wallet abcd1234) wish to pay wallet wxyz6789 X amount of bitcoin. 
Rather than paying a bank to verify the transaction, it is broadcast to the network of miners (computers) supporting bitcoin. These miners have to put a significant amount of computing power towards verifying transactions to ensure no transaction can be faked or reversed, so they are paid a fee for their service.

As anyone can start 'mining' all the miners are competing to verify transactions. This keeps transaction costs down to an absolute minimum.


You may point out that I have not explained the details around mining, only that they are required to keep the network secure, and paid for their services. If people then ask about where the bitcoins are created you can simply add that a limited supply of new bitcoins are given as a reward to miners for securing transactions.

There is no need to go into details about blocks and cryptography as frankly that goes deeper than most people need or understand. Unless they have a technical background it's better to just explain how bitcoins can be used by them.

This is a work in progress still, so if you want anything added or edited feel free to make suggestions in the comments. People are so used to currency that they take it for granted, bitcoin is a huge learning curve, and the media don't help as they tend to explain the mining process first in huge technical detail that makes bitcoin look ultra complex. One of the biggest things I try to get across to people is that in the same way that currencies are complicated, but cash is easy to use - the bitcoin protocol is complex, but using it is easy.

Tuesday, 26 November 2013

Pirated Movies VS Buying Movies - A plea to the movie industry

Firstly I would like to point out the obvious: downloading movies is illegal and I do not endorse it. What I put to you today is that buying a movie always gives you an inferior experience to pirating it.

If I was to download a film I could sit back and simply watch it. I could press play and it would start immediately. Unlike when they are portrayed by adverts in DVDs, pirated movies are top quality 1080p copies and offer a great viewing experience.

When I buy a DVD I have to get up and find the thing, then I put it in the TV and I have to watch a few trailers, then the menu finally arrives and I have to get up again to press play (ok i should have a remote but still). Then I have to watch adverts telling me not to pirate a film because it's the same as stealing a car. If I was sold a car and the salesman made me sit through an advert telling me not to steal cars I would cancel the deal and make damn sure someone else got the commission.

All in all the experience with pirated movies is far superior. I hope one day a legal service will allow me to purchase movies online and download them. I have tried every service I can find. If anyone has better suggestions please share.

iTunes - Tied to Mac - can't move them around easily. Limited content.
Netflix / Lovefilm / other streaming service - Limited content. Must be connected to internet. Can't download and watch later on a plane. Terrible quality - in fact the adverts saying 'would you steal a car' that you get on DVDs showing a terrible pirated movie could well have been filmed from my Netflix account.

Finally, to buy a DVD, download on iTunes, or stream, you need to wait for months after the film was screened in the cinema. In the UK the DVD is often released months after in the US. There is a long period after a film was in the cinema during which it is not possible to buy the film through any legal means, but perfect copies are available for free all over the web.

As I said at the start of this post, I'm not endorsing pirating films, but with all the above why on earth wouldn't you?

Given the experience above I would like to make a plea: To all those in the movies industry, wake up! If you can provide at least an equal experience to pirating many many more would pay for content. If you continue like this you are incentivising people to pirate movies. Wake up!

Friday, 25 October 2013

Easiest way to Pay in Bitcoin for Cryptolocker Virus in the UK

First of all it should be clear that if you have been infected by the Cryptolocker Virus you are being scammed and you should try to avoid paying the ransom. That said the encrypted files cannot be decrypted without paying cleverly leaving some people with no choice. This is a guide for those left without a choice who wish to pay the ransom using Bitcoins.

Beware it is always possible that paying the ransom may not work - this is very rare, but if it happens the payment cannot be reversed and your files will be lost. In other cases 99% of files are recovered but a handful get corrupted.

All victims should call action fraud on 0300 123 2040. If the bitcoin payment is not done before the time runs out you will not recover your encrypted files.

I should also disclose that I am one of the operators of Quickbitcoin.

What do you need before following this tutorial?
  • online banking (or another way to make a bank transfer e.g. telephone banking or in branch)
  • an infected computer with files you need to decrypt
  • Ideally plenty of time left on the timer - over 6 hours is safest, although it may work with around 1 hour if us folks at Quickbitcoin are online.
Most of you will be presented with a screen similar to this:

Click next and you will get this screen:

Choose Bitcoin from the dropdown. You will be asked to send 2BTC (bitcoins) to an address in the following format:

  • 14sYqe98iFnbav4LS1JCDAQkLgWEtUNQGm

Make sure you use the address you have been asked to send to. The address above is not the one you should send to. Please do not purchase bitcoins to be sent directly to the fraudsters Quickbitcoin will have no way of knowing if they are sending coins after the deadline has past and there would be no way of recovering the payment.

The first thing you need to do is set up a bitcoin wallet. Go to: and register an account. Once you have logged into your account there should be a wallet address displayed on your account page:

The long code is the address of your new bitcoin wallet. You now need to purchase 2 Bitcoins so you can send them to the fraudsters. Keep this page open as you will need to return to it later in the process. Also be aware that if you lose your password there is no way to recover it.

Go to - They will sell you bitcoins in return for a UK bank transfer.

In the field saying 'Your wallet address' enter the bitcoin address you just set up.

On the next page you need to fill in your details. This includes name, email, account number and sort code. The bank details are required in case something goes wrong and Quickbitcoins need to refund you. Once you have filled that out you will be presented with the confirmation screen below:

Click Confirm and the next screen instructs you to make the payment through your online banking

You should now log into your online banking (or call telephone banking, or go into a branch) and make the payment as detailed in the instructions page. My example reference here is QGNUODJ - please make sure you use your own as presented on the website else the process can be delayed.

Once you have made the payment click Payment Sent and the order will change to 'processing'.

Quickbitcoin operates in both London and Vancouver time zones. This means that normally between the hours of 9am and 2am UK time the transaction will be processed within 10 minutes. It is possible however for them to take up to 6 hours. If you buy bitcoins through Quickbitcoin and you miss the deadline they are happy to refund the payment as long as you can return the bitcoins. Refunds normally take 24h to process.

Once Quickbitcoin have sent you the bitcoins you should receive an email with a link to the transaction ID to show they have paid you. This is the same type of ID (but a different one) to the ID you need to send to Cryptolocker. Now that you have the bitcoins you should make a payment from your wallet to the address Cryptolocker is asking you to pay to. If you are unable to send you may need to wait a little for another confirmation (approx 10 minutes / confirmation).

Go back to the wallet you set up earlier and make a payment:

In the 'To' field enter the wallet address Cryptolocker asked you to pay to. This can be found on the window shown by the virus.

Once you have sent the payment search for their address in the search box in the top right corner of

This will take you to a page like the following:

Under the 'Transactions' area you should see a single transaction. On the left it shows the wallet it came from (your wallet), and on the right the wallet it went to (Cryptolocker waller). Above that is a long ID. This is the transaction ID:

Remember to get your transaction ID, not just the one I've shown above.

Most of the time you will only see one transaction. If multiple transactions are shown then you need to use the one which was paid from your blockchain wallet to the address Cryptolocker provided and use the ID from that transaction. Just search through the transactions for your wallet address and it should match up.

Now all you have to do is enter that transaction ID into the Cryptolocker virus window. Once you do that you will be informed that the transaction is pending manual confirmation from the hackers. During this time the timer will stop and a few hours later you files should start being decrypted.

I really hope this tutorial has been helpful to you and that you managed to recover your files. This virus has given a lot of people very bad introduction to Bitcoin which is a great new technology. To date, and to my knowledge, there are now 2 london pubs accepting bitcoin as well as a range of online shops. Bitcoin as a currency has the advantage over traditional currencies that the banks are unable to levy charges on it. I won't cover all the advantages here, but I hope the experience with the virus has not put you off completely. After all, we've all been ripped off in £ and $ before and yet continue to use them.

If you have any questions and need help please leave a comment below, or email Quickbitcoin at

Tuesday, 22 October 2013

How to play .m3u8 video files

.m3u8 files are effectively playlists for video content designed to be played on a mobile device. They also allow seamless switching between high and low resolution video files for when your 3G connection speed varies.

The easiest way to play m3u8 files is to open them on a browser on your iphone or android device. It is also possible to play them through safari using the following html:

  <video src=""></video>

Either way you have to serve the video over http using a web server. You cannot simply drag it into your browser.

Thursday, 17 October 2013

Why password security requirements hand the advantage to the hackers!

Most of you will have come across a variation of this message at one point in your life:

"The password you entered doesn't meet the minimum security requirements."

Every 3 months the security policy on my work email forces me to change my password. This is understandable, but it can't be the same password as any previous passwords you have had, it has to have 8 characters or more including lower case, upper case, punctuation and at least 2 numbers

A simple password to remember could be:
'the cat walked down the road and sat down'
This is a 41 character password which would take hackers years and year to break even though it is so simple for the human mind to remember.

Of course this would not pass the security policy so this needs to be changed to:
'The cat walked d0wn the r0ad and sat down!'
This is now impossible to remember so the user has two choices:

Either write the password down somewhere totally insecure.
Or make an easier password:

This password is only 9 characters and passes the security policy tests without a problem. That said according to it would take 344 days to break this password whereas the 41 character password would take 479,245,873,413,199,200,000,000,000,000,000,000,000,000,000,000,000 years

Obviously I have no idea how to say that number out loud but it's billions of times more secure.

This is a cry for help to all systems administrators: Get rid of these ridiculous security policies. If you require a certain length password that is fine, but the rest of the policies at utter nonsense.

Please share this post if password policies have **** *** *** (annoyed you).

Thursday, 12 September 2013

How to buy bitcoins in the UK

Four months ago I started a website called QuickBitcoin which allows users to buy bitcoin in the uk. Using the UK's faster payments system we are able to reduce transaction times down to an average of only 10 minutes.

Running the site has not come without it's share of problems. Unfortunately accepting paypal or other reversible payments system simply doesn't work as scammers can pose as customers and initiate chargebacks as soon as they have the Bitcoins. Currently Paypal always sides with the buyers as their dispute staff have not been trained to inspect the Blockchain for evidence of a transaction.

This means that the only forms of payment we are able to accept are those which are much harder to reverse, therefore removing our risk, but also removing all the security layers from our customers. How are customers expected to blindly send us a bank transfer without knowing if or when they will receive their coins?

Building this trust is a slow process. We are as open as possible about who we are and how we operate, but often receive questions about how they can trust us. I guess it all comes down to reputation. Getting that first buyer in took a long time, and now there is a steady flow of customers, but most are still a little skeptical.

You can't really blame people for being skeptical what with all the bad press that Bitcoin has had. I for one am convinced that Bitcoins or another similar currency have a large role to play in our future.

Tuesday, 14 May 2013

3D Printer more Reliable than 2 Dimensional Counterpart!

Today I'd like to share a frustration I've been having and I'd be interested to know if anyone else is having a similar experience:

My 3D printer is currently churning away for about 20h a day. It costs around £500 and hums away in the corner and churns out my orders in top quality PLA. Current reliability is somewhere around 99.9%.

When I come to posting the prints to customers I print off postage labels with my 2D printer. The printer is around £100, and only 2 months old and prints about 3-4 pages a day. Every time I print there is a paper jam and I have to restart the printer after every single page. Current reliability rate is around 1-2%.

Oh the irony! I guess I'll be buying a new 2D printer then... Anyone else got this issue?

Sunday, 28 April 2013

Botqueue is amazing at queueing reprap prints and managing botfarms!

A while ago I posted about BFQ - my design for a Bot Farm Queue to manage my printers for me:

graphmastur kindly told me about which is very similar to the design I proposed and is now very reliable. The open source software is being worked on almost everyday by Zack Hoeken and other commiters and any bugs you raise are quickly sorted out.

I have been using botqueue for probably 99% of my prints since mid february and have had almost no issues with it. The only time I haven't used it was when I tried to print a 100MB STL file of a statue which was too big to upload to

As you can see on their stats page I am their biggest user with my trusty printrbot taking the lead:
I am about to add 4 more printers to botqueue which may increase my lead, but competition aside people really should start using it more. Its a great tool once your printers are set up perfectly and just work every time.

The printing process is now much simpler. I can upload either an STL file or a gcode file to my botqueue account. If I upload an STL it will be sliced with my default settings. When a printer becomes available the next job on the queue is downloaded and the printer starts again.

I've just persuaded a friend to start using Botqueue as he normally prepares files in his bedroom then walks downstairs with an SD card to start the prints in his garage. With a simple webcam (which Botqueue supports) he can now start prints from his room and watch on the webcam if anything goes wrong.

Nozzle Jam

My Printrbot has been chugging away quietly printing products in the corner and until last weekend it hadn't had any issues for months. Then some of my printer suddenly stopped pushing enough filament through and the quality degraded.

It came at a good time for me as the prints are still usable, but not good enough to sell and I have therefore had time to print the parts for my next few printers.

As I started investigating I tried all sorts including changing the hobbed bolt but none of it worked. It was when I couldn't push the filament through by hand that I realised the ubis hotend was jammed so I simply took the nozzle out, put the temperature up to 230C and extruded about 50cm of clear pla filament through. It started out being full of bits of what I assume was black ABS in it although I'm not sure. As I kept extruding the extrusion became more and more clear. I then replaced the nozzle and it was easy to push through by hand so I put a print on.

It's been perfect ever since!!

Sunday, 7 April 2013

Lucky Escape on Reprap 3D Printer!

This morning I woke up to a nicely finished print, except 1 small thing:

Somehow one of the wires to my fan got caught in the print. I know my wires were loose but this was unexpected!!

For anyone who cares the print finished fine, only the fan stopped working but it wasn't really needed on this print.

Monday, 18 February 2013 launch

I'd like to announce that I've just launched a new 3d printing e-shop at

The main issue I found when I tried to source the parts for my new rostock (build in progress):

was trying to gather all the parts from different suppliers without missing anything out. Looking around it seems that most 3D printing e-shops offer Prusa kits and some parts. When I looked for longer smooth rods I had to import them from Belarus! I waited 30 days for shipments from the UK, Germany, China and Belarus and I read of other people's frustration in finding good suppliers.

I think what people need is a more versatile shop which offers parts for all types of 3d printers. This includes everything from printed parts, to kits of nuts and bolts, all the way up to full finished ready to go printers.

Of course that's the dream... the reality is that so far I have 4 products on the new webshop, but I will be adding more every day and over the next couple of months I hope to build up an extensive enough offering that people can buy at least most of the parts they need for most types of 3d printers including both standard and delta style printers.

Wish me luck guys and spread the word!!!

Monday, 28 January 2013

How to control multiple 3D printers? BFQ

I don't know if anyone else has done this, but I think it would be useful to be able to create a queue for the parts you need printed on a reprap and have some software that works out how to lay it out on the bed, slices it, and starts the print whenever a printer is free.

I've called it BFQ (Bot Farm Queue)!!

Minimal configuration:
  • Printers all have different size beds. Program must be preconfigured with a list of printers and their corresponding sizes.
  • Printer beds are now different shapes. We need to accomodate standard rectangular as well as circular/triangular delta bot beds - I'm talking Rostock.
Optional configuration
  • dual extrusion enabled?
  • multicolor extrusion?

Users will add STL files to a queue. The program works out that printer A is available with a 200 x 200 x 150 mm built platform. The first item in the queue is selected and laid out on the bed in Slic3r, followed by as many as possible of the remaining items. When the item at the front of the queue doesn't fit the program should look for smaller items further down the queue to fill the bed with. Slic3r would then generate the required gcode and the program uses to send the code to the required printer.

  • Program must 'auto layout' STLs in Slic3r. Slic3r's built in function for this is currently not that advanced.
  • We must find a way to connect 10, 20, 100 printers to a computer. This may be possible using a simple USB hub but needs testing and a way to send the print command to the right pronsole instance connected to the right printer. (assumes 1 instance of pronsole running for each connected printer)

When I have some time over the next month I may start experimenting with some of the required features. Step 1 for me is sorting out the auto-layout. I think if I can crack this then the rest should be easy (famous last words).

If you want to help or have any suggestions please comment below :)

Too many orders for reprap printed parts!

It's not every business that has the luxury of having too many orders but I have found out first hand that the demand for printed reprap parts far outweighs the supply.

The issue is simple: it takes a printer between 10-20 hours to print parts for another printer, meaning that if you sell more than 1 a day you can't keep up with demand (with only 1 printer of course).

A simple solution of course is to print myself more and more printers and use those to print the orders but I don't have the time or the space at the moment to run them all. I am currently building myself a brand new awesome rostock printer which I will blog about as I build it over the coming weeks. This will partially solve the problem, but I still think that demand for repraps is increasing much faster than supply.

Will this mean a price hike - I doubt it, but the longer lead time for acquiring parts may put some people off. I hope that as designs are iterated and improved the parts required for building will become cheaper and the electronics should become cheaper due to normal mass production in China.

After looking around and finding many many reprap online shops with a banner saying 6-10 weeks waiting list, or closed until demand calms down - I don't think I'm the only one with this problem.

It's a really exciting time for 3D printing and the reprap project as demand is absolutely exploding. I urge anyone with a 3D printer to print as many printers as possible for other people as this is the primary bottleneck for rapid adoption. Giving them away would be even better, but even selling the parts feeds the printing ecosystem and opens the doors for more designers and engineers to play with this awesome technology!

Monday, 21 January 2013

Reprap Resuming a Broken or Paused Print

A pain that most of us 3d printers always come across eventually is a failed print due to lost connection, power cuts, etc. Recently I was controlling over ssh and the LAN failed. The best solution is to run pronsole as a background process (press cnt-Z and then type bg at the prompt) which will keep the process running after a lost connection. This time though I forgot and I was 2.5 hours into a print!

After months of ripping off the busted parts and chucking them I figured it was time to learn to continue or resume a busted print.

  • reconnect to pronsole over ssh (on my raspberry pi!!)
    • OR open pronterface (or other host software)
  • connect to the printer again
  • type M114 : Get Current Position
  • open the Gcode in a txt editor and find the Z height returned by M114
    • delete all code above it
  • search in the remaining code for the X coord followed by the Y coord (beware of rounding errors)
    • Once you find a match delete all code above that line.
  • save the file and load it into pronsole (or pronterface)
  • print
If all goes well the printer should continue as if nothing had happened!

Best of luck, and please comment about your experiences with paused/broken prints and how you resolved them.