TruerWords Logo

Search TruerWords

Sign Up  Log On
Sunday, October 9, 2016

AJ: Two Cockatoos in One

AJ is our 20 year old Cockatoo. He was with friends for about five years but he's been back now for about six months.

There seem to be two different AJs. They look the same. The sound the same. We're going to pretend that they (he) calls me "Daddy." In reality he calls me <screeching sound> but we're just pretending, ok? You with me?

Day One

I come downstairs early in the morning, dressed in a navy blue shirt and denim shorts.

AJ's cage cover is no longer covering the cage. This heavy, denim cover (which outweighs the bird by at least 500%) has been pulled off the back and in through the bars of the cage. Not all of it, but about six inches at a time has been pulled through six or ten successive gaps between bars. It looks like pleating, as it's quite even.

AJ is sitting quietly, pulling more in and chewing on the cover. As I walk toward the cage he releases the cover (it doesn't move) and sits motionless.

I extract the cage cover from the cage bars, while telling AJ how impressed I am with his work. He continues to sit utterly motionless. Obviously I can't see him if he doesn't move.

I reach over to open his cage door and AJ — like a mighty predator — leaps for the front of the cage. He repeatedly bangs his face into the bars trying to bite me, and sticks one claw out as far as he can to grab a finger or, if he's really lucky, my throat.

The door released, I step away. I've barely escaped with my life.

As I round the corner and step out of sight, AJ calls out "Hi Baby! Hi! Heeeey! Hi!!" Over and over.

After I've hunted down a morning coffee at Dave's, he seems more sociable.

“That's my Daddy! I love him. He scratches my neck and under my wings and I will protect him from bad creatures like that woman who also lives here. He shares his food with me but doesn't like it when I try to share mine with him.”

End of day one.

Day Two

I come down wearing a red shirt and denim shorts.

AJ's cage is in exactly the same condition as on Day One.

AJ is doing the same thing as on Day One.

In fact, everything is the same right up until I return from the morning hunt.

He's not more sociable this time. He's neither subtle nor sneaky, either. He starts flapping his wings and screaming at me as soon as he sees me, and doesn't shut up until I close my office door.

I try to calm him down with some neck scratching, but his moment of quiet is just to throw me off my guard: as soon as my hands are in the right position he explodes into action, striking at my fingers with his beak, batting at my face with his wings. In short, he makes a best effort at patricide.

“I don't know who that is. I hate him. He tries to fool me with his soft words and treats but I know better. I will kill him, kill him, kill him until he brings back my daddy or just goes away. You've been warned, little man.

(Me:) I outweigh you about 125 to 1.

Ooh listen to the little man, he can talk! Come over here and say that to my face, small fry!

With a heavy sigh I go back upstairs and change into a dark blue (or green, gray or black) shirt. Then I walk through again on the way to my office.

“Yay! That's my Daddy! I love him! He scratches…”

(Me:) “Oh shut up.”

“Hiii!!! Heeey!! Hi Baby! Hi birdie…”

Tuesday, July 19, 2016

High Speed Chase!

The weather was beautiful today with the sudden drop in humidity, so I went out for a hill ride right after work.

I was headed south on Route 2 in North Stonington, about 3/4 mile north of the intersection with Route 95, when I started hearing sirens. Lots of sirens, and screaming engines. Coming straight at me, from the direction I was headed.

Wanting to return home fully intact, I got off the road and watched. A few seconds later, an ugly, old, beat up racer (like a suped-up datsun, maybe?) cam FLYING over the hill. Literally, all four wheels left the ground for a second. There was then a bang as he bottomed out, and some screaming wheels as he swerved around around the car in front of him (into the oncoming traffic lane which was currently empty).

Right on his tail was a long line of police cars. At least nine of them, I think it was ten but I stopped counting after five. All of them with different sirens screaming their warnings, all of them getting a little air as they crested the hill, all of them coming down with a bang. Even the SUV.


Dramatic, and stupidly dangerous. There are pedestrians and other cyclists on that road, and the traffic averages about 40mph in that section. Believe me when I say you have to be going a lot more than 40 to actually leave the ground on that little rise.

A little further up, I pulled over and sent Corinne a message, letting her know what I'd just seen. (She tends to worry if I'm on the bike and she hears sirens! I was still miles from home, but wanted to let her know I was ok.)

