ST:TNG Treadmill Review #1: Where Silence Has Lease

Where Silence Has Lease
Season 2 Episode 2
Original airdate: November 28, 1988

Netflix Synopsis

The enterprise encounters a mysterious void in space and when they move in closer to investigate further, it envelops them and they can’t get out.

My Brief Review

This is a classic Star Trek scenario, and one of my favorite types of episodes: a spatial anomaly where the crew has to confront the unknown. It actually ended up being slightly disappointing to me though because it was almost too predictable… it went into territory tread heavily both in the original series and in subsequent installments, plus, in the context of TNG, it felt too much like a scenario Q would put them in (and already had by this point). Bonus points for an immortal, formless space being taking on a semi-human appearance in order to interact with the crew. Classic Trek.

Memorable Moment

After Riker and Worf beam over to what appears to be Enterprise’s sister ship, the USS Yamato, they find themselves in a surreal moment where the turbolift door from the bridge leads into a mirror image of the same bridge, and Worf loses it. “A ship has one bridge. One bridge!!!”

Crew Rando

We get a true “red shirt” moment, which TNG seemed specifically designed not to allow after swapping the use of red and gold uniforms between command and operations crew, when the immortal, formless space being kills helmsman Lt. Haskell (who?)… a red shirt!

Distance Rating: 4K

IMDb score: 7.1/10

ST:TNG Treadmill Review: A new blog series

Introducing a new blog series here on UoP: ST:TNG Treadmill Reviews!

What’s all this then? It’s a long story.

Let’s start with ST:TNG. If you don’t know what that stands for, I’m not going to bother to explain, because you won’t be interested anyway. I have seen almost every episode of the series at least twice: First, when it was originally airing in first-run syndication in the late ’80s and early ’90s, I was in high school, and my dad and I would watch it every Saturday night with our Tendermaid hamburgers. (I liked mine with cheese, onions and mustard.) Then I rewatched almost the entire series with friends in the dorm my freshman year of college, when it was on in weeknight rerun syndication, at 10:30 PM. (Snack of choice: microwave popcorn and Pepsi.) But I haven’t really watched it much at all since then.

Now, on to treadmill. I’ve been running since 2011. I run outside most of the year, but I have a hip issue that makes running on ice and snow dangerous, so in the winters I’d run on the indoor track at the local YWCA. For reasons I won’t get into here, we canceled our Y membership last year, and finally broke down and bought a treadmill.

I previously hated treadmills, but I learned to tolerate it by watching TV episodes on Netflix or Hulu. In particular, I got into watching Star Trek: Enterprise, which I had not really given a fair shake when it first aired. (I haaaaaaate the theme song, and that was enough to turn me off entirely, back when I couldn’t fast-forward through it.) Well, I finished all of Enterprise, so this winter I’m going to have to watch something else. I’ve been trying to watch the final season of The Good Place, but I’ve finally come to terms with the fact that I just don’t like it, and not liking something makes it hard for me to keep running on the treadmill while I’m watching it.

That last point inspired Sara to inspire me to start this blog series. I can, to some extent, rate the quality of a TV episode by how long I’m willing to run on the treadmill while watching it. So I’m going to write reviews of all of the ST:TNG episodes I watch this winter on the treadmill, giving them a rating based on how far I run before I lose enthusiasm and switch to walking.

I’m not watching the series systematically. I watched a smattering of the first season late last winter, after I finished Enterprise, but I skipped some because they were… not good. The first season of TNG is notoriously inconsistent, and even includes unquestionably the worst episode in all of Star Trek. So I’m starting with season two. But a lot of these episodes are pretty bad, too. In particular, I have little patience for episodes that take place entirely on the Holodeck, as well as ones that are too dependent on Deanna Troi’s empathic powers. So I’m reading the one-sentence synopses on Netflix, and using those to determine whether or not to watch a particular episode.

I’ve done two episodes so far, yesterday and today, so I’ll be posting those first two entries shortly after this one. Then, I’ll post new ones as I watch the episodes.

Just like the worst Star Trek episodes, there will be a formula to these posts:

Title / season and episode number / original airdate
Netflix synopsis
My brief review
Memorable moment
Crew rando
Distance rating

Engage!

Get Gmail to scale inline images to fit the browser window (in Chrome and Safari)

If you use Gmail on the web as your main email platform, and your work often involves people sending you emails with large high-resolution images (which ideally would be attachments, but are often embedded inline in the message), you know this problem. The images are frigging huge in the browser window, and the viewing panel ends up with a horizontal scrollbar, with paragraph text trailing off the screen. Having to scroll horizontally to read emails is really awkward and irritating! Why doesn’t Gmail at least offer an option to auto-scale inline images to fit the width of the window?

