BUD switch

The BUD Switch is a block planned to be added in the Redstone Update for use with redstone circuitry. BUD stands for Block Update Detector and configurations of such a device have existed in Minecraft due to a glitch labelled as a "feature", allowing circuits to detect block updates, using a Piston powered in a way it does not recognise until it has been updated by using blocks such as growing grass or decaying leaves or having to place a block.

Trivia
BUD switches are currently redstone circuits

How To Make
Water BUDs This BUD switch takes advantage of the fact that water flows toward the nearest hole, but it doesn't notice new holes until it is updated for some other reason. The water source block acts as the sensor. This design is outdated and is more complicated than newer designs.

Water+boat BUD switch, complete

Water+boat BUD switch, hidden details This variation is simpler but not resettable.

Water BUD switch. less expensive and easier to set up than most other BUD switches. The wire goes through the hole. Piston Based Many BUD switch designs exploit a bug in the way pistons are powered. A piston can receive power through the space directly above it, as if it were two blocks high. In this case, the power source is either above and to the side of the piston, or two blocks above it. However, when powered in this way, the piston does not immediately notice changes in the state of the power source. When some other block update happens next to the piston, it will "wake up" and react to the change. By forming a loop, where the state of the piston controls the state of its power source, it becomes the sensor of a simple BUD switch:

A simple piston-based BUD switch. The piston is sticky. In this design, the piston will only extend in response to an adjacent block update, but after extending it will immediately retract because the arm of the piston notices the repeater next to it turning off. This is how a piston BUD resets itself: by having the power run next to the extended piston arm, with a delay. Note: If the block diagonally adjacent to the sticky piston becomes horizontally adjacent, the circuit will constantly pulse instead. This design can be extended with multiple sensor blocks. All of the pistons in this design are sensors.

A piston-based "BUD array", with multiple sensor blocks. All the pistons are sticky. Stuck-Piston Based The following designs works because pistons can't be pushed by other pistons while extended. And when a piston retracts, it doesn't notify any other pistons that were trying to push it. The piston with the block attached to it is sticky and acts as the sensor. This design has the advantage of a low profile, and also that the quirk it exploits is less "buggy" and less likely to be fixed in the future.

A "stuck piston" BUD switch. The piston with the block attached to it is sticky.

A "stuck piston" BUD switch. Neither piston is sticky. The latter design above can also be extended to an array in a variety of ways, including a one-wide design.

A very compact "in-line" BUD array. Every piston is a sensor except the one next to the obsidian. None of the pistons are sticky.

A one-wide BUD array. Every piston is a sensor except the one next to the obsidian. None of the pistons are sticky. The stuck-piston principle can also be used to hide a BUD completely underground, as shown by this video: Underground BUD Switch Redstone Dust Based Quirks with redstone power propagation can be exploited to make BUD switches. One advantage of these designs is that they are silent. These two BUD switches take advantage of the strange properties of redstone dust placed on top of glowstone or upside-down slabs. The piece of dust on top of the glowstone or upside-down slabs acts as the sensor. It does only work with the torch facing north/south.

The following less compact design exploits an older bug involving redstone power level decay. The lever is on. The long redstone wire can be routed in various ways, but its length must be exactly the same as in this example. The sensor is the piece of redstone dust on top of the diamond block. That piece of dust does not need to be raised above the rest, but doing so exposes more of its sides to detect block updates.

Redstone Lamp Based You can make a BUD switch out of a Redstone Lamp by adding it to another BUD switch which detects the On/Off states of the lamp. This is based on the fact that if you have a redstone signal pointing directly at the redstone lamp, you can go down 1 block to the sides, place a redstone dust there, place a block on top of the placed dust, the lamp will not update. It will only update once something updates adjacent to the redstone lamp. The other BUD detects that the game realizes that the redstone lamp has to be powered, and will update the other BUD.

Powered Rail Based This method uses a bug in the Powered Rail, which allows it to be powered without a redstone input. The first known occurrence of this type of BUD is here:

Variations

Other devices can be built using the same underlying principle as the BUD switch. T-BUD By eliminating the reset mechanism of a BUD switch, it becomes a T-BUD or Toggle-BUD. This device has two stable states, which it switches between when it detects a block update next to the piston. This is equivalent to a normal BUD connected to a T Flip-Flop, but much simpler to build. It is useful for tracking the state of blocks like furnaces, grass/dirt, and beds. However, it has useful capabilities for placing some blocks two blocks away. When placing a piece of redstone dust two blocks away, the t-bud activates when it is destroyed only. When placing a repeater two blocks away, the t-bud activates only on the placement.

T-BUD in first state

T-BUD in second state

WARNING
Do not place a block on the piston or the extended part that will. Cause it to react (that is why it is called the BUD switch)

FYI
For your information BUD really means "Block Update Detector"