Month: May 2025

canadian attorney clowning around and banging the gavel on his head

Court Games

Judge Boasberg is a rogue judge. He has found himself as the judge of many cases dealing with Trump. For some reason, the magic lottery machine picks his name at “random” when the case involves Trump.

While it is true that you should never attribute to malice that which can adequately be explained by stupidity, this guy is not dumb.

He made it through Yale to be given a Bachelor’s. He then completed a Juris Doctor at Yale, then passed the bar. He was in private practice from 1991 though 1996. In 1996, he became an Assistant US Attorney for D.C. After 6 years, he was made an associate Judge at the Superior Court of DC. This is a “state” level court.

In 2011, Obama appointed him a Judge of the District Court, District of Columbia.

I don’t care what your politics are, you don’t make it to this point without having some level of smarts.

So this is not something that can be explained away by stupidity, leaving malice as the most likely cause.

Boasberg was slapped down by the Supreme Court in April. The Justices said that he did not have Jurisdiction in the case.

He knew this. He knew it when the case came before him. He issued a Preliminary Injunction, called it a TRO, then allowed the administration only a short time to accomplish the impossible.

Having been put in his place by the Supreme Court, he then proceeded to hold the administration in contempt of court for failure to follow his TRO.

It works like this, a party requests a TRO, asking for something, “bring me the head of that troublesome priest.” The judge grants the TRO. Now, the party ordered to do bring the head refuses.

They are now in contempt of court. They appeal, the Appeals court says, “you can’t order them to execute somebody.” The party no longer has to cut the head of that troublesome priest. They are still in contempt of court.

That is the power of a judge.

That is what Boasberg did. He gave a court order. That order was not followed out because it was not possible, nor was it an order he had the constitutional authority to issue. He has the case law to back him, though. He knew the administration would refuse, and therefore he gets to slap them with a contempt charge.

Having found the administration in contempt, the administration appealed to the Circuit Court and requested an administrative stay by the district court.

We are used to seeing this in Second Amendment cases, the district court finds for The People, the judge knows the state will appeal, he issues a 30-day administrative stay of their order to allow the state time to appeal.

This judge denied the motion for an administrative stay.

He ordered the government to assert they have custody of the people in CECOT. This means that the administration can be ordered to present any of them in court. If the administration does not assert custody of the deported Alien Enemies in CECOT, they must provide this rogue judge some other means of ordering them to bring terrorists before him.

The only other option he “granted” was for the administration to offer up a scapegoat to be vilified and punished by this rogue court.

Here and concurrently in the Court of Appeals, Defendants seek an emergency stay pending appeal of this Court’s Probable Cause Order. See ECF Nos. 80 (Probable Cause Order), 88 (Mot.), 89 (Mot. Br.). The Court will deny the Motion. The Court does not believe that Defendants have made an adequate showing on the merits, nor convincingly shown they will suffer irreparable harm in providing the information required by the Order. The public interest, furthermore, weighs in favor of permitting the Court’s contempt inquiry to proceed. See ECF No. 81 (Probable Cause Op.) at 2.

Among other problems, Defendants’ arguments rely on a misconstruction of the Court’s directive. Having found probable cause that they committed criminal contempt, the Court required Defendants to choose one of two paths. See Order at 1. First, they can opt to purge their probable contempt and explain to the Court how they will do so. Id. In its Opinion, the Court observed that the “most obvious way” for them to do so would be by choosing to “assert[] custody of the individuals who were removed in violation of the Court’s classwide TRO so that they might avail themselves of their right to challenge their removability through a habeas proceeding.” Op. at 43–44. In offering the Government a chance to voluntarily assert custody of the people it placed in a foreign prison, then, the Order did not “forc[e] the government to successfully execute foreign diplomacy” in violation of the separation of powers. See Mot. Br. at 11. The Court expressly allowed, moreover, that Defendants could “propose other methods of coming into compliance.” Op. at 44. Whether to purge the likely contempt, and whether to do so by voluntarily asserting custody of those individuals in Salvadoran jail, is entirely up to Defendants. If they do not want to “make what was wrong, right,” Abrego Garcia v. Noem, 2025 WL 1135112, at *1 (4th Cir. Apr. 17, 2025), they can choose the second path: identify the individual(s) whose conduct caused the noncompliance. See Order at 1. Although the Opinion noted that the Court might eventually refer this matter for prosecution, see Op. at 44 (citing Fed. R. Crim. P. 42(a)(2)), we are not at that juncture. Their separation-of-powers arguments concerning any future prosecution(s), see Mot. Br. at 8–11, are therefore premature and misplaced.

