Author: Lisa

Coconut Shrimp

I hate sweetened coconut shreds. I don’t know if it is the propylene glycol or sodium metabisulfite, but there is an odd chemical taste to the stuff. When I happened across a recipe for making coconut shrimp at home, I was hesitant to try it. A lot of flavors get lost in cooking – I’ve tried unsuccessfully to get citrus hop flavours to come through in beer battered fried fish, and purposed a terrible tasting six-pack from Rogue for fish and chips because none of the off flavours are present in the finished meal. But I didn’t want to chance enduring that strange sweetened coconut taste. But you can make your own sweetened coconut shreds. I happen to have big flakes of dried coconut, so the first step is to run them through the food processor long enough to have small flakes. Measure the small flakes – I had two cups. Take an equal volume of water (here’s where the measurement gets funky – I used the dry measuring cup for the water so I don’t mean “1 cup of water per cup of small coconut flakes” as properly measured). Boil the water in a large saute pan, then add sugar until no more dissolves. Then stir in the coconut flakes. Reduce heat and simmer until the water is absorbed/evaporated. Voila, sweetened coconut bits. Edible ones!

Put a cup of flour in a bowl, and add about 1/4 t each of salt and pepper.

Put a few eggs into a second bowl, add a pinch of salt.

In a third bowl, mix a 1:1 ratio of panko bread crumbs and sweetened coconut flakes. Mix to combine.

Using thawed, peeled, deveined shrimp – lightly coat a shrimp in flour, then dip in egg. Place shrimp into the panko/coconut mixture, spoon mixture over shrimp, and lightly press. Gently remove shrimp from the pile and drop into hot oil to cook. Repeat, again and again and again 🙂 Remove when the shrimp float and have turned golden. (You may not want to use the largest shrimp you can find as the coating may get overcooked before the shrimp is done.)

 

Customer Service And IT Automation

A 3D printer filament manufacturer, MakerGeeks, has been running a series of awesome deals since Black Friday. We placed an order for several of their their “grab bag” packages – which I assume to be production overruns and whatever isn’t selling. We want to make a few large prototypes – if it’s an amalgamation of oddball colours … whatever, it’ll still be functional. We can pay extra to select the colour once we’ve got a finished model file.

A few hours after placing my order, I got a mass e-mail saying essentially “we sold a lot more stuff than we expected, it’s gonna take a while to ship”. Wasn’t buying Christmas presents, so waiting a while … whatever. Two weeks later, I haven’t heard a thing from them. Odd. I sent a quick e-mail asking for someone to verify that my order didn’t get lost or something. And never heard back from them. Waited another week and sent a follow-up.

Checked them out on the BBB site and found out they’ve got a really bad reputation for non-existent customer service And not shipping ‘stuff’. Sent an e-mail to all of the contacts listed on the BBB site (the phone number is unanswered and rolls to a generic message). Another week with no response, and I filed a BBB complaint mostly to increase the number of people saying “these people don’t bother answering e-mail and suck at order fulfillment”.

Additional irony – I’d subscribed to their newsletter when we placed our order. The five weeks of no communication from the company did include an almost daily e-mail with information on their holiday promotion. So they’re not bothering to ship my stuff, but they’re actively soliciting new orders!?!

What bothers me, though, is that a simple automated job would be the difference between initiating a charge-back and waiting for my order to ship. There’s an order database somewhere. Pull a list of all open orders & send a message that says increasingly comforting versions of “we haven’t forgotten about you, we just haven’t gotten to you yet”. If it were me, I’d probably include something like “We currently have outstanding orders for 25,839 KG of filament that we’re working through. The machines are running as fast as they can, and we’re shipping 2,848 KG a day. We want to thank you for your patience as we work through this amazing volume of holiday orders.”. Actual message content is almost irrelevant. The point is a few dozen development hours would be saving orders and improving the company’s reputation.

Instead I get nothing. With no faith that the company will ship me anything ever … and since I don’t want to try disputing a charge six months after it was made (had problems with that before – prepaid a CSA membership through PayPal, waited eight months for the new cycle to start, but I wasn’t on their list and they claimed to have no record of my payment. Tried to dispute it through PayPal and was told the window to dispute the charge was up … but I didn’t know I wasn’t going to be part of the new year until the first delivery!), I presented my communication and their complete lack of response to the credit card company. About 24 hours later, the charge-back was completed.

