They are pretty cheap to buy, nowadays, but I prefer making my own if possible - that has the added benefit that I get to understand how it works (or why not).
The intertubes have linked to that diagram for ages, but that one doesn't work. The diode needs to be installed blocking the MAX's TTL output connection, not the input.
This is because the Yaesu radios use the Dallas 1-wire "bus" system, which works by holding the line level high when idle, and to transmit either of the two parties pulls the bus low (for different amounts of time to signal 0/1).
With the diagram as shown above the MAX's pull-up output overpowers the Yaesu's minimal current sink when it tries to pull low, so its transmissions go nowhere.
With the diode blocking against the TX pin, the Yaesu can pull the signal low to send and the MAX TX pin level is isolated. Transmitting to the Yaesu works because when the MAX pulls low, current flows across the diode and the Yaesu sees the low level. Slightly weird, but it works.
Here's the trivially simple Yaesu programming cable that I whipped up:
one FTDI breakout board (I have lots of MAX232s around, but dealing with the extra 5V power supply is less appealing than just using a cheapy usb-to-rs232 module), one diode and one dismantled 4-pin/TRRS plug.
CHIRP works fine with that cable and both my VX-5R and VX-7R.