For the foregoing reasons, the Court ORDERS that Defendants’ [88] Emergency Motion for a Stay Pending Appeal is DENIED.
J.G.G. v. TRUMP, 1:25-cv-00766, (D.D.C. Apr 18, 2025) ECF No. 91

Coding Styles and Methods

My formal education is as a computer scientist. I was lucky enough to get this education at one of the cusps of computer development.

My Mentor went through a computer science program just 4 years earlier. There were classes he took that were not even offered in my program. The change was in moving from a need to understand hardware to a place where understanding the hardware wasn’t important to computer science.

What this meant was that my Mentor could design a computer from the gate up, I still struggle with hardware design.

My education included understanding low level instructions, instruction timings, bit manipulation, data structures, semaphores, and a host of other low level concepts. It also included much higher concepts.

At the time, my program included a year-long class where we wrote a working compiler, a required class where we wrote an operating system, as well as all the languages of the day. We even had theory class, such as the class on proving a program correct.

In addition to the formal classes offered by the University, I participated in an intense 8-week course where I was taught how to apply the classroom theory to actual working systems. This was the “systems class”. It started at 0800, ran through to 1200 with no breaks. We had a lunch break from 1200 to 1300. Then classes continued from 1300 to 1700.

We had to turn in our assignment of the day at 0800 the next morning.

This is what a day was like on the third week.

Wake up on a table in the student workroom of the computer center. Collect our work, stumble next door to start our 0800 classes. At 1200 hoof it out of there 2 miles to the house, shower, change clothes, move it back to the computer center and get there before 1300.

Being more than 15 minutes late was failure.

Study and learn new topics from the instructors. At 1700, head out to get dinner. Get back to the computer center by 1830. Work on assignments and projects until the computer was shutdown for nightly maintenance at 0400.

Decide if an hour of travel time to sleep in a real bed was worth more than an extra hour of sleep. Claim a table and fall asleep.

Repeat the next day.

Structured Programming

It is hard for a modern programmer to understand what a huge breakthrough the concept of “if-then-else-end if” was. It was the first of our structured code.

Before we had that type of language structure, we used “if condition goto”. Which was even more confusing when you used the FORTRAN IV construct of “IF value goto1, goto2, goto3” where the goto used was based on if the value was negative, zero, or positive. And yes, there was way too much code that used that instruction.

I helped my father with his MBA by being the computer dude to help him with the software he was using. It was written in FORTRAN IV or III. It wasn’t uncommon to be reading a section of code, have a GOTO that took you somewhere else in the code, which then had another goto back to the place where we just were.

In some cases, the code would conditionally jump to that “patch” which would then jump back into the other routine. It was a mess.


if condition then
do something
else if condition then
do something else
else
do something entirely different.
endif

Structured programming has at its base the concept of block correctness. Every block must be well-defined, do one job, have a set of well-defined inputs and outputs.

If this is satisfied, then you can verify the correctness of that block. You can test the set of acceptable and unacceptable inputs and verify that you get the correct outputs. If this test succeeds, then you can mark the block as ‘good’.

You can combine blocks in sequence. If you are connecting blocks, then the preceding blocks must contain all the outputs that will be used by the following blocks.

You can use conditional structures to create a block that is composed of verified working blocks.

Building from Blocks

One of the things about using blocks, is that you can build iteratively.

To give an example, I am working on a website. The front page has a carousel of rotating “hero” images.

From this, I knew I needed to be able to upload an image. The carousel has a fixed aspect ratio, this meant that I needed to have images in this aspect ratio. I also know that the user will want to decide what part of the uploaded image they wanted to use for the hero image.

In simpler terms, this means that I needed the ability to apply simple cropping to an uploaded image.

There is a black box in my head. It has defined the “cropper” block to take as input an image, the current cropping, and the current canvas to draw on. That block will interact with the user. When the user finishes, the block will output (x, y, width, height) in image pixel coordinates.

There is a different block box that takes two HTML elements and uses them to generate the required inputs to the crop block.

Another block takes the output from the crop block and turns it into a post to the server, to update those values.

Here is the thing, I’m using an obsolete cropping package because it is “simpler” while I’m extending my TypeScript and JavaScript knowledge. But I will be able to replace it with a very modern version and none of the other code will break, as long as the inputs and outputs do not change.

Currently, when you save your changes, the code submits the modifications as form data, which causes the page to reload.

