Joey git-annex devblog
day 157 upgrade checking

Now git-annex's self-upgrade code will check the gpg signature of a new version before using it.

To do this I had to include the gpg public keys into the git-annex distribution, and that raised the question of which public keys to include. Currently I have both the dedicated git-annex distribution signing key, and my own gpg key as a backup in case I somehow misplace the former.

Also spent a while looking at the recent logs on the web server. There seem to be around 600 users of the assistant with upgrade checking enabled. That breaks down to 68% Linux amd64, 20% Linux i386, 11% OSX Mavericks, and 0.5% OSX Lion.

Most are upgrading successfully, but there are a few that seem to repeatedly fail for some reason. (Not counting the OSX Lion, which will probably never find an upgrade available.) I hope that someone who is experiencing an upgrade failure gets in touch with some debug logs.

In the same time period, around 450 unique hosts manually downloaded a git-anex distribution. Also compare with Debian popcon, which has 1200 reporting git-annex users.

mark (Anna and Mark: Waldeneffect)
A box of books
A box of new books

The thrill of picking up a box of Anna's newest paperback at the mailbox can only compare to when the first box of Weekend Homesteaders arrived.  A few of these books will be gifts, but most are earmarked for giveaways here on the blog.

Nearly as good was the smile on Anna's face when she saw that some of our readers had purchased paper volumes of Naturally Bug-Free.  If you're on the fence about getting your own copy of this beautiful and informative text, Amazon has marked down both the color and black-and-white versions another 5%.  Act now while they're on sale.

Anna (Anna and Mark: Waldeneffect)
Carol Deppe's garden and diet

Winter squashCarol Deppe puts her advice on garden resiliency to work by growing different staples to feed herself at different times of the year.  Corn and dried beans fill her belly in the spring; she eats fruit all summer; potatoes, winter squash, and fruit feed her in the fall;  and potatoes and winter squash are on the menu in the winter.  To these garden staples, Deppe adds duck eggs (and a bit of meat) from her flock, along with some purchased pastured meat and canned tuna.

