Northern Daydream 3: Future Proof Past… the concept for my next jazz fusion covers album project takes shape

In late 2019 and early 2020, I recorded Northern Daydream, a collection of covers of some of my favorite jazz fusion-ish songs. Then in the summer of 2020 I created Northern Daydream Volume Two: Miles Behind, a self-deprecatingly titled album of Miles Davis covers.

Not long after that, I came up with a title and tentative track list for the third album in the series: Northern Daydream 3: Future Proof Past. But I lacked the momentum to see it through. When Chick Corea died, I finished an early outtake from the first Northern Daydream project, 500 Miles High. And then I went off on a tangent with my Senioritis album, which ended up including that Chick track along with Pat Metheny’s Minuano (Six Eight), which I had originally been planning for Future Proof Past.

I also decided a couple of the tunes I had planned for the project were perhaps just a bit too ambitious. As challenging as “Minuano” was, it was no comparison to either Don Grolnick’s “Minsk” or Herbie Hancock’s “Actual Proof.” Was I really going to try to tackle that one???

This summer I decided to take a less structured approach, and instead of preparing an entire album project, I just recorded a few one-offs. A couple of Herbie tracks that had caught my ear, and a Keith Jarrett tune I had already been tinkering with for Future Proof Past.

The thing that got me really interested in revisiting the album concept was a great screenshot from the “Wiggle Waggle” video, which seemed perfect for a new album cover. So, as is often the case, I created the cover before I recorded most of the music:

I had decided I would record a side of Herbie Hancock tracks… then I considered going with all Herbie tracks… but now it seems clear to me that I need to really highlight the contrast between these two great jazz pianists, both of whom were at the peak of their powers in the 1970s.

I find the juxtaposition interesting because both played key (pun… intended?) roles in the development of Miles Davis’s electric style that really represented the birth of jazz fusion, but while Herbie Hancock was always eager to embrace the newest technologies and incorporate them into his music, Keith Jarrett rejected electric instruments entirely after his time with Miles, and ended up being one of the strongest proponents of the continued evolution of acoustic jazz through the 1970s, even though the majority of the genre’s purveyors had firmly embraced electric instruments and the fusion sound.

So, what are we talking about here exactly? This is my planned track listing:

Side H
Sly
Wiggle Waggle
Tell Me a Bedtime Story
Mashup: Rockit / Hidden Shadows

Side K
Le Mistral
Grow Your Own
Sorcery
Mashup: Long as You Know You’re Living Yours / Gaucho (Steely Dan)

“Sly” is from the 1973 classic Head Hunters, arguably the second-biggest jazz album of all time after Kind of Blue. “Wiggle Waggle” and “Tell Me a Bedtime Story” are both from the 1969 soundtrack album Herbie recorded for the first “Fat Albert” TV special, and released on his Fat Albert Rotunda album.

I’m planning a radical de-techno-fying of “Rockit” (from 1983’s Future Shock album), to mix with the esoteric Bitches Brew-esque “Hidden Shadows” from the 1972 album Sextant.

“Le Mistral” is from Keith’s 1974 Treasure Island album. It was the first Keith Jarrett track I heard that made me think, I really want to play this myself. “Grow Your Own” is from Keith’s 1971 album with Gary Burton, and it just sounds to me like music that would’ve been used in a Hanna-Barbera cartoon from the early ’70s that I would’ve heard a lot as a kid, and which makes it a nice counterpart to the Fat Albert Rotunda tracks!

“Sorcery” is an interesting one I’m still researching… I’m only aware of it existing as live version on a Charles Lloyd album. I really should probably consider making it a mashup with Herbie’s track “The Sorcerer,” which appeared as the title track of a 1967 Miles Davis album and a year later on Herbie’s own Speak Like a Child album. (There’s also a small fragment of “Sorcery” that reminds me of Coltrane’s “Impressions” so maybe there’s something there I can work with as well…)

The “Long As You Know”/”Gaucho” mashup is a bit cheeky… Keith Jarrett famously sued Steely Dan over the similarities between “Gaucho” and his own track from 6 years earlier (from the 1974 Belonging album), so why not mash them up?

I really felt I had to include tracks from both Treasure Island and Belonging — both recorded in 1974 — because at the time Keith Jarrett had two working quartets, one in the U.S. and one in Europe, and it’s interesting to hear the different directions the two groups took.

I’m also going to try to compose two new originals, respectively in the significantly different styles of these two artists. We’ll see what happens with that.

My timeline for this project is fairly long-term since I don’t expect to work on any more of it until after I finish playing in the pit orchestra for a community theater production of The Addams Family in October. But who knows?!

Here are the videos for the three tracks I’ve finished so far:

Shut off and lock down comments on your WordPress site with 5 lines of SQL

Comments are kind of passé. Well, OK, they’re still everywhere, but they’re almost universally garbage. Meaningful discussion happens on social media these days, even if it’s prompted by a blog post. And if you’re using WordPress as a general-purpose CMS rather than just as a blogging tool, then you probably have no use for comments whatsoever.

