Well, for the both of you...
Create two buttons, one on the inside of the house/gate, and one on the outside. Run wire connecting them together using wire through block or adjacent block wiring underground. Note that adjacent block wiring is simply running a wire from one block to another that are connected at only one edge, not actually sharing a side. You can keep all your wires underground using this method. Next, run a wire out from the previous wire and connect it to the hinged edge of the door/gate.
That's it! Hope that is clear enough.
I have not tried it yet, but by button do you mean switches as well. If this is anything like how minecraft works the buttons have a short timer on them, while a switch will hold the value.