Which Star Trek: Voyager episodes to watch

My wife and I are working our way through the various Star Trek series, and have just gotten to Voyager. I wasn’t a huge fan of the show when it first aired and I remember there being quite a few lousy episodes I’d rather not inflict on her.

It’s been so long I couldn’t remember which ones they were, or which episodes set up plot threads that were picked up later, since I won’t want to skip those even if they’re not great. So I used this guide from reddit to get a list of episodes that contribute to character or story arcs, then added all the standalone episodes that got an 8.0 or higher average rating on GEOS. The result, I hope, will be a version of the show that doesn’t wear out its welcome; it ends up skipping about 1/3 of the episodes.

Season 1

  1. Caretaker: Parts 1 & 2
  2. Parallax
  3. Time and Again
  4. Phage
  5. Eye of the Needle
  6. Emanations
  7. State of Flux
  8. Faces
  9. Jetrel

Season 2

  1. The 37’s
  2. Projections
  3. Elogium
  4. Parturition
  5. Persistence of Vision
  6. Cold Fire
  7. Maneuvers
  8. Alliances
  9. Meld
  10. Dreadnought
  11. Death Wish
  12. Deadlock
  13. Basics: Part 1

Season 3

  1. Basics: Part 2
  2. The Chute
  3. Future’s End: Part 1
  4. Future’s End: Part 2
  5. The Q and the Grey
  6. Fair Trade
  7. Coda
  8. Blood Fever
  9. Unity
  10. Before and After
  11. Real Life
  12. Distant Origin
  13. Worst Case Scenario
  14. Scorpion: Part 1

Season 4

  1. Scorpion: Part 2
  2. The Gift
  3. Day of Honor
  4. The Raven
  5. Year of Hell: Part 1
  6. Year of Hell: Part 2
  7. Mortal Coil
  8. Waking Moments
  9. Message in a Bottle
  10. Hunters
  11. Prey
  12. The Killing Game: Part 1
  13. The Killing Game: Part 2
  14. The Omega Directive
  15. Living Witness
  16. Demon
  17. One
  18. Hope and Fear

Season 5

  1. Night
  2. Drone
  3. Extreme Risk
  4. In the Flesh
  5. Timeless
  6. Infinite Regress
  7. Nothing Human
  8. Thirty Days
  9. Counterpoint
  10. Latent Image
  11. Bride of Chaotica!
  12. Gravity
  13. Bliss
  14. Dark Frontier: Part 1
  15. Dark Frontier: Part 2
  16. Course: Oblivion
  17. Someone to Watch Over Me
  18. Relativity
  19. Warhead
  20. Equinox: Part 1

Season 6

  1. Equinox: Part 2
  2. Survival Instinct
  3. Barge of the Dead
  4. Tinker, Tenor, Doctor, Spy
  5. Dragon’s Teeth
  6. One Small Step
  7. The Voyager Conspiracy
  8. Pathfinder
  9. Blink of an Eye
  10. Memorial
  11. Collective
  12. Child’s Play
  13. Good Shepherd
  14. Muse
  15. Fury
  16. Life Line
  17. Unimatrix Zero: Part 1

Season 7

  1. Unimatrix Zero: Part 2
  2. Imperfection
  3. Drive
  4. Repression
  5. Critical Care
  6. Inside Man
  7. Body and Soul
  8. Nightingale
  9. Flesh and Blood: Parts 1 & 2
  10. Shattered
  11. Lineage
  12. Prophecy
  13. The Void
  14. Workforce: Part 1
  15. Workforce: Part 2
  16. Human Error
  17. Q2
  18. Author, Author
  19. Friendship One
  20. Homestead
  21. Endgame: Parts 1 & 2

nREPL-aware editor + Robert Hooke + LiveReload = web development on steroids

I added a little hack to my Clojure environment last night that I’m really enjoying and figured other people might too. First, the components:

  • An editor that knows how to connect to a running REPL. I use vim-fireplace but there is nothing vim-specific about this. (It’ll also work from an interactive REPL prompt.)
  • LiveReload installed on your development workstation, set to monitor your Clojure source tree for changes.
  • LiveReload’s browser extension, or alternately you can include its JavaScript snippet in your web pages.
  • A little glue code that uses Robert Hooke to update the modification time on a file every time “defn” is called. My quick hack version is below.

In my application code, I add a call to my glue code to my “start a web server from the REPL” function:

(toucher/touch-file-on-defn "livereload.trigger")

(The extension on the filename must be in LiveReload’s list of monitored file types.) Then I fire up a REPL and start the web server, loading whatever page I’m working on in my browser.

Now as I edit code in vim, I type “cpp” to send the current top-level form to the REPL. It is generally a “defn” form, which causes the hook to be called and touch the dummy file. LiveReload sees that file change and signals the browser to reload the page.

This shaves a few seconds off the already fast Clojure-on-REPL edit-compile-test cycle (no need to switch over to the browser window and manually reload) and makes it feel like the “compile” and “test” steps just magically happen without me lifting a finger. Being able to keep input focus in my terminal window is surprisingly pleasant; I didn’t realize how annoying it was to have to constantly click on the browser window until I stopped having to do it.

