Skills

The Weekly Feast – Roast Vegetable Soup

With the arrival of cooler weather, soups are definitely back on my go-to list of meals. I love soup, because I can have All The Flavors without all the damn calories. When it comes to soups and stews, a little goes a long way. Roast veggie soup is one of those “make it with what you have” recipes. There’s no one right way to make it, and pretty much anything you put in will make it yummy! This is my version of Roast Vegetable Soup.

Ingredients:

  • 1 sweet potato, peeled and cubed
  • peppers (mix of whatever colors/heats you like), large diced
  • 1 large carrot, peeled and coined
  • 1 red onion, large diced
  • 2 large or several smaller tomatoes, whole
  • 1 head garlic, most of the paper peeled away and the top cut off
  • 1 to 2 cups of any combination of the following: cauliflower, kale, leeks, red skinned potato, celery, parsnips, turnip, chard, or whatever else you like
  • salt and pepper to taste
  • 1/2 tsp to 2 tsp each: cumin, thyme, oregano, paprika, marjoram, and rubbed sage
  • 4 to 6 cups vegetable, chicken, or beef stock
  • 1 can white beans, well rinsed

Preheat your oven to 400°F. Cover a large baking tray (lipped) with some parchment paper, then add in the potato, peppers, carrot, tomatoes, garlic, and other vegetables. Drizzle it all with olive oil, and sprinkle the vegetables with the spices. Toss it all together using your hands. Roast in the oven for 10 minutes, then flip all the vegetables over and roast for another 10 minutes. Add in any onions and/or leeks, stir well to cover them with the oil and spices, and continue to roast for a further 10 to 15 minutes, until the vegetables are tender and slightly caramelized. Remove them from the oven.

Set aside a small selection of the vegetables to add whole to the soup. Remove the tomato skins (they should simply slip off) and squeeze the garlic out of its skin. Add the tomatoes, garlic, and any vegetables you don’t want whole to a large soup pot and add in the stock. Bring the soup to a boil, then lower the heat and simmer for about five minutes. Turn off the heat, and blend the soup with an immersion blender. If you don’t have one, you can add it a bit at a time to a regular blender or food processor, but be careful because it will be hot.

Add in the reserved vegetables and the white beans, and bring to a simmer for 15 minutes to a half hour, to allow the flavors to meld. If you like dairy items, adding in a few pieces of parmesan rind at this point will make this a much more earthy, rich soup.

Serve in warm bowls topped with a drizzle of good olive oil, a drizzle of balsamic vinegar, and a sprig of fresh thyme or some croutons.

Prepping – When Violence Happens

I was scanning TikTok when Charlie Kirk was shot. One of my conservative ladies gave out the news on an unexpected “live” thingie, and I went looking, panicking. Yep, it’s real. Damn. God damn. God FUCKING damn!

My lizard brain is currently doing shots of imaginary coke right now, hopping itself up to keep me aware of everything going on around me. I keep seeing things out of the corner of my eye and it turns out to be dust motes. I’m trying not to shut myself down right now, but also not to get so caught up that I lose track of life.

Why’s this under “prepping” today? Well, we need to be aware that when violence happens, we tend to REact. And frankly, I don’t believe we (and when I say “we” right now, I mean everyone who isn’t an absolute nut job, regardless of political stance) can afford to react. Act, yes. React, no. Reaction is instant. It’s brought about by the aforementioned lizard brain. It engages our “fight or flight” mode, and if we are reacting, we are not thinking.

When we’re in a personal emergency, that’s a good thing. It gets the adrenaline going, gets you up and moving, and might save your life. But with something like this, it’s just not useful. It hypes us up with nowhere to go. And while I trust the people I generally hang out with to be “head on a swivel” without being nut jobs, I don’t trust everyone else. I know too many on the Left who are excited and happy over this, and too many on the Right who have been itching for an excuse and who are using Kirk’s shooting as that excuse and damn the realities. NONE of it is good. Not one damn motherfucking bit of it.

