Categories
Family

Cartoon Blasts From the Past

The kids watched one of the newer Scooby Doo variants this morning before school. I deem this particular episode noteworthy because it was chocked full of all the old mystery cartoon characters. Jabberjaw, Speed Buggy, Josey and the Pussycats and Captain Caveman all figure into the plot line. There’s also a ghost character that I don’t remember too well, although the voice is familiar.

The gist of the story is there’s a “mystery solver” reunion. At the reunion, all the principal characters are kidnapped leaving only the sidekicks (i.e.- Scooby, Jabberjaw, Speed Buggy, etc.) to solve the mystery. Since it’s a Scooby Doo cartoon, Scooby takes the lead for solving the mystery. Of course, the unfamiliar ghost sidekick ends up being the baddy. The kids figured it out halfway through.

The cartoon did the old characters right, working in every little quirk and distinct mannerism from the originals, including the trademark “CAPTAIN CAVEMAN!” bellow, Speed Buggy’s sputtering-style speech pattern and Jabberjaw’s “NYUCK NYUCK NYCUK”‘s.

I have to admit it put a smile on my face seeing them all again. Even the Wife had to chuckle at all the familiar faces making a reappearance. We both watched the whole episode with the kids for a change, since there was a little something more in it for the both of us.

Categories
Family

The Lass 1, The Boy 0

When I got to the car this morning, the boy was in the back seat antagonizing the lass by flipping some straps on the back of the passenger seat. Mind you, this had little affect on the seat- he wasn’t jerking on the seat or kicking it or in any way directly affecting the lass. Merely flipping the straps on the back of the seat had the desired affect- annoying his sister.

The Boy 1, The Lass 0


About half-way to school this morning, the lass began reaching up to the boy’s window. The window on that side is broken at the moment- the track on the bottom of the window is broken off so the lifting mechanism doesn’t attach to it; thus, the window was sitting down about 3 inches this morning.

The boy couldn’t stop his sister from reaching up through the window since he couldn’t close the window. As with the boy earlier, the lass wasn’t doing anything directly to her brother. The mere act of reaching up through “his” window was enough to drive the boy crazy. He even yelled at her for “playing” with the window.

The Boy 1, The Lass 1


Upon arriving at school, we were the 4th car in line for drop off, set back a ways from the entrance door. There is no formal drop-off procedure for the mornings. Basically, it’s wherever the parents and kids feel comfortable getting out. Typically, being in the 1st or 2nd position is when kids hop out.

While we sat waiting for the line to move up, the lass decided to hop out of the car. It’s not that far a walk and I have no issue with them getting out that far back.

“Bye Dad!”, she chirped. She cast a couple of quick backwards glances at her brother to see if he was in hot pursuit. He was not.

“I’m not getting out,” he declared.

But then the line continued not to move and his sister was halfway to the door. There was no way that waiting for the line to move would allow him to beat her to the door. I remained silent the whole time. Waiting.

Waiting…

Waiting…

“FINE, WHATEVER!!!”

Finding the circumstances untenable, the boy flung the door open and hopped out. He then half-walked, half-ran in pursuit of his sister. His sister, having checked and seen that he was out of the car, picked up her pace a bit. She had a comfortable lead, but she wasn’t about to rest on her laurels.

At that point, the line start flowing and as I drove past, the boy was closing the distance but was clearly going to be second to the door.

Final score: The Lass 1, The Boy 0

Categories
Computers Programming

Document Code the First Time Around

Lesson learned- for any coding much beyond a module or two, make sure you figure out a documentation method and stick to it across all modules. I’ve just spent the past several hours going through my blogtool code and fixing all those mistakes. Tedium doesn’t begin to describe the process. I can’t imagine having needed to do that for a more significant project.

Definitely a case where it pays to get it right the first time.

Categories
Computers Programming Python

Fun With Numbers

Periodically, I try to take a look at our home finances to see if there’s something that can be done to find some hidden stash of money. So far, my efforts have been for naught.