Yet, they’re built in, and they’re a spam magnet. Even if your templates aren’t actually showing comments anywhere, the default WordPress settings allow comments to come in, cluttering up your database and nagging you with a disconcertingly large number in a bright red circle in the WordPress admin bar.

Yuck.

Fortunately, if you have direct database access and the fortitude to run a few simple lines of SQL, you can quickly accomplish the following:

  1. Purge all queued spam and pending comments (while safely retaining any old, approved comments for archival purposes
  2. Prevent any new comments from appearing on any of your existing posts/pages
  3. Prevent comments from ever being accepted on future posts/pages

The last of those is a simple setting. In WP admin, you can go to Settings > Discussion and uncheck the second and third boxes under Default article settings at the top of the page. Actually, uncheck all three of those. If you’re going to turn off incoming pings, you should turn off pingbacks. But my SQL code below doesn’t.

screen-shot-2016-09-09-at-12-22-19-pm

If you’re just starting a brand new WordPress site and you don’t ever intend to allow comments, just go and uncheck those boxes and you’re done. But if you’re trying to rescue a long-suffering WordPress site from drowning in spam, read on.


Here then in all of its glory is the magic SQL you’ve been looking for:

DELETE FROM `wp_comments` WHERE `comment_approved` != 1;
DELETE FROM `wp_commentmeta` WHERE `comment_id` NOT IN (SELECT `comment_ID` FROM `wp_comments`);
UPDATE `wp_posts` SET `comment_status` = 'closed', `ping_status` = 'closed';
UPDATE `wp_options` SET `option_value` = 'closed' WHERE option_name = 'default_comment_status';
UPDATE `wp_options` SET `option_value` = 'closed' WHERE option_name = 'default_ping_status';

Want to dissect what each of these lines is doing? Sure…

Line 1

DELETE FROM `wp_comments` WHERE `comment_approved` != 1;

This is going to delete all “pending” and “spam” comments. It leaves approved comments untouched. Note: you may have spam comments that are approved; one site I was just working on had thousands that were “approved” because the settings were a little too generous. I can’t give a catch-all SQL statement to address that problem, unfortunately. It requires analyzing the content of the comments to some extent.

You’d think maybe `comment_approved` = 0 would be better, but I found as I poked around that the possible values aren’t just 0 or 1. It may also be spam. It may be something else. (I haven’t researched all of the possibilities.)

Line 2

DELETE FROM `wp_commentmeta` WHERE `comment_id` NOT IN (SELECT `comment_ID` FROM `wp_comments`);

There’s a separate table that stores miscellaneous meta data about comments. There’s a good chance there’s nothing in here, but you may as well delete any meta data corresponding to the comments you just deleted, so here you go.

Line 3

UPDATE `wp_posts` SET `comment_status` = 'closed', `ping_status` = 'closed';

This is going through all of the existing posts — which don’t include just “posts”… “pages” are posts, “attachments” are posts… anything in WordPress is a post, really — and setting them to no longer accept comments or pingbacks. This doesn’t delete any comments on the posts that were already approved; it just prevents any new ones.

screen-shot-2016-09-09-at-12-21-58-pm

It’s the equivalent of going into every single post and unchecking the two boxes in the screenshot above. But it only takes a couple of seconds. FEEL THE AWESOME POWER OF SQL!!!

Line 4

UPDATE `wp_options` SET `option_value` = 'closed' WHERE option_name = 'default_comment_status';

Remember that screenshot near the beginning of this post, showing the three checkboxes under Settings > Discussion? Well this is the equivalent of unchecking the third one.

Line 5

UPDATE `wp_options` SET `option_value` = 'closed' WHERE option_name = 'default_ping_status';

And this is the equivalent of unchecking the second one.

So there you have it. No more comments, no more spam, no need for an Akismet account.

CakePHP Auth component, Flash and Internet Explorer… a deadly combination

OK, it’s not really deadly at all… other than that it will kill your CakePHP session and log you out.

My CakePHP-based CMS uses YUI Uploader, a Flash-based file uploader utility. It’s much better than the default HTML file uploader, because it supports a fully CSS-customizable progress bar and multiple file uploads.

It’s pretty slick, even though I did tear some hair out earlier in the year trying to get it integrated into the CMS. All went well for several months, until one particular client, using Windows Vista and Internet Explorer 8, discovered a showstopper of a problem: whenever you uploaded a file, all would seem well until you went to save your changes and you’d get kicked back to the login screen, without the changes being saved. Bad news!

I did some diagnostics and determined that, yes indeed, the CakePHP session was in fact being dropped as soon as the Flash process finished queuing the file uploads (an AJAX-based process), before you actually click the “Save” button… but since there’s nothing else happening dynamically on the page, it wasn’t obvious that the session had been killed in the background.

Anyway, some research led me to a perfect explanation of the problem, and an equally perfect solution: Flash is sending a different user agent string, which was resetting the CakePHP session. I’m still not sure why it was only affecting Internet Explorer, but at any rate, a simple change to the app/config/core.php file solved the problem in a snap. The critical line:

Configure::write('Session.checkAgent', false);

I suppose by removing this line, the application is ever-so-slightly less secure, but there should be enough other precautions in place that removing the user agent check as part of the process of validating a session should not pose a significant security risk.