I have enough EMT training to know that he wasn’t going to survive that shot. He lost so much blood in that initial burst that there was simply no way. The second hint was that his team picked him up and moved him. They don’t do that if there’s a chance he’ll survive; instead they form a shield wall and let the EMT do their work. There are lots of rumors out there (see my previous post on rumors) regarding what happened, who did it, and the reasoning behind the assassination. Like Chris, I’m waiting. I need to hear good, quality information from reliable sources, as difficult as that may be.

I will tell you what I think happened. I think a nutjob (very possibly with a septum ring and ties to the Left, but no guarantees) decided that the First Amendment was not worth protecting, and decided to make Charlie a signpost about what happens to people who don’t lap up the narrative from the Left’s breast. I think it was meant to do a few things. First and foremost, I believe it was meant to enrage the Right and hopefully spur people into doing stupid things (those REactions). Second, it took out someone who was effectively teaching young adults to think for themselves (because Charlie always listened to people and encouraged them to support their points). Third, it has been done in a way that makes it a chilling effect.

Read More

The Weekly Feast – Lamb Souvlaki

When I was younger and still living at home, my father would take me out once in a while for dinner. Mom didn’t really cook, and we often had take-out, but dad and I had a special bond at that time. We always went for something mom didn’t like. Something garlicky, or with big sausages, or meat that wasn’t “standard” (ie mom ate beef, chicken, pork, and turkey, and not much else). There was a Greek place he’d take me to once in a long while, and there, I learned to love souvlaki. It’s easy to make, delicious, and relatively healthy (depending on how you make it).

Ingredients for lamb souvlaki:

  • 1.5 to 2 lbs lamb shoulder, boneless, cubed
  • 1 medium red onion, cut in half circles
  • olive oil (for drizzling)
  • juice of one lemon
  • souvlaki seasoning: oregano, thyme, and rosemary, garlic, paprika, cumin
  • salt and pepper to taste

Your lamb should be boneless, though technically you could rub a whole shoulder with the bone in and cook it that way. Trust me and get boneless butterflied leg of lamb. It’s expensive, and entirely worth it. Aldi has it for a reasonable amount. Your cubes should be about an inch across, and all close to the same size so they cook right.

You can buy Aldi brand or other brand souvlaki seasoning, and just sub it in for the dried herbs mentioned above. You want to be heavy handed, which is why I didn’t put amounts in. For 1.5 lbs of lamb, I use about a quarter cup of spice, and I mix all of the souvlaki seasonings mentioned above “about equally.” Salt and pepper I add at the end, and I tend to go lighter (the mixes may have salt and pepper in them, so check before adding those). You want to dump the seasoning on the cubed lamb and slivered half circles of red onion, add in a drizzle of the olive oil and the lemon juice, then get in with both hands and squish it around. Coat everything fairly evenly, but not so thickly that it’s like sawdust. Cover with plastic wrap and stick your meat in the fridge for a minimum of 1 hour, and a maximum of 8.

Make yourself some tzatziki while the meat is marinating.

Read More

chaotic mess of network cables all tangled together

Even the simple things are hard

The battle is real, at least in my head.

My physical network is almost fully configured. Each data closet will have an 8-port fiber switch and a 2+4 port RJ45 switch. There is a fiber from the 8-port to router1 and another fiber from the 2+4 to router2. Router1 is cross connected to Router2.

This provides limited redundancy, but I have the ports in the right places to make seamless upgrades. I have one more 8-port switch to install and one more 2+4 switch to install, and all the switches will be installed.

This leaves redundancy. I will be running armored OM4 cables via separate routes from the current cables. Each data closet switch will be connected to 3 other switches. Router1 and two other data closets. When this is completed, it will mean that I will have a ring for the closets reaching back to a star node in the center.

The switches will still be a point of failure, but those are easy replacements.

If a link goes down, either by losing the fiber or the ports or the transceivers, OSPF will automatically route traffic around the down link. The next upgrade will be to put a second switch in each closet and connect the second port up on each NIC to that second switch.

The two switches will be cross-connected but will feed one direction of the star. Once this is completed, losing a switch will just cause a routing reconfiguration, and packets will keep on moving.

A side effect of this will be that there will be more bandwidth between closets. Currently, all nodes can dump at 10 gigabits to the location switch. The switch has a 160-gigabit backbone, so if the traffic stays in the closet, there is no bottleneck. If the traffic is sent to a different data closet, there is a 10-gigabit bottleneck.

