Documentary Night

March 21, 2020

My wife has belonged to several book clubs, sometimes more than one at once. And every month I would watch the drama unfold, about how the book sucks, or she won’t be done reading it by the next meeting, or it’s her turn to pick a book but she’s not sure what to recommend, or the next meeting is at so-and-so’s place which is hard to get to, or she’s hosting the meeting and needs to come up with tasty appetizers.

It all seemed very exhausting and not much fun. Over dinner one night (OK, it was June 3rd, 2014) with three friends, we decided that a guy-appropriate alternative was to watch a documentary every month – no prep time, and since we all lived in different cities, it would be a virtual event (no food prep, no pre-event cleaning, nothing but net).

Since that fateful dinner party we’ve watched 57 documentaries, plus 2 stinkers we aborted – more on that later. It’s been a great way to regularly stay in touch, and the group has grown steadily over the years to 27 members. In case it’s useful to others, below are some details about how it works.

The Movie List

It’s all on this Google Doc. The first three columns are the event date, who picked or is picking the movie, and the movie title with a link to a review, typically on Rotten Tomatoes. Column D had scores from the one time (back in 2017) we decided to review past movies and pick everyone’s top 5.

Column F has a list of contenders, which is useful when it comes time to pick the next movie. Column H was used for to remove movies from the list of contenders, but as the group has expanded, we’re not so worried about ensuring nobody has seen it, as that’s rarely the case. Instead, when the movie email goes out, if too many people respond with “seen it, skipping” then we’ll reconsider the pick.

When someone new joins the group, I’ll ask them if they want to pick movies. If they say yes, I add them into the rotation (column B), usually two months out, so they have a chance to watch some movies and get a better sense of what might work for the group.

Movie Selection

We have a general convention that the movie has to be available via either Netflix or Amazon (not necessarily Prime, but that’s better). We’ve made a few exceptions, for example if it’s free on PBS then that’s fine.

Total length should be less than 2 hours. From what I’ve seen, shorter usually is better, as documentaries that are significantly longer than say 100 minutes feel like they could be shorter with better editing.

After a run of depressing documentaries, it’s a good idea to pick something a bit more light-hearted. There are plenty of significant, serious and urgent issues in the world. But not every documentary needs to be the down-bound train.

Managing Members

We use Google Groups, and directly invite people. The invite message looks like:

Hi xx,

Welcome to the group!

We watch movies on the second Thursday of each month.

Beer call is at 6:15pm (Pacific) via Zoom (<zoom link>). You should have this app downloaded & working in advance, of course.

The movie starts promptly at 6:30pm (Pacific). Don’t forget to mute your mic while the movie is playing.

We usually hang out for 15-20 minutes after the movie discussing it (longer if it pisses Jono off, like after “Inequality for All”).

If you’d like to get added to the movie picking rotation, let me know!

— Ken

PS – See <link to editable Google Doc list of movies> for a list of documentaries we’ve seen, contenders for future months, and movies that have been black-balled.

This also will have your name & date for when it’s your turn to pick the movie, if you want in on that action.

Video Conferencing

Initially we used Google Hangouts, but even highly trained MIT engineers had trouble figuring it out. I’ve heard it’s gotten better. We also tried Skype, but that failed when we got to more than 5 or so people. In the end, Zoom has been a win. I’ve got a paid subscription that I use, so we don’t have any weird time limits on the video chats.

Scheduling

When we first started, we’d try to pick a night that worked for everyone. This became an administrative nightmare, as someone would have a conflict, and we’d be proposing alternative dates, and waiting for responses. At the end of 2017 it became so painful I stopped trying, and we missed a few months.

Eventually we decided to make it the second Thursday of every month, come rain or shine, regardless of who could or couldn’t make it. This has worked well, though our Valentine’s Day meeting was controversial.

I usually send an email reminder to the person picking the movie on the Sunday before the meeting date, and then send out a general email (via the Google Groups mailing list) to everyone on Tuesday. This looks something like:

Hi everyone,

Drinks at 6:15pm Pacific, movie starts promptly at 6:30pm.
The movie (recommended by xxx) is “Little Dieter Needs to Fly”.
It’s 74 minutes long, and available on Amazon.
See you soon,
— Ken
PS – The Zoom meeting link, as always, will be <zoom link>