While I was writing the message, two of the police cars pulled onto the same road and parked next to each other, facing opposite directions as they often do. I saw one of the cops looking at me so I yelled to her, "That was crazy!" She agreed. I asked what it was all about, but she didn't know what to say. (Maybe she honestly didn't know why they were chasing him!?) I said, "You all had to be going at least 90" (mph). She pointed up… repeatedly. As in, "a lot more than 90." :-(

Last thing she told me before I rode off was that they'd been chasing him from Westerly. That's two towns and one state over (Westerly, RI -> Pawcatuck, CT -> North Stonington, CT) from where they flew past me.

Home safe and sound, though.

I wonder if they caught him!?

Thursday, February 4, 2016

Wisdom Teeth

This article on wisdom-teeth removal being a scam is the second one I've seen in a week. Perhaps people are starting to realize that wisdom teeth aren't a mistake? That some discomfort as they come in is to be expected?

I should note, though. that this doesn't affect me at all, I simply find it interesting (but not surprising). My wisdom teeth never grew in, at all. X-rays show nothing there, not even an aborted attempt at the teeth.

Also, I still have two primary molars. In both cases, my current dentist expressed surprise. Primaries aren't meant to last this long, but nothing grew under them to push them out and yet those old boys are perfectly healthy. He says the lack of any attempt at wisdom teeth is much rarer and he can't explain it. Maybe I'm not human?

Thursday, April 30, 2015

Creating Great Mobile Apps! (snark)

The following is a re-post of something I said on Facebook just over a year ago. The topic came up today in a conversation on Twitter so I figured it was time to move it to here where others can see it.

Written after Twist went under.

How to create a great mobile (iPhone/Android) app in the current business climate:

  1. Go to school, fail math. HARD.
  2. Have an idea for a cool product.
  3. Get your programming buddies together, create a demo.
  4. Optional: Show it to a venture capitalist. Get lots of money to grease the skids for the first release.
  5. Finish the app.
  6. Release the app. Make it free for everybody. You'll make it up in volume! (See step 1.)
  7. Get lots of users.
  8. Wonder why you're not yet profitable.
  9. (Optional) Get more money from the vulture capitalists!
  10. Spend lots of money on marketing.
  11. Spend lots of time on a big update that makes the app prettier and funnerer.
  12. Wonder why you're still not profitable!
  13. Go out of business. Disappoint the millions of users who would have paid for your app had you let them.
  14. Blame the system. The app store. The market. The business climate. Never consider your own utter failure at math, because who needs math when you have millions of customers ^d^d^d^d^d^d^d^d^d users!
  15. Return to step 2, wiser and stronger for your failure, to create an even better business based on a free app (in a completely different space).

This just keeps happening.

Saturday, April 11, 2015

Swift Spirals

Yesterday on Quora a particular Math question caught my attention and fired up my imagination. I've already linked to it, but here's how the question was worded:

Four persons K, L, M, and N are initially at the four corners of a square of side 'd'. Each person now moves with a uniform speed of 'v' in such a way that K always moves directly towards L, L directly towards M, M directly towards N and N directly towards K. At what time will the four persons meet?

(Why say they are people and then not give them real names? I thought that was funny.)

Let me rephrase the question. Four people (or uh... dots) are at the corners of a very large square. They're all going to move at the same time, and keep moving until they touch. Each person moves toward the person at the next corner of the square in the clockwise direction. (So the person at the top left moves toward the person at the top right.)

I didn't care about the actual question there at the end, "at what time will the four person's meet?" I was just interested in the path they would each travel, the shape it would form.

Now keep in mind that each person is always moving towards the next person, not towards the corner where that person started.

It was obviously going to be a spiral in toward the center. Could I write a program that would simulate this travel?

Yes, I could! Here's an Xcode Playground file (written in Swift) that demonstrates the whole thing. It's not fancy, but it does show the spiral being drawn and I've kept the math self-contained in a couple of functions.


Here's the same thing in some javascript, running in the browser.

  var graphSide = 500.0
  function sqrx ) {
      return ( x * x );
  var Point = functionxy ) {
      this.x = x;
      this.y = y;
  // thanks to my buddy Pythagoras
  Point.prototype.distFromPoint = functionpointB ) {
      return Math.sqrt(sqr(pointB.x - this.x) + sqr(pointB.y - this.y));
  var actorA = new Point00 );
  var actorB = new PointgraphSide0 );
  var actorC = new PointgraphSidegraphSide );
  var actorD = new Point0graphSide );
  var distToMove = 2;
  var lineWidth = 2.0;
  var canvasctx;
  function initSpirals() {
      canvas = document.getElementById"spiralCanvas" );
      canvas.width = graphSide;
      canvas.height = graphSide;
      ctx = canvas.getContext("2d");
  function reset() {
      actorA = new Point00 );
      actorB = new PointgraphSide0 );
      actorC = new PointgraphSidegraphSide );
      actorD = new Point0graphSide );
      var canvas = document.getElementById"spiralCanvas" );
      var context = canvas.getContext("2d");
  function runButtonClickede ) {
      window.setTimeoutincrementWalkers0 );
  function resetButtonClickede ) {
  // find a new point on the line between a and b
  function moveFromAToBpointApointBdist ) {
      var dist_total = pointA.distFromPointpointB );
      var newX = pointA.x + ( ( dist * (pointB.x - pointA.x) ) / dist_total )
      var newY = pointA.y + ( ( dist * (pointB.y - pointA.y) ) / dist_total )
      return new PointnewXnewY );
  function moveAndDrawFromAToBpointApointBdist ) {
      var dest = moveFromAToBpointApointBdist );
      ctx.moveTopointA.xpointA.y );
      ctx.lineWidth = lineWidth;
      ctx.lineTodest.xdest.y );
      return dest;
  // incrementWalkers is its own function so that we can see the 
  // image updating in an animated fashion. If it was just done in 
  // a loop, then all we'd see is the finished product.
  function incrementWalkers() {
      if ( actorA.distFromPointactorB ) < distToMove * 1.001 )
      // draw lines from old to new locations
      var destA = moveAndDrawFromAToB(actorAactorBdistToMove);
      var destB = moveAndDrawFromAToB(actorBactorCdistToMove);
      var destC = moveAndDrawFromAToB(actorCactorDdistToMove);
      var destD = moveAndDrawFromAToB(actorDactorAdistToMove);
      // update actors with new locations
      actorA = destA;
      actorB = destB;
      actorC = destC;
      actorD = destD;
      lineWidth = lineWidth * 0.99;
      window.setTimeoutincrementWalkers0 );

October, 2016
Sun Mon Tue Wed Thu Fri Sat
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31  
Jul  Nov


is Seth Dillingham's
personal web site.
More than the sum of my parts.