The Long Dog Snout

Sticking my nose where it belongs, time and time again.

Thursday, December 04, 2008

About my flock... of chickens...

What I wrote as a comment at http://vituperation.com/

I ordered 35 cornish X from Welp Hatchery two months ago. They specialize in Cornish X and have the best prices I found - spoke with twelve hatcheries. Anyway, they sent me 40. Two died in the first day or so - normal attrition rate, I think. Then in week 5 I lost one I wasn’t expecting - heart attack, maybe. Lost another to a broken thigh bone a day later. And another the following day. Another mystery death. Two more died in week 6 from - uh - who knows what.

So, we processed (killed) ten that were looking peaked last weekend, at week 7 + 3 days. Those are all at about four pounds dressed. I have 21 more to “process” this weekend and next. They’ll be at 8 weeks + 3 day and probably about five pounds dressed.

My last batch - my first, actually - I raised during July and August. They did much better compared to these. After week two, I had them outside in the sun for most of the day, foraging on their own. I put some regular dual-purpose birds in with them to - what? encourage them? Yeah. Well, it worked. Cut way down on feed consumption and mortality. Their droppings were normal, they kept themselves beautifully clean. And they raced around with the other birds like normal, albeit large, birds. And I had no deaths. There’s pics of them up on our web site at http://diehn.net/gallery/spring-2008 - all those birds are the same age, by the way. Oh, it wasn’t spring, it was late summer and fall.

So, if I do any more Cornish X, I’ll only start them during the hot months when I can get them outside early and keep them active. Late in fall is *not* the time to start Cornish X chicks. OK, maybe it’s not a great time to start any chicks, but these in particular - no.

Thanks for the thought provoking post.

He reposted it as an example of someone not having bad experiences with the Cornish Rocks. I got ramped up to write another long comment and then decided it would be more appropriate to put it here and put a short comment there with a pointer here. Isn't that the "done thing?" So....


I've got a small flock of eight layers. I have five Hi-Line Brown commercial layers and three normal birds. Four of the Browns are laying now. I'm pretty sure the other and two of the normals will be starting up soon. The normals are a Silver Laced Wyandotte, a Araucana and a Barred Rock.

If you haven't seen it, you gotta have a look at the Hy-Line.com web site. It's fascinating. Like really weird things are fascinating. It's like they've completely forgotten they deal in living animals. But hey, that's commercial egg - uhm, production - for you, I guess.

I like my Hy-Line birds. I got them at five months and they came with clipped beaks. I'd heard about that practice but it never occurred to me the birds I'd ordered would have had it done. Dumb, but there I was - shocked. Birds with clipped beaks look really, really odd. Anyway. They're all named Hennie. Sometimes if there are a few together that I'm talking to, one is Hennie and another is Cluck. They talk a lot.

I'm ambivalent about commercial breeds like the Cornish Rock X and the Hy-Lines. I feel like maybe I shouldn't be supporting the industry - as if I knew enough to judge it. On the other hand, they are well - uhm, well designed, I guess I'd have to call it. The Cornish Rock X are good - they're kinda dull, kinda vanilla, and they're not around long enough for me to form an attachment.

On the other hand, I'd like to try some larger, longer-lived birds as meat birds too. See if they taste any different. We'll see. Here's one I just found out about: The Delaware. Seems they were a common breed for meat birds before the CRX. The Wyandottes are apparently also good dual-purpose birds. Mine is about the largest bird I have right now - probably three to four pounds at six months she is. She's a layer for me, but shows that the breed has potential for meat.

Well, back to the coop. Gotta clean their ramp again. Maybe I shouldn't have built it under their perches....

Wednesday, October 01, 2008

Can a bash script figure out the full pathname to itself?

Yeah, but it needs help. Here's a script demonstrating a technique I just developed.