I discovered there’s a Chrome extension to fix this. If you’re a Chrome user, just download it and you’re done.

But I don’t use Chrome, I use Safari. And there doesn’t appear to be an equivalent Safari extension. I did, however, continue down the trail to the CSS file in the GitHub project for that Chrome extension. The CSS is quite simple:

[data-message-id] > div:nth-child(2) img:not([role=button]):not([role=menu]):not([width]) {
max-width: 100%;
width: auto !important;
height: auto !important;
}

That’s all it takes to get Gmail to shrink inline images in an email to fit the window. But how do you get Safari to apply that CSS? This is not so hard, either.

First, save the above CSS code into a file, maybe called gmail.css so you’ll remember what it’s for, and save it somewhere that makes sense to you, such as your Documents folder.

Next, open the Safari preferences, and click on the Advanced tab.

Click on the Style sheet dropdown and navigate to the gmail.css file you saved. That’s it! If you have a Gmail message containing a huge image open in Safari while you’re doing this, you should immediately notice the image pop down to a reasonable size. Huzzah!

CSS text-transform can’t do “sentence case” but there’s a really simple alternative

Need to capitalize just the first letter of a text string? CSS text-transform has capitalize but that capitalizes every word.

Fortunately, you can use the ::first-letter pseudo element! In my case, I wanted all of the links in my navigation to definitely start with a capital letter, so I went with this:

#primary_navigation a::first-letter {
  text-transform: uppercase;
}

Slick!

Get rid of that annoying “WebSocket connection to ‘…’ failed” error on WordPress sites running Jetpack

If you run a self-hosted WordPress site with Jetpack, installed, you may have noticed a frequent error message showing up in your browser console.

In Chrome it looks like this:

WebSocket connection to ‘wss://public-api.wordpress.com/pinghub/wpcom/me/newest-note-data’ failed: Error during WebSocket handshake: Unexpected response code: 403

In Safari it’s slightly less specific, but the issue is the same:

WebSocket connection to ‘wss://public-api.wordpress.com/pinghub/wpcom/me/newest-note-data’ failed: Unexpected response code: 403

This issue has been reported various places online but nowhere do I find a true fix.

As indicated in some of those support threads I linked to above, it’s due to an issue with the Notifications module in Jetpack. What? It’s something I was not even really aware of and that can be extremely easy to ignore, especially if your site is not blog-focused or does not have active commenting. Turns out Jetpack has this little “Notifications” icon up in the admin bar next to your Gravatar, where you can get the latest updates on what’s happening on your blog.

If you’re like me, you don’t need or want the Notifications tool. And if getting rid of it gets rid of that stupid error that’s constantly popping up in the console, all the better.

Side note: Did you know there’s a hidden page where you can access the settings for a ton of Jetpack modules? (Neither did I.) Just go to /wp-admin/admin.php?page=jetpack_modules in your WP admin and there it is! If you’re just dealing with this issue on one particular site, and don’t want to write any code, simply deactivate the Notifications module here and you’re done. If this is something you are dealing with on many sites though and you want an automatic, code-based solution to stick into your base theme, read on…

I tried using Jetpack’s instructions for disabling a module via code. (Fun fact, the name for this module in the code is not 'notifications' as you might expect; it’s 'notes'.) Frustratingly, neither the 'option_jetpack_active_modules' filter nor the 'jetpack_get_available_modules' filter worked. I even scoured the Jetpack source code for other filters I might need to use, and none of them made a difference.

Oh, I was able to get 'notes' not to appear in the array those filters returns, and I was even able to use that to get “Notifications” to always appear as “inactive” on that hidden settings page.

But the error kept showing up in the console, and the little Notifications icon was still in the admin bar. The module was not inactive.

Finally, through further source code poking, I discovered there’s a static public method called Jetpack::deactivate_module(). I tried running it in those aforementioned filters but it resulted in an HTTP 500 error. (Strangely, it was an out-of-memory error. Shrug.)

So I decided to try the method in different actions. After some trial and error, it seems the 'init' action works. But that’s a bit of overkill, running this code on every front end page load, especially since once the module is deactivated, it should stay deactivated, so my solution is to run it on the 'admin_init' action instead. Especially since this issue only happens for logged-in users anyway, it should be adequate.

Here’s a bit of code you can stick into your theme’s functions.php file or wherever you like to put things like this:

add_action('admin_init', 'rm34_jetpack_deactivate_modules');
function rm34_jetpack_deactivate_modules() {
    if (class_exists('Jetpack') && Jetpack::is_module_active('notes')) {
        Jetpack::deactivate_module('notes');
    }
}