Deppe's staples are one one of the reasons I didn't get as much out of her book as I'd hoped to.  Although I like the lack of wheat in Deppe's diet (due to her struggles with celiac's disease), Mark and I strive for a higher protein diet, so Deppe's focus on potatoes and other high-carb staples didn't sit well with me.  I also don't really believe in the notion that you can stay healthy primarily based on supplements, so her use of cod liver oil to replace most meat in her diet doesn't seem like a nutritious long-term solution.

On the other hand, I was intrigued by how well Deppe seems to listen to her body.  She notes that she feels most full after eating foods high in water and fiber, and she used her own varying hunger levels to discover that she needed to eat animal-based omega 3s.  After noticing that plant-based sources of omega 3s didn't fulfill her cravings, she did some research and discovered that only some people are able to turn 18-carbon plant omega 3s into 20- and 22-carbon animal omega 3s.  Perhaps that's why some people crave meat much more than others do?

Anna (Anna and Mark: Waldeneffect)
Filling the spring garden gaps
Cabbage seedling

There are a lot more gaps than usual to fill in the garden this spring.  The cold, wet winter killed two-thirds of our potato onions and softneck garlic (although our hardneck garlic, Music, is plugging right along unhindered).  A dry spell when I didn't think to water made for holey germination in the carrot and Swiss chard beds, and Huckleberry's hard work scratched up some peas and poppies.  Time to fill in the gaps!

For some crops, it's not too late to just replant.  I scattered another round of carrot seeds on the appropriate bed and popped Swiss chard seeds into hoed rows (after teasing apart the one seed cluster that had fully germinated, leading to three seedlings in one spot).  There were enough poppy seedlings clustered too close together that I could just transplant them to fill in the gaps, and then I slipped broccoli starts into the holes between garlic plants.

Spacing out poppies

PeasAfter that, I started getting whimsical.  How about a few carrots in the gaps in the pea beds?  Maybe some Red Russian kale in the spaces between potato onions?

The trick with filling in gaps is to add crops that will mature at about the same time as the vegetables that originally owned the bed.  You also don't want to plant something that's going to get too big, shading out the vegetables you really care about, and you definitely don't want to add anything that will need trellising.  So no cabbages, even though I have plenty more starts on hand, and nothing that will need more than two months to mature.  (The carrots are small hybrids, listed at 54 days to harvest.)

I seeded and transplanted Monday and Tuesday, knowing a rainy spell was due to blow in Tuesday afternoon.  Hopefully water from the sky will sprout my seeds and settle my transplants, filling the garden with life.

Anna (Anna and Mark: Waldeneffect)
"Food Production and Self-Reliance in Uncertain Times"

Carol DeppeAs the subtitle of her book attests, the primary theme of Carol Deppe's book is finding ways to grow food that will work even when times are tough.  If you can't afford store-bought groceries, break your leg and can't spend every minute in the garden, and have to deal with crazy weather, would you still be bringing in a harvest?  Carol Deppe would.

What's her secret?  Mark would sum it up in one word --- backups.  Deppe goes into more depth, recommending diverse plantings of multiple varieties and types of crops, no single main crop, succession planting, using short-season varieties to work around erratic weather, and including animals in your homestead.  Due to climate change, she recommends not counting on crops that are on the edge of their hardiness range in your area, and instead says you should focus on crops that are being grown commercially by your neighbors since these tend to be dependable.

Anna (Anna and Mark: Waldeneffect)
Dogwood winter aftermath
Strawberry bloom

Frost-damaged strawberry flowerLess than a week after the hard freeze, I'm able to start assessing what got nipped.  The bad news is that the strawberries were harder hit than the numbers suggested --- lots of flowers are opening and most have black centers, meaning they aren't going to turn into fruits.  On the other hand, the first undamaged flowers are also starting to open, which means we only lost about the first four of five days worth of strawberry fruits.

Frost-damaged apple flower

Opening kiwi budThe apples are also starting to open flowers that were tightly closed last week.  Most are clearly damaged, with brown stamens, but a few look okay like the one above.  The big question will be whether the female parts of the flowers survived --- it doesn't take all that much pollen to fertilize every tree, but if the ovaries are damaged, there won't be any fruit.

I was also heartened to see that a few of the hardy kiwi buds were slowpokes and missed the freeze.  Maybe we'll still get a chance to taste homegrown kiwis this year?

Joey git-annex devblog
day 156 release day

I hope this will be a really good release. Didn't get all the way to telehash this month, but the remotedaemon is pretty sweet. Updated roadmap pushes telehash back again.

The files in this release are now gpg signed, after recently moving the downloads site to a dedicated server, which has a dedicated gpg key. You can verify the detached signatures as an additional security check over trusting SSL. The automatic upgrade code doesn't check the gpg signatures yet.

Sören Brunk has ported the webapp to Bootstrap 3.
The branch is not ready for merging yet (it would break the Debian stable backports), but that was a nice surprise.

Anna (Anna and Mark: Waldeneffect)
The Resilient Gardener

The Resilient GardenerI've had Carol Deppe's The Resilient Gardener on my shelf for a couple of years, but only read it from cover to cover this spring.  Why the wait?  I'm ashamed to say that part of my foot-dragging was due to an assumption that the book was very dry since the only photos are in a central insert.  Despite lack of images in the text, though, the book is very engagingly written.

A more important issue is that Deppe and I have very different gardening and dietary habits, so much of her information isn't relevant to me.  In many ways, she follows the gardening advice of Steve Solomon, which is probably a great way to grow in the Pacific Northwest, but doesn't suit our farm or palates.  On the other hand, it might suit many of you better than it did me --- the information is definitely well-researched and is based on personal experience, which is what I always look for in a homesteading book.

With all of those caveats, what finally got me to crack the cover?  Now that we're going to try ducks (arriving this Friday!), I figured I should go straight to the source and learn from an expert.  Stay tuned for helpful hints on ducks and more in this week's lunchtime series.

Anna (Anna and Mark: Waldeneffect)
First weekend in the starplate coop

Chicks on pastureWhen moving chickens to a new home, I generally lock them inside their night-time accommodations for one or two days so they home in on the spot.  After that, I open the door and let them roam.

Our chicks loved the starplate coop so much, they didn't even feel the need to go outside for the first eight hours of door-opened freedom.  Instead, they enjoyed the inside perches --- despite their small size, multiple little chickens hung out on the top-most roost.

Eventually, though, the whole flock came tumbling out the door and wandered a full ten feet away from the hen house.  The ground is still winter-brown in this shady spot close to the hillside, but our chicks enjoyed pecking at new leaves coming out on tiny tree saplings.

Soon, we'll have the chicks fenced into rotational paddocks, but for now they're small enough not to cause much damage if just allowed to free range.  As long as they're not in the garden, this is probably my favorite chick age --- all they need is to be shut in at night, given free-choice feed and a poop-free waterer, and they're golden.

Joey git-annex devblog
day 155 missing bits

Sometimes you don't notice something is missing for a long time until it suddenly demands attention. Like today.

Seems the webapp never had a way to stop using XMPP and delete the XMPP password. So I added one.

The new support for instantly noticing changes on a ssh remote forgot to start up a connection to a new remote after it was created. Fixed that.

(While doing some testing on Android for unrelated reasons, I noticed that my android tablet was pushing photos to a ssh server and my laptop immediately noticed and downloaded them from tere, which is an excellent demo. I will deploy this on my trip in Brazil next week. Yes, I'm spending 2 weeks in Brazil with git-annex users; more on this later.)

Finally, it turns out that "installing" git-annex from the standalone tarball, or DMG, on a server didn't make it usable by the webapp. Because git-annex shell is not in PATH on the server, and indeed git and rsync may not be in PATH either if they were installed with the git-annex bundle. Fixed this by making the bundle install a ~/.ssh/git-annex-wrapper, which the webapp will detect and use.

Also, quite a lot of other bug chasing activity.

Today's work was sponsored by Thomas Koch.

Anna (Anna and Mark: Waldeneffect)
Preparing for a hot, dry summer
Watering asparagus

My weather guru reports that (despite the high groundwater from a wet winter), spring 2014 has been unusually dry.  As in previous years, this sets up a feedback loop, which in the current instance will likely lead to a hot, dry summer.

Honeyberry flowerI have to admit, even though I don't like heat that much, I do like this forecast.  From a gardening perspective, it's much easier to add water than to take it away, so a hot, dry summer could mean lots of tomatoes and other crops that sometimes flounder in our wet climate.  Plus, we might finally be able to drive the truck back to our core homestead, making it much easier to stock up on firewood, manure, and other essentials.

In the short term, the forecast was simply a reminder to pull out the sprinklers.  I knew the ground was getting dry, but didn't realize quite how parched the garden had become until Kayla and I were out weeding Friday.  Maybe some artificial rain will tempt those asparagus spears to push the rest of the way out of the soil?

Anna (Anna and Mark: Waldeneffect)
Bug book, kefir, t-shirt, and seeds giveaway
Paperback interior

Readers of my book blog will know that I considered signing back on with my old publisher to make Naturally Bug-Free available as a print book, but decided to self-publish this paperback instead so I could maintain the e-rights.

Naturally Bug-FreeWhile making that decision, I spent a couple of weeks turning the interior into a work of art, with big color pictures that should really suck you in (even though the paper isn't glossy).  And then I decided to also make a black-and-white edition for those of you who can't afford the high price tag of the color version.

The black-and-white copies are on sale for only $4.99 on Amazon, and the full color version is on sale for $16.62.  Both are eligible for Amazon's usual free shipping offers.  Plus, you get a free copy of the ebook through Amazon's matchbook program with the purchase of either paper edition, so you can see those color pictures even if you buy the cheaper black and white edition on paper.

To celebrate (and spread the word), I'm running a giveaway --- one lucky reader will win a signed color paperback copy of Naturally Bug-Free, a starter culture of kefir, a Walden Effect t-shirt (only sizes medium, large, or 2XL are now available), and a seed starter pack (containing some of our favorite vegetable varieties).  That's a $72.49 value just for spending a minute plugging my new paperback.  Use the form below to enter, and thanks for your help!
a Rafflecopter giveaway

propellor-driven DNS and backups

Took a while to get here, but Propellor 0.4.0 can deploy DNS servers and I just had it deploy mine. Including generating DNS zone files.

Configuration is dead simple, as far as DNS goes:

     & alias ""
        & Dns.secondary hosts ""
                & Dns.primary hosts ""
                        (Dns.mkSOA "" 100)
                        [ (RootDomain, NS $ AbsDomain "")
            , (RootDomain, NS $ AbsDomain "")

The awesome thing is that propellor fills in all the other information in the zone file by looking at the properties of the hosts it knows about.

 , host ""
        & ipv4 ""
        & ipv6 "fe80::26fd:52ff:feea:2294"

        & alias ""
        & alias ""
        & alias ""
        & Docker.docked hosts "webserver"
            `requres` backedup "/var/www"
        & alias ""
        & Dns.secondary hosts ""

When it sees this host, Propellor adds its IP addresses to the DNS zone file, for both its main hostname (""), and also its relevant aliases. (The .museum alias would go into a different zone file.)

Multiple hosts can define the same alias, and then you automaticlly get round-robin DNS.

The web server part of of the config can be cut and pasted to another host in order to move its web server to the other host, including updating the DNS. That's really all there is to is, just cut, paste, and commit!

I'm quite happy with how that worked out. And curious if Puppet etc have anything similar.

One tricky part of this was how to ensure that the serial number automtically updates when changes are made. The way this is handled is Propellor starts with a base serial number (100 in the example above), and then it adds to it the number of commits in its git repository. The zone file is only updated when something in it besides the serial number needs to change.

The result is nice small serial numbers that don't risk overflowing the (so 90's) 32 bit limit, and will be consistent even if the configuration had Propellor setting up multiple independent master DNS servers for the same domain.

Another recent feature in Propellor is that it can use Obnam to back up a directory. With the awesome feature that if the backed up directory is empty/missing, Propellor will automcatically restore it from the backup.

Here's how the backedup property used in the example above might be implemented:

backedup :: FilePath -> Property
backedup dir = Obnam.backup dir daily
    [ "--repository=s"
    ] Obnam.OnlyClient
    `requires` Ssh.keyImported SshRsa "root"
    `requires` Ssh.knownHost hosts "" "root"
    `requires` Gpg.keyImported "1B169BE1" "root"

Notice that the Ssh.knownHost makes root trust the ssh host key belonging to So Propellor needs to be told what that host key is, like so:

 , host ""
        & ipv4 ""
        & sshPubKey "ssh-rsa blahblahblah"

Which of course ties back into the DNS and gets this hostname set in it. But also, the ssh public key is available for this host and visible to the DNS zone file generator, and that could also be set in the DNS, in a SSHFP record. I haven't gotten around to implementing that, but hope at some point to make Propellor support DNSSEC, and then this will all combine even more nicely.

By the way, Propellor is now up to 3 thousand lines of code (not including Utility library). In 20 days, as a 10% time side project.

Joey chatter

This also means that whenever propellor knows about a host's ssh pubkey, which it often does, it can toss in a SSHFP record, for free!

Joey chatter

I suppose I could move the MX and even the NS from the SOA into the host's properties too, if I wanted to.

Joey chatter
shortest dns configuration ever

I'm teaching Propellor how to configure primary DNS servers, including generating their zone files. It turns out that the complete configuration for this will look like so:

            & Dns.primary hosts ""
                    ( Dns.mkSOA "" 100
                            [ NS (AbsDomain "")
                            , MX 0 (AbsDomain "")

Where are the IP addresses, you may be wondering? Surely that config should say what the address of is, and probably also include some subdomains.

No :) Propellor has a neater way. The addresses and subdomains are configured as properties of the hosts that constitute the domain.

    , host ""
            & ipv4 ""
            & cname "" -- not really a CNAME, but I have not found a better word
    , host ""
            & ipv4 ""
            & JoeySites.oldUseNetServer hosts
               `requires` cname ""

I did not write this expecting to be able to leave out the SOA addresses like that. It just happened. A very happy accident.

Anna (Anna and Mark: Waldeneffect)
Care of a newly grafted apple tree

Leafing out rootstockOne of my favorite parts of homesteading is the daily surprises.  Sunday, the hummingbirds showed up and I learned that the tiny birds sustain themselves in the early spring on peach blossoms and the like.  Monday, I harvested our first two asparagus spears in preparation for the hard freeze.  And Tuesday I noticed that my baby apple trees were starting to leaf out.

Most of the trees' action so far is on the rootstock, which is normal but which requires a little care.  With newly grafted trees, you don't want the rootstock to put its energy into growing leaves and branches.  Instead, you'd like the plant to focus on healing up that junction between rootstock and scionwood, then to start feeding energy into the scionwood above.  To keep the baby trees in line, I went through and carefully picked off the sprouts coming off the rootstocks, and will repeat the task as needed until the scionwood is growing strong.

Like many aspects of homesteading, care of a baby tree doesn't take much time, but should be timely.  I think the biggest difference between someone with a green thumb and someone who kills every plant they try to raise is the willingness to spend a few minutes a day with their eyes wide open, then a few more minutes tending to whatever needs their care.  Just walking through our core homestead with my senses wide open is another of my favorite parts about homesteading.

Joey git-annex devblog
day 154 catching up

Worked through message backlog today. Got it down from around 70 to just 37. Was able to fix some bugs, including making the webapp start up more robustly in some misconfigurations.

Added a new findref command which may be useful in a git update hook to deny pushes of refs if the annexed content has not been sent first.

BTW, I also added a new reinit command a few days ago, which can be useful if you're cloning back a deleted repository.

Also a few days ago, I made uninit a lot faster.

Anna (Anna and Mark: Waldeneffect)
Dogwood winter 2014
Frozen apple blossom

Forecast low: 26.  Actual low: 23.  Fruit damage: high.

I've tried protecting tree blooms in the past, but haven't had any luck with wrapping trees and don't want to try to run sprinklers all night.  So we just roll with the weather, some years not getting any tree fruits at all.

I had hoped that this year's slow spring meant our trees would bloom late enough to miss the hard freezes, and the blooms were slow, but the freeze still came.  The question is --- did it kill everything?  It's hard to say how low the temperature actually got at various levels above the ground and in different parts of the yard.  The apple blossom above was clearly nipped, but many of the dwarf apples closer to the hillside are running slower and are at first pink or even tight cluster stage --- some of them might have made it.  (Here's a chart of critical temperatures in case you're dealing with a similar late freeze and want to guess which of your trees are in danger.)

Freeze protection in the garden

Strawberry flowers at popcorn stageLow-lying plants are much easier to protect.  I pulled out all of my old pieces of row-cover fabric to shelter tender vegetable seedlings like lettuce, broccoli, and cabbages.

At this time of year, I often cover up strawberries too, but only a few had even opened as far as the flowers shown to the right --- "popcorn stage."  The popcorn flowers will have gotten nipped, since they can be damaged when the temperature drops to 26.5, but tight flower buds are okay down to 22.  I figured it was better to miss five or ten of the earliest strawberries than to lose whole beds of broccoli.

Protecting lettuce seedlings

Under their covers, all of the seedlings came through with flying colors, even though the freeze was so hard that weeds in the yard like clover and dock were nipped back.  I usually don't cover peas, but I was a little concerned about them and carefully laid a row cover over half of the beds.  Interestingly, of the uncovered beds, one (in front of the trailer) was moderately nipped and one (in the mule garden beside quick hoops) looked just fine.  A few pea seedlings elsewhere in the mule garden came out from under their cover and those were nipped, so it seems like microclimate effects are hard at work in the garden.

The good news is that, even if we don't get any tree fruits this year, we should have plenty of berries to go around.  Our blueberry flowers are in what's called a tight cluster, safe down to 20 to 23 degrees, so most should be okay.  Blackberries and raspberries haven't enough thought about blooming, and their leaves came through the freeze just fine.  Add in strawberries and figs and we'll definitely enjoy fruits this summer --- yet another reason to grow berries even though they take a bit more work day to day than fruit trees do.

Joey chatter

The weird thing about this to me is that while telehash uses a DHT, it's only used for finding routes between peers, not longterm data storage as proposed here.

Joey chatter

Got my visa, going to Brazil!

I had been very doubtful it would arrive in time, since they're overloaded with World Cup. There may have been some strings pulled behind the scenes.. Anyway the turnaround time was under 1 week.. much much faster than anticipated.

Anna (Anna and Mark: Waldeneffect)
Baiting hives for swarms

Swarm trap baitsLast year, I started researching swarm traps just as the garden was heating up, so we didn't really manage to get anything going in time to catch a swarm (although a swarm did end up in the barn anyway).  But now that we have all of our ducks in a row, it's simple to bait a few hives with lemongrass oil and hope we'll catch free bees.

This is a bit early in the year to be setting up swarm traps, but Mark noticed some honeybees nosing around the porch over the weekend, and we wondered if they were looking for a new hive cavity.  The colony in our Warre hive still hasn't started building comb in the empty third box, but bees don't always read books, so it's possible the bees figured it would be easier to swarm than to build down the way they're supposed to.  I could know for sure what's going on if I opened up the hive and looked for developing queen cells, but I'd rather toe the Warre line and leave the hive closed, then hedge my bets with swarm traps.

I baited three different hives, and need to put in an hour to finish building last year's real swarm trap and install it as well.  It will be interesting to see which of the following a swarm of honeybees prefers:

  • A Langstroth hive made up of two shallows, one box with fully drawn comb and one box empty.
  • A Warre hive made up of two boxes, both with fully drawn comb.
  • A top bar hive with no comb and smelling of mouse.  (Over the winter, a pesky rodent nested under the lid, and even though I brushed away the nest, the scent remains.)

While this experiment is far from scientific, I'm always curious which of the main beekeeping methods the bees themselves would prefer, and this should give me some indication.  Here's hoping we catch a swarm early enough that it makes it through the winter!

mark (Anna and Mark: Waldeneffect)
Wardrobe malfunction
poking fun at fig protection

We've been having a problem with our young fig tree "accidentally" exposing herself.

I've tried to explain to her how "good" fig trees stay buttoned up, but the only response I get is the classic rolling of the eyes with some lame excuse about how other fig trees are dressed these days.

Anna (Anna and Mark: Waldeneffect)
Small-scale chinampas
Small-scale chinampas

Baby snapping turtleAs one of our readers commented, my terraforming project created tiny chinampas.  All winter, the rye I sowed on the raised parts of the beds thrived despite the soggy aisles, and come spring, wildlife moved into the little ponds between the beds.  I found two baby snapping turtles hanging out in the shallow water this weekend, and plenty of tadpoles are escaping their eggs to join in the fun.

As long-time readers will realize, we struggle to deal with the wet ground in certain parts of our garden, so seeing how well these little chinampas do has been an eye-opening experience.  I decided to go ahead and dig the back garden into similar raised beds to ensure that this year's tomatoes don't suffer from wet feet.

Building a raised bed

You'll know if your soil is wet enough to need small-scale chinampas because rushes and sedges will be growing in the mown aisles along with grass.  To confirm that the groundwater is too high for the soil to be planted into as-is, dig around a clump of earth, then grab the grass on top as if lifting the clump up by its hair.  If the soil is well-drained, the whole clump will stay together since roots go straight down into the subsoil.  If the soil is waterlogged, the top will peel off since the plant roots stayed in the inch or two of soil above the water.

Raking a bed flat

I dug one long chinampa Monday, which is about all my wrists can take before they start to complain.  I mostly tried to place the sod grass-side down so it will rot quickly, but I wasn't all that particular about it, knowing that I can always lay down some cardboard over top before transplanting in my tomato sets.

Of course, the down-side of turning the garden into chinampas is that I may be walking through an inch or two of water in the aisles if the summer is wet.  But better my feet get wet than my tomatoes complain!  Plus, if the aisles turn into ponds, they won't have to be mowed, right?

Joey git-annex devblog
day 153 remotedaemon has landed

After fixing a few bugs in the remotecontrol branch, It's landed in master. Try a daily build today, and see if the assistant can keep in sync using nothing more than a remote ssh repository!

So, now all the groundwork for telehash is laid too. I only need a telehash library to start developing on top of. Development on telehash-c is continuing, but I'm more excited that htelehash has been revived and is being updated to the v2 protocol, seemingly quite quickly.

Joey chatter

And that's the first time I've bought glasses online. Was wanting some prescription sunglasses anyway..

Anna (Anna and Mark: Waldeneffect)
Turning spring around
Carolina wren

All winter, our farm grows toward the sun.  I plant most of our fall and early spring crops in the mule garden, the furthest away from the shade of the hill.  We bask in the warmth that comes in the south-facing bank of windows in front of the trailer, and our tractored chickens do the same with their open-fronted living quarters.

Chicken tractor in the garden

But as April brings a spell of days in the low 80s, everything turns around.  First comes the chicken tractor, which I literally turn 180 degrees so the solid back creates a shaded zone for hot afternoons.  I start to close the shades on the trailer's west windows to block out afternoon heat.  And soon we'll even switch our work schedule so we do outside tasks in the morning instead of the afternoon.

Four-leaf clover

This heat spell won't last long, and by tomorrow I'll be scurrying around to cover up seedlings, glad the strawberries haven't yet opened their blooms.  The hint of summer was fun, though, since it gave me the chance to lounge in the yard and find the year's first four-leaf clovers (two in one patch).

Roast rhubarb salad

As a completely unrelated side note, I really appreciated everyone's rhubarb suggestions!  I merged several pieces of advice together by tossing about a cup of chopped stalks with about two tablespoons of strawberry freezer jam and roasting them at 450 degrees for about ten minutes until they were just becoming soft.  Adding the strawberry-roasted rhubarb to a spring salad of lettuce, baby kale, and arugula, topped with hard-boiled eggs, a store-bought avocado, and a bit more strawberry jam drizzled on top was delicious!

Joey chatter

ascii art that's also valid haskell code would be a funner constraint.. some day

Anna (Anna and Mark: Waldeneffect)
Waiting for the first fruits from grafted trees
Apple flower buds

Mark and I only tasted our first homegrown apples last year, and those trees were already two or three years old when we put them in the ground four years ago.  By that math, the little trees I grafted this spring won't fruit until 2020 or 2021.  It's hard to imagine waiting five to eight years to taste the fruits from the trees we just grafted.

On the other hand, you can also look at those non-fruiting years as an opportunity to really get the orchard in stellar order so the eventual fruits are so chock-full of micronutrients they knock your socks off.  To that end, I'll be growing cover crops in the tree alleys where this year's babies will be set out next year, and then I'll probably grow vegetables or raspberries in between the baby trees in later years until the trees begin to fill in their space.  The bed I pulled blackberries out of last fall is proof that simply topdressing soil with manure and mulch every year will result in supremely dark and loose earth in no time, and I'm sure my apple trees would love some soil like that to grow into.

Cabbage transplant

That mental perambulation reminded me that I have some spare room in between the new grape vines I installed this past fall.  I mulched the grape rows well to begin the battle against weeds, but the transplants won't have spread their roots far yet.  Why not sneak in an extra two dozen cabbage transplants into that ground?  In an effort to hedge my bets against weird weather, I started about 200 more cabbage seedlings under the quick hoops than I actually need, and they all came up, thrived, and need homes.  I know I have a plant-propagation problem...but I can quit any time....

Joey git-annex devblog
day 152 more ssh connection caching

Made ssh connection caching be used in several more places. git annex sync will use it when pushing/pulling to a remote, as will the assistant. And git-annex remotedaemon also uses connection caching. So, when a push lands on a ssh remote, the assistant will immediately notice it, and pull down the change over the same TCP connection used for the notifications.

This was a bit of a pain to do. Had to set GIT_SSH=git-annex and then when git invokes git-annex as ssh, it runs ssh with the connection caching parameters.

Also, improved the network-manager and wicd code, so it detects when a connection has gone down. That propagates through to the remote-daemon, which closes all ssh connections. I need to also find out how to detect network connections/disconnections on OSX..

Otherwise, the remote-control branch seems ready to be merged. But I want to test it for a while first.

Followed up on yesterday's bug with writing some test cases for Utility.Scheduled, which led to some more bug fixes. Luckily nothing I need to rush out a release over. In the end, the code got a lot simpler and clearer.

-- Check if the new Day occurs one month or more past the old Day.
oneMonthPast :: Day -> Day -> Bool
new `oneMonthPast` old = fromGregorian y (m+1) d <= new
        (y,m,d) = toGregorian old

Today's work was sponsored by Asbjørn Sloth Tønnesen.

Joey chatter

I have sometimes considered renting a very-high-res video camera (Red or something) and bringing it to the back of conference auditoriums, then replaying each visible screen later.

for research purposes only of course..

Joey chatter

is tidy closing tags client-side? I'd expect servers would need to be responsible for rejecting invalid html

(otherwise, there would be a security hole)

Anna (Anna and Mark: Waldeneffect)
Seasonal eating in mid April

The garden bounty is starting to come in, which is lucky since our freezer and larder are nearly bare.  We're eating leaf lettuce every day, kale nearly daily, shiitake mushrooms from the old logs under the fruit trees whenever they feel like popping up, lots of chives and Egyptian onions, and masses of eggs.  Working with what's in season, I made this recipe with shiitakes and dandelion greens in place of the sweet potatoes, and it was delectable!

The new crop coming in this week is rhubarb.  I have two neglected plants...neglected because I rarely think of eating rhubarb.  The trouble is that the sour stalks require so much sweetening, they don't push my good-for-you buttons.  Does anyone have a recipe for rhubarb that doesn't rely on copious sweeteners?  If all else fails, I'll do what I usually do --- give the stalks to my mother or brother to bake into a pie.

Joey git-annex devblog
day 151 birthday bug

Pushed out a new release today, fixing two important bugs, followed by a second release which fixed the bugs harder.

Automatic upgrading was broken on OSX. The webapp will tell you upgrading failed, and you'll need to manually download the .dmg and install it.

With help from Maximiliano Curia, finally tracked down a bug I have been chasing for a while where the assistant would start using a lot of CPU while not seeming to be busy doing anything. Turned out to be triggered by a scheduled fsck that was configured to run once a month with no particular day specified.

That bug turned out to affect users who first scheduled such a fsck job after the 11th day of the month. So I expedited putting a release out to avoid anyone else running into it starting tomorrow.

(Oddly, the 11th day of this month also happens to be my birthday. I did not expect to have to cut 2 releases today..)


List of feeds:

  • Anna: last checked (25 posts)
  • Anna and Mark: Waldeneffect: last checked (1729 posts)
  • Anna and Mark: Clinch Trails: last checked (10 posts)
  • Joey: last checked (63 posts)
  • Joey chatter: last checked (394 posts)
  • Joey git-annex devblog: last checked (152 posts)
  • Joey: 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)