#!/bin/bash
#
#--------------------------------------------------------------------------
#
# Written 2008-10-01 by mike@diehn.net.
#
# Demonstrates a technique for acquiring the full pathname of a
# script from within the script itself, using only shell
# features. I also show how to get just the parent directory
# name from that result, again using only shell features.
#
# $0 contains the name of the script as it was invoked.
#
# $PWD always contains the full pathname of the current
# working directory. What you get if you typed "pwd"
# and pressed at the command line.
#
# When a bash script is invoked, these are the possible formats
# for the contents of $0:
#
# /full/path/to/scriptname
# relative/path/to/scriptname
# ./rel/path/to/scriptname
# ./scriptname
# scriptname
#
#--------------------------------------------------------------------------

# First, build the full pathname to this script.
#
case "$0" in
/* ) MyFullPathName="$0" ;;
./* ) MyFullPathName="$PWD/${0#./}" ;;
*/* ) MyFullPathName="$PWD/$0" ;;
* ) echo Whoopssss; exit 1 ;;
esac

MyDir=${MyFullPathName%/*}
MyName=${MyFullPathName##*/}

date
echo $MyFullPathName
echo $MyDir
echo $MyName

Monday, September 22, 2008

Killing the meat birds.

We (ok, I) bought chickens this summer. Got four layers and four meat birds. Now, meat birds are an interesting breed. Amazing really. Our were Cornish Rock cross and by the time they were ten weeks old, last Friday, they were seven or eight pounds already. Big as full grown regular chickens, but clearly still juvenile.

The layers (big pic) are a mix-mash of cool breeds. We have an Ameraucana, a Barred Rock, a New Hampshire and a Silver Laced Wyandotte. They're all normal sized for ten weeks but next to the meat birds, they looked pretty small.

I built them all a wee coop (big pic) to live in. Actually, just to sleep in. They all run about free range - truly free range - during the day and then they come home to roost at dusk.

This past Sunday, the 21st of September, my neighbor Brent and I killed the four meat birds. Andi, Tallis and Luca documented it as best as they could. Barnaby distracted them as often as he could.

Quite a process, but nowhere near as unpleasant or messy as you'd believe reading most of the accounts I found on the blogs around the 'net.

The boys were rather upset about the killing, Tallis more than Luca. Luca was contemplative mostly. A bit sad and quiet, but mostly seemed ok with it. They went through grieving the birds' death really fast, though. Tallis was inside with Andi and Luca for a while, crying really hard. I went in before we did number four (the last) and asked if he wanted to be there for that one and he did. From then on he was in engaged, interested and involved. Andi gave him her camera to work with and had him document and much as he could. That helped a lot, I think. He was solemn - so was Luca and the rest of us, for that mater - but he was upset anymore.

I took a hit to the heart too, actually. This was my first killing of really anything except fish. And road-kill. I was there when each of my two dogs were put down, but I wasn't doing it myself, you know? So, this grief was wan and shallow and came on stealthily. When it was all done and the carcasses were icing down, I noticed I felt down and grey and letharigic. Took a few hours of sunshine and calmness to come around fully. I expect next time it'll be a lot easier.

The best help I found on the web is Chicken Processing by Kimberly Bobrow, at her family blog. Her detailed narrative from the perspective of a first-time chicken processor was right on the money. Our experience followed theirs nearly identically, though I didn't find the plucking or disembowling as difficult or unpleasent as Kimberly reports they did.

We were careful to measure the scalding temperature (140F/60C) and did the scalding for 75 seconds - or as close to that as we could. We found the first and fourth birds easiest to pluck - for both of them, the water was 140F/60C. We numbers one, two and three right together. For numbers two and three, the water cooled slightly, about five degrees F for each bird, to 135F and 130F. And it made a difference. I had a tough time getting the wing feathers out of number three. We let the water heat up again for number four and again, the plucking was easy.

So, the scalding process is important. Most of our time we spend on plucking and if we'd hosed the scalding it would have taken a *lot* longer.

Sharp knives are also very important. So much so that I even stopped to hone one of mine while I was working and found it'd gotten dulled. The first leg I cut off I did wrong and hacked around the bone quite a bit before I figured it out. Soft steel, hard bone, dull knife....