The Ripcord

Twice we’ve watched documentaries that were just not doing it for the group. Via Zoom chat, it’s pretty easy to express opinions during the movie, and if the majority of attendees aren’t feeling it, we’ll call an audible and switch to something else. So I usually have a movie in mind that I’m pretty sure will work as a fall-back.

Summary

I’m sure I’m forgetting important details, but the above should be enough to help you start your own group, if the spirit so moves you. Enjoy!

 


Recovering from a VMWare Fusion Friendly Fire Incident

September 1, 2017

Yesterday I’d just completed a painful migration from an old Macbook Air to my new Macbook Pro. I went old-school manual due to the amount of cruft Migration Assistant had loaded the last time I used it; I guess after 10 years it was time to start fresh.

For one of my final tests, I launched VMWare Fusion (version 8.5.1) on my new Mac. It prompted me to enter my password, so it could “adjust some settings”. Which I did. Big mistake.

After about an hour of a spinning beachball, I force-rebooted the Mac. When I logged in, I got a dialog box saying my Library folder had to be repaired, with a Cancel and a Repair button. Clicking either of these immediately showed the same dialog again.

Based on this thread, it looks like there’s a really nasty bug in Fusion, where on Mac OS X 10.12.5 it somehow (by following a symlink?) changes the owner of everything on your Mac to root. That includes your user’s home directory. which makes the Mac unusable. I know the thread implies this is a very unlikely situation which also required a corrupted disk or some other problem, but I think that’s a bunch of hooey.

I wasn’t about to start over, so after several false starts, I wound up following this procedure:

  1. Boot the Mac in “single user mode“, by holding down cmd-S during startup. I had to select an account to use, but I didn’t enter a password – seems odd.
  2. This boots to a terminal UI, and after a few minutes the various startup messages ended. The fun part is that it’s using full resolution for the display. We’re talking 3 point text on my Macbook Pro. I’ve never felt so old, as I pretty much had to take off my glasses and press my nose against the screen to read anything.
  3. The terminal displays some helpful hints about what commands to run next.
    1. The first one is /sbin/fsck -fy, which checks your disk for corruption issues. That command was fine, and completed without issues.
    2. The second one is /sbin/mount -uw /. Unfortunately on Mac OS Sierra you have to provide a filesystem type parameter (-t fstype). I tried -t hfs, but that no longer works. After a fair amount of searching I found that Sierra uses the Apple File System, which I guessed was type “apfs”. Running /sbin/mount -t apfs -uw / worked, and my disk was now mounted.
  4. At this point I could list my home directory files via ls -l /Users/kenkrugler/, and I saw that they all had their owner/group set to root:wheel, which was wrong.
  5. I tried to fix them up via chown -R kenkrugler:staff /Users/kenkrugler, but this failed with an error about “kenkrugler” not being a valid user.
  6. This question on Super User explained that Mac OS X uses Directory Service, not the /etc/passwd file for keeping track of users. But when you’re booted in single user mode the Directory Service isn’t running. Luckily I found a folder that hadn’t been converted, which showed me the user as “501”, which is the raw id.
  7. Running chown -R 501:staff /Users/kenkrugler/ took a while, and reported a number of issues with files that couldn’t be changed, but in general seemed to work.
  8. Running exit returned me to a regular boot of my user, which worked.

So now I’m back in business, after only a few hours of pain and suffering.

 


Cindy’s iPhone Starter Kit

February 5, 2016

It’s Cindy’s birthday, and she’s all grown up now with her very own iPhone.

After consulting with my own personal Apple Genius, I’ve come up with a list of apps that Cindy should purchase using the iTunes gift card we got her for her birthday. I’ve broken these down into a few different areas…

Word Games

Health & Fitness

Hipster Stuff

Useful Apps

  • Yelp – find good stuff nearby
  • Google Maps – sometimes better than built-in map app
  • Todoist – To-Do List/Task Manager

Happy iPhoning, Cindy!

 


Sufferfest at the Banff Mountain Film Festival

April 6, 2014

