Drone Army

Over the weekend, when it was negative five degrees, our neighbor’s power went out in the middle of the night. Some trees along the line grew into the power lines and had been abrading the line for some time, and a handful of arborists had to come out and try to trim the tree back. In the dark. At negative five degrees. Not the most fun job I could imagine, and the ironic this is it was the same team that had been out in the summer to clear trees along a stretch of the power lines a bit farther down.

The problem, it seems, is that it’s terribly time consuming to have arborists walking along the line to see where things actually need to be cut. Instead they just hit every section once per unit time. Sometimes that’s a quick couple branches snipped in a hardwood grove. Sometimes that’s serious maintenance in softwood groves. And sometimes delta-time is too long for, say, our line of pine trees. And sometimes the team doesn’t do a particularly good job of trimming the trees.

Made me wonder about having drones fly along the line – you’d still need someone to drive out, and I’d recharge the batteries in the van/truck so they’d be ready to go when I got to the next site. A single person flying a drone over a stretch of power lines could generate more realistic work orders for the arborists – skip the bits that didn’t grow much, realize these pine trees are endangering the lines before you had to call out a crew on Sunday night. They could also run through the same line post-maintenance and verify the work was done well.

Home Security Drone

We’ve conceptualized home security drones for some time with autonomous programming that instructs the drones to return to a charging station when their batteries become depleted. Feed the video back to a platform that knows what the area should look like and alert on abnormalities.

The idea of a drone patrol is interesting to me because optimizing the ‘random walk’ algorithm to best suit the implementation is challenging. The algorithm would need to be modified to account for areas that other drones recently visited and allow weighting for ease of ingress (i.e. it’s not likely someone will scale a cliff wall to infiltrate your property. A lot of ‘intrusions’ will come through the driveway). Bonus points for a speaker system that would have the drone direct visitors to the appropriate entrance (please follow me to the front door) — a personal desire because delivery people seem to believe both our garage and our kitchen patio are the front door.

This is a great security solution when it’s unique, but were the idea to be widely adopted … it would suck as a home security implementation. Why? Drones with video feeds sound like a great way to deter trespassing. But drones have practical limitations. Home break-ins would be performed during storms. Or heavy snowfall. Or …

What if the drone charging base has wheels – during adverse weather, the drone can convert itself into an autonomous land vehicle. I’d probably include an additional battery in the base as the wheeled vehicle traversing land would use more energy. And there would be places a wheeled vehicle could not travel. The converted drone would be able to cover some of the property, and generally the area closest to the structures could be traversed.

The Fakies and Rushdie

I may not be a stable genius, but I know enough history to know an unpopular figure with a large counter-following is not going to reduce interest in a book or media outlet by condemning it. Great bit of showmanship for the 20% or so who actually enjoy the ‘burn it down’ approach to governing, but sending cease-and-desist letters trying to bar distribution of a book or identifying a media outlet / show / individual as the pinnacle of “fake news” is counter-productive. As evidenced by the publisher moving up the release date to hit shelves during the invented controversy.

Random curiosity makes people want to experience forbidden things. I sat in a radio station that had a little box with a button. Taped to the box was a sign that said “DO NOT PRESS THIS BUTTON”. Now there was a fairly large board in the studio, along with turntables, DAT players, and CD players. There were probably a good hundred buttons in that studio. I pressed a good number of them to play a specific song or switch to a specific input, but I was absolutely never inclined to randomly hit any of those buttons. Except the one with a sign. Every time I was in that studio, I had to resist the temptation to hit THAT button. Morbid curiosity – it quite evidently does something bad, but how bad? Personally, I just asked the station manager what the button did – it controlled the transmission to the tower. Turn it off, the station goes off the air. (Perfectly valid question: why in the hell is that button located in the studio? No one knew, but I assume there had to be some mechanism to drop broadcast in an emergency. Otherwise why wouldn’t the button be locked in the manager’s office?) Why not put a sign that says why the button needs to be left alone? Everyone in the studio has an interest in the station being on air, and maybe someone would think it a funny joke to turn the broadcast off at the end of their shift so the next guy is silent … but that’s an HR problem to me (i.e. cancel the miscreant’s show). I wouldn’t have been the least bit tempted to hit the button that said “BUTTON NEEDS TO REMAIN ON FOR STATION TO BROADCAST”.

In trying to explain my belief to the station manager, I cited Salman Rushdie’s Satanic Verses. It wasn’t a bad book. Midnight’s Children was well received, and I had read it because it appeared on a list of Man Booker Prize for Fiction winning novels. Same reason I read Something to Answer For and Saville. Wasn’t interested enough in the author that I followed his works, and this was before database driven promotions where I could just supply my e-mail address and be notified whenever an author hosts an event or publishes a new book. There were a finite list of authors I found interesting enough to look for at the local book store. Until the uproar. Book burnings in the UK, although that was a little Fahrenheit 451 to me it wasn’t enough to prompt me to buy the book. Then came riots in Pakistan. And Ayatollah Khomeini issued the fatwa. I absolutely had to know what was so sacrilegious that it was worth rioting and killing a man over. The book, and its author, became generally recognizable based on the objection to his book (and somewhat who was objecting).

Dan Brown’s Da Vinci Code is another example of popularizing a work through objection. Cardinal Bertone said not to buy the book. Father Cantalamessa, at an Easter service in St Peter’s basilica no less, spoke indirectly about the book “manipulat[ing] the figure of Christ under the cover of imaginary new discoveries”. Catholic groups organized boycotts of the movie. Now the movie itself was already a big-budget affair that would have been promoted by the studio … but how many non-Catholics had their interest piqued by the fact Catholics considered the story to be rotten food for the soul? When the Vatican banned Angels & Demons from entering the Holy See and any church in Rome, I wanted to see what made that book worse than Da Vinci Code.