One expense I always investigate is our mortgage payment. I’ve always tried to pay ahead on the mortgage to save on future interest payments. So yesterday I got curious about what the best way to pay the curtailment- at the same time as the payment or halfway through the month or some other day of the month? I could have resorted to a web page that calculates amortization tables, but what fun is that?

So I wrote some python code that can be used to generate a repayment table.

Here’s the meat of it:

Months = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] 
Month = 0

def setPaymentParameters(payment, rate, day = 0):

    monthlyrate = rate / 100.0 / 12

    def _calcMonth(principal, curtailment = 0):

        def _calcADB(principal, curtailment, day):
            global Month, Months

            dim = Months[Month]
            Month += 1
            if Month == 12:
                Month = 0
            return ((day * (principal + curtailment)) + ((dim - day) * principal))/dim

        # _calcMonth code starts here...
        adb = _calcADB(principal, curtailment, day)
        interest = adb * monthlyrate
        return (principal,
                adb,
                interest, 
                payment-interest,  # principal payment
                curtailment,
                (payment-interest)+curtailment,  # total principal payment
                principal-((payment-interest)+curtailment))

    return _calcMonth

So the setPaymentParameters function returns a function that will calculate the monthly interest, principal payment and so forth for a single month. The function returned is a closure over the set monthly payment, the interest rate and the day of month a theoretical curtailment payment is made. No curtailment is necessary for the function to work.

In order to determine the effect of curtailments separate from the normal payment, the calculation uses an average daily balance method. For instance, a normal payment is typically made on the 1st of the month and a separate curtailment payment is made on the 15th. The average is calculated by summing the days the principal the post-payment level and adding the sum of the days the principal is at the post-curtailment level. Then divide by the total number of days to get the average daily balance. In the absence of a curtailment, the calculation simplifies to the prinicipal balance at the beginning of the period.

Following is an example of how to use the function:

Rate = float(5.25)
Payment = float(1000.00)

Amortization = []
CalcMonth = setPaymentParameters(Payment, Rate, 15)
Principal = float(150000.00)
while (Principal > 0):
    t = CalcMonth(Principal)
    Amortization.append(t)
    Principal = t[6]

print len(Amortization)
interestTotal = float(0.0)
for i in range(len(Amortization)):
    print map(lambda x: format(x, ".2f"), Amortization[i])
    interestTotal += Amortization[i][2]

print format(interestTotal, ".2f")

The output won’t be particularly pretty, but it will list the total number of payments made to payoff the loan, followed by a breakdown of the effect of each monthly payment, followed by a calculation of the total interest paid. A monthly payment line will look like this:

['150000.00', '150000.00', '656.25', '343.75', '0.00', '343.75', '149656.25']

From left to right, we have the beginning principal, the average daily balance, the interest for the month, the principal paydown, the principal curtailment, the total principal paydown and finally the principal balance after the payment is applied. Each subsequent month uses this final principal balance number as the beginning balance.

The above snippet doesn’t use a curtailment payment to accelerate the paydown of the mortgage. To do that, the while loop needs to be modified slightly:

Curtailment = float(500.00)
while (Principal > 0):
    if len(Amortization) == 0:
        temp = CalcMonth(Principal)
        t = (temp[0],
             temp[1], 
             temp[2],
             temp[3], 
             Curtailment, 
             Payment-temp[2]+Curtailment,
             Principal-(Payment-temp[2]+Curtailment))
    else:
        t = CalcMonth(Principal, Curtailment)
    Amortization.append(t)
    Principal = t[6]

The modification is needed for the first payment. Since it’s the first payment, no curtailment is made, so the interest is calculated on the entire loan amount. The returned payment info needs to be modified then, manually inserting the curtailment payment. Thereafter, all calculations use the curtailment.

Here are the first couple of payment output lines:

['150000.00', '150000.00', '656.25', '343.75', '500.00', '843.75', '149156.25']
['149156.25', '149424.11', '653.73', '346.27', '500.00', '846.27', '148309.98']

