Month: December 2017

Suet Feeder In Action

We’ve had a week of mid-teen highs and snow squalls. The birds have been enjoying the suet we made for them. We have a large upside down suet feeder for larger birds, a standard little green cage feeder for pretty much anything that happens by, and these little citrus rinds are perfect for small birds. Larger birds don’t really have anywhere to perch to eat from them, but the small guys swing on the rinds while they eat. We’ll probably be making more suet next weekend and refill these rinds, but the suet lasts a long time when it’s eaten by chickadees, nuthatches, and sparrows.

Citrus rind suet feeder for small birds

Broccoli Cheddar Soup

Broccoli cheddar soup is great on a cold winter day (especially when everyone’s coming down with a cold).


1 medium sweet onion
3 cloves roasted garlic
4 tablespoons unsalted butter
1/4 cup all-purpose flour
pinch hot pepper flakes
3 cups stock
4 cups milk
1 teaspoon sea salt
1 teaspoon freshly ground black pepper
1/2 teaspoon smoked paprika
2 cups broccoli florets
2 cups shredded broccoli stems
1 cup shredded carrots
14 ounces sharp cheddar cheese

Dice onion. Melt 1t butter in a cast iron dutch oven (big, heavy pot) using medium heat. Add onion and sauté until translucent. Mush the garlic and add to cooked onions. Sauté for 30 seconds, then remove from pan.

Add remaining butter to pan and melt, then stir in flour and hot pepper flakes. Stirring constantly, cook a medium roux. Slowly stir in stock and milk. Add salt, pepper, and paprika. Reduce heat to low and simmer for ten minutes.

Return onion and garlic to the pot, add broccoli and carrots. Simmer for twenty minutes – broccoli should be cooked but not mushy. Slowly stir in cheddar and allow to melt.

This is good served alone, but it is amazing served in bread bowls!

Random tip – roast garlic and caramelized onions keep well in the freezer. Whenever you have almost dodgy onions or garlic (especially if you grow your own and have a big harvest that cannot be used quickly enough), cooking and freezing them is a great way to avoid food waste and have these ingredients available quickly (i.e. you’re not surfing the internet for bad tips on how to speed up caramelizing onions).

For roasted garlic – when you’re cooking something else, drizzle olive oil on the garlic, wrap in aluminium foil, and toss it in the oven along with whatever else you are cooking. You can even turn the oven off and let the garlic continue to roast as the oven cools off.

Caramelized onions aren’t quite as easy – probably need to dirty a new pan (although I’ve cooked onions for a dish and re-used the pan to caramelize a bunch of onions) and they need to be sliced (a food slicer makes a quick job of this step). Plus you need to give them a stir every now and then. But if you’re already standing at the cooktop making dinner … watching an extra pan isn’t a big effort.

3D Print Server – OctoPrint

When we started setting up our 3D printer, I installed Cura on my laptop … but I don’t want to leave my laptop in the office & hooked up to the printer for a day or two. We could install Cura on the server and use it to print, but we’d also need to use something like xvnc so we could remotely initiate a print job and not need to stay connected to a redirected X session for a day or two. Thus began the quest for a server-based 3D printer controller. I think we’re going to use OctoPrint on our Fedora server.

There are a few prerequisities: python, python-pip, and python2-virtualenv, and git-core (well, you can just download/extract the project … but having a git client is quicker/easier).

In the directory where you want the OctoPrint folder, run “git clone”

Create a user for octoprint and add that user to the tty and dialout groups.

Create a python virtual environment: virtualenv venv

Install OctoPrint into the new environment: ./venv/bin/python install

Log into the octoprint service account (interactive logon or su), start a screen session for the server, then start the server with in the screen:

su – myserviceaccount
screen -d -m -S OctoPrintServer
screen -x OctoPrintServer

Then access the web service and continue setup – the default port is 5000. My next step is to write an init script so the server will auto-launch on restart … but this is functional enough to start printing.


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.


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.