Easy login sessions with Ember.js and Torii

This is an easy and simple session lifecycle solution pattern for Ember.js 1.13/2.0 using Torii 0.6.0 that I’d like to share. Ember is a framework for building single-page web applications (SPAs) in JavaScript and HTMLBars. Torii abstracts authentication (authn) and authorization (authz) services in Ember and gives you powerful hooks into authn providers (social media login, e.g. Facebook or Twitter, or your company’s internal directory service) and customizable authz adapters (i.e. your application’s backend). It can inject the session object returned by your API into routes and controllers, and protect routes that require authorization.

Continue reading

Yosemite on unsupported Mac Mini

I have an ancient Mac Mini running Yosemite and OS X Server “headless”—after a bit of finagling—and all is well and good for the most part. However, my system log is getting spammed with the following every 10 seconds or so:

Jul 20 12:27:32 foo.bar watchdogd[80881]: [watchdog_daemon] @( wd_watchdog_open) - IOIteratorNext failed (kr=0)
Jul 20 12:27:32 foo.bar watchdogd[80881]: [watchdog_daemon] @( wd_daemon_init) - could not initialize the hardware watchdog
Jul 20 12:27:32 foo.bar watchdogd[80881]: [watchdog_daemon] @( main) - cannot initialize the watchdog service
Jul 20 12:27:32 foo com.apple.xpc.launchd[1] (com.apple.watchdogd): Service only ran for 0 seconds. Pushing respawn out by 10 seconds.

Google is not turning up anything useful. It looks tricky to disable, and I’m not convinced that’s the best (or only) course of action. Any suggestions, lazyweb?

Twitter continues to suck…

Look, don’t get me wrong, I love Twitter. I really do. It’s a great way to keep tabs on icons of industry, musicians and comedians, politicians and pundits, and friends and acquaintances. But there are some pretty frustrating and maddening little issues that prevent me from becoming completely enamored with the platform. I’ve already laid out my beefs with Twitter’s Direct Messaging feature; here’s a Part Two of sorts.

Continue reading

Review: Monoprice HDMI with RedMere

If you aren’t already buying all your A/V and computer cables and adapters from Monoprice, you’re doing it wrong! Monoprice has the best selection and prices you’ll ever find. They also manufacture (or possibly rebrand) a lot of high-quality original products, such as DisplayPort adapters, battery packs, and Apple-compatible 30-pin dock connector cables. (And no, they’re not a sponsor.)

Earlier this year, Monoprice announced a partnership with an Irish firm called RedMere. RedMere has developed a new technology that several OEMs, including Monoprice, have integrated or plan to integrate into their HDMI cables. RedMere adds circuitry into the HDMI connector on one end of the cable that effectively steals a little voltage from the display/sink device (e.g. a TV or A/V receiver) to boost the signal. This allows them to use a much thinner, lighter, and more flexible strand than usual.

Continue reading

Yes, Virginia, the rMBP does have optical out

There’s been some question and debate around the interwebs about whether or not the new MacBook Pro with Retina display has an optical out or not. Pretty much every Mac released for the past ten years or so has provided digital audio output via the 3.5 mm stereo jack, requiring a mini-TOSLINK cable or adapter to utilize. However, the Apple does not list such functionality on the rMBP tech specs, leading to some speculation about whether Apple has decided to EOL this feature.

Here’s some pretty definitive proof that the feature is in fact still available and ready to go, courtesy of a Monoprice mini-TOSLINK adapter. Ooh, shiny red glow. Do not look directly into laser with remaining eye.

rMBP: 10.8.2 and EFI Update 1.0

Yesterday, Apple released OS X Mountain Lion Update v10.8.2 and MacBook Pro Retina EFI Update 1.0. I’m pleased to announce that one or both of these updates have resolved the poor battery life and slow wake-from-deep-sleep issues I’ve been experiencing over the past few weeks.

The latter issue hasn’t been widely reported. Essentially, it would take my rMBP a few moments to wake up after being in power-saving mode for an extended period of time (more than a few hours). That may not seem like a big deal, but instant wake-from-sleep is an oft-touted selling point of this product.

Full review of the rMBP and the new (unfortunately-named) EarPods to follow…

UPDATE: I may have spoken too soon. I still have a momentary pause after waking from deep sleep, where the password-to-unlock entry field is whited out and the system time is out-of-date. It’s better than it was before, but still annoying.

UPDATE 2: Okay, here’s the scoop. The momentary pause is actually the system coming out of hibernate, where it essentially has to reconstitute the RAM state from a file on disk. This takes a few seconds for obvious reasons. Fortunately, you can control whether this feature is enabled, and the time delay before going into hibernate mode. Here‘s a Stack Exchange post about it.

On Twitter’s hopelessly-broken Direct Messaging feature

If you’ve been Twittering long enough, you may be vaguely aware of a feature called “Direct Message” (DM) that allows you to send a private note to another user. I say “vaguely” because quite frankly it’s truly, hopelessly broken, and nobody uses it unless they absolutely have to. I personally only use it if I have no other way to get in touch with someone, and I make sure to exchange email addresses or phone numbers as quickly as possible.

Why does Twitter’s DM feature suck? Let me count the ways:

  1. It uses the same eventually-consistent backing store and event model that the main tweet system uses. DMs get to where they need to go… just not quickly… or in order… and differently on each device attached to your Twitter account. This would be like sending someone a text message or an email and not having any confidence in the timeliness of its delivery. It makes it extremely difficult to have a quick, impromptu chat conversation with someone.
  2. It’s limited to 140 characters. Okay, I get it, it has to be shorter than the maximum length of an SMS and it’s one of the hallmarks of the innovative microblogging platform. But it’s not really a tweet; can’t Twitter break it up into 140-character chunks on the fly? Just to indulge the three remaining users who still interact with the service via text message?
  3. Once I read a DM on one device, say my phone, it’s been read. It doesn’t need to be read again. I don’t need to see the “unread” DM on my workstation, my laptop, etc. and have to click through to clear it. What’s even more irritating is sometimes I’ll be alerted more than once about the same DM on the same device. Not cool, Twitter. Not cool.

Robert Scoble over at Rackspace has a great rant about the direct messaging features of Twitter and Facebook, more along the lines of the similarities and limitations cf. email of how they (don’t) interact with your other communications channels. Consider it suggested reading.

Review: Google Voice (Aug 2012)

Ever since GrandCentral was announced back in 2005, all geekdom has been anxiously awaiting the “Holy Grail” of automated call-forwarding services. There were a few lucky (and very stoked) early adopters, but after Google acquired the company in July 2007 and stopped boarding new users, all seemed lost. The project stagnated for nearly two years, with little or no information made available about the service to the general public, nor to those aforementioned early adopters regarding the future of their once-treasured GrandCentral accounts. Most people were left assuming that Google had bought the company just to kill it, and Google made no moves whatsoever to counter that assumption.

The phoenix suddenly arose from the ashes in March 2009, rebranded as “Google Voice”, finally becoming available once again in June. However, participation was by invitation only, and the nascent service was fraught with many quirks and missing features. The unwashed masses had to wait yet another year, until June 2010, to begin to partake in the offering. Fast forward two years or so and the service has matured greatly, offering many advanced features like number porting, in-call phone switching, call screening and blocking, and much more.

Continue reading