In the past I've used the following heating method to heat the enclosures of "snappy" aquatic reptiles and lavishly planted vivariums and terrariums. The main advantage of this heating system is that no AC power needs to enter the cage. Typical aquarium heaters are easily broken and/or their AC power cords can be chewed or bitten which can lead to heater failure or even worse elocution. Also temperatures can be adjusted without disrupting the enclosure.
There are three main components to the heating system: a standard five gallon bucket, a canister filter and an aquarium heater.
Attach the aquarium heater (100-200 Watt) to the side of the bucket using stand-offs and suction cups. Make sure that the bottom of the heater doesn't touch the bottom of the bucket. Set the aquarium heater temperature a few degrees higher than the desired enclosure temperature as there will be some heat loss from the connecting hoses.
Insert the canister filter in to the bucket. Make sure that the filter doesn't touch the aquarium heater.
Fill the five gallon bucket with water to the water level of the canister filter. Be careful not to add too much water or the motor assembly may get wet. To help reduce evaporation and heat loss, holes are cut in the lid of the five gallon bucket to accommodate the hoses and electrical cords.
Disadvantages of this heating system include it's low efficiency and enclosure heat loss during filter maintenance. To increase efficiency keep hoses as short as possible. To minimize enclosure loss during filter maintenance, I use multiple Fluval 403 heaters and simply switch out filters.