Once the ring is in place, We will have a total of 30 gigabits leaving each closet.  This might make a huge difference.

That is the simple stuff.

The simpler stuff for me, is getting my OVN network to network correctly.

The gist, I create a logical switch and connect my VMs to it. Each VM creates an interface on the OVS internal bridge. All good. I then create a logical router. This router is attached to the logical switch. From the VM I can ping the VM, the router interface.

I then create another logical switch with a localnet port. We add the router to this switch as well. This gives the router two ports with different IP addresses.

From the VM I can ping the VM’s IP, the router’s IP on the VM network, and the router’s IP on the localnet.

What I can’t do is get the ovn-controller to create the patch in the OVS to move traffic from the localnet port to the physical netwrok.

I don’t understand why, and it is upsetting me.

Time to start the OVN network configuration process over again.

 

Prepping – Saying NO.

We can talk about stocking up on mashed potatoes, learning how to make fires with a flint and steel, or being practiced at sewing our own clothes. They’re all really useful skills. But the one that’s going to get us, every single one of us (and sorry, but those of you who are loud and insistent about how it won’t be you, you’re the first to fall), is the lack of practice with the word “NO.”

But what do you mean, Allyson? We say no all the damn time. We’re great at telling the in-laws to fuck off, and the kids to get out of our hair. Each one of us has told a spouse no about a big household buy. We know how to say no!

The thing is, you don’t. I don’t. None of us do. And we need to get that through our thick, numskull brains. Like… right now.

If the shit ever really and truly hits the fan, “no” is going to be an important word. You’re going to have to say it. More importantly, you’re going to have to know WHEN to say it. And therein lies the problem. How do you determine who is good at what they do, and who is lying? How do you know a raider from a person who might benefit your survival?

There are people who I thought would “for sure” be in my survival group. Then the pandemic hit. Guess what? They’re out. I watched them do risky, stupid things, and in some cases, follow ridiculous orders that had no rhyme or reason. So they’re out. The pandemic changed the landscape of my apocalypse team in huge ways.

Over the last few years, I’ve learned how to say no in a lot of different situations. I’ve always been able to say no to the kids or my life partners, when it’s necessary. No, we don’t have money to buy junk food. No we don’t have any junk food. No, we’re not getting any junk food. No, you may not borrow the car. No, you can’t buy that motorcycle. No. That’s easy.

I’ve also learned how to say no to people on the internet. That one was surprisingly difficult. No, I don’t want to listen to your brand of religion. No, I don’t want to listen to your brand of politics. No, I don’t want to listen to your excuse for not doing any research before reposting that bullshit meme. No, I will not be treated that way by anyone.

Read More

United States constitution with American flag in background on rustic wooden table

Plain Text

I would love to own a machine gun. It would cost me $75 and ten minutes at the milling machine. Locate the selector switch hole, move to the deck a specific amount, and drill a hole. Flip over the receiver and repeat. Then install the parts.

Total time would be around an hour because I would be going slow. The longest time would likely be finding the reamer of the correct size.

Today it would cost me over $10k to buy a machine gun. Because I’m not allowed to manufacture a machine gun, not because of any law directly forbidding it, but because the Hughes amendment in 1986 closed the NFA registration to new machineguns.

That took the cost of an M16 from slightly more than the cost of an AR-15 to astronomical amounts today.

There are other machine guns I would love to make; I’d love to make an M3 grease gun for the Blue-Haired Faire.

But that is not the state of case law today.

The simple answer is that I should be able to go to court and say, “I want to manufacture a machine gun for my personal use. I would do so but for 18 U.S.C. §922. This is in violation of my Second Amendment protected rights.”

The next step that should happen is that the court does a lexical analysis. Are machine guns arms? The answer is obviously “Yes.”

Subsequently, the state must prove that machine guns are both unusually dangerous and uncommon. The Supreme Court has set the upper limit on “common” at 200,000. If there are more than 200,000 machine guns owned for lawful purposes, then machine guns are in common use.