The curtailment payment is included and the ending principal balance includes the extra payment. Notice the second line’s average daily balance number, which is higher than the starting principal balance. To fully understand that, first notice that the setPaymentParameters was called with the day set to 15, meaning the curtailment payment is applied on the 15th of the month, not the same day as the normal payment. Therefore, there are 15 days where the principal sits without the curtailment payment applied. Then the payment is applied for the remainder of the month. The end result is the ADB, which is used to calculate interest, is slightly higher than the principal balance after the curtailment.

The final answer to my question about the optimal day to apply the curtailment turned out to be- it saves the most money if the curtailment is paid on the same day as the normal payment. This makes sense since in general, paying earlier means the outstanding principal is reduced quicker, therefore interest is minimized.

But, that’s not the whole picture. Sometimes, for monthly household cash flow purposes, it is preferable to make multiple smaller payments. Will that result in a big difference in total interest paid? The answer there turns out to be no, it won’t. Depending on the amount owed and repayment length, the difference is only a few hundred dollars.

Categories
Family

The Cat Discovers the Bird Feeder

Looks like stare down, literally.

Perhaps it’s a cat feeder as well:

Feel free to supply your own caption in the comments.

Categories
Family

Remembering the Bad Times

Yesterday during breakfast, the lass was excited because her dance costume for her upcoming recital was going to be in so she’d get to try it on. She’s actually in 2 different routines for the recital and in one of them, her group of dancers will be dressed up as Disney princesses. She’s going to be Merida from Brave.

In the course of discussing this, the lass made the comment (I’m paraphrasing) “She’s the princess who’s always getting yelled at.”

Cut to the Wife, who was visibly affected by the comment. While I’m a strong believer in not underestimating kids’ intelligence and ingenuity, I have a hard time believing that the lass was implying anything by the comment. At her age, kids tend to say exactly what is on their mind, as opposed to making thinly veiled broadsides. The Wife didn’t share that view, as it was clear she had taken the lass’ comment personally.

So, for the sake of argument, let’s say the lass was that clever. Or, more plausibly, some subconscious part of her mind identifies with Merida for the reason that she thinks she’s getting yelled at all the time. Should I or the Wife take this to mean anything?

I don’t say “No”, I say “HELL NO!”

It’s a known psychological quirk of the human species to remember negative experiences more sharply than positive experiences. Kids are no different. Indeed, add a dollop of immaturity and a pinch of child-tendency-for-drama and there’s a perfect recipe for them concluding Mom and Dad do nothing but yell at them. Heck, they might view Gitmo as a vacation getaway.

But a skewed perception does not a reality make.

Kids screw-up, all the time. Part of being a parent is figuring out which screw-ups require intervention for corrective purposes. Obviously, when a kid touches a hot stove, they don’t need to be yelled at. They’ve received all the corrective information required in the form of a nice, painful burn.

But how many times do they have to be asked to pick up their rooms? My limited experience informs me that it is exactly as many times as a parent is will to ask them. I ask once. Politely. If they don’t respond, Hell follows. Most of the time, I only have to ask once. The Wife is cut from similar cloth. I’ve watched the parents who ask. Then ask again. And again. And again. While their patience is impressive, it’s not the way I, or the Wife roll.

So the kids are going to get yelled at. They make different sorts of mistakes all the time, or variations of the same one all the time. Like when they start fighting and disturbing the household with their antics. They get a chance to work it out and if they don’t I, or the Wife, work it out for them. Sooner or later they’ll realize it’s better that they work it out.

My point is that it’s baked into the cake that kid’s are going to get yelled at. It’s also baked into the cake that they’ll remember those times quicker. Probably a result of some evolutionary survival quirk. It’s not good for survival of the species if Grog keeps running into tar pools or eating poison berries.

The fact that they get yelled at doesn’t mean that’s all that happens. Last night I was rolling around on the floor, wrestling with the boy. He was giggling the whole time. The lass shared a tea-party with the Wife earlier this week. There are all the books and stories we’ve read together. Day trips to zoos and museums. Trips for ice cream and to the beach. Tee-ball, soccer, karate, hockey. Time spent helping with homework.

