Up Mt. Diablo

Last weekend we had a break in the rain and decided to get out of the house.  So we loaded up in the van and drove up Mt. Diablo (we've never been up before).  And then hiked around the top.

From the observation deck, which appears to be almost brand new.  The view is pretty spectacular, especially when everything is green.

I let Heather use my binoculars and she thought it was pretty great to look at anything and everything through them--even if it was only 3 feet away.

Out hiking the summit-loop trail:

Corinne thought climbing rocks and walking the paths was pretty awesome, but that wasn't going to be feasible once we got on the actual trail around the summit.  She wasn't enthused about the backpack at first, but once we got moving she was fairly pleased.

It was nice to get out and about, even if it took almost an hour to get up the mountain.  There was a line at the entrance gate that was moving incredibly slowly.  And then while we were waiting an ambulance and fire truck came up and passed us.  I'm sure taking the firetruck up the mountain with all the switchbacks and narrow lanes must have been fun.  I'm not sure what the correct protocol would have been if you had met the firetruck while coming down as the firetruck was coming up on the wrong side while passing all of the cars stopped waiting for the gate.  There wasn't room to go anywhere except in reverse.

The firetruck came down shortly thereafter, but we never saw the ambulance again.  So it must have gone down the northern entrance.

Here I am again.

I began tapering off my Zoloft several weeks ago (under medical supervision; I'm not THAT crazy). I've been completely off it for 2.5 weeks. I thought I was doing fine, but a few days ago, I was suddenly a train wreck.

I am drowning. I am suffocating. Any bit of light or joy is fleeting. Only the darkness will last. I know this feeling very well.* I don't like this feeling.

But I deserve it. I am a horrible person, and I should obviously be miserable. I am impatient and snappish, despite there being real arguments to be made that my husband and daughters are some of the awesomest in the history of ever. I can't manage basic chores around the house. I can't focus. What kind of person is only patient or kind or caring or tidy when she is medicated? I'm going through the motions with the girls, but it's all an act. I (try to) do the things and act the way I normally would, but the motivation is all wrong. It feels unnatural, and so difficult. I love my family more than anything, but right now, it wouldn't take much to convince me that any stranger off the street could fill my role here better than I do.

When I'm medicated, I know that my brain chemistry is whacked and the Zoloft simply puts it to rights. That it enables me to be my best, true self.

Without the meds, I know that this useless, pathetic sack of misery is my true self. How could adding something from outside of you reveal your true nature? That doesn't even make any sense. This is who I am.

I'm not sure why I want to post this. Sometimes, I just feel like things need saying.

*Fortunately, I recognize it perfectly, and I know exactly how to make it go away. I emailed my psychiatrist yesterday. I restarted the Zoloft yesterday. It'll take a couple weeks to get back up to my full dose, but I'll be back to enjoying my incredibly blessed life soon. Because I choose happiness over misery, whatever that means about my brain and who I really am.

Django Form Label for Many-to-Many with Extra Fields

I'm working on a Django application at work that has several Many-to-Many relationships that have extra fields attached to them. Setting this up using the "through" parameter on the field definition is described in the Django documentation.

My trouble came in when it came time to render this information out to the user in a form so they could update the extra fields.  From the user's perspective the relationship can't be changed, but the extra fields could be.

Extending Django's example usage about band membership, if the user were viewing the information for "The Beatles" and including a formset for all band members the form would normally render something like this:

Group Name: The Beatles
Members:
    Group: The Beatles
    Person: Ringo Starr
    Date Joined: 14 August 1962
    -
    Group: The Beatles
    Person: John Lennon
    Date Joined: 01 August 1960
    -
    [etc.]

But this is a little obtuse if the purpose of the form is to allow the user to edit the "Date Joined" value for each band member.  We can whittle the form down by telling the formset to only render the "Date Joined" field [by passing fields=('date_joined',) to modelformset_factory], but then we get this:

Group Name: The Beatles
Members:
    Date Joined: 14 August 1962
    -
    Date Joined: 01 August 1960
    -
    [etc.]

Now we can't tell to which person each date applies.

Adjusting the form so that the label "Date Joined" was instead the appropriate band members name seems like such a simple thing to change.  But I didn't want to hand-write the form as it was already being automatically built and rendered for me using using modelformset_factory and Crispy-Forms.

It took me most of a day to figure it out and in the end it was pretty simple.  I only need to implement a custom Form that overrides the constructor and sets the label using the object instance before it gets thrown away:

class MembershipForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super(MembershipForm, self).__init__(*args, **kwargs)
        if kwargs['instance'] and kwargs['instance'].person:
            self.fields['date_joined'].label = kwargs['instance'].person.name
        else:
            self.fields['date_joined'].label = 'No Person'
    class Meta:
        model = Membership
        fields = ['date_joined']

And now our output looks something like:

Group Name: The Beatles
Members:
    Ringo Starr: 14 August 1962
    -
    John Lennon: 01 August 1960
    -
    [etc.]

Since it took me most of a day to figure this out, and I couldn't find anything specifically addressing this on the Internet, I wrote this up so hopefully the next person (or me in the future once I've forgotten this) will have an easier time figuring it out.

Christmas Break

Okay, the first thing to know about our break is that we've been sick almost the entire time. Heather threw up on Christmas Eve, and Corinne started a fever on Christmas afternoon. But Heather was mostly fine after throwing up, and Corinne's fever cleared up after a day. After that, it was basically just a cold for each of them: congestion, coughing, runny noses...you know, the usual. Nothing too dramatic. And there were plenty of up times in between the periods of misery.

(Also, a lot of these pictures are not great. They're mostly candid shots of the girls in their natural states of frenzy, which lends itself to blurriness. But I wanted to get them blogged anyway.)

We've had some fun playing with different arrangements of the fort (I learned that blocking the TV is not ideal, but they found a way around it regardless):

Heather gave Kyle Wii Sports Resort for Christmas. I think he's played it for a couple of minutes so far, but she's dedicated quite a bit of time to it:

By the 28th, this kid was not looking great. She was snotty and eye-goopy and coughing and all-around yucky. Her mood was a bit improved, though.

We had made a date to go to the zoo with the Spencers on the 29th, and we figured the girls were doing pretty good, health-wise. Heather seemed to be mostly recovered from her cold, and while Corinne was still a bit yicky, she was going to be in the stroller most of the time anyway. And we knew everybody needed to get out of the house, so off we went!

Liam, Heather, and Emma

The goats are always a hit.

The zoo was Thursday. Kyle spent Friday-Sunday at death's door. I was also sick, but not as bad. (My biggest issue was the migraines flared by the congestion.) Aaaand the girls got worse again. New Year's Eve was Heather's turn to spike a fever, so we didn't do any special festivities that night.

Corinne is currently obsessed with moving her food to other containers. Also, practicing her spoon technique.

Heather comes by her bookworm tendencies honestly, at least. I love it!
Trains, yo! And tangrams!

January 2nd, we got the girls in to see the doctor. Corinne's fever was gone by then, but this virus was just dragging on forever. Both girls were still super snotty and coughing and lethargic, though Heather was showing real signs of recovery. Corinne was diagnosed with the first ear infection either of the girls have had. Very special! So she started antibiotics and started improving very quickly.

I don't know if it's clear what Corinne is doing here, but it's one of her current passions: feeding the critters.

Corinne loves pillow corners MORE THAN LIFE.

Wednesday morning, Heather was bopping around, happy as a lark. That night, she crashed pretty hard. Thursday afternoon, she had a fever. Thursday night, she had a coughing fit so long and hard she was vomiting and I had to call the nurse line for suggestions to make it stop so she could eat (pro tip: there are basically none).

So this was us back at the doctor's office again on Friday, where Heather was diagnosed with an ear infection. Same ear as Corinne, even! The doc pointed out that that's one thing they really didn't need to share.

Both girls are doing much better now. For reals, I think. [fingers crossed!] Heather still wakes up very congested, and she didn't go to church this morning. (Actually, none of us went to church on Christmas or New Year's Day. And Kyle missed 2 full days and 2 half days of work this last week. This illness has been a beast!)

I'm hopeful that Heather will be able to go to school tomorrow, but I'm not 100% certain it'll be a great experience if she does. I'm envisioning her coughing for the first 2 hours and crying/screaming for the rest because she's worn out. But she'll be devastated if she has to stay home. So I guess we'll see how she is in the morning!

Coloring this afternoon.

Christmas 2016

Christmas was quiet at home this year.

We got a Christmas tree right after Thanksgiving.  We opted out of the cut-our-own route this year.  The trees haven't been in good shape due to the drought, it's a long drive, and it doesn't save any money.  So we just grabbed one from the hardware store.

We wanted another Grand Fir, like we had last year, but no one seemed to have them.  So we ended up with a Nordmann Fir.  It seemed to hold its needles well, but it has no smell at all, and the needles have an almost plastic-y appearance.  We're going to try for the Grand Fir in the future (they apparently start stocking them a few weeks after Thanksgiving).

I added some berry-like lights to the decorations this year.  I thought they'd look neat hanging from the trellis / wisteria.  The effect wasn't quite what I had hoped, but I think I can re-work them next time around to have a better outcome.  The picture overexposes the lights hiding their color, so they're more colorful looking in real life.

On Christmas Eve we got the girls to bed and awaited Santa's arrival.

To discourage Heather from diving right in to the living room in the morning Jess set up streamers across the doorway:

Then it was to bed for the night....or so we thought.  At about 11:30 Heather got out of bed and came in to our room trying to tell us something, but refusing to open her mouth.  She then ran into the bathroom (thankfully) to throw up.  Once that was out of her system, she started freaking out about the streamers.  She was apparently interpreting them as locking us in or something.  We got her back to bed....and then Corinne woke up.  And around 4 she seemed to decide she was done sleeping.  And finally a little before 7 Heather got up, so we might as well all get up...

Surely Corinne doesn't have the cognitive capability to have been anticipating getting up Christmas morning, but she was definitely feeding off of Heather's energy throughout Christmas Eve day.  They were both completely loony.

Anyway, up we got, and much excitement was had.  But first with the requisite anticipation-building pictures:

Corinne ignored the shiny gifts and the colorful "Tote-a-fort" and bee-lined straight for the bowl of M&Ms on the desk (with lurking alligator) and starting shoveling them into her mouth (the kid is a chocolate fiend):

Heather, however, knows the routine and went for her stocking:

Gifts were opened, breakfast casserole was eaten, naps were taken, fun was had by all.

Corinne loves the fort:

Heather helps me open a gift (I think it's Funny Bones!):

Jess got a new jewelry box:

The brain flakes are lots of fun:

Heather, of course, wanted to do some science and try out the first project from The Magic School Bus Science Club (12-month subscription service).  We built a model lung (balloon), chest cavity (plastic bottle), and diaphragm (plastic wrap).  It actually works too.  Pulling the plastic wrap will inflate the balloon.  This picture is Heather recording her observations about the experiment.

A nice ham dinner was had later on in the day with fresh rolls, of course, and many dessert options.  I had been having waves of mild nausea throughout the day, but my stomach seemed to settle down by dinner and I was able to enjoy the feast.

Corinne was thoroughly worn out by the day.  She napped twice, so we thought she'd be up later than usual, but at about 7pm she dragged a pillow up to me, climbed up in my lap, set the pillow on my legs, folded in half on to the pillow, and fell asleep.