Because the Supreme Court did the analysis in Heller, the common use test is all that must be done. Any other language in HellerBruen, or any other Supreme Court finding is outside the holdings of those two cases. That is still good case law.

This is not happening currently. The courts are tying themselves in pretzels to say that machine guns are not arms. Or that “in common use for lawful purposes” actually means “in lawful use for self-defense,” where “self-defense” is defined as pulling the trigger.

Regardless, the fact remains that machine guns are arms, they are protected by the Second Amendment, and they are in common use for lawful purposes. If the number in common use isn’t at the 200k mark, the case can be made that they would be in common use if the law didn’t prohibit making new ones for The People.

This means that there are cases being argued along these exact lines. And the district and circuit courts are doing the shuffle and twist to find machine gun bans constitutional.

The question becomes, do we want a machine gun case to reach the Supreme Court?

I point you to Rahimi. This was a case with a terrible fact pattern. Rahimi was an asshole wife/spouse/girlfriend beater who had no problems shooting at people, brandishing his firearms, and being a criminal thug. If his conviction for having a firearm while being a prohibited person had been overturned at the Supreme Court, he would still have been in prison. The firearms charge was just a topper on all the other charges he was convicted of.

Rahimi was good case law for us. The holding was fairly simple: if you are adjudicated a violent person, you can have your Second Amendment protected rights temporarily abridged. While the inferior courts continue to misuse this case, that was the holding.

If it had been Range that made it to the Supreme Court, we would have had a much more favorable fact pattern. He failed to report extra income he was earning doing odd jobs. He pleaded guilty to the charge. He served no time. The maximum amount of time he could have been sentenced to was exceeding a year.

Under the GCA of 1968, this makes him a “felon” and a prohibited person. There is no evidence he is a violent person. Since his conviction, there have been no other incidents to paint him in a bad light.

Garland did us dirty with Rahimi. He knew the fact pattern was horrible; he used that to get a holding that wasn’t as strong as it might have been in the Range case.

When you or I think of machine guns, we are likely thinking about M16s or an MP-5, or any of those cool things. Most machine gun cases in criminal court are about “Glock Switches.” These cases almost always have bad fact patterns. We don’t want these cases in front of the Supreme Court.

Which leads us to my example case: I file a civil lawsuit with the backing of the gun rights group. It will take a while to make it up the courts: 6 months in the district court another 8 to 12 months before the circuit court opines. Then a year or so waiting for cert., oral arguments, and then the opinion from the Supreme Court.

Just a few million dollars to exercise my God given rights.

What is the likely outcome before the Supreme Court?

I believe that Thomas and Alito would find for The People. Given what Kavanaugh said in Heller II, I expect that he would find for The People as well. Jackson, Sotomayor, and Kagan would find a reason to support gun control. That leaves three justices.

Roberts isn’t to be trusted on this sort of case. That leaves Barrett and Gorsuch. I don’t know where they will fall in that case. I’ve been impressed with Gorsuch and Barrett, but there is too much at stake right now.

What I want to see is a couple of Second Amendment cases make it through this court, with maybe an additional Trump-appointed justice. I would like to see where Barrett, Kavanaugh, and Gorsuch line up before I risk a machine gun case in front of them.

Suppressors, SBRs, and SBS are all ripe for the Supreme Court to take on. Those are tax issues. With a zero tax, there is no justification for the registration process. This means they become firearms regulated under the GCA of 1968, not the NFA of 1934.

Sensitive places is another good subject for the Supreme Court. Kavanaugh thinks we will be seeing a magazine and semi-auto rifle ban before the Supreme Court shortly.

I don’t know about those. I think that the Supreme Court is more likely to take a different subject for direct reasons and then clarify what “plain text” means with explicit language. I’d love to see part of the dict that reads, “Just as AR-15s are arms under the plain text of the Second Amendment, …” because that is a hammer to be used in the inferior courts.

The Weekly Feast – Cabbage and Beef Soup

Happy September!!!

We’re doing our best to eat healthy around here, but we also want food that tastes good. I love soup (hubby not so much, but oh well), and with the cooler weather arriving, I plan on making a lot of soups. You can pack a ton of flavor into soup that is almost calorie free, where making the “regular” version of it would blow your diet to smithereens. So soup, here I come! This one tastes sort of like the innards of a lasagna, honestly.

