We have had the bees for a few weeks now but I have not had the chance to post an update on how they are doing. Let’s use this blog post to catch everyone up.
The NUC I ordered arrived on May 4th and was installed without incident. Upon subsequent inspections I didn’t find a queen or eggs, but the hive was raising some emergency queen cells so I figured I’d let nature take its course. The worst case scenario is they swarm, but they might do that anyways so no harm in letting them take care of themselves.
We had a really nasty storm blow through a few days ago and the bees were mere feet from being squished. Literal feet from disaster, but the universe said “have a little treat” and they are safe.
I gave them a look a few days after the storm to make sure they were OK. They were doing fine. They had packed their box full of nectar, and I mean full. Even the bridge comb they made to hold the lid on was packed full of sticky, syrupy nectar. Since they had filled out maybe 6-1/2 of their 8 frames I added an empty super.
The next week (Yesterday relative to this blog post) I went to check on them. They seemed to be doing well, good numbers, saw young larvae and some brood. They had scraped the plastic foundation in the new super completely clean and used the wax in their bottom box. I’ll need to come back out with re-waxed frames to encourage them to draw the upper frames out.
The last thing I noticed is their nectar stores had lessened over the week so I put up their feeder.
This morning I was curious how much was left in their feeder after one day and it was completely empty and dry. They wasted no time drinking it down, so I refilled it.
I’ll have to melt down the bridge comb I pulled out of their hive and use it to re-coat some extra frames to hopefully encourage them to draw the foundation out. That could be its own blog post though!
If you think I’m exaggerating, go look at a map of the tornado path. Far too close for comfort.
Our trail camera caught a glimpse of the chaos after some limbs fell in front of the motion sensor.
There are trees fallen every which way. That might go to show how close we were to being in even worse shape, if the wind was whipping around like that.
The important thing is everyone is OK, including the bees. Nothing was lost that can’t be replaced.
The next step in the apiary journey is to have a home for the bee hives to live.
The wooded area of the property seems a great fit, but the land is nearly impassable with the overgrowth in the summer months. To help keep a working area clear we fenced off an area, laid down a cardboard layer, used some reclaimed wood around the edges, then covered the whole thing in mulch.
For the stand I spanned some wood between cinder blocks. I think it should do the trick!
Once done I set the swarm trap. I am using an “Interceptor Pro” I got off Amazon, and dabbled some “Swarm Commander” in it. Now we wait…
You can’t have bees without having a home for them.
After lots and lots of research I settled on an 8-frame Langstroth hive. I wanted to try a top-bar hive but I was given some good advice from a seasoned beekeeper that I should learn with the Langstroth style first. I also read some books (shout-out Thomas D Seeley, I don’t know him but have read his books) and learned that “Bees like to be cozy” so I opted for the smaller 8-frame instead of a 10-frame.
I also grabbed a swarm trap, but that came already assembled so that’s not half as fun to show off.
This pattern calls for two strands of yarn, pick out your favorite slipper colors. A multi-color and a mono-color yarn can pair well together.
I use a US-9 / 5-1/2mm needle set and 4-ply yarn for this work.
There are improvements that could be made, but this pattern holds true to her notes.
[Sole] Cast on 29 stitches, leaving a long enough tail to stitch up the ankle. 1. knit 9, purl 1, knit 9, purl 1, knit 9 2. knit across .. repeat until 40 rows (women) or 48 rows (men) .. increase 1 row each shoe size, end on an even row
Once done cut the thread leaving enough length to sew up the seam. Gather the threads on a needle and pull tight to close the toe, then sew up the seam. Ankle sizes differ, but stitch 1/3 to 1/2 of the way back to the base.
Finally, stitch the ankle together using your initial thread and tie off.
I told a few family members and now I have some supplies. There’s no turning back now!
I mean look at me, I look ridiculous, I love it.
I recently finished Honeybee Democracy and highly recommend it. I also got a copy of The Beekeepers Bible. I have been attending local (online because winter) beekeeping meetups trying to get my legs under me.
My plan is to try and catch a swarm this spring. Wish me luck.
So long story short I wanted to give another go at honey-garlic. I got some raw honey from the farmers market, grabbed some garlic from the grocery store, and found some adorable little jars for the fermentation process.
The jars will take a week or two to bubble and do their thing. Eventually they will look something like this, a more amber color. At this point you should be using it before it gets old.
Some time ago we had our lawn mowed. It’s a long story but we were in the process of saving up for a nice lawn mower and didn’t have the ability to mow our lawn ourselves. In any case, the lawn was mowed, then afterwards this mystery plant sprouted.
Here’s my thinking. This plant saw an opportunity and took it. By the time we had a lawn mower it was too large to mow. So, since I can’t kill it, I must care for it. It’s not a pest if it’s a pet!
Now we’re invested. The plant needs a name. Reginald sounds like a fine name. Here’s a few shots of Reginald as it grows.
I have been fascinated with fractals ever since I was little. My first experience with them was at the Renaissance Fair where a vendor was selling prints of his artist renditions of fractals.
I have been thinking that I kind of want one of those prints now, but since I am extra I wanted to do it myself. After all a little math isn’t that scary.
The Math
Iteration
The first thing to understand is iteration. Imagine you have a sequence of numbers, where each number depends on the number that came before it, that’s the idea.
Lets imagine our function takes two inputs, n which describes the “nth” place and a constant c. Our function would return it’s previous state squared plus the constant.
f(n+1) = n^2 + c
For a c of 1 you would get: 0, 1, 2, 5, 26… a sequence that continues to infinity. For a c of -1 you would get: 0, −1, 0, −1, 0… a sequence that does not continue to infinity.
Exit Conditions
I won’t pretend to know the math behind it, but we know that if a sequence ever reaches the absolute value of 2 then it will continue to infinity forever.
Lets use this criteria to define a new function. This new function will take a constant c and return the length of the sequence of numbers that stays below 2. Since this could repeat forever, lets define a maximum number of iterations.
The Code
There are many iterations (heh) of the code. But lets start with what we have covered so far:
// Define a sequence given a starting constant
function sequence($constant)
{
$next = $constant;
while (true) {
yield $next;
$next = $next**2 + $constant;
}
}
// Count the iterations in a given sequence
function iterations()
{
foreach (sequence() as $nth => $value) {
if ($nth > MAX_ITERATIONS) {
break;
}
if ($value >= 2) {
return $nth;
}
}
return 0;
}
It’s Never That Easy
We are not working with your regular numbers here. We are working with complex numbers. A complex number is a number that has both a real and an imaginary component. For example, 1+2i is a complex number.
So let’s rewrite our function to take complex numbers instead. To accomplish this I am using the markbaker/complex-functions library.
function sequenceWithComplexNumbers($real, $imaginary) {
$next = $test = new Complex\Complex($real, $imaginary);
while (true) {
yield $next;
$next = $next->pow(2)->add($test);
}
}
function countIterationsOfSequence($sequence) {
foreach ($sequence as $nth => $value) {
if ($nth >= MAX_ITERATIONS) {
break;
}
if ($value->getReal() >= 2 || $value->getImaginary() >= 2) {
return $nth;
}
}
return 0;
}
Let’s Use OOP
We are starting to work with enough code that encapsulating it into a class is starting to make sense. Let’s create a class that takes an input real and imaginary number, as well as a maximum number of iterations for the sequence. This class should represent both the sequence of numbers and the iteration count of the sequence. This isn’t the whole code but describes the interface:
interface Mandelbrot
{
public function __construct(
private float $real,
private float $imaginary,
private int $maxIterations,
) {}
public function iterations(): int;
public function sequence(): Generator;
}
Generating The Image
Since we are working with complex numbers we can fill in the complex number plane. We can say that the X axis is the real component, and the Y axis is the imaginary component. For each X and Y, we:
Create a Mandelbrot class instance for the given coordinate.
Generate the sequence given our positions complex c constant.
Count the iterations in the sequence.
Color the pixel in depending on the number of iterations.
For point #4 there, that’s the only real challenging part. I am using 256 iterations, or counting up to 0xff in hex. We can convert the number to grayscale by converting the iteration count from decimal to hexadecimal, then concatenating itself three times. This gives us 0x000000 to 0xffffff to work with, which is the entire gray color spectrum.
There may be a follow-up blog post about adding color, but for now lets stick with gray. Oh, and I am using the intervention/image library for generating images.
The code presented here is just one iteration that got me to the end result. The actual code uses the symfony/console component to handle inputs and outputs for generating a customizable image. This isn’t my finest work yet, I may publish the full code someday.
The featured image on this post is a 4k-resolution image of the set, generated by this code. It took an hour or two to generate. My real goal for the project was a print-quality poster version, which unfortunately is a little too large for distribution on a blog, but that took a few days to generate.