Piece Wise Progression

What this means to me is that I’m constantly testing small changes. I will write a block of code, compile, deploy to the test server, test the results, edit some more.

Saturday was a lazy day. I only performed this cycle 50 or so times.

Every time I get a block working better, I make a git commit.

Friday, I had a breakthrough. I managed to make drag and drop work to select a file for uploading. Created a thumbnail of it. This was all via simple HTML and TypeScript.

Progress was fairly slow on this, learning curve, but what I found interesting is that I would get to a point where I had a working image selection, and only then realize that I had not connected the save button to anything.

Once that was working, the edit process turned out to be more difficult than I expected. It was all working from before, but I needed to hook into the code from a different place. But because that edit process had well-defined inputs, it was merely a matter of creating the correct inputs and it all “just worked”.

Of course, once I click that save button, I found out that I wasn’t actually uploading the image. Which was another thing to fix.

That worked, and it turns out that the server side needed some changes.

But everything was working because the process was all about blocks. When a block didn’t do what I wanted, it was a simple process of checking the inputs for correctness, then checking the output for correctness. If input was good and output was bad, it was a logic error. Track it down and everything gets fixed.

Working On The Railroad

When we code, it is not uncommon to find that there is some exception which can’t be processed by “normal means”.

For example, you are expecting an integer, representing the width of something. You get a string instead.

You could go down a new path, or you can convert the string into an integer. I.e. “768” becomes, simply, 768. That’s simple enough.

But what happens if instead of 768 you get “100%”? The answer could be to go down a separate logic path to deal with width, height, x, and y as percentages.

The railroad method says that you treat the code as a railroad line.

There is the mainline, it is a single track running between two cities. If you have a fast train on the tracks, and it is followed by a slow train, that fast train will get held up behind the slow train.

The answer to this is sidings. Much like the passing lanes on a two lane road, a siding is used to shunt one train out of the way while another train passes.

When the fast training is getting near, the slower train is shunted onto a siding. It waits there until the fast train has passed, then continues down the siding and back onto the mainline.

You can write code this way. When there is a problem with the input, you are being shunted onto that siding. You can decide there is no way to continue and abort, throw an error, you can do something else to get yourself back on the mainline.

Using the “100%” example, the siding means that we will do whatever code is required to convert the 100% into an integer that meats the requirements. This could be as simple as looking up the size of the parent and using that size.

The 100% could mean that we want this size to be a match for the other size. I.e., if the natural size of the image is 640×480, 100% width could mean 640. It could also mean that if we scale the height to 75% of natural height, we want to keep the width as 100% of that natural height.

These logical choices are done, and that conversion takes place on the siding. After the conversion is properly completed, the code can join the mainline again and nothing on the mainline needs to change.

Hypocrite Liar Fake Name Tag 3d Illustration

Does This Sound Familiar?

This Representative is talking out of both sides of her mouth.

According to her, “they” went into the Delaney Hall premises, guided by the guards.

She claims that she has oversight authority to be there.

Let me see, what happens when you enter a federal property, look around, take pictures and selfies, then walk back out, thanking the cops on duty?

If I remember correctly, you get tossed in jail without bail to wait till a judge decides to hear your case. You are given an option to confess or to be returned to your cell.

The rest of the story is that the Mayor of Newark was arrested. He does not have any “oversight” authority.

The democrat representatives were there for a camera opportunity. Not oversight. I do not know if they even sit on a committee that oversees this facility.

So the good news, is these stunts are getting these showboating politicians arrested.

Prepping – Making Do

There’s a mindset, these days, that everything is disposable. If something breaks, just get another one. Toss the old one in land fill and ignore it. This is not a sustainable practice.

Use it up, wear it out, make it do, or do without.

Why did we become the strongest country in the world? We made do. We took everyone else’s outcasts, people who wanted to work and were motivated to become citizens, and we said “let’s do this.” Those people, coming into America, were coming here to become AMERICANS. They didn’t come to be African Americans or Cuban Americans or Chinese Americans or Polish Americans. They came here to be Americans, plain and simple. They came here because America provided (and still provides) a place for hard work and sacrifice to pay off in the creation of strong family and safe home.

Use It Up

If you buy something, use it up. It seems simple when you say it that way, but I have to ask you, how many times have you allowed that cabbage or bit of leftover stew in the back of the fridge until it turned into something approaching sentience? Too often, I’d wager. I’m bad at it myself, frankly. This is a basic thing that Grandma would have wanted you to know, though. If you’re in doubt, ask yourself: would Grandma be disappointed in me for doing this (or not doing it, as the case may be)?

