Your display of two rows of blocks is an indication that the LCD is not properly initialized. This could be due to a wiring problem or a code problem.
I just can't understand why virtually every LCD program author decides that they should deviate from the initialization sequence given in the datasheet. The code you referenced is another example of this, and it's worse than most.
Follow the LCD Initialization link at http://web.alfredstate.edu/weimandn, scroll down to the section on 8-Bit Interface, Initialization by Instruction, and compare it to the code you tried.
The LiquidCrystal library isn't totally correct either and that could possibly be your problem, but it's not likely.
Don