Walk-off safety gives Dolphins overtime victory over Bengals

Apparently, a “walk off safety” (in American football) means when the defense gets a safety (as was the case in this game in overtime), the game is over and the teams “walk off” the field. Who knew?

Updated: 11/1/2013

Yes, there’s more to this story.  It isn’t the first walk off safety, but they don’t happen often. In fact, there have been only three. This one, November 2004 Bears vs Titans and November 1989 Vikings vs Rams.

I usually pride myself in finding answers to questions I don’t know the answers to by Googling. Google failed me on Halloween. Since I was watching the game delayed on the DVR, the only results I got were roughly twenty stories about the game with the keywords “walk off safety”, but no one really explaining what it meant. Maybe I was just supposed to know. I mean it seemed logical that walk off safety = game ending safety, but we all like proof and not finding it quickly became frustrating. The fact that the media was making such a big deal about it without explaining it added to the frustration. I actually heard someone say “it wasn’t just a safety, but a walk off safety. Goodnight folks. <fade to commercial>”  WTF!

Of course, I’ve learned so much about walk offs in many sports now so there’s a plus side to all of this.

Legally Run A Stoplight (BYOPO)

Well, no, you can’t legally run through a stoplight I suppose, but if a police officer flags you through, then you won’t get a ticket. The key here is that I have video proof.

My obsession with car cams or dash cams reignited with the video footage of the Russian meteor back on February 15, 2013. I was amazed that so many people had great video of the event. Then I read why. Marina Galperina posted an excellent article Why Russians Are Obsessed With Dash-Cams, but to summarize, snow and ice make for slick roads and hit & runs are rampant to the point where insurance companies almost require video evidence to pay claims.

My research led me to DashCamTalk which has a comparison of available cameras, most of which are inexpensive. Unfortunately, the one that caught my eye (F500 LHD) had to be bought directly from China meaning I would become an importer! As unappealing as that sounds, small electronics under a certain amount are not flagged by U.S. Customs so regular post office delivery worked fine. It just took a couple of weeks.

The camera is slightly smaller than a pack of cigarettes and very light so it will fit just about anywhere in your vehicle. I did have a quality problem with the suction cup mount that came with it. The suction cup separated from the mount the first time I attached it to my windshield. Fortunately, Amazon sells a replacement that is much sturdier for around $6 so I ate it and didn’t mess with a warranty replacement hassle. Also, the camera does not include an SD card (the recording medium) so I bought a 32GB card along with the new mount.

Hiccups aside, I’m very happy with the camera. It takes great HD video and the files are stored as MOV files so they import directly into iMovie. I’m also happy to report that my video has been uneventful so far.

An example of the night vision capability shows some grain, but the video is still quite acceptable.

If you want to see some dashcams in action, videos are uploaded daily to a LiveJournal blog. I also found that searching for “car crash compilations” on YouTube has most if not all of these stitched together. While some view this purely as entertainment, I can definitely say that my defensive driving mindset has increased after watching a few of these. My only problem now is that I don’t understand Russian so there may be a Rosetta Stone purchase in my near future!

And The Race Is On!

The 41st running of the Iditarod kicked off this morning in Anchoage, Alaska and this year they went mobile!

The Race

Iditarod Ceremonial start in Anchorage, Alaska

The Iditarod, the Last Great Race on Earth, is a 1,049* mile sled dog race that starts the first Saturday in March. The first race was held in 1973. An average of 65 teams start the race in Anchorage and each team of 12 to 16 dogs & its musher cover the route to Nome in 9 to 17 days.

iditarod_route*The route is not a exactly 1,049 miles because there are two routes and the trail is not permanent. Since it was originally a little over 1,000 miles and Alaska is the 49th state, it’s symbolically stated as 1,049 miles.

Mobile Video Access

Unless you attended the race or were in Alaska at the time, you probably saw little to no coverage of the race.

Several years ago, they offered video-on-demand (streaming) during the race to Iditarod Insiders ($20 annual subscription). These are short, 2-minute video news clips uploaded during the race. Two to three years ago, they streamed the race start and finish, but it wasn’t available to Apple’s mobile devices.

This year, the website supports mobile devices and both the ceremonial start and the restart worked perfect on an iPad-to-AppleTV setup.  Kudos to the Iditarod Trail Committee for supporting mobile.  I’m very happy with what I’ve seen so far.

Moving Day – SquareSpace to WordPress

Canispater has moved to blog.canispater.com

I made a blog move to WordPress from SquareSpace because the price was right (included free with my domain purchase through 1&1 Web Hosting) plus a couple of posts got away prematurely due to the quirky web interface. Don’t get me wrong, SquareSpace is a great platform for quick setup and ease of use, but I wanted a little more control over the platform and like I said, the price was hard to beat.

WordPress’ web-based editor works well for creating simple text or media rich posts. You upload media to your “media library,” then add it to your post.  It’s really handy if you need to upload a lot of media.  I was also pleasantly surprised with the WordPress iPad app.  You have full site management capability and the post editor gives you access to the raw HTML if you want to make changes.  Oh, and for you developers out there, it’s open-source!

While a WordPress blog will require more up-front configuration, there are thousands of plug-ins available for adding the functionality you need.  I do recommend getting the JetPack plugin though it requires a login at WordPress.com for web stats.  JetPack includes a basket of features most blogs will use.

WordPress Hosting Options