Peppermint Recipes

I wanted to make peppermint bark this year … so I’ve got a bunch of peppermint extract to use. Now I’m hunting peppermint recipes!

Chocolate Peppermint Bark

Equal amounts dark and white chocolate
Peppermint extract (~1/2 teaspoon per pound of chocolates)

Melt dark chocolate, mix in half of the peppermint extract, pour onto a lined baking tray and allow to set.
Melt white chocolate, mix in peppermint extract, pour onto dark chocolate. Sprinkle with crushed candy cane bits if desired. Score and allow to set.
Break into pieces.

“Shamrock” Shake

3 cups vanilla ice cream
1 3/4 cups whole milk
1/2 teaspoon peppermint extract

Blend all together. You could add green food coloring or spinach to turn it green. Serve w. whipped cream & cherry.

Peppermint Patties
7.5 cups powdered sugar (34 oz)
1/3 cup evaporated milk
1/3 cup light corn syrup
3 T coconut oil
1 teaspoon peppermint extract
1.5 lbs chocolate, copped

In a large bowl, beat together sugar, milk, corn syrup, coconut oil, and peppermint on a low speed. Shape the dough into two round circles, cover in plastic, refrigerate for an hour.

Sprinkle powdered sugar on silicon rolling mat. Roll out to about 1/4″ thick and cut with ~2″ cutter. Place cut pieces on baking sheet and freeze overnight.

Melt the chocolate over a double boiler. Using a fork, dip each patty into the chocolate then set on parchment lined baking sheets.

Maple Custard Tart

I’ve seen custard tarts topped with apple “roses” and wanted to make something similar for our Christmas dessert. Since we made our own maple syrup this year, I wanted to use a maple custard. We had a big bag of walnuts, so I used those for the crust.

Maple Custard:

  • 1.5 cups whole milk
  • 6 egg yolks
  • 1/2 cup maple syrup
  • 3T corn starch
  • 1t vanilla extract
  • 1/4t sea salt

Combine all ingredients in a double boiler (or a metal bowl on top of a pot). Select a medium heat (‘4’ on my cooktop). Whisking constantly, heat custard until it thickens. Remove from heat, cover with cling film, and refrigerate.

Apple Roses:

  • 2 apples
  • 1/2 cup fresh orange juice
  • 1/2 cup sugar
  • 1/2 cup melted butter

The instructions used a mandolin to slice the apples, I used a spiral food slicer. Worked well. Combine orange juice, butter, and sugar in a bowl and mix. Gently stir in apple pieces so they are covered. Let sit for 10 minutes.

To assemble – spread custard into cooled pie crust. Curl apple slices around themselves to make rose shapes and gently press into custard.

I used a walnut crust for this pie — it’s a great combination.

Ransomware

My company held a ransomware response through experiment recently – and, honestly, every ransomware response I’ve seen has been some iteration of “walk through backups until we find good files”. Maybe use something like the SharePoint versioning to help identify a good target date (although that date may be different for different files … who knows!). But why wouldn’t you attempt a proactive identification of compromised files?

The basis of ransomware is that it encrypts data and you get the password after paying so-and-so a bitcoin or three. Considering that NGO virus authors (e.g. those who aren’t trying to slow down Iran’s centrifuges) are generally interested in creating mayhem. There’s not a lot of disincentive to creating mayhem and making a couple of bucks. I don’t anticipate ransomware to become less prevalent in the future; in fact I anticipate seeing it in vigilante hacking: EntityX gets their files back after they publicly donate 100k to their antithesis organisation.

Since it’s probably not going away, it seems worthwhile to immediately identify the malicious data scrambling. Reverting to yesterday’s backups sucks, but not as much as finding that your daily backups have aged out and you’re stuck with the monthly backup from 01 Nov as your last “good” data set. It would also be good to merge whatever your last good backup is into the non-encrypted files so the only ‘stuff’ that reverts is a worthless scramble of data anyway. Sure someone may have worked on the file this morning and sucks for them to find their work back-rev’d to last night … but again that’s better than everyone having to reproduce their last two and a half months of work.

