Tuesday, December 23, 2014

N is for Not Good Enough


For Uncle Charlie

When you compare yourself to others
How you are not as smart as someone
How you have not achieved as much as someone else
How you measure up as inferior

I wonder how this self-image took root
I wonder if these faults were impressed in childhood
I wonder what your brother my father took in
Growing up not knowing his own father.

I know what disapproval feels like to a child
Never good enough to hear words of praise.
I know how ready I am to hear criticism
To take it to heart that I am not worthy.

Now Wendy is compiling a dictionary
For all of us to tell you that you are a good person
Because you are a very, very good person
And we wish that you will take in our love.

Last year I wrote a poem to bring to you
For our October visit “At the End of the Day”
And we were alone when you read it
And you were moved and squeezed my hand.

I wish that you would know what that meant to me
Having a father figure show emotion and affection
Being the important person you have been for me
Able to include me in the folds of your embrace.

You have given all of us a special gift.
We feel your love fill us with approval.
You do this so effortlessly you think it is nothing
But it is everything.  It is the most important thing of all.

Hear me tell you now what you have done for me.
Charlie, I feel your gentle hand on my shoulder
And I take you with me as a presence always
Helping me to be a good person like you.

Sunday, December 21, 2014

ramapo river winter solstice

album

Tuesday, December 16, 2014

the story behind the code


Hearing your joke about how the birds lost their teeth
Saying that it was commented out in the genetic code
I think about all the comments in the computer code
That I have worked on for the past 24 years.

We use the same word in different contexts
To mean something similar.  In both cases
The code contains instructions in a different kind of language
And the code evolves as new needs and better methods emerge.

Some of the comments in my code include my initials and a date
And at least a hint of an explanation for the change.
That’s good form when you are editing computer code
Something I learned when other programmers joined me.

The genetic code researchers don’t find any comments like that.
They have to piece together a timeline when the code branched
Based on shared attributes with common ancestors
And differentiate what is convergent development.

We programmers have our separate project branches, too
But we incorporate those branches back into the head code
Merging the differences into the latest deployed version
Knitting together something like the image of a neural network.

***

When I was a boy I wanted to be an architect.
I liked to imagine buildings and then draw the plans
Sitting at my drafting board using a T-square and triangles
Then making cardboard models like a kind of dollhouse play.

When I served as the chairman of the village planning board
I saw that real world architecture is constrained by politics
And permits and finance and topology, too.
There are no such constraints on software architecture.

Writing computer code is absolutely free.
You don’t need anyone’s permission to write whatever you like.
The only barrier you face is whether the code works
Whether it does what you wanted it to do error free.

Getting paid to write computer code is another matter.
Now you are serving the purposes of your paymaster
And if the programming is going to put people out of work
I want no part of that.  I want my work to benefit others.

And so I drove a UPS delivery truck for 18 years
Providing a useful service to others, appreciated
While I interacted with everyone in a community
And grounded myself in learning about their lives.

                ***
And yet I can see in retrospect how I prepared the way
To change mid-life to computer technology work
Programming an application to help the helpers.
The job found me as I worked my daily route.

I learned how to fix personal computers
Talking to technicians assembling them at a pickup stop.
I learned how to work with software programs
Using copies customers gave me when I asked.

I had my own personal computer I got at a discount
From a stop where I would wait at the end of the day.
Over the years I found that everything that interested me
Could be found if I looked somewhere on my route.

One day I helped another worker with a grievance
A single mother who wanted to work less overtime.
And she won but I got punished as retaliation
With 16 hours of work on my truck the next day.

The next morning my reward came and my life turned.
The director of a social service agency came to my truck
Asking who I knew who could take care of their computers.
That’s when I asked, “What about me?”

                ***

After all, I thought, I can teach myself to do programming.
It’s algebra in a way.  It’s logic.  I can do that.
Not knowing what I couldn’t do, I set about the task
Creating an enterprise application while doing PC support.

As luck would have it, the system architecture was Unix
Long before Linux existed, back when everything was Microsoft.
And the users did their input on legacy dumb terminals
Not the latest local area network workstations with graphics.

Luck because I could use multiplexers and centrexed phone lines
To create a wide area network across multiple worksites.
Luck because my thin client application could be converted
To be the back end behind a modern web browser interface.

And so it came to be that my office hosted three servers
For three social service agencies, providing software as a service
Before the SaaS acronym was heard on anyone’s lips
Operating a cloud infrastructure before the buzzword began.

And when two young guys discovered what I was doing
And saw the potential to grow it into a software company
And liked the purpose of the application serving those in need
That’s when the convergence began, doing well by doing good.

                ***

Now there are 17.4 million lines of code.
No one person knows all of it without reading
To find the block that determines what happens.
So we work on modules, adding and improving.

The way to do it remains the same as ever.
Understand what is needed by asking questions.
Figure out how to extend and repurpose the functionality.
The application evolves through incremental changes.

The solution begins with data modeling.
First you need to understand the discrete entities
And how they relate to each other
When you design a database to store information.

I have enjoyed making something that draws praise
From the users making their work easier.
I have enjoyed the satisfaction of solving problems
Expanding the scope of what the software can do.

What started as 4 dumb terminals at one site serving 100 people
Now has 46,000 logins with 3,200 users online in 27 states
Who connect from 16,000 day programs and residences with 118,000 beds.
Today there are 860,000 enrolled people getting their services documented.

                ***
I’m ready to retire as I approach 70 years old.
With more than 50 people working in this company
I can let go and get out of the way
So that younger smarter people can have their day.

“It’s your world now.” is what I say to my coworkers.
“You can do this without me.”
It’s time to turn the page and innovate
To adapt the software to a changing world.

There will be new paradigms in programming.
There will be new database engines.
There will be new approaches to navigation
And new devices to access the data.

There will be new models of service delivery
And new approaches to funding those services.
All these changes are an opportunity.
Learning new ways to do things will keep you thinking.

The world will become ever more connected
And you will be there engaged making it happen
Influencing what happens in your way
Determining what is possible by what you create.

Saturday, December 13, 2014

Sterling Lake December

album