You can get WordPress running in one of three ways:

  1. a free blog on WordPress.com (minimal configuration options, easy setup, least flexible)
  2. download the software and host it yourself (the most complicated setup yet most flexible) or
  3. find a hosting service (easy setup, some configuration required, very flexible)

Migration was easy

SquareSpace has an export to WordPress function which worked flawlessly except for a few images (it got most, but not all).  I copied the missing images over manually.

Setup was easy with the 1&1 admin panel.  I used the Click & Build website feature to create the WordPress instance.  A subdomain is required to host the software (eg: blog.canispater.com).  After a couple of minutes, I received an email saying my blog was ready so I configured it like I wanted (user accounts, theme, plugins, extra pages, etc.) then chose import from the tools menu.  The entire process took seconds, but I didn’t have a lot of content to move.

Once I was happy with the new blog, I repointed the domain destination to the new blog.  This change propagated within a couple of minutes.

Lessons Learned

Setting up the WordPress instance was a little tricky for me because my domain was not registered at 1&1.  I had to first set up an external DNS for the domain which basically means using the 1&1 DNS servers for the domain instead of the existing domain registrars’ servers.  Performing this operation caused an outage while the DNS changes propagated, but everything converted over within a few minutes.  Once everything worked on the new DNS, I proceeded with the install.  If possible, have the domain registered with your provider to make things easier.

I had two issues to solve once everything settled.  First, the RSS feed URL for the old blog was canispater.com/blog?format=rss but the new feed URL is blog.canispater.com/feed/.  In order for the spiders to maintain the old feed, I had to create an .htaccess file to do a 301 redirect.  Second, I wanted people to be able to type canispater.com into their browsers and have that redirect to the blog.  There are a couple of ways to accomplish this depending on your environment, but these two lines seem to work.

Redirect 301 /blog https://blog.canispater.com/feed/
Redirect 301 / https://blog.canispater.com/

The first line allows the spiders to find the new feed and the second redirects any request to the root of the domain to the blog.  Note: once the spiders crawled again, all of my previous entries (previously published and imported from the old blog) were sent to the feed again.

The domain redirect worked fine with Chrome and FireFox, but not Safari (initially).  Safari caches 301s and I had tried this earlier while the DNS was propagating so it cached the redirect to the generic “domain just set up” page.  Clearing the browser cache solved that problem.

This was basically a weekend exercise because I had to do a lot of reading to understand the new environment.  I really like what I’ve seen with the platform so far and recommend it if you want more control over your blog.

iOS/Mac Network Link Conditioner

Xcode Lets You Test Your Network-Based Apps

Who knew? Apparently just about everybody – except me! I recently discovered the Network Link Conditioner Apple provides for developers. The latest version I could find was Hardware IO Tools for Xcode 4.4 – Late July 2012 for the Mac, but I was pleasantly surprised it was already on my iPhone under Settings.

2013-02-16 21.30.55 2013-02-16 21.31.12

Simply turn it on, run your app, fix it. Note: this will affect all network communication on your device while it’s enabled so don’t forget to turn it off when you’re done testing your app.

XCode Environment Settings

Easily Print XCode Environment Settings to a File

If you need to get a list of environment settings running under Xcode, use a run script to print them out to a file when you run your app.

Go to the Build Phases section of your target and add a Run Script by clicking the Add Build Phase button in the lower right-hand corner and choose Add Run Script.

AddScript

This adds an empty Run Script section to your Build Phases for the selected target.

Empty

Add the line printenv | sort > $SRCROOT/environs.txt as the script.

RunScript

$SRCROOT is the main folder of your app. Each time you run your app, the Run Script will create or overwrite the file environs.txt in the main folder with a sorted list of all of your environment variables. This will help you figure out where everything is hidden behind the scenes.

Here is an excerpt of the file on my machine.

CACHE_ROOT=/var/folders/7v/4b2ghpfx4sd5bgn6y1lc1rs80000gn/C/com.apple.Xcode.501
CCHROOT=/var/folders/7v/4b2ghpfx4sd5bgn6y1lc1rs80000gn/C/com.apple.Xcode.501
CHMOD=/bin/chmod
CHOWN=/usr/sbin/chown
CLANG_CXX_LANGUAGE_STANDARD=gnu++0x
CLANG_CXX_LIBRARY=libc++
CLANG_ENABLE_OBJC_ARC=YES
CLANG_WARN_CONSTANT_CONVERSION=YES
CLANG_WARN_EMPTY_BODY=YES
CLANG_WARN_ENUM_CONVERSION=YES
CLANG_WARN_INT_CONVERSION=YES
CLANG_WARN__DUPLICATE_METHOD_MATCH=YES

Let me know if this helps.

iOS Rename Main Thread

Attention iOS DEVs! Rename your main thread!

If you are fortunate enough to have instrumentation built into your app using Hockey App or something similar, then you probably won’t need this tip, but for the rest…

Add this to your app delegate in didFinishLaunchingWithOptions:

Simulate a crash with
*(char*)0 = 0;

Debug Navigator

Validate your thread name using the XCode Debug Navigator.  The crash you added will halt the app and should automatically show you the thread name. If not, hit Command-5 on your keyboard.

If you run this on a device, you should generate a crash report. Notice the named thread in the report.

I can’t take full credit for the idea – we received a crash log via email today and didn’t know which version they were using. This idea was a result of our discussion.

Anyone else have helpful tips to share?