Ingredients:

  • 1 tbsp olive oil
  • 1 large onion (finely chopped)
  • 2 cloves garlic (minced)
  • 1 lb lean ground beef
  • Salt and black pepper (to taste)
  • 14 oz can chopped tomatoes
  • 6 cups shredded cabbage
  • 1 tsp paprika
  • 1 tsp garlic powder
  • 1 tsp onion powder
  • ½ tsp oregano
  • ½ tsp thyme
  • 1 bay leaf
  • 5 cups beef broth
  • Parsley (chopped)

Pre-heat a soup pot to medium-high heat and add the olive oil. Add in the chopped onion and cook for 2-3 minutes until they have slightly softened. Add in the garlic and let it cook for about 30 seconds, or until fragrant. then, add the ground beef, salt, and black pepper. Cook for 7-8 minutes, breaking the meat apart with a spatula.

Add in the chopped tomatoes, shredded cabbage, paprika, garlic, onion powder, oregano, thyme and bay leaf. Mix it all together very well. Pour in the beef broth, stir it, and let it simmer for 25 minutes or so until the cabbage fully cooks. A little longer is okay, as this stuff only tastes better as time goes on.

Season with salt and black pepper to taste. Garnish with parsley before serving.

Notes:

I put shredded cheese on the table to add some fat, because this soup does NOT have a lot of it. I did drain the ground beef before moving on with the recipe. You could add a dollop of cream cheese to this, or some spicy peppers, and it would still be good. If you switched out the tomatoes for one of those 14 oz cans of tomatoes and green chilies you can get in the Mexican aisle, then topped it with tortilla strips, you’d have Mexican tortilla soup. All I know is this stuff was delish, a huge bowl of it is only about 300 calories (if made as written), and maybe not even that much.

Prepping – Do-Something-Itis

One of the ways I go about criticizing a suggested government program or change in law is to simply ask questions of the proponent. Things like, “explain to me in very simple terms why you think this program will work?” And “what evidence is there that this proposed government program or change in law will make things better?” Through a series of questions, I can usually expose the flawed assumptions behind the proposals, peeling back the onion and get to the core rationale of most of these ideas, where an exasperated policymaker throws up their hands and says, “well, Paul, we have to do something.” And there it is.Paul T. Martin

It’s an interesting point of view. I’m watching a local community melt down because the school system screwed up in a big way and is $5mil in the hole. They all want someone to DO SOMETHING!!! Except that there’s very little to do, and it must be done in a very orderly fashion. In other words, they ARE doing something. They’re just not doing it at the speed the people in the community want.

There was a shooting. Now everyone wants guns banned (again) to “stop school shootings.” Except it wasn’t a school shooting, it was a church shooting, and the people calling for disarmament are people who don’t have any skin in the game (ie they have no guns)… and the shooter was part of THEIR community, not ours. But it doesn’t matter, someone has to DO SOMETHING!!!

This happens all around us. People assume that because we have information (true and otherwise) at the tip of our fingers, that a) it’s true, and b) we can act at the same speed as we can research. Both those points are incorrect. Between general lack of knowledge and the influx of deepfakes and AI writing, telling truth from fiction is difficult right now. And we cannot possibly act at the speed at which we’re reading. Not only is it physically impossible, it’s also stupid, because we have to take time to figure out what the right thing is to do.

I often find myself asking, what would they have done in the 15th century? the 18th century? the 40s? the 80s? I ask myself this because there’s this assumption that we now know better than we did in the past (not entirely inaccurate, I might add), but we can only put that into practice if we look at today’s problems as a reflection of the past. For instance, there may be many ways to handle the local school problem(s), and they are REAL problems, but rushing around like chickens with our heads cut off does nothing. The folks that are pausing to regroup, to find out where the mistakes were made, are harkening back to the 40s IMO. What happened? How did it get so bad? What are the three most likely successful paths forward? Of those three, which would the public prefer us to take, and why? THAT is how one moves forward with stuff like this, because “the public” doesn’t have a clue as to how this stuff works. Right now they’re crowing happily over their only competent board member choosing to resign, because “it’ll save them money!” That means the bulk of them don’t know that board members don’t get paid. That’s … a good example of why the current mess happened.