Promptly identifying the attack: There are routine processes that read changed files. Windows Search indexing, antivirus scanner, SharePoint indexing. Running against the Windows Search index log on every computer in the organisation is logistically challenging. Not impossible, but not ideal either. A central log for enterprise AV software or the SharePoint indexing log, however, can be parsed from the data centre. Scrape the log files for “unable to read this encrypted file” events. Then there are a myriad of actions that can be taken. Alert the file owner and have them confirm the file should be encrypted. Alert the IT staff when more than x encrypted files are identified in a unit time. Check the create time-stamp and alert the file owner for any files that were created prior to encountering them as encrypted.

Restoring only scrambled files: Since you have a list of encrypted files, you have a scope for the restore job. Instead of restoring everything in place (because who has 2x the storage space to restore to an alternate location?!). Restore just the recently identified as encrypted files – to an alternate location or in place. Ideally you’ve gotten user input on the encrypted files and can omit any the user indicated they encrypted too.

First Sewing Projects

Anya’s birthday present this year is learning to sew with a machine. I’ve already got sewing practice papers ready to go, and need to come up with a few projects for her to get started. She’ll do the project end to end (i.e. we’ll read through the instructions, figure out what it requires, shop for fabrics {shop may mean peruse mom’s stash} and hardware {certainly means peruse mom’s stash. Any component I don’t need quickly, I order direct from China via AliExpress for 80-90% less than retail.}, measure, mark, cut, sew. The only thing I’ll do is run the edges through the serger to ensure she doesn’t have frayed fabric.

So far, I have three projects for her:

A two layer gathered skirt – a project for the author’s five year old. I would love to find an all-over eyelet fabric in black and use it over a bright neon solid, but haven’t been able to find any all-over eyelet fabrics. So we’ll see what Anya likes. This teaches sewing straight lines & running elastic through a casing.

The ‘magic pillowcase‘ – I made one of these, so I know it’s pretty easy. This requires more straight line sewing, but adds complexity because the multiple layers of fabric need to be lined up. Also teaches the idea of getting some fabric out of the way so you can stitch things together.

A fabric belt with D-rings at the end. Turning a small tube right side out and top-stitching.

Capitalism Is Not Democracy (the inverse is true too)

A descendant of Walt Disney — one whose family has a load of cash and stands to inherit a load of cash herself — has a video on the Facebook page of NowThis … it is generally similar to their other videos with rich people saying “this tax bill gives me a HUGE percentage gain, might give you a little bit until your provisions sunset, and generally is a bad idea and you’re about to be screwed over with ‘needed to reduce the deficit’ cuts to social safety nets, education, infrastructure, research funding, small business funding, farm assistance programs, etc”. She, however, says that individuals voting for their own interest over a common good isn’t democracy. It’s anarchy. That’s an interesting distinction. And it made me think of how people often conflate free market capitalism and democratic governance.

The “invisible hand” principal of free market capitalism — not the phrase as it was actually used by Adam Smith but the generalized colloquial usage — is that the whole is optimized by each individual seeking to assure their own self-interest. A bit like maximum k sums in set theory – the largest possible sum of k numbers from a set is the sum of the largest k numbers in the set. While a specific individual may suffer misfortune, this assertion of optimization is microscopically reasonable. The economy grows when most individuals increases their value simultaneously.

Can the same be true of democracy? Does advocating for one’s self-interest promote societal optimizations as well? Or does looking only at one’s self-interest delve into anarchy? I believe the answer depends on how narrowly one defines one’s own self-interest. Abigail Disney offers a ironic example of this in her video – fuck over enough of the middle class and there won’t be Disney customers anymore. Maybe they’re rich enough to not care financially, but family members’ social standing is diminished by losing the company. The family legacy is lost. How does the individual weigh “keeping the fortune in the family” against “sustaining the company my grandfather helped create”? One problem in American politics is an incredibly narrow view — don’t believe in climate change, whatever. But you do breathe air and drink water, right? Why would you want companies to dump mining sludge into rivers and spew petrochemicals into the air? (Answer: Because you are thinking so narrowly that you concern yourself only with the natural resources within a few miles of your house … neglecting to consider how these things move around the globe.).

Unfortunately, “self-interest” is defined narrowly (e.g. a single issue voter), ignores long term consequences (e.g. anti-environmentalism), and fails to consider the realistic complex multi-variable picture (e.g. the interconnectedness of all things means Disney lady saves a couple hundred thousand on her taxes, but their company goes through reorg bankruptcy as disposable incomes drop in a few years).

Missing George Carlin

Hoping for a remake of Carlin’s 1972 bit “Seven Words You Can Never Say on Television”, the Trump administration has banned seven new words at the CDC. “Diversity,” “entitlement,” “evidence-based,” “fetus,” “science-based,” “transgender,” and “vulnerable.”

Well, not for that reason … but the ban seems to be true. That action is troubling in and of itself – a dash of groupthink and a heap of naïveté: let’s ban unpleasant (to us) ideas and just hope they go away. More troubling is the reported replacement for [science|evidence]-based: “CDC bases its recommendations on science in consideration with community standards and wishes”. Umm … the CDC — the Centers for Disease Control — is going claim its recommendations are made in consideration with community standards and wishes?!? What the fuck?? I wish cancer didn’t exist. Huh, didn’t help.

The FCC doesn’t actually have a finite list of banned words, rather they are guided by the courts view on where First Amendment protection exists or doesn’t. Did the Supreme Court hand down a concrete list of banned words? Of course not. Going back to Jacobellis v Ohio (1964) – where Justice Potter Stewart wrote “I know it when I see it” of hard-core pornography – obscenity and indecency are not clearly defined. Which makes broadcasting questionable material a risk — will someone complain? How will the FCC find on the complaint?

Anyone can submit a complaint to the FCC — I find high pitched made up word baby talk on supposedly educational children’s programming grossly offensive, I can complain to the FCC. Their investigators will likely find that the offense doesn’t reach the level of public nuisance and is thus not profane. Even the test for obscene content includes determining if the depiction has “literary, artistic, political, or scientific value”. Include a good enough story line and your hard-core porn isn’t obscene?

Deciding what to broadcast and what to censor becomes risk analysis. In radio, the risk analysis often considers *local* standards. That’s why, when driving across the country listening to various same-genre radio, words and phrases will be broadcast in some markets and censored in others. I’ve heard references to drug use scratched with varying impact – Petty can’t roll another joint but the song is mostly there or D12’s Purple Pills becomes a series of instrumentals and scratches. Even ‘radio edits’ are sufficiently edited in some markets but still have redacted bits in others. Syndicated radio programming – and most broadcast television – needs to consider what the most prudish broadcast area will consider offensive. I may live in a city where local radio broadcasts drug references or ‘shit’, but the national content may omit these to avoid offense elsewhere.

OK – extrapolate that to MEDICAL ADVICE. Medical advice should now take into consideration the ‘medicine is evil, God will cure us’ set? The ‘contraception means a moral failing’ set? Making America great, huh.

Kid Sewing

Anya wants a sewing machine — and while I try not to be a crazy overprotective “everything is going to kill you” mom … well, high speed pokey things coming at little fingers kind of freak me out. I kept her request in mind, though. Then this month’s Nancy’s Notions catalog had a finger-safe plastic foot in the front cover, complete with a young girl using the machine. That is exactly what I didn’t know I needed. So I set out to research a good beginner sewing machine for an almost five year old kid.

There appear to be two paths – a quasi-toy with a lot of safety features and simplified operation or portable sewing machines that are riskier to use and can be frustrating for few sewists. The deciding factor for me was the device’s useful life. I don’t want to buy something that will need to be replaced in a year or two when she’s more experienced in operating a machine. And I figure it’s best to learn everything at once rather than add the foot controller later — a bit like learning with a manual gearbox v/s learning with an automatic and then having to un-learn some bad habits that weren’t bad habits on an automatic. Plus Anya knows when we have a ‘real’ one and she’s got a ‘fake’ one for kids. I decided on the Janome Derby – a little five pound machine that has several stitch options. Happened to find it for sale at Michael’s for 60$ and they had a 20% off almost everything coupon — 51.60$ including tax!

I wanted to come up with some sewing practice for her, and I found a printable ‘sewing maze‘ online. Such an awesome idea – you haven’t “ruined” a project if you don’t sew exactly on the line. I printed a few copies for Anya (and a few for me). I could not find anything similar to practice sewing curves. Longer than I’d like to admit figuring out how to get Photoshop’s curvature pen to make a shape instead of a light blue ghost that doesn’t actually show up anywhere. (Once you’ve selected the tool, you have to change the ‘stroke’ setting from the white with a red line through it to, well, something. I nulled out fill, but I do not know if that was necessary.)

Once I could draw a smooth curve that prints instead of a fully printable squiggle or a lovely curve that disappears when you print or export, I have my own sewing practice sheets for curves and points! Now I just need to think of a cool project to do next.