The code (also available here):

(ns toucher.core
  (:require [clojure.java.io :as io]
            [robert.hooke :as rh :only [append]]))

(defn- touch-file
  "Called on defn invocation; updates the mod time on the reload trigger
   file so LiveReload will reload the web page."
  (let [f (java.io.File. file-to-touch)]
    (if (.exists f)
      (.setLastModified f (System/currentTimeMillis))
      (with-open [w (io/writer f)]))))

(defn touch-file-on-defn
  "Starts touching the specified file every time a function is defined.

   In your startup code, call

      (toucher.core/touch-file-on-defn \"some-filename.trigger\")

   and configure LiveReload to watch for changes to .trigger files in your
   directory. (Use whatever extension you want; .trigger has no special
   meaning.) Now when you send a function definition to the REPL either
   directly from the REPL prompt or remotely from vim-fireplace or another
   tool, LiveReload will see the update of the trigger file and automatically
   reload the web page so you don't have to remove focus from your terminal
  (rh/append defn (touch-file file-to-touch)))

If you’re better at Clojure than I am (likely!) please let me know if I’m doing something boneheaded here. Either way, hope you find it useful.

Taking location-aware apps to coastal Cambodia

I recently spent an afternoon in Koh Kong, Cambodia. Sitting along the shore at Cafe Laurent (delicious, by the way) I decided to see how far the various mobile apps on my iPhone would have gotten me if I hadn’t had a restaurant recommendation from a local person already. Koh Kong isn’t a big tourist hotspot but it’s not totally obscure either, and walking around town there were clearly plenty of restaurants catering to both locals and foreigners. How much information would my phone give me?


Let’s start with Siri, since “find me a good restaurant nearby” is one of Apple’s selling points for this feature. In Koh Kong, though, it didn’t even try. At least it was polite.


Apple Maps

Apple Maps does know about one restaurant in the area, though not about any of the roads one would need to travel to get there. If you click through on this place you will see the address is listed as “Cambodia” which is perhaps not quite adequately specific.

Apple Maps

Google Maps App

Google knows about the local streets and initially appears to show a couple restaurants, but the map area it shows turns out to be across the border in Thailand.

Google Maps

Yelp and OpenTable

I didn’t expect anything from either of these (the former really only operates in a handful of countries and the latter is aimed at restaurants where the mention of a “reservation” would elicit something other than a puzzled stare) and they performed as expected.

Yelp OpenTable


This one was a surprise, because Facebook knew about the restaurant I was sitting in — I checked in there and the Facebook app said there were around 1500 prior visitors, and, in fact, when I’d been looking for the restaurant, I’d used the distance indicator in the Facebook checkin UI to more or less triangulate the place’s location. When I checked in, there were plenty of other nearby locations listed in the checkin UI. But the Facebook app’s “Nearby” location search feature didn’t show any of them, making it useless for this query.



This app is laser-focused on restaurant listings and unlike Yelp, it has an impressive database of restaurants in various countries — I’ve had it correctly determine the name of a random mom-and-pop restaurant in the middle of nowhere in China. But although their database knows about lots of restaurants, this part of Cambodia hasn’t had enough Foodspotting users visiting to be of much use. (It does, however, come closer to being useful than any of the apps so far.)



This is a travel app, not specifically a restaurant-finding one, but for places where it has any coverage at all, it usually has decent restaurant recommendations. However, I was too far afield for it.



And finally, the winner: Foursquare, not even a close contest. It not only had nearby listings (that were actually nearby) for tons of restaurants broken down by type — just look at the number of pins on the little map here — it had recommendations for specific dishes at many of them. It’s clear that the people who visit this part of the world tend to be Foursquare users pretty frequently.



Unless there’s a good app I missed — let me know in the comments! — Foursquare is clearly way ahead of everyone here. Facebook could be a pretty competitive second-place entrant, but for some reason, possibly concern about data quality, they’re not exposing the large user-generated list of places in their location browsing UI, making it basically nonfunctional in this kind of situation.

Of course, even in Cambodia, in a major city such as Siem Reap or Phnom Penh that’s crawling with smartphone-toting people, the story is quite different; almost all of these apps will return some results there, though I’d still have some questions about which one was most likely to tell me about a great local hole-in-the-wall. But for out-in-the-boondocks eating in this part of the world, it seems like Foursquare is the app to launch first.


Hello, World

Welcome to Geek Overboard! My name is Steven Grimm and I’m on a long-term world tour with my wife Julie. A software developer by trade, I’ll be posting both about general travel-related topics and about technology, with an emphasis on travel-related tech including photography. I hope you’ll find this blog useful, informative, or at least entertaining. It’s a work in progress so please jump in with comments and questions.

Subscribe to me on Facebook (button at the top of the page) if you’d like to see photos and videos and more in addition to the writeups I’m posting here.

See you on the road!