“Those who forget their history are condemned to repeat it.” This quotation is often attributed to the philosopher George Santayana, but it’s actually a misquotation. The actual quote is, “Those who cannot remember the past are condemned to repeat it.” The misquote assumes people learned the history in the first place. In today’s world, I suspect it’s assumed people didn’t learn history, or at least not truthful, accurate history.

What can people do when things like this happen? When a community melts down over something (real or imagined) there really isn’t much to do. You can throw your two cents in, but unless you’ve got special traction, it’ll likely fall on deaf ears. What you can do is hunker down, check your perimeter, and keep your head on a swivel. If you’ve got kids in the mix, move ’em somewhere else. Yes, that might mean schooling them at home (though at least in NH, that doesn’t mean you’re on your own, because VLACS is pretty bad ass, and I’m sure that other states have similar programs). It might mean tough times. Guess what? That’s life.

And therein is the difference between “them” and “us.” They will cry and scream and have temper tantrums, lay blame, point fingers… and do nothing. We will go in with possible solutions, and if the public solution doesn’t work, we’ll move on to the private one where we take care of our own. It doesn’t matter if it’s tough. It doesn’t matter if it strains us. We’ll do what’s right by ourselves and our kids, BECAUSE it’s right. And that’s enough to motivate us.

Learning new things

Another deranged asshole killed children at a school. 2 dead, 17 wounded. Nationwide headlines. The blood vultures leap to blame me for a shooting that took place more than a 1000 miles awy.

Meanwhile, CBS News is running a headline on August 28, 2025: “6 dead, 27 hurt in Chicago weekend shootings, police say.”
6 dead, 27 hurt in Chicago weekend shootings, police say

I would rather not deal with it today.

OpenStack

Over the last month, I’ve been dealing with somebody who has not kept up with the technology he is using. It shows. I like to learn new things.

For the last two years I’ve been working with two major technologies. Ceph and Open Virtual Networks. Ceph I feel I have a working handle on. Right now my Ceph cluster is down because of network issues, which I did to myself. OVN is another issue entirely.

A group of people smarter than I looked at networking and decided that instead of doing table lookups and then making decisions based on tables, they would create a language for manipulating the flow of packets, called “OpenFlow.”

This language could be implemented on hardware, creating very fast network devices. Since OpenFlow is a language, you can write routing functions as well as switching functions into the flows. You can also use it to create virtual devices.

The two types of virtual devices are “bridges” and “ports.” Ports are attached to bridges. OpenFlow processes a packet received on a port, called ingress, to move the packet to the egress port. There is lots going on in the process, but that is the gist.

The process isn’t impossible to do manually, but it isn’t simple, and it isn’t easy to visualize.

OVN adds virtual devices to the mix, allowing for simpler definitions and more familiar operations.

With OVN you create switches, routers, and ports. A port is created on a switch or router, then attached to something else. That something else can be virtual machines, physical machines, or the other side of a switch-router pair.

This is handled in the Northbound (NB) database. You modify the NB DB, which is then translated into a more robust flow language, which is stored in the Southbound (SB) database. This is done with the “ovn-north” process. This process keeps the two databases in sync with each other. Modifications to the NB DB are propagated into the SB DB and vice versa.

All of this does nothing for your actual networking. It is trivial to build all of this and have it “work.”

The thing that has to happen is that the SB database has to connect to the OpenvSwitch (OVS) database. This is accomplished via ovn-controller.

When you introduce changes to the OVS database, they are propagated into the SB database. In the same way, changes to the SB database cause changes to the OVS database.

When the OVS database is modified, new OpenFlow programs are created, changing the processing of packets.

To centralize the process, you can add the address of a remote OVN database server to the OVS database. The OVN processes read this and self-configure. From the configuration, they can talk to the remote database to create the proper OVS changes.

I had this working until one of the OVN control nodes took a dump. It took a dump for reasons, most of which revolved around my stupidity.

Because the cluster is designed to be self-healing and resilient, I had not noticed when two of the three OVN database servers stopped doing their thing. When I took that last node down, my configuration was stopped.

