1. Bring a large pot of salted water to a boil. Add the pasta and cook, stirring once or twice, according to the package directions, or until the Pasta is tender but still has some bait. Start tasting 1 to 2 minutes before the recommended time. Use a heat proof measuring cup to remove one cup of the pasta cooking water. Drain the pasta into a colander but do not rinse it. Return it to the pot.
2. Meanwhile, in a large skillet over medium heat, cook the bacon, stirring and turning the pieces often, for 10 minutes or until they are browned and crisp. Once or twice during the cooking, spoon out some of the bacon fat. Use a slotted spoon to transfer the bacon to a place lined with paper towels.
3.Spoon off all but 2 tablespoons of the bacon fat from the skillet. Return the pan to medium heat. Add the shallot and cook, stirring often, for two minutes. Add the tomatoes and a general sprinkle of black pepper. Cook, stirring for 2 to 3 minutes or until softened.
4. Stir in spinach and 3/4 cup of the pasta cooking water. Stir well to scrape up any browned bits on the bottom of the pan. Add the cream and he gently until it comes to a simmer. Taste for seasoning and add more salt or pepper, if you like remember that the bacon adds salt.
5. Set the pasta over medium heat and carefully spoon the tomato mixture over the pasta. Stir gently until the sauce is bubbling at the edges. Stir in the basil or parsley and the remaining 1/4 cup pasta cooking water a little at a time. Toss well.
6. Divide the pasta among four shallow bowls. Top each with bacon and sprinkle with Parmesan. Pass the remaining cheese separately.