Install Sonar Locally on OSX and Analyze a JavaScript Project

Sonar really shines with statically typed languages like Java and has some very useful analysis it can run for JavaScript projects: critical errors in syntax, code duplication, even test coverage. You can play with all these reports by installing Sonar locally. Thanks to Homebrew it’s not that hard.

Continue reading Install Sonar Locally on OSX and Analyze a JavaScript Project

Fix MS Office Double Notifications

If your install for Office 365 left around a bunch of unwanted Office 2011 stuff — in particular if you’re tired of getting two office reminders for everything — then you can ditch Office 2011 in your trash bin and never look back.

Note: Don’t delete Office 2011 if you don’t want to be rid of all those apps. Sounds obvious, I know. If you plan on using the old versions of the apps for old documents then just don’t do these things.

Continue reading Fix MS Office Double Notifications

Bring Architecture to Your CSS

Good article on CSS Architecture: http://engineering.appfolio.com/2012/11/16/css-architecture/

Philip Walton starts by saying what he wants a CSS architecture to provide – what would be the value. Then he examines common anti-patterns that work against those values.  Finally he outlines some concrete suggestions.

His approach isn’t perfect.  It leads to long class names and more of them.  He does do a good job showing what you get for the price.

Hope you enjoy it!

(Thanks to Daniel Sellers for posting the link on Yammer.)

Talkin’ ‘Bout Your Web Perf

I’ve had a lot of luck using this article to push performance conversations further. The numbers are dated but the concepts are real.

You have to know how good is good enough. How bad is too bad to tolerate. You have to separate user interactions by value and user expectations. Here I break down user expectations and give some (lenient) standards that ought to be worth discussing (and keep people from setting their hair on fire).

Web Sites Don’t Get Special Dispensation

The guidelines for latency limits are not new. For example, the advice given in Response Times: 3 Important Limits is over 40 years old, but still generally true.  In fact, special guidance to web-site operators only tends to emphasize how more and more impatient our users are becoming.  Consider these excerpts from a white paper by Gomez entitled Why Web Performance Matters: Is Your Site Driving Customers Away:

The average online shopper expects your pages to load in two seconds or less, down from four seconds in 2006; after three seconds, up to 40% will abandon your site.

Gomez’ own studies reveal [a] lack of visitor loyalty. By analyzing page abandonment data across more than 150 websites and 150 million page views, Gomez found that an increase in page response time from 2 to 10 seconds increased page abandonment rates by 38%.

[The] average impact of a 1-second delay meant a 7% reduction in conversions.

(original emphasis.)

The industry advice continues on and on: incremental decay in performance causes decay in retention and conversion. Slowing down matters. A lot.

Shades of Success and Failure

Continue reading Talkin’ ‘Bout Your Web Perf

yabm: revisit.io stores your bookmarks

Prepare yourself for Yet Another Bookmark Manager: revisit.io

How is this better than del.icio.us, Weave, Xmarks, Diigo, Google Bookmarks, and a gazillion other websites that capture your bookmarks? I don’t know. But it’s new (ish). And if you act now you can get your favorite username.  Just like I did: revisit.io/managerjs

(Thank you Web Designer News for the link.)

JSCS lints and shines your JavaScript

If you use Sublime Text you may want to try the JSCS plugin for SublimeLinter. JSCS stands for JavaScript Code Style. What makes it even more useful than JSHint? With this plugin it will even fix small style errors for you!

Once you have the plugin working you’ll definitely want to  tailor the rules .jscsrc file.

One good gotcha: It ships with a lot of presets and has a lot of mirroring rule options. It might be tricky for you to override the preset.

For example, I opted for the Google preset and wanted to add the requireSpacesInAnonymousFunctionExpression rule. It wasn’t working until I realized the Google preset came with a mirroring option set: disallowSpacesInAnonymousFunctionExpression. I had to set that to null explicitly before my own settings would work.

Thank you to Addy Osmani for your post on the sublime plugin, and thank you to Josh at SublimeTextTips.com for mentioning it in your newsletter.

Book Notes: Heroku Up and Running

Some time ago I read an early release of the O’reilly book Heroku Up and Running  by Neil Middleton. Here are my impressions and notes that struck me from the book for whatever reason.

The book is a nice overview of Heroku

It covers the history of Heroku, the Heroku philosophy, and gives many insights into how it all works and why it works that way.  The ebook is only $8 and available right now. I found it worth the money. The formal release was scheduled for October 2013. 

As a casual user of Heroku, this book helped fill in many blanks and give me a more solid footing for visiting the Heroku developer site. The hard-core documentation is left to that developer site.

Continue reading Book Notes: Heroku Up and Running