Weird Al Yankovic, In Concert

Weird Al Yankovic, promotional photoWeird Al Yankovic was a big part of Meghan’s and my childhood, and pretty much anyone in our generation.  You could say he’s a hero of sorts.  When I found out, quite by accident, that his latest tour had dates near us I bought tickets the same day.  The only decision was which venue.

I chose the Lowell Summer Music Series; as Meghan said, if it rains we would be able to say that not only have we seen Weird Al live, but we saw him in a high school gymnasium.  (The high school next door is the rain location.)  It’s outdoors and BYOBlanket; so long as it didn’t rain and move indoors the kids are free.

So, on the appointed date and earliest possible time after work (which was earlier today, as I write this) we packed up the kids and a blanket and headed to the park to stake out a spot.

Mandatory Fun stage background
The stage, shortly before the show started. They waited for dark so they could recreate the roaming camera scene from the ‘Tacky’ video (which was the opening number)

The show was flawless.  It was small enough to be fun, large enough to let the crowd’s energy really flow, and turned-down enough that I wasn’t deaf at the end.  Alpha and Beta spent most of the show in a corner of the park with some other kids, but they enjoyed the show immensely as well.  Their view was better than ours, despite the distance — they could see over the crowd, while we had to contend with the sound booth/tent.

weird al in a fat suit
Weird Al in the fat suit singing ‘Fat’. My childhood has been redeemed. Apologies for the potato quality, all I had was my cell phone and the stage lighting was particularly bright and direct during this song.

There was a good mix of old and new songs over a couple of hours, interspersed with video clips while the band changed costumes.  Among other songs (in no particular order), there was Tacky (the opening number), Dare to Be Stupid, the aforementioned Fat, Amish Paradise, White and Nerdy, an awesome arrangement of Like A Surgeon set to the “unplugged” arrangement of Eric Clapton’s Layla (really), a couple of polkas interspersed throughout (of course), and closing with Yoda.

Mandatory Fun
Cover of Weird Al’s latest album and tour

The girls were buzzing as we left the park, and wide awake despite a) being 10 pm, b) after a regular day of school, and c) on the first week of school.  They can sleep in tomorrow, there’s no school, and Meghan and I aren’t setting an alarm — our jobs are flexible enough that we can afford to be a little late.

Stargazing At MOS

There’s a small, boring backstory: Meghan renewed our membership with the Museum of Science (MOS), then asked me if we should renew it (she asked me via text, so she may have a different order of events).  I said we shouldn’t, since the girls haven’t been interested in going and we basically did not go at all last year — HOWEVER if we were to actually go just once I would be happy to renew while we were on-site.  Despite talking about this all over text, Meghan’s disappointment was evident as she dutifully cancelled the renewal.

I considered my options carefully, as the couch isn’t a particularly comfortable place to sleep, and gently reminded her that the MOS has an observatory that they open on Friday nights to view the stars — therefore it would be open later that night, and I would happily renew while we were there.  All we had to do was get the kids on board with going, or figure out what they would do while the two of us went.  (The girls thought this was a cool idea.  50 points to Gryffindor.)

Saturn
Credit to https://bkellysky.wordpress.com/

A few hours later we found ourselves standing on the roof of the MOS parking garage, waiting for our turn at the telescope.  Sadly, I could not photograph the view from the telescope, but it was a surprisingly clear view of Saturn.  A number of other people have taken photographs that are pretty similar to what we saw.  Happily the docent was informative and happy to answer questions, and didn’t make us feel rushed.  The MOS seems to have crowd management around the telescope down pat.

While we were waiting our turns, we took a few other pictures of Boston and astronomical phenomena, and watched the city bustle around us.

Jupiter and moon
Look to the left and up from the moon, that’s Jupiter. High, thin clouds were moving in, backlighting the view and obscuring the dimmer stars. The photo was taken with my cell phone, apologies for the potato-like quality.

 

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.

Fenway 2016

fenway park
Fenway Park from the grandstands (section 30)

Baba took the whole clan to Fenway to see the Red Sox play the Chicago White Sox.  It was an afternoon game so that the kids could come, too.

del's lemonadeBaba generously bought us stadium food as well – no small sum for hot dogs, pretzels, pizza, and Del’s Lemonade.

The Sox stunk until the bottom of the 5th inning, at which point they came back from 4-0 lead by the White Sox to win 7-8.

Delta fell asleep by the 8th inning, which is surprising given the amount of noise every time the Sox got a run.  Kappa, who’s about a year and a half, stayed awake and in mostly good spirits through the entire game.  Beta was well behaved, and Alpha genuinely enjoyed herself.

We left as the 10th inning was starting so that we could avoid some of the crowds with the kids and headed down the street to get dinner at Wahlburgers.

“ERROR: … failed to process… ” in NiFi

I was greeted by a few cryptic things in NiFi this morning during my morning check-in.

  1. A PutSQL processor was reporting an error:
    "ERROR: PutSQL[id=$UUID>]failed to process due to java.lang.IndexOutOfBoundsException: Index: 1, Size: 1; rolling back session: java.lang.IndexOutOfBoundsException: Index: 1, Size: 1"
  2. There were no recent errors counted in the LogAttribute counter we set up to record errors;
  3. The Tasks/Time count in the PutSQL processor was though the roof, despite the errors and lack of successes.

Needless to say, the processor was all bound up and a number of tasks were queued.  Not a good start to my day.

I checked the data provenance and didn’t see anything remarkable about the backed-up data.  The error message suggests (to me) that the first statement parameter is at fault, and that parameter happened to be a date (which has been problematic for me in NiFi with a MySQL backend).  Neither that value, nor the rest of the values, were remarkable or illegal for the fields they’re going into.

It wasn’t until I spent some time looking over the source data that I saw the problem: there is a duplicate key in the data.  This error is NiFi’s way of complaining about it.

In our case the underlying table doesn’t have good keys, or a good structure in general, and I’m planning to replace it soon anyway, but updating the primary keys to allow the duplicate data (because it IS valid data, despite the table design) has solved the issue.

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!