In a large bowl, combine the corn kernels, butternut squash, creamed corn, cheese, eggs, garlic powder, onion powder, paprika, cayenne pepper and a dash of salt and pepper. Stir the ingredients to combine thoroughly. Add the flour and stir again until all of the flour has been absorbed. At this point, check the consistency of your cake batter. You want it to be thick, but still thin enough that when you go to fry them they ooze just a little bit. If the cake batter is too thick, add milk until you reach this consistency.
Heat 2 tablespoons of vegetable or canola oil in a large skillet over medium to medium-high heat. Drop the cake batter in 1/4 cup spoonfuls and fry for about 4 minutes on each side, or until they are brown and cooked through. Transfer the cakes to a paper towel-lined plate to get rid of any excess grease. Cover and set aside until you are ready to serve.
For the hollandaise, in a small saucepan, melt the butter over medium-low heat. While the butter is melting, whisk the egg yolks, lemon juice, and water together in a medium bowl until thoroughly combined. Once the butter has melted, add a tablespoon of butter to the egg mixture, whisking vigorously as you add it. Add another tablespoon of the melted butter to the bowl and again whisk vigorously as you add it. Pour the egg mixture into the small saucepan and continue to whisk vigorously as you add it. Continue to whisk until the hollandaise JUST begins to thicken, about 3-4 minutes. As soon as it begins to thicken, add the gruyere cheese and season with paprika, salt and pepper to taste. Remove from heat immediately once the cheese has melted.
Top the cakes with hollandaise, bacon, cilantro and fresh greens if you desire. A fried egg also works very nicely thrown on top!
Instructions if you are making the butternut squash puree: Preheat your oven to 425 degrees F and line a large baking sheet with foil. Slice the butternut squash in half and remove all of the seeds and gooey stuff inside. Place the halves, flesh side down, onto the baking sheet. Cover and roast the squash for 30-35 minutes or until tender and soft. The time will vary depending on your oven and how large the squash are. Remove the squash from the oven and set aside to cool for at least a half hour. Taking a spoon, scoop the flesh into a blender. Blend on high until the squash is pureed and smooth. At this point, use the squash or place in an airtight container and refrigerate for another day's use.