I could bring it back to life, but I’m not sure whether it is worth the time.

Now here’s the thing: everything I just explained comes from two or three very out-of-date web pages that haven’t been updated in many years. They were written to others with some understanding of the OVS/OVN systems. And they make assumptions and simplifications.

The rest of the information comes from digging things out of OpenStack’s networking component, Neutron.

I have a choice: I can continue down the path I am currently using, or I can learn OpenStack.

I choose to learn OpenStack.

First, it is powerful. With great power comes an even greater chance to mess things up. There are configuration files that are hundreds of lines long.

There are four components that I think I understand. The identity manager, Keystone. This is where you create and store user credentials and roles. The next is the storage component, Glance. This is where your disk images and volumes are accessed. Then there is the compute component, named Nova, which handles building and configuring virtual machines. Finally there is the networking component, called neutron.

For the simple things, I actually feel like I have it mostly working.

But the big thing is to get OVN working across my Ceph nodes. That hasn’t happened.

So for today, I’ll dig and dig some more, until I’m good at this.

Then I’ll add another technology to my skill set.

The Weekly Feast – Tofu Wraps

I realize not everyone likes tofu, but let’s face facts: it’s cheap, it’s relatively healthy, and you can cook it in a zillion different ways. I’m in the process of learning how to use it for more meals, and so I’m going to share some of those recipes (the good ones) with you. This one in particular was so yummy that even my tofu-hater was willing to have it again!

Ingredients:

  • block firm tofu, drained
  • ¼ cup soy sauce
  • 1 tbsp dark brown sugar*
  • 2 tbsp unseasoned rice vinegar
  • 1 tsp toasted sesame oil
  • 1 tsp red pepper flakes
  • 1 tsp fish sauce (optional)
  • 2 tbsp cooking oil
  • 1 tbsp ginger, minced
  • 2 cloves garlic, minced
  • lime juice, for seasoning
  • wraps or pitas, for stuffing

Start by wrapping up your tofu in a lint free towel or cheesecloth, and putting it onto a cutting board. Place a cast iron skillet or a baking sheet weighed down with something heavy on top on top of the tofu, and let it drain for at least 15 minutes, or as long as 45 minutes. Don’t skip this, as it helps with the texture of the tofu.

Crumble the pressed tofu into a bowl using your fingers. You want small pieces, with none larger than a pea.

In a separate bowl, whisk together the soy sauce, sugar (*you can use Splenda brown sugar blend or any other sweetener you prefer if you don’t like the regular stuff), vinegar, sesame oil, red pepper, and fish sauce (or if you don’t like fish sauce, you may sub in Worcestershire sauce or mushroom ketchup for umami). The sugar may not fully dissolve, and that’s okay. It will once you begin heating it later in the recipe. Do your best!

In a large cast iron skillet or other nonstick pan, heat the cooking oil over a medium high heat. Add in the tofu, shake it to make an even single layer, and let it cook without stirring until it crisps up and is deep golden brown on the bottom. This can take 5 to 7 minutes. It’s okay to peek to see how it’s doing, but don’t stir it up until it forms that crispy bottom. Once it’s crisp, stir it up (breaking it up if necessary), and try to flip over the pieces to crisp the other side. You want the entire batch of tofu to be crispy, which requires you to let it sit and cook in the oil. It shouldn’t take too long, though.

Once the tofu is crispy, add in the ginger and garlic and stir gently until fragrant. This should take a minute or less. Add in the soy mixture, and continue to cook until the liquid essentially evaporates. This may take up to 10 minutes, but more likely will only take 5 minutes or so.

Spoon the tofu into the wraps or pitas, and add any garnishes you like (such as cilantro leaves, shredded lettuce, tomato, hot sauce, etc.). Top with a light squeeze of lime, then serve.

Notes:

The spicy hot mixes so well with the sweet in this! Too often, tofu is served squishy, and this avoids that problem. If you find that you can’t get a good crisp on the tofu crumbles, you can try dusting it all with a teaspoon or so of cornstarch and then just hand mixing it lightly before frying it. The cornstarch helps it crisp, but also adds to the calories, so avoid it if you can.