Musings on the web

Thoughts, resources, and links for interface designers and web professionals.

JS Code Smells

A comprehensive slide deck from Elijah Manor’s talk at Fluent Conference that discusses recognizing different types of JavaScript code smells and presents options for refactoring or avoiding them.

MS Visual Studio Code

Microsoft released a free (not open source though) IDE called “Visual Studio Code” or “Code” for short. It has built in code integration the’ve dubbed “IntelliSense” that’s backed by their TypeScript library. Interestingly enough they’ve even released a Linux desktop package.

It seems like Microsoft is trying hard to gain any kind of relevance in the web development space built on the Open Source Software development model — especially in the Nodejs and Angular communities. Building multi-platform tools for web developers is a step in the write direction, but they have a big ditch to dig themselves out of. Any web developer that uses Unix or Linux has to break the association of software quality and Internet Explorer, before really being able to use a Microsoft product for their job.

It my hunch that these products are less for the Unix/Linux converts, but more likely intended for developers already using MS technologies and needing to be developing in either a Unix or Linux environment.

Making Badass Developers

Kathy Sierra (Serious Pony) Fluent Conf 2015 keynote discusses the optimization techniques for learning quicker by acknowledging our cognitive capabilities and modifying how we approach learning and mastering new skills or working with new APIs. I’ve been fascinated with cognitive overhead for a while – it’s great to get practical recommendations on how to combat it besides the common advice of simply exposing yourself to less of it by reducing daily choices across the board. This is definitely worth your time if you’re a web developer or are in a position where you’re required to do a massive amount of learning in a constrained time period.

Mobile User Experience: Limitations and Strengths

In spite of the modern trend towards larger-screen phones, what makes mobile phones so convenient and portable is their small size. Compared with desktop and even laptop screens, phone screens accommodate a lot less content. As a result, screen size is a serious limitation for mobile devices. The content displayed above the fold on a 30 inch monitor requires 5 screenfuls on a small 4-inch screen. Thus, mobile users must (1) incur a higher interaction cost in order to access the same amount of information; (2) rely on their short-term memory to refer to information that is not visible on the screen. It’s thus not surprising that mobile content is twice as difficult.

Whenever you include a new design element or a new piece of content on the mobile screen, something else gets pushed out (or below the fold). Think hard of the opportunity cost of each new element: what does it mean for the users if you leave out element B in order to include element A? Is element A more important than element B? Content and feature prioritization is key. Although we provide general guidelines in this report, your answer likely depends on the kinds of users and tasks that you have.

It seems to me that feature prioritization is often compromised in responsive design. Part of this is the paradigm shift of actually switching to a small-screen first design approach. So often we end up making desktop features fit into a mobile design, because we think that people like feature parity between desktop and mobile viewports. I think in general that’s true, but that would contend that it’s actually content parity that’s more important. At any rate both are clearly it’s important.

ES6 arrow functions, syntax and lexical scoping.

Single line function expressions in ES6 are nice.

function (param) {
  return expression
}

Becomes:

param => expression

Which allows you to write much more readable code. This short walk through discusses some of the new JavaScript features you can be using now in combination with Babel. Assuming you’re using a build step this just makes sense. I’m particularly excited about the lexical scoping of “this” in the fat arrow function, which will allow us to avoid setting ‘var this = that;’, or using .bind(this) or .call(this).

Cameron Moll discusses his history with Proxima Nova and hints they’ll be using it for then next version of Authentic Jobs.

2013

By now, Proxima’s use is rampant. It’s everywhere. Seriously, people. Websites, apps, you name it. Cries of banality flood the internets. How dare we use one font so excessively!

A fair cry indeed. Yet as it turns out, Proxima Nova is more than just the new Helvetica Neue. It’s incredibly versatile for digital interfaces, performs like a workhorse at many different sizes, and looks remarkable on retina displays.

And then in 2015:

In my experience as a UI designer, Medium and Semibold weights are indispensable for interface work, especially all-caps at small sizes (e.g. navigation menus and button text).

I would have to agree there.

Atom Shell gets renamed Electron

Making a clear name distinction like this is a smart move. Atom and Atom Shell are different projects—and ha-ha—an electron happens to be a smaller particle of an atom. Electron is a tool for building desktop web applications on OS X with web technologies.

Massive JS

Use SQL to its fullest, we’ll execute it safely for you.

This looks like a solid tool. I really like the concept of SQL files as functions.

The Hamburger Menu on Office for Windows Phone Explained:

The problem is, there’s just way too many things on the top bar. For example, you might want to print. How do you do it? Well, you could design a print icon in the top bar. But it’s probably not worth it. You could hide it in the ribbon, but that sort of sucks for discoverability.

And then you notice the top left corner. And you think “Well, tons of Android apps just put everything there. Maybe we could try that?”

And so it became clear, due to the massive number of features in Office apps, and the extremely tight real estate, and alignment with tablets, that a hamburger was the best overall pattern.

And Later:

I was out for coffee with a Windows PM a few weeks ago and she said “what do you think of the hamburger?” And I’m starting to piece 2+2 together. Apparently there’s a big hamburger backlash brewing in the Windows community that I wasn’t aware of.

But here’s a design challenge. And I’m serious – when Excel comes out, download it and see everything in the hamburger. Then redesign it. I’m curious to see what people come up with, because I’m always ready to see more ideas. We went through a ton but that doesn’t mean we could have thought of everything

There’s always more ideas, but sticking to conventions can save time for design work on other, possibly more complex or important problems. I’m confident a better pattern will evolve eventually, but it might not be as universal.