So while I am looking forward to Trump’s Fake News Awards on Monday – especially as an exercise in trying to limit freedom of the press – I essentially consider the award ‘losers’ to be paragons of forthright reporting. Not exactly what Trump was going for.

Spectre & Meltdown

The academic whitepapers for both of these vulnerabilities can be found at https://spectreattack.com/ — or El Reg’s article and their other article provide a good summary for those not included to slog through technical nuances. There’s a lot of talk about chip manufacturer’s stock drops and vendor patches … but I don’t see anyone asking how bad this is on hosted platforms. Can I sign up for a free Azure trial and start accessing data on your instance? Even if they isolate free trial accounts (and accounts given to students through University relationships), is a potential trove of data worth a few hundred bucks to a hacker? Companies run web storefronts that process credit card info, so there’s potentially profit to be made. Hell, is the data worth a few million to some state-sponsored entity or someone getting into industrial espionage? I’m really curious if MS uses the same Azure farms for their hosted Exchange and SharePoint services.

While Meltdown has patches (not such a big deal if you’re use cases are GPU intensive games, but does a company want a 30% performance hit on business process servers, automated build and testing machines, data mining servers?), Spectre patches turn IT security into TSA regulations. We can make a patch to mitigate the last exploit that occurred. Great for everyone else, but doesn’t help anyone who experienced that last exploit. Or the people about to get hit with the next exploit.

I wonder if Azure and AWS are going to give customers a 5-30% discount after they apply the performance reducing patch? If I agreed to pay x$ for y processing capacity, now they’re supplying 0.87y … why wouldn’t I pay 0.87x$?

5th Birthday Cake

I made a cake with red beets for Anya’s birthday cake. I roasted the beets instead of boiling them. Then replaced the espresso with beet juice (mostly because I had it in the pan after roasting the beets). Finally I used 7 oz of carob chips along with three tablespoons of a triple cocoa powder blend. To make it a little fancier, I made a small layer cake with the mascarpone between the layers.

I covered the cake with a stabilized whipped cream flavoured with raspberry and added fresh raspberries to to the top. The cake what what I imagined a red velvet cake was before it became white cake with red dye – a deep reddish brown colour. Very moist and dense in spite of the whipped egg whites folded into it.

Raspberry Whip Cream

1 cup heavy whipping cream
1/2 cup fresh raspberry purée (seeds strained out)
1 packet unflavoured gelatin
2 tablespoons superfine sugar

Dissolve gelatin in the raspberry purée.

Begin whipping the cream in a stand mixer. Slowly add in the sugar. Leave the mixer run and heat up the gelatin per instructions. Allow to cool a bit but don’t let it set. Drizzle raspberry mixture into cream and continue whipping to the soft peak state.

Since I was using this as a cake ‘frosting’, I immediately applied it to the cake and allowed it to set on the cake. Before the gelatin set:

After gelatin has set:

One Pot Kale and Pasta Dish

I love this pasta recipe – the original, from Cook’s Country, includes a pound of sausage and uses chicken stock in lieu of vegetable stock. The kale reminds me of brewing beer — how long the hops boils informs what type of fragrance / flavour it imparts in the beer. Added at the beginning and boiled for near sixty minutes, you get bittering flavors without aromas. Added near the end of the boil, you get aroma without bitters. Here you add some kale at the beginning of your ‘boil’ and reserve some kale to remain a little firmer.

I use a mise en place technique when cooking this recipe. Watch any TV chef and they’ve got pre-measured and pre-chopped ingredients in little bowls. When the recipe step says to sauté the onions, they dump the ready-to-go onion bits into the pan. This process speeds up filming – they aren’t paying three dozen people per hour to record the chef chopping an onion, dicing carrots, and measuring out six cups only to edit those bits out later. But professional chefs use a similar technique to organize the cooking process. It also makes the cooking process more relaxed – you aren’t trying to chop your kale while stirring to keep the onions from scorching.

Putting each component into its own little bowl like a TV chef looks cool but it makes a LOT of extra dishes! I have little piles of chopped veggies around the cutting board. Large volume components that aren’t dangerous uncooked (i.e. the kale here), I put in one of the bowls I’ll use to serve dinner. If my meal has a few flakes of uncooked kale and Anya has a few extra shreds of Parmesan cheese … not the end of the world. Cannellini beans, drained and rinsed, remain in the strainer. Pasta bag opened but sitting upright on the counter.

Cook’s Country One Pot Sausage, Kale and White Bean – Vegetarian Modification

Ingredients

2 Tablespoons extra-virgin olive oil
1 onion, chopped
1 (15-oz) can cannellini beans, drained and rinsed
2 roasted garlic cloves, crushed
1/2 teaspoon dried Italian spices
6 cups vegetable stock
16 oz orecchiette
12 oz chopped kale
1 oz Parmesan cheese
Salt & pepper

Method

1. Heat 1 Tablespoon of olive oil in a Dutch oven over medium-high heat. Add onion and beans and cook until onion is lightly browned, about 5 minutes. Stir in garlic and oregano and cook until fragrant, about 30 seconds.

2. Stir in broth and bring to a boil. Stir in pasta and half of the kale. Cover, reduce heat to medium, and simmer for 8 minutes. Add remaining kale on top of pasta, without stirring, and continue to cook until kale is just tender, about 4 more minutes.

3. Stir to incorporate kale into pasta. Simmer uncovered until most of the liquid has been absorbed and the pasta is cooked, 4 to 8 more minutes. Off the heat, stir in the cheese. Season with salt and pepper to taste.

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).

Ingredients:

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 https://github.com/foosel/OctoPrint.git”

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 setup.py 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
/path/to/OctoPrint/venv/bin/octoprint

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.)