Classic Marinara Sauce

Ingredients

  • 1 28-ounce can whole San Marzano tomatoes, certified D.O.P. if possible
  • 1/4 cup extra-virgin olive oil
  • 7 garlic cloves, peeled and slivered
  • Pinch of crushed red pepper flakes
  • 1 teaspoon kosher salt
  • 1 large fresh basil sprig, or 1/4 teaspoon dried oregano, more to taste

Steps

  1. Pour the tomatoes into a bowl and crush them with your hands
    1. Afterwards, fill the can about 1/4 to 3/4 way with water; slosh around to capture the tomato juices and bits, and set aside for a moment.
    2. Use more water if you want a lot of sauce, or are finishing meatballs, or want it to simmer for a long time.  Use less water if you don’t have much time
  2. Slice the garlic cloves as fine as you can
  3. Put the pan on medium heat and add the olive oil
  4. When the olive oil starts to shimmer, toss in the garlic and let it sizzle
  5. BEFORE the garlic starts to brown, pour in the tomatoes, followed by the water from the can, and sprinkle on the oregano and pepper flakes.  If you’re using fresh basil, lay it on top.
  6. Turn down the heat and let the sauce simmer for 30 minutes to an hour.  It will get a nice orange-y color to the top.  You can reduce it until there’s no visible water, but no more than that – remove it from the heat if you reach that point!

Notes

  • This recipe is great because it’s tasty and doesn’t take a lot of extra work, but it does take time.  Expect prep plus cooking to be an hour.
  • You really want to use a heavy stainless pan, 12″ or larger.
  • Our local grocery store carries canned whole San Marzano tomatoes, and they are certified D.O.P., but they already have basil added (so we don’t actually put additional basil in).
  • I’ve tried using canned crushed tomatoes but it messes with the texture and flavor.  Crushing them yourself is easy yet so satisfying.
  • Our best experience was making meatballs at the same time, and finishing them off in the sauce.  The sauce picked up some extra flavors that made it sublime.

Source: https://cooking.nytimes.com/recipes/1015987-classic-marinara-sauce

Sausage and Vegetable Roast

This is a kind of suggestion-type recipe, throw in your favorite vegetables and ignore the ones you don’t like (or don’t want to do today).

Ingredients

  • Two medium-sized red potatoes
  • 1 head of broccoli (or cauliflower)
  • 2 bell peppers (use two different colors, for the look)
  • 1/2 pound green beans (a couple of handfuls)
  • 1 bunch of asparagus
  • 3/4 pound of sausage
  • Olive oil
  • 1/4 cup grated Parmesan cheese
  • 1/4 teaspoon red pepper flakes
  • 1/2 teaspoon garlic powder
  • 1 tablespoon dried oregano
  • 1 tablespoon dried parsley
  • 1/4 teaspoon salt
  • 1/4 teaspoon pepper

Steps

  1. Heat up an oven to 400° F
  2. Cut up the potatoes into small (less than 1 inch) pieces. If they’re too big they won’t cook fast enough
  3. Cut up the broccoli, peppers, and asparagus into comfortably-bite-size pieces, and snap the stems off the beans
  4. Slice the sausage into “coins”
  5. Toss veggies, sausage, cheese, and spices into a large bowl with enough olive oil to lightly coat everything (a few tablespoons)
  6. Spread out onto a couple of pans
    1. Everything should be a single layer; doubling up will lead to a mix of burnt and raw bits
  7. Bake for 15 minutes
  8. Flip the veggies and reverse the pans top to bottom
  9. Bake for another 10-15 minutes

Serve with brown rice!

Variations

Swap in a cup of any of the following:

  • butternut squash
  • zucchini
  • sliced carrots
  • a sweet potato
  • turnip
  • radishes
  • sliced jalapeños
  • cherry tomatoes (cut in half)
  • red onions
  • mushrooms

Failed to retrieve directory listing

filezilla connection log with "failed to retrieve directory listing" error
Filezilla’s opaque error

I occasionally run a local vsftp daemon on my development machine for testing.  I don’t connect to it directly — it’s used to back up unit tests that need an FTP connection.  No person connects to it, least of all me, and the scripts that do connect are looking at small, single-use directories.

I needed to test a new feature: FTPS, aka FTP with SSL (Not to be confused with SFTP, a very different beast.)  Several of our vendors will be requiring it soon; frankly, I’m surprised they haven’t required it sooner.  But I digress.

To start this phase of the project I needed to make sure that my local vsftp daemon supports FTPS so that I can run tests against it.  So I edit /etc/vsftpd/vsftpd.conf to add some lines to my config, and restart:

rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
ssl_enable=YES

But Filezilla bombs with an opaque error message:

Status: Resolving address of localhost
Status: Connecting to 127.0.0.1:21...
Status: Connection established, waiting for welcome message...
Status: Initializing TLS...
Status: Verifying certificate...
Status: TLS connection established.
Status: Logged in
Status: Retrieving directory listing...
Command: PWD
Response: 257 "/home/dad" is the current directory
Command: TYPE I
Response: 200 Switching to Binary mode.
Command: PASV
Response: 227 Entering Passive Mode (127,0,0,1,249,239).
Command: LIST
Response: 150 Here comes the directory listing.
Error: GnuTLS error -15: An unexpected TLS packet was received.
Error: Disconnected from server: ECONNABORTED - Connection aborted
Error: Failed to retrieve directory listing

I clue in pretty quickly that “GnuTLS error -15: An unexpected TLS packet was received” is actually a red herring, so I drop the SSL from the connection and get a different error:

Response: 150 Here comes the directory listing.
Error: Connection closed by server
Error: Failed to retrieve directory listing

Huh, that’s not particularly helpful, shame on you Filezilla.  I drop down further to a command-line FTP client to get the real error:

$ ftp localhost
Connected to localhost.
220 (vsFTPd 3.0.3)
Name (localhost:dad): 
530 Please login with USER and PASS.
530 Please login with USER and PASS.
SSL not available
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
421 Service not available, remote server has closed connection
ftp> quit

Ah.  Now we’re getting somewhere.

A quick perusal turned up a stackexchange answer with the assertion that “the directory causing this behaviour had too many files in it (2,666).”  My own directory is much smaller, about a hundred files.  According to this bug report, however, the real maximum may be as few as 32 files.  It’s not clear to me whether this is a kernel bug, a vsftpd bug, or just a bad interaction between recent kernels and vsftpd.

Happily, there is a work-around: add “seccomp_sandbox=NO” to vsftpd.conf.

Since vsftpd’s documentation is spare, and actual examples are hard to come by, here’s my working config:

listen=YES
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
seccomp_sandbox=NO
ssl_enable=YES
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem