Practical Quantum Computing