What you need:
* 1 cup low-fat milk
* 1/3 cup lukewarm water
* 1 package yeast
* 1 large egg, at room temperature
* 2 teaspoons sugar
* 1 teaspoon salt
* 1 tablespoon extra-virgin olive oil, or canola oil
* 1 3/4 cups whole-wheat flour
* 1 3/4 cups (approximately) unbleached all-purpose flour
* Cornmeal to sprinkle
What you do:
Heat milk in a small saucepan over medium-high heat until the surface shimmers. Transfer to a medium bowl and let cool.Pour water into a small bowl. Sprinkle yeast over the water, stir gently.Add egg to the milk; whisk well.
Whisk in sugar, salt, oil and the yeast.
Stir in whole-wheat flour. Let stand for 5 minutes. Start adding all-purpose flour to the dough, about 1/3 cup at a time, beating well after each addition.
When the dough is somewhat firm and no longer too sticky to handle, turn it out onto a floured surface.
With floured hands, knead the dough for 7 to 8 minutes, using additional flour as needed to prevent sticking.
Cover with plastic wrap and set aside in a warm, draft-free spot to rise until doubled in bulk, 1 to 1 1/2 hours. When the dough has doubled, turn it out onto a floured surface and knead for 1 minute. Cut the dough into 8 equal pieces.
Loosely cover with plastic wrap and let rest for 5 minutes. Coat a large baking sheet with cooking spray and dust it with cornmeal. Shape the dough into tight balls and place them about 2 inches apart on the prepared baking sheet. Set the buns in a warm, draft-free spot until they have risen by about half, 25 to 30 minutes. Gently press down on the buns to flatten them a little. Let them rise for another 20 minutes. Preheat the oven to 375°F (see conversion table here for Celsius). Bake the buns on the center rack until golden and crusty, about 25 minutes. The bottoms should sound hollow when tapped. Cool on a wire rack for at least 15 minutes before slicing.