Masking the Free Market

I’ve noticed that dedication to “free market” seems highly correlated to “you made the decision I support” … if we make an a priori assumption that requiring a mask be worn is somehow an infringement of individual liberties (not a stance I take, but accept it for the sake of argument), isn’t each individual’s ability to “vote with their dollars” a main tenant of the so-called ‘free market’?
 
I’m close to getting a Costco membership *because* they’re the only grocery joint around here that was making customers wear masks. It’s out of the way, I don’t think they’ve got the convenient order-online-drive-through-pickup thing, and I have no idea what their vegetarian selection is like. But I hate giving my money to support Giant Eagle’s lax enforcement of actual requirements (employee wearing mask does not mean around their neck) and refusal to require common-sense safety precautions like masks for customers. And that’s the free market. Enough people go one way or the other, the companies will change their stance.
 
And *forcing* a company not to require a mask violates that company-person (thanks, Citizens United) liberties too, doesn’t it?

Baked Breaded Fish

Baked Breaded Fish

Recipe by LisaCourse: FoodCuisine: AmericanDifficulty: Easy
Servings

4

servings
Prep time

30

minutes
Cooking time

20

minutes

Ingredients

  • 4 fillets of tilapia

  • Panko Mixture
  • 1 tablespoon sea salt

  • 1 cup panko bread crumbs

  • 1/3 cup shredded Parmesan cheese

  • Egg Mixture
  • 2 eggs

  • 1 tablespoon chili seasoning

  • 1 teaspoon salt

  • 1/4 cup oil

  • Flour Mixture
  • 1/2 cup all-purpose flour

  • 1 teaspoon salt

  • 1/2 teaspoon pepper

Method

  • Heat the oven to 425 F
  • Oil a baking tray
  • Blend the egg mixture ingredients in a bowl
  • Blend the flour mixture ingredients in a bowl
  • Blend the panko mixture ingredients in a bowl
  • Dip fish filet in flour mixture, then egg mixture. Then dip in panko mixture and press to ensure crumbs adhere to fish.
  • Place each filet on oiled baking tray
  • Using convection oven at 400 degrees F, bake for 15 minutes, turn fish, and bake for 5 more minutes

Notes

  • Serve with tartar sauce and lemon wedges

NodeJS Unit File

For future reference, this is an example unit file for running a NodeJS server with systemd. The NodeJS code we use reads from a local MariaDB, so I’ve added a service dependency for the database server.

Create /etc/systemd/system/nodeserver.service

[Unit]
Description=SiteName Node.js Server
Requires=After=mariadb.service

[Service]
ExecStart=/path/to/binary/for/node /path/to/nodeJS/html/server.js
WorkingDirectory=/path/to/nodeJS/html
Restart=always
RestartSec=30
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=nodejs-sitename
User=web-user
Group=www-group

[Install]
WantedBy=multi-user.target

Use systemctl daemon-reload to register the new unit file, then “systemctl start nodeserver.service” to start the service. Assuming everything works properly, use “systemctl enable nodeserver.service” to have the service start on boot.

Biffy Minestrone Soup Recipe

Biffy Minestrone Soup Recipe

Recipe by LisaCourse: DinnerCuisine: ItalianDifficulty: Easy
Servings

6

servings
Prep time

30

minutes
Cooking time

30

minutes

Ingredients

  • 3 Tbsp olive oil

  • 1/2 large onion, chopped

  • 15-20 baby carrots, sliced

  • 4 cloves garlic

  • 4 oz tomato paste

  • 1T chili garlic sauce

  • 1 cup potatoes, diced

  • 1/2 cup corn kernels

  • 1 cup green beans, diced

  • 1 tin cannelloni beans

  • 28 oz petit diced tomatoes

  • 4c broth

  • 2 tsp Italian spices

  • 1/2 tsp black pepper, ground

  • 1 cup elbow macaroni, cooked

Method

  • Put oil in pot and heat until shimmering. Add onion and carrot and saute for a few minutes.
  • Add garlic and heat until fragrant.
  • Stir in spices and heat until fragrant.
  • Add diced potatoes and saute for a minute.
  • Add in diced tomatoes, tomato paste, corn, cannelloni beans, and broth. Cook for 20 minutes
  • Add in green beans and cook for five minutes
  • To serve, add soup to bowl and stir in cooked elbow noodles.

Notes

  • Substitute whatever seasonal vegetables are available for corn and green beans

Chili Seasoning Blend

Chili Seasoning Blend

Recipe by LisaCuisine: MexicanDifficulty: Easy

Ingredients

  • 1/4 cup chili spice

  • 1 tsp roasted garlic powder

  • 1 tsp onion powder

  • 1/2 tsp crushed red pepper flakes

  • 1/4 tsp cayenne pepper

  • 2 tsp smoked paprika

  • 1 tsp oregano

  • 1 Tbsp salt

  • 1 Tbsp ground black pepper

Method

  • Combine all ingredients in a food processor and blend until powered.

