Who Will Remember My Name?

They say that when you die
you’re not really dead
until no one remembers you

I was a conqueror
A thousand stone faces
remember my deeds

Most graves say nothing
They tell no stories to the living
The dead can find sweet relief

Not so for me
I am doomed
to live forever

— H. Walker Jones, May 2017

Crime and Punishment in Modern America

This quote is so representative of the issues that divide our country.

Q. You criticize the Miranda ruling, which gives suspects the right to have a lawyer present before police questioning. Shouldn’t people, who may be innocent, have such protection?

A. Suspects who are innocent of a crime should. But the thing is, you don’t have many suspects who are innocent of a crime. That’s contradictory. If a person is innocent of a crime, then he is not a suspect.

This exchange comes from a published interview with an Attorney General of the United States and a former prosecutor.  It could have been written this week.  Instead, it’s thirty years old.  The question was posed to Edwin Meese in 1985.

A prosecutor, of all people, should know that abuses of the law by police and the legal system are common.  Innocent people have routinely been railroaded in a zeal to hold someone, anyone, accountable for crimes.  The police have a long history of deciding on a suspect and then making a case, rather than letting the evidence lead to a suspect.

Mr. Meese was strongly criticized for his words at the time, but he also had plenty of defenders then and since.  The United States has a strong authoritarian streak that sounds very appealing until people see how wrong it can go when put into practise.  Why do we keep going in so many circles before we figure out that the extremes are detrimental to ourselves?

Presidential Politics 2016

This is probably the only political statement I’ll make on the internet this year, and it’s not telling you who to vote for or pushing a particular issue in your face. I want to introduce some perspective.

Everyone is worried about the presidential election this year — will it be Trump or Clinton, I can’t vote for him and I don’t like her, if X is elected it will be a disaster for the country, what about these very fine 3rd party candidates, etc. You’re all barking up the wrong tree, you’ve forgotten how the government really works, and that the occupant of the oval office has limited powers and doesn’t really matter. What matters is the Senate, and we should be talking about senatorial candidates.

The president doesn’t install justices on the Supreme Court, judges on the Court of Appeals, or more than 6000 people onto various agencies, and the president doesn’t decide who sits in their own cabinet. The president may nominate people for these positions, but the Senate confirms those appointments. If the Senate doesn’t consent to a nominee, that nominee will not be appointed.  These appointments have lasting effects long after a presidential term is up so the appointment really matters, but the field of unappointed nominees are irrelevant.

What about the House of Representatives? Their districts are fairly gerrymandered so individual representatives aren’t all that responsive to national politics, and the House’s power is somewhat limited by design. They do play a role in budgeting and legislation, though — along with the Senate.

The president doesn’t set the federal budget, Congress does. The president does proposes a budget (and only does so because Congress can’t be bothered — by law they are supposed to make it and they can always change anything proposed by the president) but the budget is voted on and set by Congress.

You may object that “my senators are fine, and they’re not even up for election this year!” This may be true, but it’s not a good objection. We all have friends and family in other states, you can discuss the issues and candidates across the nation, and persuade them to take an interest and vote. (But never brow-beat or fight, please, that’s neither respectful or respectable.)

So in this election cycle, lets talk about the things that matter. The president isn’t one of them.

Komodo IDE Headaches

I’m slowly coming around to the idea that an IDE might be useful for PHP/Symfony projects (still not convinced about other languages and frameworks) and I’m currently trying out ActiveState’s Komodo IDE 10 on Linux.

It looks great but it’s… buggy.  One day in and I’m already getting frustrated with it.

  • The preference file doesn’t appear to be saved until the application is closed, if the application crashes it’s not clear that your changes will be saved.  This might be a safety feature, but probably not, because…
  • At least some preferences don’t take effect until the application is closed.  Not the ones that you’re warned about like checking remote files for changes, but other ones like ‘Allow file contents to override Tab and Indentation settings’ (which itself is unreliable since at least 2011).
  • When changing preferences, there is more than one place to change: Edit / Preferences, Edit / Current File Preferences, and Project / Project Preferences (the last is not under the Edit menu).
  • The cursor blinks by default (which is super annoying when you’re moving the cursor around the screen) and there isn’t an explicit option to disable it.  You have to create a custom JavaScript script that executes at every file open.
  • The toolbar icons are heavily styled, making their use opaque and the tooltips mandatory reading.
  • It has already crashed while closing — which, per the above, I’m doing a lot.

It’s not all bad, there are some really nice features:

  • Vi keybindings, so things like ‘A’ to start appending to the current line, or ‘/’ to search the current file, are really nice to someone who uses vim every day.
  • I do appreciate the ability to script things
  • The syntax highlighting and coloring seems more reliable (i.e. harder to confuse) than average.
  • The installation to a local directory was painless, and an icon properly shows up in the applications menu (I use Mate).  The default installation dir is to your home directory instead of /usr/local (which is the right thing to do for trial software, imho).

I want to like this editor, I really do, but it’s just going downhill as I work with it more.  At $250 per license it’s hard to justify the expense to my boss unless I really like it.

Beautiful Code

The mark of a master programmer is someone who writes code that a novice can debug.
— attribution unknown

I read this quote, or something very similar to it, a long time time ago when I was just starting out.

I take the idea behind that quote to mean that master programmers have the experience to find the simplest solutions, which are easier to understand, but they also make their code easier to read so errors stand out.

It came back to me while reading a novice’s request for help in debugging something.  The example was a mess, with lots of extra activity, but it was also dense and poorly formatted.  The very simple bug was hard to see because of the sheer amount of code and the inconsistent formatting.

I strive to find simple solutions to the code I write, but I also strive to make my code neatly formatted and well-spaced.  I generally limit my lines to ~78 characters; I vertically align related operators; I leave space around operators.  This goes hand-in-hand with simple code: short functions that only do one thing; effective naming of things; do the least possible.  Together these generally make code that is both robust and easy to maintain.

I think of formatting to be like engineering a bridge.  Dense code is like big thick columns, steel plates, and stone architecture — it gets the job done, but it looks so heavy.  The best bridges are light and airy, full of empty space, yet they are stronger and more resilient.

PS: if you know this quote, and know who said it first, please drop me a line so that I can attribute it properly!

Your Tax Dollars At Work

A thought for anyone who asks “Can I stop paying taxes because of this thing I don’t like/can’t use?”

There are lots of things that you pay for but will not, choose not, or hope not to use. Your tax dollars go towards welfare, unemployment, drug treatment programs, prisons, nuclear bombs, and foreign countries. Do you expect to take advantage of any of those programs in the near future?

Taxes pay for things that benefit the public at large, but don’t necessarily benefit you.  That’s a price we pay for civilization.

On Terrorism and Politics

Regardless of who sets the stage, it takes a conscious decision to play the part.

[After the latest round of terrorist bombings in Paris, people are alternately blaming Presidents Obama and Bush for setting the stage for the attacks.  ISIL may have been created as a response to the invasion of Iraq, and ISIL declared their responsibility for the Paris bombings, but the core of every atrocity committed in the name of ISIL is an act perpetrated by a thinking individual that could choose a different path — but didn’t.]