Every year we travel to Downieville to watch the Banff Mountain Film Festival movies as part of their annual tour. Downieville might be their smallest stop in the world, with a theater that seats about 200 good friends. It’s an hour drive on windy roads from where I live in Nevada City, but once we’re there it’s always a fun party, including the annual intermission frisbee-fest.

This year my favorite film was The Sufferfest, featuring Alex Honnold and Cedar Wright. You might remember Alex from all of movies and articles about the crazy free solo climbs he’s done, but Sufferfest is a different kind of adventure – he and Cedar climb all of the California 14ers, biking between the peaks.

What made it extra cool was that Schmed & I climbed these same peaks 20+ years ago, as part of a goal to summit them by the time we turned 30. And we also biked part of the way up White Mountain on our way to Barcroft right before Schmed’s knee surgery.

During the film they showed a shot of the register box on the top of Polemonium Peak, which I’d hauled up and installed in 1991. The register has a sad back-story. In 1988 Robin Ingraham was climbing with his friend Mark Hoffman at Devil’s Crag #8. A talus chute slid during their descent, and Mark went over a cliff. He was still alive, so Robin made an epic hike to get help (from back country ranger Randy Morgensen, see The Last Season) , but Mark didn’t survive the night. As a tribute to Mark, Robin started making summit registers, and I wound up getting a box from him for Polemonium.

Here’s me installing it back in 1991…

Image

And proof that it’s still there, from The Sufferfest movie…

Image

Good to see it’s still in place, as many of these registered have been vandalized, removed by rangers, or stolen over the years. There’s an article written by Robin Ingraham in 2008 about the history of registers in the Sierra Nevada, for those interested. What’s interesting to me is that Robin is strongly opposed to any mention of registers online, as he feels this gives would-be thieves more information about what to steal, and how. My views on this have evolved into treating registers more like prayer flags, which are left in place to fade as the years pass – I think historical records should be copied, but the originals left on the tops of peaks. If they get stolen, or water-damaged, or struck by lightening…that’s part of their story too, and someone will have to start a new register.


Project Vote Smart Rocks

October 25, 2012

I got a letter recently from Project Vote Smart, thanking me for being one of their original supports (beginning around 1990 or so). They also sent a nice pin.

Image

But what I really like is being able to go to their web site during this gnarly election process and find real data about candidates, instead of having to sift through the endless commentary that floods the news.

I realize they’re a small voice compared to all of the Super-PACs that are pouring money into races & ballot measures, but they also are one of the few rays of light I can find in the political landscape. If you’re a voter who likes to make their own decisions instead of voting the “party line”, I’d strongly encourage you to support them.

 

 


Can Ken Climb Aconcagua?

September 2, 2012

Schmed & I have decided to attempt Aconcagua this December.

Aconcagua

Which doesn’t leave much time for travel planning, setting up Big Data training in Buenos Aires, finding mule packers to help get gear up to base camp, and (most importantly) implementing a training regime appropriate for getting to almost 23,000ft.

We’re planning to make it a business-climbing-vacation trip, which means the family flies to Buenos Aires in mid-December, and we spend two weeks exploring the city and surrounding areas.


Grandama Dierker’s Button Collection

April 10, 2012

I grew up in southern California (Whittier), which is pretty close to Knott’s Berry Farm.

Back in the 1960’s, this wasn’t yet a typical theme park filled with roller coaster rides. There was a nice old-time feel to the place, with chickens and peacocks wandering around the parking lot.

We’d visit regularly, and every such trip included a viewing of The Button Collection.

My grandmother lived in Filer, Idaho and collected thousands of buttons over the years. Eventually an aunt finished off the collection and donated it to Knott’s Berry Farm, where it’s still on display.


Interesting dates in computer programming

July 15, 2011

Everybody knows about the Linux “epoch”, as in January 1st, 1970 UTC.

Some people might remember the original Mac OS equivalent, which was January 1st, 1904. From what I remember back in the day, Jerome Coonen picked that date (instead of 1900) because it simplified the leap year calculations. And using an unsigned 32 bit value for seconds meant that Macs could handle dates up to 2023 or some point way in the future.

Then yesterday I came across the MUMPS/Caché “$h” date format, which is described as:

This format returns the date as the number of days since 1st January 1841, and the time as the number of seconds since midnight.

