Create Awesome

web design and development for people who think the Internet shouldn't suck

Resolving the ssh-dss Error With GoDaddy Linux Economy Shared Hosting

As I mentioned in my last post, has been around for a while—over a decade, in fact. And this entire interval—an eternity in Internet time—it’s been hosted on the same crummy GoDaddy Linux Economy shared hosting account.

It’s definitely legacy software, and the latest version of OS X has finally decided (and not without reason) that my host’s OpenSSH version was simply too old and janky to support. If you come across a connection error with the following message:

Unable to negotiate with hostname: no matching key exchange method found. Their offer: ssh-dss

it’s a pretty safe bet that that’s your issue, too.

If you’re a command-line kinda guy, you can still make it work by adding -oHostKeyAlgorithms=+ssh-dss to your regular ssh command in Terminal, e.g.:

$ ssh -oHostKeyAlgorithms=+ssh-dss user@hostname

But that gets tedious fast, and won’t work for third-party apps like Cyberduck.

To make it possible to connect to anything that uses ssh, you can (on OS X and most Linux flavors, anyway) edit your SSH configuration. I think the easiest way to do it is via command line and vi. Open Terminal and enter the following:

$ vi ~/.ssh/config

This file is probably empty, so hit “I” (this puts vi into INSERT mode…don’t get me started) and paste the following

Host hostname

Once that’s entered, hit escape and then shift+ZZ (or any of the other similarly byzantine quit-and-save vi commands). You should now be able to connect to your shamefully legacy hosting account as easily as you did back in 2014 or so.

But as much as I’ve enjoyed fighting this and other legacy GoDaddy battles, I think it’s finally time to turn the page. “Smart http” git, https, and a host of other nifty new things simply don’t work on the platform. I’m sure I’ll still be able to make use of its unlimited bandwidth and storage for static content, but for the new toys I’d like to build, an improved host account is in order. Stay tuned. 4.0

If Internet Archive is to be believed, today I rolled out the fourth iteration of my personal website. It’s an updated digital resume that invites the user to poke into the code and responsive layout as much as the content. It’s built to be bold and bright and playful—an updated demonstration of my skillset that’s well-written and entertaining, both inside and out.

The previous version, from mid-2012, served its task well and I am sad to see it go. Built as the sun was setting on the Golden Age of Open APIs, this just-retired was proof that I could code—PHP scripts self-populated the site with regularly-updated content from web services I use nearly daily, like Strava, Twitter, and Instagram.

But as companies began to lock down, and RSS was supplanted by the timeline, its Jenga-towered screen-scrape kludges became harder to maintain. The site also hid my meatiest programming from the user—an at least reasonably elegant system of caching and and includes kept site load snappy and hosting load down, but as server-side code, no one could see it.

The front-end code that the user could see—a clever, tag-driven filtering system for my wide-ranging work experience—didn’t look particularly tidy in dev tools, and also may have presented my abilities too broadly. So in addition to being much cleaner from a code POV, this version is much more closely focused on my dev skillset.

To that end, the new site is also W3C-valid HTML 5, fully responsive and mobile-first, extremely accessible, and rolls in a host of cute functionality tricks to keep the code semantic and SEO-friendly, while accommodating a unique, even idiosyncratic layout between breakpoints. There’s also an inside internet joke or two, to be explained in forthcoming blog posts.

While I could (and almost certainly will) keep tweaking, it’s just time to get this beast out there. Let me know what you think and what errors you encounter, and If I’m ever at a point where I’m happy with it, a github repo won’t be far behind.

The Year the Year-in-Review Clip Show Died

I find myself hoping 2014 is the swan song of algorithmically generated year-in-review mini-films on the various social networks. We’ve all seen Mad Men. We’ve all seen the Carousel/Facebook Timeline mashup. Nostalgia is powerful. Bond with the product. Etc. Yadda. But beyond the logo, these clip shows haven’t got a damn thing to do with the services they promote, and more often than not, they’re pretty lousy products in themselves.

read more>>

Introducing BrainHole — an Outbrain-style Widget for

I’m a big fan of ClickHole, the Onion’s satirical take on the clickbait stories that, with the advent of gullible olds like your Grandmother, have rendered your Facebook newsfeed all but useless. But as much as I liked the headlines, stories, and execution the fabled satirical publication brought to ClickHole, something wasn’t quite right. read more>>

Put Strava Routes on your Suunto Device with Movescount

I’ve long been unsatisfied with Garmin’s cycling GPS devices. After a particularly bitter unexplained ride deletion last fall, I finally took the leap on a Suunto Ambit2. It’s been great so far, with the added benefit that it works very well for the non-cycling activities I do.

Unfortunately, the device is really tied to some substandard Suunto products. I understand how the proprietary USB connector helps keep the Ambit2 thin, but it’s finicky and fragile.
read more>>