Musings on the web

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

Automatic buys Woo Themes

WordPress currently powers about 23% of the web. As we work our way toward 51%, WooCommerce joining Automattic is a big step opening WordPress up to an entirely new audience. I can’t wait to see how much more we can build together.

Seems like a good fit and something that can help Automattic grow in the commerce market—which is a big part of the Internet.

Building a new foundation for mathematics

Type theory has its origins in an attempt to fix a critical flaw in early versions of set theory, which was identified by the philosopher and logician Bertrand Russell in 1901. Russell noted that some sets contain themselves as a member. For example, consider the set of all things that are not spaceships. This set — the set of non-spaceships — is itself not a spaceship, so it is a member of itself.

Russell defined a new set: the set of all sets that do not contain themselves. He asked whether that set contains itself, and he showed that answering that question produces a paradox: If the set does contain itself, then it doesn’t contain itself (because the only objects in the set are sets that don’t contain themselves). But if it doesn’t contain itself, it does contain itself (because the set contains all the sets that don’t contain themselves).

Russell created type theory as a way out of this paradox. In place of set theory, Russell’s system used more carefully defined objects called types. Russell’s type theory begins with a universe of objects, just like set theory, and those objects can be collected in a “type” called a SET. Within type theory, the type SET is defined so that it is only allowed to collect objects that aren’t collections of other things. If a collection does contain other collections, it is no longer allowed to be a SET, but is instead something that can be thought of as a MEGASET — a new kind of type defined specifically as a collection of objects which themselves are collections of objects.

An important distinction between set theory and type theory lies in the way theorems are treated. In set theory, a theorem is not itself a set — it’s a statement about sets. By contrast, in some versions of type theory, theorems and SETS are on equal footing. They are “types” — a new kind of mathematical object. A theorem is the type whose elements are all the different ways the theorem can be proved. So, for example, there is a single type that collects all the proofs to the Pythagorean theorem.

The article goes on to discuss Vladimir Voevodsky reasonings for the adaptation of a new type theory informed by homotopy theory as a replacement for set theory in mathematics. This would allow computers to check all mathematical proofs—which apparently we can’t currently do with set theory.

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.