I was speculating with my friend as to why they picked 1841, and guessed that this was some convenient date (similar to the Mac 1904 choice) that was before the birthdate of the oldest person they could imagine being in the system, back in the 1960s.

After turning to the Source of Truth (Wikipedia’s article on MUMPS), it seems like our guess was correct. James Poitras explains why he picked this odd date:

I remembered reading of the oldest (one of the oldest?) U.S. citizen, a Civil War veteran, who was 121 years old at the time. Since I wanted to be able to represent dates in a Julian-type form so that age could be easily calculated and to be able to represent any birth date in the numeric range selected, I decided that a starting date in the early 1840s would be ‘safe.’ Since my algorithm worked most logically when every fourth year was a leap year, the first year was taken as 1841. The zero point was then December 31, 1840


Maiden voyage of Garmin foretrex 401

July 10, 2011

I finally got a chance to try out the new Garmin wrist-mounted GPS unit that my friend Stefan gave me.

Pretty sweet – it does a good job of tracking, even in the foothills of the Sierras, where GPS signals come and go.

I wish I could directly embed the map of the hike, but that requires an , which isn’t allowed by wordpress.com – oh well. You can still click here to view it on the garmin.com site.


The web is an endless series of edge cases

December 17, 2009

Recently I’d been exchanging emails with Jimmy Lin at CMU. Jimmy has written up some great Hadoop info, and provided some useful classes for working with the ClueWeb09 dataset.

In one of his emails, he said:

However, what I’ve learned is that whenever you’re working with web-scale collections, it exposes bugs in otherwise seemingly solid code.  Sometimes it’s not bugs, but rather obscure corner cases that don’t happen for the most part.  Screwy data is inevitable…

I borrowed his “screwy data is inevitable” line for the talk I gave at December’s ACM data mining SIG event, and added a comment about this being the reason for having to write super-defensive code when implementing anything that touched the web.

Later that same week, I was debugging a weird problem with my Elastic MapReduce web crawling job for the Public Terabyte Datset project. At some point during one of the steps, I was getting LeaseExpiredExceptions in the logs, and the job was failing. I posted details to the Hadoop list, and got one response from Jason Venner about a similar problem he’d run into.

Is it possible that this is occurring in a task that is being killed by the framework. Sometimes there is a little lag, between the time the tracker ‘kills a task’ and the task fully dies, you could be getting into a situation like that where the task is in the process of dying but the last write is still in progress.
I see this situation happen when the task tracker machine is heavily loaded. In once case there was a 15 minute lag between the timestamp in the tracker for killing task XYZ, and the task actually going away.

It took me a while to work this out as I had to merge the tracker and task logs by time to actually see the pattern. The host machines where under very heavy io pressure, and may have been paging also. The code and configuration issues that triggered this have been resolved, so I don’t see it anymore.

This led me down the path of increasing the size of my master instance (I was incorrectly using m1.small with a 50 server cluster), increasing the number of tasktracker.http.threads from 20 to 100, etc. All good things, but nothing that fixed the problem.

However Jason’s email about merging multiple logs by timestamp value led me to go through all of the logs in more detail. And this led me to the realization that the job previous to where I was seeing a LeaseExpiredException had actually died quite suddenly. I then checked the local logs I wrote out, and I saw that this was right after a statement about parsing an “unusual” file from stanford.edu: http://library.stanford.edu/depts/ssrg/polisci/NGO_files/oledata.mso

The server returns “text/plain” for this file, when in fact it’s a Microsoft Office document. I filter out everything that’s not plain text or HTML, which lets me exclude a bunch of huge Microsoft-specific parse support jars from my Hadoop job jar. When you’re repeatedly pushing jars to S3 via a thin DSL connection, saving 20MB is significant.

But since the server lies like a rug in this case, I pass it on through to the Tika AutoDectectParser. And that in turn correctly figures out that it’s a Microsoft Office document, and makes a call to a non-existing method. Which throws a NoSuchMethodError (not an Exception!). Since it’s an Error, this flies right on by all of the exception catch blocks, and kills the job.

Looks like I need to get better at following my own advice – a bit of defensive programming would have saved me endless hours of debugging and config-thrashing.