Notes

  • I use this blend in my chili recipe and as the spice for taco/burrito fillings.

LDAP Authentication: Python Flask

This is a quick python script showing how the flask-ldap3-login module can be used to authenticate and gather user attribute values

from flask_ldap3_login import LDAP3LoginManager
from ldap3 import Tls
import ssl

config = dict()

config['LDAP_HOST'] = 'ad.example.com'

# Use SSL unless you are debugging a problem. Clear text port is 389 and tls_ctx needs to be removed from add_server call
config['LDAP_USE_SSL'] = True
config['LDAP_PORT'] = 636

# Base DN
config['LDAP_BASE_DN'] = 'dc=example,dc=com'

# User Base DN, prepended to Base DN
config['LDAP_USER_DN'] = 'ou=UserDN'

# Groups Base DN, prepended to Base DN
config['LDAP_GROUP_DN'] = 'ou=SecurityGroupDN'

# Server will be manually added to establish SSL
config['LDAP_ADD_SERVER'] = False

# Domain component of userprincipal name
config['LDAP_BIND_DIRECT_SUFFIX'] = '@example.com'

# Search scope needs to be subtree
config['LDAP_USER_SEARCH_SCOPE'] = "SUBTREE"

# Attributes to return
config['LDAP_GET_USER_ATTRIBUTES'] = ("mail", "givenName", "sn")

# Setup a LDAP3 Login Manager.
ldap_manager = LDAP3LoginManager()

# Init the mamager with the config since we aren't using an app
ldap_manager.init_config(config)

# TLS settings to establish trust without validating CA issuance chain. 
# Can use CERT_REQUIRED and ca_certs_file with path to cacerts that includes issuing chain
tls_ctx = Tls(
    validate=ssl.CERT_NONE,
    version=ssl.PROTOCOL_TLSv1,
    valid_names=[
        'ad.example.com',
    ]
)

ldap_manager.add_server(
    config.get('LDAP_HOST'),
    config.get('LDAP_PORT'),
    config.get('LDAP_USE_SSL'),
    tls_ctx=tls_ctx
)

# Validate credentials
response = ldap_manager.authenticate_direct_credentials('e0012345', 'P@s5w0rdG03sH3re')
print(response.status)
print(response.user_info)

Indoor hops?

Not really — but we’ve had a random week of nightly freezes since the hop plants arrived. Instead of planting them outside and keeping them covered, I’ve got them in the pots I use for seed starting and we’ll get them planted in the middle of this coming week. It was also a bit of an experiment — can you keep hop plants in little pots for a week?

Hops + 2 days

Hops + 5 days

They’re not growing anything like the hops out in the ground that we’re covering at night … but they appear to be doing well. And they should be happy enough until Wednesday when it looks like the cold snap ends.

Garden Expansion

We built a pair of raised beds near our back woods — it was a nicely sheltered location, but too shady to grow much. The space is limited, too; and we wanted to have more garden space. The first step was going to be tilling, but we encountered an old tree stump under the grass. A good bit of excavation later, it was a pine tree with a very twisted root system. And several >3″ diameter roots running both horizontally into the garden area and down farther into the ground. Soooo … that’s a no on tilling a big patch to make a garden.

We have the blocks from the existing raised beds, so we’re creating four one-brick-high raised beds in the front yard. We’re going to compost grass clippings, leaves, kitchen scraps, etc between the beds and create hills for additional garden space next year. We’ll move the soil from the two raised beds into these new ones, and we’ve got some additional compost from the past year.

The first step is deconstructing the existing raised beds

And we’re constructing four new, lower, beds with the blocks

We’ve got two beds completed, and hauled about a third of the blocks for the remaining two

We’ve got to level off the geothermal hill — it’s been settling for a few years, and we can add compost on top if the area happens to fall farther. Unfortunately, a big storm blew in this evening … so we gathered up our stuff and ran for the house!

Pants?

A friend pointed out that pants offer a little protection for me, but they are a lot of protection for you … So we can all stop wearing pants now, right? And protesting stores that require customers to wear pants! Freedom! Liberty!

Blueberries!

I’ve wanted to include a lot of permaculture in our home food production. Permaculture is basically creating a continuously agriculturally productive design. Trees, bushes, perennial plants are used to create a garden that is planted once and harvested for decades. I have some hazelnuts planted, and an apple tree from the locus year planting debacle. My idea is to add something every year instead of buying and planting everything in one season.

This year, I’m adding blueberries. In researching the purchase, we wanted to produce fruit this year (or, worst case, next). This meant buying 3 year-old plants. The local nurseries want 35$ per plant for 1-2 year old plants. Which … yeah, we’re not getting a lot of blueberries that way! I found a few places, though, that sell 3 year-old plants for about 14$ a plant (including shipping). I’ve got ten Hardyblue and ten Blueray plants ordered. We’ll have a lot of blueberries (although I’m sure we’ll lose some plants and won’t actually have 20).

In the future, I want to add pawpaw, raspberries, rhubarb, more apple trees, peach trees, and more hazelnuts.