Two of our new favorites summer pandemic activities come together in this dish which is gardening and grilling. Grilling because I got a new grill and I intend to use it. We also joined our community garden and now have more squash than we can count.
Pasta: Penne works best but others like rigatoni or elbow macaroni will work to.
1-2 large Zucchini
1-2 large Summer squash
1 lb Asparagus
1 ln Bell peppers
Kosher salt & pepper to taste
1 package of goat cheese
1/3 cup olive oil
3 Tbsp balsamic vinegar
2 Tbsp mayonnaise
1/2 Tbsp Dijon mustard
1 clove garlic, minced
1/2 tsp dried basil
1/2 tsp salt
Pepper to taste
Warm up the grill to 400-500 degrees F
Toss asparagus with olive oil, salt & pepper
Cut squash evenly and toss with olive oil, salt, & pepper.
Place veggies on grill. You may want to do this in batches. Asparagus and peppers are usually done first. I usually rotate them every 2 minutes.squash is usually closer to 4 depending on thickness.
Cook past to slightly Al dente. Reserve 1/3-1/2 cup of pasta water and drain the rest.
Combine reserved water with the rest of the sauce ingredients minus the goat cheese.
So I thought project setup would be the easiest item to complete. Turns out the due diligence was far greater than I thought. Why? In short there are tools that have best practices for a project built in like Gradle or Cargo. However they just didn’t quite fit what I needed. Letls look at those use-cases.
Little to no setup required
This is something I feel very strongly about. This project should make contributing absolutely frictionless. You should not need a specific IDE or require changing versions of system libraries.
Don’t introduce yet another language if you don’t have to
Choosing the best tool for a task is important. However there is a certain amount of overhead with each language. Some require additional tooling and may not be widely known. So reusing languages that are used elsewhere in the project is preferable.
Option #1: Gradle
This should be a no brainer. Lucene uses Gradle. I’m porting Lucene. I should use Gradle. However while I am porting Lucene to learn I want to make this easy for others to adopt. Gradle brings in either Groovy or Kotlin.
OK… That I stole from Cargo’s guide. Cargo is going to be needed for building/managing the rust components. However we really need a level of orchestration above it.
Option #3: Maven
Maven for the longest time was the work horse for most Java development. Unlike Gradle Maven can be done using xml exclusively. This then becomes a discussion of project management via configuration or code. Both have their time/place. As a project becomes increasingly complex code becomes preferable over configuration.
Option #4: Make
There is something to be said for keeping it simple. Make is typically included in every distribution and shell scripting provides the capabilities I need. While shell scripting is yet another language it is already pulled in by Docker. This makes the most sense.
A mixture of Option #2, #3, & #4 seems like the best course. Due to the expected complexity of the project Make seems like the best option as it has the least amount of dependencies. Maven & Cargo can then be used for Java & Rust sub-components respectively.