Learn to turn little bits of leftover vegetables into something new. Learn how to make stews and soups. Learn how to dehydrate and can. Learn how to compost, too. If you have animals like chickens or goats or pigs, feed things to them rather than putting them in the trash. Make certain that every bit of food you purchase is actually eaten or preserved in some way.

This is how we end up with scrap quilts, by the way. When you buy (or thrift) fabric for clothing (or sheets or towels, or whatever), you will almost always be left with a handful of scraps. Sometimes they may be tiny, because you’ve patterned extremely well, and you can congratulate yourself. Still, stash away those scraps. They can be used to patch up clothing or sheets, or to fill holes in jeans. When you have enough scraps of whatever size, you cut them into a lovely pattern of squares or hexes or triangles, and now you have a quilt. Our grandmothers turned their leftover bits and pieces into huge sheets of stitched love that are now passed down from generation to generation. You, too, can do that.

Read More

Friday feedback banner, a man with a phone writing reviews

Friday Feedback

Once You See It …

Why Is It Slow?

We use multiple different server infrastructures. The paying clients run on cloud infrastructure, development and my pet projects run on internal infrastructure.

The internal infrastructure consists of a 2GB link to the outside. This connects to a dedicated PfSense box.

PfSense provides firewall, VPN, and load balancing. The box itself might need a bit more memory, but nothing horrible is happening with it.

PfSense uses HAProxy for load balancing. It does SSL offload to allow easy certificate maintenance as seen from the outside.

For web connections, it looks for one of two nginx process running on one of the servers.

Those nginx services run inside a container and connect to a dedicated shared network. They forward traffic to the correct container.

That container is running WordPress. It is configured on the correct network and connects to a MariaDB server on the external network.

That database is running on NVMe and has zero performance issues when tested.

The base code is stored in the docker container, the plugins, and media are stored in a mounted volume.

So, you request a page from The Vine of Liberty. That hits the firewall, which forwards it to a web server (nginx). The web server forwards the request to an Apache web server running in a container with WordPress installed. PHP within WordPress is configured to connect to the database for long term storage.

Media that is needed is loaded by Apache from the mounted volume of a Ceph distributed file system.

PHP that is on the mounted volume is loaded and cached.

This is running much too slow. I’ve tested so many parts of this, and I can not discover what the bottleneck is.

JavaScript Sucks

Over the years, I’ve gotten better and better at JavaScript. This week and last, I transitioned to TypeScript.

This is driving me bonkers. I know how to write a module. I know how to load a module and have it do something. I can see how other packages have exposed global items. What the heck do I need to do to make this work!!!!

Just another learning curve. Sometimes I get tired.

jQuery is so yesterday

For the new site I’m working on, I’ve decided that I will only support modern browsers on the internal side. This means I’m writing everything in pure JavaScript/TypeScript. It is working, but I still use jQuery syntax when I should be using JavaScript syntax.

And I miss my Makefiles.

Snope and Ocean State Tactical

Were both relisted yesterday. This makes 13 times they have been distributed for conference.

Mark Smith says this is good. Points out that the Dobbs case was relisted 12 times before cert was granted. This lead to the overturning of Roe v. Wade.

I’m tired of waiting for the Court to do the right thing.

They’re Suing John Roberts!

Yeah, the same way we sued Bruen, and they are suing Donald J. Trump.

They are suing these people in their official capacity.

In other words, they are suing the head of an entity. Roberts is being sued for some entity he heads, other than SCOTUS.

What can you do with a .357 magnum?

Turns out that with that old lever gun, I can vaporize a skull. My bone person is upset with me. I’ve learned to take headshots at most smaller animals to protect the pelt and meat. It was a short range shot, less than 30 yards.

It was a Hornady bullet with the plastic tip. I’m too lazy to go dig up my reloading log.

Question of the Week

When did you first suspect that the News might be lying to you?

When did you first find proof that the News was lying to you, in mass?

An image of a man's hand holding an open flame with a large fire in the background.

Where there’s smoke, there are arsonists

Ally and I have had some long conversations about winning the hearts and minds of the middle.

The common saying is, “Where there’s smoke, there’s fire.”

This is normally true. Sometimes it is not.

In 2016, my parents expressed their disgust for Trump. They were convinced that he was doing horrible things.

Today, there are people that scream and call him a felon. The “fine people” hoax still lives on.

