For the cake: Preheat the oven to 350 degrees F.
In a large bowl, combine the flour, sugar and salt. Stir together and set aside.
In another bowl, mix the buttermilk, baking soda, vanilla and eggs. Mix with a fork and set aside.
In a medium saucepan, melt the butter and add the cocoa. Whisk together to combine. Meanwhile, bring 1 cup water to a boil. When the butter is melted, pour the boiling water in the pan. Allow to bubble for a moment, then turn off the heat. Pour the chocolate mixture into the flour mixture. Stir together for a moment to cool the chocolate, then pour in the egg mixture. Stir together until smooth, then pour into an ungreased jelly roll pan (or rimmed baking sheet) and bake for 20 minutes.
While the cake is baking, make the icing: Melt the butter in a saucepan over medium-low heat. Add the cocoa powder and stir until smooth. Add the milk, vanilla and powdered sugar. Stir together. Dump in the pecans and stir until well combined.
Immediately after removing the cake from the oven, pour the warm icing over the top. You'll want to avoid doing much spreading, so try to distribute it evenly as you pour.
For a child's birthday, omit pecans in the icing. Serve the cake with a large bowl of M and M's and allow the kids to decorate it themselves.
This cake can also be made into cupcakes: Just fill muffin tins a little less full with the batter than you normally would so the baked cupcakes remain below the upper rim. That way, the thin icing can be poured into each tin.