What else? Oh yes, cut the neck out before you try to remove the entrails! Wow. That would have been a lot easier. As I did it, I had two hands buried in the bird each time, trying to cut the off esophagus, just below the neck from inside. Paring knife in one hand, the other wrapped around the guts, fishing for the stringy bits up top. Had to move very slowly and carefully. Still sliced my hands a few times.

So, do the neck bit first. Then cut around the vent (anus) and remove the entrails. And don't forget the oil gland in the tail.

The gall bladder is delicate. More delicate than you'd expect after you learn how tough everything else is. Just be carefull when you're seperating it from the liver. Best do that in a large pan so if you spill it, the bile won't contaminate your table and get all over the meat.

For now, suffice it to say it was a bit unsettling for all of us and about as messy as cleaning a mess of fish. Smells about the same, too. OK, not so fishy, you know, but the guts and stuff smelled the same. Hmmm... so did the horse, come to think of it. I guess everything smells that way when it's dead and gutted.

Turns out, by the way, that packing tape alone makes a fine killing cone. Don't even need plastic bags or anything - just wrap the tape around their bodies, pinning their wings down. I tried a bag with the first bird and she just blew out of it like a rocket. I realized that, hey, when it's time to take this tape off, she'll be dead. So we just taped her wings down and that worked great. Tape came right off afterwards, too.

We have lots of pictures and when I remember to suck them off the camera, I'll post some here with some more narrative of the process.

Thursday, May 22, 2008

Learning that I have ADHD

My wife forwarded me a link to Karen Barrow's 5/21/08 article in the New York Times' on-line Health Guide section. It's people with ADHD talking about their experiences. I was almost crying with relief by about the middle of the second clip. I was diagnosed with ADHD just about ten days ago and I'm having a hard time accepting it and understanding what it means.

Growing up in the 70s and 80s, I was hyperactive. Very. My mother had me on a diet that apparently helped - no artificial colors or flavors is what we recall about it. But, as I grew older into my later teenage years and even more so when I left home, my parents influence waned and I forgot the diet. I lost track of the idea that I was a hyperactive person. I guess I assumed that was a childhood thing that I'd grown out of. But it wasn't.

I'm 41 now and have fought with depression, shame, and many other emotional problems all my life. I've always changed jobs every 18 months or so - except for a five year, hellish stint in the US Navy. I've left a long trail of large piles of half-finished projects, systems and tasks in my wake. My relationships - until I met my wife - have always been fractious. I don't have friends easily - probably because I can't sit still with them for more than a few minutes.

Just as Robert Cimera related, it never occurred to me that I was any different, really. I just thought that I wasn't as good at life as you all are.

I resist my diagnosis. I haven't really accepted it yet. I don't want to be that person that makes excuses for everything they say they can't do because they have this disorder or that disorder. I know that's nuts. I know it, but I can't really get past it yet.

Thursday, March 20, 2008

Menu-drive changes to PAM with authconfig.

Authconfig may not be in all distributions. I found it today in RedHat Enterprise Linux 4.0 Application Server (rhel4as) and it was helpful enough that I want to share it here.

I know a bit about how PAM based authentication works but when I looked at /etc/pam.d I found it's way different in RHEL 4 AS than it is in Ubuntu and openSUSE. In /etc/pam.d/{something} I found a note saying not to edit the file because authconfig would overwrite any changes I made. The authconfig man page is hoary, but here's what you need to know:

  • authconfig is a curses menu program that offers checkboxes and forms to guide you through setting up various authentication methods.
  • Use "authconfig --test" to play arround - it will pretend to be doing at real reconfiguration but won't change anything. You can use it to see what you'll need to know to configure, say, LDAP-base auth.
  • Plain authconfig will bring up the menu in live mode.
  • There are command-line switched to do everything you can in the menu - use those for scripted changes.
That's it. Enjoy.

Thursday, February 14, 2008

Studying openSUSE Yast Online Update (YOU).

2008-02-14 mdiehn.
Hi, this is Mike. I'm just making notes as I learn, so not to forget what I've discovered. Happy Valentine's Day.