If you are a normal person, you can’t help but be inundated with negative coverage of Trump.

His tariffs will destroy the economy! There is a recession coming! All those empty ships sitting in China means that the US economy is failing and prices are going to go through the roof.

What I see when I see all of those empty container ships is tariffs working. Those are sales China is not making. That is their economy burning to the ground.

But I can’t talk to those in the middle about it. Yes, it is my opinion. My friends that are thinking and on the left, can’t get past the constant barrage of “Evil Trump”!

They just tune out or they get TDS. My ex-friend went that way. It was Trump’s fault that Roe v. Wade was reversed, and that meant there would be no “reproductive care” for women.

It is years since that decision, there are still abortions happening in this country. In some places, more than before the Dobbs decision.

Most of all, I’m reminded of the people telling me that because there are so many accusations of Trump, there is so much smoke coming from the Trump Administration, there must be fire there.

What I saw were arsonists and smoke bombs.

FBEL – Capturing Minds

Right now, as we all know, the media is in a tizzy. At one time, they owned the airwaves, and everyone had to report whatever it was that the letter agencies (ABC, NBC, AP, etc) found out at the White House press room. All the “little people” were forced to get their news from the NEWS agencies. That’s not the case, these days. Leavitt has opened the press room to other media platforms, and routinely makes certain that people other than the letter agencies get to ask their questions. This makes Big Media very angry.

We can speculate about who owns Big Media, but it seems fairly obvious to most of us, I believe. In the end, it doesn’t really matter who owns them; what matters is that the “standard” news is being used to wage war. For those who’ve known this for a long time, you  may not realize just how difficult that is to swallow, especially if you’re generally a thinking person.

I grew up with news being the place to turn to for up to date, factual information. I could look at news on the television at 6pm, or I could look in one of the newspapers local to me. Sure, there were some less than savory newspapers, but we all knew they were only good for their page two girlie of the week. It was easy to know what was good news and what wasn’t. It was obvious for a number of reasons, and there wasn’t any confusion over it.

I consider myself a thinking person. I am not traditionally educated, but I have put a lot of effort into keeping myself educated. I’ve attended classes, both formal and informal, I’ve gotten certificates, I’ve always achieved good grades. I can think my way through most problems, even if I do still struggle with the math**. When Chris started telling me that the media was lying to me, I was disbelieving. Sure, Weekly World News was all made up, but ABC nightly news? That was just the facts. How did I know this? Because all of the news agencies reported the same thing. Statistically speaking, it is quite silly to think that the entirety of every news agency out there would be lying, and lying in much the same (or sometimes exactly the same) way. That would be a statistical anomaly the size of New Jersey.

It’s a hard mouthful to chew, the idea that ALL of the news agencies are telling whoppers every day. The problem, of course, is that anything they say could be true, or might not be. There must be a balance of actual facts thrown in there. It allows newscasters and stations to say, “Hey, look, we covered that thing at the library, all that was factual. What makes you think the rest of it isn’t?” Plausible deniability, I think it’s called. Regardless, it’s been quite the eye opener realizing that basically none of the news stations I’d counted on (even ones like AP) were accurate or to be trusted.

This brings me to the concept of capturing minds.

Read More

United States, Et al. v. shilling, Commander, Et Al. 24A1030

There is a battle of procedure that takes place in our courts. That is getting to a final result.

If the Supreme Court were to rule in favor of Trump in December 2028, it would not matter that he won. We would have lost.

That would be four years of waiting for a final result.

We watched and are watching this play out in the Second Amendment community. Duncan v. Bonta has been around for almost a decade at this point. It has been through the district court twice, the Ninth Circuit court multiple times, and the Supreme Court at least once.

The case has won at the District and Supreme Court, yet the relief sought by the plaintiff is still out of reach. In March 2025, the Ninth Circuit decided to twist the words of the Supreme Court to find that magazines are not arms and are not protected by the Second Amendment.

The State of California doesn’t care how long this case takes or how much money it costs to litigate. The district court enjoined the law back in 2017-2018. The Ninth stayed the injunction. That stay has remained in effect even now as the case has been remanded to the district court, ordering the district court to rule for the state.

As long as the status of the case leans towards the infringers, they are happy to delay.

To show how real this is, a district judge in New York issued a TRO enjoining the SAFE act (Bruen tantrum law). The state had that appealed within hours, even though a TRO is not appealable. The Second Circuit Stayed the injunction.