There are, in summary, no end to all the good or positive experiences we’ve all shared. They easily outnumber the negative ones. That is reality. Those aren’t the things that swirl at the leading edges of their memories. Unfortunate, but also reality.

It takes a sober second of consideration and reflection to remember. Kid’s don’t have that ability, it’s part of what defines them as a kid, an inability to see the larger world around them in any sense. Parents are adults, and we are not hampered by the same affliction. Therefore, we shouldn’t fall prey to our kids perception of their little world.

Categories
Misc

On Connecticut’s New Gun Laws

As I type this, new laws are expected to be passed here in the state some time late in the night. Originally, they expected it to sail through quickly, but some legislators in the House are throwing sand in the wheels by introducing amendments and the like.

There’s ton’s of analysis out there, but I’d say this one captures my own feelings on the law. Nothing in it would have prevented the Sandy Hook shootings. Overall, I’d say the new law falls under the old adage “something needs to be done, and this is something.”

Categories
Family

Bird Feeding

Given yesterday’s bird feeder post, all I can say is that it didn’t take long:

The boy really does need to learn to listen to Mom and Dad. We do know some things.

Categories
Cub Scouts

The Boy’s Birdfeeder

This is the bird feeder we built in the boy’s Cub Scout den. It took a couple of meetings for us to get them all done. The first meeting, they cut out most of the pieces and did a little assembly. The second meeting, they were all able to complete their feeders.

It took quite a bit of effort on mine and the other Dads who were able to help out. We basically didn’t stop for the better part of 2 hours. There were 9 of them to complete. I’d say the boy’s here is typical of the work, which is to say they all came out well. A couple of the boys were amazed how those pieces of wood came together to make a bird feeder.

As for the paint job, that was the boy’s doing, with a little help from the Wife and I. We had him prime it on Saturday, then he painted it with acrylic on Sunday. I helped him fill it (we fashioned a funnel out of a paper cup that he folded up- HOORAY! for resourcefulness) and he hung it himself. He chose the colors because he thought they would be attractive to birds.

He’s been disappointed so far.

It’s only been up since yesterday and I think he expected to be shooing birds off of himself as he hung it up. He keeps checking, hoping to see some birds using it. We keep telling him it’s early and the birds haven’t all returned yet from their Winter resting places.

But patience is not a strong suit of nearly-9-year olds.

Categories
Family

The Shotgun Wars- An Addendum

My last entry in the Shotgun Wars was quite well received, with a number of people impressed at the lass’ ability to think outside the box. Her inventiveness is to be expected. She is physically inferior to her older brother and if she wants to compete, she has little choice but to resort to creativity. In general, we all play to our strengths and both of them are doing exactly that.

The boy is not without his own moments, though. For instance, take the lass’ ruse the other day where she attempted to fool him. He was suspicious enough that he came back into the house to check with myself. He knows his sister too well.

There was also a moment a week or so ago where he made a desperate, failed bid to beat his sister out. She was well ahead of him, within a few steps of the car. (I should note that the walk to the car from our front door is short, perhaps 25 feet from the door. When shotgun is on the line, however, 25 feet can be a long way.) I was behind her and the boy, at that freeze-frame moment of time, was still in the house.

What happened next took place in about the space of 3 seconds worth of time. The boy came flying out of the house in a dead-sprint. As I took my next step, the boy pulled even with me and I could see there was a sort of maniacal grimace on his face. In the next second or so, he was at the car and in the car through the rear passenger side door. He had arrived at the car more or less simultaneously with is sister, but he was in before her.

His plan was now clear, he was attempting to end run his sister by getting in the backseat and then climbing into the front seat from inside the car. It might have worked, but the lass recognized what he was doing and she quickly mobilized to get herself into the passenger seat. Even so, it was a close call and I heard the two of them giggling as they jostled a bit over the seat. She was in superior position, as he’d only gotten about half-way into the seat before she’d climbed in and she laid claim to the prize for the ride in to school.

So the boy is capable of some creative moments as well. He just hasn’t been pushed as much because he’s a little more on the ball when it’s time to head to the car. You don’t apologize for not successfully coming from behind when the majority of time you’re winning from in front.