Working on rondo.fluent.com, an openSUSE 10.3 system - trying to understand the workings of the Yast Online Update system. We want to make a local repository and wondered if we could "piggy-back" the server on a YOU client. So I'm studying a client while it works.

Found that /var/cache/zypp contains a set of xml files for each software repository configured in YAST. Have a look at what I found in them:


rondo:/var/cache/zypp # ls
raw zypp.db
rondo:/var/cache/zypp/raw # ls
openSUSE-10.3-DVD 10.3 openSUSE-10.3-Updates
rondo:/var/cache/zypp/raw/openSUSE-10.3-Updates # ls
repodata
rondo:/var/cache/zypp/raw/openSUSE-10.3-Updates/repodata # ls
patch-aaa_base-4866.xml
patch-alsa-4737.xml
patch-amarok-4492.xml
.
[300 some xml files omitted]
.
patch-yast2-trans-de-4889.xml
patch-zypper-4530.xml
primary.xml.gz
repomd.xml
repomd.xml.asc
repomd.xml.key
rondo:/var/cache/zypp/raw/openSUSE-10.3-Updates/repodata #


Looks like an xml file for every patch on the update server. The actual RPMs containing the patches aren't put here. Instead, they appear in an ephermial stucture under /var/adm/mount that exists only while the update process is actually running:


rondo:/var/adm # find .
.
./mount
./mount/AP_0x00000002
./mount/AP_0x00000002/rpm
./mount/AP_0x00000002/rpm/x86_64
./mount/AP_0x00000002/rpm/x86_64/kernel-source-2.6.22.17-0.1.x86_64.rpm
./mount/AP_0x00000002/rpm/x86_64/kernel-source-2.6.22.16_2.6.22.17-0.2_0.1.x86_64.delta.rpm
.
[the rest of the find output isn't relevant]


Only the rpms currently and immediately in use by the update process exists. Looks like it operates on one "patch" at a time and that occasionally that will mean more than one rpm in the queue at once, as we see here.

More later as I find it.

Tuesday, January 29, 2008

Infiniband Ping Pong.

Intuitive to some, not to others.

If you want to ping across an Infiniband network, like we use ping to test other networks, you could use ibping. Pick a system to be the destination of the ping and then go find out it's Port GUID and start a ibping server on it:

Set one system as the "server" thus:


autosup25:~ # ibstat
CA 'mthca0'
CA type: MT25204
Number of ports: 1
Firmware version: 1.2.0
Hardware version: a0
Node GUID: 0x00066a00980095d7
System image GUID: 0x00066a00980095d7
Port 1:
State: Active
Physical state: LinkUp
Rate: 10
Base lid: 3
LMC: 0
SM lid: 1
Capability mask: 0x02510a68
Port GUID:
autosup25:~ # ibping -v -S
ibwarn: [11498] ibping_serv: starting to serve...


So, the port guid on this machine is 0x00066a00980095d7. We'll need that on the other end. So, now pick the server from which you want to start the ping - this feels backwards doesn't it? - and do this:


autosup30:~ # ibping -G 0x00066a00a00095d7
Pong from autosup25.mi.fluent.com (Lid 3): time 0.157 ms
Pong from autosup25.mi.fluent.com (Lid 3): time 0.100 ms
Pong from autosup25.mi.fluent.com (Lid 3): time 0.091 ms
Pong from autosup25.mi.fluent.com (Lid 3): time 0.121 ms
Pong from autosup25.mi.fluent.com (Lid 3): time 0.090 ms
Pong from autosup25.mi.fluent.com (Lid 3): time 0.092 ms

--- autosup25.mi.fluent.com (Lid 3) ibping statistics ---
6 packets transmitted, 6 received, 0% packet loss, time 5799 ms
rtt min/avg/max = 0.090/0.108/0.157 ms


Now, I just move from system to system pinging that server to make sure all my servers are able to talk over the Infiniband link. Vary this a bit and you could use it in Nagios or something to monitor the IB network in a compute cluster.

That's it. All done. Except, don't forget to go kill the ping server on your target.