It took over a year before the Second Circuit finally ruled against The People and The Constitution, sending it back to the District Court for more litigation before the case can start up the chain to the Supreme Court, again.

Because that stay is in place, most of New York state is a gun free zone.

The left is using the same methods to stop the Trump administration. They do not care if they win or if they lose, as long as it doesn’t happen now.

They go court shopping until they find a court willing to issue a universal injunction, stopping the Article II executive branch.

Once the injunction is in place, they start slow walking things.

The Circuit courts are just as rogue in these locations as the District Courts. They are using the interlocutory state to excuse not staying the injunctions. “Just let it play out in court.”

The leftest Justices on the Supreme Court echo those words, “just let it work its way here through the normal process. There is no reason to rush this.”

This go around, the Trump administration has been ready and has been moving hard and fast. Multiple cases have made it to the Supreme Court, and the Supreme Court has issued opinions favorable to the Trump administration each time.

How are they favorable? In most of the cases, the Justices have ruled to allow the Trump administration to continue as they had intended, while the case works its way through the courts.

This means that the left is on the wrong side of that snail. They are the ones attempting to get the cases through as fast as they can. And it isn’t working for them.

In the few cases where the Justices have not issued a stay, they have chastised the lower courts or scheduled oral hearings quickly.

The case at hand.

A group of people suffering from gender dysphoria have been given medical release from the military. They sued in federal district court, asking for an injunction, which was granted.

This means that the military does not have the power to determine which service members are medical disqualified from serving.

The Supreme Court issued a stay against that injunction for the duration. The stay will remain in effect until the Supreme Court denies cert OR issues a final opinion.

We are winning, the courts are moving at breakneck speed, and it keeps looking good.

The other thing which is happening, is that the lanuguage of the Court is changing, they are getting less and less polite and more and more pointed in their correcting of the inferior courts.

The Weekly Feast – A Sallet for Fish Daies

Each summer, I spend an inordinate amount of time dressed up as a medieval kitchen drudge, cooking feast foods over an open fire in a cow field. Beside me, knights and dames fight with sword, pole arm, axe, and shield to display their prowess to huge crowds. I’m not much noticed during the fights, but before and after I always have a bevy of fair patrons coming by to ask questions and see what I’m up to. They’re always amazed to see the foods I produce, from pies to salads to stews and soups.

Last summer, it was beastly hot, and I didn’t want to do much cooking at one particular event. The heat was too oppressive to think of spending hours kneeling by the flames, tending to whatever morsel I felt like making. Instead, I retreated to the shade of the kitchen tent, and put together a cold meal for our fair knights and gentle ladies. This dish is deceptively simple, but incredibly tasty and pretty to boot.

Based on A Sallet for Fish Daies, aka a cold shrimp salad:

Ingredients:

  • 1 lb carrots, minced or shredded
  • 2 cups small shrimp, cleaned, cooked, & cooled
  • 1/2 cup finely minced red onion or green onion
  • 1 cup white wine vinegar
  • 1 cup olive oil
  • salt to taste

Mince your carrots with a knife or food processor, or do what I did and cheat: purchase the finely shredded carrots in a bag. In a bowl, combine the oil, vinegar, and salt, and whisk until thoroughly mixed. Drizzle the carrots with just enough of the dressing to lightly coat them, and then use a mold to shape the carrots. This could be a circle biscuit cutter, a fancy and large cookie cutter, or whatever you have on hand.

If you want a heavier onion flavor, use the red onion. Otherwise, use the green onion (whites and greens together). Mix together the onion and shrimp, then toss with just enough of the dressing to lightly coat them, and arrange them gently on top of the carrots. Serve chilled.

Notes:

A Tudor Rose.

Traditionally, this was made in the shape of a fleur de lys using a gelatin or pudding mold, but I skipped that entirely and just tossed everything together. The first time I made it, I used red onion, and the second time I used green onion. I liked both, but my taste testers (the various knights and dames) preferred the green onion one. I found it definitely looked more “fancy”, for what it’s worth. I also sprinkled some minced parsley over the top of the sallet, and garnished it with a carrot coin carved to look like a Tudor rose and a few sprigs of parsley. It was well received, and I could have made a lot more of it and it would have disappeared.

As we were outdoors (in the aforementioned cow field) with no modern cooling equipment, I made the salad in a metal bowl, and set that into a wooden bowl filled with ice. This kept it lovely and chill for most of the day. It was cool, refreshing, tasty, and the perfect foil for the sliced sausage, cheese, and bread that I served it with.