Let ( ) denote the maximum possible number of codewords in a binary code of length and minimum Hamming distance . For large values of , the best known upper bound, for fixed , is the Johnson bound. We give a new upper bound which is at least as good as the Johnson bound for all values of and , and for each there are infinitely many values of for which the new bound is better than the Johnson bound. For small values of and , the best known method to obtain upper bounds on ( ) is linear programming. We give new inequalities for the linear programming and show that with these new inequalities some of the known bounds on ( ) for 28 are improved.