Five years ago, Strider turned up in our barn,
sick and in need of a home. Since then, we've managed just fine
with two cats --- Strider does all the hard work around the farm and
Huckleberry lets us spoil him. But Thursday afternoon, the cat
balance got out of whack.
Another plaintive meow from the barn turned up this little critter, who is still too scared of me to let me check its sex. The barn cat looks pretty healthy, but was starving and quickly downed nearly a quart of dry cat food over the first 24 hours before starting to slow down to a more normal eating pace.
I'm not quite sure what to make of the feline. It meows plaintively at me, begging for something even when there's still food in its dish, but it's too scared to come closer than three or four feet away from a human, and that only when I sit down and look in the other direction.
Two cats in the house is really more than I can handle, especially when they both want attention at once. (Mark's more of a dog person.) So Mark and I are agreed that this little feline wouldn't fit in. But I'm not sure if I can catch it to give it away, so I'm a little stuck by the cat in the barn. Does anyone local want a cat in need of serious TLC?
We've still been having an
issue with rats in the chicken coop.
I sent one to an early grave thanks to some help from a box of Rat Shot.
You can find a box of 20 for around 8 dollars. The small pellets spread out making it easy to hit a moving rodent while at the same time any extra shot ends up bouncing off nearby structures.
Release made yesterday, but only finished up the armel build today. And it turns out the OSX build was missing the webapp, so it's also been updated today.
Post release bug triage including:
Added a nice piece of UI to the webapp on user request: A "Sync now" menu item in the repository for each repo. (The one for the current repo syncs with all its remotes.)
Copying files to a git repository on the same computer turns out to have had a resource leak issue, that caused 1 zombie process per file. With some tricky monad state caching, fixed that, and also eliminated 8% of the work done by git-annex in this case.
git annex unused in direct mode to not think that files that were
deleted out of the work tree by the user still existed and were unused.
Last year at this time, we were chowing down on kale and lettuce leaves that survived the winter under quick hoops
and started rebounding as the weather warmed up. Not so in
2014. I was able to find a handful of brussels sprouts that had
been protected under the mulch for dinner Wednesday, but otherwise it's a
waiting game right now. The new lettuce I planted a few weeks ago
has sprouted and some of the kale plants survived and are sending out
new leaves, both of which we'll be eating in a few weeks.
In the meantime, Mark is pouting because we're down to butternut squash, carrots, sweet potatoes, and frozen green beans from last year, and both of us are used to a more rounded vegetable diet. I'd rather wait and eat real food than expand the selection out with grocery store offerings, though.
positive side of the cold winter is that it helped me get a more solid
handle on the cold hardiness of various greens. Last winter, Fordhook Giant Swiss chard
survived the winter with no protection, so I thought the Swiss chard
might be just as hardy as our kale. Not so. Swiss chard I
protected with quick hoops this winter completely perished, along with
the Laciniato kale, but my troopers (Red Russian and Dwarf Siberian kale) survived the subzero temperatures under their quick hoops.
I used to think of Red
Russian as the more delicate of my two dependable kale varieties, but it
turns out that the smaller variety did better during this excessively
cold winter. Those of you in the true north should take note and
plant accordingly, although I'll admit that if we started having winters
like this one more regularly, I'd follow Eliot Coleman's advice and erect a high tunnel over my quick hoops.
What would I do differently
when installing another heavy
duty shade trellis?
Use fresh trellis wire. We used some recycled wire on the first loop and straightening out the kinks used up most of the tension in the turnbuckle.
The second loop was from a fresh roll and looks a lot tighter.
Whether or not Dorian S. Nakamoto (64) is satoshi, inventor of bitcoin, I'm finding ageism in tech to be an interesting lens through which to look today.
The myths that have been circulating before: "satoshi" was some "shadowy pseudonymous cabal of libertarian cryptographers" (dTal); the bitcoin code was the product of genius. "My fifteen point list of obvious likely bugs was systematically destroyed by a codebase that quite frankly knew better" -- Kaminsky http://www.businessinsider.com/dan-kaminsky-highlights-flaws-bitcoin-2013-4
Compare with how I've seen the bitcoin code described today: "Satoshi's style of writing code was old-school. He used things like reverse Polish notation. [...] We have rewritten roughly 70 percent of the code since inception. It wasn't written with nice interfaces. It was like one big hairball." -- Gavin Andresen
Then there's the HN thread, which seems mostly concerned with protecting a kindly grandfather (who is into model trains no less) from the world, and various reddit threads in various stages of denial and confusion, which I stopped reading when I got to the predictable "(sounds a bit senile tbh)" http://www.reddit.com/r/Bitcoin/comments/1zpuer/the_newsweek_article_is_probably_incorrect_look/
As you may have noticed,
I've been running a bit of an ongoing series here with answers to
questions new chicken-keepers might have. Previous posts included how to hatch homegrown chicks and how to choose the best chicken breeds for homesteaders.
Today I want to touch on a topic that's not so photogenic, but that
needs to be considered by anyone who wants to get into chickens --- how
to protect those delicious morsels from the wild animals who'd love
nothing more than to eat them up.
Baby chicks are most likely to be eaten by rats and snakes, but adult hens tend to succumb to dogs, hawks, raccoons, opossums, and similar predators. Your first line of defense against predators is to protect your flock when they're most vulnerable --- at night. A solid chicken coop is optimal, and if your predator pressure is high you'll want to shut the birds in each evening (or to invest in an automatic chicken door to do the job for you). Raccoons, especially, can reach right through small holes, so be sure your birds' roost is far enough away from gaps so that a predator can't rip their heads off without even entering the hen house. To be truly predator proof, the coop will also need to have a solid base that extends for several inches into the soil to prevent diggers from entering the coop. Finally, even though I love giving scraps to chickens, I'm starting to lean away from putting those kitchen scraps in the coop since the scent attracts predators who stick around to eat my birds.
What if your chickens are getting picked off in the daytime instead? If you have a small run (which you shouldn't), you can beef up the walls just like you did the coop, then can string fishing line over the top in a woven pattern to keep out hawks and owls. But if you prefer giving your birds larger pastures, or even letting them free range, it's going to be nearly impossible to keep predators out of their daytime living area. Instead, I recommend adding a rooster to your flock, since he'll sound the alarm and do his best to fight off any invader during daytime hours. A good dog (trained to protect, rather than eat, chickens) is the second line of defense --- our dog comes running as soon as she hears our rooster's alarm call, and she has managed to chase away a hawk that had pinned a hen three times over the past winter.
Chickens are pretty alert to predators during the daytime, with hawks being their primary downfall. After a rooster and a dog, I have two more lines of defense against raptors. First, I make sure that our chickens roam in areas with lots of bushes and other things to hide under. Hens often see a hawk coming as the raptor dives down to dine, so if they have something to scurry beneath, the chickens might be able to evade capture. Second, I raise dark-colored chickens, since I've learned the hard way with multiple breeds over multiple years that letting white chickens free range is like putting up a flashing neon sign: "Chicken take-out, now hot!"
I'd be curious to hear from others who have dealt with their own predator problems. Which predators are the most likely to eat your chickens? What do you do to protect the flock?
And for those of you in the planning stages of starting your own chicken operation, be sure to check out our chicken waterers, which keep you from having to handle manure and keep your birds from having to drink it.
Preparing for a release (probably tomorrow or Friday).
Part of that was updating the autobuilders. Had to deal with the gnutls security hole fix, and upgrading that on the OSX autobuilder turned out to be quite complicated due to library version skew. Also, I switched the linux autobuilders over to building from Debian unstable, rather than stable. That should be ok to do now that the standalone build bundles all the libraries it needs... And the arm build has always used unstable, and has been reported working on a lot of systems. So I think this will be safe, but have backed up the old autobuilder chroots just in case.
Also been catching up on bug reports and traffic and and dealt with quite a lot of things today. Smarter log file rotation for the assistant, better webapp behavior when git is not installed, and a fix for the webdav 5 second timeout problem.
Perhaps the most interesting change is a new
which can be disabled to prevent the assistant from doing the expensive
startup scan. This means it misses noticing any files that changed since it
last run, but this should be useful for those really big repositories.
(Last night, did more work on the test suite, including even more checking of merge conflict resolution.)
Today's work was sponsored by Michael Alan Dorman.
We upgraded our grape
shade trellis today.
Thanks to one of our constant readers Brian we realized the 2x4's we planned to put up would block a good deal of Winter sun.
It's two loops of 10 gauge galvanized trellis wire that uses a couple of heavy duty turnbuckles to increase the tension.
I'm always of two minds
about the first spring flowers. On the one hand, I really, really
want to see them, not just for myself, but for my hungry bees. But
on the other hand, I know that early blooms on the fruit trees often
mean no harvest that year due to late freezes. So I decided to
poke back through the blog to determine when our peaches and crocuses
have bloomed in past years, and how that relates to the subsequent peach
||First crocus bloom
||Peaches at first pink stage
The first thing I noticed --- late peach blooms do seem to be correlated to an actual peach harvest that year. But do early crocus blooms mean no peach harvest? Nope. In fact, the date of the first crocus blooms seems to have very little bearing on when the peach flowers open, suggesting that the two plants are using different cues to decide on the proper time to pop open their flowers. (Last year's crocus blooms might have been a bit of an outlier, though, because I had transplanted the bulbs in late winter to a new location.)
This post is all a long and geeky way of saying --- okay, crocuses, open up those buds! And, peaches, stay sound asleep as long as you can. Because, of course my plants listen to my wishes, right? (Maybe I should hedge my bets by dumping the ice from my maple sap concentration campaign around the bases of our fruit trees.)
Yesterday I learned of a nasty bug in handling of merges in direct mode. It turns out that if the remote repository has added a file, and there is a conflicting file in the local work tree, which has not been added to git, the local file was overwritten when git-annex did a merge. That's really bad, I'm very unhappy this bug lurked undetected for so long.
Understanding the bug was easy. Fixing it turned out to be hard, because the automatic merge conflict resolution code was quite a mess. In particular, it wrote files to the work tree, which made it difficult for a later stage to detect and handle the abovementioned case. Also, the automatic merge resolution code had weird asymmetric structure that I never fully understood, and generally needed to be stared at for an hour to begin to understand it.
In the process of cleaning that up, I wrote several more tests, to ensure that every case was handled correctly. Coverage was about 50% of the cases, and should now be 100%.
To add to the fun, a while ago I had dealt with a bug on FAT/Windows where it sometimes lost the symlink bit during automatic merge resolution. Except it turned out my test case for it had a heisenbug, and I had not actually fixed it (I think). In any case, my old fix for it was a large part of the ugliness I was cleaning up, and had to be rewritten. Fully tracking down and dealing with that took a large part of today.
Finally this evening, I added support for automatically handling merge conflicts where one side is an annexed file, and the other side has the same filename committed to git in the normal way. This is not an important case, but it's worth it for completeness. There was an unexpected benefit to doing it; it turned out that the weird asymmetric part of the code went away.
The final core of the automatic merge conflict resolver has morphed from a mess I'd not want to paste here to a quite consise and easy to follow bit of code.
case (kus, kthem) of -- Both sides of conflict are annexed files (Just keyUs, Just keyThem) -> resolveby $ if keyUs == keyThem then makelink keyUs else do makelink keyUs makelink keyThem -- Our side is annexed file, other side is not. (Just keyUs, Nothing) -> resolveby $ do graftin them file makelink keyUs -- Our side is not annexed file, other side is. (Nothing, Just keyThem) -> resolveby $ do graftin us file makelink keyThem -- Neither side is annexed file; cannot resolve. (Nothing, Nothing) -> return Nothing
Since the bug that started all this is so bad, I want to make a release pretty soon.. But I will probably let it soak and whale on the test suite a bit more first. (This bug is also probably worth backporting to old versions of git-annex in eg Debian stable.)
This Snap On extra long ratchet driver made
these hard to reach jobs easier.
It's one of the few tools I've held onto since my copier repair days.
After quite a bit of experimentation,
last year I settled on a very simple (but effective) method of
propagating figs. I take hardwood cuttings and sink them about
eight inches into damp stump dirt
in a pot, put the pot on a heating pad, and ignore it for a few weeks
until I need the heating pad for something else. I water
occasionally during those heating-pad weeks and during the subsequent
weeks, keeping the soil at the moisture level appropriate for
seed-starting (or just a hair drier), and put the pots in a sunny spot
once the leaves begin to push out of the buds. By the end of the
summer, the cuttings are extraordinarily well rooted and are ready to go
into the ground.
I treated the Brown Turkey cuttings from Daddy to last year's methodology, and also potted up the rooted shoot we teased away from the base of his mature fig bush. The latter will go into the ground soon after our frost-free date, and I'm thinking of putting it on the west side of our wood-stove alcove so the fig will enjoy lots of winter sun and heat while helping shield the trailer from summer sun. I'll probably keep one of the rooted cuttings as well and then will give the rest away to blog readers or local friends, so stay tuned for future giveaways.
A popular chicken hang out
during snow days is under our old camper.
Lucy likes this same spot on hot summer days for the shade and cool ground.
If you want to go to a
conference 45 minutes from your father's house and want to squeeze in a
visit at the same time, do you attend the conference first and visit
afterwards, or do you have family time right off the bat? Mark's
gut said the latter, and I think he was right, since I wanted to see
Daddy more than I wanted to learn at the conference...and some weeks I
can't manage even one night away from home. After a wonderful
visit on Friday, I managed to net two whole hours of sleep, and that
only came once I gave up on the bed in the guest room and on the quiet
and comfortable couch and went to squeeze myself into the back seat of
the car. (Yes, I am the world's weirdest sleeper and really like
small spaces. I should have brought my tent.)
Anyway, that's all a long way of explaining why --- even though Mark and I were itching to hear Tradd's newest talks and to check out the South Carolina Organic Growing Conference --- we only managed to enjoy a delicious lunch there before heading home. On two hours of sleep, even pastured pigs, medicinal mushrooms, and biointegrated homesteads didn't sound as lovely as returning to the peace and quiet of our own farm.
I did get one of the nicest February tomato plants I've ever seen out of the weekend, though, plus some cuttings and a rooted sprout from Daddy's Brown Turkey fig. That brings us up to five fig varieties we're trialling for cold hardiness here at the edge of their range. More on what I'm doing with my new figs in a later post.
Worked on metadata and views. Besides bugfixes, two features of note:
Made git-annex run a hook script, pre-commit-annex. And I wrote a sample script that extracts metadata from lots of kinds of files, including photos and sound files, using extract(1) to do the heavy lifting. See automatically adding metadata.
Views can be filtered to not include a tag or a field.
git annex view tag=* !old year!=2013
Today's work was sponsored by Stephan Schulz
October through February
are our primary visiting seasons due to farm constraints the rest of the
year. Of these months, the first and the last are the best for
trips because weather is mild enough that the chickens don't need extra
care and the house can survive without a wood fire, but the garden isn't
nipping at my heels. Soon, our first chicks will be hatching and
I'll want to be on hand in case they have trouble for the next couple of
months, and after that the weeds will be growing a mile a minute, then
the garden produce will be begging to be preserved. I rarely feel
called to leave the farm at any season, but soon even those urges will
Which is all a long way of explaining why we slipped away this weekend to visit my father and attend the South Carolina Organic Growing Conference. More photos and tidbits from the trip in later posts --- today I'm just sharing a photo of Mom's visit last weekend when Huckleberry clearly ruled the roost.
"ancient night dragon verse false thank built soak existence either hug keep rope hurry against"
-- my gpg key's fingerprint in electrum encoding
Celebrating spring with ob-house-cleaning, homemade chicken and vegetable soup, and my first little haskell library, http://hackage.haskell.org/package/electrum-mnemonic
I quite like net.unix.wizards and net.columbia (on olduse.net)
This 1955 Survival film was
made by the US Navy to educate pilots on how
to live off the land in north temperate regions but has some
considerable entertainment value to the modern day homesteader.
I enjoyed the drawings of animal traps and the narrator's casual tone, even though he seems to think turtles are amphibians.
The section on edible insects taught me that caterpillars are not good to eat but grubs are often the safer bet.
One of the few
store-bought foods that Mark and I still consider a guilty pleasure is
the occasional rotisserie chicken. That makes me want to learn to
cook a chicken as succulently delicious so I can make an equally tasty
(but more nutritious) version at home. My first experiment
involved brining one of our homegrown chickens with pepper and garlic added to the salted water, then roasting
the bird while basting with butter. The result was tasty,
but the leg meat was still a bit tougher than I would have liked.
I'm curious to hear from our readers who also grow heirloom chickens for meat. Do you have a favorite way of turning the meat tender and succulent? Or perhaps this is a losing battle and you can only get that kind of mouth-feel if you raise Cornish Cross, who grow so fast they're still very young when slaughtered? I'd love to hear your feedback in the comments section!
Did not plan to work on git-annex today..
Unexpectedly ended up making the webapp support HTTPS. Not by default, but if a key and certificate are provided, it'll use them. Great for using the webapp remotely! See the new tip: remote webapp setup.
Also removed support for --listen with a port, which was buggy and not necessary with HTTPS.
Also fixed several webapp/assistant bugs, including one that let it be run in a bare git repository.
And, made the quvi version be probed at runtime, rather than compile time.
The line from the creek pump to the wash water tank
finally thawed out last week. We thought it was still frozen at
first, but a failure to follow protocol led to fortuitous results just
We turn on the pump at the electric box outside the trailer. The rule is to leave the lid open when the pump is running so we'll notice and turn it off a couple of hours later. But when we tested the pump Friday, we forgot to open the lid. So when the pump didn't seem able to push the ice up the hill, we forgot to turn it off.
Half an hour later, I noticed water spewing out of the line. We opened the electric box lid as a reminder and soon had a thousand gallons of wash water on hand. No more pumping water out of the well and into the tank! Yet another sign that spring is coming to the farm.
ghci> 10 *~ (meter/second) - 10 *~ (mile/hour) 5.5295999999999985 m s^-1 ghci> it /~ (mile/hour) 12.369362920544017 ghci> (1 *~ (foot/second/second)) / (1 *~ (meter/hour/hour)) 3950208.000000001
Not only useful as a command-line unit converter much smarter than units(1), but great if you want to avoid crashing your spacecraft into mars. (Although I'd be wary of the floating point errors too!)
"I have used the module to implement (proprietary) algorithms related to spacecraft propulsion systems and my experience is that it is both usable and substantially improves confidence in the code produced." -- http://www.haskell.org/pipermail/haskell/2006-December/018993.html
My wood pile has been reduced to a wood line.
Winter better end soon..
we moved to our farm seven years ago, both Mark and I knew the
homestead would be a full-time job and working a "real" job too would
slow things down dramatically. Neither of us come from wealthy
families, though, so we needed a source of income.
About that time, we went to learn how to slaughter chickens at a friend's farm. They had a Whiz-Bang Chicken Plucker and Mark was very taken by its ingenuity. When we looked the product up on the internet and realized that the inventor, Herrick Kimball, was running a small home business based on that (and other products), Mark wondered if we could do the same.
To cut a long story short, Mark ended up inventing a POOP-free chicken waterer that has reached thousands of chicken-keepers in the U.S. and around the world. We had to tighten our belts for the first year because the microbusiness barely brought us above the poverty line, but then word of mouth helped Mark's invention take off. Soon we had enough spare cash that Mark was able to hire another local homesteader to help me in the garden part time, giving him time to work on inventing an even better chicken waterer.
Imagine how thrilled Mark was yesterday, when his role model wrote about the EZ Miser on his blog. We'd sent Herrick a review copy just on the off chance he was willing to give our waterer a try, but his kind writeup went far beyond our expectations. In fact, Herrick told me he plans to write a review of Trailersteading shortly as well, which prompted me to remember that I wanted to read and review his recent Planet Whizbang Idea Book for Gardeners.
Stay tuned for more tips from an inventor very much like Mark in a later post. In the meantime, be sure to add The Deliberate Agrarian to your reading list --- this is one of my top-ten favorite homesteading blogs and should be required reading for both the aspiring and established homesteader. Enjoy!
Pushed a release today. Rest of day spent beating head against Windows XMPP brick wall.
Actually made a lot of progress -- Finally found the right approach, and got a clean build of the XMPP haskell libraries. But.. ghc fails to load the libraries when running Template Haskell. "Misaligned section: 18206e5b". Filed a bug report, and I'm sure this alignment problem can be fixed, but I'm not hopeful about fixing it myself.
One workaround would be to use the EvilSplicer, building once without the
XMPP library linked in, to get the TH splices expanded, and then a second
time with the XMPP library and no TH. Made a
winsplicehack branch with
tons of ifdefs that allows doing this. However, several dozen haskell libraries
would need to be patched to get it to work. I have the patches from
Android, but would rather avoid doing all that again on Windows.
Another workaround would be to move XMPP into a separate process from the webapp. This is not very appealing either, the IPC between them would be fairly complicated since the webapp does stuff like show lists of XMPP buddies, etc. But, one thing this idea has to recommend it is I am already considering using a separate helper daemon like this for Telehash.
So there could be synergies between XMPP and Telehash support, possibly leading to some kind of plugin interface in git-annex for this sort of thing. But then, once Telehash or something like it is available and working well, I plan to deprecate XMPP entirely. It's been a flakey pain from the start, so that can't come too soon.
Needle nose pliers don't have enough torque to bend these cotter pins, but a combination of vise grips and channel locks is just what a Chopper 1 needs to properly replace the fulcrum pin.
and done! Automated release processes FTW.
Not going on a trip tomorrow? Run obnam now.
this morning releasing new versions of debhelper, git-annex, ikiwiki, alien, moreutils, myrepos, git-repair, ikiwiki-hosting.. did I forget anything?
I'm thrilled to be able to say that my simple bleach-soak of the seed-starting flats
seems to have been sufficient to eliminate damping off. Just
about every seed sprouted, and many of the seedlings are starting to put
out their first new leaves. They're a bit leggy, though, so I had
Mark build the youngsters a new shelf near the bottom of the
south-facing windows for more constant lighting over the next month or
so before they hit the garden.
left my warm shelf near the wood stove open and ready for the next
round of seedlings --- broccoli and cabbage. Since I didn't plan
ahead and preheat my stump dirt this time around, I sifted out the
frozen chunks, filled the trays, and heated the potting soil the quick
way on top of two firebricks on a damped-down stove. I'll let the
chunks of soil I removed thaw and then will sift again to remove the
nutshells and pieces of wood, which seem to be more numerous in this
stump dirt than the debris has been in previous years. Then the
rest of the stump dirt will go toward the next set of seedlings ---
tomatoes and peppers.
I try not to start too much indoors, so most of the plants we're sprouting here are backups for others that will soon be started under quick hoops. But after a cold winter, the ground will stay cold for quite a while, which means it's worth giving extra attention to our indoors starts so we can have a normal first harvest. Our winter stores are getting a bit slim and we're looking forward to the first new lettuce and other food from the 2014 garden.
Not a lot accomplished today. Some release prep, followed up to a few bug reports.
Split git-annex's .git/annex/tmp into two directories. .git/annex/tmp will now be used only for partially transferred objects, while .git/annex/misctmp will be used for everything else. In particular this allows symlinking .git/annex/tmp to a ram disk, if you want to do that. (It's not possible for .git/annex/misctmp to be on a different filesystem from the rest of the repository for various reasons.)
Beat on Windows XMPP for several more painful hours. Got all the haskell bindings installed, except for gnuidn. And patched network-client-xmpp to build without gnuidn. Have not managed to get it to link.
Anna asked me to build a new
seed starting shelf today.
It didn't take long to clean up this piece of barn wood with a steel brush drill bit.
We both decided the worn wood look was better than a brand new shelf board.
Let's say that --- just
hypothetically --- you put some maple sap on the wood stove before you
go to bed, figuring you're going to damp down the stove so it'll just
cook partway down before morning. But you forget to close the air
vent, so when you wake up, the sap has turned into maple taffy in the
bottom of your pan. At first, you're thankful that it didn't go
further and ruin a perfectly good batch of sap, but then you realize
that you're going to lose a lot of the precious sweetness when you
scrape it out of the pot. What are you to do?
My solution was to pour on another round of sap and warm the mixture over a very gentle fire as the cast-iron wood stove came back up to temperature the next morning. Soon, the maple taffy allowed itself to be stirred back into the sap, and before long, I had some sap just waiting to be cooked down into syrup.
That was so successful that I took a look at my previous half-cup of maple syrup and saw that it had become more the consistency of honey when I put it in the fridge. So I cooked my second batch down to a bit runnier of a consistency than you'd usually want, carefully poured the hot syrup into the cold syrup, swirling to mix (and not pouring enough hot at any one time to crack the jar), and I ended up with a cup of perfect-consistency maple syrup. Success!
For those of you keeping track at home, this cup of maple syrup is the result of about 5 gallons of sap from a 14-inch sugar maple over the course of one week (four heavy flow days and three light flow days). That means my sugar maple sap has a relatively low sugar content of slightly less than 1%, although possibly my freeze concentration method loses more sugar than others suggest. What I probably should do next is boil down a gallon without freezing first to get a more solid estimate on sugar content of the sap.
My code is trying to catch a 404 http exception while letting others through, and failing. Stumps me and two others for hours.
In despiration, parts of a library are rewritten to avoid using certian monad transformers in case they are somehow causing the problem. They are not.
Finally it turns out that I am catching a Conduit HttpException instead of the thrown http-client HttpException, which turn out to be different types in some versions of the libraries, and the same in other versions. The design of Haskell's extensible exceptions seems very dubious to me, since it essentially defeats strong type checking. Really, even Java has better exception handling.
I decide I want to make metadata fields be case insensitive (but case preserving). I import Data.CaseInsenitive and change the field type from String to CI String. I compile and fix the places the compiler tells me the type is wrong. Everything works perfectly, and it takes only 10 minutes to be confident that everywhere in 1500 lines of metadata related code, fields are now handled case insensitively.
Oh well, can't win em all, I suppose..
More Windows porting. Made the build completely
-Wall safe on Windows.
Fixed some DOS path separator bugs that were preventing WebDav from
working. Have now tested both box.com and Amazon S3 to be completely
working in the webapp on Windows.
One of the fulcrum pins on
1 axe fell off and got lost in the mud.
Our Tekton Camping Axe does a good job with the help of the Bostitch AntiVibe hammer, but it's more than twice the effort as the Chopper 1.
With any luck the replacement pin will be in the mail this week.
I saved our medium-sized
peach trees to train and prune when Kayla could get across the creek
since she had some of her own in need of attention. I could tell
she was a bit afraid of hurting the tree by doing it wrong, which made
me realize how far I've come in the last few years. It hasn't been
all that long since I pruned with book in hand and agonized over each
cut, but after a few years of pruning and seeing the results, I'm quite
comfortable pruning our peaches.
I haven't reached that
point with all of our fruit plants yet, though. I did a lot of
this --- reading over the relevant section in Lee Reich's The Pruning Book and Grow Fruit Naturally and then worrying over each cut. I was especially leery of harming our hardy kiwis since I'd sent some cuttings to a reader
a few weeks ago, and he reported that when they started leafing out, he
saw bloom buds! In other words, if I don't see flowers off the
hardy kiwis this year it's my own fault for cutting the bloom buds
off. Having Kayla present for moral support was very helpful in
this case, even though she knew less than I did --- it made me remember
that cutting usually works out alright.
And then there's the huge
problem that I saw last week and have been trying to block out ever
since. All three of our just-ready-to-fruit apple trees in the
forest garden have been girdled just below the soil line and will
probably perish. (The Virginia Beauty, strangely enough,
is fine, even though it's no more than fifty feet away.) I've
never protected the bases of our fruit trees because I'd never seen vole
damage, but I guess I'll have to cross that bridge now. And I'll
also need to consider whether growing sweet potatoes in the forest garden
was such a great idea --- it definitely produced an awesome living
mulch and lots of biomass, but I suspect the tasty tubers might be the
reason for the vole population explosion. Or maybe they just ate
my trees because of this winter's weird weather?
No matter what the cause is, I don't want to lose the two apple varieties that aren't represented elsewhere on our farm, so I took some scionwood and will graft them onto the rootstock that's coming in the mail in March. I guess it's lucky that the nursery turned out to only sell roostock in larger quantities, meaning that I was forced to order more rootstock than I thought I needed at that time. The photo to the left shows two good pieces of apple scionwood, plus a sad section of pear scionwood from the tree I planted outside our core homestead. I'll be grafting the pear onto a new rootstock this spring as well.
a more pleasant note, the pruning afternoon turned into a bit of a
propagation spree as well. Our little hybrid hazel had sent up a
sucker that was far enough away from the parent plant that I could clip
it off and tease out some roots to go with it, and a gooseberry bush
also yielded up several kids. Kayla even found a rooted shoot at
the base of one of our hardy kiwis. I sent all of the babies home
with Kayla to hedge my bets --- if her plants thrive and mine fail, I
can always get cuttings from her to spruce back up our planting.
That seems like the permaculture way to create backups.
Unless I've forgotten someone, every bush and tree in our homestead is now pruned. Time to move on to the next project on my list!
Turns out that in the last release I broke making box.com, Amazon S3 and Glacier remotes from the webapp. Fixed that.
Also, dealt with changes in the haskell DAV library that broke support for box.com, and worked around an exception handling bug in the library.
I think I should try to enhance the test suite so it can run live tests on special remotes, which would at least have caught the some of these recent problems...
Since metadata is tied to a particular key, editing an annexed file, which causes the key to change, made the metadata seem to get lost.
I've now fixed this; it copies the metadata from the old version to the new one. (Taking care to copy the log file identically, so git can reuse its blob.)
That meant that
git annex add has to check every file it adds to see if
there's an old version. Happily, that check is fairly fast; I benchmarked my
laptop running 2500 such checks a second. So it's not going to slow things
We're still having a problem
with rats stealing our chicken feed.
You can find free plans for a treadle feeder on the internet that involve cutting out pieces of plywood, but I wanted to see if I could build a smaller, low budget version from basic lumber supplies like 2x6's and furring strips.
The next step is to build a platform for the chickens to step onto that will be hooked to some linkage that lifts the cover off the food with the help of the weight of the chicken. When they step off the cover goes back down.
you thinking of getting started with chickens this year, but don't know
which breeds to consider? Mark and I have experimented with a
heaping handful of chicken varieties and have heard reports from our
readers on many others. In the process, we've decided that certain
varieties are better than others for homesteaders.
Why did we choose the chickens below from the long list of varieties out there? I'm assuming that if you're a homesteader, you value productivity, meaning that your chickens should you plenty of eggs and/or meat for the amount of feed you buy. You'll likely want your chickens to forage so their eggs have rich orange yolks, and you'll want them to survive the predators that inevitably pop up in a homestead situation. In other words, you're looking for one tough chicken.
In contrast, non-homesteaders often have different criteria for choosing hens. They might want a really cool-looking bird, especially one who will win first prize at the fair. Non-homesteaders may be more interested in a chicken's cuddle potential than in its livestock status, and they may also be interested in preserving an heirloom breed even if that bird isn't a prime forager in their region. If any of those options sound like you, you might still enjoy some of the chickens on this list, but will also want to do more research before choosing the members of your flock. To get you started, here's a list of the top 10 breeds by popularity, here are Murray McMurray Hatchery's recommendations, and here are Jenna Woginrich's recommendations.
Okay, let's get down to brass tacks! If I was going to tell a homesteader to buy three chicken varieties, they would be:
Red Star/Golden Comet/other red hybrid egg-layers. Different hatcheries have their own proprietary "formula" for optimal egg-layers, but the red hybrids we've tried have all been excellent producers and calm birds that forage pretty well. These are top choices for chicken tractors, especially if you're not going to be eating any of your birds, but they might be a hair too friendly for optimal free ranging without ending up pooping on your porch.
Black Australorps. These are our favorite all-around homestead birds, which we use for eggs and meat. (The carcass won't look like a store-bought chicken.) Australorps are extremely hardy and are great foragers, but they don't lay quite as well as the hybrids mentioned above, nor do they lay much in the winter. On the other hand, the Australorps are meatier birds, so they make better broilers --- a jack of all trades, but master of none.
Cornish Cross. If you're simply interested in a meaty chicken that will give you a carcass that looks like the ones in the grocery store with the least feed consumption, this is the bird for you. I'll admit we've never actually raised Cornish Cross, but that's because we like to hatch our own chicks and to keep one flock for eggs and meat instead of two separate flocks. If we were going to buy 25 chicks planning to put the adults in the freezer, we'd go straight for Cornish Cross.
Other breeds to consider. Rhode Island Reds will be midway between hybrid egg-layers and Black Australorps in their traits and Plymouth Rocks
will be midway between Black Australorps and Cornish Cross. If
you lean more toward eggs or meat rather than having tastes that run
right down the middle like ours do, you might want to try one of these
alternatives. Buff Orpingtons and Wyandottes also come highly recommended, but I haven't tried either one yet, and there are also laying ducks to consider.
Finally, don't forget to get all of your gear together while you're in the planning stages. Check out these automatic feeder ideas, invest in a quality brooder, and get the chicks off to a good start with clean water. Good luck and enjoy your chicken adventure!
Our chainsaw stopped working halfway through
cutting up some branches.
I finished this pile with the miter saw, which turned out to be easier since I didn't have to worry about the chain meeting the dirt.
After a gushing start, warm nights slowed our maple sap
flow down to a trickle. Still, it's no hardship to collect the
one bucket on my morning walk with Lucy, and it's simple to boil down
the sap post-freezing
on top of the fire I light most mornings to take the chill off.
In fact, I realized that the reason I thought the juice wasn't worth the
squeeze when we first tried maple syruping about seven years ago was
because we didn't have the infrastructure in place to make the process
simply take an extra minute here or there in the course of our normal
day. (That is true of so many homesteading tasks....)
Of course, I'll admit that, even in the mountains, we're too far south for optimal sugar mapling --- that's why we're just tapping one tree rather than going whole-hog with the endeavor. On the other hand, I was interested to read that the sugar content of sap isn't just determined by geography, but also by microclimate and time of year. One New England study showed a range in sap sugar content of 1.8% to 8.4% (the difference between boiling 36 gallons of sap down to make 1 gallon of syrup and boiling only 8 gallons of sap down to make that same gallon of syrup). Here are factors that make some sap sweeter than others:
- Among all trees, sugar content is low in sap at first, quickly rises to a peak, then gradually decreases over the sap run, with another little rise at the end (just as the taste turns "buddy"). So, if you're familiar with your sap season, you could presumably just tap trees during times when the sugar content is high.
- Sun makes sugar, so those trees with more branches and those trees more exposed to the sun tend to have higher sugar content in their saps compared to neighboring trees tested at the same time. We accidentally picked a winner in this regard since the tree we tapped is (strangely) on a south-facing hillside at the edge of our parking area, so the tree gets lots of sun all year.
- Larger trees make more sugar, and so do trees with wider growth rings (meaning they're growing faster).
- Trees that are sweeter than their neighbors continue to be relatively sweeter throughout the season and from year to year. Whether this is due to the factors mentioned above or whether the sweetness is genetic was beyond the scope of the study.
data collecting aside, I'm in love with the process of boiling sap down
into sugar because the partway stage tastes just like vanilla extract
smells. After letting the sap simmer on the wood stove until it
was starting to thicken, I moved four days' supply over onto the
electric stove for the final cookdown Saturday morning (taking over
watch duty from Huckleberry).
There are lots of ways to tell when your maple syrup is done, but I chose to eyeball it, backing the diagnosis up with a weight test. A gallon of maple syrup should weigh 11 pounds, so a cup of maple syrup should weigh 11 ounces. I figure we produced a bit less than half a cup of syrup, so the weight came out just about right. I also eked out another tablespoon or so by making hot chocolate in the cook-down pan, rinsing the syrup off the walls for the only sweetener in the beverage --- delicious!
Mostly offline hard drives.
Funny, I nearly dented today (while some 200 gb of queued up file transfers were happening since it was the first sunny day in a while) about my ritual of noticing annex.numcopies is satisfied in some repo, and then paranidly increasing it to numcopies+1.
I see I am up to numcopies=7 for my mail, 5 for my music, and only 3 for my photos. Surely time to increase that to 4...
When generating a view, there's now a way to reuse part of the directory
hierarchy of the parent branch. For example,
git annex view tag=* podcasts/=*
makes a view where the first level is the tags, and the second level is
podcasts/* directories the files were in.
Also, year and month metadata can be automatically recorded when adding files to the annex. I made this only be done when annex.genmetadata is turned on, to avoid polluting repositories that don't want to use metadata.
It would be nice if there was a way to add a hook script that's run
when files are added, to collect their metadata. I am not sure yet if
I am going to add that to git-annex though. It's already possible to do via
the regular git
post-commit hook. Just make it look at the commit to see
what files were added, and then run
git annex metadata to set their
metadata appropriately. It would be good to at least have an example of
such a script to eg, extract EXIF or ID3 metadata. Perhaps someone can
List of feeds:
- Anna: last checked (25 posts)
- Anna and Mark: Waldeneffect: last checked (1622 posts)
- Anna and Mark: Clinch Trails: last checked (10 posts)
- Joey: last checked (57 posts)
- Joey chatter: last checked (295 posts)
- Joey git-annex devblog: last checked (128 posts)
- Joey: olduse.net blog: last checked (11 posts)
- Jay: last checked (25 posts)
- Dani: last checked (21 posts)
- Errol: last checked (28 posts)
- Adrianne: feed not found (1 posts)
- Maggie: Not Found (715 posts)
- Maggie: What Wabi Sabi Isn't: last checked (4 posts)
- Tomoko: last checked (69 posts)
- Jerry: last checked (28 posts)