An unusually dry May has
its pros and cons. On the plus side, if the summer stays like this, our
garden may bypass its usual wide range of fungal diseases. And, already,
the weeding pressure is much lower than in normal seasons...
...because the weed seeds simply aren't sprouting. Unfortunately, unless I give them some TLC, neither are the vegetable seeds.
Usually, the only times I have trouble with seed germination are in early spring (pushing the envelope with cold soil) and in midsummer (when I plant cool-loving fall crops that aren't impressed by summer heat). But, this year, I'm having to replant some of my usually dependable vegetables --- like green beans and sweet corn --- because even the sprinklers aren't enough to get them off to a good start. Heaven forbid I try to plant (the way I usually do) outside the spread of our irrigation system.
Luckily, the lack of a spring this year is actually working in my favor. It was cold so late into the so-called spring that I started lots of transplants inside, and most are loving their new habitats in the garden. Those pre-sprouted beans I mentioned a few weeks ago failed miserably --- only three of the nine plants survived --- but I've been snipping off a few basil leaves here and there for the last two weeks, and our pepper plants are up and running.
Meanwhile, the summer vegetables that I started before the weather turned dry --- either under quick hoops or just early in the garden --- are also doing well. I hope to see cucumber blooms next week and maybe we'll eat the first broccoli head at the same time. The heat is giving some plants pause --- notably the peas (currently producing) and crucifers, who wilt a bit in the afternoons even if they've been recently watered. But, overall, these early vegetables seem to be thriving beneath the bright summer sun.
I still can't decide if I should be wishing for rain. Everyone else is --- non-rotational pastures in the area are brown and nearly bare and unwatered gardens aren't doing much better. But I keep thinking that if we have a few more weeks of drought, we'll be able to drive in some manure....
Luckily --- since I'm so conflicted --- my wishes have no impact on the weather at all. Rain will come when it comes, and in the meantime I'll give my seeds a little daily water to make sure they sprout.
Switching autobuilders from docker containers to systemd-nspawn machines, and freeing up tons of disk space.
Seems that docker leaks disk; I deleted every image and container, but it was still using 60gb. Perhaps files created by older versions of docker? Good riddance, anyway.
Nice thing is, my propellor configs work equally well for setting up the autobuilders in docker or systemd-nspawn. Although so far only for containers that don't need any ports exposed.
After a less active than usual week (dentist), I made a release last Friday. Unfortunately, it turns out that the Linux standalone builds in that release don't include the webapp. So, another release is planned tomorrow.
Yesterday and part of today I dug into
the windows ssh webapp password entry broken
reversion. Eventually cracked the problem; it seems that
different versions of ssh for Windows do different things in a
check, and there's a flag that can be passed when starting ssh to make it
not see a controlling tty. However, this neeeds changes to the
process library, which db48x and I have now coded up. So a fix for this bug
is waiting on a new release of that library. Oh well.
Rest of today was catching up on recent traffic, and improving the behavior
git annex fsck when there's a disk IO error while checksumming a file.
Now it'll detect a hardware fault exception, and take that to mean the file
is bad, and move it to the bad files directory, instead of just crashing.
I need better tooling to create disk IO errors on demand. Yanking disks out works, but is a blunt instrument. Anyone know of good tools for that?
We decided our tomatoes
needed a drip irrigation system.
This white PEX material is cheap and easy to work with. It won't kink and you can get a 100 foot roll for less than 30 dollars. Once I had the tubing secured to each post I went in and drilled a small hole next to each plant.
The hole is three times bigger than most drip systems due to the heavy sediment in the creek water we use for irrigation.
It's that time of year again --- the season for weekly doting upon our tomato plants! The first round of pruning
is simple --- I snip off the bottom leaves so none are touching the
ground, then I pinch off any suckers, no matter how small. If suckers
have grown too large to pinch, I instead cut them with clippers. Then I look at the many beautiful bloom buds (and the open flowers on the plants I set out a week earlier) and smile for the rest of the day.
That said, I am doing a few things differently this year. Most significant (I hope) will be growing only blight-resistant varieties (although given our current weather, blight might not be an issue this year anyway). I've also set out plants much closer together than usual and am pruning each to one main stem instead of to three. I feel like my previous efforts to beat the blight with maximum air flow between plants didn't do much good, so why waste space?
On a different note, I'm not surprised but I continue to be charmed by how the earth perks up so-so transplants. I started another set of seedlings in early May just in case my started-too-early transplants didn't make it, but I've only had to replace two of the first round of thirty transplants. Within a week of hitting real soil, everyone else perked up and grew happy new leaves, proving that our natural ecosystem is 100% better than anything I can replicate in pots in a sunny window. If I was listing the top ten things I love, growing in real earth would be one near the top of the list!
3 Steps 2 Talk with Someone who Only Sees 1 Thing
Apologizing should be one of the great American sports. I myself am still just learning the art. The first time I heard my doctor apologize to me I was pretty dumbstruck. First I never remember having a medical professional apologize besides my therapist. Since then I have been tuned into apologizing, giving and getting them. Many people have told me I apologize too much, or not to apologize. But I think apologies need to be heard and felt. If someone is obsessing over something, let them know you are “sorry they are experiencing” the bad thing.
Tell them directly
I am now focused on thanking my doctor I never get to see again, so this is a prime one for me. I am certain I will move on my thinking before another 2 months roles on. This remarkable doctor was the one who ended my focusing on my diagnosis with the simple expression “You should think of something else.” What a positive influence to send me on my way.
Thank people when they touch your life
This is where my heart breaks because I always fail here but this is the first day of the rest of my life. May I extend out what so many have given me, in gracious thank you.
I heard those words so much but their meaning failed to reach me. My life had been inseparable from my mental illness since adulthood until 3 days ago, that is. The symptoms derailed my life and threw off the direction I expected to take. The whole 15 years of thinking my self as “bipolar” was built either around the trauma of what had happened or the preconceived notions of the term bipolar. As one very good doctor finally explained to me, the diagnosis is mainly for the doctor so they can figure out how to treat the patient. What the patient should focus on are the symptoms. Ironically enough, my bipolar diagnosis was probably not even right. For one thing, my symptoms mesh more with the schizoaffective diagnosis. Bipolar is usually overdiagnosed and the majority of patients given this term do not even have bipolar.
“Well,” I rebutted, “there aren't enough schizoaffective role models or groups.” I had confided in my doctor, thrust out of the bipolar name, looking for answers. That was before she convinced me I am just a person with symptoms given a diagnosis so my doctors will know how to treat me.
“You need to stop thinking of yourself as the diagnosis.” She reiterated.
Most doctors in a facility like that allot about ten minutes to each patient. This particular doctor gave me 40 long precious minutes before I decided to let her let me go. She took on the role of therapist for me, as rare best doctors sometimes do.
Everyone has either a family member or a friend with symptoms or has symptoms of mental illness themselves. I believe everyone will experience some symptoms in their lifetime, sometimes as a response to stress or their stressed out family members. I see anxiety everywhere. All I have to do to be assured others have insomnia is to log in to facebook late at night.
These expressions referring to people's condition should be “working diagnosis”, not “diagnosis”. Working diagnosis are intangible human constructs. They can do more harm than good and they are not real.
My two months of panic around what I am was not useful. Making icons of famous role models does not always help. Robin Williams and Virginia Woolf did something great with their lives but they were not successful because of symptoms or diagnosis. I need to focus on who I am, not what is possible to accomplish for others with similar symptoms.
People enter our lives for a reason and then there are angels who help us see ourselves through clear eyes. Now that I know these things, I want to find my identity in meaningful things, to reach my new goals and not feel stopped by a diagnosis. I know many other people who say they feel limited by an illness. The way we talk about our illness can lead to more of that impairing thinking. I would rather reach to my abilities from now onward!
It's been a few years since we hooked up sprinklers in the back garden. But the groundwater has sunk too low for subirrigation to do much good.
In preparation for planting another round of beans, corn, and squash, we let the sprinklers run all day to moisten the parched earth.
You invited me in for tea.
I held you in tranquility
for a change.
I set out ten persimmon seedlings in our chicken pastures 2.5 years ago,
figuring there were all kinds of experimental possibilities for the
young trees. Option 1 would be to simply let them grow up to adult size,
but a seedling persimmon has a 50/50 chance of being male (meaning no
fruit), grows very large, and takes a long time to bear. Option 2 (my
favorite at that time) was to graft hardy Asian persimmons onto the
seedling rootstocks...but my hardy persimmon varieties kept dying back
to the ground over the winter, so I decided to ditch that plan. Instead,
I moved on to option 3 --- to trade for named American persimmon
varieties (Yates, Proc, I-94, and Early Golden) and graft those onto my
Persimmons are trickier
than some other fruits to graft, so I tried two different approaches. I
also followed the experts' advice by waiting until it seems far too late
to graft --- late May when the leaves on the seedling trees were nearly
The first step for both methods, though, was the same --- yank out the weeds that had grown up within each tree's enclosure since the last time I dropped by. Out in the chicken pastures, these little trees are lucky to catch my eye more than once a year, so I wasn't surprised to find that two of my seedlings had died and that one wasn't big enough to graft onto. The rest --- despite being a bit winter-nipped from our -22 Fahrenheit cold spell --- had stems thick enough to graft onto.
I grafted the first four plants before doing any research, so they got my usual whip-and-tongue graft.
It was definitely tougher to graft in situ than to bench graft, and
both the rootstock and scionwood were on the small side (compared to
apples) for most of the trees, so I'm not sure how many will take.
After I was done grafting, I still wasn't entirely sure what to do with the existing growth on the trees. So I just cut the branches back but left some leaves present to keep the tree alive until the graft union heals. Again, I'm not sure if this was the best choice, or whether the existing growth will prevent the graft union from healing. I guess time will tell....
While I took a water break in front of the computer, I found this interesting file
suggesting an alternative method of grafting persimmons, so I followed
the author's lead for my last three trees. First, I snipped the entire
top off each seedling, then I slit a strip of bark and peeled it down
(carefully!) before cutting away a bit of the rootstock to make room for
another stick of wood to fit in.
Next, it was time to prepare the scionwood by cutting one side of the bottom at a slant and then using the knife blade to scrape the bark on the rest of the bottom of the scionwood down to the green cambium. The prepared scionwood slid under the rootstock's bark flap, and the whole thing was wrapped with parafilm. (Okay, I didn't wrap my entire piece of scionwood since that just seemed too extreme, but I may regret that omission!)
With seven trees grafted to four varieties, I'm hopeful I'll see at least a 50% success rate and will end up with several different types of persimmons to continue their slow growth in the chicken pastures. Since the trees there don't get much TLC, chances are I won't see fruit until 2020, but hopefully the results will be worth the (very little) effort I've so far put into my experimental trees.
One of the Teva
sandals I glued for Anna last year came apart.
I used JB Weld again because the other sandal is holding up nicely.
The plan is to use some Plumbers Goop to seal up the edges to keep any water or dirt from finding a way in.
My young flower beds aren't quite to the stage where they stand up to distance shots, but the closeups are delightful.
Foxgloves from a family friend, chamomile because it reminds me of my mother (who enjoys the tea), columbine from another friend, borage (not quite blooming yet) because one of our blog readers suggested it as a high-quality feeder of native pollinators, some zinnias and nasturtiums (also not blooming yet) just because.
Every time I look at one of the plants, I smile!
After some research and great input from our readers, I decided to make a few changes before repeating my neufchatel/chevre
endeavor. First, even though the instructions called for two drops of
liquid rennet in my half-gallon recipe, raw goat milk is notorious for
not needing nearly as much thickening agent --- pure milk is just very
alive. So this time around I backed off to one drop of rennet, looking
for more of a soft cheese consistency instead of the more chewy cheese I
ended up with last time.
I also decided to try to boost the flavor with a bit more buttermilk (three tablespoons instead of two) and a much longer culturing period (24 hours instead of 6, although I should mention that the weather was much cooler during round two). After that elongated culture period, there was quite a bit of clear whey on top of the curd, and the curd had also begun to pull away from the walls of the pot. This is all an effort to give the bacteria more time to work, since I suspect microbial byproducts are what gives soft cheese most of its flavor.
Finally, I drained the cheese the right way for four hours instead of squeezing out the whey, and I upped the salt to 0.75 teaspoons. The result? Nearly perfect! The salt was too much --- I'll be going back down to half a teaspoon next time around --- and I think the culturing period might have been just a hair on the long side as well. But the flavor was much more full-bodied than last time and the cheese felt much moister rather than dry and crumbly. Success!
I saw a perpetual motion
Youtube video recently
that tickled my curiosity.
Anna was intrigued as well, so we ordered some pinewood derby wheels and a box of magnets to see if we could understand this puzzle a little better.
We had fun tinkering with it for a few evenings before we came to the conclusion that the video is a trick that uses gravity instead of magnetism to move the car.
Kayla's husband Andy helped
us out with some firewood cutting yesterday.
He gave us 2 hours of aggressive tree cutting for only 50 dollars.
If you're within driving distance and need some trees cut leave a comment and we'll give him your number.
"I don't want to go out," Abigail said on Wednesday morning when I went to tether our little herd in the woods.
I was gobsmacked. Abigail not only always wants to go out, she wants to get to her fresh forage now, ASAP, hurry up, do you get the message?!
But I think the deer flies the day before got to be too much for her. We had a light rain in the morning, so I put the herd out later than usual. And when I went to bring the goats home, the pesky deer flies were buzzing in their loops so annoyingly that I was barely able to gather three goats before rushing for cover myself. I should have worn a hat...and I'm sure that, as a tethered goat, the deer flies were twice as annoying. (They do bite, but it's really the buzzing that drives you mad.)
I met Abigail in the middle. I tethered her out early, took her in a
bit after lunch, then cut some locust boughs in the evening to top off
her belly. No, Mark, I don't know what you're talking about when you say
I spoil our goats....
More seriously, I do dream of eventually having large enough pastures so our goats can get all of their nutrition on their own schedule, retreating to the barn when necessary to beat the flies. In the interim, tree boughs seem to be a quick-and-easy solution for supplemental feeding when it doesn't make sense to bring the goats out into the woods to eat. Like tree hay...but for summer nutrition rather than winter feed.
Some of our onions
started sprouting and going bad on us.
This post is to remind me around next Mother's Day to delete any bad onions.
The weather and I can be
moody. After a crazy wet fall, winter, and spring, we started measuring
precipitation in hundredths of an inch this month. A quarter of an inch
of rain Thursday morning eased the earth's woes a little, but it took
Mark's cheerful demeanor and calm problem solving to ease my own bad
You'd think I'd realize that I always
get overwhelmed around the middle to the end of May. I keep a mood
diary (who, me obsessive?) and this is the time of year when my homemade
cheerfulness report card dips into Cs and Ds. All of the spring
plantings need to be weeded, our chicks are growing out of the easy
stage and require more frequent pasture changes, and learning goats has
also added to my load this year.
The trouble is, I love the garden and chickens and goats. I just don't love it when a lengthy to-do list pulls me out of my slumber too early and I turn irritable and grumpy. Time to offload a few tasks.
Some chores are easy to
spread around. I pull Mark off his normal tasks to help me for a morning
in the garden, and together we move the chicks to a new bit of yard.
After a lesson in goat tethering, we figure he can halve my chores there
But some headaches aren't lighter when carried on two sets of shoulders. For example --- Lamb Chop. At eleven weeks of age, our buckling is enormous, still nursing...and starting to get ornery. Artemesia went into her first clearly discernible heat this week, which suddenly made goat wrangling much more difficult. Between the screaming from the woods, Lamb Chop's need to mount our doeling in the middle of the garden, and the egg-laying snapping turtle guarding the path on the way home, I was glad Mark was along or I don't think I would have been able to get all three goats back into the pasture. So our buckling has a date with the local butcher (aka meat packing facility) in two weeks, and we'll just hope Lamb Chop manages to knock Artemesia up beforehand.
Speaking of offloading, I've decided to let my Winter and Spring cookbooks stand alone for the moment. I had thought my book about living in a trailer
would be my most controversial and criticism-inspiring text, but
apparently our unusual food choices are much more divisive. Lacking the
energy to push a product that the world isn't ready for, I'm moving on
to one of the other creative projects that I always have waiting in the
Decisions made and tasks offloaded, I step out into the garden and notice that the grass is green, the flowers are beautiful, and the garlic scapes are ready to eat. It's amazing what a shift in perspective will do to remind me that, despite temporary troubles, we're still living in paradise!
Long lazy chilly blackberry winter day, spent reading novels. 500 or so pages in 3 novels. It's been a long time since I read like this!
for Felicia who taught me to write poetry
You cannot chase the scarlet tanager
you don't know why she's here by the mental health center
where you wait at 7:50 in the morning singing softly to
Your sister hears them but does not see them
much, they're canopy dwellers,
their lyrics line our ears and birds are so often
One of the sharpest memories in your life:
you walked in the nearby woods - hit
by the sight of a limp bodied red bird on the road's
You picked it up and showed it to a naturalist;
he told you "it is dead"; he told you "it is a scarlet tanager";
it was dead long before you carried it, he pocked it for his
You spent all your life chasing the wild scarlet tanager
never knowing even the call, you didn't even know why
goodbyes and distance drew you to bad habits of
Then all of a sudden, here you were with the tanager.
Your first living tanager. Struck by this amazing new feeling
"peace," you let it go its way, far away, back to the top of the
Gratitude for a person who I may likely never see again.
It took me to this day to say goodbye to someone and not feel deeply conflicted. My doctor, I’ll call her Dr Arc, was a person I only probably spent 2 or 3 hours with in my entire life. I got to a level of communication with her I had never known was possible with a doctor. I had a terrible girl crush every moment with Dr Arc. Sitting in a room with her was like being in a loud river, so much what peace really is. I loved her way of asking me questions, working with me in decision making, putting my health in my hands. I sure didn’t expect to see a doctor like her in my home town, after all of the disappointing ones. She is moving to Chattanooga and I am letting her go, as if I had any way to have her stay. But emotionally, I am at this new point of being able to release her to never see her again.
It makes me think about life and our longevity, how the scarceness of time makes us value the time we have. I want to approach all of my people, to turn it into my own life.
The reason I saw Dr Arc was for mental illness. I have had a long list of symptoms in my life and have been on medicine for ages. I have thought of myself as “bipolar” for a long time. Dr Arc changed the diagnosis to schizoaffective last time. Then, this time, she turned my world on it’s head, taking an extra ten minutes of her time to counsel me out of thinking of myself as the illness.
“People tell me that all the time, but mental illness and disability has been a huge part of my life for a long time. In many ways it made me who I am. I don’t see how I can take diagnosis out of my identity or why I would want to do that!”
Then in her usual confident nurturing way, Dr Arc explained how to take diagnosis out of my identity. She said I have had symptoms and I am on medicine to make my symptoms better. She affirmed my belief that having a particular diagnosis is mostly just for the doctors to cue to them what medicines will work best for me. It doesn’t mean I am in a category of people who are all or at all like me. I am as different as the next person for so many reasons.
battery powered chainsaw
needed a new chain today.
The sharpening stone still had about 1/4 of its surface area left, but one close look at the teeth will tell you why it stopped cutting.
I like to flip the bar upside down when a new chain goes on to even out the wear on the little bar sprockets.
We are very happy with how much cutting we got done on the first chain.
Despite some bird
pressure that's been forcing me to pick berries a little on the pale
side, we've been enjoying delicious strawberry desserts for the last
week and a half or so. That said, I've decided it's finally time to pull
the plug on our Honeoyes. Not the variety
--- this early season strawberry is still a favorite. But after
expanding my patch from gifted expansions of someone else's patch for
the last eight years, viruses (I assume) are building up in the clones
and the berries are slowly becoming less flavorful. When even I want a little honey on my fruit (unlike Mark, who always does), I know that it's time to make a fresh start.
And, while I'm at it,
maybe I should try a second variety as well? Now that Kayla's in my
life, I can get away with ordering 25 plants of both Honeoye and Galleta
(an ultra-early variety) without worrying that the new plants will take
over my entire garden. Last year's addition of Sparkle
was a great boon to our homestead, so hopefully Galleta will be as
well. And even though the plants cost 70 cents apiece once you add in
shipping, when you figure that they and their children will likely feed
us for another eight years at a rate of at least a gallon a day, the
plants are definitely a bargain! That's my kind of homestead math.
I could have done a better job explaining why I wanted to go off my medicine when my doctor said I could. I was going to be tapering off already by now. Instead, maybe I have been "saved by the bell" in a way. I want to make a pro cons list explaining what I'd gain or lose off my meds.
Before I had my own insurance, I spent too many months and years anxiously wondering if I would someday not be able to afford my medicine. Abilify, the med I have been considering tapering off of, is sold for up to 1,000 dollars per bottle and I use that much of the medicine in a year. Though I spoke of tremors and potential tardive dyskenesia, my subconscious still remembers that time of worry over how am I going to get my meds.
It's funny, one huge defining moment in my life was when I applied for disabilty and had my initial appointment with the medical examiner to see if I qualify. I remember his impact was huge just in a few simple words: your job is one thing, to take that medicine every day. He said I
The Star Plate goat barn now has a third door to access the new paddock.
I recently had to implement a thread-safe wrapper to fcntl locks, which involved implementing my own inter-thread locking code. Because POSIX is horrible. http://git-annex.branchable.com/devblog/day_286-287__rotten_locks/
Take a look at this implementation: http://source.git-annex.branchable.com/?p=source.git;a=blob;f=Utility/LockPool/STM.hs
- First we have the unsafePerformIO of doom on line 46. (Actually safe in this application.)
- But then, look at how nice the implementation of
tryTakeLockis! (line 70) It uses
waitTakeLockand converts it from a blocking wait to a one-time try, by simply using the
orElsecombinator included in Haskell's STM implementation.
STM is awesome, and the orElse combinator is an awesome improvement on top of it, described in beautiful concurrency:
In particular, blocking (retry) and choice (orElse), which are fundamentally non-modular when expressed using locks, are fully modular in STM.
Root canal in 2 hours. Maybe I'll find moments where I am able to chew on a tricky change to propellor's types.
I've gotten ghc's type checker to generate an awesome error message like this when it detects conflicting port resources. Just need to find a way to integrate this with propellor's already complicated Property types.
Couldn't match type ‘'Propellor.Resources.Conflicting’ with ‘'Propellor.Resources.NonConflicting’ Expected type: 'Propellor.Resources.NonConflicting Actual type: Propellor.Resources.Conflict (Propellor.Resources.UniqueList '['Port 443, 'Port 80, 'Port 443])
(Or maybe I'll just think about buddism. Life is pain.)
admit that when my parents made lasagna with ricotta when I was a kid, I
tried to pick around the grainy cheese. But I now that I'm
experimenting with cheesemaking, I've learned the purpose of ricotta ---
turning all that cultured whey into something useful. And, sure enough,
two quarts of milk turned into 9.5 ounces of neufchatel,
while leaving enough proteins in the whey to create another 2.9 ounces
of ricotta. Thus, I've decided this subtly acidic cheese is hereafter to
be referred to as "bonus cheese."
(Okay, not really. You can keep calling it ricotta. But doesn't "bonus cheese" sound good?)
Ricotta is almost too
simple to post about. You take your leftover whey and allow the liquid
to sit, covered, at room temperature for 12 to 24 hours. Next, boil to
separate the curds from the whey, then strain out the chemically altered
(greenish) whey off your new cheese.
The boiling step is supposed to be a near-boil, using a double boiler to heat the cultured whey to 203 degrees Fahrenheit. However, after an hour in our double boiler, the whey was beginning to separate out little curds...but still hadn't surpassed 180 degrees. Only after decanting the whey into a pot to cook it the rest of the way directly on the stove, at which point it boiled at around 198 degrees Fahrenheit, did I realize that I really should have factored in changing boiling temperatures due to elevation. (Or, perhaps, the fact that my candy thermomter might not be accurate?) So, to cut a long story short --- you can make ricotta just fine by simply bringing the whey to a boil then removing it from the heat.
Anyway, after you boil
your whey, you let it cool for a couple of hours, then pour the curds
and whey into a clean cloth above a strainer. I used our new straining funnel for this step.
You'll also notice that I moved to a white cloth instead of the colored one I'd used for my previous cheeses. I learned the hard way that cheese picks up a little bit of lint from the cloth, which is unsightly if the fabric is colored. But if the cloth is white, no one ever knows....
I actually loved the flavor of this ricotta plain, but I'm thinking of trying it in a chocolate cheesecake with some of the neufchatel. Because everything tastes better with a little chocolate....
My Mom came in the other day and said "do you know how many red hot pokers are out there?" I was clueless. Then I guessed about 10 wrong guesses before landing at 13 red hot pokers - (a flower.) Mary Oliver said something about looking at life through different angles, I forget the quote, but it made me want to use that in my poems. I was kind of impressed that Mom saw those poker flowers and not me, but actually her eye is more perceptive than mine and always tuned in to the garden. I hope my Mother is happy with how she expresses herself. Sometimes I feel I am not giving back enough here so she does more than her share, and I get to write the poetry. I hope she writes some too now and then!
There's something rotten in POSIX fctnl locking. It's not composable, or thread-safe.
The most obvious problem with it is that if you have 2 threads, and they both try to take an exclusive lock of the same file (each opening it separately) ... They'll both succeed. Unlike 2 separate processes, where only one can take the lock.
Then the really crazy bit: If a process has a lock file open and fcntl locked, and then the same process opens the lock file again, for any reason, closing the new FD will release the lock that was set using the other FD.
So, that's a massive gotcha if you're writing complex multithreaded code. Or generally for composition of code. Of course, C programmers deal with this kind of thing all the time, but in the clean world of Haskell, this is a glaring problem. We don't expect to need to worry about this kind of unrelated side effect that breaks composition and thread safety.
After noticing this problem affected git-anenx in at least one place, I have to assume there could be more. And I don't want to need to worry about this problem forever. So, I have been working today on a clean fix that I can cleanly switch all my lock-related code to use.
One reasonable approach would be to avoid fcntl locking, and use flock. But, flock works even less well on NFS than fcntl, and git-annex relies on some fcntl locking features. On Linux, there's an "open file description locks" feature that fixes POSIX fnctl locking to not have this horrible wart, but that's not portable.
Instead, my approach is to keep track of which files the process has locked. If it tries to do something with a lockfile that it already has locked, it avoids opening the same file again, instead implements its own in-process locking behavior. I use STM to do that in a thread-safe manner.
I should probably break out git-annex's lock file handling code as a library. Eventually.. This was about as much fun as a root canal, and I'm having a real one tomorrow.
git-annex is now included in Stackage!
Daniel Kahn Gillmor is doing some work on reproducible builds of git-annex.
This sliding bolt gate latch is my new favorite way to keep goats out.
Not actually true that all computer languages become turing complete in time. For example, I understand that Coq and Agda can intentionally only be used to write programs that can be proven to halt. So, unless the halting problem is solved, they're not turing complete, though still useful.
I think CSS should be a less-hifalutin' instance of the same thing, ideally. Turing tarpits and all that.
A rather fascinating idea for a strongly typed compiler of web snippets of calculus of constructions. http://www.haskellforall.com/2015/05/the-internet-of-code.html
Or, see this post for some example use cases: https://www.reddit.com/r/haskell/comments/36d12v/haskell_for_all_the_internet_of_code/crdo2sj
Raises interesting questions beyond the technical...
- How does copyright apply when a program contains an url that defines the value 'four' as code? (Incidentially proving it's even.)
- Are these system F expressions the preferred form of source code or not? What about if they can be automatically translated to and from your programming language of choice?
After deciding that our first cheese --- an acid cheese --- was too simple, it was time to move on to a cultured cheese. I followed this recipe for neufchatel, which uses buttermilk as the starter culture and rennet to make the curds separate from the whey.
Rennet, I learned when hunting down these supplies, comes in several forms --- liquid animal, liquid vegetable, tablets, and powders. The powders are usually for bulk purchasers, tablets have a very long shelf life, liquid animal is easy to utilize in small quantities for fractions of the recipe, and liquid vegetable (as best I can tell) is a slightly bitter replica used by vegetarians. Since I wanted to be able to try half recipes, I opted for this liquid animal rennet.
I'm not going to run
through all of the instructions for making this cheese since you can
find them at the link in the previous section. The shorthand version is:
take 2 quarts of room-temperature milk, add two tablespoons of cultured
buttermilk, dissolve two drops of liquid rennet in a quarter of a cup
of water and add to the milk mixture, stir, then cover and let sit for
about eight hours. You'll know your cheese is ready for the next step
when you see a clean break as is shown above.
Now you're ready to cut the curds...
...and drain off the whey
by pouring the contents of your pot into a clean towel in a colander.
You're then supposed to hang this bag of proto-cheese for a while until
the rest of the whey works its way out, but I was impatient and simply
squeezed the bag, stirred the contents, and then squeezed some more
until the cheese was dry. (Someone please tell me why this method is
wrong --- it seemed to efficient!)
The final result gets half a teaspoon of salt mixed in and is then ready to eat!
Mark and I tasted the neufchatel (top container), the same cheese mixed with some Hollywood sun-dried tomatoes,
and ricotta made from the whey. (More on the ricotta in a later post.)
Mark doesn't like goat cheese from the store, but he enjoyed this
completely non-goaty cheese...while I actually missed the goatish
overtones. Meanwhile, I've never been a fan of ricotta, but I thoroughly
enjoyed the homemade version, while finding the Neufchatel a bit bland.
As best I can tell, the reason this cheese is neufchatel instead of chevre is because it uses buttermilk as the starter culture. However, when I looked up the biology of chevre and buttermilk cultures, I learned that both contain some combination of Lactococcus lactis lactis, Lactococcus lactis cremoris, Lactococcus lactis diacetylactis, and Leuconostoc mesenteroides cremoris. It's probably still worth buying a chevre culture to see what I come up with using the other starter since my taste buds say this Neufchatel isn't the same as chevre.
Said Jesus to Pontius Pilate
they're watching my ablutions
but Pontius had a hand in those
When granny went crazy
she started dippin' skole
said the devil made her do it
doc blamed delusions of control.
In “Harrison Bergeron”
the Handicapper General was telepathically podcasting
years before Fox News
began a scheme of thought broadcasting.
Remember the lady who swallowed the fly?
Well it made it to her brain without much exertion.
It whispered sweet nothings about her mortality.
I promise it wasn't just thought insertion!
When Calvin told Miss Wormood
aliens zapped out the spelling of “abdominal”
it actually could have been
this thing called thought withdrawl.
Henry Alford wasn't guilty
but he made the Alford plea
some said he was stupid
but he had delusions of being guilty.
After the surgeon cut his arm off
the patient reached out for low fat milk
so the surgeon put him in the psych word
for delusions somatic.
I once knew a man who thought he was Romeo.
He took a lethal dose.
He told me in his dying breath
he was NOT grandiose.
I have this poem
which is the best source you could reference.
That is if you trust someone
who has delusions of reference.
When I get this one done we'll have 3 paddocks we can cycle the goats through.
I suspect one of the
reason women love goats is because the caprine herd has the exact
opposite problem we have. As a goatkeeper, one of your primary goals is
to keep the weight on
your goats. Between intestinal parasites (usually present at low levels
but sometimes veering way out of control) and the energetic expense of
creating baby goats and milk out of grass, dairy goats have a bad
tendency to waste away to skin and bones. Enter my weekly bout with the measuring tape to reassure myself that our goats are in fine form.
Lamb Chop has never given me any worries on the weight front, though. The most I've been concerned about is that our buckling will get bigger than his mother before his date with the butcher, making it impossible to carry the lad across the creek to his doom. Barring that issue, he seems bound to surpass his 11-month-old herdmate's size in short order. As of this week, Lamb Chop has officially caught up with Artemesia; in fact, I think he now stands a little taller at the shoulder.
Abigail and Artemesia, on the other hand, worried me a bit in April, although I now think that their weight "losses" then were merely an artifact of shedding their winter fur. Less fur for the tape to wrap around simulates the loss of fat. Regardless, I dosed the whole herd with daily helpings of chopped garlic, which they all ate happily whether or not they needed the herbal dewormer. Now both are well above their winter weights, even without the furry padding.
I'm glad that I seem to be able to keep the weight on Abigail without adding grain to her diet, but I'll admit that I'd probably get more milk if I fed our doe more concentrates. As she started gaining weight on grass, I started easing off the carrots, alfalfa pellets, and sunflower seeds I was offering...with the result that milk production slowed down a bit (from about 3 cups a day to about 2.5 cups a day). Bringing those concentrates back up to previous levels (plus locking Lamb Chop away an hour earlier in the evening) quickly increased milk back to normal, then all the way up to a quart at my morning milking.
I suspect one of the dicey issues with dairy goats is deciding when we're being greedy humans and pushing our goats too hard, and when it's worth feeding a little more for a little more milk. Since I want to experiment a bit more with cheese, I think I'll be greedy just a little longer.
Our asparagus is slowing down, but the strawberries are just getting started.
is just crap.
I am just a body.
a chubby body in need of a bath,
a swim, and a decent meal.
Option A involved a type of very thin, biodegradable black plastic.
The photo above shows Kayla helping me lay down the plastic three weeks
ago. The photo below shows completely dead oats underneath the plastic
this past Thursday.
This product worked much faster than I thought it would, probably because we've had crazy summer weather in April and early May (highs up to 90 some days), which surely heated up the soil underneath very quickly.
On the down side, all it took was Huckleberry walking across the plastic to tear little holes, which a light wind quickly turned into long tears. (I'm telling you Huckleberry really isn't that big of a cat!) So, although effective, I'd caution against using this product anywhere that pets will be walking even a little bit.
Option 2 was solarization, which I explained in more depth in this post.
The solarization worked about equally as fast as the black plastic,
with the bonus that this clear plastic didn't shred after light pet
traffic. The clear plastic also held in the soil moisture, which was
handy since rainfall for the last few weeks has been nearly nonexistant.
The downside of solarization is that my raised beds in this area are tall enough that the north-facing side of the bed didn't heat up fully, so the oats underneath the plastic on that side are still somewhat green. So if you plan to use solarization to prepare soil, you'll want to stick to areas where the ground is as flat as possible. With that caveat and assuming hot weather, you can also plant into solarized ground in about three weeks if your weeds are only moderatly tenacious. (Add a few more weeks for both Option A and Option B if you're trying to kill a wily perennial like wiregrass.)
Option 3 was a storebought roll of paper mulch.
This mulch was the least effective as a fast weedkill, although it
looks to be the most effective as a long-term ground cover.
As Mark mentioned, the first rain bleached the dye out of the paper, and the lighter color left behind meant that the mulch simply acted like a barrier between the weeds and the sun rather than heating the soil underneath. The result is that the weeds beneath the paper mulch aren't quite dead yet, although the paper is still providing a good barrier around the high-density apple trees. I suspect I'll need to wait about 4 to 6 weeks between laying down this mulch over an oat cover crop and planting into the bare soil.
As another downside, Lucy running across the mulch did poke holes in the paper layer, allowing some weeds to come up through. That said, the paper has much more structural integrity than the very thin black plastic, so only the paw-print areas were affected rather than the whole sheet of mulch. So I'd say the plastic mulch is acceptable over areas with light pet traffic.
Option 4 was mad of
entirely free materials, but I didn't lay them down until later than the
previous options and thus don't have a comparison yet to the other
methods. Kayla's father came through with a big box of newspaper
(thanks, Jimmy!), and I've been applying the sheets using different
methods in different parts of the garden.
The photo to the left shows how I laid the paper down dry and then anchored it with deep-bedding material from the goat coop. Unfortunately, some of the sheets have blown away, which is why I started soaking the paper in a bucket of water before applying.
The top photo in this section shows some newspaper-mulched areas around the hazelnut bushes. Since I have comfrey plants growing along the aisles in that part of the garden, it was easy to yank handfuls of the greenery as a short of chop-'n-drop to weigh the wetted newspapers down. I'll post a followup in a few weeks once I know more about how the newspaper mulches compare to the other methods, but my guess is that they'll be comparable to the storebought paper mulch.
The final method I'm trying is a more long-lived type of black plastic
that is supposed to be good for 12 years (assuming you don't puncture
the fabric in the interim). I laid down an experimental span in the
proto-tree-alley a week ago, with the plan of taking up the plastic at
the end of the month and planting sweet potatoes there. I'll keep you
posted about weed control there as well.
Phew! I know that's a lot of data, but I hope it'll help you decide on a weed barrier that'll fit your particular garden needs. And perhaps there's another method I haven't considered that you've used with success in your garden? Be sure to let me know in the comments!
Our new chicks have gotten big enough to need another layer of bricks under their EZ Miser bucket waterer.
before the torrent
the painter, the loud neighbor
and I behold the sky
last nets of mosquitoes, my
blood they feed on high
singing shrill against
gray cloud, purple finch catches
cool gulps, changing air
of sprinkles, doves swim haywire
above the high wires
back door opens, shuts
as if in free thought, wind draws
through hallway, but rain?
asking the sky, more
water? robin tilts back her
neck, calling silent
hope is lost in rock
garden, leaves of pepper shrug
at roots. then rain comes
List of feeds:
- Anna: last checked (25 posts)
- Anna and Mark: Waldeneffect: last checked (2541 posts)
- Anna and Mark: Clinch Trails: last checked (10 posts)
- Joey: last checked (92 posts)
- Joey chatter: last checked (1240 posts)
- Joey git-annex devblog: last checked (268 posts)
- Joey: olduse.net blog: last checked (16 posts)
- Jay: last checked (25 posts)
- Dani: last checked (21 posts)
- Errol: last checked (28 posts)
- Maggie: last checked (984 posts)
- Maggie too: last checked (11 posts)
- Tomoko: last checked (70 posts)
- Jerry: last checked (28 posts)