Fastest Mile Yet

I ran a new record time tonight: a 7.5 minute mile. I managed to shave 30 seconds off my previous best time. I followed that up with a cool down mile run at a 12 minute per mile pace. My lungs are on fire. I will now proceed to the couch to lay down and hope not to die.

Two-Factor Authentication for SSH

pub/priv keys are the best way to secure ssh, but I wanted something a bit simpler for a box (Raspberry Pi) I just setup. I found that two-factor authentication for SSH fits the bill. On Debian, it is pretty easy:

apt-get install libpam-google-authenticator libpam0g-dev libqrencode3

Run this command to setup your two-factor authenticator (Google Authenticator, Authy, etc):


This will present you with a QR code that you can scan, plus a secret key if you can’t scan the QR code. It will also give you give backup static codes for those “just in case” moments.

The tool setups up a .google_authenticator file in your directory that stores this information for authentication.

Edit /etc/pam.d/sshd and add these lines after the “@include common-auth” line:

auth [success=1 default=ignore] accessfile=/etc/security/access-local.conf
auth required

Create the file /etc/security/access-local.conf:

# only allow from local IP range
+ : ALL :
- : ALL : ALL

Edit the SSHd configuration file /etc/ssh/sshd_config and change the “no” to a “yes” for this line:

ChallengeResponseAuthentication yes

Restart the SSH daemon and enjoy.

The bit with the accessfile is so that hosts on the local network (which we assume to trust) do not have to use two-factor authentication to get in via ssh. If you don’t trust the boxes on your local network, feel free to remove that bit.

mi pi on Flickr.

mi pi arrived today!

tonight’s reading. on Flickr.

captain america: winter soldier.

my running stats from nike+ for the month of march 2014. my pace is increasing, hopefully i can get it to be consistently under 10 minutes per mile.

Call of Duty Ghosts / Battlefield 4 Single Player Campaigns

I just completed the Call of Duty Ghosts campaign on my PS4. I had completed the Battlefield 4 campaign twice before — once on my PS3 and once when I got my PS4.

The graphics of BF4 looked fantastic on the PS4 when compared to the aging graphics engine of Call of Duty. There is really no comparison between the two. The sound engine and sound effects of BF4 also tower over Ghosts. Guns and weapons in BF4 have a substantial weight and oomph to them — not so much with Ghosts. Ghosts also had some vehicle moments in it (tank, helo, Warthog) that showed that its engine is not made for vehicles (and that the Frostbite 3 engine is). But, after I got over the differences of the engines, the single-player campaign of Ghosts was leaps and bounds better than BF4 — and in the end won me over.

The story and characters in Ghosts really made it an outstanding single-player experience. The Father, Sons and Dog dynamic that Ghosts sets up is what really made the difference. It gets a little lost in the middle section of the game, but the beginning and end are fantastic. Playing as Riley the dog was one of those experiences that will stick with me for a long time to come — it was so different and innovative that I want to play the single-player campaign a second time just to experience it again. The writing for Ghosts is not the greatest (there is some cringe-worthy dialogue), but I appreciated that they took the time to write likable characters that I could relate too — family was an important theme of the story. The story for Ghosts is thankfully straight-forward and without any gimmicks or unnecessary twists.

The story in BF4 was so generic and dead serious that it was a drag to get through. The two companions, Hannah and Irish, were so annoying (especially Irish) that I couldn’t care less who died at the end. Irish was so over-the-top annoying that I could do without his presence in the game — his constant whining and illogical actions made the single-player campaign painful. The only reason I played it a second time was to experience it on the PS4. The story for BF4 was unnecessarily complicated with “clever” twists that I could see from miles away. Some of the set pieces were simply fantastic, but they were far and few. Though there was one genuinely awesome moment in the BF4 campaign that put a big wide grin on my face. It involved being picked up by a plane in motion.

The (music) score for BF4 was good — it carried over a lot of the themes from BF3 and followed the general style of the BF3 score. It is a good listen and I enjoyed it. The Ghosts score is fantastic. It is less bombastic than previous scores and more thoughtful and quiet.

If I were to pick one of these two games to play for the single-player experience, it would hands-down be Call of Duty Ghosts. Sure, the game engine does not live up to what a next-gen experience should be, but the story, characters and score make up for the engine’s shortcomings. I really enjoyed the single-player campaign of Call of Duty Ghosts.